<?xml version="1.0" encoding="utf-8"?>
<otrs_package version="1.0">
    <Name>ITSMChangeManagement</Name>
    <Version>6.5.3</Version>
    <Framework>6.5.x</Framework>
    <PackageRequired Version="6.5.1">ITSMCore</PackageRequired>
    <Vendor>Znuny</Vendor>
    <URL>https://www.znuny.org/</URL>
    <License>GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007</License>
    <Description Lang="en">The OTRS::ITSM Change Management package.</Description>
    <Description Lang="de">Das OTRS::ITSM Change Management Paket.</Description>
    <Description Lang="es">El paquete OTRS::ITSM Change Management.</Description>
    <Description Lang="hu">Az OTRS::ITSM változásmenedzsment csomag.</Description>
    <ChangeLog Version="6.5.3" Date="2026-05-12 14:24:34 +0200">Removed setting default config for state machine when reinstalling the package.
Updated translations.</ChangeLog>
    <ChangeLog Version="6.5.2" Date="2025-04-03 11:20:13 +0200">Updated translations.</ChangeLog>
    <ChangeLog Version="6.5.1" Date="2023-02-20 15:10:18 +0100">Initial release for Znuny 6.5.</ChangeLog>
    <ChangeLog Version="6.4.3" Date="2022-11-09 09:29:47 +0100">Updated translations.</ChangeLog>
    <ChangeLog Version="6.4.2" Date="2022-07-28 15:34:52 +0200">Initial release for Znuny 6.4.2.</ChangeLog>
    <ChangeLog Version="6.3.3" Date="2022-04-28 10:12:21 +0200">Release for Znuny 6.3.3.</ChangeLog>
    <ChangeLog Version="6.3.1" Date="2022-03-18 15:49:01 +0100">Ported to 6.3.</ChangeLog>
    <BuildHost>build.znuny.com</BuildHost>
    <BuildDate>2026-05-12 12:24:34 UTC</BuildDate>
    <Filelist>
        <File Permission="660" Location="doc/itsm-change-management-database.dia" Encode="Base64">H4sIAAAAAAACA+2dXY/iRtbH7/MpUOdmHwlqXO/lsMnqSaTVs1KiSDuzN3ODDLhpJwazxsxM78V+9qfKwHTzYvAr03T/O8rMNBQ+LlO/ejn1P6f++rcv87j3KUxXUbL48Y4S764XLibJNFrMfrz714e/D8zd33767q/TKPjB/j9Lg3nPfmKxcr/9ePeQZcsf3r37/PkziR9XQZakJI7WZBW++28Qx8E7W+jd3U/f9XrPLzANssC9tn01yLI0Gq+zsLcI5uGPd+Ng8ucsTdaL6d2m1LbcJImTtPcpiH+8+/4+/7l7t73Mu73rnLn2MpiF4zQM/iy+tGd/fL/OpZdhenjZ+TJZRbZI9rg8KlJwHffnszLbUitbaDH76fv/Fd9vbmn7wtO1Tt1ooZFsHqSzaHFsxz6bePMgGDGMMfswpG98TwtNd8+kurnxdc3F1zWXXtdctBotkzRLgyg7NjlOkjgMFhur90G8CusbWk2C2Laxc/XyiKS++zGez5SkXOn69u6jLEtaqtLm5a8AVoV5lkbT8yzvlSi4yudomj2Mvpx7gA3awebqjx1d/VO0isZxeOruo0XW2uUf27n84beTd+hPH2/YGjZXKxwxpiaUoaw+YszW0TRcXWhm+2UKrvSwLfbu0lM/LFf2wWxeOhi/cxNx8Bim28v//DRy97ZfsB1q0nV41wsmWfRp99uzZ5KM/wgn2bay//rt196g90scrFZ3T3MSOyOJpj/e/e7tP6nDutkr2X7x6FEtk6/taeAT0aeEysP6H/ceRQbG48Prp/b2g8UsDp9sSGdkSA3xKJN9zuuZC+NwPpok6eJ4ytBenXIjeUdyXK+vY5cmXDHpff2hDWw9hNHsISs2xikx3vMfU8/YwSxqbw41ebBfWDiy7X1+cjJVxc4qC9Mwcc23yFpjE5bOebjIOrt+MLaftXweGjg37lZ6ROvlMg1Xq9HXN1adm0rsRDvIbPfRmandAFayUnm/18hQySo1N7Rtb509uc9psLzCF5SbCe4tnyML/FEf+rUHFV69628f08hOkcNRHC5mx33o00xGN7ORBbPZ/ky81UeVV+HCKOAR6u3/0AbG9mdUBatwr+Y3cx/F8WUL+y6Eahay8EvWbR0WiV1VxqP75Ljjd6/17oN5FD+6FrJOIzcBCz/f9VbZo5tx2QnT5iK/bN6sdwe7YeFb3sMyiR/nSbp8iCbf8jYmbkbq/vkivo8Kd7MKbP96dBv/F8afwiyaBM06pW9j/RkYFyeTlKhWuqzDZljCMPf3f1pg8KJV72Dq7HmijfZ+0S5rtUFffrjNm22JR6kOvkBVs5KF08PDlf56Hn8tfOwUueglPlgVRNMCP/EZT0rRYLe/uDkyNY7s3CRrzZx9/uuz9lqzdLyw6s5WPrmO4ih7PGUuXKzn24b33IdT3cyJtVxJP2qNx+ewHa0myenmUdvcSZ/UlbDZugbs1zEO06sR9ClI3RLlL3aG/T/gCBzdPkdZlMXh1flhEvyAn9fAzzRcTdJo6RxkV6eIGwxDwOi1YTRaxkEEmAATYKoJ0x/rVRbdR5MAoxJAAkgtgYRxCTgBpxZ8dqssyMLRFf3ecHoDoNcE0Nz9mYIgEASC6hE0XkfxFAgBISBUHSE7e5sl6SPgATyAp6raZ750QiqgA3SATjV0lmmUpPZLAjyAB/BUhCcN/70OV1k4HWXR/Hp6n6mdKwIgAPQKVj1p6LzWoAf0gJ669IwfMXMDOkCnhscaAw/oAT2193sw8ACd14NOpWRIT/k73l1IlTBfWvTCrnJX7K6/2s+/tckrVS/RFG2aaIoZwvoDj+gOE01ZG1TmRuRQCuJpLftcEl92mW2qYcVKZZuSxDB9rWxT6iBDgN9ZtqnPSfpnkk4LokqRcgopp5ByCimnkHIKKaeQcgopp5ByCimnqqWcai35E3JOIecUck7BIwaP2HWdyaAH9ICeyvR8TtJp7le7dtI2EASCXgVByNUGfsBPg2XPwv5rPUFWHGAEjFrBCDlxABNgahaY446IBEEgCAQ1IQgjETgCRw39cxvdGxK0gSEw1JAhd3UgBISAUG2EgplTZIAhMASGKqbKiYPFIpy6iZxdGSF0FBABotoQhQskzQFCQKgGQvbRrYMYwxAYAkMNGcIoBIJAULOJ3P39Nbdap+EkmgfxX6jXZ9giAkmvYiyaJOvF9bOIgiSQhHSimNGBHtCDdKJAB+g0jWHFwAN6QA/SiQIdoIN0ott0oqxpOlGpCace7Rvie5p2mFPUGmIqN2SkpkNtiDRM9ZkiXGraZWLRNqpYKrsoJYwx2WFKUWprspfER3aWUvQhWmVJ+oiEokgoioSiSCiKhKJIKIqEokgoioSiSCiKhKJIKIqEokiJCJ/Y23Ungx7QA3oaRIoCIAAEgKrnE0WOAoADcGrM2+yizi3uFuFnZJwCRsCoGUZJPAVGwAgY1cPoPgrjqSuE1PBgCAwhHgf0gB7E4wAdoANZdAuyaN5YFu0TjzHe55x4vFNZtCG+doYY8Q0dak0Mtb8KQ4zpVhXdQg3LqKKpIVo8l1ywLgXSkuh9VULXAuk8ay5U0lBJQyUNlTRU0lBJQyUNlfRrVkkbcyRUHvycxNPfx3H077qDRj3J9Ik7aXQXkE5DOg3p9IuSTsNpBqfZq/A3Y7MT+ACfBrqbjTcBCAEhIFQLIXuz0fSa2umVXUzFmMABH8htILcBPaAHchugA3SQ/hb0gJ4r04OBB+hA53mDOs/3WbCYBum0N+h9jGYfg9mv0SJ8pvikW8WnaKr4VJr4jIo8IW23mXCtJaM3lphLhasMEWKrxKyr+UzS7GGU16ZWHU8UNYQxSasUPVSSnizJ/aaqWlfTJI1OaBkLeo6D9+iZ92rKbIJ1lqTJOmtRXDVJFgvbbBy2R+Pl7p2eHdumW2lIluTZoHtP79rHfVTTE5+l28/y/c8efTtHN9QmvbKFNNZM+qZPNVEd57EWxGPad5akHLrc0t7Wbu001uXgLaziiaKSKGUqFz1bzlZbb6qt3h645eWwbXDLKoFL9z8svauSq5qSaxuUr5jsU9sQZYfcOjvU2eFEyyGzY5Z0jdl4VHVJbUH1zhTU9v7oWRbdzZcvx4npENiSUJ773C2OtN4BsbwBsYy1Quz5iCjdlNMBpXbA43by5hPh0y5RdaaUtzUlqBxSRrTxmYuK8gWVXYZFtVPNUsdFCML8To+LsDVoRbJZIhpqEowRBIUgKARBIQgKQVAIgkIQFIKgcFQEjopAvBPinRDvhFzd2D9+u9IL0AN6QE9letar654SAXAAzusYdtarLJlbeK5NEEIGgRIUgN9MAWia7nB6RPrM1+IKO5zWlNiYYsQfCsK5kyZYu7L29mY5OUJxHY/Liq2sr3xJW5lL5Uxe0f2CkP+1I0rQhRK+y5oEr1A62I6I6EP4JTsBrd8UWmaItE3Pbdsbr0vd31dDnGhOh1ISRjd2OaX1tz4uebIOyhRunaf7je9o6P7Hh/e//ZIvyH8LFsEsdEN9a8P5gfu6oQu7zh0c+SBPuVbPuLDr2NxvmFUaZ73p2f4W2cltMn3v/ms4aYqj2aJoJlh9atbC/OVTfkvF3T2/gF87XRX1GkuotB1+89bgd6me2lrhxPDhQHpEabaxKm6gn/r9wz/f91Tv76kt707LRB/VcR91slGig3rJHdTP4X+iMD1YBu2EnnYy0rSb4rLvc+LrTjWebgJlPGVbniS+J21XxQUxSoi+LwilXs09wnH4n8uroFM1PFVKE3s39j4vlLMEMclZXzBC2fmiQhHtirpa67oPeCNizTPPr+otgrwu9UbTwP3XpXyKtSifyjv74qdYcz9+GqweTgvZym/1Nxd9U9Y4KtIjHhe8r+zwQOvu25eLq/KJbzaWjPLVUBvCuDJ94xFf1bVcTvPdSiVLnoVBZaeSb2uhFalFCcn3zpkH3Td039B9Q/cN3Td039B9Q/eNwy96OPwCYnCIwSEGhyQPOiJI8nD4BfABPk0UrTj8AggBoWYILbI2FU+XCIqTxWwcJ2PQA3punx53TcQiARyAgzOXgA/wudqsDWcugR7QgzOXgA7QwZlLoAf04MwlDDxABxkXusy4cCGogDcNKvAN0T7z+8olPlCmw6ACZ0lsLDGjzJBSQ6TgfW3/MnUtlwsqaKWSpYIK/ENJTZfxBYLQNoxViC/I45wQZIAgAwQZIMgAQQYIMkCQAYIMEGSAIAMEGSDIAEEGcJ3BdQavM4IMgA/wgVQN+AAfSNVAD+iBVA3LHqADqRoGHtADeiBVAzqQqr3dw4GoaCpa2+SjVX3t8uh3mgnXWqJmY4m7TLgbJZnMLdcWrZU7Hqiwkif0bYxILSqW3BPCndbMiW1NeaOa4oSgkycEUbZ/zA8zVc4Iovzg06yVU4IuyE1lU3KlJtyXpj+ggnCjeZdJrK0psTUluOZDo+wLnPcFUYrpLvWm7dSyjOCUGWJ8LRtvzL+0hNa28U4j13YhNoXYFGJTiE0hNoXYFGJTiE1fs9j03CFn3etL27IOXSl0pdCVvihd6TiawdUNV/dr2iUCPaAH9ECYDXyAz/XwCb/k3ssoWTgP9R/rxaTQRw2gABSAwnEKQAgIIVgI+AAfBAtBsw16ECwEzTbQAToIFgI9oAfBQkAH6CBYqDhYSLURciCk6g8EMd1GHFBNfEWdId/FG2yiAFTfvky7DBQqrOBxUcYJVYxXKWrv3pPnClJDPEoPyyFKqKUoIdkkSsjb/7AQ1wgS0o1z0nNi8ugZSahgrMuc9NaSt7XkMzak9h/Gty949q+6lkvmpG+jkqVChCjx/eeSQ3brOel3sUGjp+1YhAkhTAhhQggTQpgQwoQQJoQwIYQJIUwIYUIIE0KYEAId4OR+k8LSnZMAAAEgAFQZoI3HF7pS8AN+6vDztTwQAkJAqNYQlPuWkxQEgSAQVIegVRjbSVySIrwOCAGhuhGqyyANR3kjBEfgCKrTN6A6NW1o2Dyt+wNDvG41bEYR5vONJadhy4VlzrIghtfWu5ZSnhZW8kRRj3haVit6WaS6SemtG2p7b1h+Wl4lVE99qouzzJfIUX9Gu9qd/NRvAV2tjd/nRGipulWfarYxxKTKxaeepH3qE87qGi4tPm1cxZLaU8aY7FJwKom+nuA0mCAnPcSmEJtCbAqxKcSmEJtCbAqxKcSmEJtCbAqxKbRy8G1DbAqAABAAqiyWy/1qI/t1jMMUGX2AD/CBVhv8gB9otYEQEIJWGwSBIGi1oTEFQkDoohsBUm1gBKn2jUu1z6s8mddU5UmZJNxpl5lHPOGbLvMCO1Nsa8r3zZAKSpixL1Du1IumS6lnO/UsI/Z0uVNlC1LMUrpPRdj+Jj3tUve5aZnQfUL3Cd0ndJ/QfUL3Cd0ndJ+vWfdpzJH0cvBzEk9/H8fRv+sOGvVEoCfupNFdQAwKMSjEoC9KDIqdHPjPXo8b2r0P9zPwgfv51bqfaRvuZ0VZf0ApoUqojt3PUm1MMSrUkApBhMfyg+qoUF17n5tXs5T32RAtrnXM1XW9z18/BQc0HNBwQMMBDQc0HNBwQMMBDQc0HNBwQMMBDQc0HNDwoMEBDQc08IED+k04oFkbDmjpPLOMSF+Jjv3PQuWWlFBiSAUnXLA+J0ryzr3PjetYyvmsiTYtzNJfovR5G9gJ3zN8z/A9w/cM3zN8z/A9w/cM3zN8z/A9w/cM3zN8z3CewfcM3zPwge/5TfieeeMT1gxRxud9IYkStMvUG84S31iSPjVDSg0R3O9LToRPO0280UolSzmf/cPJVofOZ304R9YdOJ8f7DcYjlaZbbejeTB5iBaQPsP9DPcz3M9wP8P9DPcz3M84cw1nrsHTDE8zPM04MgqOsjeZLj33DlwRHpADcl7HDo1bEwEf4IMdmpvdoXmfBYtpkE57g97HaPYxmP0aLcJnezV0t1cjmu7VGEW44NolizFG8w73aqwl5m8s2b/40OdEa6P6lBLBZN0MOWn2MMqrU6uSJ7Z1POJxxaoUtRXg+nkFThS1dWWbuu4XrVzXJI1O7EEU9B4H79Ez79V0jwXrLEmTdXbJKVreGz5JFoswP+hjdTRs7t7pPVg8ts6MLLEcUHnXe3rbLoTNUVVPfJruPu0ffPpotX50U61CLBsH+7jc/L7pDwzxBGNdBvs4S8Jaoor4+VkHu/MHtP29tulSFBfW8lRkkLfJS1WhqKvR3gEKBYctuJMejsqC43Y41gcksiocM2//05Rdl2N1gxwbQvOccbtEbi8OY80rltxLQ1cQNKjYcVEg/BIQpt8WYX2TCHsW2eEmGpb3PSJrx912MxB7ukpRe/8ev4iwUPyo5FshuMJq9FsgzL4twqYNhD1JGy7WyiLsedQ2ZGGRHVLhW67kNVbEhXU8UdTdlZBVipZAeJskAAh3hPCZJe3LR9i/PYSfFsSvBeJSC+L8pEP1hhfELxzkb7si5s2P8RSCcEtTs9VaJZB3K+IrclxUyTNwli9aBvlWuktQXEjxuWXtN/NPnw8D4o3PQOAeYVr0FSNSqC5Xws4Qyw0JX7GhbfeWjb42FirFuowBaqOGL+7wA9sX6DbijUqEAE2i5SiI42QS4PADRAAhAggRQIgAQgQQIoAQAYQIIEQAIQIIEUCIAEIEEITYbzKOwTkFZkn6iCgGwAN4qo4586UbzoEO0AE61dBZplGS2i8J8AAewFN10mbXbVk4yqIrZgmdFu0egR7Qc4v0jB8x8AAdoFMJnY2iAAMP6AE9denBwAN0kC/k1WV0541PE/UF4ULSPuPE91WnGd0FYf7WklAuo7tPhJR9bggTqtuM7m1Usoyckzm19bUyulNB6JXknIski+6jSY4R5JyQc0LOCTkn5JyQc0LOCTkn5JyQc0LOCTkn5JyQc8JP9hbTUuPgUOADfGqPOlk4f3KJACSABJBqgRR+clNVaDtBDsipRo692Wh6TXJW8yCOgQ/weR0am+3uD+ZuQAgI1fMhPBMYjNJ1jHUQWIJu7fXq1njj9KGMOzlZXyjCvU51a7klkVti0unW7D+MkX3JiJTd6tZaqWQp3Ronkl9Lt2af4/4OI72Kbm00S5criNcgXoN4DeI1iNcgXoN4DeI1iNcgXoN4DeI1iNcgXoOzDOI1+JqBD3zNr8vXLJr7mkV+YBRjRHTtaxb5yU7WEt/4mjWRTPbdcTSd+5pbqGQpXzMj0lzryBt9OEPW1/E12+8Vrma4muFqhqsZrma4muFqhqsZrma4muFqhqsZrma4muEre+saZzAEhsBQZYZmabJeAh7Ag82aG92seZ8Fi2mQTnuD3sdo9jGY/RotwmfbNnS3bSNb27bRnYcIUJ9wmVtieWpba9kXG8u1t22SNHsY5dWpVclTRRmhFUsy/0JJl8TXO1G0ck2TNDqxE1HQdxy8R8+8V9NJFqyzxI412SXXaHmf+CRZLGyzcdweDZm7d3oPFo6tSyNLNpuXvae3bU2PH8OJT9Pdp9n+p4+iOo7uqVWCVWsEG+J3vfFqW/zGkpHPCBY+Udci+LCSp7l0oUgViroKXCy6jTI6LAqGu2GYVWKY73/atM3wh/BLdope3ZxeRZgWfSWIYKxTeLeGODFMD5/ZlZrV34W55FQ7KFO4i5/ut7/upuEHXvOGnvM6d3Dk+qzqSa5jdL8VVmmJ9dZV+1tzpbbnaq124mi2KFrCVV9TtbDw+JTfUnH3zi+w1lLHZBp3TNxOWu2ApzQRWnbZMe0MuYjh4TOzikn0S+iXihoi+qVb7Jf8pv3SgHt2xmJYf2AIrd1FlOqZnpvSUsvh8xc8iu4J3dO59ogO6gY7KOE1nzjp3KlgxytG66oWSs6ctpaUnSsJNXxmmau6ltE7va7JU0FjROd0i50TbWNVR43q+4oIO1p1vKzLLUliGGXDZ5alUvA4oXMqbozonG6xc2LNOyfbEIRtD5wYyrr1OW0tUeK7AEKfaN/+JgjT+gZWdb9/+Of7H374x4f3v/XUG+umGBHKF0Jw4QvP2G9Od99LFbRK9FK32EvxVnopP5/YaNV9L7Xpl4Rkckil26yjbrz0/BvoplwH9Use9/tbsAhmoWuOb6y7oraNcGN/GPU86SbCV+muTjVPdFe32F2JNror49qDJp7qVmGws+TGS6PstMojiktnmYlb6K+YR/XAMwNOsfa7Rjd1slmim7rFbqqxDnmgvP6AMpfIpcsdvdwKJ5QNdwa5xjYe+qPT7Q990S32Rap5XySIzvsJ1nFvtLNjXH+0+8VDj4QeqbAVok/6pn3S5vc4eAzTn77b/GL/n6XB/Kfv/h+XTiHjhkgDAA==</File>
        <File Permission="660" Location="doc/itsm-change-management-database.png" Encode="Base64">iVBORw0KGgoAAAANSUhEUgAACSQAAATECAIAAAD3JA7bAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdeVxT17o38BWmCgE0YZIEUFQG5yqDSqFqqRMcB5ywVq1Hb2tbj7WvLeq1rcVz6kC19R6tvVXQIlYpSkUqgtoqp0UGQTiiyCwIkoCAQZlDCHn/2Pfs7iaQbMYA/r5/9JOsvfZaz15YJXnWwFEoFAQAAAAAAAAAAAAAAAaOEydObNq0SdtRQN95//33jx07pu0ooH162g4AAAAAAAAAAAAAAAA6bc2aNWfOnNF2FNAXDh06VFxcrO0ooEM62g4AAAAAAAAAAAAAAAAAYKBCsg0AAAAAAAAAAAAAAACgi5BsAwAAAAAAAAAAAAAAAOgiJNsAAAAAAAAAAAAAAKC7OByOVu7VloEYM/QSJNsAAAAAAAAAAAAAAIAVDoczuJNMg/4BoTcg2QYAAAAAAAAAAAAAAKwoFIrOXhIIBN1pto+xj6Q3YmYzVtAPIdkGAAAAAAAAAAAAAAC9pby8XNsh9DWpVNq1G1/AsRockGwDAAAAAAAAAAAAABjw8vLyli1bxuPxDA0Nvby8bty44ejoSF/NyclZsmSJUCgUCoVLly7Ny8ujL1EbJ9bX1y9ZssTAwMDAwCAqKorZcnR09NixY01MTNasWVNfX6/adUFBQbu7L44ZM4Yq5DCwvLebMaunpmWKTCbbtGmTiYmJg4NDZGQkXe7j48P5M6UbIyIihELhkCFDjI2N582bl56ezryq5mfEZqyg30KyDQAAAAAAAAAAAABgYMvJyZk/f/78+fMfPHhQW1sbHh5eUFAgkUjoq2+99dbhw4dFIpFIJPr666/Xr19PZ5io7RADAgI++ugjqVQaERHh7+9Pt/zbb7999tln58+fr6ys/Otf//rxxx+r9u7g4NDunoqFhYVUuYKB5b3diVnjWKlpmbJ79+65c+eKRKJvv/1227ZtSUlJVHlsbKyaZ4mPjw8LC4uJiWlsbKyoqNi1a9fmzZvv3LlD96vmZ8RmrKDf4uCnBQAAAAAAAAAAAAAwsJw4cSIhIeHMmTPU28WLFy9btmzdunXtVl60aNF77723YMECuiQuLu748eOXLl2i3nI4nPPnz69YsYJ+S+cO5s2bt337dm9vb+rtzz//vHjx4nYzC8y72JSrr9OdmNVj0/LJkyc3bNhAvb106dK33357/fp1jWHPnDnz9OnTI0eOpEvu37+/bdu2X375hWj6Gal/ikOHDhUXFx87dozNA0LfQ7INAAAAAAAAAAAAAGCAUUq2mZqaPnz40MLCot3KJiYmJSUlfD6fLnn69Km9vX1tbS31VinHw3xrampaWlo6bNgw6q1EIjEzM+uDZFt3YlaPTctVVVXm5ub0VScnp+rqao1hGxoaNjc3K9UxMjJqaGggmn5G6p8CybZ+DttIAgAAAAAAAAAAAAAMbHK5XP0RX6opnP6/FKf3Yu5Uy7q6ujo6rJIphoaGxcXFij+jMm2Exc8IBi4k2wAAAAAAAAAAAAAABrYZM2b8/PPPHV2dPXt2SkoKsyQ5OZneGVK96dOn06eOEUJu3brV5SApUqmUTbXuxNz9lpmDmZyc7OrqyqZlX1/fs2fPdnRV/c+oXSzHCrQOyTYAAAAAAAAAAAAAgIFt3759n3322a+//qpQKJqamvLy8kJCQuhTx4KCgj799NOkpKTW1tbW1takpKTdu3cHBQWxaXnXrl3btm27f/9+U1PTjRs34uLiOhubvr5+VFQUIaS8vPzo0aMeHh5s7upOzN1vOS8v7+LFi3V1dfHx8Vu2bNmzZw+blvfv3x8cHPzFF188evRIJpNJJJJr1675+vpSV9X/jChdGyvQOiTbAAAAAAAAAAAAAAAGNnd396ioqKCgIB6PJxAI1q5d29zc/M0331BXx44de+7cuQMHDvB4PB6PFxQUFB4e7uTkRF2l9jakdzhUejtr1qzAwMDly5dbWFicOnXqyy+/ZF6lXlOUXtMiIiL8/f11dHSmTZtWWFgYExPD5t7uxKwem5b//ve/X7lyxdra+p133jl48KCbmxublm1sbBITEwsLC93c3IyNjT08POLj40NDQ6mr6n9GGscK+jO2BwYCAAAAAAAAAAAAAEA/ceLEiYSEhDNnzmg7kBdXS0vLsGHDGhsb+6CvQ4cOFRcXHzt2rA/6gi7AyjYAAAAAAAAAAAAAAIDOOXHixKxZs7QdBfQLetoOAAAAAAAAAAAAAAAAYGAQCoVisVhXV9fDw+PcuXPaDgf6BSTbAAAAAAAAAAAAAAAAWBGJRNoOAfodbCMJAAAAAAAAAAAAAACDxIgRIzgdGDFihLajg8EJK9sAAAAAAAAAAAAAAGCQKCkp0XYI8MLByjYAAAAAAAAAAAAAAACALsLKNgAAAAAAAAAAAACAAaa1tbW+vr64uFjbgUBfkEgkra2t2o4COoRkGwAAAAAAAAAAAADAAJOcnHzp0qVLly5pOxDoI5MmTdJ2CNAhJNsAAAAAAAAAAAAAAAYYLy8vQsiZM2e0HQj0hUOHDmEVY3+GM9sAAAAAAAAAAAAAAAAAugjJNgAAAAAAAAAAAAAAAIAuQrINAAAAAAAAAAAAAAAAoIuQbAMAAAAAAAAAAAAAGMw4HI6aS2qu9qWOIlETYT+JHADJNgAAAAAAAAAAAACAwcDa2rrdcoVC0dEtai71sY4i6ZHgTUxMuhITADt62g4AAAAAAAAAAAAAAKBfe/XVVxsbG7UdxZ/Y2toaGxsrFVZUVCiVxMbG+vr6kj/npRoaGjZv3hwZGeng4HDmzBmlW9zd3QkhqampGmOIiory9/eXyWQmJiaTJk2qrKzMz8+nVpt9/fXXu3fvvnbtWk5OzocffhgWFubn50cI2bJly/Xr18vKyjw8PHbt2jV79uxOP3nHz0V1feTIkaCgoMrKyoiICKpTPp9fX19PL4PrP/nFTiksLHR1ddV2FP1FbGyspaWltqP4A5JtAAAAAAAAAAAAAADq3L179+TJkzweT9uB/CEpKamgoEBjNR8fH4VCobTd4o4dO6ytrSUSSW1tbXBwsNIt7HNR69at+8tf/nL+/PmWlpbr16+/88471O0cDkcul3///fe+vr7r16///vvv/f39W1paCCH79+8/evSoTCb7/fffFy1aVFdXx7IvNs9FlYjF4uzs7Bs3btCdSiQSDoczQHNstOHDhwcEBGg7in5h6dKl1E+2/xjwf7wAAAAAAAAAAAAAAHqVqalpQUGBlZWVtgP5w4kTJxISEqh1aUKhUCwWM68KBAKRSES/VUo18fn8wsJCPp9PCHn69Km5uXnXMgWXL19etmyZTCYzNze3sLA4ffq0m5sbszulFwUFBdu2bUtKSpJKpVOnTk1ISFDqt6OUGPtyZklHrweiQ4cOFRcXHzt2TNuB9AtmZmaZmZk2NjbaDuQPOLMNAAAAAAAAAAAAAGAAE4lECoWCSiZRL5iZNvW6s0Jo4cKFLS0t9fX1GRkZa9eunTt3rvr6K1eu9PT0zMnJefbs2fnz57vcbzf1t0VRMAgg2QYAAAAAAAAAAAAA8AJZtWrVV199JZPJxGJxUFCQ0lV3d3fq2DaNLCwsUlNTdXR0bG1tnZ2dGxoa1NcXiUSurq6mpqbZ2dlHjhzpYvRdoq+vHxUVJZPJ4uLiXn/99b7sGl4ESLYBAAAAAAAAAAAAAAwGlpaWSiUcDoc62Ix+QQg5ePBgWVkZj8dbsGDBhg0bqKv0LXK5nOWOi/b29nfv3nV0dORwOP7+/hEREXRTdIPMlo8fP75x40Y+n79z585169YpVVONs7PlzK6VwoiIiPD39+fxeCEhISdPnmTzdADsDexdSgEAAAAAAAAAAAAAels/P7MNBj2c2caEM9sAAAAAAAAAAAAAAAAABg8k2wAAAAAAAAAAAAAAAAC6CMk2AAAAAAAAAAAAAAAAgC5Csg0AAAAAAAAAAAAAAACgi5BsAwAAAAAAAAAAAAAAAOgiJNsAAAAAAAAAAAAAAAAAugjJNgAAAAAAAAAAAAAAAIAuQrINBrMnT548e/asra1N24EAAAAAAAAAAAAAAMDghGQbDFpSqbS2tra6ulqhUGg7FgAAAAAAAAAAAADoXRwOh8Ph9Gybn376Kf06PDxcV1eXw+EYGBhERUWpds3hcIYNG5adnU0V/v7772vWrPHz81O9hdksDAJ62g4AoLfo6+tbWlrKZDJdXV1txwIAAAAAAAAAAADQ66ytrcvLy3up8cbGRiMjo15qvEcoFIqeTbYVFBTU1NTQbzdv3hwTE7NgwYKoqCh/f/+Wlhal3pVuf+edd5KTk3k8HiEkKSlp7ty59fX11KWampqioqJRo0b1YLSgRVjZBoOWjo7O0KFDzc3NtR0IAAAAAAAAAAAAQF+oqKhgvqXWWh09etTGxkZpZdWWLVucnJy4XO6cOXPi4+PpyocPHzYxMUlKSjp58qSJiQl1S1VVlZubG5fLtbKy+tvf/tbY2Mjsxd3d3d3dXWNs9Nqvdt+qxkPXefbs2caNG01MTAICAqjy5ubmrVu3WllZWVtbh4aGOjo6Mju6efMmm+dV0z4tODh47ty59FuJRLJgwQJCiK+v75QpUzQ+slQqpTJthBAPD4+Ghgb6kre39/HjxzW2AAMFkm0AAAAAAAAAAAAAAIMQtdZKLBZnZ2dHRET4+/vTl/bv35+Xl/fs2bOdO3cuWrSIriyXy7///ntfX9+srKzvv/+euiUgIODQoUMtLS0PHz709vZWSkopFAo2R/koFIrp06cnJSVRb5OSkmbMmEHfqBoPHdLSpUu9vLxEItH8+fOp8l27drW0tGRlZRUVFXG5XIlEwuwoLi4uLy9P4/OqaZ92/fr1sWPHqj7LjRs3rly5wiwxNDSkUnfMJN/jx487Gg1nZ+fr1693PFowwHBwnBUAAAAAAAAAAMDglpGR4eLiou0oANjavn17UFCQtqP4E1NT04KCAisrK20H8ocTJ04kJCScOXOGECIUCsViMfOqQCAQiUSEEA7njywA/bqgoGDbtm1JSUlSqXTq1KkJCQlUOV1B6YWZmRkzoWVhYVFZWdmFmK9fv37w4MFffvmFEDJnzpzt27fPmTNHTTxUAHV1dcbGxsx2rK2tHzx4wOfzVbvgcDgymUxPT4/N83bUPm3o0KEikUjp6q+//jphwoThw4e3e0tpaemYMWOoHSaZg6/0tra21s7O7tmzZ5rG7P8cOnSouLj42LFjLOsPbmZmZpmZmTY2NtoO5A84sw0AAAAAAAAAAGDwc3BwuH37trajANAsKCgIS0Q6i8qrEZXsTkdWrly5atWqkydP8vn86upqa2tr9fVdXFx6ZBnW3Llz//73vyckJBBCmpubqUybxnhUM2Gtra1qeqEybUydbZ+mOphhYWEzZszoKNNGCLGzs5PJZB1dlcvlurq6HTUOAxeSbQAAAAAAAAAAAIOfrq4ufXQQQH82ZMiQpqYmbUcxyIlEIldXV1NT0+zs7B9//FFj/QULFoSEhMyfP18gEOjoKJ9ORR3YlpqayqbrPXv27N69m3rR5XiWL19+6NChffv2VVVV3bp166effvrhhx/U1O9s+7QRI0aIxWL6TLgLFy5MnDjRwcGB/Dmv6eXlNXv27Lfeemv06NFRUVH6+vpUuaGhYVJSkoeHByEkLS3N1NS0ra2NSraVlZWNGjWKfSTQz+HMNgAAAAAAAAAAAACAwcDS0pL5lsPhtPvf48ePb9y4kc/n79y5c926dVQ5swLzBSHkgw8+qKqq8vLy4vP58+bNO3DgALMXuVzOfpGWt7d3W1ubQqF47bXX6MJ242H+lw6PcujQoWfPnllaWo4fPz46OvrgwYNdeF417dPmzp2bm5tLv12/fv3UqVNVK0dFRZWUlLi4uHA4HH9//4iICKr87Nmzs2bN4nA4FhYWS5YsuXz5Mp2Hy83NnTdvHstBg/4PZ7YBAAAAAAAAAAAMchkZGW+++WZOTo62AwHQLDAwsKmpCWe2acQ8sw16SX5+/j//+c/eOClt8+bNH330EfvFbTizjakfntmGlW0w2Mjlcm2HAAAAAAAAAAAAPaDdhSZ9cC8wYSThRebo6Dhs2LDeaJnP52MbycEEyTYYVFpaWoqLi8VisbYDAQAAAAAAAAAAVjravQ0AoD/Yu3dvbzT7j3/8ozeaBW3R03YAAD2ptrZWoVDg9zMAAAAAABgQamtrq6urtR0FwIvOxsbGwMBA21G80NR8mdPRCTgCgUDjZGucntNTMJIAABoh2QaDh0KhqK2tJYQMHTpU27EAAAAAAABoFh4e/vHHH1taWmo7EIAX1+PHjzMyMiZMmKDtQKBzysvLtR1C+6RS6UsvvfTi9AsAABQk22DwqK+vl8vlenp6RkZG2o4FAAAAAACAFT8/v7CwMG1HAfDiGj16tLZD6Nfy8vJ27dp18+bN5uZmV1fXwMDA9957Lz8/n7qak5Pz3//932lpaYSQadOm7d+/38nJibpErVSrq6tbs2ZNbGwsISQiIsLPz49uOTo6eufOnWVlZYsXL/7uu+9Uuy4oKHB0dCQqy6rGjBnz8OFD8ueDxJTqdHRvN2NWLyIiYtu2bWKxmMvlvvLKK/v27XNxcaEuCYVCsVhsb29fVFRECBk9enRRUZGNjc3jx4+Z/b711ltXr161s7P7xz/+sXz5crplqoJCobh+/XpAQEBTU9Phw4d9fX019hsVFeXv7y+TyUxNTb29vbds2bJly5asrCw2V7U4ksDe/fv3L1++LBQKtR0I9AWpVDpu3DhtRwEdQrINBg9qWZupqam2AwEAAAAAAAAAGPBycnJ8fHx27dp19OhRCwuLJ0+exMTESCQS+upbb70VERFhb29PCHn06NEbb7wRGhpKZVyonSEDAgI++uijqKioS5cu+fv7t7S0UPf+9ttvn3322fnz58eMGZOUlPTxxx+r9u7g4NDu9pKFhYWEEA6Ho2Zvw47u7U7M6sXHx4eFhcXExDg7O8vl8vT09M2bN3/zzTeurq6EkMTExPfee+/UqVNU5Vu3bm3YsIFOMVL9Hjp06O233z579mxlZeXatWt5PJ63tzezwj//+c+6urq4uDhra+uVK1dSyTb1/fr7+1NZrra2tqdPn167dq2yspKOWf1VbY0kdIq1tfWECRO2bt2q7UCgL1y+fFkqlWo7CuiYAmBQkMlk+fn5+fn5LS0t2o4FAAAAAACAle+++27t2rXajgLghTZq1Kj79+9rO4q+kJ6e7uzs3KlbFi1adPr06Y6uLly4MDY2llkSGxu7ePFi+i0h5Pz588y39Ou5c+f++uuv9Nvo6OiOvqXsbLn6Ot2JWb1XX321uLiYWXLv3r3XX3+dfltSUjJ//nyRSFRWVjZ//vySkhKlUC9dukS/TU1N9fb2Vqpw/fp1+m1rayubfk1MTOLi4p4/f95uzOqvKvWuVNJ7I0n5/PPPt2/f3qlb+oCJiUlFRYW2o/iT48ePr1mzRttRQB85ePDg+++/r+0o+gs+n//48WNtR/EnWNkGgwS1rM3IyEhfX1/bsQAAAAAAAAAADHjx8fEhISFqroaGhjJL3N3d/f39mSUrVqxo997k5GR6q0NCiKenZ7cCZa07MauXmppKrfFiYh50Ymdnd+LEiY0bNyoUiuDgYFtbW6XKXl5e9OtJkyalpqYqVZgzZw79WldXl02/KSkpW7ZsuXXr1vDhwydMmGBoaHj06FFra2s2V9XrvZEEABigkGyDQQJ7SAIAAAAAAMAgpn7TvN67F15kcrlcdf9AJtU/V/3/T1ovxWxoaJiTkzNy5EiNNTkcjvpRpRgYGHS/33Hjxt24cYNZ4uvre+XKFTZXNRqIP/1B6d///vfOnTu1HQX0hdTU1LFjx2o7CugQkm0wGDQ2NspkMh0dHWNjY23HAgAAAAAAAOpQ3zLjO9l2YXCgX5kxY8bPP/+8YcOGdq/Onj07JSWFOjmMkpycTB8zpt706dPv3Lnz+uuvU29v3brVzVClUulLL72ksVp3YlbP19f37Nmzn3zySUcVSktLN23adPLkSYVC8V//9V/Hjx+3s7NjVkhKSvrLX/5Cvb537x5z5V93+lUSGxvb5atMvTeS0CnTpk1bu3attqOAPjJv3rwpU6ZoOwroEJJtMBhQy9pMTEzYzAwCAAAAAAAALVIoFPjs1hE1g9NRBk4gEIjFYo3NdjcyeCHt27fPz8/Pzs7O29u7ubm5tLQ0ISEhKSnp1KlThJCgoKDVq1fzeDx3d3dCSGpq6u7du8PDw9m0vGvXrg8++ODs2bNjxoxJSkqKi4vrbGz6+vpRUVF+fn7l5eWRkZGhoaHp6eka7+pOzOrt37/f09NToVCsWbNGKBTW1dWlpaUdOXKEWihWUlLy7rvvnjp1itqk8eTJkxs3bvzuu+9GjBhBt1BUVHT9+vWZM2dWVlYGBATs27ev+/1aWFiEhIS8+uqrPB6PEJKUlMQ8fkX9VfV6byShUyZPnjx58mRtRwEAhBCio+0AALqrra2tvr6eYA9JAAAAAAAAYEEqlWo7hJ5UXl6u7RBg0HJ3d4+KigoKCuLxeAKBYO3atc3Nzd988w11dezYsefOnTtw4ACPx+PxeEFBQeHh4U5OTtRVKm1MJ4+V3s6aNSswMHD58uUWFhanTp368ssvmVfJf/ZapO9S3XoxIiLC399fR0dn2rRphYWFMTExbO7tTszq2djYJCYmFhYWurm5GRsbe3h4ME81mz59+tWrV6dPn069nTZt2tWrVz08PJgtvP/++z/99JO5ufns2bPff/995lWlZ2GGpL5fe3t7gUDw/vvvCwQCFxeXVatWRURE0Peqv6qtkQQAGKgUAD3q888///zzz/uyx5qamvz8/JKSkr7sFAAAAAAAoPu+++67tWvXajuKXpGbm7t06dJhw4YNGTLE09Pz119/dXBwoK8SQh49evTqq6/q6urq6+tfvHiReW9QUJCrq6uJiYmNjc2HH35YXV3NvJEQUldXt3jxYn19fdV7f/rppzFjxnC53DfffLOhoUHpq48ff/xRIBAQQrhc7ty5c+/cudNTT5Sdnb148WKBQCAQCPz8/HJzc9nHfOnSJWdnZ2Nj4zfffLOurk71u5r8/Px2v8MZPXq0xu95Orq3mzEPJqNGjbp//762o+gL6enpzs7O2o4C2ocvaZV8/vnn27dv13YUykxMTCoqKrQdBQAoFAoFn89//PixtqP4kz9tI9nS0nLnzp38/Pyqqqrm5uYhQ4aYm5s7OTm5uroyz+QMDAxkmckLDAxUqqyvrz9s2LAxY8a88sorqsdrtbW1paenZ2VlVVZWUlstm5ubjxw5cvz48cOHD2fZaVlZ2e3bt0tKShoaGgwNDUeOHOnm5sZclK0m2i5cAq2j9pDEsjYAAAAAIP/51R2/wANoV05Ojo+Pz65du44ePWphYfHkyZOYmBiJRMKss2nTpq+//nrq1KmXLl3y9/dvaWmhL02ePHn79u2EEIlEcvjwYT8/v99//526pFAoOBxOQEDARx99FBUVpXRvSkrKZ599duHChbFjx/773/+m/ipQ/Cd1FB8fHxYWFhMT4+zsLJfL09PTN2/e/M0337i6unbziXJyct56662IiAh7e3tCyKNHj954443Q0FBqkYf6mH/77bfPPvvs/Pnz1GZ6H3/8sWrvVFZPdVFIYWEhIYTD4Sg63iWyo3u7EzMAAAAAKPkj2VZSUnLhwgVqOz5KQ0NDQ0NDSUlJYmLiypUr2eSrNJLJZFVVVVVVVffv39+4cSO1IzClpaXlzJkzjx8/pkuampoeP378+PHjhIQElp+W//Wvf/3222/0b5n19fVZWVlZWVn4sD1YSaVSqVTK4XBMTEy0HQsAAADAAMbMUXVqdh37CXN0s9OmTVuwYIFqa7GxsampqUqVaa2trZmZmfn5+eXl5Y2Njbq6unw+39HR0d3dncvlsgx4YOnmiAFo0c6dO/fs2bNu3TrqrY2Nzbvvvvvuu+8y6wQFBVHHzPj5+clkMualefPmUS/4fH5gYKDqGUKvvfaal5eX6r2BgYFff/31yy+/TAiZPn260klmgYGBp0+fHjlyJPV25syZwcHB27Zt++WXX7r5RDt27NizZw+VtSKEjBw5cvfu3Tt27Lh06ZLGmPft23f48OGJEycSQry9vRsaGo4fP64xnu7rTswA0LPoXRbVJM4BAKCf+79k2+PHj8PCwuRyuUAgeOWVV0aMGGFoaNjU1FRaWpqYmCgSicLCwv7617/a2NiQ9j7FafxMTl9qaGh4/PjxtWvXampqbt68uWzZMrrOv/71r8ePH3O53NmzZzs4OBgbG8tksurq6uLi4qysLDYPk5aW9q9//UtHR8fDw2PKlCk8Hq+5ubmoqOj27dtsxwOfUQcaalkbl8vV1dXVdiwAAAAAL5yuTZi7d+/enDlz9PT+tM2GTCa7d+9eRx2VlZVduHDh+fPndElra2t5eXl5eXlycrKPjw/13fpg1YURg16CpZMsxcfHh4SEqK9DZdpUSaXSr776KiwsrLS01MjI6OWXX1b99nnFihXt3nvnzp1p06bRb2fOnMm8mpqaSueWaEZGRurjpKh/IuYJSRR3d3d/f382MScnJ7u4uNBvPT092cTTfd2JGQB6FnJsAACDgB4hRC6X//TTT3K5/OWXX160aJGOjg51zdjYeNy4cc7Ozj///PPdu3cjIyO3bNnSzZQGl8t1dnY2MjI6depUUVER89KDBw8IIUuXLqX3HNfV1bWxsbGxsaEmUqnX0NBATUZbuHDhlClT6O4mTpxITRCDwUehUFDb2WMPSQAAAIAexH523fXr1zs7YU4oFIpEouzs7EmTJjHLs7Ozm5ubqatKt5SVlYWGhra2tgoEgmnTpo0YMcLY2Li1tVUikeTn56elpV26dGkQJ9u6MGIAWieXy1X3LWTpww8/tLCwuHXr1rBhw2QyWUlJydixYzm15mgAACAASURBVHskKkNDw5ycHHplW6dofCLV78r7/7fnAzFmAG0ZMWJEaWlpu5fs7OxKSkr6OB4AAOhv9Agh9+7de/bsmYWFxcKFC+lMG01HR2fhwoUikYja+7FHPsRS+8lIpVJmIZU1sbW17VqbmZmZLS0ttra2dKatN1DfL3z++efp6ekZGRnV1dUymezzzz8nhIhEort37z569KimpobD4QwdOtTJycnT09PQ0FC1hcDAwLt376alpVVVVeno6Nja2np7e1PDkpmZSZUrFApbW9s5c+aonldXU1OTlJT08OHD2tpaPT09a2vradOmOTs70xX+53/+59mzZ5s2bbK2tqZKoqKiMjMzCSGTJ0/28/OjCsvLy48fP87j8bZu3Urf+/jx46SkpMePHzc1NRkaGtrZ2Xl4eFCLGtmMgyqpVHrx4sW8vDwdHZ0FCxa4ubl1ctQ71NjYKJfL9fT0WE5FBAAAAICe1YUJc1OnThWJROnp6Uqpo4yMDEKIi4uLUupILpdHRka2tra6urr6+PjQH1j09PQEAoFAIPDw8IiNje3xR+s/OjtiAP3BjBkzfv755w0bNnTh3h9//LG4uHjYsGGEED09PTMzM/b3urq6pqWlzZkzh3r766+/Mq/6+vqePXv2k08+6UJU6p9o9uzZKSkpvr6+dElycrK3tzeblqdPn37nzp3XX3+denvr1q0uhMdE7eirsVp3YgZ4ASGdBgAA6ukRQvLy8ggh06dP72jVmq6u7rRp02JiYvLy8nok2VZeXk5UViOZmJg8f/68sLBw3LhxXWjz4cOHhBClz5+95MqVK3fu3FEqDA4OZr6trq6urq7Ozs5+++23VVNBcXFxzM0tCwoKSkpK3n777bS0NPrQBULIw4cPy8rKNm3axOfzmYURERH0ucStra3FxcXFxcWvvvrqa6+9RhWOGjUqIyOjuLiYTrYVFxcrvSCEUIsLmdtopKWlxcbGMg+9y87OzsnJ+ctf/sLc10LNOCipqakJDw+vrKw0MjJasWKF6pYd3UHtI2RqatrlKZMAAAAA0B1dmDA3ceLEa9eulZSUVFdXm5ubU4XV1dUlJSUGBgYTJkz4+eefmfWpqYHDhw9nZtqYDAwMlixZolqemZl5+/ZtanKbnZ0dPbmN1tnZchobJIQUFBQkJiaWl5crFApzc3MXFxcXF5d21wVqnD/X5RHrjUdj2WCPj0DfTFVkPxT0IzCfBVtKtmvfvn1+fn7UGDY3N5eWliYkJCQlJZ06dUrjvQ4ODidOnNi8ebNUKr18+fK5c+fY9xsYGLhp06YLFy7Y29unpaX99ttvzKv79+/39PRUKBRr1qwRCoV1dXVpaWlHjhy5cuVKN58oKCho9erVPB7P3d2dEJKamrp79+7w8HA2Me/ateuDDz44e/bsmDFjkpKS4uLi2D8vRV9fPyoqys/Pr7y8PDIyMjQ0ND09XeNd3YkZAAAAAJToEUKoE4PVZ0Goq0pnC3dBY2NjSUnJtWvXCCFKuztOmjQpISHh4sWLDx8+dHJyEgqFnTrnvLKykhBia2v74MGDpKSkyspKXV1dS0vLKVOmvPzyyz2bjElPT/fw8Jg6dSqfz6c/8I8cOdLFxcXOzs7Y2LilpUUsFt+8eVMkEiUkJNBnO9PS0tJeeeWVqVOnmpqaPnnyJDo6uqqq6uzZs7W1tarlCQkJixcvpm6sra09f/58S0vLxIkTPTw8zMzMmpqaHjx4EB8f//vvv48ePXrEiBGEEHt7eyrZ5uHhQQiprq6ura01NjZWKBS1tbX0p3Qq8Ub/6CsqKuLi4hQKxZQpUzw9PYcNG/bs2bOEhIS7d+/Gxsba2tpaWlpqHAemR48enT9/vrGx0dLS8o033uDxeD34U5DL5Y2NjQR7SAIAAABoTxcmzFH5oYyMjIyMjLlz51KF1CKtiRMnGhgYKNWnpwa2+wtnR65du5acnEy/pSa3bdq0iblEplOz5dg0mJKScvXqVfqtWCwWi8UVFRWq4bGZP0fr7Ij1xqOxbLCXRqC3pyp2aiiAJXd396ioqE8++WT58uUcDsfBwWHdunXffPMNdZX6hM7hcKiJnkpvz5w58+677+7Zs4fH461evToyMpKaYdluZaW306dP3717t4+PT3l5+aJFi06cOPG///u/dFQ2NjaJiYmffPKJm5tbbW2tvb39kiVLlM4t69oTjR079ty5czt27IiPjyeEvPbaa+Hh4U5OTmyed9asWYGBgcuXLxeJRIsXL/7uu+++++47+ipdX+k1c7/HiIgIf3//1tZWGxsbPz+/mJgY1fqq93YnZgAAAABQokcIYZOxoK5SNbtAda7fxIkTX331VWbJrFmzamtrMzMz09PTqUlYpqamI0eOnDx5Mr0pjRpNTU2EkKysLHrLBZlMVlpaWlpaWlBQsGLFCpb5to4OqGByc3OjP+XS1q9fT782NDQcPXq0ubn54cOH8/PzVZNtr7zyCr05g42NjY+Pz+nTp589e+bl5aVazlyLlpKSIpVKmVtBGhgYeHh46OrqxsXFpaam0sk2QkhJSYlcLtfV1aWTagqFIisrq7i42NzcXC6XU0vg6WTb7du329raHB0d6dyemZnZkiVL6uvrCwsLU1JSFi1apHEcaHfu3ImNjW1ra3Nyclq6dCmbXSw6hcPhmJmZSaVSfX39nm0ZAAAAAFjq2oQ5FxeXjIyMzMxMb29vXV1duVx+9+5dQsjUqVNVK1O7YlC/5bJ3+/ZtLy+vKVOmGBsbV1RUREdHP336NCEhgbkGrlOz5TQ2WFFRcf36dUKIm5ubh4eHqalpbW1tUlJSWlqaUlMs5891ecR6/NFYNth7I9DbUxXZD0VgYGBH5xeCKnd3d+pgdVVKCRult05OTlT6p90K6u8lhCxbtmzZsmXU66qqKhMTE+ZVoVDIMrumSs0TEULGjh2rusy03SBVY166dOnSpUvZ11fi5+dHZ5TVd62kOzHDQJSbm5ubm4vNgWCgmDZtmrZDAADoBD2t9Dp06NCZM2cq7Vqpq6vr5+fn4eGRlZVVUlJSUVFRW1t77969e/fujRs3btmyZR3tckmhfvNLTEwcMmTIvHnzHB0dCSH5+flXr17Nzs5OS0ujNkboEa6urqqF1CfJoqKiZ8+eMX/NpbY6VKL0qVggEKgppzbnoRQWFpL2/rEZP358XFzc48ePqbfGxsaWlpaVlZUikcjOzo65XWRWVlZRUZGbm1tZWZlMJrO0tDQ2NqbuonJvnp6eSo17eXkVFhY+evSIzThQrly5Qn2o9vT09Pb27o3f5HR0dHp2qRwAAAAAdFbXJswJhUIrK6snT57k5uaOHz8+Nze3sbFx+PDhQqFQtXJDQwMhROnrco28vLxmz55Nvbazs/P19Q0LC1P6hbZTs+U0NpiamtrW1jZu3Dj6ACQej+fr69vQ0JCdnc1siuX8OaZOjViPPxrLBntvBHp7qmKnhgIGELFYvGfPnoCAAG0HAtBfODs7Ozs75+TkaDsQAM0CAwOplRUAAAOFHiHEyMiotra2traWuduGktraWqpm17qh5v21trZWVlb+8ssvxcXFZ8+eff/991XXJFlZWVlZWRFCFArFkydPsrOzU1JSsrOzzc3NVXf5YDIwMGhqalIoFPPnz6cPlpsyZQohJDo6+u7duyyTbWymKKrmeKqqqk6dOtXuvwGtra2qhdRRzzR61Ve75XK5nC6pqakhhISEhJD2JvdR30RQ7O3tKysri4qKbG1tqc+Ho0aNoqo9evRIoVCoHthG/ZQtLCyUoqV2j2Tm/Chqcl1Upm327NkzZ87sqA4AAAAADHRdnjDn4uISGxubkZExfvx4KkunekJwdygdNU0lpZR+oe3UbDmNDVK/clO7uDPNmDFDKdXEcv6ckk6NWM8+GssGe28EenuqIo3NUED/9+WXX+7YsYMQYmFhsXv37r/97W/ajggAAAAABj89QohAIKitrS0uLlaTbKOmB9KfarrYmZ6eQCBYvXr1iRMnqqqqUlJSvLy8OqrM4XCGDx8+fPhwa2vriIiIe/fuqU+28Xg8KtdFrWmjUW+rqqq6E7kS1Rzhr7/+2tTUJBQKvb29raysDA0NdXR0Wltbv/jii3Zb6Gill8YVYFS2rK2trd2rzLScvb397du3i4uLnZycmpqa+Hw+lcnj8Xg1NTXl5eXUz3TUqFHqe1RDzf6NI0eOfPTo0e3bt8eMGdPRfFsAAAAAGBy6MGFu0qRJv/zyS1FRUVFRUXFxsb6+vtKJzjQul/v8+fO6urpO7WqgcRJbj8yWYzZITVxTPdyLOiyZif38OSb2I9bjj8aywd4bgT6YqsiyQRgQtm/fvn37dm1HAQAAAAAvFj1CiJOTU25ubkpKyssvv9zuzFO5XE6dR02flNsd+vr68+bN++GHH1JSUmbMmKGnp2EryzFjxhAW0wmtra3FYnFHV3t7Q2pqFufy5cuZXwE8ffq0xzsaOnTo06dPt2zZovGM7pEjR+ro6JSVlVFHytMr2EaNGpWenp6XlycSiXR0dJgbp5iamkokkqqqKjs7O2ZTlZWVpJNb97z55pvh4eFFRUVhYWFvvPHGyJEj2d8LAAAAAAMU+wlzQ4YMGTduXGZmZmRkpEKhGD9+/JAhQ9qtaW1t/fz585KSkk4l2zT+/t9Ts+W6gP38OSb2I9bjj9bZBjXq7Aj0wVRFlg3CIDZixIjS0tJ2L9nZ2VFnLgAAAAAAdESPEDJp0qTffvutqqrq8uXLixYt0tHRYdZoa2u7fPlyVVXVsGHDOpo72VljxowRCARisfju3btqzv2ilJWVEULoc8U6MnbsWGo3lYKCgsmTJ9Pl+fn5pL2tEXsW9TlNKXGYlJTU4x05OjomJycnJiYuWrRIfc0hQ4ZYW1uLRKKUlBTCWMFmb2+fnp6ekpIil8uFQiHzI/qIESMkEkliYqJSsu3WrVuEkE4lzPT19VevXv3jjz8WFhb+8MMPK1euVFpxCAAAAACDGJsJcy4uLpmZmY2NjURlP0AmemrgpEmTlD6qdEePz5ajJq49ffrUxsaGWV5dXa1Uk/38OSUsR6zHH41lg30wAp3VZx3BIIB0GoASDofDXBOsdIn8ecUw+zY13qim3x6pDwAA0Et0CCG6urrUaQp3794NCQl58OBBfX29XC6nDrI+efLk3bt36To91fErr7xCCElOTqb/RTx27NiNGzcKCwufP3/e2toqk8kkEklSUtKFCxcIIePGjVPf4OjRo6ldLq9evUp9BG1sbLx79+61a9dIT58AoYraNic6Orqqqkomk1VWVkZHR2dmZvZ4Rx4eHkZGRhkZGeHh4Q8fPqyrq2tra2tubhaLxUlJScePH2dWplazNTc3czgcOlVmb2/P4XCkUilR2UNy2rRpOjo6eXl5ly9flkgkcrlcIpFER0cXFBTo6uqqHnWgnp6e3qpVqxwdHVtbW3/88cf79+9358EBAAAAYABhM2HOzs6OmhJnYWGhNNmLadKkScOGDauoqIiNjW13iVJLS8ulS5c6G2GPz5ajft9WbSE5OVmphJqFlpiY2NkuWI5Yjz8aywb7YAQ6qzc6osaB+jwFADAIWFtbt1uuJoPV5eQWmxs72zj7+p3asQkAAKCz/u/zkq2t7bp1686fPy8Wi6nkFhOXy12xYoWtrW0Pdjx27Fgej/f06dO8vDxnZ2dCSFVVVVVVVUJCgmplW1vbWbNmqW+Qw+EsX7781KlT9fX1UVFRzEuTJ0+eMmVKz8XejlmzZp07d66wsJA6gpvi7u6emprasx2ZmJisXr06IiIiLy+P2h9SjVGjRlGL0qysrLhcLlXI5XItLS2fPHlCGHtLUoYPH75gwYLY2Nj09HRqmSCFw+H4+PhQCcVO0dPT8/f3v3DhQm5u7sWLF6VSqcaFjAAAAAAwgBw7dszZ2XnEiBEWFhZcLlehUNTV1eXm5lK/hWqcMLd582aNXejq6i5fvjw0NPTOnTtisXj69OkjRowwNjZubW2VSCT5+fmpqakNDQ1LlizpVORWVlYikSg6OnrevHnDhg2rqalJTk7uzmw5d3f3u3fvZmdnx8bGzpgxw9TUtLa2Njk5OTs7W6mmh4dHZmZmRkZGQ0ODu7u7paUll8ttaWmRSCSPHj26f//+pk2bOuqFzYj1+KOxbLBvRqBTeqMjarXcv//976lTpxoYGHQ/yLq6uqKioh9++KH7TQFA19TX17/IGfSKigqlktjYWF9fX/LnPFZDQ8PmzZsjIyMdHBzOnDmjdIu7uzshhOWXYKWlpStXrszLy/Pz8zt69Cj9hVW7/TY2Nm7dujUyMtLe3j48PJz6CpGq0G59avHckSNHgoKCKisrIyIi/Pz8CCF8Pr++vp7eLhiL4QAAoMf9MTlxxIgRW7duvXPnTl5eXlVVVXNz85AhQywsLBwdHV1dXekzqHuKjo7OjBkzYmNjExMTqX8pN2/enJubW1JSUllZSR1VbWRkZGVlNX78+MmTJ7PZMYbP57/33nsJCQl5eXm1tbX6+vrDhw93cXHpqd0v1XBwcFi9evXvv/9eXl6uo6NjYWHh4uIyderUHk+2EUJsbGzef/996idVXV3d0tJiYGBgZmbm4OCg9HWGra2tnp5ea2urUlJt1KhRT5480dPTU50P6+bmZmVllZycXFpa2tTUZGhoaGdn5+Hh0eVUq66u7sqVK3/66acHDx7ExMQ0Nzd7enp2rSkAAAAA6G+6OWGOJRsbm/Xr11+4cEEsFl+8eFHpqoGBQWczbaQXZssNHz58zpw5165dS01NZTbi6up6584d5h4hnZo/1wU9/mgsG+w/I9CrHY0bNy4hIeHq1atXr16lSgIDA7vTYG5u7p07dz7++OMeCA4AuqS6ulo14fQi8/HxUSgUSsdY7tixw9raWiKR1NbWBgcHK93SqdxVaGhoZGSkkZFRYGDg9u3bjx07pr5fPp9fUVHR2toaEhLC7Kvd+lSJWCzOzs6+ceOGv79/S0sLIUQikWDDSQAA6FV/2gnEwMDAw8PDw8Ojs62o+XSh5pK7uzs184ViYWFhYWHh5eXV2d6ZuFzu/Pnz58+f34V72XxGUlPHwcHBwcFBY/2OWuhUuaGhoZeXl8ax0tfX//TTT1XL582bN2/evI7usrOzU7MpjZqoOrqko6OzYsWKFStWqG+TJbFYrKOjY2Zmpq+v3yMNAgAAAECXdX/CHEs2NjZbtmzJzMzMy8urqKhobGzU1dXl8/mOjo7u7u70pHj2emO23IwZM8zNzRMTE8ViMSHE3NzcxcVl3Lhxd+7cUZq8yH7+XBf0+KOxb7CfjECvdjRz5kyFQpGdnf38+XNqg81ucnNza2lpCQsL635TANA1o0ePHjFihLaj6GtCoZD6u5r8ZzWYQCAQiUQd1admXRgYGJibm7/zzju7du1iXk1LS2Pf9caNG4VCISEkMDDQ2dmZTra1KyIiIjc396WXXnrppZdWr1794Ycfsuli//79hBA/Pz+ZTMY+MAAAgO7AnA4YSFpbW4uLiwkh9vb2SodGAAAAAAD0Qw8fPjxz5oytre3GjRu1HYt2YATUO378eGJiIpJtAFo0evTo6OjoCRMmaDuQXpeRkfHmm2/m5OQwCzta76VUzufzCwsL+Xw+IaS8vFwgEHTtG0UOh1NWVkYl26qrqydMmKC0rFCpXysrq5ycHKrfyspKKysrpX5V42eWdPSamnvRhfihzwQGBjY1NQUFBWk7kD8xNTUtKCjowlE7ANDjzMzMMjMzbWxstB3IH3psqilAH6C2vrS0tESmDQAAAAD6P4VCQe2xOWrUKG3Hoh0YAQCAwWHVqlVfffWVTCYTi8Wq+Q+lzavUCw4OLisrq6mp2bt378qVK9VX9vf3P3z4cFtbW319PbWNZJfp6+tHRUXJZLK4uLjXX3+9O00BAACoQrINBpiXXnpp6NCh2o4CAAAAAEDZqVOnMjMzq6urZTKZVCotLi4OCwt79OiRgYHB1KlTtR1dX8AIAAAMOJaWlkolHA6H2liSfkEIOXjwYFlZGY/HW7BgwYYNG8h/Np+kyOVyNgvdqFvWr1+/dOnSUaNG1dfXHzhwQH2/Bw4cqKioMDc39/T0XLhwocY46RKl/xJCIiIi/P39eTxeSEjIyZMn2Q0PAAAAW1geBAAAAAAA0ANKS0tLS0uVCnV1dRcvXvyCTBfDCPS2jnZ7I//5NrkLu7qxuVFNvz1SHwC06MmTJ0ol7f7/y+VyT58+ffr06XbrpKens+mLvqvdY0Tb7dfIyCg4ODg4OFgmk8XExDCP22y3PrNQqYKfn19LSwubOAEAALoAyTYAAAAAAIAesGHDhvT0dLFYXFtbK5fLTUxMRo4cOWPGDNVFA4MVRqCnWFtbl5eXq5aryWApFArmKhP22NzY2cwZ+/omJiZ1dXWdahwAXjSffPLJvn37DAwMfHx8bt68qe1wAAAA2odkGwAAAAAAQA+ws7Ozs7PTdhTahBHoKRUVFUolsbGxvr6+5M95rIaGhs2bN0dGRjo4OJw5c0bpFur8pHaXj6gqLS1duXJlXl6en5/f0aNHuVyumn4bGxu3bt0aGRlpb28fHh7u7OxMV2i3PpXMO3LkSFBQUGVlZUREhJ+fHyGEz+fX19fTqT4shgOAdu3du3fv3r3ajgIAAEADJNsAAAAAAAAA+jUfHx/VJWg7duywtraWSCS1tbXBwcFKt3QqdxUaGhoZGWlkZBQYGLh9+/Zjx46p75fP51dUVLS2toaEhDD7arc+VSIWi7Ozs2/cuOHv70/t5CaRSLDhJAAAQI/44IMPpFKptqOAAU9XV/fbb7/VdhQDFX6vBQAAAAAAANCO48ePJyYmhoWFEUKEQqFYLGZeFQgEIpGIfquUmuLz+YWFhXw+nxDy9OlTc3Pzrn3A53A4ZWVlQqGQECKRSJydnSsrK5UqMFu2tLTMzc2l+q2qqrK0tFTqVzWFxizp6DWAtowePTo6OnrChAnaDqTXZWRkvPnmmzk5OdoOBECzwMDApqamoKAgbQfyJ6ampgUFBVZWVtoOpB0mJiaBgYEmJibaDgQGsKampoCAgIFyvKWZmVlmZqaNjY22A/kDVrYBAAAAAAAAaB+dV+tCCqqnvhZpa2vT0dFRX4e5cK0HU2UtLS0GBgY91RoAAMCLZu3atTgoF7rj+fPnAQEB2o5iANPwOzRAfyCXy7UdAgAAAAAAQP+yatWqr776SiaTicVi1bn/7u7u1LFtbAQHB5eVldXU1Ozdu3flypXqK/v7+x8+fLitra2+vp7aRrLL9PX1o6KiZDJZXFzc66+/3p2mAAAAAAC0CMk2GAAqKyuLiooaGhq0HQgAAAAAAECvU52WzuFwqPVk9AtCyMGDB8vKyng83oIFCzZs2ED+vOZMLpezWXZG3bJ+/fqlS5eOGjWqvr7+wIED6vs9cOBARUWFubm5p6fnwoULNcZJlyj9lxASERHh7+/P4/FCQkJOnjzJbngAAAAAAPodbCMJ/Z1cLm9oaFAoFPr6+tqOBQAAAAAAoNc9efJEqaTdtBmXyz19+vTp06fbrZOens6mL/qu1NRUNVeZjIyMgoODg4ODZTJZTEzMuHHj1NdnFipV8PPzGyjnggAAAAAAqIGVbdDf1dfXKxSKl156Cdv3AwAAAAAA9AeffPIJh8MxNjYOCwu7efOmtsMBgH6NudSVWdjZRnouos613278LNvUeGN/GweAntKdP6sv2p/zF+15BzEk26C/q6urI4SYmJhoOxAAAAAAAAAghJC9e/cqFAqpVBoVFWVlZaXtcACg66ytrXu7C41rXinqv/lhsy9ud6hpv8tds7mxs42zr49v0qAPdDkVDephYAcoJNugX2ttbW1qaiL4FQEAAAAAAAAAoKdVVFQw3zY3N2/dutXKysra2jo0NNTR0ZEql8lkO3fudHJycnR03L59O70BLPWN8NGjR21sbAwMDKKioqjyhoaG9evXGxsbT5kyJSsri9lFbGys6vfIfD6/vr6e8x8a63c2HjXabV9N/IQQd3d3d3d3jS1TSktLp0+fzuPxNmzY0NDQoL7fxsbGt99+m8fjTZ06NS8vj1mh3fodPa+a8QToQV3IUgsEgu40qxXqY2bzROqpPm/3R6D7UUEXINkG/Rq1rM3Q0FBPD+cLAgAAAAAAAAD0ol27drW0tGRlZRUVFXG5XIlEQpV/+umnQqEwLy8vPz9fKBR++umnVDn1jbBYLM7Ozo6IiPD396fKd+zYYW1tLZFIfvnll8uXLzO78PHxUf0emepI8R8a63c2HjXabV9N/HScGlumhIaGRkZGPnz40NjYePv27Rr75fP5FRUVCQkJV69eJYzv3Nut39HzqhlPAO0qLy/Xdgidpj7m/vlEGqOSSqV9E8kLBck26NeoZJupqam2AwEAAAAAAAAAGCSEQiG95ol6IRQKCSHh4eF79+61sLAwNDRcsWJFdXU1Vf/06dNr166lXq9bt+7MmTPM1vbv329qaurn5yeTyaiSc+fOBQQEGBgYmJubv/POOz0ef2fj6Sz18aelpaWlpbFsauPGjTY2Nnw+PzAw8MKFC+orR0RE7Nix46WXXuJyuatXr2bZRfefFwafvLy8ZcuW8Xg8Q0NDLy+vGzdu0AtVCSE5OTlLliwRCoVCoXDp0qV5eXn0JeovhPr6+iVLlhgYGKiuEI2Ojh47dqyJicmaNWvq6+tVuy4oKGh3SeWYMWOYf+e0W6eje7sZs3pffvmlm5ubqampra3t//t//+/p06csY9b4RHTJ9evXJ0+e7OjoeOXKFZbPSwiRyWSbNm0yMTFxcHCIjIxUbbbdtxqjioiIEAqFQ4YMMTY2njdvXnp6OvuxAvWQbIP+q6WlRSqVcjgcY2NjbccCAAAAAAAAADBIiEQies0T9UIkEhFCWltbO7qlywuk6D0ee/aWPluw1YX4y8ZVTAAAIABJREFU29XW1qajo+GbWOZ34j34gD31CDBQ5OTkzJ8/f/78+Q8ePKitrQ0PDy8oKKAXqubk5Lz11luHDx8WiUQikejrr79ev349nbui/uAFBAR89NFHUqlUaYXob7/99tlnn50/f76ysvKvf/3rxx9/rNq7g4NDu396CwsLmX/ntLvssqN7uxOzRpMnT05LS6utrc3MzDQ2Nvbz82MZs8Ynot7+85//TE1NjYuLy8vLCw0NZfO8lN27d8+dO1ckEn377bfbtm1LSkpiNqvUC8uo4uPjw8LCYmJiGhsbKyoqdu3atXnz5jt37rAbKtAAyTbov6jJEUZGRhp/FwEAAAAAAAAAgG5avnz5oUOHCCFVVVVRUVFr1qyhytetWxccHEx9aXv8+HF6VVlHVq1a9dVXX8lkMrFYHBQUxKZrfX39qKgomUwWFxf3+uuvq6/c2Xg6S338nTqzLTg4uKysrKamZu/evStXrlRf2d/f//Dhw21tbfX19SEhIV0J/T86NZ4wyOzcuXPPnj1vv/22QCDQ19e3sbF599136YWqO3bs2LNnj729PfV25MiRu3fv3rFjB7OF1157zcvLi8PhKK2Y3Ldv3+HDhydOnGhoaOjt7e3j49M3T9SdmDWaN28e9YJagXrr1q2eCpsybty4Tz/9VCAQcDicH3/8kf2NDg4Oy5YtMzU1nTNnzpEjRwIDA7sfTGBg4LFjx6ZMmWJoaGhsbDxz5szg4OD//u//7n7LQJBsg/6M2kPSxMRE24EAAAAAAAAAAAxClpaWzLeHDh169uyZpaXl+PHjo6OjDx48SJV/8cUXVVVVtra2tra2T58+/eKLL6hyerMypf8ePHiwrKyMx+MtWLBgw4YNhLFmS2n7SrprajEKj8cLCQk5efIkXd5u/c7Go0a77auJnxAil8vZLDujblm/fv3SpUtHjRpVX19/4MAB9f0eOHCgoqLC3Nzc09Nz4cKFGuNU87wdjSe8COLj4xcsWKDm6rRp05gl7u7uN2/eZJasWLGi3XuTk5NdXFzot56ent2LlK3uxKyeVCrdt2+fs7OzkZGRubn5vHnzenzV7Jw5c+jXurq67G9ctGgR/drLyysjI6P7waSmptrb2zN3mJw0aRK9Zg66SU/bAQC0r6WlpaWlhcPhcLlcbccCAAAAAADQ71DfqPbZRmrscTicjqLqcsxsblTTb4/UBxiUnjx5wnzL5XK//fbbb7/9VqmagYHBwYMH6dwbjfk/EfM1l8s9ffr06dOn1Vdj8vPza3e3w3brdzYeNdqtpiZ+QgjLI47ou1JTU1n2a2RkFBwcHBwcLJPJYmJixo0bp76+muftaDzhRSCXy9WnmVX/OPX/fxB7KeYPP/zQwsLi1q1bw4YNk8lkJSUlY8eO7X6zPU5XV7dH9n4zNDTMyckZOXJk95sCVVjZBv0UtayNy+ViD0kAAAAAAHihWFtbs6nWN9+LNTY2dvYWNYF1OWY2N3a2cfb1seEKAPSZTz75hMPhGBsbh4WFKS3cAWBpxowZP//8c0dXZ8+enZKSwixJTk729vZm0/L06dOZ53t1f8dFqVTKplp3Ylbvxx9/3LZtm7m5uZ6enqGhoZmZmcZb1MfM8onYYP4Qk5OTXV1d262WnZ2tsSk6Kl9f37Nnz/ZIeKAKaQzop6hkm7GxsbYDAQAAAAAA6FMVFRXMt83NzVu3brWysrK2tg4NDXV0dGRevXnzpo2NjYGBQVRUFF24ZcsWJycnLpc7Z86c+Ph4qpDaLOjo0aNK9RsbG99++20ejzd16tS8vDx6g7Kqqio3Nzcul2tlZfW3v/2NTdYtNjZWaV84QkhDQ8P69euNjY2nTJmSlZWldEunjj4qLS2dPn06j8fbsGFDQ0OD+n47eq6O6nc0Pnw+v76+nt5tiWWoAABds3fvXoVCIZVKo6KirKystB0ODEj79u377LPPfv31V4VC0dTUlJeXFxISQm2ISggJCgr69NNPk5KSWltbW1tbk5KSdu/ezfJsxV27dm3btu3+/ftNTU03btyIi4vrbGzUaYKEkPLy8qNHj3p4eLC5qzsxq+fg4HDixImGhgaJRHL69Gn6oEr2MXftidjIy8u7ePFiXV1dfHz8li1b9uzZo9Rpc3PzxYsXP/roI/Yx79+/Pzg4+Isvvnj06JFMJpNIJNeuXfP19e2pmF9wSLZBfySVSmUymY6ODpJtAAAAAADwgtu1a1dLS0tWVlZRURGXy5VIJMyrcXFxeXl51Nk8dOH+/fvz8vKePXu2c+dO+sAPaiGXWCzOzs5m1t+xYwefz6+oqEhISLh69SpdMyAg4NChQy0tLQ8fPvT29g4ICNAYqo+Pj+pysR07dlhbW0skkl9++eXy5ctKVxUKBfsVZqGhoZGRkQ8fPjQ2Nt6+fbvGftt9ro7qdzQ+1IAr/oNlqADQf1hZWXFUII8Fg5i7u3tUVFRQUBCPxxMIBGvXrm1ubv7mm2+oq2PHjj137tyBAwd4PB6PxwsKCgoPD3dycqKuKh3+p/R21qxZgYGBy5cvt7CwOHXq1Jdffkn+fKIhc25Ku/NUqH9hdXR0pk2bVlhYGBMTw+be7sSs3pkzZ+Li4iwtLSdNmvTgwYPIyEjVe9XErPGJmM/S7iyfdp+XevH3v//9ypUr1tbW77zzzsGDB93c3JQ6tbKyunLlSnh4OPuYbWxsEhMTCwsL3dzcjI2NPTw84uPjQ0ND2YwVaIQNyqE/qq6urqmpMTY2Zrl9CgAAAAAAwEB0/PjxxMTEsLAwQohQKBSLxcyrAoFAJBJZW1s/ePCAz+er3s7hcGQymZ6eHmGcQFZQULBt27akpCSpVDp16tSEhAT6gz/zlDL6taWlZW5uLtV+VVWVpaUlVW5mZsZM7FlYWFRWVrJ5KKWz0Ph8fmFhIdX+06dPzc3Nu/ZFBIfDKSsrEwqFhBCJROLs7KwUj1K/HT1XR/VJB+PTbk0YTEaPHh0dHT1hwgRtB9LrMjIy3nzzzZycHG0HAqBZYGBgU1NTjyxd6kGmpqYFBQX9M1NrYmLy8OFDS0tLbQcCA9jz588tLCwGynGPZmZmmZmZNjY22g7kD1jZBv0RtYcktsUHAAAAAIAXh0gkotdOUS9EIhEhpLW1Vc1dVKaNaeXKlZ6enjk5Oc+ePTt//rzGfplToZkpJRcXFwUDy0ybej319U1bW5vG4707eq5uGijfQAEAAABAX0KyDfqd5ubm1tZWHR0dLper7VgAAAAAAAC0bPny5YcOHSKEVFVVRUVFtXuaCJNIJHJ1dTU1Nc3Ozj5y5IjG9v39/Q8fPtzW1lZfXx8SEkKXL1iwICQkpKysrK2trTvxr1q16quvvpLJZGKxWHWNQqfObAsODi4rK6upqdm7d+/KlSvVV+7oubqAOvhEJpPFxcX9f/buP66JK98f/wlIKoZEEwkYEFm1IlrbXUFc64XPqggIqCv4A3crWVZat49abauiyLJcWbGooKx63UcRuCj9odDuphSVW9B6KzW9ovXh3UV+FntRAkgKRAm/EpJ8/5ivs9OEhACB8OP1/MPHzJmZ93nPISV0zpxzVq9ePZRQAAAAADAuobMNRh1qWBuHw8HS0wAAAAAAMAHpzQGVmpqqUCicnJxeeuml/Pz8lJQUqpy5JAnz3/T09OjoaIFAEBsbKxaLTZxJ/Xv06NGmpiZHR0dfX99169bR9e7evVsul/v5+QkEgqCgoKNHj/abud7SI1RhSkpKfX09n88PDg7evn07+emYM41GY86wM+qSqKio8PDwOXPmKJVKZj591mvsvoydb6x9yPOFT/h8fmZmZlZWVr/ZAgAAAMBEg2nHYdT54Ycfent7XVxcMLINAAAAAADGN+aabVanVqsvX74cHx//4MEDa+diSeP1vsBSsGZbv6iOZ9OPEK21tKGJes1Je2QYy8REhlgqEmu2DRTWbOuTu7v7o0eP+jw0a9asurq6Ec5nlMOabUOEkW0wumi12smTJ9va2k6ZMsXauQAAAAAAAEwIf/zjH1ksloODQ05OzldffWXtdCxmvN4XgAWJRKJ+zzGn16fPczo7O83PhMvlmn+y6Xr7PTTCjGVikeQH124AE0RdXZ3OCPS0gcWhsw1GFxsbG5FINHv2bMwhCQAAAAAAMDKOHDmi0+l6enokEsnofGF/cMbrfQFYUFNTE3NXrVbHxsbOnz/fw8Nj//79zPENjx49WrZsGZ/P3759e0dHB1W4cuVKFgN9slwu9/Hx4XA4zs7Ob7/9Nt3r1t3d/c477zg7O4tEovPnz3t4eFDlAoFAqVQaxjHh6tWrhid3dHRERUU5ODgsXry4rKxM7xLzF4mUSCRsNpvFYvF4PF9fXypPqrq0tDQulyuVSrOysrhcrkQioS7ZtWvX/PnzORxOQEDAjRs3zKnF/PuiSs6cOTNz5kw2m01XOoh2AwCAYTLJ2gkA9AF/HwAAAAAAAIxCzs7Ozc3NeoVOTk5PnjyxSj4AYFnx8fEzZ86sqqoihJw6dSo+Pv748ePUofPnz3/22WdTpkw5dOjQ/v37z549Swhh9ioxH+bExMSkpqYuX768p6enuLg4JiaGOj8uLk6lUpWVlTk4OFy+fLm1tZU6v7W1daATJ4aEhOh0Or0nSAcOHBCJRK2trc+ePcvIyNC7xPz4YrF47dq1eXl5KpWqqKhox44d1OUsFkuj0WRnZ4eGhkZFRWVnZ0dERFBdksnJyWfOnFGr1Tdv3ly/fn17e7v599LvfVElDQ0N5eXl169fpysdRLvBeNXb27ts2TIbGwytgcHTarV4LD8U+HUMAAAAAAAAYB2jas02gIlpYq7Z5urq2tDQwDzq4uIik8lmzJhRWVk5bdo0QkhbW9vChQsbGxsJISwWq76+3tXVlRDS2trq6elp2O/O7PWZPn063ZFGCBEKhdT5IpHowYMHAoHAML3BdRrpXSUQCL7//nsqfktLi6Oj4+CefBYUFGzcuFGtVjs6OgqFwgsXLvj4+DCr09uoqanZs2ePVCrt6enx8vIqKSnRq9fY3Zlfziwxtj2eYM22gZoyZcrhw4cxrSgMRVdX1759+9RqtbUTMcsoXLMNI9sAAAAAAAAAAAAmEJlMRm0YdtX023Oj1Wr7HT3j7e1dVFRkWN7b22tOeiqVis1mm3Om6SCDvnbdunUqlaqjo6O1tfWjjz4KDAxsa2szcf6WLVu2bt2alZUlEAh+/PFHc1bCGw4WaTcYo2xtbSMjI52cnKydCIxhT58+jYmJsXYWYxgGlgIAAAAAAAAAAAARi8UZGRk6nU6n06Wnp0dGRtKHMjIy6uvr29rajhw5smXLFtNxgoODMzMz6+vrtVots3zTpk2pqamEELlcLpFItm3bRh+ys7OTSCRqtbqwsHD16tWDy3/r1q0nTpxQq9UNDQ2Gg6LMX7NNKBSWlpba2Ni4ubl5enrSa9QZI5PJlixZwuPxysvLT58+PbjkB8ci7QYAAEOHzjYAAAAAAAAAAICJSG8cTFJSklwud3Nzc3Nza2lpSUpKIs8XY4uKigoPD58zZ45SqTx69KheHL3xcLt375bL5X5+fgKBICgoiD4/NTVVoVA4OTm99NJL+fn5KSkp9CW5ubkRERF8Pj8zMzMrK6vfzFksFpUYvUEISUlJqa+v5/P5wcHB27dvJz9dSU6j0Zg54+Ls2bPv37/v4eHBYrEiIiJyc3PpUHRAZuT09PTo6GiBQBAbGysWi/VOM8xzoOXMqvXSGGi7AQDAMBmfs/oCAAAAAAAAjH5Ys80Q9QTZsg8r4uPjqT4DQsjFixe3bdum1Wrt7Oxyc3PDwsL0qiaETJ06VSqVLly4kBBy8+bNc+fOdXR0fP7553qXMMPC2DUx12yzuK+//losFtfV1Q1HcJiAsGbbQHG53NraWkwjCUPx9OlToVA4lDl4RxLWbAMAAAAAAAAAU0QiUWNj4zAF7+zsnDJlyjAFtwidTscc5DF0NTU1zMWWdu7cefny5eDgYIlEEhERofdEybCTb8eOHd9++y2fzyeESKXSwMBApVJJHWpra3v48OGcOXMsmC3A2OLq6trQ0GBvb79w4cKPPvrI2ukAQP8MV2pkHiKWft9lcIxlYiJDE/cFMDLQ2QajgkqlUiqVDg4OWMcVAAAAAAAmuKamJuYu9Vzp9OnTx44da25uZo6s2rVrV1FRUX19/fLly+Pi4lauXEmdfPLkyYSEhC+//LKiouLdd9/NyckJCwuTy+UhISF37951cnLavHnz8ePHmb1u1DpGpaWlpnOju8Go51l6u4b50Oe0tbXt3bs3Ly/vzTffpCaO6+7uPnDgwKVLl2xsbJKTk99///3q6mq6oq+++kosFvd7vybi0zIyMgIDA+nd1tZWaiM0NHTx4sX9/DAI6enpoXraCCHLly9nLt3k7++fnp4+2gZewJjQ2tqqUChGuNLm5maLx5TJZBaPCUCRy+UXL160dhY/0dvbW1BQoLcS4ahl7N0dEz1SFn/fZdCMZWIiQ/N72rhcbnt7++CTG+/OnTtn7RTM0tPT09nZae0sfgKdbTAqtLe3t7a29vT0iEQia+cCAAAAAAAwilDPlRoaGsrLy69fv84cjJWcnHzmzBm1Wn3z5s3169e3t7dTJ2s0muzs7NDQ0KioqOzsbOqSmJiY1NTU5cuX9/T0FBcXx8TEnD17llmLmcm8+uqrJ0+epHalUunevXulUqmxfOj8w8PDxWJxWlranTt3qJPj4uJUKlVZWZmDg8Ply5fpPjBKYWFhVVVVUVGR6fs1EZ9WVFT0+uuvG97L9evXr1y5wiyxt7enHuExp4t8/Pixsdbw9PQ8fPgwOttgEFJSUtLT0+l+3JHh5uY2ktUNnbOzs2EHoZOT05MnT6ySD4ywL7/88vz589bO4id0Ot3hw4fnz58/bdo0a+fSP713dwghV69eDQ0NJT/90u/o6Ni5c+dnn302b968Dz/8UO8SM9/FIYRQ48XVajWXy33llVeam5urq6tNvANEjLxDMwh93pexd5UEAoFSqdR7WwiYrl27Zu0UzNLR0fH06VNrZ/ETGFwJo4JSqXz69CmPx+NyudbOBQAAAAAAYIQw12yjZmNjHnVxcaFGjTBnRqK3a2pq9uzZI5VKe3p6vLy8SkpK6NFmfW5Mnz6d2aElFAoHN8ylqKgoJSWluLiYEBIQELB///6AgAAT+VAJtLe3Ozg4MOOIRKIHDx4IBALDKlgsllqtnjRpkjn3ayw+berUqTKZTO/otWvXFi1aNGPGjD4vefTo0Ysvvkh18ulNS8Xcffbs2axZs0Z+fBJYllXWbDt48CCbzU5MTBzJSod1zTYAyxqFa7ZptVpbW9uurq7JkydbO5c+GK7ZZmxaRb3yt99+m8vlJiYmPnv2LCMjIy4ujnnUx8eHEGL4IkufCQQEBOTl5alUqqKioh07dlB/ZrBYrJSUlJ/97GdvvPFGVFTUv/3bv/32t7+lvmGpec6od2g2bNigN9rMzPxNlLNYrNjY2IMHD+q9q4QJJ40ZW2u22djY3L59m/qIjhI21k4AgBBCHBwcXF1d0dMGAAAAAAATlkwm0+l01NMfasP0/Gxbtmzx9fWtqKhQKBR5eXn9xvf29tYxDHpCucDAwK6urpKSkpKSku7ubqqnrd98DHvCent7TdRC9bQxDTQ+zfCBWk5Ojru7u7GeNkLIrFmz1Gq1saMajcZEcAAAACtydXVlsVjUyC1qw9XV1cT5n3zySUxMDJvNdnR03LFjh97RO3fumNPTRsW5fPmynZ2du7t7XFwcc+z4vn37Nm3apFAo0tLSNm3aRH3D1tTU/OY3v5k+fTqfz09MTKTXQ7Ws5ORkHo8XFhZm4msdwFLQ2QYAAAAAAAAw9shksiVLlvB4vPLy8tOnT/d7fnBwcGZmZn19fZ+LzSxdupSaKsociYmJCQkJCQkJzHE5A81n06ZNqamphBC5XC6RSLZt22b6/IHGp7m7uzOHDH766acvv/zyvHnzCGPNOUKIn59fQkJCbW0tIUQikdjZ2VHl9vb29DyZd+7c4fF4dAPW19fPmTPH/EwAAACG20Df3WEaypCmdevWqVQqpVJ57969yMhI5mqpfRroO0PDZKyM4oIxAZ1tAAAAAAAAAKMIcw4o8rxDyPDf9PT06OhogUAQGxsrFovJ8xfYCaMPidmZtHv3brlc7ufnJxAIgoKCjh49yqxFo9GYP0jL399fq9XqdLpVq1bRhX3mw/yXTo+SmpqqUCicnJxeeuml/Pz8lJSUQdyvifi0wMDAyspKejcqKsrLy8vwZIlEUldX5+3tzWKxIiIicnNzqfKPP/54xYoVLBZLKBRu2LChoKCA7oerrKwMCgoys9EAAABGoa1bt544cUKtVjc0NBjO22n+uzhCobC0tNTGxsbNzc3T07Ojo8P0+YN+h2bo7OzsJBKJWq0uLCxcvXr1SFYN45v+tAwAAAAAAAAAYEVPnjxh7jL7wJjbYWFhYWFhfR7SK6E2bG1tDx48ePDgwT4r/e677waU5Ndff61XYiwfY314HA7nr3/961//+ldjaRPz7rffPsI//OEPp06dWr9+PbVr7PGfo6PjhQsXDMvDwsKMvfZ+/fr1vXv3mq4dAADAKvTe3SEG7+JQX6ApKSlvvfUWn8+fO3fuhx9+eOrUKeaSZhqNxsbGrOE6s2fPvn///saNG+vr6+3s7Kh3VugXYvRWkyXP36Fpbm5esWLFyZMnk5OTmacZ5jnQcmbVemnk5uZGRESw2eygoKCsrCzzmhOgf+hsAwAAAAAAAIBxy8PDY9q0acMRWSAQYBpJgMFhPnPXe25u9XwMDxFrp2c6ExMZmrgvGPf03t0hRj4kHA7nwoUL9OsmeueY/y5OaWkpIURv1bc+X6ChNky8M2TsQzugchMBTbxGAzAUmEYSAAAAAAAAAMazI0eODEfYw4cPD0dYgJEkEonMPJPL5Q6o3DRzHqwPLh9CSGdn51DyMf/QCBtoD4TpQ3oG93MEAAAaOtsAAAAAAAAAAAAmoqamJr2SXbt2zZ8/n8PhBAQE3LhxgyoUCARKpdJwcURj5dSuQqGIjo7mcrkxMTH0oatXr/a5wuKjR4+WLVvG5/O3b99OT/fKPJO5baxeuVzu4+PD4XCcnZ3ffvttc3rd+syno6MjKirKwcFh8eLFZWVlepeYv4qVRCJhs9ksFovH4/n6+np4eNA3kpaWxuVypVJpVlYWl8uVSCTUJX22/yD0eV9UyZkzZ2bOnMlms+lKjbUnAACYD51tAAAAAAAAAAAAQAghycnJVVVVCoUiNjaWXuywtbWVEKJ7jj7ZWDm1HR4e7ufnJ5PJ1qxZQx8KCQnpc7jV+fPnP/vss9raWgcHh/379zPjGG4bqzcmJiY1NVWlUtXW1vr7+zM7+YzpM58DBw6IRKLW1tbi4uKCggK9o3qVmiAWi9euXatWq5uamvbt26dQKOgb0Wg02dnZoaGhZWVl2dnZERER1CV9tv8g9HlfVElDQ0N5eTm1bBVVbqw9AQDAfFizDayppaXF1taWy+Xa2tpaOxcAAAAAAAAAgAnB1dW1oaGB2qZGMrm4uMhkspqamj179kil0p6eHi8vL6VSOZRavvjiCwcHB0KIv79/vydHR0e7uroSQg4dOuTp6Xn27NlB1FhQUEAvPUUIEQqFg4vzySeffP/992w229HRcceOHXFxccyjd+7cMT/Oxo0b7ezsHB0dhULhlStX6EP79u0jhGzevDktLY3aIIRYtv2NSU5OJoSEhYWp1erhiA8AMDFhZBtYjVarbWtrk8vlGo3G2rkAAAAAAAAAAEwUMpmMHsNEbchkMkLIli1bfH19KyoqFApFXl6esctVKpU55VRP20BptVobmz6eWGq12n7z8fb21jE0NzcPIgFjwQdh3bp1KpVKqVTeu3cvMjIyMDDQ9Plmtv9wG8otAwBMWOhsA6vp7OzU6XRsNpvNZls7FwAAAAAAAACAiU4mky1ZsoTH45WXl58+fZp5yM7OTiKRqNXqwsLC1atX91s+UBkZGfX19W1tbUeOHNmyZYte/MbGxnfffbfffIKDgzMzM+vr6030zJlj69atJ06cUKvVDQ0Nx44d0ztq/pptQqGwtLTUxsbGzc3N09OTXovOGBPtP9ws9XMEAJiw0NkGVkONhedwONZOBAAAAAAAAABgInJycmLupqenR0dHCwSC2NhYsVhMnk8ySQihlvji8/mZmZlZWVn0JX2WU1exnmNWQZcwNwghUVFR4eHhc+bMUSqVR48eZcbfunXrunXrXn/99X7z2b17t1wu9/PzEwgEQUFBzDjGGOZDCElJSamvr+fz+cHBwdu3b2fWSwjRaDRmLmw2e/bs+/fve3h4sFisiIiI3NxcZuMw24piov37zHOg5cyq9dIw9vMFAAAzsbDoJViFTqd7+PChVqt1c3ObPHmytdMBAAAAAACwgvT09Fu3buXk5Fg7EUtiscbGowZr5TlW2sdM1JN6y95RfHx8UlIStX3x4sVt27ZptVo7O7vc3NywsDC9qgkhU6dOlUqlCxcuJITcvHnz3LlzHR0dn3/+ud4lzLBMc+fOzc/PX7RokQVvoV8HDx5ks9mJiYkjWem9e/dee+21ioqKkawUYHAOHTrU1dVlOKzQirRara2tbVdX1+h8ksnlcmtra/W6zyeycfD1NPKePn0qFArHykSyNjY2t2/f9vHxsXYi/zLJ2gnABNXV1aXVaidNmjQ6v58AAAAAAACsRSQSNTY26hV2dnZOmTJl+Cq1YPyx0pM0fHlyudz29vaRr9cqdDqd3rilIaqpqWlra6N3d+7cefny5eDgYIlEEhERofcE0LAxd+zY8e233/L5fEKIVCoNDAykptUhhLS1tT18+HDOnDkWzBYAYNTq888JSxnuP0uGDl9PMPIwjSRYB+aQBAAAAAAA6FNTUxPNn158AAAgAElEQVRzVy6X+/j4cDgcZ2fnt99+u7Ozkyp3cnISCATUtkAgcHZ2prapGcOuX7/u5OS0ZMmSuro6ZrlCoYiOjuZyuTExMabjSyQSNpvNYrF4PJ6vr6+Hh4fpckLI1atXDaeMU6vVsbGx8+fP9/Dw2L9/P/00ijrzzJkzM2fOZLPZEonEdLN0d3e/8847zs7OIpHo/PnzdL0Djb9y5UoWAx1fb6Y1vW3DOMbyEQgESqWyz9nzLNg+Zi4ZpZeG3u6uXbvmz5/P4XACAgJu3LjBPMfwc2LsfilfffWVYZ4Dik/LyMgIDAykd1tbW4ODgwkhoaGhixcv7veWe3p6qEeZhJDly5czl8jy9/dPT0/vNwIAwPig9+eEia8Vw1/X1MlpaWlcLlcqlWZlZXG5XOoSY382UPD1ZAy+niYCdLaBdVC/UNDZBgAAAAAAYFpMTExqaqpKpaqtrfX396ef/pSWlv7yl79sbGx8/Pixl5fX7du3qXLqZeqWlpbHjx8fOHDgvffeY5aHh4f7+fnJZLI1a9aYji8Wi9euXatWq5uamvbt26dQKEyXE0JCQkIMX+WOj493dXWtqqqqrq52dXWNj49n5tPQ0FBeXk6tFWS6HeLi4lQqVVlZ2cOHDzkcTmtr6+Di37hxQ/ccMz5z13DbMI6xfKiNPquwYPsYBu+TTqdbtmyZVCqldqVS6auvvkpfmJycXFVVpVAoYmNj169fz6zX8HNi7H4phYWFVVVVenkOKD6tqKhowYIFhvdy/fr1K1euMEvs7e2pZ6PMp6iPHz821hqenp5FRUXGWwvGLWdnZ5YB+gUFgAnCxNeK4a9r6mSNRpOdnR0aGlpWVpadnU1dYuzPBroWfD3h62ni0gGMuK6ururq6u+//16r1Vo7FwAAAAAAAKv54IMPIiMjqW0XFxe9/2F3cXHR6XT08DWKUCikL/+///u/NWvWrFq16ocffmCGJYS0tbXpdLr29nYul8ssb29v18vBWPwvvvjCzs6OEOLo6LhgwYLS0lLT5cxamLvOzs5UMjqdrrW1dcaMGX2e2e8DihkzZrS0tBiWDyW+XqGx8/vcNpaPsbqMHbVU+xjz5Zdfrl69mtpevXp1UVERtV1dXb127VqBQMDhcPz8/PTqMvycmL5ftVqtl+dA49N4PJ7h0eLi4sbGRmOX1NXV2dnZ6SVguPv06dOpU6caXj5nzpx//vOfxoIPk9jY2ISEhBGu9LvvvvP09BzhSgEG59///d/3799v7Sx+QqPREEK6urqsnUjfHBwcnjx5ojP+54TOyNeKsV/XxjZM/FkyIPh6oreNfT2NPIVCQSc8+rFYLMO/Qq0LI9vACuhhbSyLzpwLAAAAAAAwdslkMup/1Mnz5y8ymYwQ4u3tzfzf+ObmZvoSFoulVqsnT55sa2trLOykST9ZrN3BwUHvBGPx161bp1KplErlvXv3IiMj6amTjJWboLPEKmW9vb3DGp9Jq9X2e46JfJj0FnHpk8XzZwoMDOzq6iopKSkpKenu7g4ICKDKt2zZ4uvrW1FRoVAo8vLy9K4y/JyYvl+9j9kg4tMMWyMnJ8fd3X3GjBnGLpk1a5ZarTZ2lHo+biw4AMA4Y+zPCWNM/7o2ZOLPkgHB1xO+nsYfdLaBFWAOSQAAAAAAADMFBwdnZmbW19fr9QDV1dX9/ve//8///M/MzMw//OEP9NpslG+++UalUhUWFtJPrwYaXygUlpaW2tjYuLm5eXp60ouLGCs3RiwWZ2RkUI/k0tPTIyMjzb3zn9q0aVNqaiohRC6XSySSbdu2WTY+IcTOzk4ikTQ2Nr777ruDzoeOo1arCwsLV69ebTrO4PI3c1EcSmJiYkJCQkJCQmJiIl0ok8mWLFnC4/HKy8tPnz7dbxAT99ungcanubu7NzQ00Luffvrpyy+/PG/ePEII84VdPz+/hISE2tpaQohEIqFGWxJC7O3t6XnJ7ty5w+Px6A92fX39nDlzzM8EAGAiGOiva2N/NlDw9YSvp4kMnW0w0tRqdU9PD4vFmjJlirVzAQAAAAAAGHWcnJyYu7t375bL5X5+fgKBICgo6OjRo1S5t7f33bt3Z82aJRKJbt265ePjw7zKxcVl7ty5aWlpJ0+epEqoJ0H0ekX9xp89e/b9+/c9PDxYLFZERERubq7pcjo4c4MQkpSUJJfL3dzc3NzcWlpakpKS9PLR+9eY1NRUhULh5OT00ksv5efnp6SkDDG+4Vvkubm5W7duXbdu3euvv24iAvWvsXyoOBEREXw+PzMzMysrazjaR6PRmP8WvL+/P7WIw6pVq+jC9PT06OhogUAQGxsrFosN69L7nBi7X2N5DjQ+LTAwsLKykt6Niory8vIyPFkikdTV1Xl7e+t9Dj/++OMVK1awWCyhULhhw4aCggL6QWdlZWVQUJCZjQYAMNbp/TkxoF/Xet875vzZQMHXE76eJjIWhijCCHv69Glzc7O9vf3MmTOtnQsAAAAAAIA1paen37p1Kycnx7JhWSz8z37/vv76a7FYrDciEKyuurr61KlTZ8+etXjknTt37t2713D0wNy5c/Pz8xctWmTxGk04ePAgm81mDuYYAffu3XvttdcqKipGslKAwTl06FBXV9exY8esnci/aLVaW1vbrq6uyZMnWzuXPnC53NraWr0ONrCgkf96GnlPnz4VCoXmzIA9GtjY2Ny+fVvvbTPr0p+0FGC4YQ5JAAAAAACA4UO/mo3+tj65uro2NDTY29svXLjwo48+snY6oM/Dw2PatGnDEVkgEIyGR5lgXSZ+N1K/PEfDb05jmZjIEL/zAYYbvp6gX+hsgxGl1Wo7OzsJOtsAAAAAAACGB563miaTyaydAvTjyJEjwxH28OHDwxF2rBOJRI2NjUMM0tnZOfS1Qrhcbnt7+xCD9MvEb0idTmd6MtsRYywTExma/5t/ZNoZYFzC1xOYhjXbYER1dnbqdDo7Ozs2m23tXAAAAAAAAGB0cXZ2Zhlwdna2dl4A41ZTUxNzV61Wx8bGzp8/38PDY//+/fRkYtR/jNevX3dyclqyZAk9/6pcLvfx8eFwOM7Ozm+//Tb1gjV9vkKhiI6O5nK5MTExdBW7du2aP38+h8MJCAi4ceMGVSgQCJRKpeFqSabz6TO+MVevXjVcXamjoyMqKsrBwWHx4sVlZWV6lyxdunTp0qX9RiaESCQSNpvNYrF4PJ6vr6+HhwedZFpaGpfLlUqlWVlZXC5XIpGYaIdB6PO+qJIzZ87MnDmTzWbTlRprZwAAGDp0tsGIwhySAAAAAAAAYMyTJ090Bp48eWLtvAAmivj4eFdX16qqqurqaldX1/j4eKqcGjjV0tLy+PHjAwcOvPfee1R5TExMamqqSqWqra319/enO72o88PDw/38/GQy2Zo1a+gqkpOTq6qqFApFbGzs+vXrqcLW1lbqKoqZ+fQZ35iQkBDD4V8HDhwQiUStra3FxcUFBQV6R/WSMUEsFq9du1atVjc1Ne3bt0+hUNBJajSa7Ozs0NDQsrKy7OzsiIgIE+0wCH3eF1XS0NBQXl6em5tLV2qsnQEAYOgwny+MqIcPH2o0GldX16FPLwAAAAAAADDWpaen37p1Kycnx9qJAExcc+fOzc/PX7Ro0UhWevDgQTabnZiYOJKV3rt377XXXquoqCDPFy9kHnVxcZHJZDNmzKisrKTWJWpra1u4cCE9ySSLxWpra5s2bZpSqXRxcXn27BkhZPr06VT/DUUoFDY3N9Pnt7e3Ozg4MGupqanZs2ePVCrt6enx8vIqKSmhn0z2ueqY6XwM4/dLrxaBQPD9998LBAJCSEtLi6Oj4+CelBYUFGzcuFGtVjs6OgqFwgsXLvj4+DCr09sw0Q595jmIcmaJse3R7NChQ11dXceOHbN2Iv+i1WptbW27uromT55s7Vz6YG9v/7vf/Q5PXGEoVCrVBx980Nvba+1EzGJjY3P79m3ql+0ogTXbYOR0d3drNBobGxt7e3tr5wIAAAAAAAAAMEHRixcadr2Y0xMzadL//0TR29u7qKjI2GmGPWFbtmzZunVrVlaWQCD48ccfRSJRnxeqVCp6/RET+Qy0p800eo7KQVi3bp1Kpero6Ghtbf3oo48CAwPb2tpMnG9mOww3ZjvDWKfVau/evWtnZ2ftRGAM02g01k5hbENnG4wcag7JKVOmYFZoAAAAAAAAAIDRRiwWZ2RkULNBpqenR0ZGMo9+8803gYGBhYWFAQEBVElwcHBmZuaaNWtcXFxsbPpfrUYmky1ZsoTH45WXl1+6dIl5yM7OTiKRrF279tq1a8nJyTdv3uw3n6HbunXriRMnDh06JJfLjx8/rneUWrCttLS03zhCofDKlSsvv/yym5ubp6cn9QTMBBPtMNz6bGcYB9hs9tWrV52cnKydCIxhT58+FQqF1s5iDMOabTByHBwc+Hw+j8ezdiIAAAAAAAAAAED0Hs0nJSXJ5XI3Nzc3N7eWlpakpCTmURcXl7lz56alpZ08eZIq2b17t1wu9/PzEwgEQUFBR48epcqp16xZz9ER0tPTo6OjBQJBbGysWCymzySEUEuL8fn8zMzMrKws0/kYi28CfSbzkpSUlPr6ej6fHxwcvH37dmY+hBCNRmPmjIuzZ8++f/++h4cHi8WKiIjIzc1lJsnMud926DPPgZYzq9ZLo892BgCAoRsbs/QCAAAAAAAAjD9Ys23kUU+cLfswJD4+nu4DuHjx4rZt27RarZ2dXW5ublhYmF7VhJCpU6dKpdKFCxcSQm7evHnu3LmOjo7PP/9c7xJmWBg+E3PNtkEYK2t9wfiANdsGisvlfvXVV9OnT7d2IjCGtbe3+/j4DGVO3ZGENdsAAAAAACaEmpqa+/fvWzsLABjtHj16ZFgoEokaGxtHOJPOzs4pU6aYeTKXy21vbx/WfIaPTqez7NIGNTU1zMWZdu7cefny5eDgYIlEEhERoffEyrCvYseOHd9++y2fzyeESKXSwMBApVJJHWpra3v48OGcOXMsmC30KTMz05wpEC3om2++oWdiHBPo0VHobwMYnX72s59t3brV2lnAmDd79mxrpzCGobMNAAAAAMDyrl69evr0aW9vb2snAgCj2gsvvGDY8dPU1MTc7e7uPnDgwKVLl2xsbJKTk99///3q6mpCiFqt/tOf/iSRSHQ63YYNG5KSkthsNhXt5MmTCQkJX375ZUVFxbvvvpuTkxMeHt5neVhYmFwuDwkJuXv3rpOT0+bNm48fP071ulGhTp8+fezYsebmZnrElUAgUCqVdNr0k3eqb0mtVnO53FdeeaW5uZnKk2Lm0kd6YfV2d+3aVVRUVF9fv3z58ri4uJUrV9LntLW17d27Ny8v780330xJSTHRbpSvvvpKLBYz72ug8WkZGRmBgYH0bmtrK7URGhq6ePFi0/dLCOnp6aF62gghy5cvZy715O/vn56ePqoGdoxX165de/r06UjW2NDQ8Prrr49kjUOEPjaAUe6f//yntVMAmOjQ2QYAAAAAMCz8/f3PnTtn7SwAYFSjppE0fU5cXJxKpSorK3NwcLh8+TLdlxMfHz9z5syqqipCyKlTp+Lj448fP04N29JoNNnZ2aGhoVFRUdnZ2REREcbKVSpVTExMamrq8uXLe3p6iouLY2Jizp49S56PAGtoaCgvL79+/To9SKu1tbXP0S1isXjt2rV5eXkqlaqoqGjHjh3Mo2Y+qdfpdK+++iq9HJRUKt27d69UKqV2k5OTz5w5o1arb968uX79emp0HZVneHi4WCxOS0u7c+eO6XajFBYWVlVVFRUVMQefDSg+raioqM9ek+vXr1+5coVZYm9vT3XdMaeLfPz4sbHW8PT0PHz4MDrbRsClS5dGeBrJqVOnrl+/fiRrnAicnZ2bm5v1Cp2cnJ48eWKVfAAAYELB6G8AAAAAAMs7derUgwcP0NkGAKYx12xzdXVtaGhgHnVxcZHJZCKR6MGDBwKBQO/aGTNmVFZWTps2jRDS1ta2cOFCavJJuidMb8NY+fTp05kdUUKhkH5azexUM7ZNKygo2Lhxo1qtdnR0FAqFFy5cGNwqGkVFRSkpKcXFxYSQgICA/fv3U7Pt1dTU7NmzRyqV9vT0eHl5lZSUMPNpb293cHBgxjHWbtT5arV60qRJzHsZaHza1KlTZTKZ3tFr164tWrRoxowZfV7y6NGjF198kerk02tM5u6zZ89mzZqlUCj6azMYEqus2TZ16tSqqipjn5BhMsQ12wBGEtZsAwDTRuGabSM6ITUAAAAAAAAA9Ekmk+l0OqqjhdqQyWSEkN7eXmOXWOT1WW9vbx2D4bgQ0+hhYevWrVOpVEql8t69e5GRkcyZFQckMDCwq6urpKSkpKSku7ubXtdqy5Ytvr6+FRUVCoUiLy9P7yrDnjAT7UYIoXramAYan2b4U8jJyXF3dzfRjzJr1iy1Wm3sqEajMREcAAAAAEYhdLYBAAAAAAAAjF6bNm1KTU0lhMjlcolEsm3bNqpcLBZnZGRQPWTp6emRkZGDix8cHJyZmVlfX6/Vas28xM7OTiKRqNXqwsLC1atXU4VCobC0tNTGxsbNzc3T05O59hghZOnSpdSybeZITExMSEhISEhITEykC2Uy2ZIlS3g8Xnl5+enTp/sNYqzdjBlofJq7uztzSOKnn3768ssvz5s3jzDWnCOE+Pn5JSQk1NbWEkIkEomdnR1Vbm9vT8+TeefOHR6PR/8g6uvr58yZY34mAAAAAGAt6GwDAAAAAAAAGEWcnJyYu6mpqQqFwsnJ6aWXXsrPz09JSaHKk5KS5HK5m5ubm5tbS0tLUlISed67Q/fx6G0YlhNCdu/eLZfL/fz8BAJBUFDQ0aNHDS/Ruzw3NzciIoLP52dmZmZlZVGFs2fPvn//voeHB4vFioiIyM3NZd6FRqMxf5CWv7+/VqvV6XSrVq2iC9PT06OjowUCQWxsrFgsNsyN0m+7GbuvgcanBQYGVlZW0rtRUVFeXl6GJ0skkrq6Om9vb732+fjjj1esWMFisYRC4YYNGwoKCuh+uMrKyqCgIDMbDQAAAACsCGu2wbBrb2/v7OzkcrlTpkyxdi4AAAAAIwRrtgGAOZhrtsEYVV1dferUqbNnz1o88s6dO/fu3YvBbcMNa7YNHdW1jGeMhoajZeLj46m3KwghFy9e3LZtm1artbOzy83NDQsL06uaEDJ16lSpVLpw4UJCyM2bN8+dO9fR0fH555/rXcIMOxpgzTYAMG0UrtmmP0c5gMW1t7d3dHSw2Wx0tgEAAAAAAMA44+HhMW3atOGILBAI0NMGw00kEjU2Npp5cmdnZ5/PdnQ6XZ/jPo2d3ycul9ve3m7myWOFsZYZtJqamra2Nnp3586dly9fDg4OlkgkERER9CKadO16l+/YsePbb7/l8/mEEKlUGhgYqFQqqUNtbW0PHz7E7xwAgEHDNJIw7Ph8Pp/P53A41k4EAAAAAAAAwPKOHDkyHGEPHz48HGEBmJqampi7EomEzWazWCwej+fr6+vh4UGVy+VyHx8fDofj7Oz89ttvd3Z2mg5r7Pzu7u533nnH2dlZJBKdP3+eji8QCJRKpeF8rWq1OjY2dv78+R4eHvv376c7k6jTFApFdHQ0l8uNiYlh1m7mIpF61ent7tq1a/78+RwOJyAg4MaNG6brNXZflK+++mrmzJlsNlsikdCFA4pPy8jICAwMpHdbW1uDg4MJIaGhoYsXL+73lnt6eqieNkLI8uXLmYtr+vv7p6en9xsBAACMQWcbDDt7e3tHR0c2m23tRAAAAAAAAAAAwCixWLx27Vq1Wt3U1LRv3z6FQkGVx8TEpKamqlSq2tpaf39/w04gPcbOj4uLU6lUZWVlDx8+5HA4ra2tVDm1oXuOjhMfH+/q6lpVVVVdXe3q6hofH0+VU+eEh4f7+fnJZLI1a9Ywa9cLYoxOp1u2bJlUKqV2pVLpq6++Sl+YnJxcVVWlUChiY2PXr19vul5j90UpLCysqqqiVrukCwcUn1ZUVLRgwQLDe7l+/fqVK1eYJfb29lTXHbOT7/Hjx8Zaw9PTs6ioyHhrAQBAP7BmGwAAAACA5WHNNgAwB9ZsA7C6iblmm6ura0NDA/Ooi4uLTCYrKCjYuHGjWq12dHQUCoUXLlyglsOZPn06swNJKBQ2NzczL2exfvKM0dj5IpHowYMHAoHAMD29CJQZM2ZUVlZSM7W2tbUtXLiQnvSSxWK1t7c7ODgMpi2eKyoqSklJKS4uJoQEBATs378/ICCAEFJTU7Nnzx6pVNrT0+Pl5VVSUkLn1me9pu9LrVZPmjSJeY8DjU+bOnWqTCbTO3rt2rVFixYZ+zg9evToxRdfpAYF6jUyc/fZs2ezZs2iu1etDmu2AYBpo3DNNoxsAwAAAAAAAAAAmEBkMhk9/IvakMlkhJB169apVCqlUnnv3r3IyEh6xkJvb28dg15PmyFj5/f29pqTHnPtMRPjBIbY00YICQwM7OrqKikpKSkp6e7upnraCCFbtmzx9fWtqKhQKBR5eXn91mv6vqieNqaBxqcZtkZOTo67u7uJjttZs2ap1WpjRzUajYngAABgPnS2AQAAAAAAAAAAABEKhaWlpTY2Nm5ubp6envSaXsHBwZmZmfX19Vqt1pw4xs7ftGlTamoqIUQul0skkm3bttGH7OzsJBKJWq0uLCxcvXo1VSgWizMyMqgeu/T09MjISHNqN3PNNkpiYmJCQkJCQkJiYiJdKJPJlixZwuPxysvLT58+3W8QE/fVp4HGp7m7uzOHJH766acvv/zyvHnzCCHMte78/PwSEhJqa2sJIRKJxM7Ojiq3t7enp828c+cOj8ejf0D19fVz5swxPxMAANCDzjYAAAAAAAAAAICJyMnJibk7e/bs+/fve3h4sFisiIiI3Nxcqnz37t1yudzPz08gEAQFBR09epS+hFoYjLlh4vzU1FSFQuHk5PTSSy/l5+enpKTQcaglzfh8fmZmZlZWFlWYlJQkl8vd3Nzc3NxaWlqSkpLoSukamZ1MFI1GY/4gLX9/f61Wq9PpVq1aRRemp6dHR0cLBILY2FixWMyssc96jd2X3lX0vwONTwsMDKysrKR3o6KivLy8DE+WSCR1dXXe3t56P8ePP/54xYoVLBZLKBRu2LChoKCA7oerrKwMCgoys9EAAMAQ1mwDAAAAALA8rNkGAOYYvjXbqAevff4vf58LI/V71fDFGVbGMhlc+8C4NDHXbIMxqrq6+tSpU2fPnrV45J07d+7du3f0DG7Dmm0AYBrWbAMAAAAAAAAAU0Qi0dCDmOguGtyh4YszrIxlYpHkuVzuYHICABgsDw+PadOmDUdkgUAwenraAADGInS2AQAAAAAAAIwiTU1N9LbeZGJ6u7t27Zo/fz6HwwkICLhx40a/ka9evWo421hHR0dUVJSDg8PixYvLysrMyXAQccxfQkkikbDZbBaLxePxfH19PTw8yPMbT0tL43K5Uqk0KyuLy+VKJBLqkoG2w4Duiyo5c+bMzJkz2Ww2XalAIFAqlSZmewMAGA5HjhwZjrCHDx8ejrAAABMHOttguCgUiubm5u7ubmsnAgAAAAAAMFbpdLply5ZJpVJqVyqVvvrqq/TQq+Tk5KqqKoVCERsbu379+n6jhYSEGA7bOnDggEgkam1tLS4uLigoMCerQcTR6XRmjhgTi8Vr165Vq9VNTU379u1TKBTk+WgzjUaTnZ0dGhpaVlaWnZ0dERFBXTLQdhjQfVElDQ0N5eXl1JpSVHlrayt9X6NnJB8AAAAAWMUkaycA41Z7e3t3d7e9vT0mMgYAAAAAAOiXq6trQ0MDtU2NlHJxcZHJZImJiQkJCcXFxYSQhISExMRE6pyampo9e/ZIpdKenh4vLy+lUjm4ej/55JPvv/+ezWY7Ojru2LEjLi5uOOLcuXPH/DgbN260s7NzdHQUCoVXrlyhD+3bt48Qsnnz5rS0NGqDWK4dTEtOTiaEhIWFqdXq4YgPAAAAAGMaRrbBsNBoNNSYtilTplg7FwAAAAAAgDFAJpPRY6SoDZlMRggJDAzs6uoqKSkpKSnp7u4OCAigzt+yZYuvr29FRYVCocjLy7NIDiqVyupx1q1bp1KplErlvXv3IiMjAwMDTZ8/HO0wCJZqOgAAAAAYi9DZBsOis7OTEPLCCy/Y2tpaOxcAAAAAAICxjRrcxhzWRgiRyWRLlizh8Xjl5eWnT58edPCtW7eeOHFCrVY3NDQcO3ZsmOKYv2abUCgsLS21sbFxc3Pz9PTs6Ogwfb6l2mEQ7OzsJBKJWq0uLCxcvXr1SFYNAAAAAKMKOttgWFCdbRjWBgAAAAAAMFBOTk56Jf7+/lqtVqfTrVq1ii5MT0+Pjo4WCASxsbFisZg8n3yS2qC26Q0T5SkpKfX19Xw+Pzg4ePv27cw4xgwijkajMXNhs9mzZ9+/f9/Dw4PFYkVEROTm5tKhmDdo8XYwVs6sWi8Nagk3Pp+fmZmZlZVlzt0BAAAAwLiENdtgWKCzDQAAAAAAYHCePHliWPj111/rlYSFhYWFhdG7zK4sY91afZZzOJwLFy5cuHDB9LVDjPPdd9/1G5ZSWlpKCNmxY4exGultasNS7WCs3ETAsLAwzB4JAAAAAASdbTAcVCpVb28vi8Wyt7e3di4AAAAAAAAAAABGUcNVzRx9OyYMxx3Fx8cnJSVR2xcvXty2bZtWq7Wzs8vNzWW+8UCP/Z06dapUKl24cCEh5ObNm+fOnevo6Pj888/1LmGGhUE7ePDgePoAw/Bhs9l//vOfrZ3FuIVpJMHyqGFt9vb2/c49AgAAAAAAAAAA1iISiaydQv+oB03DZ6C9FMOdz9BZvN+lpqamra2N3t25c+fly5d1Oh01m65h7TqdTqFQUD1thJAdO3acOXNGIpHodLr//u//joyMpE9ua2t7+PChZbOdgI4dO7GAD2gAACAASURBVKZWq62dBYx2nZ2daWlp1s5iPMPINrA8zCEJAAAAAAAwpjk7Ozc3N+sVOjk59TnFJQCMXU1NTczd7u7uAwcOXLp0ycbGJjk5+f3336+uriaEqNXqP/3pT1RnyYYNG5KSkthsNvWO9cmTJxMSEr788suKiop33303JycnLCyMOnTt2rXf/OY3s2bN+tvf/ubu7k5VsWvXrqKiovr6+uXLl8fFxa1cuZI8Hw7V1ta2d+/evLy8N998MyUlhRAil8tDQkLu3r3r5OS0efPm48ePm3jcRL/zTXU16e32Wa/pUMw41LbpfJYuXUqez4Xbb/AB5WmsfYz9vChfffWVWCxubm5mjiQbUHxaRkZGYGAgvdva2kpthIaGLl682PT9EkJ6enr4fD61vXz58o6ODvqQv79/enr6sWPH+g0Cpv35z3/mcDjWzgJGtebm5uzsbGtnMZ5hZBtYmE6n6+rqIuhsAwAAAAAAGLOePHmiM4CeNoBxLy4uTqVSlZWVPXz4kMPh0H0q8fHxrq6uVVVV1dXVrq6u8fHx5HnnkEajyc7ODg0NLSsry87OpsY5UYdaWloeP3584MCB9957j64iOTm5qqpKoVDExsauX7+eKqTODw8P9/Pzk8lka9asocpjYmJSU1NVKlVtba2/v39MTIyJ5HU63bJly6RSKbUrlUpfffVVeoxXn/WaCNXntul8qF+VpiMPLk9j7WPs50UpLCysqqrSG3w2oPi0oqKiBQsWGN7L9evXr1y5wiyhZrpisVhsNlsikVCFjx8/NtYanp6eRUVFxlsLAGDMYGE6V7Csrq6u+vp6W1vbOXPmWDsXAAAAAKs5derUgwcPzp07Z+1EAGBUS09Pv3XrVk5OjrUTAZi45s6dm5+fv2jRopGsdOrUqVVVVTNmzBjJSu/du/faa69VVFQQQlxdXRsaGphHXVxcZDKZSCR68OCBQCDQu3bGjBmVlZXTpk0jhLS1tS1cuLCxsZEQwmKx6OFZhhttbW3Tpk1TKpUuLi7Pnj0jhNTU1OzZs0cqlfb09Hh5eZWUlNBPJlksVnt7u4ODA7Pe6dOnMzuQhEKh4aBbpqKiopSUlOLiYkJIQEDA/v37AwICTNdL126ihN4eaD4WzLPP9jH286LOV6vVkyZNYuY/0Pi0qVOnymQyvaPXrl1btGiRsY/xo0ePXnzxRZVKRQyal7n77NmzWbNmKRQKvcsPHTrU1dU1qka8abVaW1vbrq6uyZMnWzsXfTY2Nu3t7RjZBqY1NzfPnTu3vb3d2olYho2Nze3bt318fKydyL9gZBtYGOaQBAAAAAAAAAAYzWQyGT0Mi9qQyWSEkN7eXmOXDOV9farLhxCyZcsWX1/fiooKhUKRl5end5phT4+3tzdzfG2/PVuBgYFdXV0lJSUlJSXd3d1UD1a/9Zqm1WoHnY9l8zRsHxM/L8JodtpA49MMf/o5OTnu7u4mOoxnzZplYhUxjUZjIjgAwFiEzjawMHS2AQAAAAAAAACMRZs2bUpNTSWEyOVyiUSybds2qlwsFmdkZFA9TOnp6ZGRkeZE++abb1QqVWFhId2ZJJPJlixZwuPxysvLT58+3W+E4ODgzMzM+vp6Zo+XaYmJiQkJCQkJCYmJiXThQOslhNjZ2UkkksbGxnfffdfMfJYuXUot2zZieRr7eRkziHaguLu7M4dCfvrppy+//PK8efMIY805Qoifn19CQkJtbS0hRCKR2NnZUeX29vb0tJl37tzh8Xh0A9bX12NyrPGH+akYyWsBrAudbWBJWq22p6eHoLMNAAAAAAAAAGDUc3JyYu6mpqYqFAonJ6eXXnopPz8/JSWFKk9KSpLL5W5ubm5ubi0tLUlJSeT5M3H6ybjhI3IXF5e5c+empaWdPHmSKklPT4+OjhYIBLGxsWKxWC8I6zk6wu7du+VyuZ+fn0AgCAoKOnr0aL935O/vr9VqdTrdqlWr6EJj9dKVMjcoubm5W7duXbdu3euvv06fbzofjUZj/iCtAeVprH2M/bz0rqL/HWh8WmBgYGVlJb0bFRXl5eVleLJEIqmrq/P29maxWBEREbm5uVT5xx9/vGLFChaLJRQKN2zYUFBQQPfDVVZWBgUFmdloMKoY+7QATFhYsw0sqaOjo6Ghgc1mu7u7WzsXAAAAAGvCmm0AYI4JtWab4ZJII1k1wUxlYMTEXLNtBFjxP3mwuOrq6lOnTp09e9bikXfu3Ll3717DwW1Ys21ArLVm20D/M3dxcdFbLRKMGY62wpptww0j28CSqDkk7e3trZ0IAAAAAADAWCUSiYYehPq/MzNxudzhjkMG2Nc1oHr7ZWbVlmoHANAb9AZjnYeHx7Rp04YjskAgwDSSE0djY6O1U7A8apo3ixuXbTXuobMNLAkLtgEAAAAAAAxRU1MTc7e7u/udd95xdnYWiUTnz5/38PCgyqnpmxQKRXR0NJfLjYmJocrlcrmPjw+Hw3F2dn777beZvUS7du2aP38+h8MJCAi4ceMGVSgQCJRKpeHsYSbi9MlYHELI1atX9Qqp3bS0NC6XK5VKs7KyuFyuRCLpt17zl0Tq6OiIiopycHBYvHhxWVkZ89CwtgMAEEJ0z1k7EbCYI0eODEfYw4cPD0fYCa6qqmrjxo18Pt/e3t7Pz+/69ev0Hw+EkIqKig0bNri6urq6uoaHh1dVVdGHqG9ApVK5YcMGNpvNZrOpr2Zafn7+ggULuFzutm3blEqlYdU1NTV9Ti/54osv6s1WaniOsWuHmLNp5kTeuHEjh8NZsGDBZ599xrw2NzfX1dV18uTJDg4OQUFB3333HfMofS9FRUU///nPPTw8rly5Qh89fvy4j48Pj8dzc3N77733WlpazG8rEzn3Wy8MK3S2gcX09vaqVCqCkW0AAAAAAACWExcXp1KpysrKHj58yOFwWltbqXLqKXZ4eLifn59MJluzZg1VHhMTk5qaqlKpamtr/f396U44QkhycnJVVZVCoYiNjV2/fj1VSAU0fDJuIk6fjMUhhISEhOiVULsajSY7Ozs0NLSsrCw7OzsiIqLfes1/fH/gwAGRSNTa2lpcXFxQUMA8NKztAADDzdnZmWXA2dnZ2nkBjAoVFRVr1qxZs2bNgwcPnj17dvHixZqaGvqPh4qKit/97ndpaWkymUwmk508eTIqKoruraG+/mJiYvbu3dvT05Obm0t9NVO+/vrrP/3pT3l5ec3Nzb///e/37dtnWPu8efP6/Jr+/vvvqXIdg5nXDiXnftuq38ipqalvvPFGS0vLl19+eebMmevXr1NHb9y4kZOTc/ny5c7Ozqampri4uJ07d969e5cOTl1+6tSp0tLSwsLCqqqq8+fP00d//vOf37lz59mzZ//7v//r4OAQFhZmZluZzrnfemF46QAs5NmzZ9XV1XV1ddZOBAAAAMD6/vKXv7zxxhvWzgIARrsPPvggMjKS2nZxcdH7H3YXFxedTjdjxoyWlpY+LyeEtLe36xUKBAJmEKFQSJVXV1evXbtWIBBwOBw/Pz/y044lw+DG4phg+iEDMXhs1OfGIOrtE5/Pp9vtxx9/pGsZgXaAsWXOnDn//Oc/R7hSHo/X2Ng4wpV+9913np6eI1wpwOD8+7//+/79+62dxU9oNBpCSFdXl7UT6QM1AIvaXr9+/YULF4yduW7duqtXrzJLrl69+utf/5reJYTk5eUxd+ntwMDAa9eu0bv5+fnGvvcHWm76nKHkbJo5kT///HN6t7S01N/fn9r+f//v//3www/Ma//xj3+sXr1a716Kioro3d7e3j7T6O3tpVa/07t2cDmbqPfJkycODg59hh2LWCxWaWmptbP4iUmD6qED6APmkAQAAAAAABg0mUxGbVAPXOjy3t5eE1c5ODjolXh7excVFRmeuWXLlq1bt2ZlZQkEgh9//NHYynAqlYrNZpuIYyY6zkANsV5jydDbI9wOAKNHa2vr48ePQ0JCrJ0IQP9qamqWLFli7SzGpBs3bmRmZpo4qjfOaenSpXpDwTZv3tzntd9++623tze96+vrO6REzTaUnIcemXovh/LKK6+UlpZS26WlpbNnz9YLaPhgPCAggN62tbWlNnp6ek6cOJGTk/Po0aMpU6b84he/0PU1pG/QORurF4YbOtvAYrhcro2NDYfDsXYiAAAAAAAA48emTZtSU1Pff/99uVz+zTff/O1vf/voo49MnB8cHJyZmblmzRoXFxcbm38tHiGTyZYsWcLj8crLyy9dusS8xM7OTiKRrF279tq1a8nJyTdv3jQRx4Q+4wyU6XqpBdvoR10mbN269cSJE4cOHZLL5cePH6fLR6AdAEan3t7eSZMmLViwwNqJAPRPoVBQI8lgoDQaTZ/LntEM+3XM7+mxluHLeaCR6ReJ7O3tKyoqfvaznw2i0nfffVcoFH7zzTfTpk1Tq9V1dXUD+s08Fn+CEwQ628BipkyZgmFtAAAAAAAAQ+Tk5MTcTU1NjYmJoQpDQkJSUlKocupRGv1AjX7Osnv37uPHj/v5+bW1tf3yl79cuXJlbGwsISQ9PT06Orq5uXnFihUnT55MTk6mh9BRC5yw2eygoKCsrCzTcUzoMw4zSWpDp9PRyVMJMAfzma5Xo9GY2eOVkpLy1ltv8fn8uXPnfvjhh6dOnaJqGYF2ABidnJycRCLRiRMnrJ0IQP8OHTrU1dVl7SzGpFdfffWLL77Yvn17n0dXrlz5P//zP6GhoXTJt99+6+/vb07kZcuW3b17d/Xq1dTuN998M8RUe3p6XnjhhX5PG0rOQ48slUrXrl1Lbf/jH/+gx/aFhoZ+/PHHf/zjHwdR76VLl3744Ydp06YRQiZNmjR9+vR+L6HbavhaAyxgxCeuBAAAAAAY/7BmGwCYg7lmGwBYBdZsAxiFsGbbgDDXbLt9+7aLi0txcbFWq+3s7KysrMzIyPj9739PHS0vL//FL35x69YttVqtVqtv3bq1ePHiyspKOhQxssCqTqe7cePGyy+//I9//KOzs/PatWtvvvmmsc4FY+V2dnZ///vfdTpdQ0PD6dOnvby8zLl2KDmbZk7kU6dOffnll93d3Y8ePfrVr35169Yt6tDjx4/d3d0PHz78ww8/qFSqlpaW//qv/woJCTEnEx8fn2PHjimVypaWlvPnzwcGBhqeaayt+s3ZRL1Ys224YWQbAAAAAAAAAADA+Nfe3v7pp59aOwuA/pWXlxsuiAXmWLp0qUQi+eMf/7hp0yYWizVv3jyxWPwf//Ef1NEFCxZ88sknBw4cuHHjBiFk1apVFy9enD9/PnXUcNw5c3fFihWHDh3atGmTTCb79a9//cEHH3zwwQfMsenM6SsNR96T5yPIe3t7Z86cGRYWdvnyZcPzDa8dSs6mmY5Meeutt3bu3Llx40ZnZ+f3339/+fLlVPnMmTNv3br1xz/+0cfH59mzZ7Nnz96wYQNzNTW9GQiYTfHhhx+++eabiYmJfD7/t7/97Weffcbj8fRyNtZW/eZsol4YbmZ97AAAAAAAYEBOnTr14MGDc+fOWTsRABjV0tPTb926lZOTY+1EACauuXPn5ufnL1q0aCQrnTp1alVV1YwZM0ay0pqamrfeemskawQYii1btrzxxhvWzuJftFqtra1tV1fX5MmTrZ2LPhsbm/b2dg6HY+1ExhszO+3Giubm5rlz57a3t1s7EcuwsbG5ffu2j4+PtRP5F4xsAwAAAAAAAACzODs7Nzc36xU6OTk9efLEKvkAgPnmzZtXXFxs7SwAAADGJ3S2AQAAAABMLN3d3b6+vtbOAmC027BhQ3x8vLWzGHXQqQYAAAATwYBmpAQg6GwDAAAAAJhotFrtd999h3fbAUyQSCSPHj2ydhYAAAAAYB3oY4OBQmcbAAAAAMBEtHr1amunADB6PXjw4MGDB9bOAgAAAAAGyd3d3di7U7NmzaqrqxvhfGDcQ2cbDFVvb++zZ8/s7e3t7e2tnQsAAAAAAAAAAAAATHToToMRZmPtBGDM6+zsbGlpaWlpsXYiAAAAAAAAAAAAAAAAIw0j22Co7OzsuFzuCy+8YO1EAAAAAAAAwDpYLBYZqdVNWCwWllEBAACg6XS6VatW2dhgXA2YolarVSqVtbMYz9DZBkOFCSQBAAAAwCpG8uH+6DdirYFmHwEikaixsXGIQTo7O6dMmWLmyVwut729fShxdDod9dkYAeZ//EzcFwAAwLjBYrHWrl3LZrOtnQiMakqlsry83NpZjGfobAMAAAAAgDFpJB/uj34j1hpo9hHQ1NTE3O3u7j5w4MClS5dsbGySk5Pff//96upq8rzjs62tbe/evXl5eW+++WZKSgohRC6Xh4SE3L1718nJafPmzcePH6d7y3bt2lVUVFRfX798+fK4uLiVK1cSQgQCgVKppH+sdFeWiTjGPHr0aMuWLVVVVWFhYWfOnOFwOHSeV65cCQkJuXr1amho6MyZMx8/fkxdsnTpUkJIaWmpOS1DXU5+2t9GxT99+vSxY8eam5tzc3PDwsJM3BcAAMD4s2fPHuprF8CY5ubmv/zlL9bOYjzD2FIAAAAAAIDB6OnpsXYKowhaY/jExcWpVKqysrKHDx9yOJzW1laqnOo9Cg8P9/Pzk8lka9asocpjYmJSU1NVKlVtba2/v39MTAwdKjk5uaqqSqFQxMbGrl+/niqkAuqeo082EceY8+fPf/bZZ7W1tQ4ODvv376cKv/3222XLloWEhBBCgoODlyxZcuXKFfoSvUpNCwkJMTyZKmloaCgvL8/NzY2IiDB9XwAAAAAAFofONgAAAAAAGL2qqqo2btzI5/Pt7e39/PyuX7/u4eHBPKGuru5Xv/rVpEmT2Gy2RCJhHjp+/LiPjw+Px3Nzc3vvvfdaWlroQywWi8ViKZXKDRs2sNlsw2v//ve/z5s3z8HBYdu2bZ2dndT59NHc3FxXV9fJkyc7ODgEBQV999135twL67k+y6ntioqKDRs2uLq6urq6hoeHV1VV9XlmUVHRz3/+cw8PD2anhWFFzLqGEjk/P3/BggVcLnfbtm1KpVKvOtOtYWbOQAhxdXWlm4vacHV1JYRcvHjxyJEjQqHQ3t5+8+bNP/74I/OqL774Iioqisfj+fv7UyUFBQUrVqxgs9lcLjc8PPzTTz+lymtqan7zm99Mnz6dz+cnJiYa/ij1GItjQnR09MyZMwUCwaFDh+jzly1bJhKJ/v73vxNC/va3v7344ouvvPIKfcmdO3fu3LljZhOZkJyczOPxwsLC1Gr10KMBAAAAAAwIOtsAAAAAAGCUqqioWLNmzZo1a/4/9u48rok7/x/4JyqxkIAmchigUrWebW298PjJt7oeCB5tEMHtV13Wq9v1XF3k0KK2QkRQq2z9VsGK2Kp4pQoFCwqtuNiv6H7XFtCIx6oEkUigAhESQn5/zHZ2OkmGcAbw9fzDx8xnPsd7BkmY+czn8ykoKHj+/Pnx48eLioroYT2UDz/8cPfu3TqdjjmihfL222/n5eU9f/785s2bQqGQmlmOQg1zCQ4O3rBhQ11dHavsjz/++PHHH586daq8vHzVqlVbt24ljDnosrOzk5KSUlNTNRpNaWlpeHj4ypUrr1+/3ujpvHjxwsXFxXgE2IsXL/r06VNXV3fr1q0//OEPe/bsUSqVSqVy9+7dQUFBzF4xKoa9e/deu3YtPT1doVAkJiYaN3T//v1ly5Y9ffqUjrklNf/www8ff/zxyZMny8rK/vjHP/71r39lttXo1bAwZiCEKJVKegwWtaFUKgkh9fX1HKWEQiErZfTo0QaGsrIyKj0gIGDSpEm3bt2qrKw8efKkuQq1Wi13PZZoaGjo1u0/DxyioqIiIiLq6uo++eSTTz75xPJ6WhF9XgAAAAAArc8AAAAAAACt7bPPPlu+fLm1ozCtpqams9wIzJ0798iRIxwZCCH//Oc/mbvmctbX1/N4PFbZkydPmizr7e194cIFevfMmTPMo//1X//14MEDZlU//fTTtGnTOOKkzZs3Lysry2AwKBSKLVu2UIkZGRkzZ840GAxz5sxJS0tj5k9LS3vvvfdYYWdkZDDPi3UKFy5cWLBgQVVVFbNUS2qeMWPGxYsX6fRz58419WpwxNxhtduv8BdffLFo0SJWIut/8p/+9KewsDCDwVBWVnb27Nn//u//NpeTsnv37vj4+MePH+v1ema6k5PTxYsXX7x4cfPmzbCwMGZZGxubs2fParXatLQ0Ly8v7nrMIYRs2bLl8ePHarV63bp1q1evZh5dtmzZ9OnTly1bxio1duzYsWPHWlI/syGOlEbPC4BlwIABP//8czs36uDg8OTJk3ZuFABaQq/XE0JevHhh7UBMoCZssCQnx1/LHaezwFwkHBF2kMg7uKdPnwqFQmtH0Wp4PN61a9esHcVv9Gjz3jwAAAAAAIBmyc7OTkhI4M7z9ttvm0yvq6vbtWtXUlLSo0eP7Ozs3nnnHYPRok3z5883Wfb69evjxo2jd999913m0WvXrvXv359VxM7OjjtOyvvvv//dd99NmTIlJSVl27Zt77///jvvvJORkTFjxgxCSHZ2NmvUl6enJ2u4HiFk+vTp9Hb37t2Zh2Qy2bVr106ePGljY8NMb0nNV69eHT16NJ0+adIkZhELrwZHzGDM2dmZuRsbGxscHEwl+vr6xsTEUOn0hJPULv0/fM2aNTt37vTy8qqoqBg3btyUKVNCQ0MJIQcOHFi6dGlZWdnkyZN3794tk8moHmhCCDW4k8/ne3t7Hzp0iLsek6gwgoKC/Pz8ioqK/P399+7dy8wQFhY2fPjwoqIiVkG9Xs8cA8eNPllqgwqevg4Gg4G5be68AAAAmi0rK4vP51s7isZJJJInT54Ypxv/Pcw8ZDzbuVWYi4QjQo7zYrG3t6+qqmp+cJ3fxYsXrR1Cq+lok4ejsw0AAAAAADoovV7f7Hv+devWOTk5XblypXfv3jqd7uHDh8OGDWuVqGxtbW/duvXaa681o+zs2bP37dtHCElJSRk/fnxiYuJnn32WkZFx7NgxKoPxkwLLnx0QQmpqan755Zf79+8PGTKk0XqaVLM5LbkaYM7Tp0+ZuwKBYP/+/fv372dlM/cT7N69e1hYGDV2jUkqlRpPpkofMp5l0Vw9JtG1Xbt2zWSGb7/99qOPPnr11VdZ6RYuechqxVwiK4PJ8wIAAGgGHo83bdq0PXv2WDsQi5SWlrJS0tLSZs2aRX77XVlTU7Ny5crTp08PGjTo6NGjrCKenp7E/Dc7k1wuDwwM1Ol09vb2I0aMKCsru3PnDvVn/O7duyMiIr777rtbt26tW7cuKSmJ+mtk9erVGRkZxcXFEydODA8PnzJlSvPO1OR5UU3v27cvOjq6rKwsOTmZalQsFldXVxu/qPRSiY6OtnYIrcNgMFRUVFg7it9AZxs0X1VVFbWYfAd56wEAAAAAupgJEyacP39+yZIlzSh74sSJBw8e9O7dmxDSo0ePPn36WF52zJgxeXl59GAs1uufs2bN+vrrrzdt2tSMqHr37t27d+/bt2/fuHHjp59+8vLy2rBhQ3l5+RtvvEEImTJlyo8//kg9L6BcvXp16tSplte/ffv20tLSDz744ODBg6+//jqd3pKax48ff/369WnTplG7V65cYR5tydWAlwd9z9hZnlECAACw8Hi8zMxMa0dhmiVjxH19fY1HhoWEhEgkErVa/fz58/j4eFYRy/uiFi9ePHv27JMnT2q12oyMjBUrVpBfB6Lp9frDhw/PmjUrKCjo8OHDgYGB1HswMpksLi5Op9Ndvnx57ty5zR5tZvK8qJSSkpLCwsJLly7RjarVanr4+0urw/43bqoO2CVh6VwNACx6vb60tPTRo0cNDQ3WjgUAAAAAuqaoqKiPP/6YWjDsxYsXCoUiISHBwr63QYMGHTx4sKamRq1WHzlyZOHChZa3u3Xr1r/+9a937tzR6XS5ubk//PAD86hMJouPj9++ffu//vUvnU6nVqu/++47Zj8Wt7lz565fv97b27t///7jxo1bt24d3Y8VHR29efPm3Nzc+vr6+vr63NzciIiIpr582rdv36+++mrFihX379+nE1tSc3h4+Pr163/++ecXL15cunQpPT2debSFVwNeEvRSFtYOBAAAoCtzc3Pj8Xj0pMo8Hs/NzY0j/7Fjx4KDg/l8vqOjI9VDxpSXl5eXl2dJu8eOHUtNTbWxsfHw8AgPD//222/pQ3/961/9/f0rKyv37Nnj7+9PzftXVFT0+9//vk+fPiKRaNu2bdXV1U0+VQvIZDIHBwepVNrRJhuErgqdbdBMtbW1hBA+n48VFwAAAACgjXh6esrl8ujoaJFI5OrqumjRotra2r/97W/UUdaCVazdo0ePpqenOzs7jxgxoqCg4PTp0xyZWbvjx4+PiIjw9fXt3bt3XFwcq1PK3d3973//+927d8eOHSsUCidOnGi8IhqH999/Pz09fcGCBYSQP/7xj2fPnqUWbCOEDBs27NixYzt27BCJRCKRKDo6+vjx48wJIZmPTugnKcxDFDc3t+zs7IEDB9KJLal58uTJW7du9ff3d3Jy+vLLL3fu3MlsrtGrwVEzdEYuLi48Iy4uLtaOCwAAAIhSqaTfbqE2lEqlhWVbMvHynDlztFptdXX1P/7xj0WLFtF/3JoTEBAwadKkW7duVVZWnjx5stntthDmmobWhWkkoZlevHhBCLG1tbV2IAAAAADQlXl6epqb6oQ1Soa1O2TIkOzsbHMZuMsSQubNmzdv3jxqW6VS2dvbM4+6ublZ3rvG4u7uTjc3e/ZsVtPDhg07f/68ubLca9pzZ2t2zYQQPz8/Pz8/c5m5rwYGM3UxrPXkAAAAoPNasGDBrl27tm7dqlKpqBeqmCxfs83Jyenbb7996623Xn311aFDh9bU1HDnVyqVY8aMcXBwKCwsPHHiRLPjbwYbGxu5XD579uyLo1D+KQAAIABJREFUFy/KZLLLly+3Z+vQtWFkGzQTOtsAAAAA4GVQUlKyefPm4OBgawcCAAAAAGARZ2dnVgprekkqMSYmpri4WCQS+fj4UFO1Mych0Ov1Fr411b9//3/+85+DBw/m8XiBgYHJycnEzEwSlAMHDixdulQsFoeGhi5evJiVzTjOpqYzm2aFkZycHBgYKBKJEhISDh06ZMnZAVgII9ugOQwGQ11dHSHklVdesXYsAACdQE1NzaeffmrtKAC6msmTJ8+cOdPaUUCXtXPnzpCQEEKIk5NTRETEqlWrrB0RAAAAAIBFjEeim+w2EwgER44cOXLkiMk8N27csLA5avQba9U3k/MuUBtSqVQqlXLntCR+c+kcFUqlUsweCW0EnW3QHLW1tQaDoUePHjY2NtaOBQCgE3jx4sXu3bvR3wbQijIzM3k8HjrboO1s3Lhx48aN1o4CAAAAAAAAOgF0tkFzYA5JAICmsrGxoUZIAECr0Gg0eCEROiAPD49Hjx6ZPNSvX7+HDx+2czzQtVETInWiVfF4PJ61ou101woAAAAAOhes2QbNQXW2YQ5JAAAAAACmhw8fGsxATxtYTiKRWJKtfbqONBqN5Znt7e05jjYp4Ca12ygLm+aIv3XjAQAAAIAuBp1t0GQGg6G2tpZgZBsAAAAAAEAbKC0tZe7W1tauXbvWxcVFIpEkJiYOHjyYeTQrK8vd3Z3P58vlcjpx9erVQ4YMEQgE06dPz87OphJ5PB6Px4uLi2Pl12g0y5cvF4lEo0aNUigUVDZCiEqlGjt2rEAgcHFxWbVqVaO9TWKxuLq6mvcr5qG0tDRWIrW7Z88ee3v73NzcQ4cO2dvbUyFxt+vp6enp6WnJZaypqQkKChIKhSNHjszPz2ceMnl9zMXf1OsAAAAAAC8hdLZBk2m12oaGhm7duvXs2dPasQAAAAAAAHRx4eHhWq02Pz///v37AoFArVYzj6anpysUiuTk5MDAQDpRJpMpFIrKysrQ0NC5c+dSidTorpKSksLCQmb+kJAQsVhcWlqak5Nz4cIFOmdwcHBsbKxWq713797UqVODg4O546QCo0dzMg/5+vqyUqhdvV5/+PDhWbNm5efnHz58mAqJu13jys0JCQmRSCRqtTozMzMlJYV5yOT1MRd/U68DAAAAALyErDZhOnRev/zyS1lZmZ2dnZubm7VjAQDoHJ49e+bh4VFTU2PtQKDNWXE1mpfNli1btFqtTCazdiBm7d27t6Cg4ODBg9YOxITy8nKJRIIpwQE4NDQ0DBky5MaNG23d0IEDB/7+978nJSURQtzc3EpKSphHXV1dlUqlRCIpKCgQi8XGxXk8nk6n69GjB2F8BxUVFa1fvz43N7eurm7UqFE5OTn0dxPze4rednZ2vn37NlW/SqVydnam0vv06cPs2HNyciorK+M+He7vQdZRepe10Yx2TRKLxXfv3qXOq7y83NHRsUnXh9Za8UCHNXDgwHPnzr355pvt2WivXr0UCkXfvn3bs1EA6Kq6detWVVUlEAisHQh0aGVlZQMHDqyqqrJ2IK2Dx+OlpqbOmjXL2oH8Rw9rBwCdD7VgG+aQBACAtkDN2oT+KoA21bNnT51Od/XqVWsHAtBxnThxgtXv1Q6USiW1weryqa+v5yhF9bQxBQQELFiw4NChQ2Kx+NmzZ42uAMecMpHZ7ujRozMyMiwM3phWq+Xz+c0o2MJ2zQVDb1t4fej42yIeAAAAAOhi0NkGTYYF2wAAoO0YDAbWKi+di7luQldX1/Z/aAtgTrdu3Qgho0ePtnYgAB3XlStXfvnlF2tH8W/+/v6xsbFRUVEqlerKlStnzpz56quvOPIrlcoxY8Y4ODgUFhaeOHGi0foDAwP37Nmzbds2jUaTkJBAp/v4+CQkJMycOdPV1ZX63GiUjY2NXC6fPXv2xYsXZTLZ5cuXLSnFwt0utWDbtWvXGq1nwYIFu3bt2rp1q0ql2rlzJ53OcX1Mxt+M6wAAAABW1BZv8W7evHn79u3U9vHjxxcuXNjQ0GBjY5OcnCyVSllNE0J69eqVm5s7fPhwQsjly5cPHjxYU1PzzTffsIowq4XODn8mQtPo9XqdTsfj8bBgGwAAdEl1dXVtUe2TJ0+s0i4AAHRGzs7OzN3Y2NjKykpnZ+c33njj3LlzMTExVDr1NMf43wMHDixdulQsFoeGhi5evJgjJ/Xvjh07SktLHR0dJ02aNGfOHLrdNWvWqFQqLy8vsVjs7e29Y8eORiOnloITiUQJCQmHDh2i03k8Ht2icQDkt6PruNvV6/UWPjuLiYkpLi4WiUQ+Pj5Llixp9PqYi78Z1wEAAMC6Gh3X3hIajabtKm8VrT5ZTlFRUUVFBb27cuXK1NRUg8HAWjSXbt1gMFRWVlI9bYSQFStWxMXFyeVyg8Hw/fffL1q0iM5cUVFx//791o0WrAWdbdA01BySfD4fL/QBAECzKRSKefPmiUQiW1tbLy+vS5cuDR48mJnh4cOH7777bo8ePfh8vlwuZx7auXPn2LFjHRwcXn311b/85S/l5eX0Ier5XXV19fvvv8/n843Lnj17dtCgQUKhcOHChRqNhn7eR0lOTnZzc3vllVeEQqG3t3dT1+kpKipiVUh5/fXXmY8XjfOYa5fKuX//fnt7+9zc3KioKIFAwDojAADokp4+fcrcFQgE+/fvLysrKysrS0xMpB+fGX7F2pZKpf/61780Gk1aWtrQoUNN5mFu29nZxcfHq9XqvLy8u3fv0g+GunfvHhYW9uDBg8rKyu+++y40NLTRyKVSqVarra6uPnPmzKBBg+h0w2+ZDIb8+miMu90bN27k5eVZchkFAsGRI0eqq6tv3rw5YsSIRq+PufibcR0AAACsq7S0lLlL3V3GxcW5u7uz7pRXr149ZMgQgUAwffr07OxsOvOePXuoW9FDhw7Z29tTRVQq1dixYwUCgYuLy6pVq1i9bp6entQAdG6s+2LWrnE8dJ7KysqlS5fa29sHBwdT6bW1tWvXrnVxcZFIJImJiawHC1lZWZacL0f9tPj4+BkzZtC7arXax8eHEDJr1qyRI0c2esp1dXUikYjanjhxYk1NDX1o6tSpBw4caLQG6BTQXwJNQ80h+corr1g7EAAA6Kxu3bo1c+bMmTNnFhQUPH/+/Pjx40VFRWq1mpnnww8/3L17t06nM35N7O23387Ly3v+/PnNmzeFQiFzugbqSVlwcPCGDRvq6upYZX/88cePP/741KlT5eXlq1at2rp1K2G875adnZ2UlJSamqrRaEpLS8PDw1euXHn9+nXLz2vQoEEm3567e/cu66kiMxtHu1S2oqKixMTE995779mzZ0lJScYvzQG0NY6ZXU12MFtYZ6MFm1pzp56BFsDqNm3axOPxhEJhUlJSVlaWtcMBAACA1kTdXZaUlBQWFrLulGUymUKhqKysDA0NnTt3Lp1Zr9cfPnx41qxZ+fn5hw8fpooEBwfHxsZqtdp79+5NnTqV1SnFutvlCGb8+PG5ubnUbm5u7oQJE+iCxvHQIfn5+Xl5eSmVypkzZ1Lp4eHhWq02Pz///v37AoGA9WAhPT1doVA0er4c9dMyMjKGDRtmfC6XLl369ttvmSm2trbUzQ6zk+/x48fmrsbQoUOxNGzXYQBoisePH9+5c+eXX36xdiAAAJ2JSqWys7OzdhQdxdy5c48cOcKRgRDyz3/+k7lrLmd9fT2Px2OVPXnypMmy3t7eFy5coHfPnDnDPPpf//VfDx48YFb1008/TZs2jSNOc8E3KZ27XUII9Z1LCHn+/DlHPS+hiIiI0NBQa0fB5bPPPlu+fLm1ozCNepWSldi3b99mVNXs/5NW/M8sFAqt1TR0Iu32K/zFF18sWrSoHRoCAHMGDBjw888/t3OjDg4OT548aedGAaCroqZ4MRgMrq6urIf/rq6uVB5ialj5nTt3Zs+eLRaLBQKBl5cX+e1wc+MNsVjMrNzJyal5AX/33Xf0be+0adMyMjK446ECqKqqYtXTt2/f8vJyk00QQnQ6nYXna65+moODg/HRzMxMjk/yhw8f2tjYsAIw3v3ll1969eplrpLW9fTp0650K0QIoSbz7Dgwsg2awGAwUCPbbG1trR0LAAB0VtnZ2dR8Cxzefvttk+l1dXVRUVFDhw61s7NzdHT09vY2GL03N3/+fJNlr1+/Pm7cOHr33XffZR69du1a//79mTM9jhgxgn7Vru002q6DgwO1YW9v39bBwEuONdUMISQtLc14CFpNTU1QUJBQKBw5cmR+fj6riIVTx1AePXo0fvx4kUi0ZMkS5lQqJtvVaDTLly8XiUSjRo1SKBTMDCbzm5sqRywWV1dXm5zTFQAs4eLiwjPi4uJi7bgAAACAKJVK6qE/+bU7R6lUcuQPCAiYNGnSrVu3KisrT5482Wj9o0ePZnYtlJWVNS/OGTNmvHjxIicnJycnp7a2dvr06ZbEIxQKWSn19fUcrfTo0YOV0tT6acZPHpKSkjw8PPr27WuuSL9+/XQ6nbmjer2eo3LopNDZBk1QV1dnMBi6d+9uY2Nj7VgAAKCz0uv1zX7AvW7dutra2itXrjx//vzx48d/+9vfWisqW1tb1ggzw6+jf9qUtdoFsISvr6/xjV9ISIhEIlGr1ZmZmSkpKayj9L29JRITE0+fPn3v3j2hULhx48ZG2xWLxaWlpTk5ORcuXCCMm1KT+Q1mpsqh5pahf90sDBUAaE+fPjV+jZe1yBwAAAB0CkqlcsyYMQ4ODoWFhfv27Ws0v4+PT0JCQnFxcUNDg/HRJr14t23btoiIiIiIiG3btjU7Hn9//9jYWEKISqWSy+ULFy7kzt/U+mkeHh4lJSX07qlTp9566y1qeVfm8w0vL6+IiIh79+4RQuRyOf0I3dbWln6nNi8vz8HBgb6AxcXFAwYMsDwS6MjQ2QZNQM3WhQXbAACgJSZMmHD+/PnmlT1x4sT69esdHR179Ohha2vbp08fy8uOGTMmLy+P3r148SLz6KxZs77++uvmRdUMdXV1VmkXwJibmxs9xovacHNz48h/7Nix4OBgPp/v6Oi4YsUK1tG8vDzmLxq3pUuXuru7i8XirVu3njp1ijtzcnJySEhIz549BQLBBx98YGETMpnMwcFBKpVyvFUKAAAAANDFODs7M3fpv/ZZ/x44cGDp0qVisTg0NHTx4sWEsbgy3YfE7Exas2aNSqXy8vISi8Xe3t47duxgtqLX6y1/m23q1KkNDQ0Gg+F3v/sdnWgyHua/rNkpYmNjKysrnZ2d33jjjXPnzsXExDTjfDnqp82YMeP27dv0blBQ0KhRo4wzy+Xyhw8fjh49msfjBQYGJicnU+lff/315MmTeTyek5PT+++/n5KSQvfD3b5929vb28KLBh0ceyglAAehUDhw4EDmKFcAAICmioqKkkql/fr1mzp1am1t7aNHj3JycnJzc7/88stGyw4aNOjgwYMrV66sq6tLSUk5duyY5e1u3br1ww8/PHXqVP/+/fPy8n744QfmUZlMNmnSJIPBsHDhQjc3t6qqqry8vH379rHWOm42GxsbuVwulUqfPHly+vTpxMTEGzdutEO7AI2iJ5ahVkBsUlmtVtsqMTQ0NHTr1shbgMz72FYckabVavl8fmvVBgAAAADQEbAGnTP/fmZuS6VSqVRq8hArhdro3r17WFhYWFiYyUapm1zLse7KOeIx9/e/QCDYv3///v37zYVNLDvfRu8vPvzww717986dO5faNTcbjaOj45EjR4zTpVKpuVunS5cubdiwgbt16Cwwsg2ahsfjGU93CwAAYDlPT0+5XB4dHS0SiVxdXRctWlRbW0tPCGnyHTp69+jRo+np6c7OziNGjCgoKDh9+jRHZtbu+PHjIyIifH19e/fuHRcXFx0dzYzK3d3973//+927d8eOHSsUCidOnJidnZ2YmGjhSTHfgDP5Nhw1i123bt3GjRt39+7d1NTURts19zohVpkC61qwYMGuXbt0Ol1JSQnr94g0ceqY+Pj44uLiioqKyMjIgIAA7syBgYF79uxpaGiorq5OSEhoTui/ojq/dTpdenr6tGnTWlIVAAAAAAB0eYMHD+7du3db1CwWizGNZJeBXhMAAABob56enpmZmSYPsV4oY+0OGTIkOzvbXAbusoSQefPmzZs3j9pWqVT29vbMo25ubpb3rnGHbYzjRTZz7Zo8NSwxBW2HNdUMMeripf77xcTE/PnPfxaJRAMHDjx69OjevXuZQ+L0en2jY9ToCoOCgvz8/IqKivz9/ffu3cvd7o4dO9auXevo6NivX7+jR49u2rSJOz/dXW0wGJjb5NfObz6f7+3tfejQoaZdJgAAAAAAePlERka2RbWffvppW1QLVoHONgAAAHjplJSUbNu2LTg42NqBAHQgrKlmiJnOXYFAcOTIEXp2FFYeC6eOoUtdu3aN4yiTnZ1dfHx8fHy8TqdLTU0dPnw4d36OnniOzm+AzoXZwWx17RlMM6a9BQAAAABoU5hGEgAAAF4WO3fupCZ4fOedd956662PP/7Y2hEBQBNs2rSJx+MJhcKkpKSsrCxrhwPQhiQSiSXZ2qfDSaPRWJKtPXu/LG+LNYodAAAAAKCNYGQbAAAAvCw2bty4ceNGa0cBAM0UGRnZRpO3AHQ0paWlzN3a2tqQkJATJ05069ZNJpNFRUXduXOHPpqVlbV48eKysrLk5GSpVEolrl69OiMjo7i4eOLEieHh4VOmTCG/Dj7bt29fdHQ0M79Go1m7du3p06f79+9//PjxoUOHEkIMBoNKpfL19b1+/bqzs/P8+fN37txpZ2fHHfmjR48CAgIUCoVUKo2LixMIBHS73377ra+vb1pa2qxZs9zd3R8/fkwVoRZ6NDnO1RhVnPy2v83ceYnF4urqanqmWQyGAwCALuzEiRM9e/a0dhTQoT1//ryhocHaUXRl6GwDAAAA4OLh4fHo0SOTh/r16/fw4cN2jgcAAF424eHhWq02Pz9fKBSmpqaq1Wrm0fT0dIVCkZGRERgYSE+RKpPJ4uLidDrd5cuX586dW1VVRQihljAsKSkpLCy8dOkSnT8kJEQsFpeWltbX1yckJJBf+6WCg4NjY2MnTpxYV1eXmZkZHBz8+eefc4eamJh4+vRpOzu7rVu3bty4kcp/9erVv/zlL76+voQQHx+fMWPGMJdLbFIfmK+vL70QI7MGk+elVqsx4SQAALwMDAYDNQmEtQOBDq2hoUGn01k7iq4MnW0AAAAAXNCdBgAA7cPNza2kpITapp6Xubq6KpXK48ePFxQUiMViQsj8+fPnz5/PLCWTyXr06CGVSumnJ0VFRevXr8/Nza2rqxs1alR1dTUrPyGEmT85Ofn27ds9e/bs2bPnBx98sG7dOio9JSWFXqCREOLk5NRoZ9vSpUvd3NwIIVu3bh06dCiVf/z48RKJ5OzZs35+fmfOnHn99ddHjBhBF8nLy2vidTLN+LwAAABeEjwe7969e9SAcgBzysrKBg4caO0oujJ0toFFjF8eBAAAAAAAgFakVCqpDdZ4rPr6eo5SPXqw7+sDAgIWLFhw6NAhsVj87NmzRleAY97rMdsdPXp0RkaGhcGzNDQ0dOv2n0Xio6Ki/P39Z82a9cknn5w5c6Z5dbaQVqvl8/lWaRqgI2hoaKCGrgJ0KG5ubtT8wAAAnR0628AiKpWqpqbG0dER60sDADRDTU2NVqt96623rB0IQNfx7NmziRMnWjsKAID24O/vHxsbGxUVpVKprly5cubMma+++oojv1KpHDNmjIODQ2Fh4YkTJxqtPzAwcM+ePdu2bdNoNMxn8T4+PgkJCTNnznR1dWX2nHGIj49ftmyZQCCIjIwMCAig04cOHTphwoQ5c+aMGzdu0KBBzCJNWrOtqWxsbORy+ezZsy9evCiTyS5fvtwWrQB0Cnq9/sMPP5w3b56Fv84A7aCkpMTW1hadba2isrKSnk0awKRffvnF2iF0cehsA4vU1tbW19djcBsAQPN0796dELJw4UJrBwLQdWRmZtra2lo7CgCANuHs7MzcjY2NDQ4OphJ9fX1jYmKodOoGjRoGx9w+cODA0qVLy8rKJk+evHv3bplMZpyHub1jx461a9c6Ojr269fv6NGjmzZtoupfs2bNzp07vby8Kioqxo0bN2XKlNDQUHMxUxUGBQX5+fkVFRX5+/vv3buXmSEsLGz48OFFRUWsgnq93vJH//Q9KbVBjcMzd16EkOTk5MDAQD6f7+3tzVwoDuCldfz4cRsbG2tHAfBv58+fj4uLs3YUXYS7u7u1Q4BOQCgUWjuErgydbWARd3f3urq6nj17WjsQAIBO6ZVXXuHz+SEhIdYOBKDr0Gg0eHMTALqqp0+fMncFAsH+/fv379/Pysac8pG5LZVKpVKp8SFz+e3s7OLj4+Pj43U6XWpq6vDhw6n07t27h4WFhYWFWRIzXaG5MWrffvvtRx999Oqrr7LSb9y4YUn9xmGbTGRlkEql+LIAAIAur6GhwdohAAA628Ay3bp1w8vjAAAAAMAcTdKhsNa4Yh0izYrZkoIc7bZKfoD2sWnTpqioKD6f7+vrm5WV1er10yPS9uzZ0+qVAwAAAABYHaZpBgAAAAAAIpFILMnWPh1FGo2mqUU4Amt2zJYUbGrllufHYsnQniIjIw0GQ11dnVwud3FxafX6Db9q9ZoBAAAAADoCdLYBAAAAAAApLS1l7tbW1q5du9bFxUUikSQmJg4ePJh5NCsry93dnc/ny+VyOnH16tVDhgwRCATTp0/Pzs6mEnk8Ho/Hi4uLY+XXaDTLly8XiUSjRo1SKBRUNkKISqUaO3asQCBwcXFZtWqVJb1uaWlpdHFaTU1NUFCQUCgcOXJkfn4+q4inp6enp6eFV+bRo0fjx48XiURLliypqanhbtfceZnLb+76iMXi6upq3q8sDBWgHbi4uPCMtEX/HABAM7TkS7PrfeF2vTMCAOjI0NkGAADQsXDcETX7kaslBZtaM+7cALq28PBwrVabn59///59gUCgVquZR9PT0xUKRXJycmBgIJ0ok8kUCkVlZWVoaOjcuXOpRGogS0lJSWFhITN/SEiIWCwuLS3Nycm5cOECnTM4ODg2Nlar1d67d2/q1KnBwcGNhurr62s8XCYkJEQikajV6szMzJSUFNbRJo2wSUxMPH369L1794RC4caNGxtt1+R5mctv7vpQFxyDgaADevr0qcEIa5E5AIA2hTdRAACgA8KCAQAAAG3u2bNnHh4ezPEQhBCJRPLkyZOmVtXsxX6suEqQvb19VVWVVZqGLmzLli1arVYmk1k7ELP27t1bUFBw8OBBawdigkajEQgE1GeCm5tbSUkJ86irq6tSqZRIJAUFBWKx2Lg4j8fT6XQ9evQgjM+WoqKi9evX5+bm1tXVjRo1Kicnh/7MYX7+0NvOzs63b9+m6lepVM7OzlR6nz59mB17Tk5OZWVllpwU61NOLBbfvXuXqr+8vNzR0bHZH57FxcVubm6EELVaPXToUFY8rHbNnZe5/MTM9TGZE9pTu/0Kr1q16quvvhIIBG3dEACYU1FR8c0338yYMaM9G+3Vq5dCoejbt2+7tajT6fh8vlartbGxabdG205TvyVdXV1Zf/B0dl3jjM6fPx8XF5eZmWntQACg8+HxeKmpqbNmzbJ2IP/Rw9oBAAAAvKRYM7YRQtLS0qi/Epj3jTU1NStXrjx9+vSgQYOOHj3KKkJNg3bt2jVLWnz06FFAQIBCoZBKpXFxcfRzPZPtajSatWvXnj59un///sePHx86dCidwWR+6t3Sffv2RUdHl5WVJScnS6VSwpgJjcqGB8cAHY1SqaQ2WA+t6uvrOUpRPW1MAQEBCxYsOHTokFgsfvbsWaMrwDFfSGe2O3r06IyMDAuDt5BWq22VehoaGrp1a2RqEHPn1UJarZbP57dWbdChSCSSt956a82aNdYOBODl9ec//9nBwcHaUUDbasZrjh1c1zsjAIDODp1tAAAAHQU1wxhrRhR6JrTnz5/Hx8ezijTpSS41E5qdnd3WrVs3btz4+eefc7dLzYRWX1+fkJBAjGZCY+WnUqiZ0C5duhQYGEg93Var1RicAdAZ+fv7x8bGRkVFqVSqK1eunDlz5quvvuLIr1Qqx4wZ4+DgUFhYeOLEiUbrDwwM3LNnz7Zt2zQaDfUhQ/Hx8UlISJg5c6arq2ujPVscFixYsGvXrq1bt6pUqp07d7KONulNhfj4+GXLlgkEgsjIyICAAO7M5s6rGWxsbORy+ezZsy9evCiTyS5fvtyS2qDDcnR07N+///z5860dCMDLKzQ0VCgUWjuKLkKhUISHh2dlZdXW1o4ZM2br1q0fffTRnTt3qKO3bt0KCwvLy8sjhIwbN04mkw0ZMoQ6RN1cVFVVLVy4MC0tjRBCv71HOXfuXGhoaHFx8XvvvffFF18YN11UVEQtMcu69Xj99dfv3btHOF+IMVe2hTFz27lz56lTpxQKRa9evfz9/Tdv3tynTx9LrmSHPSMAgJed8WTrAAAA0LpUKpWdnR217erqyvoudnV1ZWZmfTuLRKLy8nJq+9mzZ83+7iaEFBcXU9vl5eVOTk7GGZi7Tk5OdLvUnGnc+Vkp5rYBWktERERoaKi1o+Dy2WefLV++3NpRmEbNastKpCY8pFVXV3/00UdOTk5OTk5/+MMfSkpKqHTmfQRz++zZsx4eHra2tj4+Prdu3TKZh7ldU1OzbNkykUj09ttv//TTT3Q89fX1UVFRr732Wq9evWbMmCGTyRo9HZM3ONXV1YsXLxYIBCNGjLh58ybr3mfUqFFjxoyxsOYHDx6MHTu2d+/ey5Ytq6mp4W7X3HmZy2/u+lCX1MbGRiAQ+Pn53blzp9FooXW126/wF198sWjRonZoCADMGTBgwM8//9zOjTo4ODx58qQ9W6TehNNqtW25URnXAAAgAElEQVTXRGFh4WuvvXbw4EGlUqnVah8/fvw///M/ffr0oY+OHTv2/v371O6DBw/Gjx9/+/Ztujgh5E9/+tPly5cbGhqoL0H60Pfff//WW2/99NNPGo3m4sWLH374oblbjKamc+dpScyNunDhArVRXl6+efNmLy8vZrscV7LDnlEznDt3btq0aW3aBAB0VYSQ1NRUa0fxG3jTHBqhVCptbGz69OnTvXt3a8cCANBZmVyzzdx4L45lh548eUL1zDUjBuayQ8+ePXvzzTdZ81iy2nVxcbl16xbVbllZmYuLC6vd5i07hJnQoLVgzbaWYK7ZZnU6nS41NXXz5s0FBQXWjqU1ddXzenm026/wgQMH4uLiZs+e3dYNAYA5Bw4cyMnJefPNN9uz0S65Ztt77703b968xYsXmzw6d+7cjz76yMfHh05JT08/cODAN998Q+3yeLyTJ0/SI32ZNxHe3t4bN26cOnUqtXv+/Pn33nvPkpupRtO587Qk5ibR6/U2NjYNDQ3ULveVtLwtK56RhbBmGwA0G9Zsg05Gr9drNBpCiKOjo7VjAQB4SWEmNADoqjZt2hQVFcXn8319fbOysqwdTqvpqucFbWTcuHGVlZXWjgLgpRYaGtqenV5dWHZ2NseNQ3Z2dmJiIjPF09MzMDCQmWJuTt2rV6+OHj2a3p00aVKLArVYS2LmVldXt2vXrqSkpEePHtnZ2b3zzjvMPi3uK9kSbXdGAACAzjbgUldXRwjh8/ktWTADAABMcnZ2ZqXQc+5TG9TtVkxMzJ///GeRSDRw4MCjR4/u3buX+XahXq+35COaqjAoKMjPz6+oqMjf33/v3r3c7e7YsWPt2rWOjo79+vU7evTopk2buPNT21RszG1CSHJycmBgIJ/P9/b2PnToUNMuEwB0XZGRkZGRkdaOovV11fOCNvLOO++888471o4CAKAV6PV61rrOLMZjpDrIOHsObRTzunXrnJycrly50rt3b51O9/Dhw2HDhtFHG72SLdEZfwoAAJ0CelCAS21tLSGkZ8+e1g4EAKALevr0KSuFNdczlSgQCI4cOVJdXX3z5s0RI0YwDxFCbty4QS1tzY0q9dprr127dq2ioiI+Pt7Ozo67XTs7u/j4eLVanZeXd/fu3eHDh3PnZ+6yDkmlUq1WW11dfebMmUGDBjX1QgEAuLi48Iy4uLhYOy4AAAD4jwkTJpw/f97c0SlTpvz444/MlKtXr9IzQ3IbP3789evX6d0rV640O0gK9XJ5o1oSM7cTJ06sX7/e0dGxR48etra2ffr0YR7lvpImWf2MAAAAnW3AhfqqRmcbAMDLadOmTTweTygUJiUlYSY0ALCip0+fGq8+bfzKAgAAAFhRVFTUxx9/fPHiRYPB8OLFC4VCkZCQsGTJEupodHT05s2bc3Nz6+vr6+vrc3NzIyIioqOjLak5PDx8/fr1P//884sXLy5dupSent7U2KiZ7QkhT548iYuLmzhxoiWlWhIzt0GDBh08eLCmpkatVh85cmThwoXMo9xXsmOeEQAAoLMNuFCdba+88oq1AwEAACuIjIw0GAx1dXVyuRwjSAAAAAAAgIOnp6dcLo+OjhaJRK6urosWLaqtrf3b3/5GHR02bNixY8d27NghEolEIlF0dPTx48eHDBlCHaUnoje5O3ny5K1bt/r7+zs5OX355ZfUUtbMiRbpge+sbRo1s323bt3GjRt39+7d1NRUS8q2JGZuR48eTU9Pd3Z2HjFiREFBwenTp5llua9kxzwjAADAmm1gll6v1+l0BCPbAAAAAAAAAACgMZ6enpmZmeaODhs2zNzsiKxlw4xXEfPz8/Pz87M8Pws1s70lTbO0JGYOQ4YMyc7O5ijOfSVJxzsjAADAyDYwixrWZmNj060b/p8AAAAAAAAAAAAAAACYgE4UMAtzSAIAAAAAAAAAAAAAAHBDZxuYVVtbSzCHJAAAAAC0EuMFVKxbT6vrCIFZPQAAAAAAAICXEDrbwCyMbAMAAOiw9Hq9tUOArkYikbR1E6218odxPRqNplVqbqFGT7Ad4rT8Itvb27dpJAAAAC8tDw8PnhkeHh7Wjg4AANoEOtvAtIaGBp1ORzCyDQDA2jrCOIlW1yVPitIWp7Z582Z622AwPH78uLCw8J133mHmuXz58sKFC6VSKY/H4/P5crmcO51VLQAhpLS0lLlLPxJibet0utDQ0CFDhgwePHjjxo1arZaZv7KycunSpfb29sHBwVR6TU1NUFCQUCgcOXJkfn4+XX9r1aNSqcaOHSsQCFxcXFatWkX3Zpmrxxwqf1xcnLu7O/OXhflLzboge/bssbe3z83NPXTokL29PV3k0aNH48ePF4lES5YsqampaUmcnp6enp6e3JHT0tLSjD+CzJ2XWCyurq5m/mQBAACgtTx8+NBgxsOHD60dHQAAtAl0toFp1LA2Gxubbt3wnwQAoE1YOIiktQaCcGvnQSEdYfBHG2n1n1dRUVFFRQW9+/PPP9+4cWPYsGHMzgZCyIoVK+Li4uRyucFg+P777xctWsSdTgipqKi4f/9+60YLXYnBYHB2dq6qqqK2HRwcqH6jzZs3u7m5KRSKO3fuuLm50b221H9+Pz8/Ly8vpVI5c+ZMKj0kJEQikajV6szMzJSUFLr+1qonODg4NjZWq9Xeu3dv6tSpdGeVuXo4zpcQUlJSUlhYmJycHBgYyExnbVMber3+8OHDs2bNys/PP3z4MF0kMTHx9OnT9+7dEwqFGzdubEmc1FM57shpvr6+xpnNnZdarabrb58vGgAAAAAAgC6MhzsrMKmyslKlUgmFwnaYUAgAoMt79uyZh4cHPb6BwuP95lu4trY2JCTkxIkT3bp1k8lkUVFRd+7coXNeunRp8eLFZWVlycnJUqmUSl+9enVGRkZxcfHEiRPDw8OnTJlCfl2tZ9++fdHR0cz8Go1m7dq1p0+f7t+///Hjx4cOHUoIMRgMKpXK19f3+vXrzs7O8+fP37lzp52dHce5mKufSqfOiN6mNnbv3h0REfHdd9/dunVr3bp1SUlJ1ECrhw8fBgQEKBQKqVQaFxcnEAgIIebioaqqqKjYsGHDyZMn//SnP8XExNBRUSM/rl27xv2DoEdvMOOkdzmup3G7rfvzMndehJCNGzf+v//3/9577z3jc2H+/+nfv/+DBw+Mj5pLJ4ScPXv2f//3f6Ojo7kvWoe1ZcsWrVYrk8msHYhZe/fuLSgoOHjwoLUDMUGj0QgEAuo/g5ubW0lJCfOoq6urUqkkhEybNi0sLGzatGn/+Mc/3nvvvUePHhFC+vbte/v27d69exNCKioqhg8f/uTJE6ogj8erqqoSCoXM2sRi8d27d8ViMSGkvLzc0dGRare16unTpw/Vb0RxcnIqKyvjqIcD8xek0W1zGzwer7i42M3NjRCiVquHDh1KxdOKcVp+FpafFxjryL/CANAF9OrVS6FQ9O3bt91arKure+WVVz744AO8VA0dR3FxcWVl5f/93/9ZOxAA6Hx4PF5qauqsWbOsHch/4PsVTKNGtvH5fGsHAgDwsggPD9dqtfn5+ffv3xcIBMxnsoSQ9PR0hULBHJRACJHJZAqForKyMjQ0dO7cuVSiuUEMISEhYrG4tLQ0JyfnwoULdE5zgy3M6dSDPwwGw/jx43Nzc6nd3NzcCRMm0AU5rqdxu6378+IYfJORkTFs2LBGT+3x48dNSieEDB06NCMjo9GaoctTKpX0bxC1QfW0EUJGjBiRmppKCDl79uyQIUPoIhy/btw9RvRcka1Yz+jRo5lTM9E9WJbU01QNDQ1NzU8/0GzPOJuB9aMBAICuh341BKBDqa+vt/YvBwBAKzE3gzC85B4+fHjnzp2qqiprBwIA0BWoVCo7Oztq29XVlfVd7OrqajAY+vbtW15ebrI4IUSn09Hb1MadO3dmz54tFosFAoGXlxf57WxgxttOTk50/dRDXmqbGiZCc3JyavR0Gm2LuW1ugxBSXFxMpZSXl9PtcsRDCGn5F9N33303bdo0anvatGkZGRnUNvf1NG63dX9eHOfl4OBg8ijrrzhzuxzZfvnll169eplrt+OLiIgIDQ21dhRcPvvss+XLl1s7CtOogbasROOUL7/8ctCgQYSQYcOG/fnPf6YSg4ODo6OjGxoaGhoaZDJZcHAwRw0Gg+Gjjz6iOqeVSuXatWvpPK1Vz+7du+Pj4x8/fqzX6xs9I27mPtBsbGzOnj1bUlKyevVqSz7ctmzZ8vjxY7VavW7dutWrV7ckzrFjx44dO7bZZ2HJeWm12rS0NC8vrya18jLoyL/CANAFODg4PHnypD1bpN6r0Gq17dkoALdz587Rd2cAAE1CCElNTbV2FL+BkW1gguHXP8J69uxp7VgAALoac4NIuF/o69GjByslICBg0qRJt27dqqysPHnyZKPt8n6dMpH8djQJ92CL5unIgz9mzJjx4sWLnJycnJyc2tra6dOnU+nc19O43db9eXGcF/OH1SR6vb7R9GZXDl2Ss7MzK2XEiBFFRUUjRoy4devW4MGDqcTt27erVKpXX3311VdfLS8v3759O5VOfcjQLynTlcTExBQXF4tEIh8fnyVLltA5W6ueNWvWqFQqLy8vsVjs7e29Y8cO7nrMofOz/iWEJCcnL1iwYM6cOcuWLaPrZGZgbQQFBfn5+Q0YMKC6upqOp3lxUj1zjQZPV8WszZLzCgwMFIlECQkJhw4dsrAVAAAAAAAAMMZ+EgRAfn3RqVu3bjY2NtaOBQDgZeHv7x8bGxsVFaVSqa5cuXLmzJmvvvqKI79SqRwzZoyDg0NhYeGJEycarT8wMHDPnj3btm3TaDQJCQl0uo+PT0JCwsyZM11dXVu4foONjY1cLh8/fryFy2jFx8cvW7ZMIBBERkYGBAS0JB4L12yjbNu2LSIigtqgE5t6Pdv650Xz8PAoKSmh+znMsbW1zc3NnThxIiEkLy/PwcGhoaGhe/fu5tIJIcXFxQMGDLA8Eujynj59ykqhOr9ZiXw+PyYmhrW4IDHfdysQCI4cOXLkyBFWttaqp3v37mFhYWFhYRbWYw4zP6usVCqlplg3WS2dwjxk/HHUvDhv3LjReOicVXGfF2aPBAAAAAAAaBUY2QYmYFgbAEA7YA0iiY2NraysdHZ2fuONN86dO0c/gDY3KOHAgQNLly4Vi8WhoaGLFy/myEn9u2PHjtLSUkdHx0mTJs2ZM4du19xgC3O6wOCPqVOnNjQ0GAyG3/3ud3Rio9eT1W6r/7zMDb6ZMWPG7du3mSkmB698/fXXkydP5vF4Tk5O77//fkpKCvXGjLl0Qsjt27e9vb0tvGgAAAAAAAAAAGAOD9MHgbFnz55VVFT07t3bycnJ2rEAAHQFz5498/DwoBZJsjqdTpeamrp58+aCggJrxwKNu3Pnzt69ez///PNWr3nlypUbNmzovIPbtmzZotVqLRxGaRV79+4tKCg4ePCgtQMxQaPRCAQC3AgAcOjIv8IA0AX06tVLoVD07du33VrU6XR8Pl+r1VoyiRGPZ/aBIfWyVzP+irCkIEe7rZIfOprz58/HxcVlZmZaOxAA6Hx4PF5qauqsWbOsHch/YGQbmNC9e/eePXtiZBsAQBezadMmHo8nFAqTkpKysrKsHQ5YZPDgwb17926LmsViceftaQNoHhcXF54RFxcXa8cFAABgHRKJxGQ6Rw9Wszu3LCnYklmgudnb2zepZgAAgKZCZxuYIBKJ+vXr5+DgYO1AAACgNUVGRhoMhrq6OrlcjofLnUhkZGRbVPvpp5+2RbUAHdnTp08NRowXqwMAAHhJlJaWslLS0tKMpzevqakJCgoSCoUjR47Mz89nFfH09KRWULbEo0ePxo8fLxKJlixZwpz5w2S7Go1m+fLlIpFo1KhRCoWCmcFkfiolLi7O3d2dz+fL5XIqXSwWV1dXc8zcDgAA0HLobAMAAAA2DP4AAAAAAHgJ+fr6Gg8XCwkJkUgkarU6MzMzJSWFdZR6ecXC+hMTE0+fPn3v3j2hULhx48ZG2xWLxaWlpTk5ORcuXCCMoWwm81MpJSUlhYWFycnJgYGBVLparabjxLSTAADQRtDZBgAAAGwY/AEAAAAA0FW5ubnRY7yoDTc3N478x44dCw4O5vP5jo6OK1asYB3Ny8vLy8uzsOmlS5e6u7uLxeKtW7eeOnWKO3NycnJISEjPnj0FAsEHH3xgYRMymczBwUEqlep0OguLAAAAtFwPawcAAAAAAAAAAAAA7USpVFIbPB6vqSO9tFptq8TQ0NDQrVsjYwCYUz624og0rVbL5/NbqzYAAAAKRrYBAAAAAECTNWnJk867REpbRL5582Z6+/jx4927d+fxeMylZZhN83i83r17FxYWUomXL19euHChVCo1LsKsFgAAoBUtWLBg165dOp2upKQkOjqadbRJa7bFx8cXFxdXVFRERkYGBARwZw4MDNyzZ09DQ0N1dXVCQkJzQv+VjY2NXC7X6XTp6enTpk1rSVUAAAAmobMNAAAAAACIRCJhpdjb23PkN37BnCO/ubfRNRqNZdFZTauv7FJUVFRRUUHvrly5MjU11WAwMJeWYbZuMBgqKyuHDx9OpaxYsSIuLk4ulxsMhu+//37RokV05oqKivv377dutAAA0LU5OzuzUljTS1KJMTExxcXFIpHIx8dnyZIl5Lfv3Oj1eku+LqkiQUFBfn5+AwYMqK6u3rFjB3e7O3bsKC0tdXR0nDRp0pw5cxqNk05h/UsIob5nRSJRQkLCoUOHLLs8AAAATYDONgAAAAAAIKWlpcxdsVhcXV1ND65iHkpLSzNO5MhvkkqlGjt2rEAgcHFxWbVqFavXzcJ35FnNsXZXr149ZMgQgUAwffr07OxsZp7KysqlS5fa29sHBwdT6bW1tWvXrnVxcZFIJImJiYMHD2Y2lJWV5e7uzhpJ1qT6afHx8TNmzKB31Wq1j48PIWTWrFkjR45s9JTr6upEIhG1PXHixJqaGvrQ1KlTDxw40GgNAAAANONVmVnLNlOJAoHgyJEj1dXVN2/eHDFiBPMQIeTGjRuWrNlGlXrttdeuXbtWUVERHx9vZ2fH3a6dnV18fLxarc7Ly7t79y796om5/Mxd1iGpVKrVaqurq8+cOTNo0KCmXigAAIBGobMNAACgc8CMbc2GGdsAmkGtVhOjB1UUX19f4xfYOfKbFBwcHBsbq9Vq7927N3XqVFanlIWVGAyG8ePH5+bmUru5ubkTJkygC8pkMoVCUVlZGRoaOnfuXLoIIcTPz8/Ly0upVM6cOZNKDw8P12q1+fn59+/fFwgE1OnQ0tPTFQoFa/BZk+qnZWRkDBs2zPhcLl269O233zJTbG1tqQ8l5ofP48ePzV2NoUOHZmRkmL9aAAAAnc+mTZt4PJ5QKExKSsrKyrJ2OAAAAGb1sHYA0LHo9Xoej9foErUAANByEonkyZMnzBR7e/uqqipz+U3O2GYuv8FgMNllpdFomC+QdkDmIm82kzO2+fj4yOXywMBA1gLvxhd5xYoVV69epcaR5Obmzpgxo7q6mjpEzdg2YMCAVowWoP25ubmVlJRQ29Rvn6urq1KpbOt2U1JSjhw5Qu86OTl9/vnn9K4lL8hTtm3bFhERkZmZSQiJiIjYtm0blV5UVLR+/frc3Ny6urpRo0bRv7mU8+fPC4VCQsjUqVOplOPHjxcUFIjFYkLI/Pnz58+fz8wvk8l69OghlUp1Ol3z6qc9ePDA1dWVlXjx4sWRI0c6OjoyE+nRfo8ePXr99depzyu9Xm/uUri7uz948MDcUQAAgM4oMjIyMjLS2lEAAAA0Dn0q8BsVFRX37t0rLy+3diAAAF0fZmzDjG0AHYFSqWRNuGSyp43VM92oRvOPHj2aOftTWVlZk+qnzZgx48WLFzk5OTk5ObW1tdOnT6fSAwICJk2adOvWrcrKypMnT7JKUT1hTPX19Ryt9OjBfkmxqfXTjDv1k5KSPDw8+vbta65Iv3796E4+Y8zut1ZfYQ4AAAAAAAAsgc42+A3qXt34aQIAALQ1zNjGbAgztgF0BDY2NnK5XKfTpaenT5s2rXXz+/j4JCQkFBcXNzQ0GB+18A0ACjW4jTmsjRCiVCrHjBnj4OBQWFi4b9++Rivx9/ePjY0lhKhUKrlcvnDhQu78Ta2f5uHhQQ8lJIScOnXqrbfeohaPYb454eXlFRERce/ePUKIXC63sbGh0m1tbekP4by8PAcHB/oCFhcXY6wtAAAAAACAVaCzDX7DxcVl4MCBDg4O1g4EAKDLcnNzo0eDURtubm7t0G5KSsrkyZP5fL69vb2fn9+pU6eYR/Py8iyctI16qE1ts2Zs+/3vf9+nTx+RSLRt2zbjGdWCgoIcHByYM7ZFRkY6OTnZ2trOnz//2bNnzPwymUwgELBmbGtS/bQmzdhGdTrevXuX7uTDjG3w8nB2dmalUB3eIpEoISHh0KFDdDrrQ6x5+desWaNSqby8vMRisbe3944dO5hN6/V6ywdpTZ06taGhwWAw/O53v6MTDxw4sHTpUrFYHBoaunjxYvJrVxYzEmbwsbGxlZWVzs7Ob7zxxrlz52JiYujgTf7b1PppM2bMuH37Nr0bFBQ0atQo48xyufzhw4ejR4/m8XiBgYHJyclU+tdffz158mQej+fk5PT++++npKTQ/XC3b9/29va28KIBAAAAAABAK8IAJmDDgm0AAG2Knp+Nx+NxPErWarV8Pt/yahvNP3r06FYZhjVjxoxPPvkkJyeHEMKasW3BggWHDh0Si8XPnj2TSCTMUq0yY1uT6qeZnLFtwoQJLZmxrXv37uYqB+i8nj59ykqRSqUmZ4M09z+/Sfm7d+8eFhYWFhZmsqobN240Eu5v/fDDD8bBSKVS4xjMBS8QCPbv379//35WOjM/c7up9dM+/PDDvXv30sNzmZPTMjk6OjLXtGO2a26KzkuXLm3YsIG7dQAAAAAAAGgL6FYBAADoKDBjGwfM2AYAXcPgwYN79+7dFjWLxWJ8KAEAAAAAAFgFOtsAAACsAzO2YcY2AHg5RUZGtkW1n376aVtUCwAA0BIm/0o3+Xc7dyWtF1HT6jd3l2FJnY0W7GjXAQAAWgLTSAIAAFgHZmzDjG0AAAAAAFYkkUiePHnSpk0YDAbjLiLjv+Ht7e2rqqo4Kmn9yCyr32T8FtbZaMGmnpfl+bmvJwAAtAWMbAMAAICuDDO2AQAAAACYVFpaytytra1du3ati4uLRCJJTEwcPHgwla7T6UJDQ4cMGTJ48OCNGzfS76JRg7fi4uLc3d35fL5cLqfSa2pqgoKChELhyJEj8/PzmU2kpaUZD/kSi8XV1dUmJ6swmb+p8XAwWT9H/KSJM/A/evRo/PjxIpFoyZIlzNf+TLar0WiWL18uEolGjRqlUCiYGUzmN3e+HNcTAADaDjrbAAAAoIvDjG0AAAAAAI0KDw/XarX5+fn3798XCARqtZpK37x5s5ubm0KhuHPnjpub2+bNm6l0aqBVSUlJYWEhNcU9lR4SEiKRSNRqdWZmZkpKCrMJX19f4+FZVEOGXzWav6nxcDBZP0f8dJyN1kxJTEw8ffr0vXv3hELhxo0bG21XLBaXlpbm5ORcuHCBMIaymcxv7nw5ricAALQdHj5zAQAA2tqzZ888PDzMTWAIAM2wZcsWrVYrk8msHYhZe/fuLSgoOHjwoLUDMUGj0QgEAtwIAHDoyL/CANAF9OrVS6FQ9O3bt91a1Ol0fD5fq9Xa2Ni4ubmVlJQwj7q6uiqVSolEUlBQIBaLWWX79u17+/ZtarqIioqK4cOH05NP8nj/ebRIb4vF4rt371L1lJeXOzo6sv7qYJYyl8JxtKnxNIqVs9H4LcTj8YqLi93c3AgharV66NChZWVlHO06Ozvfvn2balelUjk7OzfpujXv3K3r/PnzcXFxmZmZ1g4EADofHo+Xmpo6a9YsawfyH1izDQAAAAAAAAAA4GWhVCqpDVaXTH19vbkize65Mbf+MXcRPp/PnafdepKaEb9JDQ0N3bo1MsEYc8rHVjxBS64nAAC0HKaRhH+rqqoqLi6urKy0diAAAAAAAAAAANDe/P39Y2NjCSEqlUouly9cuJBKX7x4cXx8PDUn4YEDBxYtWsRdz4IFC3bt2qXT6UpKSqKjoy1p2sbGRi6X63S69PT0adOmcWduajxNxR1/k9Zsi4+PLy4urqioiIyMDAgI4M4cGBi4Z8+ehoaG6urqhISE5oT+qyZdTwAAaBXobIN/q62tffHiBcdLTAAAAADwEmK+ZN0Zdfb4WXg8XqufEb3UDSGksLDwgw8+sLW15fP5crmcTr948SKfz6da5/P5Fy9epNIvX768cOFCqVRKpdNFzKWzmgMAAOtydnZm7sbGxlZWVjo7O7/xxhvnzp2LiYmh0rdv365SqV599dVXX321vLx8+/btVDr1lWT8b0xMTHFxsUgk8vHxWbJkCWF8HdNfZKxvNGrJMZFIlJCQcOjQITrdZP6mxsPBZP0c8RNC9Hq9JcPOqCJBQUF+fn4DBgyorq7esWMHd7s7duwoLS11dHScNGnSnDlzGo2T43zNXU8AAGg7mEYS/o0aF49x5QAAAAAvJ4lEQq93wtTyWYzs7e2rqqpaWEmz6+8UC5ZYzmAwtG5nW1FRUUVFBb27Zs2ajz/+OCkpKSUlJTAwkJ47a/HixQ8fPpRIJISQJ0+ejB49mlrsZ8WKFVevXhWJRISQ3NzcGTNmVFdXc6QTQioqKu7fvz9gwIBWPAsAAGiep0+fMncFAsH+/fv379/Pysbn82NiYui+NxrzS5a5LRAIjhw5cuTIEe5sTFKp1OSEjSbzNzUeDiazccRPCLlx40aTar527ZqF7drZ2cXHx8fHx+t0utTU1OHDh3Pn5zhfc9cTAADaDka2wb/V1dURdLYBAAAAvKxKS0tZKWlpaYJunokAACAASURBVMbjqKiUuLg4d3d35ogluVxOjXxycHCYNGnS4MGDqXSxWFxdXc37FaueysrKpUuX2tvbBwcHM9ONt2tra9euXevi4iKRSBITExut31z8Op0uNDR0yJAhgwcP3rhxI/0cytx5USycMIoVBmt39erVQ4YMEQgE06dPz87O5r4O5s6XkpWVZRxnk+qnxcfHz5gxg969ePHiu+++261btx49erz55pt0ul6vp/vkNBqNXq+ntuvq6qgeNULIxIkTa2pquNMJIVOnTj1w4ECjFxMAAOAltGnTJh6PJxQKk5KSsrKyrB0OAAA0AUa2ASGE6PV66oYZnW0AAB0B9WS2nUdj8H67OrrV6+kg2uJnsXnzZnqum8LCwu3bt8vlcr1en5ycLJVKqfSLFy/6+vrqdDpCiI2NTVpaGrXWwuXLlw8ePFhTU/PNN9/Y2NjQRcyls5oDaBJfX1/jcVRUSklJSWFh4aVLl+jBT4sXL549e/bJkye1Wm1GRsaKFSuo/Gq12uTHAlWPn5/f4sWL9+zZk5eXx0w33g4PD9dqtfn5+UKhMDU1Va1Wc9dvLv7Nmze7u7srFApCyN69ezdv3rxz506O86IjseSKGQyGCRMm7N69m9rNzc3dsGFDbm4utSuTyeLi4nQ63eXLl+fOnUuNxjN3HcydLyU9PV2hUGRkZDDjbFL9tIyMjGXLlrESHR0dR4wYkZ6eTqfEx8cvWrRowIABzs7ON2/e/OKLL6j0x48fm7wU5tIJIUOHDv30008tXMKny8vOzja+/gBWFxISQn+MA0B7ioyMjIyMtHYUAADQHOhsg//P3r3HNXGljQM/QaGFXDQpCYRIqXYNarutF+hahVULonh7BRV8u4KuqG0V3aoEkKW2tlqkYr2w7Wcp+HpZ266uJRVUVkRt1WIXe9FWwaBoVQJIBKKEaBJgfn+cX89OJ5kh4RaE5/uHn5lnZs55ZpKJIWfOOQj9Ooakq6uriwt0dgQAgG7CNmIbsjVKmNFo9PDw6NJ87G9PghHbOgJGbAM9jUKhwO8u9Gvrso+Pj1ar5T4qLS0NIRQREYGbhBFCn3322Zw5c1xdXT09PaVS6dGjR+2pPS8vTyAQIIRCQkK49/z888+vXLkikUgQQvPmzZs3b5495Vvbu3fv1atX8XJsbOyIESNwYxtmfV6YdRsVmw0bNqxfv/7EiRMIofXr12/YsAHHr127tmbNmuLiYpPJNHr0aHKHYtbXgft809LS+vfvT8/T0fKJmzdv+vj4WAffe++9nTt3kt/7zp07t2vXrpEjRyKEvv322y+//BK36JMubgxscYTQoEGDbt68yba1rzEajTKZ7NNPP3V2IgD81zvvvKPX652dBQCdxsvLq7a2lhGUyWSMITQBAACAjqIAoCi9Xl9eXq7Vap2dCAAA9E46nc7Dw4MRZPwvbDAYFi5cyOfzR44c+fPPP5OttbW1AQEBCCGZTLZixYqmpiYcz83NdXV1RQgJhcLx48cPHToUxx8+fLhq1SqZTObt7b17924Sx//vNzQ0LF68WCAQJCQkkKrJb+KM9BBCRUVFUql0zJgxv/zyC46TYcGsD7FZjtlsTkpKUiqVQ4cOValUJpOJXv7OnTsVCoWrq2tubi79qMDAwMDAwDYvLCMNxmp8fLxSqfTw8AgNDT116hT3dWC7bviQkydPWufpUPmESqX68ssvGcGWlpa8vLxRo0aRiEwmu3LlCl6+fv26TCbDy8888wzjCnDHKYr64osvEhMT2a7h42v9+vXJycnOzoLL9u3bly5d6uwsbMNj+jGCbH8acO9p/VF2+/bt999/f+DAgTb3IR8C9tSIG2zwsqenZ11dXZsZ0su3WYuXl1d9fT1erq+v9/b2tue8HDJ+/PgzZ86cOXMmKCiIBEeOHLl58+a7d+9aLBb8pAV3XXaeL1l2tHwCPz9hHW9qanJ3dyercrncYrHgZYvFIpfLbRaOEGpubuaIUxR1//59kUjEkVIP0T238JEjRyZNmtTVtQDgkPj4+PT0dGdn0fuJRKLq6ururBE/1GU2m7uzUgC4HT58ODQ01NlZAAAeSwihI0eOODuL34BuTAChX3u2wRiSAADgRElJSXK5vL6+/sSJE/n5+SSuUqkyMjLMZnNFRUVISAiZbgeP2GaxWGpqahISEsgDyGTksRs3bvD5fDLyGEVRCKHIyMjg4GCtVjt16lRSBR5pjZEPjtTV1d25cycpKWn16tU4jgsk3yToh9gsJzU1VaFQaDSa8vJyhUKRmppKLx+P2HbgwIHo6GhG7dZFWaMoauzYsWSItuLi4pdffpkcmJaWptFo9Hp9cnLyrFmzuK8D23XD8IhtjDwdKp8oLCwcPnw4I+jp6bl161brEdvmzZu3YsWKhQsXdnDEtsLCQratAHQWqVRaUlLi4uLi6+s7bNgw+hxdrq6uarXaYrEUFBTgAVG54f2rq6vffPNNEpw7d25GRgZCSKfTqdXqBQsWtK/82NjY7Oxs/CGTlZUVExNjz9nZOWcbhju30bu1IYS0Wm1AQIBIJCotLd25c2ebhXCcr02Olk/4+fmRro0Ioddff/3nn3+mKOr48ePNzc0kLhAI8BzPCCGTyYT7ySGE3N3dyYfwhQsXRCJRa2srRxwhVFlZCX1tAQAAAAAAAL1NtzXrgZ6ssrKyvLz8/v37zk4EAAB6J3rPNuvRunx8fCiKEovFpBPDvXv3yP/ReAwxQiqV4nheXh7u2ebp6Tl8+PCSkhIc9/b25ugMYbP7AtlqHWloaKAoqrGxUSgUcuzJUY6XlxcuhOqaTiTHjx8nz0KGhoYWFhbi5fLy8hkzZkgkEj6fHxwczKjL+jpwXzfSn4OU42j5hEgkst6q1+vXrl2bkpJCIiqV6scff8TL58+fT0pKYiTAWGWLUxR1//79AQMGsOXz+IKebR1hs2cb6UBJ2PzDgb5KXw4MDMzKyho0aBBCiNENFPfE5fP5kZGR5eXlHIWT/d3c3MaMGXPp0iWy1WAwvPHGG1KpVCqVLly4sKqqirt8tipMJlNCQoJCoVAoFAkJCYzuttbnhY0ePTogIMD+K/zHP/5xwoQJjJPy8/Nzd3cPDw8vKyuzrotRI9v5suXpaPnEmjVrDh8+TFYvXbo0fvz4fv362XwRcSH0TSTu6enp4+Pz9ddfc8cpivriiy/IZ1pPBj3bQJ8FPdu6B/RsA4CCnm0AgA5APa9nm+25xEFfc/PmzebmZl9f3yeffNLZuQAAQC907949Pz8/ej8PhBCP95v/hSUSyfXr13HTWnV1NW6BQwiFhYVxdEtqamqqr6/fv3//Bx98gGcCk0qlGo2G0URns8Y2t/J4vIaGhoEDBxoMhqeffpp09qLvaTabGR2jGeV4e3uXlZXhwScbGhpGjBhBZqqj78mdG7egoCA8zVJKSsrZs2dxcNSoUfPnz//zn/8skUju3buHRzzjqMvO60aWHS2fEIlEVVVVpFMIYTQaPT09jUYjXvXx8bl9+3b//v0RQs3NzU8//TTuesIonMfjNTc39+vXjy2OEHrw4IGvr+/9+/c5ruHj6O233zabzfil75l27Nhx5cqVTz75xNmJ2GA0Gvl8PvwhABBC5eXlO3bs+Oijj7qtxhUrVqxdu7bnd27rnlv46NGjW7duPXXqVJfWAmzqyHeP3m3lypW+vr6JiYnOTqSXGzBggEaj8fb27rYaLRaLm5ub2WwmD08A4HR5eXmZmZl4slsAAHAIj8c7cuTI9OnTnZ3If8EwkgC1trbiIWJgGEkAAHCi+fPnb9261WKxVFVVpaenk3h4eHhOTk5lZSUZgAtjG7HN0ZHHuJ07d85sNhcUFEyePJkEYcS2dpRPwIhtAIAeRalUDhw4sDtrlEgk8KH0uODxeDwez9lZOOZxzBkAAAAAAPQC0NgGkMViQQj179/fxQXeDwAA0H1kMhl9dcuWLZWVlWKxODw8fPHixQgh/FPRqlWrdDpdcHCwRCKZMmXK5s2b8f6DBw++ePGiUqnk8XjR0dEHDhzA8YyMDL1eL5PJnnvuucOHD2/ZsgXHcWm8X9GrJhHrTT4+Ps8+++y2bds+/PBDEsRTl4nF4pycnF27dnGXs3HjRp1O5+vr6+vrW1dXt3HjRkY+jH+xlpYW+x82DwkJaW1tpSjqlVdeIcGsrKy4uDiJRJKcnBwbG2tdF+Nk27xujH8dLZ8ICwu7evUqWV2+fPkbb7zh6upKfxERQunp6WKxGBciFotJ++unn346ceJEHo8nlUpnz56dn5+Pn01miyOErl69OmXKFDsvJgCgD9q0aVN3Vvfee+91Z3WgIx7Hjl/259y+s7MeDxwAwKEnN373hLZ5pycAAACgE8GwCQA1NjbW1NS4u7vjOTYAAAB0OpvDSPZ8MLxSV4AR2zoLDCPZETCMJABtgmEkMed+GTCZTE888YSjR3Vpzn3h2xEMI9k9esgwknK5nIzx3j5CobCxsbHD2TkH9x1tNBo9PDy6Mx8Oj/V15gDDSAIA2g2GkQQ9EZ4jF8aQBAAAQGfd2wx0ChixDQAAQI+i0WjmzJkjFovd3d2Dg4NPnjypVCrpO9y6dWvChAn9+/d3c3NTq9X0TR988EFgYKBIJPL19V29enVdXR3ZhLuMGAyG2bNnu7m5WR+bm5s7dOhQgUCwYMECo9HI6GJy4MABhULx5JNPCgSCKVOmfP/99w6dFEfOCKFr167Z7NGiVqvd3Nx4PN6AAQMiIyNPnz79/PPPk62/+93vGP3XGSWUlZXNnj1boVAoFIrIyEiNRkPfSvYvLCx88cUXlUrl0aNH2UrDq0OHDnXorAFoh5qaGkZk5cqV/v7+fD5/8uTJp0+fxsFHjx795S9/8fLyksvle/bsIZ8SEonEYDDYvCOOHTtmHbRYLMnJyf7+/kqlMjExEf8ehX59z2dmZg4aNMjmbcvAtj+9RsaoG9u2bRMKhcXFxbt27RIKheSQ27dvjx07ViwWL168mDwcqdPpAgMD+Xy+l5dXfHw8mVYZF6XX6+Pi4oRCoUqlomfl0Ej4Nq8P23lxXGcAAAA9BzS2gf8/jCRMkAsAAICO+pWzE+mFYMQ2AAAAPURZWdnUqVOnTp165cqVBw8efP7559euXauvr6fv89prr3344YcWiwWPI03f9OKLL164cOHBgweXLl0SCAQRERFkE/4KoVKp1q5dazKZGMd+++23b7311r/+9a+6urr4+Ph33nkH0cZ1PH369L59+44cOWI0GmtqalJSUlasWPHdd9/Zf14cOSOEhg4davMbDh7SmaKohoaGrKwsrVZbW1tLtl6/fh0fRdHQr+TChQu3bdum1Wq1Wu2HH364aNEiensb3nnHjh0lJSUFBQUajWbPnj04npeXN3v2bHppRqNxyJAh58+ft/+UAegsaWlpGo1Gr9cnJyfPmjULB1NSUsxm8+XLl2/cuMHn88mnBF6w+YfDtGnTrG+01NRUhUKh0WjKy8sVCkVqaiqO4z2rqqpKS0tt3rYMbPvTayTLeKGlpWX37t3Tp0+/fPny7t27ySF79uw5dOhQRUWFQCAgHTpVKlVGRobZbK6oqAgJCSGNarioyMjI4OBgrVY7depURlb2//Vk8/qwnRfHdQYAANBz9P4BEECbbt++bTKZfHx8+Hy+s3MBAIDe6TEdRhKAngyGkewIGEYSgDb1kWEk/+d//mfOnDl48lGbeDzexYsXX3zxRbLK9tHR0tLi6ura2tpKP/bgwYPz5s2zPnbq1KmrV68mU4rm5ubOmTOHbJ0wYcLevXufeeYZUtTPP/+8Zs0aO8cZszNn67hIJDp48OC4ceNEIhFH4TZLmzVr1htvvBEeHk4iBQUFWVlZX375Jf3YwsLCyZMn49WWlpZ+/frh5fHjx2/bto30idm+fbtWqyUzyHYzGEayezh3GEmFQlFVVUXf6uPjo9Vqr127tmbNmuLiYpPJNHr06LNnz+I3vFwuv3LlikQisS6WeyRGxlZvb++rV6/iYR4aGhpGjBhBBrGk72nPeK1s+9tcZlvg8XiVlZUKhQIhVF9fP2zYMNzE/tRTT9EfO5BKpaTpncfjNTY2CgQC7vTsZH2m9pxXbwLDSAIA2g2GkQQ9Ee7ZBsNIAgAAAAAAAECfcvr0aXr7kE2k1YrBZDK9//77w4YN8/Dw8PT0nDJlivUPwaSljeG77777wx/+QFYnTJhA31pSUjJ48GD6+IovvPBCcXFx2+fTVs7cvv322y1btkilUj8/v+nTp8+dO9f+uaxOnz5NPyOE0EsvvWTdjEpa2hBCpKUNIbRp06aUlBS8bDKZ/va3vyUkJLTjFACwk1arJX2k8IJWq0UIRUVFBQUFlZWV6fX6gwcPkv2bm5vtKZYMC8mh21qM6G3/du7v4vL/fyYdM2YMvQ8rvZMrQqizWtrazZ7rDAAAoPtBY1tf19zc3NrayuPx+vfv7+xcAAAAAAAAAAB0n5aWlnZP//Pmm28+evTo3LlzDx48uHPnzt/+9rfOysrd3f3mzZvUb3XDCAEjRow4efKkyWS6devW0aNHDx06tGTJEvsPZxsRzh4TJ07s16/fyZMnEUK7du2aPn26l5eX/VUD0Fm0Wm1AQIBIJCotLd25cyeJz507NyMjAyGk0+nUavWCBQvIJldXV7VabbFYCgoKQkNDucuPjY3Nzs7GN3VWVlZMTEynnwLOp7q6+s0337Rn/+zs7MrKyoaGhk2bNkVFReFgeHh4Tk5OZWWlQy12Ds3Z5iiHrjMAAACngMa2vo5M2AYzrAIAAAAAAGuP+7dEp+SP++I4ekgXJdOl2nGmbSJT+CCESktLX331VXd3dzc3N7VaTeJFRUVubm64djc3t6KiIhw/c+bMggULIiIicJwcwhZnVNcHvfzyy3l5ee079p///OeaNWs8PT379+/v7u7+1FNP2X9sQEDAhQsXyCp5BbHp06d/+umn7cuqcx07dox7B5PJhBcmTZr07bff0jedP38+JCTE/ro2bdr017/+1Ww2b9++PSkpydFUAWgfmUxGX83KyoqLi5NIJMnJyXiAWfwhn5GRodfrZTLZc889d/jwYfoYp3hqMbFYnJOTs2vXLhIn/0HQ/6fYuHGjTqfz9fX19fWtq6vbuHEj2dnmv2w49j9w4MD8+fNnzpyJG8vpadCPJQuLFi2KjIwcMmSIwWDYvHkz3rRq1SqdThccHCyRSKZMmULi9DOyzrClpcX+Jnab14f7vGxeZwAAAD0HdGbq63Dfc1dXV2cnAgAAAAAAnEkul9scMK3jwz0JhcLGxsYOFtLu8p0ywQmeBsbRQ7oomS7VjjPldu3atYaGBrK6atWqt956a9++ffn5+dHR0WTgrNjY2Fu3bsnlcoRQdXX1mDFj8ORDy5YtO3/+vFgsRggVFxeHhYUZDAaOOEKooaHhxo0bQ4YM6cSzeIy8//77ERERTz/9dEhIyKNHj27fvn327Nni4uL/+7//a/PYoUOHfvLJJytWrDCZTPn5+Z999pn99b7zzjuvvfbav/71r8GDB1+4cOHrr7+mb01LSwsKCqIoasGCBQqForGx8cKFCzt37jx69KjDZ+gIqVSak5Pzxz/+kbxVrP9Sxp1LIiIiqqurDx06tGfPnu+//x4hlJ6e/uqrr4rFYtyvpaSkZP369Z9//rn9tQcEBAwaNCgqKio0NNTHx6fzTgsALnfv3qWvRkREREREkFXyfxOfz//4448//vhj6xIiIiJsjmpo8/81Nze3LVu2WM9HSN/Znv8QOfaPiIggreAc/U3pm0pKShi79evXb926devWreOo1xr+NLCTzaK4zwtGjwQAgB4Oerb1dS4uLk888cQTTzzh7EQAAAD8V1d0FLCn0h5VjqOVQieSdoNOJACrqalhRI4dO2b9lsORzMzMQYMG0V9ctVqN3yQikSgoKEipVOK4RCIxGAzWz4DjVb1eHxcXJxQKVSoVPW69/OjRo7/85S9eXl5yuXzPnj1tls+Wv8ViSU5O9vf3VyqViYmJ5HcrtvNig/c/efKkTCYLCAi4desW9/4IoZUrV/r7+/P5/MmTJ58+fZo7T+587ByoinFZGKs282F7XdiuP3bq1CnrPB0qn8jOzg4LCyOrRUVFEyZMcHFx6d+///PPP0/iLS0tpE3OaDS2tLTgZZPJhJtJEELjxo0jAw+yxRFCISEhWVlZbV7M3uqll15Sq9Xp6elisdjHxycmJubRo0dkQEib3UHI6j/+8Y+CggKZTPbCCy9cuXLl0KFDHDszVseOHbt+/fpp06YNHDgwMzMzPT2dntWgQYO++eab69evBwYGCgSCcePGnT59es+ePfacEXe96Lc3AuOmGDx4sI+Pz/Lly318fMaMGTN//vwDBw4wysedS1xcXP7whz9cv379yJEjOD58+PDPPvts8+bNYrFYLBanp6d//vnn/v7+1onZ/LzC3n777WPHjiUnJ9tzpgAAAAAAoGehAAAAANDFdDqdh4cHI+jt7c1xCOP/6Kamps5Pq70EAoGzU7Ch73yr6dwzLS8vX758OVkNCQn56quvLBZLbm6uq6sricvl8qqqKrxcVVUll8vxsr+/f319PV7+5ptv+Hw+d5yiqOXLl1dUVHQ88/Xr1ycnJ3e8nK6zffv2pUuXOjsL23BLAyPI9tayuWdycvL9+/fp7xOBQBAREWGxWJqamtRqtVQqtafkSZMm7d69+/79+0VFRTb3J8urV69+/fXXa2trjUbjwYMHn3rqqTbLt7k1MTFx586deHn79u0qlYr7vLhLPnDgwKNHjw4ePBgREcFdL0VRjY2NFEWZzeaioiLrD1I7rzMWEBAQEBDQZoYURY0dO7a4uBgvFxcXv/zyy23mY/N14b7+CQkJBoOBkadD5RMvvviiRqNhBMVi8YQJE2pqakjk8OHDo0ePnjt37vLly8ePH5+bm4vj/fr1ox9IripbnKKoK1eujBw50urKddMtfOTIkUmTJnV1LT1fbW2tUCh0dhbOt2vXriVLljg7Cyo+Pj49Pd3ZWfR+IpGourq6O2vEz5eYzeburBQAbocPHw4NDXV2FgCAxxJC6MiRI87O4jf6ys9SAAAAgBPZbGxj/K5qMBgWLlzI5/NHjhz5888/k621tbUBAQEIIZlMtmLFCtLqhn/TRAgJhcLx48cPHToUxx8+fLhq1SqZTObt7b17924Sxw/ZNDQ0LF68WCAQJCQkkKrJoEyM9BBCRUVFUql0zJgxv/zyC46TngHWh9gsx2w2JyUlKZXKoUOHqlQqk8lEL3/nzp0KhcLV1ZX8TsqGLR+260lRVHx8vFKp9PDwCA0NPXXqlD3ny5ZPYGBgYGAgd4YUbaQXm6s282F7XdheR3zIyZMnrfN0qHxCpVJ9+eWXjGBLS0teXt6oUaNIRCaTXblyBS9fv35dJpPh5WeeeYZxBbjjFEV98cUXiYmJbNfQftDY1hH0xjbrwcp8fHzoO3M3y5HlvLw8/KHk6ek5fPjwkpISjhJIHLfH2FO+t7d3XV0dWzk24za3enl5NTQ04OX6+nr6cw826+UuGRfV2Nho3U7AKKG8vHzGjBkSiYTP5wcHB9vT2OloPjYdP36c/IYVGhpaWFjYZj42Xxfu62+xWBh5Olo+IRKJrLfq9fq1a9empKSQiEql+vHHH/Hy+fPnk5KSGAkwVtniFEXdv39/wIAB1plAY1u30Wq1y5Yte/fdd52diJM1NzcPHz68U55H6SBobOse0NjWJsZ8chj5Fgp6B2hsAwC0G+p5jW0wjCQAAADQIyQlJcnl8vr6+hMnTuTn55O4SqXKyMgwm80VFRUhISFkxK3Y2NgZM2ZYLJaampqEhAS9Xo/jKSkpZrP58uXLN27c4PP59fX1OE5RFEIoMjIyODhYq9VOnTqVVDFt2jSKZT6Durq6O3fuJCUlrV69GsdxgeSbBP0Qm+WkpqYqFAqNRlNeXq5QKMgQgnjPqqqq0tJSPCIT9/Vhy4dDWlqaRqPR6/XJycmzZs2y53zZ8rE+WbYkcScSvEo6kXDkw/a6sL2OWEFBgUajYeTpUPlEYWHh8OHDGUFPT8+tW7cWFBSQSHZ2dkxMzLx581asWLFw4cK///3vOH7nzh2bl4ItjhAaNmxYYWEh21bQ/bRaLXmH4wWtVtuOcmbOnGk2mw0Gww8//BATE0MfCZCOMd2IQCDgKLO1tZUsNzc325OGPdOZ2HM7O6p//zYmw46KigoKCiorK9Pr9QcPHuz0BNiEhYU9fPjw7NmzZ8+effTo0eTJk+3Jx/p14b7+1qfvaPmEzVdnwIAB77777rZt20hk//79ZFTJgICAffv2sRVIRpjkiHfFWwK06YMPPsCjKY4cOfL3v//9W2+95eyMnAZfh/79+5eVlT377LPOTgeAnuLu3bvWv2MyJpkDAAAAepDObr0DAAAAABO9ZxtbJxKxWEw6Ddy7d4/8Hy2RSOg7k5HZ2DqRcHc+4OhMYP2tALF02uD+/sDYCp1I2szH5uvSBzuROAp6tnVEx4eRtF729PT8z3/+YzQaqV+73pJ9cC9Ms9l87Nix4ODgNmvE+1dVVa1cuZLs8/rrr69bt46iqNra2tzc3D/96U9tlm+zFpVKlZ6e3tra2trampaWxhhGss3cGCXn5+ebTKaDBw9GRUVx1yuVSouKih4+fHjp0qV169Z18EPJzu62WFFR0cSJEydOnHjy5El78rF57hzX3+axjpZPPP/88/RhJF977bWffvqptbWV8aYaOnSowWDAywaDgXT/dXd3/+abb/BySUmJSCTCfTjY4hQMIwmAFejZ1j2gZxsAFPRsAwB0AIKebQAAAEAfZ08nEnrPjDFjxtD/566trcVxtk4k3J0PuDuRcGDrtAGdSBigEwl0Inl8WQ/WhDtb0Bfwss1/Bw8efPHiRaVSyePxoqOjDxw4QMrBvTDFYnFOTs6uqeLxugAAIABJREFUXbsY5dALJ/vPnz9/5syZS5YsIXtmZGTo9XqZTPbcc88dPnx4y5Yt3OWz5b9x40adTufr6+vr61tXV7dx40bu8+Lm4+Pz7LPPbtu27cMPP+SuNysrKy4uTiKRJCcnx8bG0st36DpjLS0t9t9HISEhra2tFEW98sorJMiWD9vrwnb92fJ0tHwiLCzs6tWrZHX58uVvvPGGq6sr402Vnp4uFotxIWKxOD09Hcc//fTTiRMn8ng8qVQ6e/bs/Px8/GAKWxwhdPXq1SlTpth5MYHT+fn58Vj4+fk5OzsAAAAAANB3tfFDFQAAAAC6x/z587du3frOO+/odLoPPviAxMPDw3NycqZOnerj4+Pi8t+nZKRS6dGjR3//+9/7+voOGzYM91NBCM2dOzcjI+P999/X6XTnzp374osv9u/f3+6szp07FxYWVlBQQBqNEEKurq5qtXrGjBlFRUVpaWlnzpzhKCE2NjY7OxuPfpmVlRUTE9PuZNjysUmr1QYEBIhEotLS0n/+858dqRQh9NJLLyGESkpK7Nl5w4YN69evxwvtzsfR17Hd5+vn51dVVaVUKvHq66+/vmLFiueff/748eP0Bj+BQGAymXAjn8lkIq137u7uxcXF48aNQwhduHBBJBK1trb269ePLY4QqqysHDJkiP0Zgm5jPS6TzeYcepC+jG+QZcuWWR8SERFh3TDP0VYUERFhMpkYu/H5/I8//vjjjz+2s3y2Ktzc3LZs2UJvq7Pe2f52rNGjR1sPmmrz8IiIiIiICPur497h+++/tzND7Ouvv7YzH7ZzZ7v+bHk6Wj7x2muv7dixg4yF+8ILL5w7d856N7YX3dE4QujkyZNr167lzgr0HLdu3XJ2CgAAAAAAANgAPdsAAAAA52B0ItmyZUtlZaVYLA4PD1+8eDH69fH/VatW6XS64OBgiUQyZcqUzZs34/3ZOpG02fnAujOBzU4VmM1OG9CJhBt0IuGII+hEAnoL+z+4gEOUSuXAgQO7s0aJRAJPAAAAAAAAAAA6iAfD+AAAAABd7d69e35+fqTz2eOCx+tZ3xN6Wj69Q3l5+Y4dOz766KNuq3HFihVr167t+E/bb7/9ttlsTktL65SsusKOHTuuXLnyySefODsRG4xGI5/PhxsKAA7dcwsfPXp069atp06d6tJaAHDIypUrfX19ExMTnZ1ILzdgwACNRuPt7d1tNVosFjc3N7PZTB6BshN+soT7a4Ozvqhz1GtP2t2DLROODPvOHz55eXmZmZknTpxwdiIAgMcPj8c7cuTI9OnTnZ3If8Ewkn0aRVHwNC4AAACbSKeNHvJnXk/Lp9eATiQAcPDy8iIzZRIymcx6yE0A2ufHH388d+7ck08+6exEAPgviqKmTp3q7Cz6hJ9++sl68uauY3NiXblcXl1dzX2gPb8d2fyKbjQaPTw87ExPKBQ2NjbauTN3vWRTD/nJiy0Tjgzt/5OnfdetR2lqanrvvfecnQUAAHQCaGzruyiKqqiocHFx8fPzw3OoAAAAAERPa9Pqafn0Jps2berO6uBvafAYgUY10NVGjBgxatSozz//3NmJAPBfb7/99u9+9ztnZ9H7jRw5MiUlpTtrxJPvMtTU1NBXLRbLW2+9pVarKYqaPXv2xo0b3dzc8Kbbt29HRUVpNJqIiIjMzEw+n48QmjRp0ldffUUOJ9/YdTrdtGnTvvvuO5lMNm/evA8++AC3uj169CgpKemf//yni4tLWlra+++/X15ejhCSSCQGg4G0PNnzzf/YsWO4NwN956amphUrVhw6dGjo0KH/+Mc/GIfYPw2zWq2Ojo62WCxCofCFF16ora0tLy/H6X344Yfr168/fvx4WVnZm2++uW/fPjxH6cqVKwsLCysrK8eNG5eSkjJp0qQ2a7H/vHDVO3fuTE9Pr62tPXDgAK60HdetB6qurn7nnXecnQUA4PHj4uIyYMAAZ2fxG9DY1nc1NzdTFNXa2gotbQAAAHoI6EQCAACgT3niiSf4fD709wU9ysCBA93d3Z2dRe/39ddfd3ONeBhJ7n1SU1MHDRqk0WgQQjt27EhNTf3ggw/wpj179hw6dMjDw+Odd95JTEzEg5CfPn2aHEvvpKVSqTIyMsaNG2cymU6cOKFSqfD+KSkpZrP58uXLAoHgyJEj9fX1eP/6+npHR7CYNm2adc+wpKQkuVxeX1//4MGD7OxsxiH2lx8bGztjxoyDBw+azebCwsJly5ahXzuitbS07N69e/r06YsWLdq9e3d0dLTZbEYIpaWlZWZmWiyWM2fOzJo1q929zWyeF45UVVWVlpaePHmSVNqO69YD/e53v7t586azswAAgE7w2H8ig45obW1tbm5u88sWAACADnpM52wDoCeDOds6AuZsA6BNMGcb6LNgzrbeij5nm0KhqKqqom/18fHRarXe3t5Xr17FY4w3NDSMGDECDzLJ4/EqKysVCgVCqL6+ftiwYdZPyNFbfZ566inSkIYQkkqleH+5XH7lyhWJRGKdXvsajRhHSSSS69ev4/Lr6uo8PT3b920nPz9/zpw5FovF09NTKpXu3bs3MDCQXh1j4dq1a2vWrCkuLjaZTKNHjz579iyjXrazsz9Oj7AtP45gzjYAQG/i4uwEgDO5uLhASxsAAAAAAAAAAABA36HVaimKwo00eIHMHtdmy01ra6uLSxs/J44ZM4aiIS1zzc3N9qSHu211UEcKmTlzptlsNhgMP/zwQ0xMTFhYGPf+UVFRQUFBZWVler3+4MGD7a63gzrlugEAAGg3aGwDAAAAAAAAAMfweDzGEE8dl5qaSpZLS0tfffVVd3d3Nzc3tVpN4kVFRW5ubrh2Nze3oqIiHD9z5syCBQsiIiJwnBzCFmdUBx4LHG+5dr8h7TnQ0ZI7/dYAAHSb2NjY7Oxs3EKWlZUVExNDNmVnZ1dWVjY0NGzatCkqKoq7nPDw8JycnMrKytbWVnp87ty5GRkZCCGdTqdWqxcsWEA2ubq6qtVqi8VSUFAQGhravvznz5+/detWi8VSVVWVnp7O2PrSSy/hadvaJJVKS0pKXFxcfH19hw0b1uYIJVqtNiAgQCQSlZaW7ty5s33Jt0+nXDcAAACdAhrbAAAAAAAAAEgul9u/s9Fo7LpMhEJh1xXeWTp9yKZr1641NDSQ1VWrVr322muNjY0HDhyIjo4m8djY2Fu3buGfQW/duhUbG4vjy5Yty8zMVKvVFEV99dVX5OdRtjhCqKGh4caNG517FqBTsN2MHO+6dr8h7TnQ0cLt3/+xuNkB6N1kMhl9dePGjTqdztfX19fXt66ubuPGjejXFvRFixZFRkYOGTLEYDBs3ryZUQ7jxl+1apVOpwsODpZIJFOmTCH7Z2Rk6PV6mUz23HPPHT58eMuWLeQQ/P+dWCzOycnZtWtXm5mTZwXoDw1s2bKlsrJSLBaHh4cvXrwY/bb5v6Wlxc4PqMGDB1+8eFGpVPJ4vOjo6AMHDpCiSIH0krOysuLi4iQSSXJyMv6vmb6bdZ6OxulVM9Jw9LoBAADoOtDYBgAAAAAAAEA1NTX0VfwTj16vj4uLEwqFKpUKx3U6XWBgIJ/P9/Lyio+PJ61ueP+TJ0/KZLKAgIBbt27huMViSU5O9vf3VyqViYmJZIAjtvIlEonBYOD9ipGknc+kMw5nrK5cudLf35/P50+ePPn06dPc+Tx69Ogvf/mLl5eXXC7fs2ePUqmkV3Tq1KlBgwYxeow5VD6RnZ1NH6WqqKhowoQJLi4u/fv3f/7550m8paWFtMkZjcaWlha8bDKZxGIxXh43bhx5Bp8tjhAKCQnJyspq82KC7se4GRFCx44ds74jmpqaFi1aJBAIRo0adfnyZcYh9nfgQAjdvn177NixYrF48eLF9DeJzXqNRuPSpUvFYvHo0aM1Gg19B5v740hmZibjZuG+2QEA3ePu3bv0VTc3N9xeVVlZuWXLFjzzCH7C45lnnikpKWloaMjOzvbw8GCUc+bMmaeffpqs9uvXb926dTdv3tTr9cePH09OTsZxPp//8ccf19bW1tbW7tmzh/5sQUREBB658Ysvvhg6dGibmVO/Rcrfu3evwWC4dOnSCy+8QN+EEPr+++8vXLhgz2UpKSlZtmzZnTt3KIoym80RERH0Gsky+rWVMSIi4pdffjEajceOHRs2bBi9Xpt5Ohq3rppscvS6AQAA6DrQ2AYAAAD0LF39e5PN8tVqtZubm0QimTRpUk/I5/HVFb8YwshywCnwjziRkZHBwcFarXbq1Kk4rlKpMjIyzGZzRUVFSEgIaTTC+9fV1d25cycpKWn16tU4npqaqlAoNBpNeXm5QqEgbzC28uvr65HVD0n0rOzsiDN27Nji4mK8Wlxc/PLLL5MD09LSNBqNXq9PTk6eNWsWdz4pKSlms/ny5cs3btzg8/k4PaKgoECj0TA6nzlUPlFYWDh8+HBG0NPTc+vWrQUFBSSSnZ0dExMzb968FStWLFy48O9//zuO37lzx+alYIsjhIYNG1ZYWMi2FfQo06ZNs37nJyUlyeXy+vr6EydO5OfnM7baebNge/bsOXToUEVFhUAgSExMbLNeiURSU1Nz9uzZf//734jWo8Xm/jhSVVVVWlpKv1m4b3YAwGNBoVDweDwPD4+1a9fu37/f2ekAAAAATkUBAAAAoIvpdDoPDw9G0Nvbu4uqEwgEjh7i6uqam5vbFclQ7crnsda536/Ky8uXL19OVkNCQr766iuLxZKbm+vq6kricrm8qqoKL1dVVcnlcrzs7+9fX1+Pl7/55hs+n88dpyhq+fLlFRUVnXgKXWT9+vXJycnOzoLL9u3bly5d6uwsbMM9V/Cyj48P4w8EHx8fvAkh1NjYyDhWIpHQd5ZKpWQTQqihoYGiqMbGRqFQiINeXl44SFFUfX09/aPPZvlUJ91Ex48fDw0NxcuhoaGFhYV4uby8fMaMGRKJhM/nBwcHo9/+1m+dj7e3d11dnc0qEEIWi4WRs6PlEyKRyHqrXq9fu3ZtSkoKiahUqh9//BEvnz9/PikpiZEAY5UtTlHU/fv3BwwYwJYP6J5b+MiRI5MmTcLLHDcjxng1xWIxeXPeu3ev3TcOQqiyshIv19XV0W9qm/VKpVJSb21trXW93BG2ZdBzxMfHp6enOzsL0Plw53Kz2ezsRAD4r8OHD5MvbAAA8LiDnm0AAACAczAGiZo0aRKPhsStR0LDy7gvGo/HE4lEQUFBZGQzjkGZbA7u5Ofnx+PxLBZLZGQkY6vN/TlGVLM5cpqj+XCPOGc9CBUGI8vByHKg3bRaLf7DAP36q7dWqyVbBQIBY/8xY8bQ/5zAP7Vb69+/P1mm2PusWJfPQD4EHBUWFvbw4cOzZ8+ePXv20aNHkydPxvGoqKigoKCysjK9Xn/w4ME282lubuaohX6a7SufsHmVBgwY8O67727bto1E9u/fT+79gICAffv2sRVIPgc44hwvDeh+3Dcjt3bfKQytra0uLm38SkD/j7sT30KddQoAgF7Dy8uLZ8XLy8vZeQEAAAC2QWMbAAAA0COcPn2a/HhNj9NX6cuxsbEzZsywWCw1NTUJCQl6vR7HOQZlsjm4061btyirx8w59ucYUc3myGmO5sM94pz1IFRkqz2/91EwstyvYGQ50G7h4eE5OTmVlZWtra3WW8+dO2c2mwsKCkjjVmxsbHZ2Nr5Js7KyYmJi2qzC1dVVrVZbLJaCgoLQ0FD6JoemodqwYcP69evXr1+/YcMGEtRqtQEBASKRqLS0dOfOnW0WMnfu3IyMDISQTqdTq9ULFizg3t/R8gk/P7+qqiqy+vrrr//8888URR0/fpze4CcQCEwmE142mUyk9c7d3Z18uF24cEEkEuEXiC2OEKqsrBwyZIj9GYKeZv78+Vu3brVYLFVVVenp6YytDt0s2dnZlZWVDQ0NmzZtioqK4t45Ojp627Ztra2tBoMhJyenPan/iuNmBwCAu3fvWncaYEwyBwAAAPQgdvR+A73Q/fv3q6urOcaxAQAA0Inow0i2OUgUxTnqF1nOy8tzdXVFCHl6eg4fPrykpITtcO7C2zyEsYltRDXukdPsz4d7xDk7y+QAI8txx6nHZ2Q5GEayI+jDSBIymYy+yvZXQ3Nz8/vvv//MM88MGDAgLCwsLS2Nfsj3338/aNCgl19+mYxKZzKZEhISFAqFQqFISEgwmUzc5VMUhUdJ5fP5kZGR5eXl9E2jR48OCAiw/0z/+Mc/TpgwgVG4n5+fu7t7eHh4WVkZqZ0tH4PB8MYbb0ilUqlUunDhQjJeK31P+rKj5RNr1qw5fPgwWb106dL48eP79evHGOYXXxxcCH0TiXt6evr4+Hz99dfccYqivvjiC/JZAax1/zCSBONmpFjePwaDITY2ls/nv/DCC5cuXWK8tey8WfBRN2/eDAwMHDhw4JIlS5qamrjrbWpqWrJkiVgsfvHFF3/66SfG/2jW+7PdLBTnzQ6cCIaR7K1gGEnQA8EwkgCA3oRHwcghfdLdu3cfPHjg6elJhpACAADQde7du+fn50cfqQ8hxOOx/i/M2ERWW1tb+/XrR9/U1NRUX1+/f//+Dz74gIwiSD/cbDa7ubm1Wa/9yUilUo1Gw5i0CSE0atSo+fPn//nPf5ZIJPfu3cNzhrUjH29v77KyMvzfU0NDw4gRI6qrq6335Ei4TUFBQWlpaQihlJSUs2fPOpR/m9eBLU9HyydEIlFVVZX10HNGo9HT09NoNOJVHx+f27dv4xHtmpubn376adxFxvq91Nzc3K9fP7Y4QujBgwe+vr7379/nuIY9wdtvv202m/FL2TPt2LHjypUrn3zyibMTscFoNOKJ+jq32I7cmKC8vHzHjh0fffRRt9W4YsWKtWvXQuc2Nt1zCx89enTr1q2nTp3q0lq6iMViOXLkSGpq6pUrV5ydC+hMK1eu9PX1TUxMdHYioJNZLBY3Nzez2Uwe2gDA6fLy8jIzM0+cOOHsRAAAoBPAMJJ9lMViQbYmmQAAANAD4UGWqqur33zzTRKUSqUlJSUuLi6+vr7Dhg2jt+R16aBMbCOqcYyc5lA+7RhxDsHIcjCyHOgB8DROjFkYgf2USuXAgQO7s0aJRAI3O2ifv/71rzweTyAQ7Nu37zFtKQQAAAAAAKBzQWNbH4Ub2+BpJgAAcCKZTGYzbt0v5MCBA/Pnz585c+aSJUvQr79lDx48+OLFi0qlksfjRUdHHzhwgL5/dHS0WCzOycnZtWsXieNJxekLCKFjx47Rg/Qfym3un5GRodfrZTLZc889d/jw4S1btuB4VlZWXFycRCJJTk6OjY1FtN/cHcpn48aNOp3O19fX19e3rq5u48aNZGeb/2ItLS3296cJCQlpbW2lKOqVV14hQbb82S4O23Vgy9PR8omwsLCrV6+S1eXLl7/xxhuurq6MFz09PV0sFuNCxGIxmbzn008/nThxIo/Hk0qls2fPzs/Px//7s8URQlevXp0yZYqdFxMAggyd4exEHmObNm3qzuree++97qwO9CabNm2iKMpkMqnVai8vL2enAwB4/Nj8o8OJOBLoCelhbJlwZNhDMgcAgD4CRnrpiyiKun79OkJoyJAheMAoAAAAXcrmMJJsvv7669jY2Fu3bnV1VuCxACPLsYFhJDuii4aRBKA3gWEkQZ8Fw0j2VjaHkZTL5WTMdm5CobCxsdH+uEPaMRI1R71Go9HDw6ODKdH1nIGy2TLpeIad8jq2AwwjCQDoTaBnW1+ER51ycXGBljYAAOg5FAoFj8fz8PBYu3bt/v37nZ0O6ClgZDkAAAAAANBFampqGJGVK1f6+/vz+fzJkyefPn0aByUSicFgsB6MgS2OV/V6fVxcnFAoVKlUZBMeV8O6x9Xt27fHjh0rFosXL15MHlKk70lfZqtXp9MFBgby+XwvL6/4+HgyvTEHm/k0NTUtWrRIIBCMGjXq8uXLjEPsH8FerVa7ubnxeDyRSBQUFKRUKsmJbNu2TSgUFhcX79q1SygUqtVqfIjN698ONs8LRzIzMwcNGuTm5kYqZbueAAAAHAKNbX0RTNgGAAA9kFarpSjKaDR+9913wcHBzk4H9CAwshwAAAAAAOgeaWlpGo1Gr9cnJyfPmjULB+vr65GtIaPZ4ng5MjIyODhYq9VOnTqVbJo2bZrNPlh79uw5dOhQRUWFQCAgHSuty+SuV6VSZWRkmM3mioqKkJAQeiMfG5v5JCUlyeXy+vr6EydO5OfnM7baP252bGzsjBkzLBZLTU1NQkKCXq8nJ9LS0rJ79+7p06dfvnx59+7d0dHR+BCb178dbJ4XjlRVVZWWluKh/nGc7XoCAABwCDS39EUwYRsAAAAAAAAAAABA36RQKKqqqvAy7snk4+Oj1WqvXbu2Zs2a4uJik8k0evRog8HQkVry8vIEAgFCKCQkpM2d4+LiFAoFQuidd94ZNmxY+wZRz8/P37t3L1mVSqXtK+ezzz67fv26m5ubp6fnsmXLUlJS6FsvXLhgfzlz5sxxdXX19PSUSqVHjx4lmxISEhBC8+bN27ZtG15ACHXu9WeDh2GPiIjAPw8CAADoLNCzrS/Cw0hCYxsAAAAAAAAAAABAX4MH1cB9mPCCVqtFCEVFRQUFBZWVlen1+oMHD7Idbjab7YnjljZHtba2urjY+LmytbW1zXzGjBlD0dTW1rYjAbbC22HmzJlms9lgMPzwww8xMTFhYWHc+9t5/btaR04ZAAD6Mmhs64tgGEkAAAAAAAAAAAAAQKfVagMCAkQiUWlp6c6dO+mbXF1d1Wq1xWIpKCgIDQ1tM+6o7OzsysrKhoaGTZs2RUVFMcqvrq5+880328wnPDw8JyensrKSo2XOHvPnz9+6davFYqmqqkpPT2dstX/ONqlUWlJS4uLi4uvrO2zYMDIXHRuO69/VOut1BACAvgwa2/oi6NkGAAAAAAD6Ah6Ph0fHcuiQLkqmS7XjTNuUmppKlktLS1999VV3d3c3Nze1Wk3iRUVFbm5uuHY3N7eioiIcP3PmzIIFCyIiInCcHMIWZ1QH7NEVL3qn4Miq3Tnbc2AfudkB6FwymYy+mpWVFRcXJ5FIkpOTY2NjEe1OwVN8icXinJycXbt2kUNsxvFRvF/RqyAR+gJCaNGiRZGRkUOGDDEYDJs3b6aXP3/+/JkzZy5ZsqTNfFatWqXT6YKDgyUSyZQpU+jlsLHOByG0ZcuWyspKsVgcHh6+ePFi9NtPjJaWFjsnNhs8ePDFixeVSiWPx4uOjj5w4AD94tCvFcZx/W3m6WicXjUjDbbXFwAAgP2gb1NfBD3bAAAAAAAAg1wur66utnNno9Ho4eHRRZkIhcLGxsZOKYqiKEd/T7fz57Oeph1nyu3atWsNDQ1kddWqVW+99da+ffvy8/Ojo6PJAFOxsbG3bt2Sy+UIoerq6jFjxuBJgJYtW3b+/HmxWIwQKi4uDgsLwxPPsMURQg0NDTdu3BgyZEgnnsVjys6bsdNfdJvacbNz3ETtztmeAx29ee3fvxM/lADoae7evUtfjYiIiIiIIKv02yQiIsLm6II249yfA2yRkpISm+WbTCY78+nXr9+6devWrVvHVrs9+SCE+Hz+3r17yfRvjH2+//57OwvHZ7Rs2TK2GskyXuC4/myX1KE4R4Fsry8AAAD7Qc+2vqilpQVBYxsAAPRUXf3Dmc3y1Wq1m5ubRCKZNGlST8inq0Fnl46Azi69VU1NDX0Vv3x6vT4uLk4oFKpUKhzX6XSBgYF8Pt/Lyys+Pt5oNNL3P3nypEwmCwgIuHXrFo5bLJbk5GR/f3+lUpmYmEh+x2ErXyKRGAwGm8/C28RWL4eVK1f6+/vz+fzJkyefPn2axI8dO8b2AH5mZuagQYMYb05k90BSjNNhrNrMh+36PHr06C9/+YuXl5dcLt+zZ49SqaRXdOrUKes8HSqfyM7Opk8tU1RUNGHCBBcXl/79+z///PMk3tLSQtrkjEYj/kMDIWQymXCLGkJo3LhxZOAstjhCKCQkJCsrq82L2RcwbsbOfdGt38xGo3Hp0qVisXj06NEajYa8Odludg42b6KmpqZFixYJBIJRo0ZdvnyZcYj9o7EhhG7fvj127FixWLx48WL6m8dmvWznxbY/2/Vx9EMJAAAAAAD0TdDY1uc0NzfjpwKhsQ0AAJwL9wOw1vFOFUKhkGOrzfLxqCb19fX0352dmE9Xa0elj29nl84t0Lqzy2uvvdbY2IhHniFx3NkFT01/69YtPAwOQmjZsmWZmZlqtZqiqK+++iomJoY7jn7t7NK5ZwHsgd88kZGRwcHBWq126tSpOK5SqTIyMsxmc0VFRUhICGmkwfvX1dXduXMnKSlp9erVOJ6amqpQKDQaTXl5uUKhIK2nbOXX19fjrZideVrXyyEtLU2j0ej1+uTk5FmzZpH4tGnT2B63r6qqKi0tZbzPSZ72JDl27Nji4mK8Wlxc/PLLL5MDbebDdn1SUlLMZvPly5dv3LjB5/Px5SIKCgo0Gg0jT4fKJwoLC4cPH84Ienp6bt26taCggESys7NjYmLmzZu3YsWKhQsX/v3vf8fxO3fu2LwUbHGE0LBhwwoLC9m29mWd+6Jbv5mTkpIkEklNTc3Zs2f//e9/kz3ZbnYONm+ipKQkuVxeX19/4sSJ/Px8xlY7byJsz549hw4dqqioEAgEiYmJbdZr87zY9me7Po5+KAEAAAAAgD6KAn3Mw4cPy8vLb9y44exEAACgD9HpdB4eHowg43/hiRMn2vwPmr5KX87NzcWzbwqFwvHjxw8dOhTHSY8B6//ojx49ah18+umn2b4b2Nz/4cOHq1atkslk3t7eu3fvJvVSFBUfH69UKj08PEJDQ0+dOtW+fMxmc1JSklKpHDp0qEqlMplM9HPfuXOnQqFwdXXNzc1lXuXfwvsXFRVJpdIxY8b88ssv1jswIjbzZ8ujxOmuAAAgAElEQVSTO5/AwMDAwEDuDCnaD3Y2V23mg3doaGhYvHixQCBISEjAcY7XBSF08uRJ6zwdKp9QqVRffvklI9jS0pKXlzdq1CgSkclkV65cwcvXr1+XyWR4+ZlnnmFcAe44RVFffPFFYmKi9dVbv359cnKydbzn2L59+9KlS52dhW16vZ5cZB8fH8aHgI+PD96EEGpsbGQcK5FI6DtLpVKyCb95KIpqbGwUCoU46OXlhYMURdXX13t7e9P3ty6fsnV7crNZL1tp5eXlM2bMkEgkfD4/ODjYui7uiKO5EcePHw8NDcXLoaGhhYWFbeZj8/p4e3vX1dXZrAIhZLFYGHk6Wj4hEomst+r1+rVr16akpJCISqX68ccf8fL58+eTkpIYCTBW2eIURd2/f3/AgAFs+XS/7rmFjxw5MmnSJLzMdjN27otuvSyVSkn5tbW1JM5xs3NjvMpisZiUf+/evXbfRAihyspKvFxXV2edD6NktvNi259iv9nbnfNjKj4+Pj093dlZgM6HO5ebzWZnJ9LdGPPSYeTbKXCuw4cPky9IAADwuIOebX1Oc3MzgjEkAQCg5zl9+jT575kep6/Sl2NjY2fMmGGxWGpqahISEvBP54jz+Wubz3Hj7kc2D7G5P8fz9Tafo3c0H+5OMGydS6xR0NmFBjq7AAY8gy+m1WrJOxYvaLVaslUgEDCOHTNmDP3PCfwTtjX6t02O28G6fAZHpw9p81tuVFRUUFBQWVmZXq8/ePCgQ4V3RFhY2MOHD8+ePXv27NlHjx5NnjzZnnysrw/+Ms/G+vQdLZ+w+aoNGDDg3Xff3bZtG4ns37+fjCoZEBCwb98+tgLJCJMccXs+OXsxtpuxc190a/ShEekvgZ03u0M6a0Kg1tZWF5c2fs1gO68OgjmNAHjs3L171/r3UMZkdQAAAEDHQWNbnwONbQAA4FwKhYLM+YEXFApFO8r57LPPjhw54urq6ufnl5KSQnpfdbXPP/9806ZNUqnU3d193rx5+BF1hNC1a9f+93//96mnnhKLxRs2bDAYDO0rf+/evWQIwdjY2H/84x/0rWlpaSKRKCIigt5UwCEsLOyJJ54IDw8nc4axaV/+bPlcuHDhwoUL9pSwYcOG9evX4+X169dv2LDBnnzy8vIWLVokEolCQkJwhO11IXny+Xx6no6WT9y8edO678XNmzcDAgJ27txJIufOndu1a9e//vWvjz76KCMj4z//+Q+O2/NrO8OgQYNu3rzJthV0v/Dw8JycnMrKytbWVuut586dM5vNBQUFpDEpNjY2Ozsb/7CVlZVFHyOUjaurq1qttlgsBQUFoaGh9mRlXS8brVYbEBAgEolKS0vpb9r2cWi6KXy/0+/0duQzd+7cjIwMhJBOp1Or1QsWLODev93n6+fnV1VVRVZff/31n3/+maKo48eP09t+BAKByWTCyyaTibTeubu7kycJLly4IBKJ8BuGLY4QqqysHDJkiP0Z9h1d/aJHR0dv27attbXVYDDk5OSQOPfNbr/58+dv3brVYrFUVVWlp6cztjp0E2VnZ1dWVjY0NGzatCkqKop7Z7bzaod2fCgBAAAAAIC+Bhrb+hz8tzEeeQwAAED34+5Ewo3+a9fMmTPNZrPBYPjhhx9iYmLCwsJsHtLpz1+zPV9v53P09uTTFT0boLMLIwKdXYA1xiBL9GcC6B1EVq1apdPpgoODJRLJlClTNm/eTD/Kx8fn2Wef3bZt24cffogjGzdu1Ol0vr6+vr6+dXV1Gzdu5C4fIYR7YYrF4pycnF27dtmTvHW9pHD6AkIoKysrLi5OIpEkJyfj2QTJJpv7kwjjX6ylpcX+92dISEhraytFUa+88goJsuXDdn0yMjL0er1MJnvuuecOHz68ZcsW7jwdLZ8ICwu7evUqWV2+fPkbb7zh6uqK5/gk8fT0dLFYjAsRi8WkKeXTTz+dOHEij8eTSqWzZ8/Oz8/Hf4CwxRFCV69enTJlip0Xs3dj3Iyd/qIz/t28eXNNTY2np2dQUNDMmTNJvdw3u002b6ItW7ZUVlaKxeLw8PDFixejdt1E+JBFixZFRkYOGTLEYDDQ87FZL9t5se3PcbO340MJAAAAAAD0OdY9qUHvVl1dXV5eTmbOAAAA0A3smbONYxOeaquqqmrlypVkk6en53/+8x+j0Uj9On8bY3+z2Xzs2LHg4GB76rU/mddff33dunUURdXW1ubm5v7pT3/CcalUWlRU9PDhw0uXLq1bt45+lEP5qFSq9PT01tbW1tbWtLQ0lUplc097vsMghPLz800m08GDB6Oiorjr5cifrUaOfOycsw0rKiqaOHHixIkTT548aU8+Ns+d7XVhy9PR8onnn39eo9GQ1ddee+2nn35qbW1lvAmHDh1qMBjwssFgIHPIubu7f/PNN3i5pKREJBLhiUPY4hRFXblyZeTIkdaZwJxtHaHT6briDwFn/XEBf9R0BY1Gs3z58u6scfny5RUVFd1ZI7fun7PN6cxmc25u7ogRI5ydSCfrrefVdWDOtt6qz87ZBnoymLMNANCbQM+2PgeGkQQAgB7C5kzdyFYnngMHDsyfP3/mzJlLlixBvz5nPXjw4IsXLyqVSh6Px+hnwPb8tc3nuI8dO8bWv8Hm/mzP13N0FnEonzY7wSCr5805QGcX6OwCuo39N2bvqLfXUyqVAwcO7M4aJRIJDCPpLH/96195PJ5AINi3b9+pU6ecnU6n6a3nBQAAAAAAeiCe/b8Egd7h1q1bZrPZ19f3ySefdHYuAADQV9y7d8/Pz6+pqcmenb/++uvY2Nhbt251dVa9Ho8H33M6X3l5+Y4dOz766KNuq3HFihVr1661/gn+7bffNpvNaWlp3ZaJo3bs2HHlypVPPvnE2YnYcO/ePalUCjcIABy65xY+evTo1q1boR0I9CgrV6709fVNTEx0diKgk1ksFjc3N7PZ3JcnFuH4AwE/uNMTvh2xZcKR4eP7h09eXl5mZuaJEyecnQgAAHQC6NnW5/j5+Q0ZMuSJJ55wdiIAAAB+Q6FQ8Hg8Dw+PtWvX7t+/39npPPags0sXgc4uwCm8vLx4Vry8vJydFwB9DtyMAPQycrm844UYjcaOFyIUCjteSJs4WqR6TmMVWyadknz3XGcAAOiboLGtL+rXrx/8+AgAAD2NVqulKMpoNH733XfBwcHOTuexR4bMdnYivdCmTZu6s7r33nuvO6sDPdPdu3etB8S/e/eus/MCoM+BmxGAXqampoa+arFYkpOT/f39lUplYmIinuYN/TrG+MmTJ2UyWUBAABmEQ6fTBQYG8vl8Ly+v+Ph40uqG99fr9XFxcUKhUKVSkSpWrlzp7+/P5/MnT558+vRpHJRIJAaDwXokc+58bJbPBg+ez/g1rKmpadGiRQKBYNSoUZcvX2Yc8tJLL7300kttlowQUqvVbm5uPB5PJBIFBQUplUqS5LZt24RCYXFx8a5du4RCoVqt5rgO7WDzvHAkMzNz0KBBbm5upFK26wwAAKBTQGMbAAAAAB5X8Hw9AAAAAAAAnSU1NVWhUGg0mvLycoVCkZqaiuP4Cba6uro7d+4kJSWtXr0ax1UqVUZGhtlsrqioCAkJIY1eeP/IyMjg4GCtVjt16lRSRVpamkaj0ev1ycnJs2bNwsH6+npk62k57nxsls9m2rRp1s/hJSUlyeXy+vr6EydO5OfnM7ba/+hebGzsjBkzLBZLTU1NQkKCXq8nSba0tOzevXv69OmXL1/evXt3dHQ0x3VoB5vnhSNVVVWlpaV4/mwcZ7vOAAAAOsXjOqQvAAAA8BhxaM42AIA9YM62joA52wBoE8zZBvosmLOtt6LP2aZQKKqqquhbfXx8tFqtt7f31atX8ZjhDQ0NI0aMqK6uxjvweLyGhoaBAwcaDAYfH58HDx4ghJ566incfoNJpdLa2lqyf2Njo0AgoNdy7dq1NWvWFBcXm0ym0aNHnz17lnwbsTnrGHc+1uW3iVGLRCK5fv26RCJBCNXV1Xl6erbv21F+fv6cOXMsFounp6dUKt27d29gYCC9OsYCx3WwmWc74vQI23JPAHO2AQB6E+jZBgAAAAAAAAAAAABAX4FHsMeNLnhBq9XiTfa0xPTv3x8vjBkzhj6oLGlpw6xbwqKiooKCgsrKyvR6/cGDB9nKJ8NFcufjaEsbN3qljpo5c6bZbDYYDD/88ENMTExYWBj3/nZeh67WkVMGAABgDRrbAAAAAAAAAAAAAADo62JjY7Ozs3HLWVZWVkxMDH3ruXPnzGZzQUHB5MmTcSQ8PDwnJ6eysrK1tdWe8rVabUBAgEgkKi0t3blzJ32Tq6urWq22WCwFBQWhoaH25NNx8+fP37p1q8ViqaqqSk9PZ2y1f842qVRaUlLi4uLi6+s7bNiwNkc04bgOXc3mdQYAANApoLENAAAAAAAA0FXwZIo9v8wei+NMO+U69J0rCR67m7Er3vz2HOhoyXATgceaTCajr27cuFGn0/n6+vr6+tbV1W3cuJG+1cfH59lnn922bduHH36II6tWrdLpdMHBwRKJZMqUKZs3b8ZxfF+QOZVJCVlZWXFxcRKJJDk5OTY2FtHuIDy1mFgszsnJ2bVrF3c+bOVzIHvSD9myZUtlZaVYLA4PD1+8eDH67R3d0tJi54iLgwcPvnjxolKp5PF40dHRBw4coCdJz7nN62AzT0fj9KoZadi8zgAAADpFzxqoFwAAAOiVYM42ADodzNnWETbnbJPL5WQelM7VFbODMMo0Go0eHh6dWwUhFAobGxs7Zf9Oz7M7Z15x9Do87pw4ZxvcjO2otxsO7LjH5SaCOdt6K/qcbe04vKfN9QV6B5izDQDQm0DPNgAAAKBH61MdODoCOn8A0EE1NTX0VfrT4vRli8WSnJzs7++vVCoTExPJbB94B71eHxcXJxQKVSoVo3weTTvKaWpqWrRokUAgGDVq1OXLl0mxOp0uMDCQz+d7eXnFx8cbjUY782FQq9Vubm48Hk8kEgUFBSmVShyXSCQGg8Hms/MrV6709/fn8/mTJ08+ffo09/5seXI4duyYdaVs1wGzf8ArtvJxJDMzc9CgQW5ubmq1us3rADpdH78ZUde/+W/fvj127FixWLx48WL6s1A26zUajUuXLhWLxaNHj9ZoNPQd4CYCfQfvt72jAAAAAGANGtv6lqqqqrt379o5lDYAAIAuJZfL7dmtex4gtedn3zYJhcLO2r8d+XBcqE65hvYX4uh1AKBnoihKJpPhThgURYlEIvyTdGpqqkKh0Gg05eXlCoUiNTWV7I8QioyMDA4O1mq1U6dOZRSYk5MTFxfX1NSE93S0nKSkJLlcXl9ff+LEifz8fFKsSqXKyMgwm80VFRUhISHkd/w282GIjY2dMWOGxWKpqalJSEjQ6/U4Xl9fj0vD6IekpaVpNBq9Xp+cnDxr1izu/dny5DBt2jTrTx6260DO2v4PK5vl40hVVVVpaSkeaYr7vEA36Gs3I+r6N/+ePXsOHTpUUVEhEAjo/bfY6pVIJDU1NWfPnv33v/+NaF8J4CYCfQe8dQEAAIC2UaDPaG5uLi8vv3btmrMTAQCAPken03l4eDCCjP+FHz58uGrVKplM5u3tvXv37qFDh9L3PHnypEKhcHV1zc3NJfH4+HilUunh4REaGnrq1CmyM0Jo586djP2bmpqWLFkycODAUaNGXb16lXwNqK2tDQgIQAjJZLIVK1bgn9445Obm4pFnhELh+PHjSZ5isZjtC4bNPNn2dzQfiqKOHj1qXanBYFi4cCGfzx85cuTPP//M2BoYGBgYGNhmyRzls11njusAOtf69euTk5OdnQWX7du3L1261NlZ2KbT6cj708fHh/EHgo+PD94UEhJSVFSEEPrhhx98fX1x0MvLq6GhAS/X19d7e3uTYhFCjY2N1tUhhGbMmLF69erW1lYSdLQcsVhcV1eHl+/du0fyl0gk9OTx8Jjc+diUl5eHP9w8PT2HDx9eUlJCL8d6//Ly8hkzZkgkEj6fHxwcjH77Q6T1/hx5cmOUxnYd2s26BLZz6Wufad1zCx85cmTSpEl4GW5G62ztqbcdxVZWVuLluro665uRUbJUKiX11tbWct8y1pHH8SaKj49PT093dhag8+F+q2az2dmJdBXG/HOYTCZzdl6Ay+HDh0NDQ52dBQAAdA7o2daH8Hg8b29vqVTq7EQAAADYkJKSYjabL1++fOPGDT6fjx9/JgoKCjQaDf35aMTSqYJieZ6a7blsRztbQOcPUgKC59ZBr6DVasnbFS9otVq86YUXXjhy5AhCKDc319/fnxzC8d4WCAQ243PmzLl8+TL5xGh3ORgZ5g4hNGbMGPqfN/incDvLoZs5c6bZbDYYDD/88ENMTExYWBh31VFRUUFBQWVlZXq9/uDBg22m+v/Yu/e4Jq78f/wnKuliuCWSICDSm2itulXBqpWqy03wspXa4raKrtS23tsqQpWltVUQwSr46e4HxYdV21psNWsFaRFtV/vBz1d7cysoWN2qBJAIxBIQEiG/P86v85lOMpMLCeHyev7hY3Jm5n3ec2YSQ86cM8J52obdDl3MiVX3YngzWs5eV2BHR0e/fmZ+FWHPm2fH/9nxJgKwu9u3bxv/7nn79m1n5wUAAH0FOtv6kH79+rm7u3t6ejo7EQCAPs3f35/z5BV/f39CyKFDh7Zs2SKXy11dXZ977jl6yzYjPT1dIpHMnTtXr9fTkqtXr/7lL38ZNGiQVCrdtGmTVqvlbO/h4cHePj8/Pykp6YEHHpBIJC+88AKz5fHjx6dNmyYWi93d3WNjYz/99FPh/D/++OOCggIXF5fAwMANGzYwo774COdpzNp8BPJMTEwUi8Xe3t4vv/wyZ+2FCxcuXLhgW2Q243aGLtPY2NjY2OjsLHq50aNH0/f4kSNHmGeYxcfH79mzh/6AlZubu3DhQktCLV68OCsr68UXX2Q+BKyNM3/+/O3bt+v1+urq6oyMDKY8Ojo6Ly+vqqqqkzOly+Xy8+fP9+vXLyAgYMSIEezHOLm4uCiVSr1eX1RUFB4eTgtVKlVwcLCHh0d5eXlOTg47lMnt7ZUnXztQVj22ylomjwu6Rp96M1pbL2XVxb9nz56qqqrGxsYtW7Y8//zzwhvHxcXt2LGjo6NDq9Xm5eXZkvpv8CYCAAAA6MXQ2QYAANCl+O5bv3//vsBeAwYM4JRYOKiCwXdftrWDLTD4o6dU3etdvHjx4sWLzs6iVzGefGnMmDFXr14dM2bM5cuXmd/3N2/erFarAwICAgIC6uvrN2/eTMvZ9xCwP3CY5TFjxhQVFbm7u584ccKGOJmZmVVVVVKpNDo6esmSJcyWq1evVqvVoaGhMpksKipq69atwnH4PPTQQz/++GNQUJBIJIqLi8vPz2dW0dGrUqk0Ly9v7969tDA3NzchIUEmkyUnJ8fHx7OP1OT2fHkK4NyZIdwOVHt7u+Ujb0zGZ0o4//IdFzhCH38zEkde/HSXxYsXx8bGPvzww1qtlv1mNFnv1q1ba2trvb29p0yZMnv2bLN54k0EAAAA0DeJMMERAACAo925cycwMJA9ToIQIhL97n/hZcuWSaXStLQ0tVr9zTffHDly5MMPPzTekllWKBSHDh166qmnKisrP/nkk/T0dONt2MurV6/29PTctGlTS0tLTk7Oxo0bafmOHTvc3d1nzJjh5+dndiYlQohcLi8sLBw9erSrq6tSqYyLi2P6k8RicX5+/qxZs0pKStLT08+cOSOcp8ntrc2Hrz2XL18ulUrffvtttVq9bdu27Oxs9lp68/v58+dtjk942pnvuMDupk6dqtPpzp075+xEeGVnZ5eVle3evdvZiZhw584d+pgiZycC0H11zVu4sLBw+/btp0+fdmgtYBd6vb6goCAlJaWsrMzZuTjWqlWrAgIC1q9f7+xEwM70er1YLNbpdPQZpQDdweeff75r166TJ086OxEAADvAyDYAAADn4Ny3npWVpdFoFArF448/fuzYsczMTFrOd38036AKvn/57su2drAFBn8whSb/5TsuAAAA6KE2btwoEonc3NwOHDiAnlEAAAAAMAkj2wAAABzO5Mg2Z+k792VD74aRbZ2BkW0AZmFkG/RZGNnWWzluZBu95wzfK4w5omVSUlKY+X4PHTq0YMGCjo4OFxeX/Pz8uXPncqomhHh6epaWlo4cOZIQcubMmd27dzc3N//zn//k7MIO25Uwsg0AehOMbAMAAOgrcF82APRxPj4+IiM+Pj7IB6CL4eIH6CZ8fX0t37ilpcVkOV9nEt/2Jrm7u1u+cU9h9w7Iq1evNjY2Mi9XrFhRUFBgMBjo1BrGtRsMBo1GQ3vaCCEvv/zyrl27lEqlwWD4+uuvFy5cyGzc2Nh4/fp1+2YLANDXoLMNAACgr9iyZYvBYGhra1Mqlfg9CwD6oNu3bxuM3L59G/kAdDFc/ADdRG1tLfulUqkUi8UikcjDw2PKlClBQUG0XK1Wh4SESCQSHx+flStXmu1F49u+tbV1zZo1Pj4+vr6+H3zwARNfJpNptVqm652Jo9frk5OThw8fHhQUtH79euZZ0XQzjUaTkJDg7u6emJjIrn3ChAn0Cc3CONVxXq5atWr48OESiSQiIuKrr74SrpfvuKjTp08PGTJELBYrlUqm0Kr4jD179kRGRjIvGxoaoqOjCSEzZ84cO3as2UNua2uTSqV0efLkyeyZV8LCwnJzc81GAAAAAehsAwAAAK7udr95d8sHAAAAAKD3iY+PnzVrll6vr62tXbdunUajoeWJiYlZWVk6ne7atWthYWHGnUAcfNtv2LBBp9NdunTp+vXrEomkoaGBltMFpuudiZOSkuLv719RUVFZWenv75+SkkLL6TaxsbGhoaEqlWrGjBns2jlB+BgMhokTJ5aWltKXpaWlkyZNYnZMT0+vqKjQaDTJyclz5swRrpfvuKiioqKKigrO4DOr4jOKi4sfe+wx42M5depUYWEhu8TV1ZX+0cTu5Lt16xZfa4wYMaK4uJi/tQAAwDw8s62v6OjouHfvXv/+/f/whz84OxcAgD6nWz2zDaB3wDPbOgPPbAMwC89sgz4Lz2zrrdjPbPP396+urmav9fPzU6lUx48ff/bZZ/V6vbe3t1wu379/f0hICCFk0KBB7A4kuVxeV1fH3l0k+t0PjHzb+/r6lpWVyWQy4/Q4EajBgwdfuXLFy8uLENLY2Dhy5Miamhpm+6amJjc3N5sa4/9XXFycmZlJHxgWERGxfv36iIgIQsjVq1ffeOON0tLStra2cePGnT17lsnNZL3Cx6XX6wcMGMA+RmvjMzw9PVUqFWdtSUnJqFGjBg8ebHKXmzdvPvroo3RQIKeR2S9//fXXoUOHMt2rXQbPbAOA3gQj2/oKvV5fXV3NfCkBAAAAAAAAAIA+SKVSMcO/6IJKpSKEzJ49W6fTabXa77//fuHChcyMhePHj2dP+srpaTPGt/39+/ctSY+ZLpIIPvaskz1thJDIyMh79+6dPXv27Nmzra2ttKeNEPL8889PmTLl8uXLGo3m8OHDZusVPi7a08ZmbXyGcWscOHAgMDCQr6eNEDJ06FC9Xs+3tr29XSA4AABYBZ1tfQX977N///7OTgQAAAAA+hDOw1e6bUynEzgiuxxv72sx6DK4OAH6Drlcfv78+X79+gUEBIwYMYKZmSM6OjovL6+qqqqjo8OSOHzbz5s3LysrixCiVquVSuWCBQuYVS4uLkqlUq/XFxUVhYeH08L4+Pg9e/bQHrvc3NyFCxdaUruFz2yjNm3alJqampqaumnTJqZQpVIFBwd7eHiUl5fn5OSYDSJwXCZZG58RGBjIHpL46aefjh49etiwYeT3n6WhoaGpqanXrl0jhCiVShcXF1ru6urKTJt54cIFDw8P5gRVVVU9/PDDlmcCAADG0NnWV6CzDQAAAAAE+Pr6OiKsI+6SNo7Z0tLS+bDu7u6dD0LZkI9AQ9mlDS0PYsd2ANsYvxlxcVK4OAHsTqFQsF8+9NBDP/74Y1BQkEgkiouLy8/Pp+WrV69Wq9WhoaEymSwqKmrr1q3MLkynO7v3nW/7rKwsjUajUCgef/zxY8eOZWZmMnHoI82kUmleXt7evXtp4ebNm9VqdUBAQEBAQH19/ebNm5lKmRqNO+zb29st/2AJCwvr6OgwGAx/+tOfmMLc3NyEhASZTJacnBwfH8+u0WS9fMfF2Yv519r4jMjIyCtXrjAvFy9ePG7cOOONlUrljRs3xo8fzzmPH3300bRp00QikVwuf+aZZ44fP870w125ciUqKsrCRgMAANMM0Dc0NDRUVlbW1NQ4OxEAgL5IrVYPHDjQ2VkA9CpPP/30xIkTnZ2FkJ07dy5dutTZWZimVquN/xDglLD/XmAv63S6pKSkoKCgYcOGJSYmtrW1sbdvbGxcsmSJm5vbunXrOJE5f4NYG0er1S5atEgikTzxxBM//fQTk21dXV1wcDAhRKFQrFixorm52Ww+JkmlUpN/JdGXhYWFBoOhsLCQEDJkyBCmvKSkRC6Xjx8//pdffhHORwANy2l/vuOlQkJCQkJCzEYWiE9LcnJy/P39XVxcjh49KtwOfVDXvIULCgqmT5/OKeS0PC5O4XYAu1u5cmVGRoazswD7o3Mz6nQ6ZycCtquoqFi+fLkjIi9fvvzatWuOiCzs2LFj4eHhXV8vAIAjYGRbX0FHthnPEw0AAN1cr5wtrSth8isA2xgMBoVC0dTURJc9PDzoXFIpKSn+/v4VFRWVlZX+/v4pKSnM9oSQ2NjY0NBQlUo1Y8YMTsC8vLyEhAT6+74NcZKSknx9fRsaGk6ePHn8+HEmbGJiYlZWlk6nu3btWlhYWGJiooX5cDQ0NBCjbgxCyLlz5yZOnBgTE0MIiY6ODg4Opt0DdJv6+vpbt24lJSW9/vrrwvkIiImJMRjdgE9oeUsAACAASURBVM93vMzRGe9iVXxaUl1dXV5eTgcTCLcDOBEuTuF2AADoO4KCgry8vBwRWSaTYRpJAIBOEuFLah9x+/btX3/91dvbm3M/IAAAdIE7d+4EBgYyzzygfH19a2pqLNldJHL4/9ctLS0DBw50aBVW6bJ8uqBtGe7u7rTfAuxi6tSpzc3Nubm5zk6E1yeffHL37t3du3c7OxET7ty5I5fL6cXv7+/PfvgHIcTPz0+lUhFCwsPD33zzzfDw8O+///7Pf/7zzZs3CSGDBw++cuUK/aGnsbFx5MiRzEeZSCRqampyc3PjVCcSiWbNmjVs2LDt27cz/dPWxpHJZD///LNMJiOE1NfXe3t70/wHDRpEf4Kn5HJ5XV2dcD58+D4QYmNjFyxYEBsb+9lnnx05cuTQoUPM9o2NjV5eXlqt1s/P79dffxXOx6ra+Y7XZsZHxy7hW+7LsrOzy8rKHP0WLiws3L59++nTp4ngmxEXJ9+W4AirVq0KCAhYv369sxMBO9Pr9WKxWKfTMTMHAjjd559/vmvXrpMnTzo7EQAAO8A4p77i/v37BM9sAwDoTmpra9kvW1tbk5KSPvnkk379+qWnp6elpVVWVjJrT58+HR8fX1dXl5+fP3fuXFq4atWq4uLiqqqqyZMnb9iwYfr06eS3gVY5OTkZGRns7VtaWtasWfPZZ5899NBDhw4dGjFiBCHEYDCo1eqYmJhvv/1WoVA899xz27ZtE+jlosHfe++91NTUL7/88vLly6+99tqBAwdoFQ7Nh8ZpbGxcu3bt4cOHX331VfYzHkw6ceLEzJkzye/nr2tubl6xYsVnn302bNiwgwcPcnahj1I/f/68cGSB+HzHK5PJtFot082A3wrtoqGh4fnnn3d2FkKYARndGf0pn5j6FXvMmDEFBQWEkKNHjw4fPpwpF7iA+Xq2nn322Y8//lij0bBv/LIhDkUnwqLGjx9fXFxsWxzhKsRiMV1OS0ubN2/ezJkz33nnnSNHjpjcnplAQjgfm5Oxb0CrqmbaARxN4M3IhouTqRoXJwAAAAB0H5hGsq/ANJIAAN3chg0bdDrdpUuXrl+/LpFI2PeeE0KKiooqKirYkykRQtLT0ysqKjQaTXJy8pw5c2gh3+RLSUlJMpmstrb27NmzX3zxBbOlVZNK0V3a29v37ds3c+bMS5cu7du3j6nCoflYOyMcweRXfYCPj8+17i0tLc3ZjdQpo0ePprPSHTlyJCgoiBbGx8fv2bOHXsm5ubkLFy60JNTixYuzsrJefPFFrVZrW5z58+dv375dr9dXV1dnZGQw5dHR0Xl5eVVVVR0dHbYcJIuLi4tSqdTr9UVFReHh4Uz5iBEjJk2aNHv27CeffHLYsGHsXb755hudTldUVBQREWHffPiOl5owYQK9OcAR+NoBnAgXJ4WLEwAAAAC6L76HuUEvc/369crKytbWVmcnAgDQF6nV6oEDB9JlPz8/zv/Ffn5+BoNh8ODB9fX1JncnhOj1emaZLlRWVs6aNUsmk0kkktDQUPL7jhzjZblczsSn00bRZToNFIPOLCeAsHqk2AtdkA8hpKmpSTg9gYQpqVTK1Hvnzp3OfxcyjmD22MEunn766YkTJzo7i55KrVYbX5AKhYJT8u233xJCxowZQwjZuXMnLWxra1u3bp2/v7+/v/+6deva2tpoOd9fGeyXdLmwsNCGOFqtNj4+XiKRjBkz5uLFi8za+/fvp6WlPfjgg56enpGRkenp6cJxBBw9etTFxUUikcTGxlZWVrJXXbt27YEHHrh58ya7kBDy3XffDRkyZNKkSVVVVbSQLx8BJlPlO15q3LhxwcHBlhwUX3z2S84qgXboU3bu3Ll06VJH11JQUDB9+nROofGbERen2XYAO1q5cmVGRoazswD7o0NRdTqdsxMB+D/Hjh0LDw93dhYAAPaBGc/7ip9//tlgMDz00EMY3AYA0PVMPrONM0mUXC6vqKjgdDUZb8ksjx07dv78+X/9619lMtmdO3d8fX2Nt2Ev+/j4XL58mcavq6vz8fGh5ZGRkVZNKsUE5Cx0QT62PalF4EkzNTU1tKfT2pjCWVnypBlMftV5U6dO1el0586dc3YiPRL7mW1giV27dl2/fn3Hjh3sQjw+qnfr+me22QYXJ9gdntnWW+GZbdAN4ZltANCbYBrJPqG9vZ3+rYVntgEAdFvz5s3LysoihKjVaqVSuWDBAuHtVSpVcHCwh4dHeXl5Tk6O2fhxcXE7duzo6OjQarV5eXlMub0mlepu+fDB5FcAYC2RSLR69eqdO3dyCpl/AZwFFycAAAAAQDeBQU59An1gW//+/fEXFwBA96FQKNgvs7KyEhMTaWFMTExmZiYtZ34yMxgM7OXc3NyEhIS6urpp06a999576enpxtuwl7du3bpmzRpvb++hQ4cePHhw48aNNP7q1au3bdsWGhra2Nj45JNPTp8+PTk5mS9ndkDy+xvnHZ0P56dDS27YZzamC3SXzMzM5cuXS6XSRx555ODBg9nZ2eyjaG9v79fP0luRTMbnO15CCH2Em1gsjoqK2rt3r4W1AIDTmfzAwbChvqChocH4tgxhYrFYIpFYvn1tba2VSf0OLk4A6Oa61UBb9pf23sERR5SSkrJ582a6fOjQoQULFnR0dLi4uOTn58+dO5dTNSHE09OztLR05MiRhJAzZ87s3r27ubn5n//8J2cXdlgAgN6qG/2fB45z7969qqoqsVgcGBjo7FwAAPoik9NIOotery8oKEhJSSkrK3N2LoR0v3ygp8A0kp3RZ6eR9PHxoQ+JZFMoFLdv3+6V9UJnZGdnf/3118OHD7d8F61Wa3yihQ0cOPDmzZudmUayk3BxgjFMI9lbmZxG0tfXt6ampjNh3d3dm5qaOp1dF7Gq86+lpWXgwIEOzafz7NudefXq1Z07d77//vv0pUwm++ijj6Kjo5VKZVxcHH3sn0C9I0aMOHfunFQqJYSUlpZGRkZqtVq6asWKFWvXrn344Yc5u2AaSQDoTTCyrU+4f/8+wRySAAB93saNG9PS0sRicUxMjBN/1+u2+UCP8+OPPz7yyCPOzqJHctA0rd2fs/oP0G/RQ8nl8q1btzq0CvrMNodWIQwXJ0AfZzy+dtWqVcXFxVVVVZMnT96wYcP06dMJIa2trUlJSZ988km/fv3S09PT0tIqKysJITKZTKvVmpx84sSJEzNnzuQU6vX6v/3tb0ql0mAwPPPMM5s3b6aPMaYRcnJyMjIy6urqOIOoODjVcV6azF84FDsOXVar1TExMd9++61CoXjuuee2bdvG7nWj086fP39eILJtedJtGhsb165de/jw4VdffZXOd8LX/tTp06fj4+M57WZVfMaePXsiIyOZlw0NDXRh5syZY8eOFT5eQkhbWxvtaSOETJ48mX2zaVhYWG5urrXjxQEAehZ0tvUJdBrJAQNwugEA+rQtW7Zs2bLF2Vn8n+6WD/QsEydOHDlyZGJiorMT6ZHu3bs3atQoZ2cBAAAA3U56evquXbv0ev2ZM2fmzJlDR61t2LBBp9NdunTJzc2toKCA6YNpaGjgG1kVExPDTKvOSElJGTJkSEVFBSEkOzs7JSVl27ZthBC6ZXV1dXl5+alTpziDqDgMBsOkSZPee+89+rK0tHTt2rWlpaUC+QuEYveBMcuJiYlZWVmTJ09ua2s7efJkYmIiM9iLWDxtow150hxiY2Pj4+N37Nhx4cIFujFf+1NFRUUVFRXFxcXsdrMqPqO4uPill14yPpZTp04VFhayS1xdXWlzsaeLvHXrFl9rjBgx4t1330VnGwD0bphGsk+or69vaGjw8vKSy+XOzgUAoC/qVtNIWqKnTCrVU/IER3jrrbd0Ol16erqzE+mRWlpaJBIJ/hAAEJCdnV1WVrZ7926H1kJHtmF4N3QrmEayt2JPI+nv719dXc1e6+fnp1Kprl69+sYbb5SWlra1tY0bN+7s2bP024Kvr29ZWZlMJjMOKzyNIWft4MGDr1y54uXlRQhpbGwcOXIkM4kle0uzUyMWFxdnZmbSuQcjIiLWr18fERFBCOHLXyBbk/UOGjSI3aEll8utnSXY5jxFIlFTU5Obmxs7jnD76/V6ens9k7+18Rmenp4qlYqztqSkZNSoUYMHDza5y82bNx999FHaycdpXvbLX3/9dejQoRqNhrM7ppEEgN6kn7MTgK5AR7ZhGkkAALDQ7du3DUa6YQ9WT8kTAAAAAKD7UKlU9JszIYQuqFQqQsjzzz8/ZcqUy5cvazSaw4cPM9vTp5OYJTAcjWGXe30iIyPv3bt39uzZs2fPtra20h4swp+/JdiTbI8fP57994VtPW0252ncEybc/sYTWVkbn2F8dg4cOBAYGMjX00YIGTp0qF6v51tLf5DkCw4A0Mugs61PwDPbAAAAAAAAAABAgEqlCg4O9vDwKC8vz8nJYcrnzZuXlZVFCFGr1UqlcsGCBcwqFxcXpVKp1+uLiorCw8OF48fHx+/Zs4f2YOXm5i5cuNDmVDdt2pSampqamrpp0yaz+Qug+dfU1Lz22mtMYXR0dF5eXlVVlcnH3E6YMIE+tq3L8hRof5NsaAcqMDCQPeTx008/HT169LBhwwjrmXOEkNDQ0NTU1GvXrhFClEqli4sLLXd1dWXmybxw4YKHhwfTgFVVVQ8//LDlmQAA9ETobOsT8Mw2AAAAAHAKkUjEeV5L94zZbQkcqV3aoe+0JIB9OeKDKCUlhVkuLy9/4YUXXF1dxWKxUqlkyktKSsRiMa1dLBaXlJTQ8jNnzixYsGDu3Lm0nNmFr5xTHfRZCoWC/TI3NzchIUEmkyUnJ8fHx5Pf/pvIysrSaDQKheLxxx8/duxYZmYms0t+fn5cXJxUKs3Ly9u7dy9TzrxH2G+WzZs3q9XqgICAgICA+vr6zZs3Mxub/FdAWFhYR0eHwWD405/+ZDZ/vnxo/vPnz589ezZ9VhldtXr1arVaHRoaKpPJoqKitm7dyq66vb3d8kFaVuXJzpCdJF/787WbtfEZkZGRV65cYV4uXrx43LhxxhsrlcobN26MHz9eJBLFxcXl5+fT8o8++mjatGkikUgulz/zzDPHjx9n+uGuXLkSFRVlYaMBAPRQeGZbn/DLL7/o9fqAgIA//OEPzs4FAKAv6nHPbAPo/vDMts4w+cw2X19f5rkp9mX2ySudj9nS0jJw4ED7VmEJq+p1d3dvamqybwKOaFs+jsi/O3PiM9sc92YUOInOupid9ea1C/u+Aa9evbpz587333+fvgwPD//b3/721FNPHT9+PC4ujpmdz8/P77vvvvP19SWE1NTUjB8/ng5DGTFixLlz56RSKSGktLQ0MjJSq9UKlBNCVqxYsXbtWuOxJnhmW2/Ffmabs3OBbqqysjI7O5v5ILIjvg8cPLMNAHoTjGzrE2QymUwmw9cpAICeqFsN4OhMMiZ3FA7o0GPHYBEAjtraWvZL9l3P7GW9Xp+cnDx8+PCgoKD169czv//SDTQaTUJCgru7e2JiIie+iMWGOM3NzYsXL3Zzcxs7duylS5eYsGq1OiQkRCKR+Pj4rFy5sqWlxcJ8jK1atWr48OESiSQiIuKrr76ihS0tLUuXLpVKpePGjauoqGDyF653165dQ4YMYQ8ikclkWq1W4F5yYydOnDDemK8dKKsmtjIZ3475g804b8bW1tY1a9b4+Pj4+vp+8MEHQUFBtFz4TWT5SXT0xcwXR7he4w8fysKLnLMj56XJNzvfhwZf+1OnT5/mHJe18Rl79uyJjIxkXpaUlEydOrVfv34DBgwYNWoUU97e3t7Y2EiXW1pamOchtbW10R41QsjkyZOZe7z4ygkhYWFhubm5ZhsTAPqOoKAgLy8vR0SWyWSYRhIAej10tvUJHh4egwYNwjPbAAC6FXpLslldM2SB+YVLWGeSMbmvcEDjtRbmaXM+ZlfZJT6Hu7t756sDsDuDwaBQKOjgFYPB4OHhQX+iTUlJ8ff3r6ioqKys9Pf3Z2Yho9d8bGxsaGioSqWaMWMGJ2BeXl5CQkJzczPd0to4SUlJvr6+DQ0NJ0+ePH78OBM2MTExKytLp9Ndu3YtLCyM+f3abD7G0tPTKyoqNBpNcnLynDlzmHplMlltbe3Zs2e/+OILJrJwvdXV1eXl5XRmLVre0NBA11KWnIKYmBjjLfnagand8g8fk/HtmD/Yy4YNG3Q63aVLl65fvy6RSOi5IObeRJafREdfzHxxBOo1+eHDrLWw0okTJzKPDiotLZ00aRKzo8k3O9+HBl/7U0VFRRUVFezjsjY+o7i4+LHHHuMUent7b9++vaioiCnZs2fPwoULn3vuuRUrVixatOi///u/afmtW7dMNgVfOSFkxIgRxcXFfGsBoG/asmWLI8K+++67jggLANC9GAAAAMDB1Gr1wIEDOYWc/4Xv3bu3evVqhUIxePDgffv2DRs2jL3lqVOn/P39XVxcjh49ypSvXLkyKCho4MCB4eHhp0+fZjYmhOTk5HC2b25ufumll7y8vMaOHctMxG8wGOrq6oKDgwkhCoVixYoV9HdwAYSQGzduPPnkk15eXn/961+1Wi27XuNlg8FQWFgo8K2DU67VahctWiSRSJ544omffvqJWcuXJ43c2Ni4ZMkSNze3devWCefPlw9fvVRISEhISIjZyALx+c4Lc7M5vphZKzU1NTk52dlZ9FT0l2u67Ofnx/kDwc/Pj64KCwujTwP6/vvvAwICaKGPj09jYyNdbmhoGDx4MBOWENLU1GRcHSFk1qxZr7/+On1miW1xpFJpfX09Xb5z5w6Tv0wmYycvl8vN5mNSZWXlrFmzZDKZRCIJDQ1l4svlcqbeuro6C+s1u2w5zl587WAz4wj2zb/n2rlz59KlSx1dS0FBwfTp0+ky35tx8ODBzElnE34TmV1mdMHFbHJfgXpNfvhY68svvwwPD6fL4eHhxcXFdJnvzW7g+dDga3+6vV6v5xyXtfEZHh4exms1Gs3atWs3bNjAlCQmJv7www90+dy5c0lJSZwEOC/5yg0Gw927dz09PY0zWblyZUZGBl+e0HPR8a86nc7ZiViK8zw5SqFQODsvsKdjx44xn9UAAD0dRrYBAAB0C/a9b9r4/nFrB2cI+OCDDz777LNr1665ubkxz/MwsG4zZy8TnsETfLpg8AoGiwCwqVQq5vKjCyqViq4aM2ZMQUEBIeTo0aPDhw9ndhG4Vt3c3EyWP/vss5cuXdJoNOxCG+JQzHR5hJDx48ez/7yh/WEWxmF7/vnnp0yZcvnyZY1Gc/jwYaacPX8dO2Hhes1iH4LN7BKkx1Xdi/G9Ge/fv8+3S2f+42BOorMuZoF6+T58rBIZGXnv3r2zZ8+ePXu2tbU1IiKClvO92SnjDw2B9ieEDBgwgFNibXyGybPp6en5zjvv7Nixgyn58MMPmVklg4ODDxw4wBeQmWFSoBzfPaA7u337tvHvmLdv33Z2XgAAAKZxvxcCAACAQ/n7+9Pn2JPffsP18/NTqVSHDh0qKyujd3k/99xzzz33HHuv9PT0AQMGzJ07V6/X05KrV6++8cYbpaWlbW1t48aNY551z2xPCGFvn5+ff+XKlQceeOCBBx544YUXXnvtNVp+/Pjx/fv3MzvK5XKzD8ROSEjw9/cnhLz99tsjRoyw7wO0P/74459//lksFnt7e7/88ssbNmywJM/PP/+c/noVFhZm33qpCxcu2BaWw/i8AHRno0ePphftkSNHpk+fTgvj4+P37NlDO7xzc3MXLlxoSajFixePGzfuxRdfPHz4MH23Whtn/vz527dvf/vtt9Vq9bZt25jy6OjovLy8GTNm+Pn59etn+62EKpUqODjYw8OjvLz8k08+Ycrj4uJ27NixadOmlpaWvLy8ztTr4uKiVCpnzZpVUlKSnp5+5swZG/LkaweKPsvq/PnzNkQ2yy75gw3mzZuXlZWVlpamVqu/+eabI0eOfPjhh8SmN6PJk+isi1mgXpMfPpRVF/mmTZtSU1PpAlPI92bnw9f+fKyNzwgMDKyurmaeCffqq6+uWLFi1KhRX375JbvDz83Nra2tjXbytbW1Mb13rq6upaWlkydPJoRcuHDBw8Ojo6Ojf//+fOWEkKqqKjxCqU+hfasff/wxHjIC3ccPP/xgxycFAAA4FzrbAAAAuhQzZEQkErHvJrbhvun58+fv3btXJpPduXPH7BPgBAZn2Py4jo6ODpO/ynV0dNgWkIMzeEUgT8sHr1hbbxfT6XRisdhZtUMfZzxZ05gxY65evTpmzJh///vfr7zyCi3cvHnzxo0bAwICCCF/+ctfmAd70A8Z5qOG+ZxhSsaMGVNUVOTu7l5YWBgTE2NtnMzMzOXLl0ul0kceeeTgwYPZ2dn0U3T16tXbtm0LDQ1tbGx88sknp0+fnpycLBCHT25ubkJCQl1d3bRp095777309HQaf+vWrWvWrPH29h46dOjBgwc3btxItzdbr8FgYC8TQuioVrFYHBUVtXfvXrNnhEmeLtAgfO1At2xvb7e8x9FkfDvmDzbjvBmzsrISExNpYUxMTGZmJi03+yay8CQ6+mLmi8NXL+H58KGsusjDwsLeeecdkUj0pz/9iSnke7PzfWjwtT/fcVkbnxEZGXnlyhWms2358uXLli373//93379+uXn5zObZWRkSKVSeteOi4sLs+qjjz6aNm2aXq/39vYWi8XHjx93cXERKCeEXLlyJSoqysLGhF6ADmrcvHkz++8CAOfSarWurq7OzgIAwD5EZv/sBAAAgE66c+dOYGAgfUgSg9PZtmzZMqlUavK+afaWzLJCoTh06NBTTz1VWVn5ySefpKenG2/DXl69erWnpycdnJGTk7Nx40ZavmPHDnd3d8vvZxeJRG+99dZLL70kkUjeeeed9vb2nJwcukosFufn50+cODE9PX3Xrl2c7xic4+Urpz8iM4M2srOzzebJF9nsgVhSL2XDYBHjrEyeF/Jbu2GwiLXeeustnU5Hhz6AtVpaWiQSCf4QsIpery8oKEhJSSkrK3N2LtAVsrOzy8rKdu/e7dBaCgsLt2/ffvr0aYfWAj1CZWVldna2fScMELZixYq1a9caD25btWpVQEAAM1U49Bp6vV4sFut0OqbDFcDpPv/88127dp08edLZiQAA2AGe2QYAAOAcxvetazQahULx+OOPHzt2zPi+ac6/9L5pmUyWnJwcHx8vsCX9d+vWrbW1td7e3lOmTJk9ezZT7+rVq9VqdWhoqEwmi4qK2rp1q0DONNTixYtjY2MffvhhrVbL3j4/P3/+/PmzZ89+6aWXCOvebZFIxGTCvpHWZHlmZmZVVZVUKo2Ojl6yZAkThy9PdgQL79K1ql6qvb3d8m4Jk/H5zgv5bXyAVCrNy8vDYBGAbmjjxo0ikcjNze3AgQPoFAEABwkKCvLy8urKGmUyGaaRBAAAALAXjGwDAABwOJMj25wFgzOgd8DIts7AyDYAszCyDfosjGzrrejIttu3b2NkG3QfRUVF+/btw8g2AOgd8My23k+n07W3t4vFYjwCFwCgj9u4cWNaWppYLI6JicHvegDQB/n4+NTV1XEKFQrF7du3kQ9AZ+BiBugpfHx8nJ0CwO+Eh4c7OwUAAPtAZ1vv19DQ0NTUJJfLu3hKCgAA6G62bNmyZcsWZ2cBAOA03e13/+6WD4DNcDEDdH8uLi4Y1A4AAOA4eGZb79e/f3+xWDxgADpWAQDAUj4+PiIjPeg22J6ePwAAAAAAAAAA9CDogOn95HK5s1MAAIAepqffn97T8wcAAAAAAAAAgB4EI9sAAAAAAAAAAAAAAAAAbITONgAAAAAAsA6dnbVv1u4gaE8AAAAAAICeC51tAAAAAABAfH19Ld/YYDA4LhNCSEtLi+Nqd3d378zuNscR3t6qgxJuH2tZWLVA/vbNB/oU4b7e7twT7IjcUlJSmOXy8vIXXnjB1dVVLBYrlUqmvKSkRCwW09rFYnFJSQktP3PmzIIFC+bOnUvLmV34yjnVAQAAAEAnobMNAAAAAABIbW0t+yX9JffUqVMKhSI4OPjGjRtmI6xatWr48OESiSQiIuKrr75ix9m1a9eQIUPYv/PylavV6pCQEIlE4uPjs3LlSqYXp7m5efHixW5ubmPHjr106ZLZZJRKJf092sPDY8qUKUFBQbRcJpNptVrRbyzMX6PRJCQkuLu7JyYmmo1jksD2J06c4BTSlzt27HB3dy8tLd27d6+7uzttIr72oSZMmDBhwgSzyRDB9jTZDnz5C+cDtrGq59sq9uoxtVePNTHX1+vofv3OsHtuV69ebWxsZF6uXr36lVdeaWpqys/Pj4uLY8rj4+Nv3LhhMBgMBsONGzfi4+Np+csvv7xr1y6lUmkwGL7++uuFCxcKlxNCGhsbr1+/bt+jAAAAAOiz0NkGAAAAXcHR96132zvfAXoo+jtyfX39rVu3kpKSXn/9dbO7pKenV1RUaDSa5OTkOXPmsONUV1eXl5ezfzLmK09MTMzKytLpdNeuXQsLC2M6t5KSknx9fRsaGk6ePHn8+HGzycTHx8+aNUuv19fW1q5bt06j0dDyhoYGWjtlYf6xsbGhoaEqlWrGjBlm45gksH1MTAynhL5sb2/ft2/fzJkzL126tG/fPtpEfO3D7GhhB4BAe5psB778hfMB23B6vltbW9esWePj4+Pr6/vBBx8wPcd6vT45OXn48OFBQUHr16/X6XS0nK8n29oeU2vj8OHLk49wz7qFPcqc9DgvrepZ52t/6vTp05z2sTY+Y8+ePZGRkczLkpKSqVOn9uvXb8CAAaNGjWLK29vbmT65lpaW9vZ2utzW1iaVSuny5MmTm5ubhcsJIWFhYbm5uWYbEwAAAAAsYgAAAAAHU6vVAwcO5BQOHjy4k2Hd3Nz4VjU3N3cyeBfryu8kAu0GPUhqampycrKzs+ipd0h8ogAAIABJREFU6I+tdNnPz4/zB4Kfnx9dRQhpbGw0GAxNTU3u7u6cIJy3bWVl5axZs2QymUQiCQ0NJb/vmLF8WSaTsZORy+W0XCqV1tfX0+U7d+6Y/dD4/PPPXVxcCCHe3t6PPfbY+fPn+TK3JP+mpibjXaz94BLenrOWsHrO2At87WMtvva08Dwy7JVPN7Rz586lS5c6upaCgoLp06dzCjlN/frrr7/66qt1dXUtLS2HDx8eNGgQLV+/fn1OTg6TbWJiIjtCcnLy3bt3jx496uLiwheZWrRo0ddff63T6Zqamo4ePbp8+XLb4vARyNNktBUrViQnJ7e1tanV6rS0NM7a4ODg4OBgS+qdOHFiaWkpXS4tLZ00aRKzir6jdTpdSUkJ+1sBIWT69On79u27e/duSUkJLeRrf7r9unXrtFotp32sis/44x//WFFRwSmUSqVTp06tra1lSo4dOzZu3Lh58+YtX778qaeeOnr0KC3v378/e0em3fjKDQZDWVnZE088YdRyhpUrV2ZkZBiXAwAAAIAAdLYBAAA4nMnONs6PR/fu3Vu9erVCoRg8ePC+ffuGDRvGrFq5cmVQUNDAgQPDw8NPnz5NC5mblDl3z9TV1QUHBxNCFArFihUrmF635ubml156ycvLa+zYsVeuXGH20ul0SUlJQUFBw4YNS0xMbGtrY9Kjv7MvWbLEzc1t3bp17PLCwkKDwVBYWEgIGTJkiPDh0804x6vVahctWiSRSJ544omffvqJszYkJCQkJEQ4rHB8WpKTk+Pv7+/i4sL8FMXXbtDjoLOtM9idbQyTJUxnm1QqFd7+iSee2Lp16+3bt/V6fU1Njc2dbRERESZzZncOVVdXW/j+1Wq1N2/eTEtL8/LyMlkv86FnYf5sJuMIEN7ews42vvaxFl97WtgOTP72yqcb6vrONr6e78GDBzMni83Hx4e+Qw0GQ0NDA/smHkvedAyBHlOr4vARyNNkNGt71vl8+eWX4eHhdDk8PLy4uJguW9uzztf+dHu9Xs85Cht67ikPDw/jtRqNZu3atRs2bGBKEhMTf/jhB7p87ty5pKQkTgKcl3zlBoPh7t27np6expmgsw0AAADABphGEgAAoFvYsGGDTqe7dOnS9evXJRIJnbCLssuMXklJSTKZrLa29uzZs1988QX5bZqylJQUf3//ioqKyspKf3//lJQUur2BZ+a0c+fOTZw4MSYmhhASHR0dHBzM9HXxMZ4hjZibEY5zUDbEN/DMUGftzG8Afdw333yj0+mKiooiIiKEt1SpVMHBwR4eHuXl5Tk5OTbXGB0dnZeXV1VV1dHRwS6fP3/+9u3b9Xp9dXV1RkaG2Thyufz8+fP9+vULCAgYMWIEe+Y0FxcXpVKp1+uLiorCw8Ntzt9kHDtubxJf+1CWP7ONrz0F2sFk/sL5gFVUKhXzfxNdUKlUhJD79+/z7dKZ/8iY6RzHjx/P/o2grq7OtjgCbM7TkuB8IiMj7927d/bs2bNnz7a2tjIfYs8///yUKVMuX76s0WgOHz7M2cvNzY1TItD+hJABAwZwSqyNzzDZSp6enu+8886OHTuYkg8//JCZVTI4OPjAgQN8AZkZJgXK8V0IAAAAwG4c0oUH3cavv/76yy+/qNVqZycCANCnsUe2WXvfur1m9JLL5Ux8+jsaXRa+L97k/ddz5849cuSIwWD49NNP58+fb2EjEMfct84X32Cn+/Gh28LIts4wObJNoVBwSggh33333ZAhQyZNmlRVVcUuN/6D4ujRo4GBga6urtHR0ZcvX2ZWsTezZPn+/ftpaWkPPvigp6dnZGRkeno6ja/VauPj4yUSyZgxYy5evGj2b5mQkJDc3NwhQ4YQQtjDW2mqLi4uEokkNja2srLSwvyNazQZRwDf9sZVGC8bfvvs4msfaty4cRbOsMfXnnztwJe/cD49WveZRvLVV1998803DQZDXV3d0aNHX3zxRVqemJiYkZHR0dHR0dGRnp7OmUbS5DJ9L+h0uhMnToSGhtLC9957b8+ePbdu3WpvbxfIxGwcPgJ5mjzeZcuW0TuQVCrVmjVrOGutGvteUlIybdq0adOmnTp1iimUy+UlJSX37t27ePHim2++afYbAl/7G3jax9r4jFGjRrGnkXzllVf+/e9/d3R0cOaoHDZsmFarpctarZaZC8HV1fV//ud/6PL58+c9PDx0Op1AuQHTSAIAAADYFX5s6uUaGhoqKyvZM7wDAEDXs2QaSW9vb5Odbfaa0UuhUDDxb9++ze5sa2hooMsCk1CxXb58+fHHH29tbR09erQlvy+bjGbbjHCWxzdY1tlmycxv0D2hs60zTHa2GUPPNPRlTuxs4/R8a7XaZcuWyeVyuVy+aNGi6upqWt7W1rZu3Tp/f39/f/9169ZxJoI27rg1WNljam0cPnx5Gng6s4V71i3vUaaefvrpqVOnskus7Vnna3++9rGh55564403jh07xry8ePHiU0891b9/f5O3C9Ag7FVMube3t5+f37/+9S/hcoPBcOTIEWYWSjZ0tgEAAADYQGTApAG9Wn19fUNDg5eXl1wud3YuAAB91507dwIDA9mTmBFCRKLf/S+8bNkyqVSalpamVqu/+eabI0eOfPjhh4QQhUJx6NChp556qrKy8pNPPqE/gdFdxGJxfn7+rFmzSkpK0tPTz5w5QwjZsWOHu7v7jBkz/Pz8+vX7v/miV69e7enpuWnTppaWlpycnI0bN9I469ev9/b2prNNZmRkNDQ0bNu2zWSGbEuXLr1x40ZgYOCePXssbAROtOXLl0ul0rffflutVm/bti07O5u9lk6Ddv78eQuDm8yWXcJeNtlu0OO89dZbOp0uPT3d2Yn0SC0tLRKJRPgPAZFIRBfw9wL0TdnZ2WVlZbt373ZoLYWFhdu3bz99+rRDa4EeobKyMjs7+/333++yGlesWLF27dqHH36YU75q1aqAgID169d3WSYAAAAAvQCe2dbL0dnY+/fv7+xEAACAS6FQsF9mZWVpNBqFQvH4448fO3YsMzOTlufm5iYkJMhksuTk5Pj4eML6BZw+ikwqlebl5e3du5cWrl69Wq1Wh4aGymSyqKiorVu30vKtW7fW1tZ6e3tPmTJl9uzZTL2bN29Wq9UBAQEBAQH19fWbN2+m5bQW0W84yb/55ptnzpxJTU215EiZCOxQmZmZVVVVUqk0Ojp6yZIl7OMihNCZrCwJzhefKeH8S3jaDQA4mLvznJ0IAECfEBQU5OXl1ZU1ymQy4542AAAAALANRrb1crW1tU1NTXK5vIu/tQMAAJvJkW3OotfrCwoKUlJSysrKbA6ya9eu69ev79ixw46JAVgFI9s6w5KRbT2Cj48PfQglm0KhoJPlIh/oDIxsgz4LI9sAAAAAbDDA2QmAY2FkGwAAMDZu3JiWliYWi2NiYjrzux4zRAydbQDgXN2tE6u75QPQZdDTDAAAAAB9HDrbermOjg5CCPuZPQAA0Gdt2bJly5YtnY/TC0bDAAAAgB2hUw0AAAAA+jj0wfRy6GwDAIAu4OPjIzLi4+Pj7LwAAAAAAAAAAAAcDiPbejna2cbM9wUAAOAIuJ8dAAAAAAAAAAD6LAx46uXoTF8Y2QYAAAAAAAAAAAAAAOAI6IPp5TCNJAAAAADYHZ0ttrfWbpf4vbh9wCmUSqVYLJbJZNOnT+essup0C18effniccSxp6SkMMuHDh3q37+/SCQSi8VKpdK4apFI5OXlVV5eTgvPnDmzYMGCuXPnGu/CDgsAAAAA3QT6YHozg8GAkW0AAAAAYAlfX1/LN6ZfMh2npaXFLrULx+lkfHd3984HoWzLs5NVC+Rv33zAWibfjHFxcfn5+Q0NDV999RVnlckzzncShS8Px721u/9FZfdjv3r1amNjI/NyxYoVBQUFBoMhPz8/Li7OuHaDwaDRaEaOHElLXn755V27dimVSoPB8PXXXy9cuJDZuLGx8fr16/bNFgAAAAA6CX0wvRnz10KfvTkRAAAAACxUW1vLfkmHWZw6dUqhUAQHB9+4ccNshFWrVg0fPlwikURERDD9ATTOrl27hgwZwh6cwVeuVqtDQkIkEomPj8/KlSuZH+ibm5sXL17s5uY2duzYS5cumU2GLw5fvdbGl8lkWq2WGY/CXnXixAlOIX25Y8cOd3f30tLSvXv3uru706r58qQmTJgwYcIEs8kI52/yvPDlL5wPdA3OmzEwMFAkEun1+tjYWM75Mr7YiPUnke/i4XuzEFMXlaMvcs61ynkp8OGj0WgSEhLc3d0TExNpeWtr65o1a3x8fHx9fT/44IOgoCB2RadPn7bkeAXiM/bs2RMZGcm8bGhoiI6OJoTMnDlz7NixZg+5ra1NKpXS5cmTJzc3NzOrwsLCcnNzzUYAAAAAgK6EzrbejM4h2ZdnAgEA6Il6yoe2oyeh6intANBb0du26uvrb926lZSU9Prrr5vdJT09vaKiQqPRJCcnz5kzhx2nurq6vLycPZ6DrzwxMTErK0un0127di0sLIz5/TopKcnX17ehoeHkyZPHjx83mwxfHL56rY3f0NBAfhuMwhkQExMTwymhL9vb2/ft2zdz5sxLly7t27ePVs2XJ7OjhaNtBPI3eV748hfOB5zixo0b9BwZny/ji41YfxL5Lh6+NwsxdVE5+iI3GAwTJ04sLS2lL0tLSydNmsTsKPDhExsbGxoaqlKpZsyYQcs3bNig0+kuXbp0/fp1iURC3wuMoqKiiooKs8crEJ9RXFz82GOPGR/LqVOnCgsL2SWurq70uxO7k+/WrVt8rTFixIji4mL+1gIAAAAAJxA5egYYcCKdTnfjxo3+/fs//PDDzs4FAKBPu3PnTmBgIPuWZEKIr69vTU2Ns1Jic3d3b2pqsm9MkajrvmM4In/o/t566y2dTpeenu7sRHqklpYWiURC36T+/v7V1dXstX5+fiqVihAiEokaGxu9vLy0Wq2fn9+vv/7K3ozzNr969eobb7xRWlra1tY2bty4s2fPsmdZsHx50KBB7N++5XJ5XV0dIUQmk/38888ymYwQUl9f7+3tLfwhwxeHr15r4xu3gPBa5iVnQSBPq/Dlb+F5Ydgrn14gOzu7rKxs9+7dDq2lsLBw+/btp0+fJoJvRiJ4vXFWmT2JnO0FLn6Tbxa+i8rRF3lxcXFmZubJkycJIREREevXr4+IiBDIhybQ1NTk5ubGjuPr61tWVkaPl4OOIBwwYIAlx8sXn+Hp6alSqThrS0pKRo0aNXjwYJO73Lx589FHH9XpdIT/M4QQ8uuvvw4dOlSj0ZhrMxutWrUqICBg/fr1DooPAAAA0CthZFtvxvyF4+xEAADABM4kUcTKmcfoKpMzvJmc7Ihv0iSBmdD4mJy0SngGNstnQuOLzzeZlQ35AwCbSqViRpbQBebHfTb667OA559/fsqUKZcvX9ZoNIcPH7Y5n/HjxxtYTP4oT3+J7nwcPpbE7/wuVGfytCQZC88Ls4sj8gELWfhmNMvRF7+1b3Z7XVSRkZH37t07e/bs2bNnW1tbaU+b2XyMe8Lu378vUIvxZ5218RnGnaMHDhwIDAzk62kjhAwdOlSv1/OtbW9vFwgOAAAAAM6FzrbejE4j2a8fzjIAQM9g1cxjBv4Z3kxOdsQ3aZLATGiW50nMzcBmeXC++AaeyaxsyB8ALPfNN9/odLqioiLmd20+KpUqODjYw8OjvLw8JyfH5hqjo6Pz8vKqqqroV1nG/Pnzt2/frtfrq6urMzIybI7Dx9r4hBAXFxelUqnX64uKisLDwy3Zxdo8Lb9TgS9/gfNiMn9r2w26IUdf/Na+2e11kRNCNm3alJqampqaumnTJpvzmTdvXlZWFiFErVYrlcoFCxYIb2/zh1tgYCB7qOKnn346evToYcOGkd/fERsaGpqamnrt2jVCiFKpdHFxoeWurq7MtJkXLlzw8PBgGrCqqgqz1wAAAAB0OwbovbRabWVl5c2bN52dCABAX6dWqwcOHEiX/fz8OP8X+/n5sTfm/O9MWD1VxguNjY0Gg6Gpqcnd3Z0WVlZWzpo1SyaTSSSS0NBQZuPBgwfX19ebTM+27wOcvaRSKRP/zp07nf+OYRyB/L5TTWBL6AtSU1OTk5OdnUVPRWe15RQqFApOCSHku+++GzJkyKRJk6qqqtjlxn9QHD16NDAw0NXVNTo6+vLly8wq9maWLN+/fz8tLe3BBx/09PSMjIxMT0+n8bVabXx8vEQiGTNmzMWLF83+LcMXh69ea+PTQ3ZxcZFIJLGxsZWVlQLtY7xs+O2ziy9Paty4ccHBwcJpCLcP33nhy184nz5l586dS5cudXQtBQUF06dP5xRy3oyc53sR/ltMaKHASTS5Pd/Fw3cNm7youuAip55++umpU6eyS8x++HAaTavVLlu2TC6Xy+XyRYsWVVdXcxrHkuMViM944403jh07xrwcOHCgye3VanV8fLynpychxMXF5ejRo8xx0Y43b29vPz+/f/3rX8wuR44cSUpKsrzRrLVy5cqMjAzHxQcAAADolfDMtt5Mq9XW1NS4uroOGTLE2bkAAPRpJp/ZxvfwFQsf80N+/ziloUOH0jFeY8eOnT9//l//+leZTHbnzh1fX1+6sVwur6io4HtCCVOjTqcTi8WWHJTAE19qampoD6IlcSyMT3ieHGNz/tDT4ZltncF+ZpuArnz4IkB30/XPbINeprKyMjs7+/3337d75BUrVqxdu9Zxg9vwzDYAAAAAG2CCwd4M00gCAPR6xjO88U12JDBpkl1mQhOehMqqSaKsZZf8AYCDznKGRyECANgmKCjIy8vLEZFlMhmmkQQAAADobsw85xx6NIPBIBKJ0NkGANA9KRQKTgnzozZdoB/jxNSYNoafn98jjzwSEBDw6aef0pLc3NyEhIS6urpp06a999576enpdK+srKzExERaaUxMTGZmJhOEPgJNLBZHRUXt3bvXbObGeRJCMjMzly9fLpVKH3nkkYMHD2ZnZ7OzbW9vt/z/I5Px2U3BaRZr8wcAS2BMGwBAJ23ZssURYd99911HhAUAgB7hhx9+KC4udnYWALabNm3ak08+6ewsHAKdbb2Zp6cnnfkdAAC6odu3b3NKjH/aNph6ggi7cNy4cbdu3WLvMnfu3Llz5xrvJZFI/v73v//97383zmTu3Lk6nc7yzE3+BC+RSPbv379//36T23z33XedjG+yKShr8weAXsPHx6euro5TqFAojD9gu2d8AAAAAACr/O///u+HH344c+ZMZycCYIuTJ0+KRCJ0tgEAAEA3whndBQDQBzm60wudagAAAADQ3YwfP37r1q3OzgLAFs3Nzc5OwYHQ2QYAANAjoY8NAAAAAAAAAACgO8DTvAAAAIDLx8dHZMTHx8fZeQEAAAAAAAAAAHQ7GNkGAAAAXJg5DQAAAAAAAAAAwEIY2QYAAAAAAAAAAAAAAH2CSCRyyr6d4ax6wXLobAMAAAAAgO6Fzl7r7CwcwonH1YtbFXoEXPwAAABdCf/92UapVIrFYhcXlyFDhsyYMcPZ6UBPgs42AAAAAAAgvr6+nYzg7u5ul0wIIQaDofNB7JWPtXGEt7fq0FpaWqyqWpiFVQvkb998gE/n34zEypNlr5OOix8AAKD7sMs36p7Iz8/P7DYCjRMXF5efn6/X66uqqr744gur9rVZJ3OGbgKdbQAAAD2bvW5Vc/QtbwLx7XLDHW7ZA+ik2tpaTsmqVauGDx8ukUgiIiK++uorWtja2rpmzRofHx9fX98PPvggKCiIlstkMq1WK/oNE4T9krPKZHxr0TtPRSKRh4fHlClTzObDVy/dTKPRJCQkuLu7JyYmmo1jksD2J06cMNk4O3bscHd3Ly0t3bt3r7u7u1KpJISo1eqQkBCJROLj47Ny5UrOD/0TJkyYMGGCJe3T3Ny8ePFiNze3sWPHXrp0yWw78OUvnA/YF+fNyPem47toBU6WQ086Ln4AAADgaGtr6/pKa2pqOrO7Xq+fO3euvZKxUCdzdhannN/uDJ1tvVldXV1NTY1er3d2IgAAYIJd7lsn9ru5yTiOHQepmIxvySq7xOew73EB9GLp6ekVFRUajSY5OXnOnDm0cMOGDTqd7tKlS9evX5dIJA0NDbScLhh+wwThW+aLb634+PhZs2bp9fra2tp169ZpNBrhfPjqpdvExsaGhoaqVCpmxhiBOCYJbB8TE8MpoS/b29v37ds3c+bMS5cu7du3Ly4ujhCSmJiYlZWl0+muXbsWFhbG9KMwO1r4oZeUlOTr69vQ0HDy5Mnjx4+bbQe+/IXzAYfie9PxXbQCJ8uhJx0XPwAAQNerqKh49tlnpVKpq6traGjoqVOnmPtyqBs3bkydOnXAgAFisZje18LYtm1bSEiIh4dHQEDA66+/Xl9fz6yit55otdpnnnlGLBYb73v06NFhw4a5ubktWLCgpaXF+Fab/Px8f3//P/zhD25ublFRUd99952FR2S26suXLz/zzDP+/v7+/v6xsbEVFRXMqkcffZSmIWLhxL969SrfXXSBgYGc3adPn27hvsInQqCpO5mzQGuYbUlhTI3FxcV//OMfg4KCCgsLmbXC59fsZdlrGaD3unbtWmVlZVtbm7MTAQDo69Rq9cCBAzmFnP+F6f/LJSUlcrl8/Pjxv/zyC7u8sbFxyZIlbm5u69atY3Zhvuiw4+h0uqSkpKCgoGHDhiUmJjL/C1gbRyqVmvzCQF8WFhYyOw4ZMkT48E3G12q1ixYtkkgkTzzxxE8//cRZGxISEhISIhxWOD4tycnJ8ff3d3FxOXr0qPBxQY+TmpqanJzs7Cx6qubmZub6N56xxM/Pz2AwVFZWzpo1SyaTSSSS0NBQZvvBgwfX19ebDMv3nuJ8htAFvvhmo3F8/vnnLi4uhBBvb+/HHnvs/PnzwhEE6iWENDU1WX5cfIS3N/6wMrkgk8nYJ0Uul1uVA0MqlTLn686dO5a0v8n87ZVPD7Jz586lS5c6upaCgoLp06fTZb43o/Cbzvii5TtZXXDScfH3DitXrszIyHB2FgAAYNrf//73RYsW0eXy8vIHH3xw9+7dKpVKp9PdunXrH//4x6BBg5iNCSFRUVHffvttR0fH0aNHXVxc2KG++OILulBfX5+SkhIaGspeSwh59dVXz5w5Y7zvuXPnRo4c+cMPP7S2tp47d47eicLe9/Tp0zExMd9//31LS0tTU9PXX3/95JNPXrhwwcJjFKi6vLw8JCTk+vXr9OV//vOfiRMnXrlyhbO7JVXYsIpvA7MnQripbc7ZbGsItKQlCCE7d+589913VSpVR0fHvHnzaLnw+RVujd79NQO/MfVmd+/e1Wg07e3tzk4EAKCvs6SzjZbk5+e3trYePnx47ty57PLp06fv27fv7t27JSUlwnHWr1+fk5NDl3fu3JmYmGhbHJMlBoPh3LlzEydOpMsdHR3BwcEXL1403swYJ9qKFSuSk5Pb2trUanVaWhpnbXBwcHBwsCVhBbIlhCQnJ9+9e5fzndLa382he0JnW2ewO9sYnJInnnhi69att2/f1uv1dFYTWu7t7W1JZxv7fi+mvL29nVnmi8+XjzCtVnvz5s20tDQvLy/hfATq5auR77j4CG9vYX9DRESE2Yoswe5vqK6utqT9TeZvr3x6kK7vbGNwLhIL33QMvpPVBScdF3/v0Lt/BQMA6OnYnW1z5szZv3+/wMaEkB9//JH9km/L+/fvi0Qizr6HDx82uW9UVBTTe2QwGI4cOcKJ/PTTT//nP/9hl/z73/8ODw8XSNXCqmfPnn3ixAn2xidOnPjzn//M2d2SKmxYxbeB2RPBZtzUllRqchuzrSHQkpYghBQXFzMv79+/TxeEz69wa/TurxmYRrI38/Dw8PT07NcPZxkAoBvx9/dnBuPTBX9/f2ZtZGTkAw88EB0dXVJSwt7r888/X7x4sYeHR1hYmHD8/fv3L1y4kC7Hx8cfPHjQtjh8Jk6c6Ovre/ToUULIkSNHHn300TFjxtgQ5+OPP05MTBSLxd7e3i+//DJn7YULFy5cuGBbhmzp6ekeHh5z587FpMoA1lKpVMHBwR4eHuXl5Tk5OUz5vHnzsrKyCCFqtVqpVC5YsIBZ5eLiolQq9Xp9UVFReHg4p7ympua1114zG99acrn8/Pnz/fr1CwgIGDFiBO1HFMjHhnr5jste25sUHR2dl5dXVVXV0dFhvNbyx1bNnz9/+/bter2+uro6IyODKRdoB5P5C+cDDiXwpjOJ72R1wUnHxQ8AANCVvvrqq+joaOFt/vjHP5osb2trS0tLGzFixMCBA729vaOiogxGEzU/99xzJvf99ttvn3zySebl1KlTORucP3/+oYceYs+LOGbMmNLSUjPHY0HVX331FbtqQsiECRNOnz5teWRHED4RljS1zfWabQ2+lrRQREQEs9y/f3+6IHx+Lbkseyt0wwAAAHQplUpFb3ghv91SpFKpjDcbMGAA+6Wbm5vlVQh8b7MqDptOp2OW09LSUlNT29ra3nnnnXfeece2gHzBu5gTqwbobhQKBftlbm5uQkKCTCZLTk6Oj48nhNC7BLKysjQajUKhePzxx48dO5aZmcnskp+fHxcXJ5VK8/Ly9u7dyy6fP3/+7NmzX3rpJSYOX3zCejwA35MJ2B566KEff/wxKChIJBLFxcXl5+cL58NXL+dJCewq+I6LD9/2xsfF/pe9QAhZvXq1Wq0ODQ2VyWRRUVFbt25lV0HnrjCbCSEkMzOzqqpKKpVGR0cvWbKEWND+JvMXzgfsi/Nm5HvT8V20fCerC046Ln4AAICu1N7ebvbbMp/XXnuttbX1m2+++fXXX2/duvVf//VfdkzM1dWVM/LJ8NvsGp1n/E3AXn1XNhM+EQ5taqe0hvD57cxl2dOJnH4tAgAA9Hp37twJDAzkfLOk8wZwSo4fPx4ZGXns2LGRmONHAAAgAElEQVTPPvuM+cnYeEuBOOvXr/f29qZzpmdkZDQ0NGzbts2GOIQQsVicn58/a9askpKS9PT0M2fOMKuWLl1648aNwMDAPXv2mD18k/GXL18ulUrffvtttVq9bdu27Oxs9lp60/r58+ctDG4yf3YJe1nguKAHeeutt3Q6XXp6urMT6ZFaWlokEgn+EAAQkJ2dXVZWtnv3bofWUlhYuH37dqffjg3AtmrVqoCAgPXr1zs7EQAAMOEf//jH//t//++DDz4ghISHh7/wwgv0nhKTOH8ms19KpdL//Oc/Xl5e9KVarVYoFHwbc17OmDFj7dq1zJgnemsde+OFCxeOGDFi48aNth2jQNVz5sx55ZVXZs6cyawtKCjIy8v75z//ybd7W1vbAw88IFyFhav4NhA+EWab2uaczbaGQEtagm974fMr3Bq9+2sGRrYBAAA4B+e+dcrPz++RRx7ZsWPHe++9R0sEBluYHPyxefNmtVodEBAQEBBQX1+/efNm2+IQwcEcb7755pkzZ1JTUy05UpPx+e43pyy/b50vvvGN88L3rQMAAAAAAAD0IGlpaX/729/oE9nv3btXUVGRl5cn0PfGNmzYsN27dzc3Nzc0NOzfv9/sPNVsb7/99rp16yorK/V6fWlp6b/+9S/OBunp6Xv27Nm8efMvv/yi1+sbGhq+/PJLdp+QzTIyMlJSUkpLS+/fv3///v3S0tLU1FT2fNHkt3mhCSE1NTW7du2aPHly5+sVJnwiLGlq23K2pDUcQfj8duay7OkGmN8EAAAAHOD27dvGhePGjbt16xa7RKDPyeQqsVicmZnJntjNtjiEkLlz5/LNslhYWLhs2bKAgAC+mGbjSySS/fv379+/3+Q23333nSWRBeKzCzkbCBwXAAAAAEAfcePGjbFjxzo7C4DuYs2aNW+99Zazs7DOhAkTlErlxo0b582bJxKJhg0bFh8fz8xSyNx1Sv8i5rw8ePDgq6++umnTJqlU+sILL3z22WceHh58G3NeTpw4MTU1NSYmpqamZs6cObt37/7HP/7x/7F373FNXHn/wE+w0EoSNBESAlisrWjbrVsRrLCy2xZFwcsjrAV2X5ZSL/2166VuWy5aF0HFiNBS9bFdBR6p3a6lXrKtiq3XXe3iq9o+++wuoqDCqgSEcFsJERIgvz/m1dnpJDO5kBAIn/cfvCZnzpzznZNMSHLmnMMMLCgo6K9//eu7774bHh5+//79xx57bPHixdRoPIv4q37yySf/+Mc/ZmRknD9/nhDy4osvHjx4cPLkycwSqPtre3t7g4KC4uPjjx8/ziqctU3/YvCPf/yDWuKO3hUbG1teXm7xWP4ngr+pBxIzf2vwt6RFrLuWmQ3F//zyt4Z7Q2cbAADAkGDr5x4Xoj9sFRYWujYSABgh5HJ5c3MzK1Emk5m9a2EExgMwaPDiB3An/f39Dz30UHV1tasDAXC97du3P3jwwNVR2GPGjBmnT582u4v12wLr4eTJk6keGrMZ+I8lhPzyl7/85S9/SW1rNBqxWMzKEBgYaGXvmk1hE0KefPLJL7/8kqcEnvtr+X9vmTp1qh23KVN4ngj+pqbYHTNPa1hsSX78+fmfX57WcG/obAMAABgShn4fG20YhQoA7mGo/Y4/1OIBGDR48QO4GQ8PD4lE4uooAFxv9OjR3d3dro5iWGpoaMjJyaGWjQcY4bBmGwAAAAyUXC4XmJDL5a6OCwAAAAAAAAAcbMeOHdQX/2efffaZZ5753e9+5+qIAFwPI9vcVn9/f3d3t0AgGD16tKtjAQAAN4f73AEAAAAAAABGiPT09PT0dFdHATC0YGSb29Lr9Wq1Gr9+AgAAAAAAAAAADFP0mtmDfOxAuKpeGPqCg4NN58WhBAcHuzq6kQLPgpOgs81tUQvq4H8bAAAAAAw71De9YVGLCz9vD04rAVhjMF+NeNkDuCv8X7ODSqXy8vLy9PQMCgqaN2+eq8MBsOz27dtGDrdv33Z1dCMFngUnQWeb20JnGwAAAABYT6FQDLAEsVjskEjIDx9lrafT6ZxXC/952RSqfXEOsGqe+B0bDzjKwC9GYuOTO/AXia3X7EBYX5cD35QAYBAM5jvJ0BEQEGAxD0/LJCUllZWVGQyG+vr6r776yqZj7TbAmAEA3BXWbHNb6GwDAAAAAOvdu3ePlbJmzZpTp07V19dHRkZu2LDhhRdeIIR0d3dnZGR89tlnHh4eSqVy27ZtNTU1hBCpVKrVaukPn/QvLFQK86Mpvcts+bbSaDRxcXHfffedTCZ76aWXduzY4e3tTde1a9euvLy85ubmsrKy+Ph4QkhXV9eqVasOHz48adKkTz75xGL5XOdFCCkvL58/f77pyb7//vtZWVlff/31tWvX1q1bd+DAgfj4eK44KTNmzCCEXL582WI8PPGbbU+u+PnjAddiXYxcFx31tLa3t7/99tuff/7566+/np+fT3ifXGe/SO7cuZOYmFhdXR0fH797926hUEjHeeLEibi4OOqqCQoKunv3LnWI9S9+Yu6iI9wXO8/FCwBgVk9Pz8MPPzzIlTY2Ng7kcIPBQL3pDaYBxgwDVFdXV15eHhER4epAAOxRV1e3ePFiV0fhLOhsc1vobAMAAFdh/Z5udyGu+l3MIfEDuAGlUrl7926DwXDhwoVFixZ1dnYSQjZs2KDX6ysrK0Ui0fHjx9va2qjMbW1tZi9bo9HI/LGb+enUbPm2SktLKygoiIyM7OnpOX36dFpa2p49e+i6Ghoaqqqqzp49m5SUpNfrCSEZGRkKhaKtre3+/ftFRUUWy+c6L0JIXFwc64yoh319ffv3758/f35qaur+/fupqrnipA+08nx54jfbnlzx88cDQwrXRUe93hISElJSUgoLC69cuUKl8zy5zn6RlJaWHj582NvbOzs7Oz09ncp/6dKl3/72t3FxcYSQ2NjYsLCwkpIS+hCb/tuaXnSE+2LnuXgBwIWqq6s3bNhw7ty57u7usLCw7OzsN954g7qHgHL79u2UlJS//vWvHh4edPc5ZceOHYcOHaqurh4zZsySJUs2btw4btw4ahf1ztDZ2bl06dLy8nJCCOvYo0ePZmRkNDY2Ll68eN++fdTdAPRbRFlZ2VtvvdXQ0CAUCn/2s59t27Zt+vTp1pyOxXqvXbu2fv166i36ueeeUyqVkydPpnY98cQTt27dIj/+7Y71rnXjxo2QkBDTdEJIcHDwnTt3mIc///zz58+ft+ZY/meBp50HGDNPa1hsSWDy9fX9+c9/7uooAOzR3d3t6hCciWt2Thju7t+/X1NTU19f7+pAAADAqNFovL29WYn+/v7Wl9DV1eWQSGwqRyQS2V2ONZ8xeMq3laPahzbA+B0eD5jKysrKzMx0dRTDVVdXF/0iN50IKCAgwGg01tTULFiwQCqVCoXCqKgoOr+/v39ra6vZYrkuHGY6vc1VvsXSWKRSKTN4Pz8//nolEgkdf0tLizW18Odh7aUfsjZ44rQJV/w87Wk2fkfF48Y++OCDlStXOruW48ePv/DCC9Q218XIf9F1dnayErmeXGe/SAgh9NfP1tZWZv74+PgjR44YjcZDhw4lJyfzl2MR/9uFxfMCi1avXp2Xl+fqKGAw1NbWyuXywayxqqpqwoQJ+/btU6vVer3+7t27H3300bhx4+gMhJC5c+d+9913/f39R48e9fT0ZB7+1VdfURutra0bN26Miopi7iWEvP766xcuXDA99tKlS0899dTf/va37u7uS5cupaWlMd8fzp07FxcX97//+786na6zs/PPf/7zc889d+XKFStPiqfeqqqq8PDw2tpa6mFdXd3MmTOvX7/OOtyaKuzYxZXB4rPA3852x2yxNXhachBs2rQpIyNjMGu024cffvjKK6+4OgoAO7n3xwys2ebmMLINAGDIYk0SRa0H3tHRsXz5crFYTH0DJIRoNJrw8HChUCiXy1evXk0vndLV1bV8+fLHHnssLCysrq6OXk6cua44c5urHGpJbYFA4OPjM2vWLOomRMKYfIm1UDlPPKmpqSKRaNq0aZWVlRZPn6t8Qkh5eTkrkXpYWFgoFosrKipKSkrEYrFKpeKJhzJjxgxqfiqLeOJfs2bN5MmThULhnDlz6HtFbW0fgCFLrVZTXwzID7+JqNVqQkhiYuKsWbOuXbvW0dHx+eef0/l7e3utKZYaWcLS399Pb3OVb6vp06czv940Nzdbf6zZIB1+CGUgcVoTjJXtSR/ijHhggLguRv6LTiQSsVK4ntzBfJH09/d7ePzn14Zt27ZlZWX19PRs3rx58+bN1pfjQHZfvADgQJmZmTk5OStXrgwICPD09AwKCnr99depe0doeXl506dPFwgE8fHxBoOBuWvu3LnUhlQqzc7O/uabb1jlv/jii1FRUabHZmdnv//++88+++zDDz88c+bMmTNnMo/Kzs7es2fPtGnTRo8eLRKJfvGLXxQVFa1fv9768+KqNyMjIycn57HHHqMeTpgwISsrKyMjw/qSncHis2Cxne1jTWtwtSQAwLCAzja3ZcR0GQAAwwr1vp2QkBAVFaVWq+fNm0elU5M46fX6W7duRUdH051w6enpkZGRdXV1X3311ZkzZ+gSmO//zG2uclJSUhYsWGAwGO7du/fOO+90dHRQ6dQsVfRPbBbLoWc2O3369LFjxyyeL1f55IdJokwbh56ZrbKykpqZjSce+kAr/yHyxK9UKqurqzs6OjIzMxctWmRf+wAMO2q1OiwszMfHp6qqateuXXT6kiVLCgoKCCEajUalUi1dupTe5enpqVKpDAbDyZMnZ8+ezUpvbGxct26dxfJtFRsbW1xcXF9fz+zJ45GcnPzee+8ZDIaGhoa8vDxrDuE6LwfGaf2dAVzx87Sn2fhtbTdwIZ6LziyuJ3cQXiRFRUX19fXt7e25ubmJiYl0+pQpUyIiIhYuXPjcc89NmjSJeYj1L347OOTiBQAHOn/+fGxsLH+en/70p2bTe3p6tm3bNmXKFG9vb19f37lz55p+zn/ppZfMHvvdd98999xz9MNf/OIXzL2XL19+7LHHBAxTp06tqKiwfD6W6j1//jyzXkLIjBkzzp07Z33JzsD/LFjTznbXa7E1uFoSAGB44B/4BsNXR0dHTU1NQ0ODqwMBAIAfTSPJNUmU0cbJoPz8/Nrb26lt1kxoZre5yvnyyy89PT0JIb6+vk8++eTly5fNlmMxHszMRsHMbIMG00gOBHMaSZpMJmM+PHr0aHBw8OjRo2NjY69du0Z/d9BqtW+88Yafn5+fn98rr7zC/LRJTfgjFAoTEhJqamqY6V5eXtOnT//73/9Ol8NVvtHcqm88ent7t23bNmHChDFjxsTExCiVSlYhrG2tVpuSkiIUCqdOncqMhwfXeZnGabpt/OG9gitOSmhoaFhYGH8YFK74edrTbPz88YDRFdNI0lgXI9dFx3WlcD25Tn2RUKXV1dWFh4ePHTt2xYoVrBmVb9269fDDD9+5c4d1oPUvfq5T5roGuc4LLHLv+Z2AafCnkfT29tZoNDwZCMdXAKPR+Prrr//ud7/TaDQGg0Gn01HvY1YeO27cOPqrk9Hk24pEIqmrq7PtTKyrVyQStbS0MPe2tLSw5qK3+DmEP4/Fw00z8D8LFtvZmkrN5rHYGvxPqLNhGkmAweHeHzOwXLDb6ujo0Gg0YrHY39/f1bEAAIx0LS0twcHB1K/bNIGA/V/YNIUQEhMTc+rUKdMyZTJZTU3N2LFjqfKpTh1WOf39/aNGjaK2ucqhdHV1tbW1/eEPf9ixY0d7e7tpPHq93svLi6ccqVR68+ZNqqupsbGR6kHkbhLO8rlag37I2uA/L+txxT9t2rTk5ORXX31VKpW2tLQoFArTdiZWtA843KZNm/R6vVKpdHUgw5JOpxMKhfgiAMBj586dV69e3bdvn1NrOXHixHvvvefyUQ6DYPfu3bW1tYWFha4OBCxbs2bN+PHj09PTXR0IOF1dXV1ERARrcnunmj179q9//etly5ZxZeD6CkAIobrEqK8/hBCNRkPdmmDNsfPmzXv77bfnzJlDPSwrK6PWj6Qevvzyy1OmTHn33XftOymeehctWvT//t//mz9/Pr33+PHjxcXFf/rTn7gO7+npefjhh/mrsHIXVwb+Z8FiO9sds8XW4GnJQZCdnd3d3b19+/ZBq9FuH3300bfffltaWmpNZv4XD7FrajRrDrT16RvkpxtcyL0/ZmAaSbdF/xDp6kAAAGBAuCZxSkxMPHz4MCGkpaWFWr2MZnbGNq5y/Pz8Ll++7OHhMX78+ClTpjB7BG2aVAozs1kTDwAAwAgkEAjWrl37wQcfuDoQAHCxbdu2/e53vztz5ozRaHzw4EF1dXVxcTFP3xvTpEmT9u3bR90j+PHHH1ucU5cpOzv7nXfeqampMRgMFRUVf/nLX5h7lUplUVHR1q1b//WvfxkMhra2tq+//prZJ2S3vLy8jRs3VlRU9Pb29vb2VlRUZGVlsb4rUd8pCCGNjY27d++OjIwceL38+J8Fa9rZvpitaQ2wm0KhMJvO04Nld+eWNQfaWrj1+cVisU0lAwwmdLa5LXS2AQAMcTKZjPmQesem1wmg09euXavRaKKioqRS6dy5c+lb7fLy8ioqKiZMmBAbG8vqqaJu1Vy4cOGKFSvokrnKeeyxx/7v//4vJCREIBAkJSWVlZUxy0lKSpJIJMXFxSUlJfzx5Ofn19fXSySS2NhY6quaxf9BZsunG4G1wSzQmvah9PX1WfmpnSv+vXv3Ll++XCqVZmZmpqSkMGu3qX0AAABGLHpqHVcHAgAuNmPGDJVKlZeXJ5FIAgICXn755e7u7v/+7/+m9pr9zE8//OSTT06ePCmTyaZOnXr16lXqvkOuzKyHM2fOzMrKiouLGzt27O7du1kdPEFBQX/9619v3rwZHh4uEokiIyPPnz9v/bAhnnqffPLJP/7xj9u3b5dIJBKJJC8v7+DBg5MnT2aWQH2n8PDweO65527evHn8+HFm4axvRszvQf/4xz9Yu+Li4qw5lv9Z4G/ngcTM3xr8LQkWmQ5RLS8vZ71mCCFdXV2pqakikWjatGmVlZWsQ2xaSPXOnTszZ86USCTLli1j3rNrtl6dTrdy5UqJRBIaGlpdXc3MYDY/lbJ79+6goCAvLy/69mKpVKrVak0vB4AhAiM03VZra2tbW9vYsWP9/PxcHQsAwEhndhpJx8KsCzDSYBrJgRh200jK5fLm5mZWokwma2pqGhblw3CEaSTNwsUyErj3/E7ANPjTSA4RGo3m8ccfv3//vqsDgSFkuE8jyfWDACt99erVYrE4Jyfn/v37RUVFGzZsYO4NDw8nhFy5csViDAKBICcnZ9myZd7e3tnZ2X19fXv27OGpd82aNd7e3ps3b+7t7S0uLl63bp3FNTUEAkFmZub69evPnj2blJSk1+v5zxSGC/f+mIGRbW4LI9sAAEYO3PcHAO6tqanJdPVpB/647+zyAdwGLhYAGO4aGho2btyYlpbm6kAAHCAwMJA1lDAwMJAn/x//+Me0tDQvLy9fX9/XXnuNtffKlSvW9LRRli9fHhQUJJVKs7OzDx06xJ+5rKwsIyPj4YcfFgqFv/71r62sQqlU+vj4xMfHGwwGKw8BcK2HXB0AOAs62wAARg7c2AUAADAc9fb2PnjwoK6uztWBAPzHv//9b661fwCGrx07dmRkZBBC/Pz8srKyVq9e7eqIABxArVZTG3aM96LHig1Qf3+/h4eF8TzMH6gd+POFXq/38vJyVGkAA4fONjeHzjYAAHAhTDYFAADA45///Ofly5d/8pOfuDoQgP/Q6/XMlZ8A3EN6erq7zloGYL3k5OT33nsvOztbo9Hs2LGDtZdasO3y5cvWFFVUVLRixQqhUJibm5uYmMifOSkpqbCwMCcnR6fTFRcX2xc8xdPTU6VSLViw4MyZM0ql8sKFCwMpDcCx0NnmtjDKAQAAXA6dagAAADymTZv2i1/8Yhit2QYjAbWYiqujABgSgoOD79y5Y3bXo48+evv27UGOB4CLTCZjpdADMKgN6ofi/Pz83/zmNxKJ5PHHH//kk0927tzJHBLX19dncYwaXWBqampCQsKNGzeWLFmyc+dO/nq3b9/+5ptv+vr6Pvroo5988sm7777Ln5+eGNNoNDK3CSFlZWVJSUleXl5z584tKSmxrZkAnAydbQAAAAAAAOAUfX19o0aNcnUUAAAA9kB3GgwXpve5mh2GIRQKP/74448//thsnu+//96auuijzI6BM1uvt7d3UVFRUVGRwWA4fvz4U089xZ+fmcjKEB8f76gJMAEcznJnNQxTWLMNAAAAAJyEXol9mNauUqm8vLykUukLL7xgTbprOaS1HfJ88UeyceNGettoNN69e7eqqurZZ59l5rlw4cLSpUvj4+MFAoGXl5dKpeKv8eDBg6NGjTKbmVkdAAAAAAxl7777rkAgEIlEBw4cwJh+cFcY2QYAAAAAAEShUDQ2NlqZmZ7RxUl0Op23t/fAa+cqJykpqaysLD4+3sp0m4jF4s7OzoGUwGJ6vvztw1WIMyKh3bhxo729nX74z3/+s7a29r/+678qKyuZ2V577bVLly5JJBJCSEVFRUxMjFar5alx1apVx48fj42NValUSUlJzBuZ29vba2trJ06cOKBTGgIuXrwolUpdHYU76OnpefDgAbUtEokeegg/d9hJp9Nt3rzZ1VEAAIBbyc3Nzc3NdXUUAM6FT59uSygUjho16pFHHnF1IAAAAAAwDNy7d4/5kOpTOXPmzK9+9atHH330yJEjwcHB/CWsWbPm1KlT9fX1kZGRGzZsoAaHUeXs2rUrLy+vubmZ7sriStdoNHFxcd99951MJnvppZd27NhB9Sp1dXWtWrXq8OHDkyZN+uSTTyyeDlc59OIrCQkJVE6qF4or3WAw/O53v1OpVEajcfHixVu3bvXy8qLjb29vf/vttz///PPXX389Pz+fECKVSrVaLd0jxerisn7Zea7z5Tqv7u7ujIyMzz77zMPDQ6lUbtu2raamhjqkvLx8/vz5zGCo8N5///2srKyvv/762rVr69atO3DgAPUUmH0eLSoqKoqJiaEfTp06derUqabZenp6qJ42QkhkZGRXVxd/sW1tbdTG/Pnzp02bxtwVHR29d+/evLw8a8Ibsl544YXq6mpXR+EmtFot1eP7m9/8Zv369ZGRka6OaBhDB/AIcffu3aamJkyJBECZOXOmq0MAgOENnW1uSyQSiUQiV0cBAAAjDnOB5cGvmjho9AYAUGOYWltb7969++WXX/72t789evQo/yFKpXL37t0Gg+HChQuLFi2iRndR5TQ0NFRVVZ09e5YenMSVnpaWVlBQEBkZ2dPTc/r06bS0tD179hBCMjIyFApFW1vb/fv3i4qKLMbPVQ61+IrpOxVX+saNG4OCgqjukJ07d27cuHHHjh10/AkJCSkpKYWFhVeuXKHyt7W18bwNWv8GxXW+XOe1YcMGvV5fWVkpEomOHz9O91ERQuLi4lgj0qiHfX19+/fvnz9/fmpq6v79++mnwOzzaNGpU6dWrFhhMdvdu3etbAGWs2fPnjhxgpkyZcqULVu2DPfONm9vbzcYnDfUjBkzRqFQoGEBLAoMDPT19aVvzgAYybZv397X1+fqKABgeHPZz2EAAAAjR0tLS3BwMOv+fZtmbONi00xiPDObOaocW9kxExo/a7r6HNUO4FqbNm3S6/VKpdLVgQxLOp1OKBRSF0tgYGBDQwNzb0BAgFqtJoQIBIL29vaxY8dqtdqAgID79+8zs7Eutxs3brz11lsVFRU9PT2hoaEXL15kjqOyfnvcuHHMjiI/P7/m5mZCiFQqvXnzJjXYorW11dfXl/9i5yrHbPA86f7+/tevXx87diwhpL29/amnnqLfugUCQWdnp+n9bQ6554DrfLnOS6FQXL16lWcwCisq+iFrg+d55D+7MWPGqNVqi63B/5DLmTNnfvKTn/j7+zMT79+//+ijj3Z0dFg83D47d+68evXqvn37nFQ+OE9kZOSWLVuio6NdHQjAUFdXVxcREcEa2g4wMmVnZ3d3d2/fvt3VgVj20Ucfffvtt6Wlpa4OBMAea9asGT9+fHp6uqsDcQoPVwcAAAAwQrG+1nZ3d7/55ptyuVyhUJSWloaEhFDpAoFAIBB0dHQsX75cLBanpaVR6RqNJjw8XCgUyuXy1atX63Q6uqg1a9ZMnjxZKBTOmTPn/PnzVCI9sxmFzsxTjllc5RBCysvLWYnUw8LCQrFYXFFRUVJSIhaLVSqVxXpnzJhBTbZmUVdXV2pqqkgkmjZtGmtlIKe2A4DbUKvVRqOR6vCgNqieNhaLqx8lJibOmjXr2rVrHR0dn3/+ud3xTJ8+3cjA7CGjMRfuGkg5VuLpDbI4k4Q1oVrELITrvHp7ewdeERnA82h3/6LFu8gPHDgQHBzM6mkbYKUAAAAAAACOhc42AACAIYGeAay2tlYoFNIDF6hfEhMSEqKiotRq9bx586h0aiYxvV5/69at6OhouhOOEKJUKqurqzs6OjIzMxctWkQlUgXSv8/SmXnKMYurHPLDTGXMFOohPVNZZWUlNVOZxXpNC+dCz7R2+vTpY8eOMXc5tR0ARohvvvlGr9efPHlyzpw5/DnVanVYWJiPj09VVdWuXbvsrjE2Nra4uLi+vr6/v5+Znpyc/N577xkMhoaGBmtmDuQqx1YpKSlFRUXUO8bevXtffvlli4d4enqqVCqDwXDy5MnZs2czd1l/JwHX+XKd15IlSwoKCgghGo1GpVItXbrUqtMzYffzGBwczBoiadbo0aMrKiqo7StXrvj4+NAncvPmTYFAwFz4jRBy6NChZ555ZtKkSeSHuYJp9fX1mCcQAAAAAACGCiMAAAA4mUaj8fb2prYDAgJY/4sDAgKMRqO/v9UsxUwAACAASURBVH9ra6vZwwkhnZ2drETWXGF+fn5Uek1NzYIFC6RSqVAojIqKIj/uWDItnKscHvyfH1h7CaPnjLlhR71mSSQSut1aWlroWgahHcC1srKyMjMzXR3FcEXNastKlMlkrBRCyPfffx8UFBQREVFfX89MN/1CcfTo0eDg4NGjR8fGxl67do3excxmzXZvb++2bdsmTJgwZsyYmJgYpVJJla/ValNSUoRC4dSpU//+979b/C7DVQ5r3S+6EK70np6ed955JzAwMDAw8J133unp6eFpBLopPD09hUJhQkJCTU0Nc1doaGhYWBhP2DSu8+VpnzfeeMPPz8/Pz++VV15paGjgeb5Mt40/vDdyPY/8p2w0Gt96660vvviCmWI2P9U4hBBfX9+AgIC//OUvdP5du3YJBIK//e1vzEJYU/sydx05ciQjI8OaxrTPBx98sHLlSueVD84TERFx5swZV0cBMAzU1tbK5XIrM/P827X4T3kgB9pasn2RAGzatMmpnysc6MMPP3zllVcGuVKzVxb1uU4ikTz//PPW5Hd2PINTPt7xBmj16tV5eXmujsJZsGYbAACA05lds421UI2fn191dbXZ5XbMLmkTExNz6tQp08zTpk1LTk5+9dVXpVJpS0uLQqGgj2WWo9frvby8eMrhYbYcrmi5lgWyo16zmMsaNTY2Uj2XZFDaAVwLa7YNBHPNNh4OWXsMRoiampqdO3fu2bPH7hLi4uLGjRv3ySefWJl/1apVb7/9tvMGt2HNtuELa7YBWMnsmm32LSxt92cGF37YcOBC1OAGhvuabQNfEt6OK8LLy6usrCw+Pn4g9TownkGDd7yBwJptAAAA4HS2zgDGNZMYzwxgZmc2s2OmNZ4Z0qzHX+/AZ1obhHYAcG/UlH2sifsAuISEhIwdO3YgJdTW1m7dutX6/FKpFNNIAgA4HKvvjZhbmJnwLpxMbPkwTwi5c+fOzJkzJRLJsmXLmLcnmq1Xp9OtXLlSIpGEhoZWV1czM5jNT6Xs3r07KCjIy8uLWj2a8C5EDTAcsa5crle+wWDIzMycPHlySEhIeno6vTCwTUuzE0KCg4MFAoHBYEhISGDtNZufa4l6YuNS61zlc50XVzvwwDseDAQ62wAAAFxDJpMxHxYUFHR0dMhksqeffvqLL77Iz8+n0unfu1mfitauXavRaKKioqRS6dy5c+lb8Pbu3bt8+XKpVJqZmZmSkkIYv5WXlZUlJSVJJJLi4uKSkhL+cniYLYcOkrXBDMCa+Cl9fX1W3vCVn59fX18vkUhiY2OXLVtG1zII7QDg3uipMFwdCAwbubm5Azn8+vXrwcHB1uffsmXLQKoDAAArmS7MTHgXTia2LMBMCCktLT18+PCtW7dEIhFzrANXvVKp9N69excvXvzqq68IY0pks/mplIaGhqqqKupbAJXOsxA1gBvgeuVv3LgxMDCwurq6pqYmMDBw48aNVLpNS7MTQm7fvm388RyG/Pm5lqgnNi61zlU+13lxtQMPvOPBQGBmGLfV19fX398/atQoDw90qQIAuJjZaSQBYCAwjeRAWDmN5NAnl8ubm5tZiTKZrKmpySXxgDvBNJLDF6aRBLAScxrJwMDAhoYG5t6AgAC1Wk0/ZM1+xpzLvbW11dfX1+5J1err6wMDAwkhbW1tU6ZMYf1nZ9Urk8muX79O1avRaKgVZ3nys1K4tgGys7O//PLL8PBwh5c8duxYx44l+tvf/jZu3Lg//vGPhPfKNftq9/f3v379OjUbQXt7+1NPPUVPPsl/RZjdy3MIa5dCobh69arpqhk3btx46623Kioqenp6QkNDL168aOUVytpr5XlZf9XjHc953HsayYdcHQA4S3Nzs1arlclkY8aMcXUsAAAAAACOh041AAAAh6D71ez4QZaesW2A+vv7Ld4vzuy0cOAPx6YLUcMIJJfLp0+f7tgy6+rqnNrDYceVa002h18Rvb29ZtMTExOTk5NLSkropdbtjmfQepLwjgc80Nnmtjw8PDw8PDANKwAAAAAAAAAAOBC1cHJ2drZGo9mxYwdrL7V80eXLl60pqqioaMWKFUKhMDc3NzExkT9zUlJSYWFhTk6OTqcrLi62L3gKtZDzggULzpw5o1QqL1y4MJDSwA389Kc/fe2111wdhWUfffTRt99+a9+xKSkpRUVFaWlphJC9e/e+/PLL9C6nXhHUEvXbtm3TaDTffPPNkSNH/vCHP5AfL7X+2WefMQ+xKR6e83IIvOOBlTDBoNuSy+WPP/64j4+PqwMBAIDhRy6XC0zI5XJXxwUAAAAAAE7EWliamFuYmXAvnEyxcgFm6pDU1NSEhISJEydqtVrmwslm692+ffu9e/d8fX1nzZq1cOFCi3GariTNv5AzwDDFunK5Xvlbt27VaDTjx48fP358a2vr1q1b6UOsX5qdEFJeXs61urzZ/FxL1Nu61DpX+VznxfMOwAXveDAQQ2WyTgAAADeGNdsAHA5rtg2E26zZBuA8WLNt+MKabQBWYq7ZNuwYDIbjx49v3Ljx6tWrro4F3EF2dnZ3dzez82PIoka2lZaWujoQGDzu9I7n3mu2YWQbAAAAAAAAOEVfX5+rQwAAALfy7rvvCgQCkUh04MCBc+fOuTocAAAnwjve8ILONgAAAAAAcGesyW3sLsQhwdhX9RCJnz+SjRs30ttGo/Hu3btVVVXPPvssM8+FCxeWLl0aHx8vEAi8vLxUKhV/jQcPHhw1apTZzMzqAABg5MjNzTUajT09PSqVChPdA4B7wzve8ILONgAAAAAAIAqFwtUhWCAWi7l26XQ6ngOtnDCTp3zrC7EmHluZVm1H+Q6ZNZSnkBs3brS3t9MP//nPf37//fdPPvlkZWUlM9trr722e/dulUplNBr//Oc/W1y+ftWqVcePHzcajdQ6E8xd7e3ttbW1dp0HAAAAAIxQWKIenAedbQAAAGAth4yusL6uwakIACimS7asWbNm8uTJQqFwzpw558+fpxK7u7vffPNNuVyuUChKS0tDQkL40w0GQ2Zm5uTJk0NCQtLT0/V6PZXOWsqbtb179+6goCDmYCapVKrVak3XYNdoNOHh4UKhUC6Xr169mu6F6urqSk1NFYlE06ZNY/X3mMVVPvlhBXjThd8LCwvFYnFFRUVJSYlYLKZC5YqHMmPGjBkzZlgMhid+rvK52t/W+AnH825RUVFRTEwM/XDq1KmLFy82fSfv6emRSCTUdmRkpMXVTNva2mJjYwkh8+fPnzZtGnNXdHT03r17rQwPAAAAAIAQ0tTUZDTR1NTk6rjAHaCzDQAAwDUcMojEpsENdg8KoTlkYISVrK+LfzAKANhNqVRWV1d3dHRkZmYuWrSIStywYYNer6+srKytrRUKhW1tbfzpGzduDAwMrK6urqmpCQwMpKf+Y17jptsNDQ1VVVXMwUxUgfT3YTp/WlpaQUGBXq+/detWdHR0WloalZ6RkaFQKNra2k6fPn3s2DGLJ8tVPiEkLi6OlUI97Ovr279///z58ysrK/fv30+FyhUPfaCVb25c8XOVz9X+tsZPOJ53i06dOvXkk09azHb37l0rC2Q5e/bsiRMnmClTpkw5deqUfaUBAAAAAAA4mGlHLgAAADiWRqPx9vZmJbL+Cz948GDt2rUymczf33///v2TJk2isxFC2tvbly1bJhKJ3nnnHSq9ubk5LCyMECKTyVatWtXV1UUXtXr16pCQEG9v79mzZ587d45KpEcSsD4A8JRjFiHk9u3bzz333NixY1999VWtVsuM88SJE0ajkfo9NCgoiD4qPDw8PDzcyuaif05l1UsI2bVrV2BgoKen59GjR/nPC9xeVlZWZmamq6MYrqjhRNR2QEAA6wtCQECA0WisqalZsGCBVCoVCoVRUVF0fn9//9bWVtMyudLlcnl7ezu13dbW5u/vT+8iP+7csmmbJpVKmcH7+flR6RKJhI6npaXFmvcH/jymb0pmN7jisRVX/Fzlc7W/rfFzPe9c5dB8fHw6Ozutr5e/NJbTp083NjayEv/973+PGTPGmsPt88EHH6xcudJ55YPzREREnDlzxtVRAAwDtbW1crnc1VEADAmbNm3KyMhwdRRW+fDDD1955RVXRwFgp9WrV+fl5bk6CmfByDYAAIAhgWtQgtFoJIQkJCRERUWp1ep58+ZR6TyDJ8wOSrB1UAiP0tLSw4cP37p1SyQSpaenU4mXLl2aOXNmXFwcISQ2NjYsLIw5BIFVKT/TQRh0O1g/2AUArKRWq+nLh9pQq9WEkMTExFmzZl27dq2jo+Pzzz+n8/f29pothyudWDFQtb+/39aw6ekop0+fzvx609zczJPZjvJtZU08AwmGq3ye9rcJ1/Nukd3vwH19ffwZDhw4EBwc7O/v78BKAQAAAAAAHAudbW6rvb29sbHxwYMHrg4EAAB+JDAwkF47h9oIDAwkhBw8eDA3N9fPz2/06NEvvfQSNY6B9uWXX6ampvr4+ERHR1Mpx44de/755728vMRicUJCwqFDh6j0Gzdu/OpXvxo3bpxEIsnJydFqtfzxcJXDY/ny5UFBQVKpNDs7m84/c+ZMhUJx9OhRQsiRI0eeeOKJqVOn0odcuXLlypUrVjYRD6VS6ePjEx8fbzAYBl4aAPBQq9VhYWE+Pj5VVVW7du2i05csWVJQUEAI0Wg0KpVq6dKl/OkpKSlFRUVUz9DevXtffvlluihPT0+VStXY2Lhu3TprQqLyGwyGkydPzp49m0qMjY0tLi6ur69n9dglJye/9957BoOhoaEhLy/P7vJtxRUPxfo127ji5yqfq/1txfW8WxQcHNzQ0GAx2+jRoysqKqjtK1eu+Pj40Cdy8+ZNgUDAXPiNEHLo0KFnnnlm0qRJxGQtz/r6+okTJ1ofIQAAAAAAgPOgs81tPXjwQKvV4rdIAIChhmsQCf+gBJFIxErhGtxg5aAEmwaFcOnv7/fw+M9niW3btmVlZfX09GzevHnz5s3Wl+NAdg9GAQCZTMZ8uHfv3uXLl0ul0szMzJSUFPJDV0dBQUFHR4dMJnv66ae/+OKL/Px8Kj9X+tatWzUazfjx48ePH9/a2rp161a6irKysuTk5IULF65YsYIun+svlT8pKUkikRQXF5eUlFCJa9eu1Wg0UVFRUql07ty527dvp9Lz8/Pr6+slEklsbOyyZcuISVeNKbPlkx9ujGBtMAtklswVD6Wvr8/KwVhc8XOVz9X+tsbP9bybLYcpJibm+vXrzBSz+T/99NPnn39eIBD4+fktXrz42LFjnp6e1K6TJ08KBIIdO3YwC0lNTQ0NDTVb4/Xr1+fOnWtNYwIAAFjJ7H+cAaIXrCWEHDx4cNSoUQKBwMvLS6VSmVYtEAjGjh1bVVVFJV64cGHp0qXx8fGmhzCLBRgueK4vu68+aw60tWSHvw/ACCHAzBvuqrGxUavVymSyMWPGuDoWAICRrqWlJTg4mFokiSYQ/Oi/8BtvvCGRSLZt26bRaL755psjR4784Q9/MJuTUlhYKBaL582bFxAQwOzxkslkBw8e/NnPflZTU/PZZ58plUr6WC8vr7KysgULFpw5c0apVF64cIGnHC4CgWDTpk0rVqwQCoWbN2/u6+tjDn1YuXLl7du3g4ODi4qKmEdRIzkuX75sRWuZbx9WCnPb7HmB29u0aZNer1cqla4OZFjS6XRCoRBfBMCBampqdu7cuWfPHrtLiIuLGzdu3CeffGJl/lWrVr399tvOG9y2c+fOq1ev7tu3z0nlg/NERkZu2bKFngwAALjU1dVFRETcu3ePmahQKBobG51Uo06n8/b2dlLhjmL2y5fdbty48cEHH9D/H6VS6aeffhobG6tSqZKSkph3Cpqtd8qUKZcuXaKWqa6oqIiJiaFnLnH2/8GRJjs7u7u7m3Wb1ND00Ucfffvtt6WlpcxEp165g8buq8+xl61NxGJxZ2enS6oeptasWTN+/Hh6RRI3g5FtAAAArsEaRMI1KIE5LMCawRM8gxJsGhRiFlVUampqQkLCxIkTtVotK//69esvXLiQlZXFOtD6wRyEYzCErYNdAABgMIWEhIwdO3YgJdTW1jIHPloklUrxCyMAgMOx+t6oD+S7d+8OCgpijaxas2bN5MmThULhnDlzzp8/T2embuarqKgoKSkRi8XUIRqNJjw8XCgUyuXy1atX63Q6Zi1WTrPM+k7EemgaD52no6Nj+fLlYrGYXqC6u7v7zTfflMvlCoWitLQ0JCSEWdG5c+esOV+e8mlFRUXMGZLb2tpiY2MJIfPnz582bZrFU+7p6aF62gghkZGRzNs3o6Oj9+7da7EEGCFYV65Op1u5cqVEIgkNDa2urmZ9xTZ9xRoMhszMzMmTJ4eEhKSnp9PdwKZXHHP77NmzMpksLCzs9u3bFiMsLy83HYLW1dWVmpoqEommTZtWWVnJOsT6CdgJIXfu3Jk5c6ZEIlm2bBnzSjFbL1f7cOXneieUSqVardb05xoYsdDZ5raoKxw3LAMADFlNTU3Mh0Kh8MMPP2xubm5ubi4tLVUoFFS68cfo/KNGjVq/fn1dXV1HR8fXX3+dmZlJpcfHx//rX//S6XTl5eVTpkxhHhUfH6/X67Va7ZEjR6j1b3jKMYsqbcKECZcvX25vby8qKmLdmnrixIk33nhj/PjxrAO///5769dsM3vKzIesXWbPCwAABllubu5ADr9+/XpwcLD1+bds2TKQ6gAAwBrUR+6GhoaqqirqFjd6l1KprK6u7ujoyMzMXLRoEZ25r69v//798+fPr6ys3L9/P3VIWlpaQUGBXq+/detWdHQ0q1OK9U2HJ5iZM2fSa39WVFRERETQB5rGQ4eUkJAQFRWlVqvnzZtHpW/YsEGv11dWVtbW1gqFwra2NmZFJ0+erK6utni+POXTTp069eSTT5qey9mzZ0+cOMFMGT16NPV7PfOn/Lt373K1xpQpU06dOsXdWjCiZWRkSKXSe/fuXbx48auvviI/vFa5XrEbN24MDAysrq6uqakJDAykJyllXpim262trXfv3s3IyPjtb39rMaS4uDjTyzwjI0OhULS1tZ0+ffrYsWOsvVa+M1BKS0sPHz5869YtkUjEHDXFVa/Z9uHKz/VOSL11mP5cAyMWppF0W01NTffv3/f19aVvgQEAAFcxO42k+6Hv5MKnCxgEmEZyIEbsNJJyudx0ZUqZTMa6+wGAYBrJ4QzTSAJYiTmNZGBgYENDA3NvQEAAtba02bncb9y48dZbb1VUVPT09ISGhl68eJFKpzOwNsaNG8fs0PLz87NprWjaqVOn8vPzT58+TQiZM2dOenr6nDlzeOKhAujs7GStga1QKK5evSqVSk2rEAgEBoPhoYcesuZ8ucqnjRkzRq1Ws/aeOXPmJz/5ib+/v9lD7ty588QTT1BDi1iT4zEf3r9//9FHH+3o6LDUZmAV500j+eSTTzp2ZfH79++/+OKLZWVlhPvKlclk169fp17hGo1GJpPxv2L9/f2vX79OzVLQ3t7+1FNP0ZNScq3mIBAI2tvbx44dq9VqAwIC7t+/b03wrJe0VCq9efMmFWdra6uvr6/d00jW19cHBgYSQtra2qZMmcJ6h2HVy9M+ZvMT3nYYgd+qBsK9p5F8yNUBAAAAgJvAR0wAGOLQqQYAAGAW1a9GrP7hODExMTk5uaSkRCqVtrS00NNycJk+fbpDhmHFxMRs3rz54sWLhJDu7m6qp81iPKY9Yb29vTy1UD1tTLaWTzNtzAMHDkRERHD1tBFCHn30UYPBwLW3r69v1KhRXIXDEFRXV3fp0qUxY8Y4qsBPP/305s2b1DbXlcuc0tD0dWL2FWvx5dTf38+1y/SSsYOjuiT7+/strkbP3z520+v1Xl5ejioNhiNMI+m2MI0kAADYTS6XC0zI5XJXxwUAAAAAAK6nVqvDwsJ8fHyqqqp27dplMX9sbGxxcXF9fb3Z3+ttWpkpJycnKysrKysrJyfH7niWLFlSUFBACNFoNCqVaunSpfz5bS2fFhwczBx4dOjQoWeeeYaa+p75c39UVFRWVtatW7cIISqVytPTk0ofPXo0PW3mlStXfHx86Aasr6/H2qXDxYQJEyY6jq+vr8XlwZKSkgoLC/v7+7VabXFxscUIU1JSioqKqLkQ9+7d+/LLL9O7PD09VSpVY2PjunXrWEd98803er3+5MmTdLe3rZKTk9977z2DwdDQ0JCXl8faa9M7Q1FRUX19fXt7e25ubmJiIn9mW9uHB9U+BoPh5MmTs2fPHkhR4AbQ2ea2sCojAADYrampyWgCI0IAAAAAANybTCZjPqR+XDL9u3fv3uXLl0ul0szMzJSUFCqdmYH8+IeptWvXajSaqKgoqVQ6d+5c1mR9fX191t8sHh0d3d/fbzQaX3zxRTrRbDzMv3R4lIKCgo6ODplM9vTTT3/xxRf5+fl2nC9P+bSYmJjr16/TD1NTU0NDQ00zq1Sq27dvT58+XSAQJCUlUTMEEkI+/fTT559/XiAQ+Pn5LV68+NixY3Q/3PXr1+fOnWtlo4HbY12527dvv3fvnq+v76xZsxYuXEinc71it27dqtFoxo8fP378+NbW1q1bt9K7ysrKkpOTFy5cuGLFCvLj6zogIODxxx8vLCx8//33LUbIfIugC8nPz6+vr5dIJLGxscuWLWOVb+U7A3VIampqQkLCxIkTtVot8x3GbL1c7cOVn+udgWqfpKQkiURSXFxcUlJiMVpwb5hU1G1pNJqOjg6pVDpu3DhXxwIAMNKNkDXbAAYT1mwbiBG7ZhuA9bBm2/CFNdsArMRcsw2cpKamZufOnXv27HF4yatWrXr77bcxuM1RnLdm2yOPPNLY2CiRSBxV4EcfffTtt9+WlpZak9lgMBw/fnzjxo1Xr151VAAU91irzHntA1zce802jGxzWxjZBgAAAADgwk/FXDe5AwAAwAgREhIyduxYZ5QslUrR0wY83n33XYFAIBKJDhw4cO7cOccWzhrdNRw5tX1gxEJnm5tzg1sMAAAAAGAQKBSKgRei0+mszywWi51dDrHx87BN9VpkZdWOagcAAAAYgnJzc51R7JYtW5xRLLiN3Nxco9HY09OjUqkcvv46vdiEY4sdTE5tHxix0NnmtqibC4b1ux4AAAAADBrWLFLd3d1vvvmmXC5XKBSlpaUhISFUOjVaq6OjY/ny5WKxOC0tjUrXaDTh4eFCoVAul69evZrZS7RmzZrJkycLhcI5c+acP3+eSpRKpVqt1nTFCJ5yzOIqhxBSXl7OSqQeFhYWisXiioqKkpISsVisUqks1mv98uxdXV2pqakikWjatGmVlZXMXU5tBwAAAAAAF5LL5QIT6MeCEQWdbQAAAEPasJuFDDO2AbiHDRs26PX6ysrK2tpaoVDY1tZGpVP3ciUkJERFRanV6nnz5lHpaWlpBQUFer3+1q1b0dHRdCccIUSpVFZXV3d0dGRmZi5atIhKpAo0vSuWpxyzuMohhMTFxbFSqId9fX379++fP39+ZWXl/v37k5KSLNZr/a27GRkZCoWira3t9OnTx44dY+5yajsAAAAAALhQU1OT0URTU5Or4wIYPO6wkiGY1dbW1traOmbMGJlM5upYAABGupaWluDg4K6uLmaiQqFobGy05vBBWHlYp9N5e3tbmVksFnd2dg5+vdawpq144nd4POA8mzZt0uv1SqXS1YEMSzqdTigUUhdLYGBgQ0MDc29AQIBarVYoFFevXpVKpaaHCwSCzs5OkUjETBw3bhzdIUcI8fPza25uJoTcuHHjrbfeqqio6OnpCQ0NvXjxIn2Rmr1gucrhwX/hs/bSD1kbdtRrllQqvXnzJtVura2tvr6+VC2D0A7gWDt37rx69eq+fftcHQjYLDIycsuWLdHR0a4OBGCoq6uri4iIYA1tBxiZsrOzu7u7t2/f7vCSH3nkkcbGRolE4qgC09PTS0tLH3/8cUcVCDCY6urqFi9e/Pvf/97VgTjFQ64OAAAAYIQynbEtIyPjs88+8/DwUCqV27Ztq6mpofeeO3cuJSWlubm5rKwsPj6eSlyzZs2pU6fq6+sjIyM3bNjwwgsvkB8Glu3atSsvL4+ZX6fTvfnmm4cPH37ssccOHjw4ZcoUQojRaNRoNHFxcd99951MJnvppZd27NjB39tEz3hGPWT+QFxeXj5//nxmIpXt/fffz8rK+vrrr69du7Zu3boDBw7Ex8fz10tN13b58mWLzdjV1bVq1arDhw9PmjTpk08+Ye4y2z5c8dvaDgBuQ61WUxusLp/e3l6eo1g9bYSQ6dOnnzp1yjRnYmJicnJySUmJVCptaWnhWhlOr9d7eXnxlGMluhxbDbBermDo7UFuBwAAAABwV76+vj//+c9dHQWAPbq7u10dghOhs81tYc02AIDhhZ6xTSQSHT9+nDmggRBy8uTJ6urqU6dOJSUl0b/eKpXK3bt3GwyGCxcuLFq0iBqtZTQaBQJBQ0NDVVXV2bNn6fwZGRlSqfTevXu9vb3FxcXkh/8R1ExlkZGRPT09p0+fTktL27NnD0+cbW1tXINIqBnbmBM5Ug/pGdtSU1OpGdv0ej1/vdb//6JnbLt//35RURFzl9n24Yrf1nYAcHtLliwpKCjYtm2bRqP55ptvjhw58oc//IEnf2xsbHFx8bx58wICAjw8/jNZvVqtDgsL8/Hxqaqq+uyzz5iHeHp6qlSqBQsWnDlzRqlUXrhwgaccHmbLsRV/vdbfAZCcnPzee+9lZ2drNJodO3bQ6YPQDgAAAADg9h577LEZM2bk5eW5OhAAe+h0uvHjx7s6CqcxnUoV3EN7e3tNTU1jY6OrAwEAAKNGo/H29qa2AwICWP+LAwICjEajv79/a2ur2cMJIQaDgd6mNmpqahYsWCCVSoVCYVRUFPnxkj+m235+fnT51Fxk1DZrjjg/Pz+Lp8P/+YG1R2xYIgAAIABJREFUlzDWOmJu2FGvWRKJhD6vlpYWW9uH5qh4YNBkZWVlZma6OorhiprVlpUok8mYD7Va7RtvvOHn5+fn5/fKK680NDRQ6VzfJnp7e7dt2zZhwoQxY8bExMQolUoq/ejRo8HBwaNHj46Njb127RrzqKNHj3p6egqFwoSEhJqaGv5yeJgtx2yoptvGH94T+OsNDQ0NCwuzGAnVbikpKUKhcOrUqX//+9/pWgahHcCxPvjgg5UrV7o6CrBHRETEmTNnXB0FwDBQW1srl8tdHQXAkLBp06aMjAxnlPzwww+3tbU5sMAPP/zwlVdecWCBAINp9erVeXl5ro7CWbBmm9vq6OjQaDRisdjf39/VsQAAjHRm12xjja/y8/Orrq7mWh7JaLK0z7Rp05KTk1999VV6RjLTPMxtuVx+7do1qvzm5mbqezUhJCYmxtaZypjlm87YZuXySHbUaxZzeaTGxkaq55JY3T50/I6KBwYN1mwbCOaabQBgFtZsG76wZhuAlWxas20QlpF2CdZXJzLC5ohyxilv3Lhx69at1PbBgweXLl3a39/v6enJXBCBrpoQMmbMmIqKiqeeeooQcuHChX379nV1df3pT39iHcIs1hmG0ZptH330UVlZ2apVqxxVIMBg+p//+Z8XXnghPT3d1YE4BaaRdFsj8CMCAMCwZuuMbTwzkpmVlJRUWFiYk5Oj0+moaSQpmLENM7YBAAAAAFAUCkVjY6NpuunvS2KxmJqn3ZROp3Pe+sdc9fLEw8P444HvzCnxBxgPcXI7OIR9p8zjxo0b7e3t9MNVq1YdP348NjZWpVIxF0Sga2cd/tprr126dInql6qoqIiJidFqtdSu9vb22traiRMnOjDaYerxxx+XyWSHDh1ydSAA9hCLxVOmTHF1FE4zSCPoYNB1dHTU1NTQE/4AAIALMaeRpNk6Yxtrm2tGMq78XV1dK1askEgkP/3pT//xj3/QnwEwY5vd7QCuhWkkB8LsNJIAwIRpJIcvTCMJYCWz00iafkI4ceKE6U+IrGE6dHpzc3NYWBghRCaTrVq1qqury/jDF4H3339fJBL99a9/LS4uFolER48e5Q9v9erVISEh3t7es2fPPnfuHH+9XOnUw/b29mXLlolEonfeeYf/vAght2/ffu6558aOHfvqq69qtVpmOabbNrUDLTw8PDw8nP/0jT/+MmX60Gz7cJ3vgwcP1q5dK5PJ/P399+/fP2nSJGYtZ8+eDQwM9PT0ZD4pNpVPS0tL+9Of/mR6Lj09PTNmzGCdnWm2CRMmcOU5cuRIeno6V1sN3DCaRhIAhix8x3ZbfX19er2+t7fX1YEAAID5zjZX0ev1R48efeqpp1wdCMCAoLNtIIZdZ5tMJiMmWLcsADgWOtuGL3S2AVjJys42rnSzOV955ZU///nPer2+s7Pz6NGjv/nNb+jM+fn5hw4dGjt27Lp16w4dOuTp6ckfXmdnp9Fo1Ov1Z86cEYlEdkRIp7/wwgv79+//97//bfrmYNrZlpOTc/fu3dbW1jVr1tDxs3JybdO42oESFhZm5Z2FM2fOrKiooLYrKioiIiLoXTztY3q+v/3tb19//fXm5madTvf555+PGzeOmf+dd97RarXULYn2lU/76U9/Wl1dbXoi5eXlGo2GmTJ69GjqEx2zk2/UqFHMPMy2vXr16rPPPsvZUgOGzjYAGDj3nHAZAABgSDG7Ztvge/fdd7dt2+bl5RUXF/f73/9eLpe7Nh6AgcCabQOBNdsALMKabcMX1mwDsBJzzbbAwMCGhgbm3oCAALVaTT80XbPN7Cpu48aNa2trox/6+fk1NzcT7oWcuWK7cePGW2+9VVFR0dPTExoaevHiRToz14E86Z2dnSKRyGxFpgtO19fXBwYGEkLa2tqmTJlCxU84Fsa2tR1sderUqfz8/NOnTxNC5syZk56ePmfOHGKpfUzPV6FQXL16lWuBcIPB8NBDDzHPxdbyaWPGjFGr1ay9Z86c+clPfuLv72/2kDt37jzxxBPUDJNc638TQu7fv//oo492dHRYajM7DaM12wBgyMKSJAAAACNFbm6u0Wjs6elRqVToaQMAAAAAAIparabuyic/jCVi9rRZRK/FNX36dOY9/vb1MBFCEhMTZ82ade3atY6Ojs8//9xivfzpXD1D/Pr7+82u5dzf328xHke1Q0xMzIMHDy5evHjx4sXu7m6qp41Yah/T8+3t7eWpheppY7K1fJppv+OBAweCg4O5etoIIY8++qjBYODa29fXx1M4AMCQgs42AAAAYJPL5QIT6J8DAAAAAACKp6enSqUyGAwnT56cPXs2lRgbG1tcXFxfX8/TI2UNtVodFhbm4+NTVVW1a9cui/XypNuqqKiovr6+vb09Nzc3MTGRVX5jY+O6dessxsPfDjNmzJgxY4aV8eTk5GRlZWVlZeXk5NCJPO1j1pIlSwoKCgghGo1GpVItXbqUP7+t5dOCg4OZQyQPHTr0zDPPTJo0iRAiEAjo9KioqKysrFu3bhFCVCqVp6cnlT569OiKigpq+8qVKz4+PnQD1tfXT5w40fpIAAAGHzrbAAAAgK2pqcl07ummpiZXxwUAAAAAAE5kuk4qdeMdc4NSVlaWlJQkkUiKi4tLSkqoxLVr12o0mqioKKlUOnfuXGpSPvpwukCLYezdu3f58uVSqTQzMzMlJYV5lNl6udKZkbPqNT0v6m9qampCQsLEiRO1Wi1zUsGysrLk5OSFCxeuWLHCYjxm24HW19dn/SCt6Ojo/v5+o9H44osvWmwfrvMtKCjo6OiQyWRPP/30F198kZ+fz2of1l9by6fFxMRcv36dfpiamhoaGmqaWaVS3b59e/r06QKBICkpqaysjEr/9NNPn3/+eYFA4Ofnt3jx4mPHjtH9cNevX587d66VjQYA4BJYsw0AAMDphsiabQDuBGu2DQTWbAOwCGu2DV9Ysw3ASsw12wAcoqamZufOnXv27HF4yatWrXr77bedN7gNa7YBwMBhZBsAAAAAAAxLXHdVO6muwakIAAAAYJgKCQkZO3asM0qWSqWYRhIAhjh0tgEAAAAAAFEoFAMvRKfTWZ9ZLBYPsJzBHJxnfV085wUAAADg3nJzc51R7JYtW5xRLACAA6GzDQAAAAAACGsWqe7u7jfffFMulysUitLS0pCQECqdGkzW0dGxfPlysViclpZGpWs0mvDwcKFQKJfLV69ezewtW7NmzeTJk4VC4Zw5c86fP08lSqVSrVZruuYHTzlc7ty5M3PmTIlEsmzZMnrCXqrY8vJyQkh5eblAIBg/fjx9yIwZM2bMmGFly1CHm13oZffu3UFBQV5eXiqViv+8AAAAgEUulwtMyOVyV8cFAABgD3S2ua3+/v62trbW1lZXBwIAAAMypH6uxYxtACPHhg0b9Hp9ZWVlbW2tUChsa2uj0qkBXgkJCVFRUWq1et68eVR6WlpaQUGBXq+/detWdHQ03QlHCFEqldXV1R0dHZmZmYsWLaISqQKNP6Az85TDpbS09PDhw7du3RKJROnp6VTipUuXZs6cGRcXRwiJjY0NCws7ceIEfQirUn5xcXGmmamUhoaGqqqqsrKypKQk/vMCAAAAlqamJqOJpqYmV8cFAABgj4dcHQA4S39/f2trq0AgGDdunKtjAQAAMxQKRWNjo8VsRqNxELqddDqdt7f3EAmGrsvKnGKxuLOz06nBALixwMDAhoYGapu6wAMCAtRq9cGDB69evSqVSgkhL7300ksvvcQ86ssvvxSJRISQ6OhoKuXYsWMff/wxncHPz2/Pnj2EkBs3brz11lsVFRU9PT2hoaFarZY/Hq5yeCxfvjwwMJAQkp2dPWXKFCr/zJkzFQrF0aNHExISjhw58sQTT0ydOpU+5MqVK/xlWkmpVBJC4uPjDQaDQwoEAAAAAACA4Qgj29yWh4fHmDFjfHx8XB0IAACYZ+WMbZRz586xZiojHDOzcc1sptPpVq5cKZFIQkNDq6ur6TFqmLENYIRTq9X0GCxqQ61WE0J6e3t5jqJ62pimT5/OvC29ubmZSk9MTJw1a9a1a9c6Ojo+//xzrgL1ej1/Odbo7+/38PjPF5xt27ZlZWX19PRs3rx58+bN1pfjQPR5AQAAAAAAgBtDZ5vb8vDwkMlkMpnM1YEAAIBVuGZso5w8ebK6upo5UxnhmJmNa2azjIwMqVR67969ixcvfvXVV3ROzNgGAGYtWbKkoKCAEKLRaFQq1dKlS/nzx8bGFhcX19fX9/f3M9PVanVYWJiPj09VVdWuXbuYuzw9PVUqlcFgOHny5OzZs/nL4VFUVFRfX9/e3p6bm5uYmEinT5kyJSIiYuHChc8999ykSZOYh9h0B4CtzJ4XAAAAAAAAuDF0tgEAAAyqwMBAegwWtUHNfnbw4MHc3Fw/P7/Ro0e/9NJLLS0tzKOUSqVQKGTOVHbjxo1f/epX48aNk0gkOTk5rJnZlEqlj48PM39ZWVlGRsbDDz8sFAp//etf0zmPHTv2/PPPe3l5icXihISEQ4cOWTyF5cuXBwUFSaXS7OxsOj89YxshxOyMbQ6ZtM30vADAUVg3aRUUFHR0dMhksqeffvqLL77Iz8+n0plvX8zhpGvXrtVoNFFRUVKpdO7cudu3b6fS9+7du3z5cqlUmpmZmZKSQhgrMlId5xKJpLi4uKSkhL8cs6iiUlNTExISJk6cqNVqWfnXr19/4cKFrKws1oF9fX3Wd8+z3rRZ7cD6y3VeAAAA4EA8c1o4ZMYLzJkBAAC2wpptAAAAg4qan40QIhAImD/18s/Y9tBD7H/ZiYmJycnJJSUlUqm0paVFoVDw18v8usisd/r06adOnbIyeBbTGduWLFkyf/78zZs3HzlyxL4yB0iv13t5ebmkaoDhrqmpiflQKBR++OGHH374ISsbVx/VqFGj1q9fv379elZ6fHx8fHy82cPj4+NNZ1nkKscsurTLly+bzXDixIk33niDOast5fvvv7emfFYtXImsDGbPCwAAYFgwu7C0lQs825ffvgWYeW6accg601hAGgAAbIWRbQAAAEOCrTO28czMZlZSUlJhYWF/f79Wqy0uLqbTMWMbALgrgUCwdu3aDz74wNWBAAAADBushaXNLvDMGuDOfMi1ILQDF2A2u8BzV1dXamqqSCSaNm1aZWUl6xAsIA0AAIMAnW0AAACuYeuMbay/XDOzcf3dvn37vXv3fH19Z82atXDhQrpezNgGAO4KqzkCAAAMkNkFno1G48yZMysqKqg8FRUVERER/AtCO3ABZrMLPGdkZCgUira2ttOnTx87doy1FwtIAwDAIBDgPwEAAICztbS0BAcHd3V1uToQQggxGAzHjx/fuHHj1atXHV747t27a2trCwsLHV4yAMumTZv0er1SqXR1IMOSTqcTCoXD6IuAXC5vbm5mJcpkMtbUlwAOtHPnzqtXr+7bt8/VgYDNIiMjt2zZEh0d7epAAIa6urq6iIgIaihbYGBgQ0MDc29AQIBarR43bhzVn0Tx8/Oj/iOfOnUqPz//9OnThJA5c+akp6fPmTOHEMKVn/x4Fn2ubeuxjpJKpTdv3pRKpYSQ1tZWX1/fAX7OMY3KsfHDUJOdnd3d3c1/76l9HnnkkcbGRolE4vCSAWCowcg2AACAkeLdd98VCAQikejAgQPnzp1zePmYsQ0AnKSpqcloAj1tAAAAjqJWq+mxWdQGtdT09OnTmf986Z6zmJiYBw8eXLx48eLFi93d3VRPG09+Kzlk0VMXrpyKRVsBAEYydLYBAACMFLm5uUajsaenR6VSyeVyh5eP6VMAAAAAANwJzwLPOTk5WVlZWVlZOTk51uTn4pAFmJOTk9977z2DwdDQ0JCXl8faiwWkAQBgEKCzzZ319/f39/fjR08AALCVXC4XmHBG/xwAAAAAAAwdrIWleRZ4jo6Opn50evHFFy3md+ACzGYXeM7Pz6+vr5dIJLGxscuWLWOWT7CANAAADIqHXB0AONG9e/e6urrkcrmPj4+rYwEAgOEEk7MBAAAAAIxArC8Co0aNWr9+/fr1681m/stf/sJK4crP7Oti9XvFx8fbNPui2W4zoVD48ccff/zxx2bzfP/99wMs34HxAwCAu0Jnmzuj7rLByDYAAJdra2vT6XTMmysBYOAiIiJcHQIAAAAAAAAAADrb3Bo62wAAhgiJRDJ69GhqjXEAcAilUokPOS4x7D5hCgQCV0U77NoKAAAAAAAA7IPONnfm4eFBCLF+TVoAAHASarp/iUTi6kAA3Mfo0aMxY49jKRSKxsZGi9mMRuMgjNPV6XTe3t5WZhaLxZ2dnVx7berrsqlei6xsK574HRsPAADAsCCXy5ubm1mJMpkMc90DAMBQ5uHqAMCJcC8tAAAAAFjp3r17zIfd3d1vvvmmXC5XKBSlpaUhISHMvefOnQsKCvLy8lKpVHTimjVrJk+eLBQK58yZc/78eSqRuttg9+7drPw6nW7lypUSiSQ0NLS6uprKRgjRaDTh4eFCoVAul69evVqn0/GHLZVKtVqt4AfMXeXl5axE6mFhYaFYLK6oqCgpKRGLxVRI/PXOmDFjxv9n797Dmrjy/4GfUUjBBDSRiyGCWxW8VNtVLhW/8lSL3NUtasV9HqV8ZWvXr5e2WJRay2qpohKrlrbPQ4FF3XYVb9nWCyte2BU3dqXtt+0CElFalYRbCUEDQkLI74/5db7ThIQQAwHyfv3BM3Nm5sznHFozzCfnnJAQS7qxra0tKSmJx+PNmjWrvLycfajH/jEVf1/7AQAAYNhoaGjQG0GmDQAABjmMbBvOkGwDABg8Hj9+PGnSJHtHAb1oa2trb2/39PS0dyDQu5aWltdee83eUQxn27Zt02g05eXlPB7v3LlzSqWSfbSoqEgmkxUXFyckJDBDDDMzM7Ozs7Va7bVr15YsWUKP1qJHdykUisrKyitXrjDnb926VSAQ1NfXd3V15eXlkV+eWlNTU8Vi8dy5czs7Oy9dupSamvrxxx+biVOpVJqaKDI2NtZgbBm9q9PpCgoK4uLikpKSCgoK6JDM39fyJ+qtW7cKhUKlUvnw4cPc3Fz2oR77x1T8fe0HAAAAAAAAsCO7LWAAA0CpVDY3N48ePdrLy8vesQAAOLSurq7vv//e3lFA77788svr16/v27fP3oGARcaNGycSiewdxZDU3t7O5XLpPwREIpFCoWAf9fHxkcvlQqGwoqJCIBAYX05RlFardXJyIqwV0aqrq1NSUqRSaWdn5+zZs0tLS5k/NNjJJGbby8urqqqKrr+pqcnLy4suHzt2LDux5+npaTyRlHE8Zv6oMTjK7BpsWHHfHgkEgjt37tDtam5u9vDw6FP/MGwVD1jt0KFDFRUVn376qb0D6UFGRkZ6erq9o4DhYP/+/SkpKfaOAuzmxx9/DA0NNRjaDuCYduzY0dHRsWfPHpvX7OLiUldXh0UlABwBRrYNZxjZBgAwSDg5OQUGBto7CujdDz/8IJPJ8MsChyKXy+kNg5RPV1eXmavoTBvbihUrVq5cmZ+fLxAIfv75Z6FQaP6+BgPOmO3AwMDi4mILgzem0Wg4HI4VFz7hfU0Fw2xb2D9M/P0RDwwn69evz8jIsHcUg5Rare7q6nJ1dX3qqafsHcugtnnzZnuHAAAAADB8INk2nCHZBgAAAADWWb58uVgs3r17d1NT0/Xr10+fPv3ZZ5+ZOV8ulwcFBbm7u1dWVh4/frzX+hMSEg4cOLBz58729nZ6GklaTExMXl5edHS0j4/PiBEWrTDt7OwskUgWLVp0+fLlzMzMa9euWXKVAfP3pRdsu3nzZq/1rFy5cv/+/Tt27GhqamIPkzXTPz3Gb0U/gENxcXHBd+RNQc9YCMlIAAAAABvCn23DGf1neXd3t70DAQAAAIDBzmDicbFYrFKpvLy8nnnmmS+++CIrK4sup7/OZfwzJycnOTlZIBCkpaUlJiaaOZP+uWfPnvr6eg8Pj3nz5i1evJi576ZNm5qamsLCwgQCQVRUlCWT+RQWFiYkJPD5/Ly8vPz8fKacoijmjsYBkF+PrjN/X51OZ+E32LKysmpra/l8fkxMzJo1a3rtH1PxW9EPAAAAgwTzydvjISuu6r96+pWpSKzrHwAAGOSwZttwplar6+rqXF1dx48fb+9YAAAAhoCCgoKLFy9aMigHYEhjr9lmd1qt9ty5c9u3b6+oqLB3LAD/Z5Cv2dba2ioWi+0dCAxt69at8/f3x5ptjqzHNduEQmFdXd2TV25+RVXbXtV/9Tw5U5E8eYRubm6PHj16khqADWu2AcCTw8i24Qwj2wAAAABg0HrnnXcoiuLxeEePHr169aq9wwGAIQbjPwD6Azv3Rv2ix92NGzdOmTKFy+VGRESUlJT0WvOFCxeMR3S1tbUlJSXxeLxZs2aVl5dbEqEV9YSEhNAzQvdKIpFwOByKotzd3efNmxcQEEB+afiBAwfc3NykUml+fr6bm5tEIqEv6Ws/9KlddEl2dvb48eM5HA5zU4FAoFarDX4jAABgX0i2DWdItgEAAADAoLVr1y69Xt/Z2SmRSLy9ve0dDsAwNBRfwg7FmAGGK71eP2fOHKlUSu9KpdLQ0FBmPFZmZqZMJlOpVGlpaUuWLOm1ttjYWOOxXFu3bhUKhUql8tKlS2fPnrUkKivq0ev1Fg4jS0xMXLRokVarra+vf+utt1QqFX05IUSn0xUUFMTFxZWXlxcUFCQkJNCX9LUf+tQuukShUFRWVtLzTtPlSqWSadcgGcMHAABItg1nSLYBAAAAwDDg7e1NGUF+DqBXQ/ENrOUxW9c6Hx8fK64aAIM2MHAQIpHIYK1TkUhECNm5c2d6ejp9Tnp6+s6dO+nt6urq3//+92PHjuXz+Tt37lSr1dbd969//WtqaiqHw/Hw8Fi7dq3V8Zuvp6ysrKyszMJ6zp075+zsPGHChG3btp0/f5459NZbby1fvlylUh04cGD58uVarZbYrh/My8zMdHd3j4+Pp28KAACDE5JtwxmSbQAAAAAwDDQ0NOiNNDQ02DsuAOhFZ2envUMwZJPFqPpDvwY2CH8RMNjI5XJmjBS9IZfLCSGRkZGPHz8uLS0tLS3t6OiIiIigz1+xYsW8efNu3bqlUqlOnDhhkxg0Go3d61m8eLFGo1Gr1d9+++3q1asjIyPNn98f/WAFW3UdAAA8CSTbhjM62YYR5QAAAAAAAMOVTCZbtmwZn893dXUNCwu7cuUKvcgQ4969ey+88IKTkxN7vR/avn37goOD3d3dfX1933zzzebmZuYQPbRFrVa/9NJLHA7H+NozZ874+/vzeLxVq1a1t7cbTP9YWFgoEolcXFx4PF5UVNQ333zTp0aZiZkQUl1d3eNsk8xiS6NHj166dGlJScmMGTOYo5MnT2aP2jGu4datWy+99JJIJBKJREuXLpXJZOyjzPnFxcXPPfdcQEAAPeSlx9roXX9/f0saayawXitnfk3Lli3jcrnTpk07deoUu/In/EUAkF8Gt7GHtRFC5HJ5UFCQu7t7ZWXlhx9+aHXlK1eu3L9/v1arVSgUe/fu7ad6LF+zzdPT8+bNmyNGjPD19Z06dWpbW5v5823VD1ZwdnaWSCRarbaoqGjhwoUDeWsAAOgRkm3DGZ1sIxjcBgAAAAAAMBzdunUrOjo6Ojq6oqLi4cOHx44dq66uptfyYbz22msffPCBVqtlr/dDe+6558rKyh4+fPj999/zeLz4+HjmEP2VzdTU1M2bN3d2dhpc+9VXX7377rsnT55sbm7esGHDjh07CGtex5KSkqNHj547d669vb2+vn7btm3r16//+uuvLW+XmZgJIf7+/j1+ozQhIaGwsFCv17e0tOTk5Mjl8sbGRubonTt32KN2DL6WeuvWrVdeeeXAgQNyuVwul3/wwQdJSUnsfBt98qFDh27evFlUVCSTyQ4fPkyXf/nlly+99BK7tvb29okTJ964ccOSxpoJrNfK6XKxWPzqq682NzdfvHgxOzv7ypUr9JlP/osAB+Tl5WVQEh4e3t3drdfrX3zxRaYwJycnOTlZIBCkpaUlJiYSQgySxMRoCcYey7Oysmpra/l8fkxMzJo1a9j1mGJFPTqdzsKvoT/99NPfffddQEAARVH0PylMVewG2rwfTJWzb20QBv3PI5/Pz8vLy8/Pt6R1AADQryiMeRre7t69293dPWHCBA6HY+9YAAAABruCgoKLFy8eP37c3oEA9K/29nYul4s/BADMOHToUEVFxaeffmrvQHqQkZHR2toqFosJIb/73e+WLVtGv+HtEUVR33333XPPPcfsmvp/X6fTOTs7s7+pSVHUiRMnXn75ZeNro6Oj33zzzaioKHr3zJkzy5YtY46+8MILR44c+c1vfsNU9Z///CclJeXSpUuWNNDCmI3L3d3dT5w4MXfuXHd3dzOV91jbkiVL1q1bFxMTw5QUFRXl5OT87W9/Y19bXFzMTKOn0+lGjhxJb//Xf/3XgQMHmKEzBw8elMvlWVlZlrTXfGC9Vk5R1N/+9rff/e539G5ZWdnbb799+fJl0tsvYt26df7+/ikpKZYHCcPMjz/+GBoaWl9fb+9AAOxvx44dHR0de/bssXnNLi4udXV1fD7f5jUDwGDjZO8AoH+NGDGiu7sbI9sAAAAAwCbo71MPkkTdQAZj5j04gB2VlJTk5eWZP4fJWhno7Ozcv3//0aNH79+/P2rUqN/+9rfG/5EzmTYDX3/99fPPP8/svvDCC+yjN2/efPrppw0uGTVqlPk4LYnZvK+++mrjxo3Xr18fN27cjBkzXF1ds7OzhUKhJdeWlJTQI9UYISEhxoPqmEwbIYTJtBFCdu3atW3bNjrF1dnZ+dFHH/3rX/+yogk96rXysLAwZvvZZ5+9efMmvf3kvwgAAAAAsBCmkRzm6Kd/JNsAAAAAwDwL30cPTMKpvb3vHBJIAAAgAElEQVTdktMGMvtl+b3c3Nz6NRIANp1O1+uUa6a88cYbHR0d169ff/jw4YMHDz766CNbReXq6vrjjz/qf63XpY+e3PTp069cudLZ2Xnv3r3z58+fOnXqD3/4g+WXG/9vbvn/+PPnzx85ciQ9f2N+fn5cXJy3t7flt7Zt5czENvb6RQAAAAA4ICTbhjlXV1cej8cs3gYAAAAA0CODWaQ6Ojpef/11b29voVB4+PDhgIAA9tGrV6+OHz+ew+FIJBKmcOPGjVOmTOFyuRERESUlJXQhve5Idna2wfnt7e2vvvoqn8+fPXu2TCZjlidpamoKDg7mcrne3t4bNmywJOt2//79OXPm8Pn8NWvWMC+R6QovXLhACLlw4QJFUb6+vswlISEhzIRsvaIvN8hnmGqXQCBQq9XULyy8BYDVQkNDv/zyS+uuPX78eEpKioeHh5OTk6ur69ixYy2/NigoqKysjNmlB10x4uLiPv/8c+uisi36HwEzOjs76Y0FCxZ89dVX7EM3btwIDw+3/F67du165513NBrNwYMHt27d2tdQTQVmSeVSqZTZ/uGHHwIDA+ntwfOLAOgTb29vyogNE9gAAAD9ATmYYc7T01MoFLq4uNg7EAAAAAAYSrZt26bRaMrLy2tqarhcrlKpZB8tKiqSyWSFhYXsOdYyMzNlMplKpUpLS1uyZAldSI8LUSgUlZWV7PO3bt0qEAjq6+tLS0v//ve/M2empqaKxWKNRnP37t3w8PDU1NReQz18+PCpU6fu3r3L4/G2bNlCF964cWPOnDmxsbGEkJiYmKCgoPPnzzOX0MM7LOyK2NhYU+NdjNtFdxQzgsTCWwBYbffu3e++++7ly5f1ev3jx49lMlleXt6aNWssudbf3//TTz9ta2tTKpVHjhxZtWqV5ffdsWPHW2+9dfv2ba1WK5VK//nPf7KPZmZm5ubmvv/++z/99JNWq1UqlRcvXoyLi+tb2/rO09Pziy++aGlpoXelUqmzs7PBOc7OznR2vK6uLjs7e+7cuXT53r17t2/fLpVKu7q6urq6pFJpenr63r17Lb97UFDQ+PHjV6xYsXDhQh8fn74GbyowSyqvqakpLi7u7Ox88OBBamrqn/70J7rcXr8IgCfU0NCgN9LQ0GDvuAAAAMwy/vQCAAAAcEx//vOfExIS7B0FQL+jh3/R28YvbX18fPR6/bhx45qbm3u8nBCi1WqZbXrj9u3bixYtEggEXC6XXj2Ifb7xtqenJ1N/Y2MjUy4QCNjBeHp6mm8LIaS2tpbebm5uZp8fHx9/+vRpvV5/8uTJlStX9tYrvTD+06nXNsKQdvDgwVdffdXeUfTsvffe27x5M7P773//e+HChaNHjx4zZkxwcHB2dnZbWxt9yOAPf4Pdqqqq+fPnjxo1SiQSpaamPnz40MzJxu8QTp06NWnSpFGjRq1cuZK+lh1kbW3tK6+84uHhweFwpkyZsnXr1sbGRkta1+t9zbzZCA4Ovnnz5sqVK4VC4ezZs319fc+cOWNQ/5kzZ5ydnenRrps2bVIoFMyhysrKxYsX83g8Ho+3ZMmSqqqqHgMz8zrlhx9+cHZ2vnfvniUttTww85XT/yavXbuWx+NNmjSpsLCQfdTML+KPf/zj/v37rQgVho2amhpvb297RwEwKPzpT3/aunVrf9T81FNPKZXK/qgZAAYbpx6fUwEAAAAAwBHI5XJ6g6IoPettcldXl5mrnJwM/45YsWLFypUr8/PzBQLBzz//3OsKcOwpFtn3DQwMLC4utjB4A93d3ezp03fv3r18+fK4uLj33nvv9OnT1tX5hDQaDbN4EkA/CQkJuXTpUo+H9L9OERnsTpkyhZnx1fgE89cSQpYtW7Zs2TJ6u6mpyWC1QpFIdPjwYUvi71PMPZYwbt68SQg5duyYmfrj4+M1Gk2Ph6ZNm2ZmTk4z92WUlZW98sorfn5+vZ7Zp8B6rdzJySknJycnJ8f4kNW/CAAAAADoE0wjCQAAAAAAhpYvXy4WiwkhTU1NEomk1/nl5HJ5UFCQu7t7ZWXlhx9+2Gv9CQkJBw4c6O7uVqvVeXl5THlMTExeXl5tbW13d7eFoebm5tbW1ra0tOzatWvFihVM+dSpU0NDQxcvXvz888/7+/uzL+nTmm19Rc8Fp9Vqi4qKFi5c2E93ARg8FArF9u3bLZn0dXjT6XRisfjtt98ecpUDAAAAwJNDsg0AAAAAAIiXlxd7VywWq1QqLy+vZ5555osvvsjKyqLL6RFpxj9zcnKSk5MFAkFaWlpiYqKZM+mfe/bsqa+v9/DwmDdv3uLFi5n7btq0qampKSwsTCAQREVF7dmzx0zMdFVJSUlLly6dOHGiWq02OP/tt9++du1aenq6wYU6nc6SQSrMXZjImQF5ptpFCKGXcOPz+Xl5efn5+RbeBWDI2bdvH/0/xW9/+9uZM2e+++679o7Ibuh+cHJyunXr1qRJkwaycoN/fwBgkGM/S9jK9u3bme1jx46NHDmSoigOh0MvA2lwa4qixowZU1lZSRdeu3Zt1apV8fHxxpewqwUAAEtgGkkAAAAAACANDQ3sXS6X+8knn3zyyScGp5maZS4+Pj4+Pt74kKnzR40alZubm5ubq9Vqz507N336dLp85MiRb7/9toWjN5gK6bnjjJ0/f37dunW+vr4G5d98840l9RuH3WOhwQm9zgUHMDxs2bJly5Yt9o5iULA8eW/zyvv11uCYhEJhXV3dAN+0vb191KhRFp7s5ub26NGjfo2n/+j1etsm26qrq1taWpjd9evXnzt3LiYmRiKRJCQkGDyQGP+LsXbt2hs3bvD5fEKIVCqNjIxUq9X0oZaWlpqamokTJ9owWgCA4Q0j2wAAAAAAwA7eeecdiqJ4PN7Ro0evXr1q8/opitq0adPBgwdtXjMAWG3ChAmUCRMmTLB3dP3CAZsMQ1p9fT17t6Oj4/XXX/f29hYKhYcPHw4ICKDLtVptWlralClTAgICtmzZQid16P+wDxw44ObmJpVK8/Pz3dzcJBKJqXJCSFNTU3BwMJfL9fb23rBhQ3t7O10/fUl2dvb48ePZI64EAoFarWb+J2LilEgkHA6Hoih3d/d58+YxcdIsnD7aoFqD3Y0bN06ZMoXL5UZERDALXtInqFSq5ORkNzc3ZkJdU/1Gu3r1qkG7+lo/Izc3NzIyktlVKpUxMTGEkLi4uFmzZvXa5M7OTjrTRgiZO3duW1sbcyg8PLzHlSABAMAUJNsAAAAAAMAOdu3apdfrOzs7JRKJt7e3zevX/8LmNQOA1e7du6c34d69e/aOrl84YJNhONm2bZtGoykvL6+pqeFyuUqlki7fvn27SCSSyWS3b98WiUT0lIP0Z65OpysoKIiLiysvLy8oKEhISDBVTghJTU0Vi8Uajebu3bvh4eFMMom+RKFQVFZW0vMz0+V0AMYf8YmJiYsWLdJqtfX19W+99ZZKpWK3wsLnAb1eP2fOHKlUSu9KpdLQ0FDmwszMTJlMplKp0tLSlixZwo5z6dKlYWFhcrk8OjrafL/RioqKZDIZu119rZ9RXFw8bdo047ZcuXLl/Pnz7BJXV1c6dcdO8j148MBUb0ydOrW4uNh0bwEAgCEKf3wCAAAA0AoKCi5evHj8+HF7BwLQv9rb27lc7hD6Q8Db27uxsdGg0MvLy2DqSwAbOnToUEVFxaeffmrvQHqQkZHR2toqFovtHQgMbevWrfP3909JSbF3IGA3P/74Y2hoKD2UTSQSKRQK9lEfHx+5XC4UCisqKgQCgcG148aNq6qqGjNmDCGkpaVl+vTp9OSTFPX/3zQabJgqHzt2LDsR5enpyXziM2ea2WacPXt22bJlWq3Ww8PD09PzyJEjwcHBVvRJcXFxVlbWpUuXCCERERFbtmyJiIgghFRXV6ekpEil0s7OztmzZ5eWlrLjefToEY/HY9djqt/o87VarZOTE7stfa2fMXr0aLlcbnD08uXLM2bMGDduXI+X3L9/f/LkycxgRHZnsncfPnzo5+dnkLYcxnbs2NHR0WF+tWDruLi41NXVMSMIAWAYw8i2Ya6zs/Pu3bs//fSTvQMBAAAAALBSQ0OD8YgQZNoAAABsRS6XM8O/6A25XE4I6erqMnWJTb61ExgYyP5wN/5ujXnMmmSLFy/WaDRqtfrbb79dvXo1e2bFPomMjHz8+HFpaWlpaWlHRwedaSOErFixYt68ebdu3VKpVCdOnDC4yjgTZqbfCCF0po2tr/UzjH8LR48enTBhgqlMGyHEz89Pq9WaOqrT6cxUDgAAZhj+4w7DDEVR3d3dtl18FQAAAACGNPo1CkYzAJjxv//7v4P2S+j/+Mc/rl69un//fnsHAkPekiVL8FkA5i1fvlwsFu/evbupqen69eunT5/+7LPPCCGJiYm5ubn0rI85OTmrV6+2rv6YmJi8vLzo6GgfH58RIywaEuDs7CyRSBYtWnT58uXMzMxr164RQjw9Pc+fPz9z5kxfX9+pU6ey1x4jhNALtt28edOS+nfu3Jmenk5vMIVyuTwoKMjd3b2ystKSaTBM9Zspfa2fMWHCBIVCwawJd/LkyZkzZ/r7+5NfD1MLCwtbsGDBK6+8MmnSJIlE4uzsTJe7urpKpdK5c+cSQsrKytzd3bu7u0eOHEkIqa2tnThxouWRAAAAkm3DnLOz829+8xt7RwEAAAAAgwj9besbN27YOxCAwau+vt7MF//ta/78+bNmzcI0kvCE6Gkk7R0FDDpeXl7sXbFYnJqaShfGxsZmZWXR5e+///4777zj6+tLCPn973+/a9cuQgj9Ve8eZ4zssZwQsmnTpn379oWFhbW0tDz//PMLFixIS0szuMTgcnqpMw6HExUVlZ+fT9fz9NNPf/fdd8uWLautrXV2di4sLGS3QqfTWZjJI4SEh4e/9957FEW9+OKLTGFOTk5ycnJjY+P8+fM/+OCDzMxMg9jo05h2meo3U+3qa/2MyMjIqqoqJtmWlJTU3t5u3CiJRLJ58+bAwMDW1lZ2/3z++efz58+np9/kcDhnz55l8nBVVVVRUVEWdhoAABCs2QYAAADAwJpt4CCG3JptAAMPa7bBsIc124C9ZhsMUbdv3z506NDHH39s85rXr1+/efNmxxnchjXbAODJYc02AAAAAAAAAAAAgCEmICBgzJgx/VGzQCBwnEwbAIBNYBpJAAAAAABHVFNTY+8QAAav5uZme4cAAADQO3oOT5vLyMjoj2oBAIYxJNsAAAAAABwLRVETJ06MiIiwdyAAg1pCQoK9Q7AB9tpIxodITysA2ap+AAAAAADHgWQbAAAAAIBjcXV1vXv3rr2jAABbEgqFdXV1xuVmMmF6vZ7Otz0JyzNtbm5ujx49esLbAQAAAAAMTlizDQAAAAAAAGBoq6+vNyi5cOECRVEG6bS2trakpCQejzdr1qzy8nKDS0JCQkJCQiy8Y4/10yXZ2dnjx4/ncDgSiYQuFwgEarWa+kUfGgYAAAAAMBRgZBsAAAAAAADAcBMbG2s8dm3r1q1CoVCpVD58+DA3N9fgkj5NCNlj/XSJQqGorKy8cuVKQkKCRqMhhCiVSkw4CQAAAADDGEa2AQAAAAAAAAxJIpGIGStGb4hEIjPn//Wvf01NTeVwOB4eHmvXrjU4WlZWVlZW9uRRZWZmuru7x8fHa7XaJ68NAAAAAGDww8i24a+jo6Otrc3JyWn06NH2jgUAAAAAAABsRi6X0xtWjBujx5zZhUaj4XA49ro7AAAAAIDNYWTb8KfRaJRKZVtbm70DAQAAAAAAAHtauXLl/v37tVqtQqHYu3evwdE+rdnWV87OzhKJRKvVFhUVLVy4sJ/uAgCDXI+rNkokEg6HIxAIFixYYMn5/R2PvQzdVS37I/Lt27cz28eOHRs5ciRFUezVQNm3pihqzJgxlZWVdOG1a9dWrVoVHx9vfAm7WgAA20KybfgbOXIkIUSn09k7EAAAAAAAAOgXXl5eBiUG00vShVlZWbW1tXw+PyYmZs2aNeTXL5p1Op3lw+N6rJ8pMfhJCCksLExISODz+Xl5efn5+Va2EwD6mVAofMIa3NzczBzt8R+ZhISEwsJCpVJZUlJiyfn9HY+9mAqmvb19gCPpK5t3Y3V1dUtLC7O7fv36c+fO6fV6+qPE+O56vV6lUk2fPp0uWbt2bXZ2tkQi0ev1//jHP1avXs2c3NLSUlNTY9toAQBoSLYNf0i2AQAAAAAADG8NDQ0GJfpfowu5XO6RI0fUavX333//7LPPsg8RQr755hvL12zrsX72rsGh+Ph4jUajVqtPnz7t7+//JI0FgP5TX1/P3qWz6dnZ2ePHj2ePENJqtWlpaVOmTAkICNiyZQszLa1AIFCr1cxgI3ZVFy5cMC6cMGECRVFarXbp0qUGR3s8v6Oj4/XXX/f29hYKhYcPHw4ICGAObdy4ccqUKVwuNyIigkna9TUeU+0y1Q+m0OerVKrk5GQ3N7fU1FR2ufG2KU1NTcHBwVwu19vbe8OGDQZZNwuHIxs032C3x34zFb+Z/ieEXL161bh/+lQ/Izc3NzIyktlVKpUxMTGEkLi4uFmzZvXa5M7OTj6fT2/PnTuXPd1XeHh4Tk5OrzUAAFgBybbhb8SIEQTJNgAAAAAAAAAA6As6X65QKCorK9mDirZv3y4SiWQy2e3bt0UiETM1n1KpJEa5dlpsbKzx+Kd79+71mJ43df62bds0Gk15eXlNTQ2Xy6VvR8vMzJTJZCqVKi0tbcmSJdbFY6pdpvrBfL8tXbo0LCxMLpdHR0ezy423TUlNTRWLxRqN5u7du+Hh4QZJKeNGmQpmzpw5UqmU3pVKpaGhocyFPfabqfjN9D8hpKioSCaTGfRPn+pnFBcXT5s2zbgtV65cOX/+PLvE1dWVTt2xk3wPHjww1RtTp04tLi423VsAANbr8xLKMOTodDp6fPTkyZOH6NTPAAAAA6OgoODixYvHjx+3dyAAAAAmZWRktLa2isViewcCQ9u6dev8/f1TUlLsHQjYzY8//hgaGkoPZROJRAqFgn3Ux8dHLpcTQijq/14eMtvjxo2rqqoaM2YMIaSlpWX69Ol1dXUG5/Sox6NmLjE4JBQKKyoqBAKBwWnV1dUpKSlSqbSzs3P27NmlpaXGMVtSv4XtMl8nc86jR494PJ6ZOxrXY1AyduxYdkLL09OzsbHR/H17VFxcnJWVdenSJUJIRETEli1bIiIiSG/9Zhy/qf6nz9dqtU5OTuxW9LV+xujRo+VyucHRy5cvz5gxY9y4cT1ecv/+/cmTJ9ODEQ26kb378OFDPz8/lUplcPmOHTs6Ojr27NnTY+VPwsXFpa6ujhlpBwDDGEa2DX/0NJKEkO7ubvtGAgAAAAAAAAAAg41cLjeYA5bOtJlhydf3mWkYbaWrq6vH8hUrVsybN+/WrVsqlerEiRNPEo8NhyWYyiTRLHlNFxgYyJ6w17pMGyEkMjLy8ePHpaWlpaWlHR0ddKaN9NZvxvGb6n8anWlj62v9DOPfwtGjRydMmGAq00YI8fPz02q1po6yZ/zCyBMA6CdItjkEzCQJAAAAAAAAAAA2kZiYmJubS2eAcnJyVq9ezRxydnaWSCRarbaoqGjhwoW2ve/y5cvpcb1NTU0SiWTVqlV0uVwuDwoKcnd3r6ys/PDDD9mX9CkeM+2yFTqeurq6N954o9eTY2Ji8vLyamtre8zMWbhmG23nzp3p6enp6ek7d+5kCs30W49M9b8pfa2fMWHCBPZQy5MnT86cOZNe75M9a1dYWFh6evrdu3cJIRKJxNnZmS53dXVlps0sKytzd3dnOrC2tnbixImWRwIAYDkk2xwCPbgNyTYAAAAAAAAAADDFy8uLvUsnNox/vv/++01NTb6+vr6+vs3Nze+//z5zCb1kF5/Pz8vLy8/PZ1fF1MDkSy5cuMAuZOdRejxfLBarVCovL69nnnnmiy++yMrKostzcnKSk5MFAkFaWlpiYiJhpWT6FI+pdpnqB1NMNYqOZ+XKlYsXL/7DH/7ArqfHeDZt2tTU1BQWFiYQCKKiogwmOdTpdJYP0goPD+/u7tbr9S+++CJTaKrfTMVvqv9N9U9f62dERkZWVVUxu0lJSbNnzzY+WSKR3Lt3LzAwkKKohISEwsJCuvzzzz+fP38+RVGenp4vvfTS2bNnmTxcVVVVVFSUhZ0GANAnWLPNITx48KCjo8PHx4fL5do7FgAAgMELa7YBAMDghzXbwCawZhuw12wDGFRu37596NChjz/+2OY1r1+/fvPmzcaD27BmGwA8OYxscwgY2QYAAAAAAAAAAACDX0BAwJgxY/qjZoFAgGkkAaCfINnmELBmGwAAAAAAAAAAAAwJu3bt6o9qMzIy+qNaAACCZJuDwMg2AAAAAAAAGK5MrfrzJLZv385sHzt2bOTIkRRFcTgciURifGuKosaMGVNZWUkXXrt2bdWqVfHx8caXsKsFgCHN29ubMuLt7W3vuAAAwD6c7B0ADAQ62dbd3W3vQAAAAAAAAMD2hEJhXV1dP1Xe3t4+atSofqrcJvR6vW2TbdXV1S0tLczu+vXrz507FxMTI5FIEhISNBqNwd0NLl+7du2NGzfoFXqkUmlkZKRaraYPtbS01NTUYBIzgGGgoaHB3iEAAMAggmSbQ8DINgAAAAAAgGGsvr6evUtnnj788MO9e/c2NjYWFhbGx8fThzZu3FhcXFxbWzt37txt27YtWLCAPvmDDz5IT0+/ePHirVu33njjjaNHj8bHxzc1NcXGxn799ddeXl4vv/zyvn372Fm3kJAQQsjNmzfNx8akweiklMGucTzMOS0tLZs3bz5x4sQf//jHrKwsQkhHR8fWrVuPHz8+YsSIzMzM3bt33759m7nR1atXExMTe22vmfoZubm5kZGRzK5SqaQ34uLiZs2a1csvg5DOzk4600YImTt3bltbG3MoPDw8Jydn7969vVYC0N/a2tpaW1tXr15t70AA7O+HH3547rnn7B0FAAxtmEbSISDZBgAAAAAA4DjoPJZCoaisrCwsLExISGAOZWZmymQylUqVlpa2ZMkS5mSdTldQUBAXF1deXl5QUEBfkpqaKhaLNRrN3bt3w8PDU1NTDe5iPKirx2DmzJkjlUrpXalUGhoaylxoHA8T0tKlS8PCwuRyeXR0NF2+bds2jUZTXl5eU1PD5XKZHBitqKhIJpP12l4z9TOKi4unTZtm3JYrV66cP3+eXeLq6krPHceeLvLBgwememPq1KnFxcWmewtg4Gg0mu7u7hEAMGIERVHMEGQAAOtQljwZw1DX3t4ul8ufeuopPz8/e8cCAAAweBUUFFy8ePH48eP2DgQAAMCkjIyM1tZWsVhMCBGJRAqFgn3Ux8dHLpcTQijq//7eZ7arq6tTUlKkUmlnZ+fs2bNLS0uZ0WY9bowdO5ad0PL09GxsbLQi5uLi4qysrEuXLhFCIiIitmzZEhERYSYeOoBHjx7xeDx2PUKhsKKiQiAQGN+CoiitVuvk5GRJe03Vzxg9erRcLjc4evny5RkzZowbN67HS+7fvz958mR6hkl25xvsPnz40M/PT6VS9dZn/W7dunX+/v4pKSn2DgTs5scffwwNDTUYFwvgmHbs2NHR0bFnzx6b1+zi4lJXV8cMdwaAYQwj2xwC/fdGV1eXvQMBAAAAAAAAm5HL5czwMnqDzrSZsmLFinnz5t26dUulUp04caLX+gMDA/Us1mXaCCGRkZGPHz8uLS0tLS3t6OigM229xmOcCTP/Vy39ly9bX+tnGH8v+ejRoxMmTDCVaSOE+Pn5abVaU0fZM83gS88AAAAAww/WbHMIzDSSNl81GgAAAAAAAIYKuVweFBTk7u5eWVlpyUjumJiYvLy86OhoHx+fESMMv61r4ZpttJ07d6anp9MbVsezfPlysVi8e/fupqam69evnz59+rPPPjNzfl/rZ0yYMEGhUAQEBNC7J0+enDlzpr+/P/n1MLWwsLAFCxa88sorkyZNkkgkzs7OdLmrq6tUKp07dy4hpKyszN3dvbu7m/7DvLa2duLEiZZHAtCvNBrN5cuX7R0FgP3V1NT4+PjYOwoAGNqQbHMII0eOpP8e0Ol0xt/1AwAAAAAAgCHNy8uLvUt/yZL+M5C9nZOTk5yc3NjYOH/+/A8++CAzM5P5OqbxTJKEkE2bNu3bty8sLKylpeX5559fsGBBWloacxedTmecgTMlPDz8vffeoyjqxRdfZAp7jIcdM30aE49YLE5NTaUbGxsbm5WVZUV7zdTPiIyMrKqqYpJtSUlJ7e3txo2SSCSbN28ODAxsbW11dnYuLCykyz///PP58+drtVoPDw8Oh3P27FkmD1dVVRUVFWVhpwH0q6eeemrixIns/6kBHFlwcLC9QwCAoQ1rtjmKH3/8saury8/P76mnnrJ3LAAAAIMU1mwDAIDBj71mG/ST27dvHzp06OOPP7Z5zevXr9+8efNgGNyGNdsAAAYA1mwDcBwY5OQohELhiBEjmC/TAQAAAAAAAECPAgICxowZ0x81CwSCwZBpAwAAAADbQrLNUbi4uNg7BAAAAAAAAIChYdeuXf1RbUZGRn9UCwAAAAD2Zens6gAAAAAAAAAAAAAAAABgAMk2AAAAAAAAAAAAAAAAACsh2QYAAAAAAAAAAAAAAABgJSTbAAAAAAAAAAAAAAAAAKyEZBsAAAAAAAAAAAAAAACAlZBsAwAAAAAAAAAwiaIoiqJsW+f27duZ7WPHjo0cOZKiKA6HI5FIjG9NUdSYMWMqKyvpwmvXrq1atSo+Pt74Ena1AAAAADBgnOwdAAAAAAAAAAA8EaFQWFdXN8A3bW9vHzVqlIUnu7m5PXr0qF/j6T96vd62ybbq6uqWlhZmd/369efOnYuJiZFIJAkJCRqNxuDuBpevXbv2xo0bfD6fECKVSiMjI9VqNX2opaWlpvkTuxAAACAASURBVKZm4sSJNowWAAAAAHqFkW0OpLW1tbm5WafT2TsQAAAAAAAAsKX6+nr2bkdHx+uvv+7t7S0UCg8fPhwQEECXa7XatLS0KVOmBAQEbNmyhU7q0AOnDhw44ObmJpVK8/Pz3dzcJBKJqXJCSFNTU3BwMJfL9fb23rBhQ3t7O10/fUl2dvb48ePZI64EAoFarWYGaTFxSiQSDodDUZS7u/u8efOYOGkhISEhISG9tt2gWoPdjRs3TpkyhcvlRkRElJSUsM9RqVTJyclubm6pqanm+4129epVg3b1tX5Gbm5uZGQks6tUKmNiYgghcXFxs2bN6rXJnZ2ddKaNEDJ37ty2tjbmUHh4eE5OTq81AAAAAIBtIdnmQFpaWpRKpVartXcgAAAAAAAA0I+2bdum0WjKy8tramq4XK5SqaTLt2/fLhKJZDLZ7du3RSIRPeUgPXBKp9MVFBTExcWVl5cXFBQkJCSYKieEpKamisVijUZz9+7d8PBwJplEX6JQKCorKwsLC+mTCSF0APpfMHEmJiYuWrRIq9XW19e/9dZbKpWK3QqDk03R6/Vz5syRSqX0rlQqDQ0NZS7MzMyUyWQqlSotLW3JkiXsOJcuXRoWFiaXy6Ojo833G62oqEgmk7Hb1df6GcXFxdOmTTNuy5UrV86fP88ucXV1pVN37CTfgwcPTPXG1KlTi4uLTfcWAAAAAPQLypInVxgempubu7u7R48ezeFw7B0LAMBQcvjw4Y8++sjeUTgohULR2to6YLfr6uricrmYeYl29OjR6dOn2zsKAAAwlJGR0draKhaLCSEikUihULCP+vj4yOVyoVBYUVEhEAgMrh03blxVVdWYMWMIIS0tLdOnT6cnn6So//9ywGDDVPnYsWPZiShPT8/GxkZ6mznTzDbj7Nmzy5Yt02q1Hh4enp6eR44cCQ4OtqJPiouLs7KyLl26RAiJiIjYsmVLREQEIaS6ujolJUUqlXZ2ds6ePbu0tJQdz6NHj3g8HrseU/1Gn6/Vap2cnNht6Wv9jNGjR8vlcoOjly9fnjFjxrhx43q85P79+5MnT2YGI7I7k7378OFDPz8/g7Rlj9atW+fv75+SktLrmQAAYDUXF5e6ujpmODIADGNYs82BjB071t4hAAAMSXV1dX5+fv/zP/9j70Ac0U8//WTwpfL+xufzn3766YG84+D0hz/8gT0nFQAADE5yuZzeMMi+dHV1mbrEJt+4DQwMfJLhUxqNhv4O6OLFizUaTVtbm1Kp/OyzzyIjI9krmVkuMjLyvffeKy0tJYR0dHTQmTZCyIoVK1auXJmfny8QCH7++WehUMi+yjgTZqbfCCF0po2tr/UzjH8LR48eDQ0NNZVpI4T4+fmZmahGp9ONHDnSVOUAAAAA0N+QbAMAAOidn5/fwoUL7R0FwMAx834QAAAGv+XLl4vF4t27dzc1NV2/fv306dOfffYZISQxMTE3N5ee9TEnJ2f16tXW1R8TE5OXlxcdHe3j4zNihEXrUzg7O0skkkWLFl2+fDkzM/PatWuEEE9Pz/Pnz8+cOdPX13fq1KkG3/OgF2y7efOmJfXv3LkzPT2d3mAK5XJ5UFCQu7t7ZWXl8ePHe63EVL+Z0tf6GRMmTFAoFMyacCdPnpw5c6a/vz/5dd40LCxswYIFr7zyyqRJkyQSibOzM13u6uoqlUrnzp1LCCkrK3N3d+/u7qaTbbW1tRijDwAAADDwsGYbAAAAAAAAwNDm5eXF3hWLxSqVysvL65lnnvniiy+ysrLo8vfff7+pqcnX19fX17e5ufn9998nhFAUxfw03jAuJ4Rs2rSpqakpLCxMIBBERUXt2bPH+BKDy+mlzvh8fl5eXn5+Pl349NNPf/fddwEBARRFJSQkFBYWsluh0+ksH6QVHh7e3d2t1+tffPFFpjAnJyc5OVkgEKSlpSUmJhrHRuu130y1q6/1MyIjI6uqqpjdpKSk2bNnG58skUju3bsXGBho0D+ff/75/PnzKYry9PR86aWXzp49y+ThqqqqoqKiLOw0AAAAALAVrNkGAADQi8zMzIaGhoMHD9o7EICBM2PGjIKCAusWzgEAgH7FXrMNhqjbt28fOnTo448/tnnN69ev37x5syWD27BmGwDAAMCabQCOAyPbAAAAAAAAAAAGTkBAwJgxY/qjZoFAgGkkAQAAAAYekm0AAABgEVPzIA1XjtZeAAAAGEi7du3qj2ozMjL6o1oAAAAAMA/JNgAAALCIo0097WjtBQAAAAAAAAAA6yDZBgAAAENDZ2envUMAAAAAAAAAAAAwhGSbY9Hr9Vqttru7296BAADAICWTyZYtW8bn811dXcPCwq5cuRIQEMA+4d69ey+88IKTkxOHw5FIJOxD+/btCw4Odnd39/X1ffPNN5ubm5lD9JSMarX6pZde4nA4xteeOXPG39+fx+OtWrWqvb3dYArHwsJCkUjk4uLC4/GioqK++eYbW7XITMw0rVb72muvubm5+fv7nzp1yvL7AgAAAAAAAACAg0CyzbE8ePDgp59+6ujosHcgAAAwGN26dSs6Ojo6OrqiouLhw4fHjh2rrq5WKpXsc1577bUPPvhAq9UWFhYmJCSwDz333HNlZWUPHz78/vvveTxefHw8c4iekjE1NXXz5s2dnZ0G13711VfvvvvuyZMnm5ubN2zYsGPHDsKaxbGkpOTo0aPnzp1rb2+vr6/ftm3b+vXrv/76a5u0yEzMtPT09MjISLlc/sknn6SkpEilUkvuCwAAAAAAAAAAjoPCeiQORaFQtLW1eXl5jR492t6xAAAMGZmZmQ0NDQcPHrR3IP3ud7/73bJlyxITE02dQFHUd99999xzzzG7ph4kdDqds7Mzeyw1RVEnTpx4+eWXja+Njo5+8803o6Ki6N0zZ84sW7aMOfrCCy8cOXLkN7/5DVPVf/7zn5SUlEuXLj15i3qNOT8/f82aNfTu3/72t08++aS4uNiS2oa6GTNmFBQUBAcH2zsQAAAwlJGR0draKhaL7R0IDG3r1q3z9/dPSUmxdyAAAMOZi4tLXV0dn8+3dyAA0O8wss2xODk5EUK6urrsHQgAAAxGJSUlMTEx5s9hMm0GOjs7d+/ePXXq1FGjRnl4eERFRRnn4ZhMm4Gvv/76+eefZ3ZfeOEF9tGbN28+/fTTFMuzzz5r4Qgz8y2yJOYlS5Yw22FhYd9++60l9wUAAAAAAAAAAMfhZO8AYEAh2QYAAGbodDr2Sml98sYbb3h6el6/fn3MmDFarfbevXvTpk2zSVSurq63bt1ij2yznPkW9TXmkSNHjhiBLyoBAMCwRX9o9jhs3cxwdjNX9V89/cpUJNb1DwAAAAA4ArwwcixItgEAgBmhoaFffvmlddceP348JSXFw8PDycnJ1dV17Nixll8bFBRUVlbG7F6+fJl9NC4u7vPPP7cuKvMtsiRm9uU3btwICgqyLhIAAIB+JRQKn7wSM+ki6w71Xz39ylQkNgnezc3NmpgAAAAAYHBDss2xODs7EyTbAADAhN27d7/77ruXL1/W6/WPHz+WyWR5eXnMimXm+fv7f/rpp21tbUql8siRI6tWrbL8vjt27Hjrrbdu376t1WqlUuk///lP9tHMzMzc3Nz333//p59+0mq1SqXy4sWLcXFxT94iS2KWyWRnzpx59OhRSUnJxo0bd+7caXm7AAAABkx9fT2zzUy83OPuxo0bp0yZwuVyIyIiSkpKeq35woUL7MtpbW1tSUlJPB5v1qxZ5eXllkRoRT0hISEhISGWVC6RSDgcDkVR7u7u8+bNCwgIIL80/MCBA25ublKpND8/383NTSKR0Jf0tR/61C66JDs7e/z48RwOh7mpQCBQq9UGvxEAAAAAGAaQbHMsGNkGAABmhISESCSSvXv38vl8Hx+f1atXd3R0fPTRR/RR+pUQ+80de/cvf/lLUVGRl5fXs88+W1FRcerUKTMnG+zOmTMnPT09NjZ2zJgx2dnZe/fuZUc1fvz4f/3rX3fu3AkODubxeHPnzi0pKTl8+PCTt8iSmN97773z588LhcK1a9dmZWUFBwf3rU8BAAAGnF6vnzNnDrO+qVQqDQ0NZYZeZWZmymQylUqVlpbGXprUlNjYWONhW1u3bhUKhUql8tKlS2fPnrUkKivq0ev1Fo4YS0xMXLRokVarra+vf+utt1QqFflltJlOpysoKIiLiysvLy8oKEhISKAv6Ws/9KlddIlCoaisrCwsLGRuqlQqmXYNnpF8AAAAAPDkMKu4Y9Hr9Xfu3CGETJo0CavOAABYKDMzs6Gh4eDBg/YOxFE0NTVNmjTp4cOH9g7Eoc2YMaOgoADJRQCAQSgjI6O1tVUsFhNCRCKRQqFgH/Xx8ZHL5cXFxVlZWZcuXSKEREREbNmyJSIighBSXV2dkpIilUo7Oztnz55dWlpq8E7A1NpjBuUCgeDOnTsCgYAQ0tzc7OHhYd2abVbXY+Ds2bPLli3TarUeHh6enp5HjhyhP8KY2xls2KofzJSzS0xt29e6dev8/f1TUlLsHQgAwHDm4uJSV1fH5/PtHQgA9DukWxwLRVEjR44kGNwGAACDlUKh2L59e2pqqr0DAQAAGALkcjkzRorekMvlhJDIyMjHjx+XlpaWlpZ2dHTQmTZCyIoVK+bNm3fr1i2VSnXixAmbxKDRaOxez+LFizUajVqt/vbbb1evXh0ZGWn+/P7oByvYqusAAAAAwO6QbHM49EySWq3W3oEAAAD8n3379tGLl/z2t7+dOXPmu+++a++IAAAAhradO3emp6enp6ezFxyVy+VBQUHu7u6VlZUffvih1ZWvXLly//79Wq1WoVAYzP9sw3osX7PN09Pz5s2bI0aM8PX1nTp1altbm/nzbdUPVnB2dpZIJFqttqioaOHChQN5awAAAADoP0i2ORws2wYAAIPQli1b6O/jNzY2btiwwd7hAAAADDFeXl4GJeHh4d3d3Xq9/sUXX2QKc3JykpOTBQJBWlpaYmIi+fVipcyiqkyhqfKsrKza2lo+nx8TE7NmzRp2PaZYUY9Op7NwxsWnn376u+++CwgIoCgqISGhsLCQmFgy1rb9YKqcfWuDMOgl3Ph8fl5eXn5+viWtAwAAAIDBb7DMFQ4DprGxsbW1VSAQjB071t6xAAAMDVizbdCaMGHC/fv3ezzk5+d37969AY5nOMGabQAAgxZ7zTYAq2HNNgCAAYA12wAch5O9A4CBhpFtAAAwbCCdBgAAAAAAAAAAdodpJB2Os7MzQbINAAAAAAAAAAAAAADAFpBsczgY2QYAAAAAAAA25+3tTRnx9va2d1wAAAAAAP0O00g6HCTbAAD66t///vfly5f//Oc/2zsQgIGj0Wju3LmDNdsAAMByDQ0N9g4BAAAAAMA+kGxzOHSyrbu7u7u7e8QIDG0EAOjd9OnTXVxcUlNT7R0IwMBZvny5SCSydxQAAAAAAAAAAEMAkm0Oh6KokSNH6nS6rq4uDodj73AAAIYANze3cePGBQYG2jsQgIHD5XJdXV3tHQUAAAAAAAAAwBCAgU2OCDNJAgAAAAAAAAAAAAAA2ASSbY6ITrZptVp7BwIAAAAAAAAAAAAAADC0YRpJR8Tlcp2cnDCHJABAf6AoSq/XmzpECDF11HydvV5o5r42OR8AAABg4NnxicXqJzcAAAAAcEAY2eaIRo8e7eXlhYVYAACehFAo7LHczBsZq1/WWHJhXyu3/Hw3N7c+1QwAAAADz9STSZ+0t7dbfrKZJwRb1UP6+ITTp/v2ysJb26ofAAAAAGBIQ7INAADAGvX19QYlFy5coCiK/hI0o62tLSkpicfjzZo1q7y83OCSkJCQkJAQC+94//79OXPm8Pn8NWvWtLW1mb9ve3v7q6++yufzZ8+eLZPJ2Cf0eD5dkp2dPX78eA6HI5FI6HKBQKBWq6lfWBgqAAAADDCDJ5OOjo7XX3/d29tbKBQePnw4ICCALqc/0FUqVXJyspubW2pqKl3e1NQUHBzM5XK9vb03bNjAzhJt3LhxypQpXC43IiKipKSELjT1hGCmnh6ZedIwfmKhdw8cOODm5iaVSvPz893c3OiHFvP3tfyJy8yTW7/2AwAAAAAMdUi2AQAA2EZsbKzxN6C3bt0qFAqVSuWlS5fOnj1rcFSv11v+fe3Dhw+fOnXq7t27PB5vy5Ytvd5XIBDU19eXlpb+/e9/J6xvZ/d4Pl2iUCgqKysLCwsTEhLocqVSycSJaZQAAACGim3btmk0mvLy8pqaGi6XS3+gk18+8ZcuXRoWFiaXy6Ojo+ny1NRUsVis0Wju3r0bHh7OJOEIIZmZmTKZTKVSpaWlLVmyhC409YRgpp4emXnSMH5ioXd1Ol1BQUFcXFx5eXlBQQH90GL+vpY/xph5cuvXfgAAAACAoQ7rtQAAAPQiMzOzoaHh4MGDhBCRSKRQKNhHfXx85HI5s2uwsohAILhz545AICCENDc3e3h4WPfJS1FUbW2tSCQihCiVyqlTpzY2NhqcwK7Zy8urqqqKvm9TU5OXl5fBfY1XQGGXmNoGxzFjxoyCgoLg4GB7BwIAAIYyMjJaW1vFYjEx/WQiFAorKiroJwEDFEU9evSIx+OxC8eOHcsk5Aghnp6e9JNGdXV1SkqKVCrt7OycPXt2aWmp+ScEU/WYYf5Jw+Aos2uwYcV9e2TqyW0A+mHgrVu3zt/fPyUlxd6BAAAMZy4uLnV1dXw+396BAEC/w8g2AACAPpDL5cw3l+kNdqbNPI1GY5MYuru7R4zo5ROcPZGRDVNltmoCAAAA2ISpJ5Ouri4zVxlk2gghgYGBehYmM7RixYp58+bdunVLpVKdOHHCVIXME4Kpeixk9ZPGE96312AGuB8AAAAAYMhBsg0AAKAfrVy5cv/+/VqtVqFQ7N271+Bon9Zsy83Nra2tbWlp2bVr14oVK8yfnJCQcODAge7ubrVanZeXZ03ov3B2dpZIJFqttqioaOHChU9SFQAAAAyM5cuX00PfmpqaJBLJqlWrzJ8fExOTl5dXW1vb3d3NLpfL5UFBQe7u7pWVlR9++CH7UI9PCKbqMcMmTxrm72v5E5epJ7cB6AcAAAAAGNKQbAMAALCGl5eXQQlFUfR4MmaDEJKVlVVbW8vn82NiYtasWUN+PeZMp9NZMuyMviQpKWnp0qUTJ05Uq9V79uwxf989e/bU19d7eHjMmzdv8eLFvcbJlBj8JITQS7jx+fy8vLz8/HzLugcAAAAGlMGTiVgsVqlUXl5ezzzzzBdffJGVlUWXs58B2M8kmzZtampqCgsLEwgEUVFRzJNGTk5OcnKyQCBIS0tLTEwkvT0hmKrHDFNPGsZPLAaPKJbET7PwiYuYfnIbgH4AAAAAgCENq7AAAAD0gr1m25Cj1WrPnTu3ffv2iooKe8cCQwnWbAMAGLTYa7YBWA1rtgEADACs2QbgODCyzXHpdDqtVmvvKAAAoL+88847FEXxeLyjR49evXrV3uEAAAAAAAAAAAAMT0i2OSi1Wl1TU1NfX2/vQAAAoL/s2rVLr9d3dnZKJBJvb297hwMAAAAAAAAAADA8IdnmoJydndkT3AMAAAAAAAD0B29vb8oIvgkEAAAAAMOJk70DAPt46qmnJk+ebO8oAAAAAAAAYJhraGiwdwgAAAAAAP0LI9sAAAAAAAAAAAAAAAAArIRkGwAAAAAAAAAAAAAAAICVkGwDAAAAAAAAAAAAAAAAsBKSbQAAAAAAAAAw0CiKoihqwO41MDcCAAAAAMeEZBsAAEA/Gsi3SH1iJiqrY7bkwr7WPDh7DwAAYLARCoVPXkl7e7vlJ7u5uT1hPXq93vLbPSHL72WmXQAAAAAApiDZBgAAYA0LX2kNzFukPr0ao5kJzOqYLbmwr5Xj1RgAAIAl6uvr2bsdHR2vv/66t7e3UCg8fPhwQEAAXU5/M0alUiUnJ7u5uaWmptLlTU1NwcHBXC7X29t7w4YN7EeLjRs3TpkyhcvlRkRElJSU0IUCgUCtVlO/YE42U48p9+/fnzNnDp/PX7NmTVtbGzvOCxcuEEIuXLhAUZSvry9zSUhISEhIiIU9Q19u8PUduiQ7O3v8+PEcDkcikZhvFwAAAACAeUi2AQAAWMPCV1q0q1evGrzKISZeXZl69dPe3v7qq6/y+fzZs2fLZDLmBZAVr7R6fOXU1taWlJTE4/FmzZpVXl5ucEmfXmn1+MrM1H1NtcvU+Xg1BgAAYIlt27ZpNJry8vKamhoul6tUKuly+lssS5cuDQsLk8vl0dHRdHlqaqpYLNZoNHfv3g0PD2eScISQzMxMmUymUqnS0tKWLFlCF9IV6n/BnGymHlMOHz586tSpu3fv8ni8LVu20IU3btyYM2dObGwsISQmJiYoKOj8+fPMJQY3NS82Ntb4ZLpEoVBUVlYWFhYmJCSYbxcAAAAAgHlItgEAANiAqVdatKKiIplMxn6VQ0y8ujL16mfr1q0CgaC+vr60tPTvf/87c6YVr7R6fOW0detWoVCoVCovXbp09uxZg6N9et/U4yszM/ftsV2mzserMQAAADaRSMR80YTeEIlEhJBjx47t2rXL09PT1dX15Zdf/vnnn9lXffnll0lJSe7u7uHh4XTJ2bNn58+fz+Fw3Nzcli5devLkSbq8urr697///dixY/l8/s6dO9Vqtfl4TNVjRnJy8vjx4wUCwY4dO5jz58yZIxQKz5w5Qwg5ffr05MmTn332WeaSsrKysrIyC7vIjMzMTHd39/j4eK1W++S1AQAAAIAjo/BCypE1NDR0dnZ6e3s/9dRT9o4FAGDwyszMbGhoOHjwICFEJBIpFAr2UR8fH7lcLhQKKyoqBAKB8eUURWm1WicnJ3qb/uStrq5OSUmRSqWdnZ2zZ88uLS1lPpGZc9jbXl5eVVVVdP1NTU1eXl50+dixY9mJPU9Pz8bGRksaxb4LIUQgENy5c4euv7m52cPDw7onBIqiamtr6dd8SqVy6tSpBvEY3NdUu0ydT0z0T49nwpOYMWNGQUFBcHCwvQMBAABDGRkZra2tYrGYXWjwOejp6SmTyUw9mRh/YkZGRhYXFxufPGvWrJUrV/73f/+3QCD4+eefhUJhj5+8Go2Gw+GYqccU9pPDzz//PGPGDGbygKqqquXLl3/zzTfBwcGnT5/29/e3vNoeb2TFEwXTrmFp3bp1/v7+KSkp9g4EAGA4c3Fxqaur4/P59g4EAPodRrY5NK1W29nZiS/xAQBYTi6XM2On6A25XE4I6erqMnMVnWljW7Fixbx5827duqVSqU6cONHrfdlTI7JfFQUGBupZLMy0mafRaJ68EkJId3f3iBG9PGmYatcTslUTAAAAhqjly5fT2bimpiaJRLJq1Srz58fExOTl5dXW1nZ3d7PL5XJ5UFCQu7t7ZWXlhx9+yD7k7OwskUi0Wm1RUdHChQvN12NGbm5ubW1tS0vLrl27VqxYwZRPnTo1NDR08eLFzz//vEGmrU8TXPdVj+0CAAAAADAPyTaH5uzsTAhBsg0A4Mn19ZWWmVdXPUpISDhw4EB3d7darc7Ly2PKrXil1aOVK1fu379fq9UqFIq9e/caHO3TKy1Tr8x6ZKpdVsCrMQAAcGReXl7sXbFYrFKpvLy8nnnmmS+++CIrK4suZ084yf7Ky6ZNm5qamsLCwgQCQVRU1J49e+jynJyc5ORkgUCQlpaWmJhIWF+Uoedz5vP5eXl5+fn55uvpEV1VUlLS0qVLJ06cqFarDc5/++23r127lp6ebnChTqez/Ds6BtNsGvSDwU9T7QIAAAAAMA8TLjm05uZmpVI5evRogz/MAACAjT2NJMPb27uhoYHZbWtrS01NPXXqFCEkNjY2MzNTKBQS1osbvV7P3pZIJG+++WZjY+P8+fM/+OCDadOmGZ/D3m5vb3/99ddPnz7t5+f3l7/85dlnn/1/7N15eBRVvvj/qiydrRPoJotJgIiaiBsoEFC+IHpBICBqQAnPc5Fh0HFUEBSIQUTGZSCsLmS890HCIDheDQI9CoKyzghGJ6DXUQiEgBrMRkI6IXt3p1O/P+pav7bT6XQ6nVTSeb/+4KnlnFOfqgKqUp+cc+QnuNVqXbdu3TvvvFNZWTlq1Kh777132bJlzk/H9sua8Gt/srq6uqeffnr37t3XX3/9e++9N3ToUMGmq9nw4cN9fHzanBxFbvmnn36aOXNmfn7+ww8//NZbbwUHBzs5bmvn1Vr51q6PIAgGgyElJUWj0cif9jo42BQYRhIAui2Hw0h6pYyMjB9//PGNN95QOxDvxDCSANAFGEYS6D1ItvVq1dXVly9fDg4OlofIBwA45DDZphaLxbJv374VK1acOXNG7Vg8yVvPq+ci2QYA3VYvSbbZ/VYNPI5kGwB0AZJtQO/BMJK9mjzVM8NIAkCP8OKLL4qiqNVqd+zYcfToUbXD8RhvPS8AANARypS0agcCAAAAtI1kW6+mzNnGDzAA0P2tWrVKkiSTyWQwGKKiotQOx2O89bwAAIAsKipKbIGHPgAAALwJybZezdfX19fXV6BzGwB4Fz5pAQCA7uPy5ctSC7Zz3wIAAAA9nZ/aAUBl/v7+VqvVbDbLQ0oCALwAX68AAAAAAACALkPPtt6OadsAAAAAAAAAAADcRrKtt5OnbTObzWoHAgAAAAAAAAAA0POQbOvt5GQbPdsAAAAAAAAAAADcQLKtt5OHkaRnGwAAAAB4PVEURVFUO4p2UDHaHnetAAAAoCI/tQOAyuSebVartbm52ceH5CsA9FSiKEqS1NouQRBa29vx9gEAgOqio6NLSkraLCZJUhckkOrr64ODg10sHBoaWlNT09redr1+tOu4bXLxWjmJ37PxAF5syJAhdXV1akcBLxcQEJCbm6t2FAC8Gcm23s7Hx8fPz6+pqclisQQEBKgdDgD0GC5+0nLOg59gnHyK8shnNdc/dTn/86t5lAAAIABJREFUZAYAADpDaWmp7WpjY2NaWtqHH37o4+OTnp6+evXq8+fPK3uPHj06Z86csrKyrKys5ORkeeMzzzxz8ODBwsLC0aNHL1++/N577xV+/ZWdTZs2rV271rZ8fX39okWLdu3aNWjQoA8++GDw4MGCIEiSVF5ePmXKlFOnTkVGRj7yyCPr1q1z/qqj1+tra2uVFxXb9439+/dPnTrVdqNc7PXXX1+5cuXnn39+9uzZZ599dseOHcnJyc6PO3LkSEEQcnJy2ryMdXV18+fP37VrV3x8/HvvvWe7y+H1aS3+9l4HoJf7+eefd+/erdfr1Q4EXqu6unrKlClqRwHAy5Fsg+Dv79/U1GQ2m0m2AYDr7D5p2fYes102GAwpKSkWiyU0NHTIkCFlZWXyp67WPsHIdSsrK5csWbJz584nn3xy/fr1ziNp+SlKcPqpSGjPJ6fW2m/t05uTT2YAAKDLLF++3Gw2nz59WqvV7tu3z2g02u49cOBAXl7ewYMHU1JSlDkF0tPTMzIyLBbLF1988cADD8i/OiP/yk5xcXFubu6RI0eU8mlpaXq9vrS0tKmpKTMzU/j1oZ+amrphw4bRo0ebTKZDhw6lpqa+/fbbTuI0Go2t9Z6fMmWK3S8MyatWq3Xbtm1Tp06dO3futm3b5JCcH9f1F5K0tLTo6Gij0VhdXb1lyxbbXQ6vT2vxt/c6ABgyZEhUVJTaUcBr2T0HAaAzMCQUhLKysqtXr/br14/fIQIAh9LT0y9fvvzmm2/abmz5YcV2i7IcGhp633337dy502w2Hzx48IknnigrKxMEYe7cub///e+VTzCHDx9WPsGIonjvvffOmTNn+vTpJ0+eHD9+vCtB2sWzYMGC0NDQV155Rf5UtHz5ctu9iYmJgiCcPHnS9Yvg8HyXLVv2wgsv2H56c1gSPdGtt966bds2+a8KAKBbee21165evbphwwZBEGJjY4uLi233xsTEFBUVRUdHnzlzxuGPeKIoWiwWPz8/weapnZ+fv3jx4uzsbJPJNGzYsOPHj7d8q7FdjoyMPHfunNx+eXl5ZGSkvL1fv362HzQjIiLkNx8nnL852O1VVu0W3DiuQ3q9/sKFC/J5VVRUhIeHt+v6KDwVT6d66qmn4uPjFy9erHYggBAWFpafn0+yDZ3HaDTGxsY2NDR0/aEDAwNLSkp0Ol3XHxpAF2OOLvzftG3KR1IAgBOxsbGiKMq/ZC0vxMbGOin/P//zP/v27fP394+Li1u+fPmnn34qb9+7d+8999yj0WhCQ0OnT5/+0Ucf2db65JNP5s6dGxYW5mKmzeFxU1NTNRpNeHj4E088Ybf35MmT7cq0tSY9PT0sLCw5OdlisXS8NQAA0F5FRUWSJMnJHnmhqKhIEISmpiYnteRMm62ZM2eOGTPm7NmzVVVVO3fubPO4dh3OlOXhw4dLNtqbYXL7x9IOHrfNYFy8PkqVzogHAAAA3RnJNvxfso3vpADgitY+adlqbm5WlqdNm2Y2m2tra7/99ttHH3104sSJ8nbnn2C0Wq0HY1bx1yn4TQ4AAFTx8MMPy13fysvLDQbD7NmznZcvKioaMWJEWFhYbm7upk2b2mw/JSXljTfeaG5urq2tlYeRlCUlJWVmZhYWFtq+Djnn7+9vMBgsFsuBAwcmTJjgYi07zo87cuRIeQztNs2aNWvjxo0Wi6W4uHjt2rXKdifXx2H8blwHAICtjs87DgBdjGQbBI1GI/A9FAA6TP7UUlJS8uyzzyobIyIicnJyfHx8BgwYMHjw4Lq6Onl7Z3+Cae1Tkcz1T05u8MgnMwAA0C6RkZG2qxs2bKiqqoqMjLzllls+/vhjZQpYpXe+3Z+bN29+7LHH9Hr9smXL5syZ46Sk/OeaNWtKS0vDw8PHjBkzbdo05bgLFy4sLy8fO3asXq+fNGnSmjVr2ow8KysrJSVFp9NlZmZu3bpV2W43loBdAMJvv8M6P67VanVxjOv169cXFhbqdLqkpKR58+a1eX1ai9+N6wDAFcp/COihuIMAvBizqkCQJOnnn3/WaDQxMTE88ACgJYdztkVFRV2+fNl2i8FgmDVr1m233fbXv/516NChgiBIkjRy5MjHH3/8tddeKyws9Pf3z8rKSk5OFgTBarWuW7funXfeqaysHDVq1L333rts2TKhxa/vufKYdlilrq7u6aef3r179/XXX//ee+8p8chlhg8f7uPj4+JIkg7bVzZKkmS7LF+HlJQUjUYjf1qKj4935SjobpizDQC6Lds521RnsVj27du3YsWKM2fOqB0L2oc529B9tGvONq+cIjomJsZuAs6uqasKVe5gt52zrba2duDAgV0cEtBlhgwZ8o9//EPtKLqO/UDt6IVEURw0aJDaUQBAD2OXaRMEITk52WQyycvKDw85OTmCILScNc3X1/eFF1544YUX7La78VOHwyohISHbt2/fvn27wzLffPNNB9u33WhXIDk5md7SAAB4vRdffHH16tUajWbKlClHjx5VOxwA6AomkykgIMDjzZaUlHRe3U6KudvqWecrSVJ1dfX58+fVDgTwvFOnTrUcacnLSQAAwKnVq1cvWrRI7SiALnXLLbfk5OSoHQUAwIFXX311yZIlakeBHu/JJ5/cuHGj2lEAkiRJoaGhpaWlyuq5c+emT5/et2/fwMDAMWPGHD58OD4+XtkrCMLPP/989913+/r6+vv779mzx7aptWvXjhgxIjQ0tH///s8+++yVK1dsKwqCUFNT8+CDD/r7+7esu3v37htuuCEkJOQ///M/lfH/lb0ffvhhTEyMIAghISETJ048deqUi2e3Z88ef39/QRDCwsKSk5OPHj16yy23KHuvv/56519rnZxRm3Xdi1lu5+2339ZqtV9++eWqVauCg4Ndv85Sx+6gJElK5slhYE7uoJPzraioCAwMdOX0PS4gIMBoNLa2t7q62tfXtyvjAbrM8ePHhw0bpnYUXYo52wAAAAAAQGeJiooSW3BxvDgAvc3Zs2cnT548efLkM2fOVFdXf/DBB/n5+Uaj0bbMH//4x9dff91isciTJtruGjp06MmTJ6urq//9739rtVp5DH+ZJEmCIKSmpi5ZssRkMtnV/frrr1966aWPPvqooqJiwYIFL7/8smAzhsexY8d27Nixb9+++vr60tLS5cuXz58//9SpU66cUUpKSlZWliRJlZWVmzdvLioqKisrU/ZeuHBBPort51oXz8h5XbdjlhvJz89/9913H3zwwStXruzYscP169zBOygIgpyZay2w1u5gR+4RAHiEFw5zDACAZzmcs60rRUVF2f48JouMjGw5lCXgKczZBgDdVreasw09F3O2ofuwnbPtwQcfnDFjxpw5c1orLIrid999J09KLTidAMxqtfr7+zc3N9vW3blz5yOPPNKy7uTJk5977rlJkybJq3v27JkxY4ayd9y4cdu3b7/22muVpn744YfFixcfOnTIlbPbuXPn6NGjw8LCnJyUK19oW56Rk7odiVkUxatXr4aFhYmiWF1dHRoa6vp19tQddLjdyR10fr7dds62mpoanU7X1NTUxVEBXeDEiROLFi1q1zwmPR1ztgEA0N2RVAMAAADQGxw7diwzM9N5GSVPY8dkMm3cuHHHjh2XLl0KDg6+/fbbW2ZrlDyNnVOnTo0aNUpZHTdunO3enJycQYMG2VUJDg52Hqfs66+/fuaZZ06cOHHNNdfceuutQUFBGRkZ0dHRrtR15Yxa05GYBUFQUoOhoaHtiqojd9AVrd3BDp4vejQX09Uer9sRah0XnYpkGwAAAAAAAAD1Wa1WURTdq/vss89GREScOHGib9++FouloKDgpptu8khUQUFBZ8+ete015bqbb775yJEjtlumTp366aefulK3I2fUkZg7ElVH7mBHdN75dh/yhSVD0y4GgyElJUWSpKioqFtvvfWzzz5TOyJ4M+ZsAwAAAAAAAKC+u+6665NPPnGv7ocffrh48eLw8HA/P7+goKB+/fq5XnfEiBEnT55UVg8fPmy7d+rUqe+//757UbW0f/9+5wVMJpO84MYZKXU9G7Mt51F15A52ROedb/fRO9NsMTExbZZxcmXkSRMtFkthYaHDTFtnXNUOxoyei2QbAAAAAAAAAPWtXr36pZdeOnz4sCRJDQ0NeXl5mZmZ8+bNc6VufHz8O++8U1dXZzQat2/fPnv2bNeP+/LLLy9duvT8+fMWiyU7O/uf//yn7d709PQtW7b8+c9//vnnny0Wi9Fo/Pzzz6dOnepKyxERER9//HFlZaW8mp2d7e/vb1fG39/fYDAIglBSUpKRkTF69GjXz6i1uh2J2TnnUXXkDnZE550vFEoqtyuVlJR0pLrFYklOTvZUMC7qYMzouUi24TdIqgMAuhUnI5CIoqjK+CSu6IzYVqxYoSx/8MEHvr6+oihqNBr5R2u7Q4ui2Ldv39zcXHnjF198MXv27OTk5JZVbJsFAHi9bvX07Mpgus9ZA3Bu5MiRBoNh7dq1Op0uJibm0UcfbWxs/Mtf/iLvlf8tK/+i7Vbfe++9AwcOREZGDhky5MyZM7t27XJS2G71zjvvXLly5ZQpU/r27ZuRkbF27VrbqPr37//ll19euHAhMTFRq9WOHj362LFj7777ritnNGjQoJiYmKeffjomJmb48OGzZs3KysqyK5OVlZWSkuLj4zNq1KgLFy7s27fPlTNyXtftmB1eKMHl69yROyjY/Dhjt9xm3Y7co24lLy9vxowZOp0uKCho7NixR44cSUhIsC1QUFAwbtw4Pz+/lj8Mrlu3LjExMSwsbMCAAc8991xFRYWyS76StbW1Dz30kEajaVl3z5498fHxWq129uzZ9fX1ds/orKys2NjYwMBArVY7adKkb775xsXTafO4Z8+efeihh2JjY2NjY6dPn56Xl6fsuuGGG+z+JrR8mufn57f2OhEXF2dX/d5773WxrvO74OQ6dzBmJ1ejzSvpnPP7q6wePHhw6NChCQkJylC3ynFnzJgREhJy0003yf/kZQaDQaPRiKLYp0+f6dOnHzt27NZbb3U9Ki8kAZIkSVJVVdWFCxdKS0vVDgQAup3Vq1cvWrTIbuM111zTSYfTarWeaqqurs5TTXXP43bnNxnPxnb+/Pmnn35aWdXpdPv375ckac+ePf7+/m0e98YbbzQajfLyl19+GRISoux6+umnL1682LLKLbfckpOT45HgAQCe9eqrry5ZssRuo+tvJl3w9HT9TaAbPso9+CbWzT355JMbN25UOwpAkiQpNDS0u32PKisrCw0NVTsKeExFRUVgYKAqhw4ICFB+Fmupurra19dXWc3Nzb322mvfeeedoqIis9n8yy+//Pd//3e/fv2UAoIgTJo06dSpU83NzS1/GPzss8/khYqKihUrVowdO9Z2ryAITz755BdffNGy7ldffXXzzTf/7//+b2Nj41dffZWammr7gD569OiUKVO+/fbb+vr6mpqaf/zjH6NGjTp58qSLV8DJcXNzcxMTE3/88Ud59aeffrrzzjvPnTtnV92VQ7ixq7UCbd4F59fZ7ZjbvBpOrqRzzu+v0vibb7752muvFRUVNTc3P/zww7a7/vSnPx04cKChoaGgoODuu++Wu65KkuTv779nzx5JkqxWa1lZ2XvvvRcREaFUPH78+LBhw1wM0jt0u/daqKWmpub8+fOXLl1SOxAA6HYcJtvsXk0aGhoWLlwYGRl5zTXXbNu2LT4+XimmlLRdll+MBEEIDQ39f//v/ynldTqdw9+JMZvNaWlpCQkJ8fHxqampJpNJafD111/XarVffvllZmamVquVX3TKyspGjBghCEJkZOT8+fOVb15ylcrKynnz5mm12qVLlzo/9/bG76njSpKk/CKV7cba2trf/e53ISEht99++w8//GC3NzExMTExsc2W7S6v3eqCBQsSEhKCg4MnTJhw9OhR5/G3dt/lKkeOHImNjVXePt1oX5Gamvr3v/+95bmYTKaRI0fanV3LYtdee21rZXbv3v3888+3rEKyDQC6LYfJNhffTCS3nlCbNm2yK19XV/f444/37dv3jjvuOHfunPIkbe1NoDWCIBQUFIwaNapv376///3va2trbY/76aefSr++EvTv31+p5eITX+bwjaK182rtTcwrkWxD99Hdkm1FRUVPPPHEq6++qnYg8Jiekmx74IEHtm/f7qQ1QRC+++4729XWSjY1NYmiaFd3586dDutOmjRJSSBJkrR7927bvXffffdPP/1k29T3338/YcIEJ3G6eNxp06bJv0Wq2L9//4MPPmhX3ZVDuLGrtQJt3gVbLa+zKwd1WKbNq+HkSjrn/P4qrR08eFBZbWpqst1l+zkiJydn/Pjx8nJoaOiBAweuXr3q8Li9MNnGMJL4P8HBwQMHDuzfv7/agQBAj7R8+XKz2Xz69Okff/wxJCTEaDTK26Xf5nKU5Tlz5tx///0Wi6W0tHTp0qVVVVXydrmi8pxWyq9YsSI2NjYvL+/8+fOxsbHy0H9yAavVum3btqlTp54+fXrbtm0pKSmCIKSmpm7YsMFsNl+8eHH8+PHyLy4pVaZPnz527NiioqLJkyc7P6/2xu+p4wqCMGXKFNsjytLS0qKjo41G46FDh/bu3dsy2pZVHJ7UnXfemZ2dLa9mZ2ffddddSsX09PS8vLyqqqply5Y98MADzuNv7b7LDhw4kJeXJ4/romxsV/uKgwcP3nTTTS3P5ciRI8o3RFlQUJA8zoPtsBK//PJLa1dj8ODBBw8ebP1qAQB6JM8+oYqLi3Nzc23Lp6Wl6fX60tLS48ePf/bZZ0rJ1t4EnHj33Xd37dp18eJFrVb7/PPPyxu/+uqrO++8c8qUKYIgJCUljRgxwvZ55+ITX+bwjaK182rtTQxAb7Bu3Tr5Rfr222+/7bbbXnrpJbUjQq9z7NixpKQk52WGDh3qcLvJZFq9evXgwYODg4PDw8MnTZrU8kH2yCOPOKx76tSpUaNGKavjxo2z3ZuTkzNo0CDbcRGHDBmi/EDtitaOe+zYMdvjCoIwcuTIo0ePut5yZ3B+F1y5zm4ft82r0dqVdM75/VXcd999yrKvr6/trrFjxyrLQ4YMycnJkZe//vrr9evXR0RExMXFTZ069eGHH+7t89V1Xh4PAADvYNuzLSYmxu5JGhMTI0nSNddcU1FR4bC68NtPNvLCJ598IvcMCw8Pv+mmm2y7EDl8OkdFRVVWVsrLRqNRGSpKsPneZLug1+ttg7TtyC8IQk1Njeun3674PXjclkeXJEmn0ynX+cqVK26/yXz++efKL+JNmDBB+QWu8+fP33///Xq9PiQkRH6bdB6/8/tusVjszqK97SvCwsJa7j106FBJSUlrVQoKCpRhJewulO3q1atX+/Tp07I6PdsAoNuy7dnm3ptJe59QLZcjIiKU9svKypTtTt4EWgumsLBQXq6oqLAtn5ycvHv3bkmSPvroo1mzZrV1VdrQ8p2hzXP0evRsQ/fR3Xq2wfv0lJ5twcHB5eXlTlpz8pPdk08++dJLL5WXl1sslvr6+rNnzzopbLfar18/5YOD1OJnbZ1OZ9ezrV2cHFer1V65csV275UrV+zGc3blueykTJvVWxZwfhfavM6uHNRhmTavhvMb6oTz+9tma4Ig2L5VNjY22g6qaUf+JScZPdsAAIAzRUVF8hNU+PVFpKioSBCEpqamNus2Nzcry9OmTTObzbW1td9+++2jjz46ceJEh1XMZrOyLLXnt6WGDx9u+7yXv4IptFqt600pXIm/M47bGtuL014TJ05saGg4fvz48ePHGxsblV/gmjlz5pgxY86ePVtVVbVz5067Wi3jd37f/fz87La0t31Fy7u/Y8eOuLi4a665prUqAwcOtFgsre21Wq1OGgcA9BTuvZm09wnVkiiKyrLtc8T5m4Bzzc3NPj7//zeK1atXr1y50mQyvfrqq6+++qrr7XhQR142APQScXFxYivi4uLUjs6xnhhzL3HXXXd98skn7tX98MMPFy9eHB4e7ufnFxQU1K9fP9frjhgx4uTJk8rq4cOHbfdOnTr1/fffdy8q5+69996vv/7adstXX301fvx4J1VMJlNnRGLL+V1w4zq7GLMbV8NFzu+vK2w7Mn7//ffDhw9vreT+/fvb27g3IdkGAIAHPPzwwxs2bBAEoby83GAwzJ49W9nl7+9vMBhKSkqeffZZZWNEREROTo6Pj8+AAQMGDx5cV1dnV95isRw4cGDChAnyxjlz5mzZskX+brV58+ZHH33UeTxJSUmZmZmFhYW2GTL3tCt+Dx7XoVmzZm3cuNFisRQXF69du9Zu78iRI0eOHOliU6+88srKlStXrlz5yiuvKBuLiopGjBgRFhaWm5u7adOmNhtxct8dam/7iri4uOLiYmX1o48+uu222+Lj44Xffu4cO3bsypUrL168KAiCwWCQex8KghAUFKS8HJ88eTIsLEy5QYWFhdddd53rkQAAeoTOfkKlpKS88cYbzc3NtbW1mZmZynY33gS2bNlSWFhYWVm5atWqmTNnKtsHDx581113TZs2bdSoUfIjT9GuJ357OXwTA4DWFBQUtNbFoaCgQO3oHOuJMfcSq1evfumllw4fPixJUkNDQ15eXmZm5rx581ypGx8f/84779TV1RmNxu3bt7f56Lf18ssvL1269Pz58xaLJTs7+5///Kft3vT09C1btvz5z3/++eefLRaL0Wj8/PPPp06d2r5zc2Tt2rUrVqzIzs5uampqamrKzs5euXKl3U/68nNZEISSkpKMjIzRo0d3/LjOOb8Lrlxn92J25Wq4x/n9dcWPP/548OBBk8n0yy+/pKam/ulPf5K3R0REfPzxx5WVlfJqdna28hWil3Le8Q0AANgOI6mIjIy0Xa2trX3qqaciIiIiIiJ+97vfFRcXK7v27Nmj0WiGDx/+73//W3n4JiYmbt68WZ4p09/ff8+ePbbl/f39Q0JCpk+ffv78eXmjyWRaunRpbGxsbGzs0qVLTSaT5Gg2NenXX2xvampavXr1tdde26dPn4kTJ6anp8vtuPEa0K74PXhch1Vqa2vnzJkTEhIyZMgQ23hkw4YNGzFihCuNy+6+++5x48bZnWxcXFxQUFBSUpI8HITgqOOXUr61+97y1sjL7W1fsXjx4o8//lhZDQ4Odli+vLx8zpw5ffr0sbsv8l8qQRDCw8NjYmL++c9/KlV2796dlpbW8ogMIwkA3ZbtMJIKF99M3H5C2S3X1dU9/vjjOp1u6NCh33//vfIwau1NwCG5tZ9++ikxMbFv376PP/54XV2dbYGLFy8GBARcunTJrmK7nvgOH7KtnZfUypuYV2IYSXQfDCOJztZThpGUJOlf//rXhAkT+vTp07dv38TExIyMDOXh6ORZJknSuXPn7rnnnuDg4NjY2NTU1OrqaieFW/4suWvXruuvvz44OHjWrFlyXduoCgsLf/e734WHh2s0mhtvvDEtLa2srMyV02/zuLm5udOmTdNqtVqt9oEHHjh37pxdC/JzWRTFAQMGLFy40PZji+CIslf5YqBISkpysa6Tu+D8OncwZidXo80r6Zzz++skJOnXEcifeOIJrVZ7/fXXZ2VlKbsSExNzcnJmzZoVHR09bNiwAQMG2H7d6oXDSIoSAwcBAOBUenr65cuX33zzTbUDQe91/vz5t9566+233/Z4y/Pnz1+yZEnLzm233nrrtm3bEhMTPX5EAEAHvfbaa1evXpU7rqnOYrHs27dvxYoVZ86c8XjjGRkZP/744xtvvOHxliEIwlNPPRUfH7948WK1AwGEsLCw/Pz8qKgotQOB1zIajbGxsQ0NDV1/6MDAwJKSEp1O53BvTU2NTqdzZVqKrlReXn799dcraSR4mfbeX1F0M4V04sSJRYsWffPNN27U7aHsB2oHAABAd5OQkNC3b9/OaFmv1zOMJADADS+++OLq1as1Gs2UKVOOHj3q8faVcZJJtgFez2KxJCQkqB0FvBwdTlxUXFz8yiuvpKamqh0IOgX3t1ORbAMAAOgBVq1a1RnNvvbaa53RLADA661ataqTnk0yvooCvYefn9+hQ4fCw8PVDgReq6qqqgvm+urR1q1bl5aWJghCRETEypUrFyxYoHZE8CS376/8y09ud27rbUi2AQDQ20VFRZWVldltjIyMvHz5slceFwAAdCWe+ACcE0UxLi6OYSTReYxGo9JhGg49//zzzz//vNpRoLO4fX/JsbWLj9oBoHupqakpLi6uqalROxAAQNe5fPlyy2ldu+D7l1rHBQAAXYknPgAAXikuLk5sRVxcnNrR9Rbche6Dnm34DbPZXFdX5+fnFxoaqnYsANBd1NTUnD179m9/+5vagQBdp6qqSpX5wwEAbfrXv/71j3/845133lE7EPRsVqt12rRpakcBAOjBCgoK1A4B3IVuhGQbfkOj0QiCYDab1Q4EALqR3NzcEydOfP/992oHAnSd8vLyoqIitaMAADhw880363S6Z599Vu1A0LOtXr36pptuUjsKoH2czBskDxLoxohnrlRs73xFzG8EAL0QyTb8hpxsM5lMagcCAN3IqFGjrr322jfffFPtQICuc+utt95www1qRwEAcCA0NLS5uXn48OFqB4KeLTIykiFt0G1FR0eXlJS03O4kgyVJknuTcrlSsb2ZM9fLh4aGMpkLAHgHkm34DY1GI4pic3Oz1Wr19fVVOxwAAAAAAAD0LqWlpXZb9u/fP3XqVOG3eay6urr58+fv2rUrPj7+vffes6sycuRIQRBycnJcOeKlS5dmzpyZl5eXnJyckZEREhLi5Lj19fWLFi3atWvXoEGDPvjgg8GDBysFHJaXk3mbNm1au3ZtWVlZVlZWcnKyIAh6vb62tlZJ9dEZrheqq6sTRTEoKEjtQIBOERwcrHYIXYpkG35DFEV/f3+z2WwymXrKQPX5AAAgAElEQVTbPwYAcKKxsbGyslLtKICuY7Va1Q4BANCqvXv3Xrp0Se0o0LN9++238fHxakcBuGrKlCktu6ClpaVFR0cbjcbq6uotW7bYVWlX7urdd9/dtWtXcHDwyy+//Pzzz7/99tvOj6vX60tLS5uamjIzM22P5bC8vKW4uDg3N/fIkSMpKSnyBC5Go5EBJ3u54OBgSZKKi4vVDgTwvK+//nr58uVqR9Gl+A8d9kpKSmprayMiIvr27at2LADQLaSnp/e29wNAEIScnJzExES1owAA2MvNzT1z5ozaUcAbDB06NCEhQe0oACEsLCw/Pz8qKio2NtYu6xATE2M7kbBdakqv11+4cEGv1wuCUFFRER4e7t53TlEUCwsLY2NjBUEwGo2DBw8uKyuzK2DbcmRk5Llz5+TjlpeXR0ZG2h23ZQrNdktry+g8RqMxNja2oaGh6w8dGBhYUlKi0+kc7q2pqdHpdE1NTV0cFdAFTpw4sWjRom+++UbtQLoOPdtgT562Tf4VGwCAIAgvvPDCCy+8oHYUAAAAgiAIN998880336x2FADgeUpezY0UlKc+ZDU3N/v4+DgvY9txzYOpMrPZLH+UAwD0RG08PNALkWwDAAAAAABANzdr1qyNGzdaLJbi4uK1a9fa7R05cqQ8bZsrtmzZUlhYWFlZuWrVqpkzZzovnJKS8sYbbzQ3N9fW1srDSLrN39/fYDBYLJYDBw5MmDChI00BANRFsg32SLYBAAAAAABALZGRkXZbRFGU+5MpC4IgrF+/vrCwUKfTJSUlzZs3T/htnzOr1epKtzO5yty5c6dPn37dddfV1tauWbPG+XHXrFlTWloaHh4+ZsyYadOmtRmnssXuT0EQsrKyUlJSdDpdZmbm1q1bXbs86KXs5gK02+Vkr/M226zY3pbdiwTwAowLDHuSJF28eFGSpEGDBvn5MdAoAAAAAAAAOosyZ5vagbSbxWLZt2/fihUrmEqzm+tZc7ZFR0eXlJS090Buz/+n4sSBoaGhNTU1qhwaXaAXztlGzzbYE0VR7txmMpnUjgUAAAAAAADoXl588UVRFLVa7Y4dO44ePap2OPAqpaWldlv279/fsgtaXV3d3LlztVrtHXfccfr0absq7RpG9dKlS3feeadOp5s3b15dXZ3z49bX1//hD3/Q6XTDhg3Ly8uzLeCwvLwlIyOjf//+Go3GYDDI2/V6fW1trfgrF0MFujOSbXAgICBAINkGAAAAAAAAtLBq1SpJkkwmk8Fg6Il98tCzTJkypWXns7S0tOjoaKPReOjQob1799rtlSTJ9f5q77777q5duy5evKjVap9//vk2j6vX60tLS48fP/7ZZ5/Jx3JSXt5SXFycm5srj5sqbzcajUqcjL0H78AwknCgsrLyypUrWq02Ojpa7VgAAAAAAADgtXruMJLoKdQdRnLWrFlyx4aWLBbL9u3brVarIAixsbHFxcW2e2NiYoqKipRVu/Ee9Xr9hQsX9Hq9IAgVFRXh4eFuDyNZWFgYGxsrCILRaBw8eHBZWZldAduWIyMjz507Jx+3vLw8MjLS7rgtx6W03dLaMrxPLxxGkhm54ID8ADCbzWoHAgAAAAAAAAA90p///Gc5l+aQ7bhiSl7NjRSUp77iNjc3+/i0MRKe7ZCPHkyVmc1meWIjoOci2QYHlGSbJEmMmQsAAAAAAAAA7bV06VIne2tqal599VX3Wp41a9bGjRtffvnl8vLydevW2e2VJ2zLyclxpaktW7Y8/vjjISEhq1atmjlzpvPCKSkpb7zxxiuvvFJfX5+Zmele8DJ/f3+DwXD//fcfPnw4PT39iy++6EhrgOqYsw0O+Pr6+vn5CUzbBgAAAAAAAABdJTIy0m6LKIpydwhlQRCE9evXFxYW6nS6pKSkefPmCb/tc2a1Wl3pdiZXmTt37vTp06+77rra2to1a9Y4P+6aNWtKS0vDw8PHjBkzbdq0NuNUttj9KQiCPIWbTqfLzMzcunWra5cH6L4YFxWOFRUV1dfXR0ZG9unTR+1YAAAAAAAA4J2Ysw2dTcU525yrqanR6XRNTU1qB+IOi8Wyb9++FStWnDlzRu1Y0B31wjnb6NkGx5i2DQAAAAAAAABg68UXXxRFUavV7tix4+jRo2qHA3QXJNvgmJxsYxhJAAAAAAAAoCXbUfta7nKyt+PtAypatWqVJEkmk8lgMNAnFVCQbINjGo3G19fX19dX7UAAAAAAAADQi0RHR7tYMjQ0tF0tOylfX1/frqYEQXAyO49HJu5xvZH2XgcAgMeRbINjAQEB1113nesvNwAAAAAAAEDHlZaW2q4aDAaNRiOKYlhY2JgxYxISEuTter2+trZW/JVtlWeeeebGG28MCQm57777jh075rx8eXl5YmJiSEhIVFTUggULXMm67d+/v+VB6+rq5s6dq9Vq77jjjtOnT9tVGTly5MiRI128Ag7bl7dkZGT0799fo9EYDIY2rwMAoMuQbAMAAAAAAADQTc2ZM+f++++3WCylpaVLly6tqqqStxuNRkEQpF/ZVklPT8/Ly6uqqlq2bNkDDzzgvHxqauqGDRvMZvPFixfHjx+fmpraZkhTpkxp2e0sLS0tOjraaDQeOnRo7969dntbBtne9uUtxcXFubm5WVlZKSkpzs8LANCVRP4LBgAAAAAAAKCKsLCw/Pz8qKio2NjY4uJi210xMTFFRUV79+6dMWOGxWIJDw+PiIjYvn17YmKiXEAUHXzbzM/PX7x4cXZ2tslkGjZs2PHjx5UyDsv369dPzlfJIiIiysrKXIncrjW9Xn/hwgW9Xi8IQkVFRXh4eAe/u7aM1nZLa8toyWg0xsbGNjQ0qB2IvZqaGp1O19TUpHYggOedOHFi0aJF33zzjdqBdB16tgEAAAAAAABQWVFRkdI3S14oKioSBGHatGlms7m2tvbbb7999NFHJ06c6LC62WyWF2bOnDlmzJizZ89WVVXt3LmztcMp5YcPHy7ZcDHT5pzSeNdT8dAA0JuRbAMAAAAAAADQTUVEROTk5Pj4+AwYMGDw4MF1dXXKLn9/f4PBYLFYDhw4MGHCBHljUVHRiBEjwsLCcnNzN23aZNuUw/JJSUmZmZmFhYXNzc0diXPWrFkbN260WCzFxcVr166129uuOdvay+F5AQC6Esk2AAAAAAAAAN1FZGSk7eqgQYO+++67hIQEURRTUlKysrKUXfLUZTqdLjMzc+vWrfLGzZs3P/bYY3q9ftmyZXPmzBEEQRRFJ+UXLlxYXl4+duxYvV4/adKkNWvWtBmhKIpym8qCIAjr168vLCzU6XRJSUnz5s2zPa4gCFar1fWRHh22r2yx+7O18wJ6Itu/856yYsUKZfmDDz7w9fUVRVGj0RgMhpaHFkWxb9++ubm58sYvvvhi9uzZycnJLavYNgsIzNkGAAAAAAAAQC3KnG1qBwKv1bPmbIuOji4pKemkI9bX1wcHB3dS457i2TkI8/Pz33zzzbffflte1ev177//flJSksFgSElJsR121eFxBw8e/NVXX+l0OkEQsrOzJ06cWFtbK++aP3/+kiVLrrvuOk+F6mWYsw0AAAAAAAAAAKigtLTUdlXua5WRkdG/f3+7nlXPPPPMjTfeGBISct999x07dkwp/MYbb4SGhmZnZ2/dujU0NFSuUl5enpiYGBISEhUVtWDBgvr6etujuDjMqdL3y+Fqy3iUMlVVVY899lhoaGhqaqq8vbGxcdGiRVFRUdHR0e+++25CQoLtgY4ePerK+TppX7FlyxbbiR6NRmNSUpIgCFOnTr3jjjvaPGWTySRn2gRBGD16tO0wtuPHj9+8eXObLaD3INmGtnVwxGoAAAAAAAAAQHvJfa2Ki4tzc3Pl8UKVXenp6Xl5eVVVVcuWLXvggQeUwlarddu2bVOnTj19+vS2bdvkKqmpqRs2bDCbzRcvXhw/frxdUkqSJFc6k0mSdOedd2ZnZ8ur2dnZd911l1KxZTxKSNOnTx87dmxRUdHkyZPl7cuXLzebzadPn/7xxx9DQkKMRqPtgQ4cOJCXl9fm+TppX3Hw4MGbbrqp5bkcOXLk008/td0SFBQkp+5sk3y//PJLa1dj8ODBBw8ebP1qoddhGEk4U19fX1JSEhAQ0L9/f7VjAQAAAAAAgLfpnsNIRkVFlZWV2W2MjIy8fPmyKvGgI3rEMJKxsbHFxcW2e2NiYoqKioTfDm+oLOfn5y9evDg7O9tkMg0bNuz48ePydqWA3UK/fv1sE1oREREt/4a74uDBg+vXrz906JAgCPfdd9/zzz9/3333OYlHDqCmpkar1dq2Ex0dfebMGb1e3/IQoihaLBY/Pz9Xzre19hV9+vQpKiqy23v48OFbb731mmuucVjl0qVLN9xwgzzCpN3Ykrar1dXVAwcOrKqqauua9VIMIwn8hp+fX3Nzs+3YtQAAAAAAAIB3u3z5stQCmTZ0nqKiIqV7mbwgZ9paM3PmzDFjxpw9e7aqqmrnzp1ttj98+HDbv8zuZdoEQZg4cWJDQ8Px48ePHz/e2NgoZ9rajKdlJsxupjo7cqbNVnvbV7Tsa7Rjx464uLjWMm2CIAwcONBisbS212q1OmkcvRnJNjij0WgGDhw4aNAgtQMBAAAAAAAAAAiCIBQVFY0YMSIsLCw3N3fTpk1tlk9KSsrMzCwsLHQ4YZCLc7bJXnnllZUrV65cufKVV15xO56HH354w4YNgiCUl5cbDIbZs2c7L9/e9hVxcXG2XQY/+uij2267LT4+XhAEZbY5QRDGjh27cuXKixcvCoJgMBj8/f3l7UFBQcqwmSdPngwLC1MuYGFh4XXXXed6JPB6JNvQhoCAANv/dwAAAAAAAAAAnSEyMtJ2Vf4w2/LPzZs3P/bYY3q9ftmyZXPmzJG32xYQfptMWrhwYXl5+dixY/V6/aRJk9asWWN7FKvV6nonrfHjxzc3N0uS9B//8R/KRofx2P6phCfbsGFDVVVVZGTkLbfc8vHHH69fv96N83XSvmLixInnzp1TVufOnTts2LCWhQ0GQ0FBwfDhw0VRTElJycrKkre///7799xzjyiKERERDz300N69e5U83Llz5yZNmuTiRUNvwJxtAAAAAAAAANTRPedsgzfpEXO2oZOcP3/+rbfeevvttz3e8vz585csWULnttYwZxsAAAAAAAAAAECPl5CQ0Ldv385oWa/Xk2mDLZJtAAAAAAAAANAzOJnwpbWR9DzVPtATrVq1qjOafe211zqjWfRcJNsAAAAAAAAAdBfR0dGuF66vr3e9cGhoaPvD8UA7Tsq3K36Zk1mBPDJhkOuNeOp6AoAXINkGAAAAAAAAoLsoLS21XZV7a2VkZPTv31+j0RgMBnl7eXl5YmJiSEhIVFTUggULlKxVZGSkXq+Xl/V6vTIbnF6vr62tFX/VZhgGg0Gj0YiiGBYWNmbMmISEhDbbeeaZZ2688caQkJD77rvv2LFjzsu3Fr8T+/fvb3nQurq6uXPnarXaO+644/Tp03ZVRo4cOXLkyDZbdtJ+a9e/vdcTALybn9oBAAAAAAAAAIBjkiSJolhcXJybm3vkyJGUlBSz2SwIQmpq6oYNG0aPHm0ymQ4dOpSamvr2228LgpCTk/PUU0+VlJQ0NTUNGzYsMzNTbsdoNIqi6Hq3rTlz5tx///07d+40m80HDx584okn2mwnPT09IyPDYrF88cUXDzzwQE1NjZPyrcXvxJQpU+SrYbsxLS0tOjraaDRWV1dv2bKl5dVz8Xxba7+169/e64mWGhsbBUG47bbb1A4E8LyGhgb5b3jvwX+IAAAAAAAAANQRFhaWn58fFRUVGxtbXFxsuysmJqaoqEgQBNukjrLcr18/o9GoFI6IiCgrK5OXCwoKnnzySbPZvHXr1muvvVYp067k0N69e2fMmGGxWMLDwyMiIrZv356YmOiknfz8/MWLF2dnZ5tMpmHDhh0/frxlzLacxO+cXWt6vf7ChQtyZ76Kiorw8PAOfu9tGa3D6++wZPdkNBpjY2MbGhrUDsReRUVFZGTk6tWr1Q4E8Lyff/758OHD+fn5agfSdejZhrZZrdbLly9bLJa4uDi1YwEAAAAAAIAXkvNqgsspnOHDhx88eNDhLlEULRZLYGCgr69va9XNZrNGo3HS/rRp08xmc11dndFo/Nvf/jZx4sTKykon7cycOXPWrFlbt27V6/VXrlxpbeY5pbyT+N0m9zlTRZvXEy3J45SmpaWpHQjgeSdOnMjJyVE7ii7FnG1om6+vb0NDg9lsVvGBDQAAAAAAACiSkpIyMzMLCwubm5tttxcUFPz+97//61//mpmZ+cc//rGgoEDZ5e/vbzAYLBbLgQMHJkyY4Lz9iIiInJwcHx+fAQMGDB48uK6uznk7RUVFI0aMCAsLy83N3bRpk21TDsu3Fn97zZo1a+PGjRaLpbi4eO3atXZ72zVnW3u163oCgHejZxtcEhAQ0NDQYDKZ+BUVAAAAAAAAdJ7IyEjbVXkKMbm7m+3ywoUL161bN3bs2MrKylGjRt17773Lli0TBGH48OEWi2XgwIGCIHz55ZeJiYnK8IxZWVkpKSkajWbSpElbt251HsagQYO+++67GTNmFBYW+vv7Z2VlKbsctrN58+bHHnusrKzsnnvuef3119PT05Uueg7Ltxa/E8psavKC3Pj69euffvppnU53/fXXv/fee2+99ZZt10Cr1erj42p3C4ftt3b923s94ZAkSS1TpIAX+Pnnn9UOoav1jHF1obry8vKqqqq+fftGRESoHQsAAAAAAAC8hDJnm9qBwGt12znbGhsbFy1apHYUQGcZOHDgiy++qHYUXYeebXBJYGCgIAgmk0ntQAAAAAAAAACgxwsMDNy8ebPaUQDwDOZsg0sCAgIEkm0AAAAAAAAAAAC/RbINLtFoND4+Ps3NzWazWe1YAAAAAAAAAA+IiooSW1BxTMvuFg8AwEUMIwlXBQQENDQ0mEwmjUajdiwAAAAAAABAR12+fFntEH6ju8UDAHARyTa4Sk62NTY2hoaGqh0LAAAAAAAAvIHFYklISFA7Cng5SZLUDgGAlyPZBlcFBgYKTNsGAAAAAAAAz/Hz8zt06FB4eLjagcBrVVVVjR49Wu0oAHg5km1wVUBAgECyDQAAAAAAAJ4jimJcXBzTkqHzGI1GURTVjgKAl/NROwD0GBqNRhTF5uZms9msdiwAAAAAAAAAAADdAj3b0A6BgYHytG0ajUbtWAAAAAAAAOANZs6cybcmdB6LxaJ2CAC8n8jkkHDdlStXKisr+/TpExkZqXYsAAAAAAAA6PEMBkNTU5PaUcDL+fr6Tp8+Xe0oAHgzkm1oh9ra2pKSkoCAgIEDB6odCwAAAAAAAAAAgPqYsw3tEBgYKAiC2WwmRwsAAAAAAAAAACCQbEO7+Pn5+fn5SZJkMpnUjgUAAAAAAAAAAEB9JNvQPnLntsbGRrUDAQAAAAAAAAAAUB/JNrQPyTYAAAAAAAAAAAAFyTa0D8k2AAAAAAAAAAAAhZ/aAaCHCQgICA4ODggIUDsQAAAAAAAAAAAA9YmSJKkdAwAAAAAAAAAAANAjMYwkAAAAAAAAAAAA4CaSbQAAAAAAAAAAAICbSLYBAAAAAAAAAAAAbiLZBgAAAAAAAAAAALiJZBsAAAAAAAAAAADgJpJtAAAAAAAAAAAAgJtItgEAAAAAAAAAAABuItkGN1ksltraWkmS1A4EAAAAAAAAAABANSTb4KaioqKSkpKGhga1AwEAAAAAAAAAAFCNn9oBoKcKDAz09fVVOwoAAAAAAAAAAAA1iQwDCAAAAAAAAAAAALiHYSQBAAAAAAAAAAAAN5FsAwAAAAAAAAAAANxEsg0AAAAAAAAAAABwE8k2AAAAAAAAAAAAwE0k2wAAAAAAAAAAAAA3kWwDAAAAAAAAAAAA3ESyDQAAAAAAAAAAAHATyTZ0VHNzs8ViUTsKAAAAAAAAAAAAFZBsQ4fU1dVdvHixtLRU7UAAAAAAAAAAAABUQLINHRIQECAIgslkkiRJ7VgAAAAAAAAAAAC6Gsk2dIifn5+fn58kSY2NjWrHAgAAAAAAAAAA0NVItqGjgoKCBEFoaGhQOxAAAAAAAAAAAICuRrINHUWyDQAAAAAAAAAA9Fok29BRgYGBgiAwjCQAAAAAAAAAAOiFSLahowICAnx8fJqbm00mk9qxAAAAAAAAAAAAdCmSbfAARpIEAAAAAAAAAAC9E8k2eAAjSQIAAAAAAAAAgN6JZBs8gJ5tAAAAAAAAAACgdyLZBg8IDAwURbGpqampqUntWAAAAAAAAAAAALoOyTZ4gCiKAQEBAp3bAAAAAAAAAABAL0OyDZ4hjyTJtG0AAAAAAAAAAKBXIdkGzwgMDBTo2QYAAAAAAAAAAHoZkm3wDLlnm8lkslqtascCAAAAAAAAAADQRUi2wTN8fX2Ztg0AAAAAAAAAAPQ2JNvgMXLnNpJtAAAAAAAAAACg9yDZBo8h2QYAAAAAAAAAAHobkm3wGKZtAwAAAAAAAAAAvQ3JNniMr6+vRqMRBKGxsVHtWAAAAAAAAAAAALqCKEmS2jHAezQ0NPj5+fn7+6sdCAAAAAAAAAAAQFcg2QYAAAAAAAAAAAC4iWEkAQAAAAAAAAAAADeRbAMAAAAAAAAAAADcRLINAAAAAAAAAAAAcBPJNgAAAAAAAAAAAMBNJNsAAAAAAAAAAAAAN5FsAwAAAAAAAAAAANxEsg0AAAAAAAAAAABwk5/aAcALmc3m8vLy5ubmAQMGqB0LAAAAAAAAAABAJyLZBs/z9fWtr68XBMFqtfr6+qodDgAAAAAAAAAAQGcRJUlSOwZ4oZqaGo1GExAQoHYgAAAAAAAAAAAAnYhkGwAAAAAAAAAAAOAmH7UDAAAAAAAAAAAAAHoqkm0AAAAAAAAAAACAm0i2AQAAAAAAAAAAAG4i2QYAAAAAAAAAAAC4iWQbAAAAAAAAAAAA4CaSbQAAAAAAAAAAAICbSLYBAAAAAAAAAAAAbvJTOwB4M5PJZDQafXx8oqKi1I4FAAAAAAAAAADA8+jZhs5VW1tbW1urdhQAAAAAAAAAAACdgmQbOlFAQICvr29zc3NjY6PasQAAAAAAAAAAAHgeyTZ0rqCgIEEQ6uvr1Q4EAAAAAAAAAADA80i2oXMFBwcLJNsAAAAAAAAAAICXItmGziUn2xobG5ubm9WOBQAAAAAAAAAAwMNItqFz+fv7+/v7S5LEtG0AAAAAAAAAAMD7kGxDp2MkSQAAAAAAAAAA4K1ItqHTBQUFCSTbAAAAAAAAAACANyLZhk4n92wzmUxWq1XtWAAAAAAAAAAAADyJZBs6na+vb0BAgEDnNgAAAAAAAAAA4HVItqEryJ3bGhoa1A4EAAAAAAAAAADAk0i2oSvIyTZ6tgEAAAAAAAAAAC9Dsg1dITAwUBRFi8VisVjUjgUAAAAAAAAAAMBjSLahK/j4+AQFBQmCUFdXp3YsAAAAAAAAAAAAHkOyDV2EkSQBAAAAAAAAAID3IdmGLiIn2xoaGiRJUjsWAAAAAAAAAAAAzyDZhi4SEBDg5+fX3Nzc0NCgdiwAAAAAAAAAAACeQbINXYeRJAEAAAAAAAAAgJfxUzsA9CIhISHV1dV1dXXh4eFqxwIAAAAA3umll16yWCxqR4Eepl+/fqmpqWpHAQAA0FOJTKCFLmO1WisrK0NCQoKCgtSOBQAAAAC8U0hIyJIlS0JCQtQOBD1GaWnp3r17L1y4oHYgAAAAPRXJNgAAAAAAvEdISEhBQQEDisB1P/zwQ3JyMsk2AAAAtzFnGwAAAAAAAAAAAOAmkm0AAAAAAAAAAACAm0i2AQAAAAAAAAAAAG4i2QYAAAAAAAAAAAC4iWQbAAAAgPZZs2aNCHjC2rVr1f7rjPaRb5zaUfQk33//PRcNAADA6/mpHQAAAACAnmfhwoVvvfWW2lGgZ1u4cKHaIaDdJEnqoXmjmJiY4uLirj/ukCFD3L5oasUMAACA9qJnGwAAAAAA6BlMJpN7FUtKSjqp5c7TE2MGAADonUi2QQVms7msrOzKlStqBwIAAAAAsJeXlzdjxgydThcUFDR27NgjR44kJCTYFigoKBg3bpyfn59GozEYDLa71q1bl5iYGBYWNmDAgOeee66iokLZJY+mWFtb+9BDD2k0mpZ19+zZEx8fr9VqZ8+eXV9fbzf6YlZWVmxsbGBgoFarnTRp0jfffOPi6dxwww1yO7ZDmNoWaK1lueR//dd/hYaGZmdnr169OiQkxDZm5YxmzJgREhJy00037dq1y8WonF8rt2MGAACAKki2QQVWq/Xq1avV1dVqBwIAAAAA+I2zZ89Onjx58uTJZ86cqa6u/uCDD/Lz841Go22ZP/7xj6+//rrFYsnKykpJSbHdNXTo0JMnT1ZXV//73//WarXJycnKLkmSBEFITU1dsmSJyWSyq/v111+/9NJLH330UUVFxYIFC15++WWliiAIx44d27Fjx759++rr60tLS5cvXz5//vxTp065ckYXLlyQ25FsKHudtCwXy8/Pf/fddx988MErV67s2LHDNma5wIYNG/7whz9UVFR8/vnnGRkZR44ccelCO71WbscMAAAAVYi2r2tA15Ak6cqVKyEhIcHBwWrHAgAAgHZbs2ZNSUkJc7aJIj9PdcjChQtjY2PT0tLUDsTbhISEFBQUhIeHu1f9wQcfnDFjxpw5c1orIIrid999N3ToUGW1tX8IVqvV39+/ubnZtu7OnTsfeeSRlnUnT5783HPPTZo0SV7ds2fPjBkzlL3jxo3bvn37tddeqzT1ww8/LF68+NChQy6eV2txOm9ZFMWrV6+GhYWJolhdXR0aGmrXjiiKf//73x988EF59eTJky+88MLhw4ddPLqi5bVyO2Y3/PDDD8nJyRcuXHCvOgAAAPzUDgC9kSiKERERakcBAGbRRMEAACAASURBVACATiePe0ZGyoO+//57Ocnh8Ko63wu44tixY5mZmc7LKJk2OyaTaePGjTt27Lh06VJwcPDtt9/e8q+ikmmzc+rUqVGjRimr48aNs92bk5MzaNAguyoe+fXNNlsOCwuTF0JDQx22MHbsWGV5yJAhOTk5rhzXlWvldswAAADoYgwjCQAAAKCzeHfKR5WzGzJkiJPjOt/beWJiYrr+oOgkVqvVbnow1z377LONjY0nTpyorq7+5Zdf/vKXv3gqqqCgoJ9++kn6rbq6um7YskajcaVYR65V510NAAAAuIdkGwAAAACvZTKZ1A6hVygpKXFegBvRg9x1112ffPKJe3U//PDDxYsXh4eH+/n5BQUF9evXz/W6I0aMOHnypLJqNxLj1KlT33//ffeickj5O9nxlrOzs5Xl77//fvjw4a7UcuNaeTBmAAAAeBbJNgAAAAAdkpeXN2PGDJ1OFxQUNHbs2CNHjiQkJNgWKCgoGDdunJ+fn0ajMRgMtrvWrVuXmJgY9v+xd/dhTVxp/8BPUKKQhJrIiyFQqxa0dmvXFxR95FdbBASqa6iV9llluWTrbn3BbWuEWkvFqoBQKbLd67LAI+hWi4rZikCrKFuxuI/UvdqKKIJaCgE0ElIICIkhvz/m6ew0b4QQDC/fzx9eM2dm7rnnoAhzcp/j4uLt7f3WW2+1trbSh1gsFovFUqlUK1euZLPZhteeOnXKx8eHy+WuWbOmq6uLOp8+mp+fLxKJxo8fz+VyQ0JCrl69asMnqq2t1budXs6vvPIKh8N55plnTp48afl9idkOGaAbN26sXLlSJBKJRKKIiIiamhrmUfOPbCarp59+muoHFgMz8kC+EGAXe/fuff/990tLS3U63cOHD2tqarKzs9etW2fJtT4+Pp9++mlnZ6dCocjLy1uzZo3l9925c+fWrVtv3bql0WgqKiq+/vpr5tGkpKSsrKzdu3f/+OOPGo1GoVB89dVX4eHhlsd3dHSkvoc0NzdnZmYuWrTIVpHv3Llz9uzZnp6ehoYGiUTywQcfWHKVJX01eDkDAAAAgG1hsA0AAAAAAKx348aNZcuWLVu27Pr16+3t7ceOHautrVUoFMxz/vSnP+3fv1+j0eTn50dGRjIPPf/885WVle3t7d9//z2XyxWLxfQhajpEiUTyzjvv9PT06F37r3/96/333z9x4kRra+umTZt27txJGPM6lpWVHT58+MyZM11dXS0tLdu3b9+4ceO3335rqyfy8fExOlsj1ZiWlvbGG2+0trZ+9dVXmZmZ58+ft+S+fXbIQNy4ceMPf/hDenq6TCaTyWT79++Pjo6mx9v6fGQzWdXV1VFPzZzOjj46kC8E2Mv8+fOlUmlKSgqfz/f09Fy7dm13dzc9ySE9tmp098iRIyUlJe7u7rNmzbp+/To12GzqZL1df3//hISEsLCwCRMmZGZmpqSkMLPy8vL65ptv6urq/Pz8uFzuokWLysrKcnNzLX8u6nuIg4PDggUL6urqzpw502dkowkzNygbNmwoKChwdXV98cUXN2zYQA+JEcYgtN52n31ldc4AAAAAYBeskb2IAgAAAAAA2FxycnJzc3NGRgYh5He/+90rr7wSFRVl6mQWi/Xdd989//zz9K6p30G0Wq2jo2Nvby/z2uPHj7/66quG1y5btuytt94KCQmhdk+dOvXKK6/QR1944YW8vLynnnqKDnXt2rW333773LlzfT5dn0/ETM/wWVgs1j/+8Y/f/e531G5lZeW7776rNyGehQw7xPytzRxdsWLFm2++GRoaSreUlJQcPHjwH//4B+nPI5vKylQ+5r8QsbGxIpEoLi7OkvuC5TgcTn19vaurq70TGRC5XD5t2rT29nZ7J9IH8/8Yh4tr166JxeK6ujp7JwIAAAAwXKGyDQAAAAAArFdWVsYcwjGKHmnT09PTs3fv3hkzZjg7O7u6uoaEhBi+s6ZH2vR8++23CxYsoHdfeOEF5tErV65MmTKFObHhrFmzmOsqmWHJE5kXEBBAb8+aNevKlSsWXmhJh1inrKyM2V2EkPnz51+4cIE+auaRB5LVQL4QMJo1NTXt2LFDIpHYOxEAAAAAAItgsA0AAAAAAKyn1WoNly6z0F/+8pfu7u5Lly61t7c3NDTQ89QNnJOT0927d3W/1tnZacm1A3kio9hstoVnDl6HEMYcm4Yt5h95IFkN5AsBo9C+ffuoQdnf/va3zz333Pvvv2/vjPqgN88kAAAAAIxaGGwDe9JqtQ8ePGhqarJ3IgAAAABgpYULF54+fdq6az///PO3337b1dV17NixTk5OEydOtPzaefPmVVZW0rt68zSGh4d/9tln1mU1kCeiMCu3fvjhh7lz51p44UA6xLwXX3zxX//6F7Pl8uXLgYGB1Lb5R7Yiq56eHmpjIF8IGIW2bdtGjcjev39/06ZN9k6nb4brFAIAAADA6ITBNrAnBwcHpVLZ2dmpVqvtnQsAAAAAWGPv3r3vv/9+aWmpTqd7+PBhTU1Ndnb2unXrLLnWx8fn008/7ezsVCgUeXl5a9assfy+O3fu3Lp1661btzQaTUVFxddff808mpSUlJWVtXv37h9//FGj0SgUiq+++io8PHywn4hy586ds2fP9vT0NDQ0SCSSDz74wMILB9Ih5qWkpOzYsaOiouLRo0ePHj2qqKhISEhISUmhjpp/ZEuycnR0lEqlhJDm5ubMzMxFixZR7QP5QgBYaPLkySwTJk+ebO/sAAAAAGBUwGAb2BOLxXJ2diaEYCYZAAAAgGFq/vz5Uqk0JSWFz+d7enquXbu2u7ubnmlQb441vd0jR46UlJS4u7vPmjXr+vXrJ0+eNHOy3q6/v39CQkJYWNiECRMyMzPpcSOKl5fXN998U1dX5+fnx+VyFy1aVFZWlpubO/AnonKg6G3TNmzYUFBQ4Orq+uKLL27YsIEeeeqT+Q7p89Zmjj7zzDNHjx5NTk7m8/l8Pj8lJeXYsWPTp0+35JH7zIoQkp+fHxkZ6eDgsGDBgrq6ujNnzlDtA/lCAFiovr5eZ0J9fb29swMAAACAUYGF6Q7Avn7++ef79+87OTl5eXnZOxcAAAAAsEhycnJzc3NGRoa9E/kPuVw+bdq09vZ2eydCWCz8kmWp2NhYkUgUFxdn70RGGg6HU19f7+rqau9EYNi4du2aWCyuq6uzdyIAAAAAw9VYeycAox2HwyGEPHz4UKvVjhkzxt7pAAAAAMDw09TUlJiYKJFI7J0IwJDw6NGjgIAA/HoFluvp6Wlra7N3FjCqHTt2rKOjw95ZwMi3bt26sWPxPhwABgW+uYCdjR07dty4cT09PV1dXTwez97pAAAAAMCwsW/fPqooys3NLSEhYdOmTfbO6D9zXaK4DezIwcHh1VdfpT7XCGCJlpaW48eP2zsLGNW2b9/u5+fH5/PtnQiMZJ9++unvf/97DLYBwCDBNxewPw6H09PT09nZicE2AAAAALDctm3btm3bZu8sfgVjbDAUODg4xMbGYhpJsNy1a9cKCwvtnQWMdjt37pw5c6a9s4CRLCsry94pAMBI5mDvBAD+bybJzs5OvJsAAAAAgME2efJklgmTJ08eqbcGAAAAAACAwYPKNrC/8ePHjxkzRqvVdnd3Ozk52TsdAAAAABjJ6uvrR+GtAQAAAAAAYPCgsg2GBLq4zd6JAAAAAAAAAAAAAAAA9AMq22BI4HA47e3tnZ2dWFcAAAAAYOh79OjRzz//fPfuXXsnAsPbzz//7OHhYe8sRjUWi2VqMn8Wi0UGvAyhmfgAAAAAACMJBttgSHB2dmaxWGq1Wq1Ws9lse6cDAAAAAOZcunSptLT0+PHj9k4Ehje1Wh0cHGzvLEYFoVDY3Nxs2G5mJEyn01HjbQNh+Ugbj8fr6OgY4O0AYDSwyUcBRpUffvjh+eefJ+g0AIBBhsE2GBIcHBycnJy6urq6urow2AYAAAAwxC1ZsmT69OkZGRn2TgSGt9jYWJFIZO8sRoWWlha9luLi4vDwcPLrd6+dnZ0bN248efKkj4/PkSNH9C6ZP38+IeTKlSuW3NFofOoV+YEDB1JSUu7fv5+fny8WiwkhAoFApVLRY3t4HQwAZtjkowB24enp2dTU9PjvO2vWLKs7bfBytldvAAAMHqzZBkMFl8slhKhUKnsnAgAAAAAAMMKFhYUZjmnFxcUJhUKFQnHu3LnCwkK9ozqdzvJhMKPxqZampqbq6ur8/PzIyEiqXaFQ0PEx0gYAQ1xPT491FxqtMLZJ5MEzeDn3GXkghmBPAsBogME2GCo4HA4h5OHDh1qt1t65AAAAAAAADHsikYjFYlHVDNSG+VLCo0ePSiQSNpvt6uq6fv16vaOVlZWVlZUDzyopKcnFxUUsFms0moFHA4ARqaam5pVXXuHz+U5OTgEBAefPn/f19WWeUF9f/8ILL4wdO5bNZkulUuahffv2+fn5ubi4eHt7v/XWW62trfQh6juhSqVauXIlm802vPbUqVM+Pj5cLnfNmjVdXV30t1BKfn6+SCQaP348l8sNCQm5evWqhY/z9NNPM78V64U1E5k6829/+xuPx6uoqNi7dy+Hw2HmTD/RK6+8wuFwnnnmmZMnT1qYlfm+sjrngfSG0XtRuz4+PpY8r9VZAQAMHAbbYKgYO3bs+PHjCYrbAAAAAAAAbEEmk9G1YtSGTCaz8Fq1Wj2YqQ3RWwPAUHDjxo1ly5YtW7bs+vXr7e3tx44dq62tpUpgaX/605/279+v0WiYZbKU559/vrKysr29/fvvv+dyudR0tRTq+6FEInnnnXd6enr0rv3Xv/71/vvvnzhxorW1ddOmTTt37iSMiW3LysoOHz585syZrq6ulpaW7du3b9y48dtvv7Xkierq6pjfivWqeM1Epk6rra3Nzc393e9+9+DBg8OHDzNzpk5IS0t74403Wltbv/rqq8zMzPPnz1vU0Wb7yuqcB9IbOp3u9OnTK1euZN6rq6tr6tSply9f7vN5B5IVAIAN6ACGDIVCcevWLfoXQgAAAAAYmpKSkmJjYy082cwvHVb/SmLJhf2NjF+OHr/NmzcnJyfbO4sRyNnZWS6XM1tM/fXWa3/zzTe3b9+uVqtlMtmWLVv0jvr5+fn5+fUrE8P7kl9PF0lvOzo6njp1Sq1WFxcXBwQE9OsuMHA//PDDtGnT7J0FjGpPPfXU9evXqe0VK1bk5eWZOZkQ8t133zF3TZ356NEjFould+3x48eNXhsSEvLll1/SuwUFBcyj/+///b+7d+8yQ/3www9Lly41k6dh2kbbzUcmhPz888/URnt7u2EcQsg//vEPevfKlSuBgYGW351m2FdW52wJM/ksWrTof//3f+nd9PT0rVu3Mi809bx9ZkVVxVmeJABAv4x9DON5ABbicrkPHjzo6urq7e11cEDZJQAAAMBwIhQKjS6/oTO9ApNOp9ObkshCllxo5r4DPJ/H43V0dPQrOIB9ubu767Uw5+wiv/z9T01N3bBhA5/PnzZt2pEjRzIyMqgXr9SZWq3W8l/TjMan5w2j/wnT8an6EjabHRISkpOTM6CnBYBhrqysLDs72/w5zz//vNH2np6ejz766PDhwz/99JOzs/Nvf/tbw//fX331VaPXfvvttwsWLKB3X3jhBebRK1euTJkyRe8SZ2dn83laos/ILi4u1AaPxzMaISAggN6eNWvWlStXLLmvJX1ldc4DsWfPnu3bt5eWllJJ/vWvf/3mm2+YJ5h63kHNCgCgTxjPgCHE0dGRzWbrdLquri575wIAAAAA/dPS0qLXUlxcbLjCR2dnZ3R0NJfLnT17dlVVld4l8+fPnz9/voV3/Omnn/z9/fl8/rp16zo7O83ft6ur64033uDz+XPmzKmpqWGeYPR8qiUzM9PLy4u5potAIFCpVEYXLwEYsu7du6fXovc5XKqRw+Hk5eWpVKrvv/9+1qxZzEOEkKtXr1q+ZpvR+MxdvUNisVitVqtUqoKCAmphHgAYtbRardX/w/7lL3/p7u6+dOlSe3t7Q0PDX//6V1tl5eTkpFc1pdPpmD9+DJ3IbDbbktMG0leD1xuEkCVLlowZM4aaHDInJyc8PNzDw8PM+fTzDmpWAAB9wmAbDC0cDodg2TYAAACAESEsLMzwI9JxcXFCoVChUJw7d66wsFDvqN7LffNyc3NPnjx5+/ZtLpe7bdu2Pu8rEAhaWlrKy8u//PJLwihlM3o+1dLU1FRdXc1c04VaM0ZvnAAAAABsZeHChadPn7bu2s8///ztt992dXUdO3ask5PTxIkTLb923rx5zI8UUJVVtPDw8M8++8y6rIzq6emxVeSKigp6+4cffpg7d64lV1nRVzbM2VRkyp49e9577z21Wv3xxx/HxcXpnWzqeW2eFQBAv2CwDYYWFxeXSZMmGU5yAgAAAABDk0gkomu8qA2RSGTm/KNHj0okEjab7erqun79er2jlZWVlpfOxMTEeHl5CQSCnTt3njhxwvzJ+fn5cXFx48aN43A4//3f/23hLZKSklxcXMRisUajsfASAAAAGIi9e/e+//77paWlOp3u4cOHNTU12dnZ69ats+RaHx+fTz/9tLOzU6FQ5OXlrVmzxvL77ty5c+vWrbdu3dJoNBUVFV9//TXzaFJSUlZW1u7du3/88UeNRqNQKL766qvw8HDL4zs6OlKF8s3NzZmZmYsWLbJV5Dt37pw9e7anp6ehoUEikXzwwQeWXGVJXw1ezqYiU+bNm+fl5bV69eqlS5d6enpa+LwDzwoAYCAw2AZDC5vN5vF4WLANAAAAYLiQyWR688LJZDILr1Wr1TbJwZIVf5kTUtmwIs1WjwAAAACU+fPnS6XSlJQUPp/v6em5du3a7u5uepJD+vM9RnePHDlSUlLi7u4+a9as69evnzx50szJerv+/v4JCQlhYWETJkzIzMxMSUlhZuXl5fXNN9/U1dX5+flxudxFixaVlZXl5uZa/lxUobyDg8OCBQvq6urOnDnTZ2SjCZNf/1RDCNmwYUNBQYGrq+uLL764YcMG5sAVc+JrvUmwzfeV1TkPsDdoH3zwQXFxcXx8vOG1pp534FkBAAwECzOfAAAAAABAvyQnJzc3N2dkZDAbWSzjv1zotW/YsIHP5+/cuVMul+/bty8jI4N5lFqwjV7o3gwWi/XBBx/88Y9/5HA4u3bt0mq1Bw4cMHPf2NjYJ554IjExsaur68CBA++9955etob5M1uY22w2Oz8//+WXXy4tLU1KSrp48WKf2YJRsbGxIpHIcHooGCAOh1NfX+/q6mrvRGDYuHbtmlgsrqurs3ciMHpNmTKlqKho5syZ9k7kP+Ry+bRp09rb2+2dSB9M/QA23P3P//zP5cuXs7Ky9NoH8rwODg4dHR3UEjYAADaH+iEAAAAAALABw5nA9T5JTTWmpqY2Njby+fzQ0FBqSijmZ6i1Wq0lL1CoS6KjoyMiIqZOnapSqZKTk83fNzk5uaWlxdXVdfHixcuXL+8zT+ZnyfU+V059FpvP52dnZ+fk5FjWPQAAADBsNDU17dixQyKR2DuRUUqr1aalpb377rv2TgQAoB/G2jsBAAAAAAAYCe7du6fXYnTYjMPh5OXl5eXlGT3n6tWrltyLvspoDZzR+zo7O2dlZWVlZWk0mjNnzjA/O2/0fGaj3glisRizRwIAAIw8+/bto+qt3dzcEhISNm3aZO+M+kB/HmjEFLcxP4M1bdo0w1kHyMh6XgAYSVDZBgAAAAAAo8J7773HYrG4XO7hw4cvXLhg73QAAABgaNm2bRu1AO39+/eH/kgb+WW53JE08qT7NVNH7ZIbAIB5GGwDAAAAAIBRYc+ePTqdrqenRyqVenh42DsdAHhMmDPE2sqOHTvo7WPHjo0ZM4bFYrHZbKlUanhrFos1YcKE6upqqvHixYtr1qwRi8WGlzDDAsBwMXnyZJYJkydPtnd2jxt6AwBGLUwjCQAAAAAAADCSCYXC5ubmQQre1dXl7Ow8SMFtQqfT2Xawrba2tq2tjd7duHHjmTNnQkNDpVJpZGSk3jSzhhUY69evv3z5Mp/PJ4RUVFQEBwerVCrqUFtb2507d6ZOnWrDbAFgsNXX19s7hSEEvQEAoxYq22BIQ2E4AAAAAADAALW0tDB3qQqDzMxMLy8vvcqqzZs3T58+ncPhBAUFlZWV0Senp6fzeLyKioqcnBwej0ddIpfL/fz8OByOh4fHpk2burq6mHeZP3/+/Pnz+8yNrngwumuYD32OUqmMiYnh8XgSiYRq7+7u3rJli4eHh1AozM3N9fX1Zd7owoULljyvmfi0rKys4OBgelehUISGhhJCwsPDZ8+e3ecj9/T0UCNthJBFixZ1dnbShwIDAw8ePNhnBAAAAAAYalDZBkNUT0/P/fv3WSyWl5eXvXMBAAAAAAAYOahKr6ampurq6vPnzzOLsZKSkjIzMzUazcWLF1esWNHR0UGdrNVqDx06FB4eHh0dfejQIeoSiUSSlpa2aNGinp6ec+fOSSSSTz75hHkXC5NZuHDh/v37qd2Kiop33nmnoqLCVD50/hEREVFRUenp6ZWVldTJ27dvV6vVVVVVXC73zJkzCoWCeaOSkpKampqzZ8+af14z8Wlnz5794x//aPgs58+fLyoqYrY4OTlRA4eOjo75+flisZgQ0tDQYKo3ZsyY8eGHH6akpFjSdQAjSUdHx5///Gcul2vvRGCE02g09k4BAEYsFiqHYGh69OjR3bt3CSFTp04dM2aMvdMBAAAAgP9ITk5ubm7OyMiwdyIwvMXGxopEori4OHsnMtJwOJz6+npXV1eRSNTU1MQ85OnpKZPJCCEs1n/eBtDbtbW1b7/9dkVFRU9Pz5w5c8rLy6l2+gS9jYkTJzIHtNzc3O7fv29FwmfPnk1NTT137hwhJCgoaNu2bUFBQWbyoRLo6OjQey8vFAqvX78uEAgMb8FisTQazdixYy15XlPxaU888YRMJtM7Wlpa+pvf/GbSpElGL/npp5+efvppapCP2fl6u+3t7U8++aRSqeyrz2zs2rVrYrG4rq7uMd8XgObu7v5f//VfEyZMsHciMJLl5ua2trYa/W8CAGDgUNkGQ9TYsWOFQuH48eMx0gYAAAAAAGAFalyNGIzumLJ69erXXnstJydHIBA8ePBAKBSaP3/u3Llnz54deJ7BwcG7du0qLy8nhHR3d1MjbX3mYzgS9ujRIzN3oUbamPobn2bYmYcPH164cKGpkTZCyJNPPmmmnEKr1dK/+eIj0TA6cTicPXv2zJw5096JwEiWl5c3btw4e2cBACMW1myDoYvL5Rr+OgQAAAAAAACDQSaTzZs3z8XFpbq6+sCBA32eHxoamp2d3djY2Nvba3jUwjXbKImJiQkJCQkJCYmJiVbns2rVqrS0NEKIXC6XSqVr1qwxf35/49MmT57MLBk8ceLEc8895+PjQwihV5sjhAQEBCQkJNy+fZsQIpVKHR0dqXYnJyd6nszKykoXFxe6AxsbG6dOnWp5JgAAAAAwRGCwDQAAAAAAoN+Yr9QND5k5OvD4AP3l7u7O3KX+dhn+efDgwZiYGIFAEB8fHxUVRRh/mem/kMy/mbGxsXK5PCAgQCAQhISEJCcnM++i1WotL9IKDAzs7e3V6XQvvfQS3Wg0H+afev/W0tLSlEqlu7v7s88++8UXX6SmplrxvGbi04KDg2/evEnvRkdHz5kzx/BkqVRaX18/d+5cFosVGRmZn59PtX/22WdLlixhsVhubm4rV64sLCykx+Fu3rwZEhJiYacBAAAAwNCBNdsAAAAAAKB/jK7ZJhQKm5ubBxKWx+N1dHQYPdTV1eXs7DyQ4I+ZhbP22YSZfhvisGbbIKHXbLN3IiPWrVu3MjIyPvnkE5tH3rhx4zvvvPP4i9uwZhvY3ZQpU4qKijCNJAwqBweHjo4ODodj70QAYGRCZRsAAAAAANhAS0sLc7e7u3vLli0eHh5CoTA3N9fX15c+tHnz5unTp3M4nKCgoLKyMqpRIBCoVCrDUhK5XO7n58fhcDw8PDZt2tTV1UW1d3V1vfHGG3w+f86cOTU1NfRVGo0mPj5++vTpvr6+27ZtU6vV1PnUCUqlMiYmhsfjSSQSZntxcTEhpLi4mMVieXt7m39S6jS9EpbOzs7o6Ggulzt79uyqqiq9S/o1n57R+FRLZmaml5cXm82WSqXm+w0ABo+vr++ECRMGI7JAIMA0kgDmobIcAACGJgy2AQAAAACA7W3fvl2tVldVVd25c4fD4SgUCvpQUlJSTU2NUqmMj49fsWIF1UidoPsFfbJEIklLS1Or1bdv3w4MDKQHyeLi4gQCQUtLS3l5+ZdffkldSwjZsWOHSCSqqam5deuWSCTasWMHdT51NCIiIiAgQCaTLVu2jGq/fPmyv79/WFgYISQ0NHTevHlFRUXmHy0sLMywai0uLk4oFCoUinPnzhUWFuod1XsoK+JTLU1NTdXV1fn5+ZGRkVS7qX4DgEG1Z8+ewQj74YcfDkZYgOFIKBQabTfzn51N/h+0PAiPxxv47QAAYMTANJIAAAAAANA/zGkkRSJRU1MT86inp6dMJhMKhdevXxcIBHrX1tbWvv322xUVFT09PXPmzCkvL6d/JTE69eLEiROZA3Vubm73798nhLi7u9+8eZOKL5fL3d3dqWsnTZp08+ZNquikra1t5syZ9OSWLBaro6ODy+Xq3SIiImLNmjUREREnT54sKCg4duyYJZ2gl61AIKirq6PyaW1tdXV1HeCvWoa9wWwxtT28YBrJQYJpJKG/MI0k2J3hNJKG/7sVFxeHh4eTX4+HdXZ2bty48eTJkz4+PkeOHHnuueeYR6my8itXrliSg9H4VKHbgQMHUlJS7t+/n5+fLxaLCSECgaCtrY0+bZj+RzzaYBpJABhUqGwDAAAAAADryWQyuqaK2pDJZISQR48ebNg2XgAAIABJREFUGT1/9erVixcvvnHjhlKpPH78uKmw9PSPc+fO1TFQI23k17M86b3hMvPCy3CkjRCyd+/ehISEnp6eXbt27dq1y9S1lqOTf/zseGsAAIBBhcpyAAAYyjDYBsNDb28vfnYBAAAAGEZWrVqVlpZGCJHL5VKpdM2aNVS7TCabN2+ei4tLdXX1gQMHmJc4OjpKpVKNRlNSUrJ06VKqMTQ0NDs7u7Gxsbe3l3lyZGRkenp6b2+vSqXKzs6m26OiorKysqg3XwcPHly7dm2fqc6YMWPhwoXLly9fsGCBj4+Pdc/72muvffTRRxqNpqmpKSUlRe9ov9Zs6y+j/QYAADAciUQieuk1akMkEpk5/+jRoxKJhM1mu7q6rl+/Xu9oZWVlZWXlwLNKSkpycXERi8UajWbg0QAAYETCYBsMAw8ePLhz505HR4e9EwEAAAAAk9zd3Zm7aWlpSqXS3d392Wef/eKLL1JTU6n2gwcPxsTECASC+Pj4qKgowqhRoz4wzufzs7Ozc3JyqMbY2Fi5XB4QECAQCEJCQpKTk6n25OTklpYWV1fXxYsXL1++nL7v7t275XK5t7e3t7d3a2vr7t27qXbmaztmVRzl3XffvXjxYkJCgiVPqvcSkGpMTU1tbGzk8/mhoaHr1q0jv66902q1ln90zGh8ukXvT2Ki3wAAAIYjUxXzlkBlOQAA2NFwndwfRhWFQtHa2urs7Gz+00wAAAAA8Hgw12yzO41Gc+bMmR07dly/ft3qIJmZmXfu3ElPT7dhYtAnrNk2SLBmG/QX1mwDu7NkzTaj7Rs2bODz+Tt37pTL5fv27cvIyLB6zTZT9zW1Tiqbzc7Pz3/55ZdLS0uTkpIuXrxo+V3ALrBmGwAMKlS2wTDA4/EIIQ8fPtRqtfbOBQAAAACGivfee4/FYnG53MOHD1+4cMHqOCwWKzY29uOPP7ZhbgAAADAQehXzBJXlAAAwtGGwDYYBR0fHcePG6XS6zs5Oe+cCAAAAAEPFnj17dDpdT0+PVCr18PCwOo7uFzbMDQBGD6OT0w7Qjh076O1jx46NGTOGxWKx2WypVGp4axaLNWHChOrqaqrx4sWLa9asEYvFhpcwwwIMcffu3dNr0f0a1cjhcPLy8lQq1ffffz9r1iy9/9CvXr1q+ZptRuMzd/UOicVitVqtUqkKCgqsXvMVAABGDAy2wfDA5XIJISqVyt6JAAAAAMDI5+HhwTIwkPE8APsSCoWP/6ZdXV2Wn0xNZzJM2Xyovra2tq2tjd7duHHjmTNndDodVUZjeHedTqdUKun599avX5+ZmSmVSnU63T//+c+1a9fSJ7e1td25c8e22QIAAAAAwWAbDBfUYFtXVxdmkgQAAACAwXbv3j2dAcOP2AMMFy0tLczd7u7uLVu2eHh4CIXC3NxcX19fql2j0cTHx0+fPt3X13fbtm1qtZr8UjuVnp7O4/EqKipycnJ4PJ5UKjXVTgiRy+V+fn4cDsfDw2PTpk30qBt1SWZmppeXF7PiSiAQqFQqemCbzlMqlbLZbBaL5eLisnjxYjpPyvz586nVmMzTC6u3u3nz5unTp3M4nKCgoLKyMuY5SqUyJiaGx+NJJBLz/Ua5cOGC3nP1Nz4tKysrODiY3lUoFKGhoYSQ8PDw2bNn9/nIPT09fD6f2l60aBFzhpjAwMCDBw/2GQEAAAAA+guDbTA8sNlszCQJAAAAAAAwcNu3b1er1VVVVXfu3OFwOAqFgmrfsWOHSCSqqam5deuWSCSiphykyra0Wu2hQ4fCw8OrqqoOHToUGRlpqp0QIpFI0tLS1Gr17du3AwMD6cEk6pKmpqbq6mpmkRaVgOGErlFRUS+//LJGo2lpadm6datSqWQ+hYWzv+p0On9//4qKCmq3oqJi4cKF9IVJSUk1NTVKpTI+Pn7FihXMPCMiIgICAmQy2bJly8z3G6WkpKSmpkav+Kxf8Wlnz5595plnDJ/l/PnzRUVFzBYnJydq6I45yNfQ0GCqN2bMmHH27FnTvQUAAAAAVmJhZQIYLhQKRWtrK4fD8fT0tHcuAAAAAKNacnJyc3NzRkaGvROB4S02NlYkEsXFxdk7kZGGw+HU19e7urqKRKKmpibmIU9PT5lMJhQKr1+/LhAI9C6cNGnSzZs3J0yYQAhpa2ubOXNmc3MzIYTF+r9XB3obptonTpzIHIhyc3O7f/8+tU2faWabVlhY+Morr2g0GldXVzc3t7y8PD8/Pys65OzZs6mpqefOnSOEBAUFbdu2LSgoiBBSW1v79ttvV1RU9PT0zJkzp7y8nJlPR0cHNcMKzVS/UedrNJqxY8cyn6W/8WlPPPGETCbTO1paWvqb3/xm0qRJRi/56aefnn76aboYkdmZzN329vYnn3xSb9iSEHLt2jWxWFxXV2c0OMBjMGXKlKKiIno2VIDB4ODg0NHRweFw7J0IAIxMqGyDYYOeSbK3t9feuQAAAAAAAAx1MpmMLv+iNmQyGSHk0aNHpi6xyedx586dy5yClR5psxA1YkQIWb58uVqtVqlU//73v9euXcucWbFfgoODHz58WF5eXl5e3t3dTY20EUJWr169ePHiGzduKJXK48eP611lOBJmpt8IIdRIG1N/49MMvwqHDx+ePHmyqZE2QsiTTz6p0WhMHWUux4CPXAMAAAAMBgy2wbDBZrPZbDZmkgQAAAAYXpgrMA1lZvLUW0fK5vEBHrNVq1alpaURQuRyuVQqXbNmDdUeFRWVlZVFjZAdPHhw7dq11sUPDQ3Nzs5ubGy0/IOSjo6OUqlUo9GUlJQsXbqUanRzc7ty5YqDg4O3t/eMGTP0fhO0cM02SmJiYkJCQkJCQmJiIt0ok8nmzZvn4uJSXV194MCBPoOY6jdT+hufNnnyZGZJ4okTJ5577jkfHx/y6+8kAQEBCQkJt2/fJoRIpVJHR0eq3cnJiZ42s7Ky0sXFhf5CNDY2Tp061fJMAAAAAMBCGGyD4YTH4xFCOjo67J0IAAAAAOgTCoVG2x9/FQX1Q2N/mcnTJo9geRDr8gcww93dnbmblpamVCrd3d2fffbZL774IjU1lWrfvXu3XC739vb29vZubW3dvXs3+WV0hx7j0dswbCeExMbGyuXygIAAgUAQEhKSnJxseIne5dRSZ3w+Pzs7Oycnh2qcMmXKd9995+vry2KxIiMj8/PzmU+h1Wot/2cVGBjY29ur0+leeukluvHgwYMxMTECgSA+Pj4qKsowN72BdlP9Zuq5+hufFhwcfPPmTXo3Ojp6zpw5hidLpdL6+vq5c+fq9c9nn322ZMkSFovl5ua2cuXKwsJCehzu5s2bISEhFnYaAAAAAPSDDmD4UKvVt27dqq2tffTokb1zAQAAABi9kpKSYmNj9RoNf7koKirS+6WD2t2/fz+Xy/3mm2+ys7O5XO6pU6foQ6WlpW5ubnPnzv3xxx/pqzZt2uTr6+vs7Lx06dILFy5QjQ8fPoyNjXV3d580adKhQ4d8fHyodj6f39/fdwzz1Ol0KpXqD3/4A4fD+e1vf3vt2jW9o35+fn5+fpYENxWfajlw4IBIJHJ0dKQ6wbr8h6/NmzcnJyfbO4sRyNnZWS6X2zsLsF5NTc2GDRsGI/KGDRtu375t2P7DDz9MmzZtMO4IYKGnnnrq+vXr9s5iCBmMHwPee+89evvo0aMODg6EEOYPIcxbE0KeeOIJ+ovy9ddf//73v1+5cqXhJcywQxyLxVKpVPbOAgBGLFS2wXDi6Og4fvx4nU6nUqnsnQsAAAAA9CEsLEz367oTaler1R46dCg8PLyqqurQoUORkZH0odbW1oaGhri4uLfeeou+KikpqaamRqlUxsfHr1ixgmrcvn27Wq2uqqq6c+cOh8NRKBRUO7VB/8JjXZ6EkLi4OKFQqFAozp07V1hYqHfU8uCm4lMtTU1N1dXVVE2P1fkDwAjj6+s7YcKEwYgsEAgwjSQMF6Yq5m2iq6tr8ILbhM1/BqitrW1ra6N3N27ceObMGZ1Ox/whhHl3nU6nVCpnzpxJtaxfvz4zM1Mqlep0un/+85/MeYbb2tru3Llj22wBAIYjDLbBMEMtIo2ZJAEAAACGCJFIRE9uRm2IRCLzl2zdunXVqlVKpTI9PX3VqlUajYY+FBwcPG7cuNDQ0NLSUqqltrb29ddfnzhxIp/PT0xMpD90dezYsT179ri5uTk5Ob366qsPHjyw7XMdPXpUIpGw2WxXV9f169frHa2srKysrBz4XZKSklxcXMRiMbMTAAD27NkzGGE//PDDwQgLMBhaWlqYu9TPGJmZmV5eXmw2WyqV0oc2b948ffp0DocTFBRUVlZGn5yens7j8SoqKnJycng8HnWJXC738/PjcDgeHh6bNm3SG3WzcDFIvWlg9XYN86HPUSqVMTExPB5PIpFQ7d3d3Vu2bPHw8BAKhbm5ub6+vswbXbhwwZLnNROflpWVFRwcTO8qFIrQ0FBCSHh4+OzZs/t85J6eHrr4ftGiRcxFNAMDAw8ePNhnBACAEQ+DbTDMUCtYPHz48NGjR/bOBQAAAACITCaja7CoDZlMNvCwY8eOpTZWr169ePHiGzduKJXK48eP0ydY+NOgWq0eeDI2CTLsbg0AADB0mKoIJ8Yq4M1U0kskkrS0NLVaffv27cDAQL1BKQvLynU6nb+/f0VFBbVbUVGxcOFC+kKjFfnU0YiIiICAAJlMtmzZMqrdVKU+paSkpKamps/nNROfdvbs2WeeecbwWc6fP0/Pd01xcnKihu6Yg3wNDQ2memPGjBlnz5413VsAAKMFBttgmBk7dqyTkxNBcRsAAADASHTp0iW1Wl1SUhIUFES1yGSyefPmubi4VFdXHzhwgD5z1apVaWlphBC5XC6VStesWUMfcnR0lEqlGo2mpKRk6dKl1mXy2muvffTRRxqNpqmpKSUlRe+ohZ98t45N8gcAABiOzFfMG1aEm6qAJyYq6QsLC5csWcJms3k8XkRExIkTJ5h3t7xyPTExMSEhgdpOSEhITEzsMx9CyOnTp6Ojo11cXAIDA6kW85X6SUlJHA7Hwuc1Gp929+5dT09PvcbS0tLZs2e7uroyG7u6uqhBx7q6OnqQT6vVmuoKLy+vu3fvmjoKADB6YLANhh+quA3LtgEAAAAMKe7u7notei/LqA36T+YGzdPTc9q0aenp6fv376daDh48GBMTIxAI4uPjo6Ki6KvS0tKUSqW7u/uzzz77xRdfpKam0kGoD4Dz+fzs7OycnJw+MzfMkxCSmpra2NjI5/NDQ0PXrVunl61Wq7V8MRWj8Q07hD7U3/wBAABGjP5WzJuqgDdl7ty5Oob79+9bl2dwcPDDhw/Ly8vLy8u7u7vpDwmZz4daG4XJfKU+XehP6298muHPLYcPH548efKkSZNMXfLkk0+ameaaOfyGVWYBAAgh+t+yAYY+Lpcrl8u7u7s1Go2jo6O90wEAAAAAQgi5d++eXovhmxdmC73NbJwzZ47ePEVisVgsFhtexeFw/va3v/3tb38zzEQsFvdr9kWjb4g4HE5eXl5eXp7Rc65evTrA+Ea7gtLf/AEAAEYtZgX8559/3uf5oaGh2dnZy5Yt8/T0dHDQL0KgytavXLliya3p4ja6rM2KfKhK/b1798rl8kuXLhUUFPz97383c35/49MmT57c1NRErwl34sSJ5557zsfHhxDCYrHoH0UCAgJefPHFP/zhD9OmTZNKpfRrNycnp4qKikWLFhFCKisrXVxcent7x4wZQwhpbGycOnWq5ZkAAIxUqGyD4WfMmDGYSRIAAABghNGr7gIAAIDRTK9i3lRFuNEKeDOV9LGxsXK5PCAgQCAQhISEJCcnM+/Sr8r1wMDA3t5enU730ksv0Y2mKvKZNe7MfExV6vfrec3EpwUHB9+8eZPejY6OnjNnjuHJUqm0vr5+7ty5LBYrMjIyPz+fav/ss8+WLFnCYrHc3NxWrlxZWFhIj8PdvHkzJCTEwk4DABjBWKjzheGovb1doVBMmDBhwoQJ9s4FAAAAYNRJTk5ubm7OyMiwdyIwvMXGxopEori4OHsnMtJwOJz6+nq9NXgAzLh27ZpYLK6rq7N3IjB6TZkypaioaObMmfZOZMS6detWRkbGJ598YvPIGzdufOedd4ZFcZuDg0NHRweHw7F3IgAwMqGyDYYlFxeXp556CiNtAAAAAGAJDw8PlgEPDw975wUAtmeqqmOww1p430FKDwDAPF9f30F6jSYQCIbFSBsAwGDDYBsAAAAAAIxw9+7d0xkwXGQOYKQSCoWDFJnH45k61NXVZZM4/TVI8/f0GdbC+2J6IQCwlz179gxG2A8//HAwwgIADDsYbAMAAAAAAAAYyVpaWpi73d3dW7Zs8fDwEAqFubm5vr6+VLtGo4mPj58+fbqvr++2bdvUajXVThVjZWZmenl5sdlsqVRKtQsEApVKZbhEkFwu9/Pz43A4Hh4emzZtokfd+huHMn/+/Pnz5w/k8fv7XF1dXW+88Qafz58zZ05NTQ0zq59++snf35/P569bt66zs9O6+/Y3DgAAAAAMfRhsAwAAAAAAABhFtm/frlarq6qq7ty5w+FwFAoF1b5jxw6RSFRTU3Pr1i2RSLRjxw6qnSrGampqqq6uzs/Pj4yMpNqpC+lqUTq+RCJJS0tTq9W3b98ODAyUSCTWxaGvGmA1WH+fKy4uTiAQtLS0lJeXf/nll4RRjpabm3vy5Mnbt29zudxt27ZZd9/+xgEAAACAoY+FGQwAAAAAAKBfkpOTm5ubMzIy7J0IDG+xsbEikSguLs7eiYw0HA6nvr7e1dVVJBI1NTUxD3l6espkMqFQeP36dYFAoHfhpEmTbt68SS3q09bWNnPmzObmZuoQi/WftwemtmkTJ06kB/AIIW5ubvfv37cijtX0ovX3udzd3W/evEn1j1wud3d3p9pZLFZjY6NIJCKEKBSKGTNm0M/Vr/v2Gefxu3btmlgsrqurs28aMJpNmTKlqKho5syZ9k4ERjIHB4eOjg4Oh2PvRABgZEJlGwAAAAAAAMAIJJPJ6LIwakMmkxFCHj16ZOqSgYx40dMkzp07l7k+Yn9HkpjTLdpKv56LOZWlqQt7e3sdHPp+o9LnfS2MAwAAAABDHH6kAwAAAACAIcRwxSb7xrEivtF1p2wYH2CAVq1alZaWRgiRy+VSqXTNmjVUe1RUVFZWFjVCdvDgwbVr1/YZytHRUSqVajSakpKSpUuXUo2hoaHZ2dmNjY29vb0WpmQ0DmXga7b197kiIyPT09N7e3tVKlV2djbzUFZWVmNjY1tb2549e1avXm31ffsVBwAAAACGPgy2AQAAAACADQiFQpvEsdVUcoZxeDyeTSKbim/JIZvE12Pb54IRyd3dnbmblpamVCrd3d2fffbZL774IjU1lWrfvXu3XC739vb29vZubW3dvXs31U4N/Rr+SQihljrj8/nZ2dk5OTlUY2xsrFwuDwgIEAgEISEhycnJ1sWhaLVay/850EPdzDHv/j5XcnJyS0uLq6vr4sWLly9fzjw5Ojo6IiJi6tSpKpWKfq5+3dd8HAAAAAAYprBmGwx7Dx8+7OzsnDhxIj78CwAAAPB4GF2zTW+xIupns9LS0tdff/3JJ58sKCiYPHky3d7W1vbOO+8cP378z3/+M/2iv7i4ODw8nPx6nEmj0bz//vtSqVSn061cuXL37t1sNtuKOAKBoK2tjd5lrtJECCkqKgoLC6Mu9PLyamhoMPP4RuN3dnZu3Ljx5MmTPj4+R44cee6555hHqbqcK1eu9NGzpuNTeR44cCAlJeX+/fv5+flisdjMcw0LWLNtkNBrttk7kWFPo9GcOXNmx44d169ft3cugwtrtoHdDdKabdT/nkb/czSzVKSZqwYvzqAylYl1/TN8Yc02ABhUqGyDYe/evXttbW2dnZ32TgQAAAAA/oN6QdPa2trQ0BAXF/fWW28x2yMiIgICAmQy2bJly+hLwsLCDF/r7NixQyQS1dTU3Lp1SyQS7dixw7o4CoWC/LJsFfPo5cuX/f39w8LCCCGhoaHz5s0rKioy/2hG48fFxQmFQoVCce7cucLCQsPesPyNldH4VEtTU1N1dTVVA2T+uQBgIN577z0Wi8Xlcg8fPnzhwgV7pwMwGtmkYt66MvR+/X862JXuNmEqE5skjwp7AAAKBttg2OPxeDwez9HR0d6JAAAAAIxGIpFIb/40kUhEHw0ODh43blxoaGhpaSnzqtOnT0dHR7u4uAQGBpqPn5eXRy90FBUVdeTIEevimOLv7y8UCk+dOkUIKSgoePrpp2fNmmVFnKNHj0okEjab7erqun79er2jlZWVlZWV1mXIlJSU5OLiIhaLNRrNwKMBgCl79uzR6XQ9PT1SqdTDw8Pe6QCMRi0tLfQ26xdGdzdv3jx9+nQOhxMUFFRWVtZn5OLiYsPVVTs7O6Ojo7lc7uzZs6uqqizJ0Io4li9CKZVK2Ww2i8VycXFZvHixr68v+eXB09PTeTxeRUVFTk4Oj8eTSqXUJf3th349F9WSmZnp5eXFZrPpmwoEApVKpfcVAQAYnTDYBsPexIkTJ02aNG7cOHsnAgAAADAayWQyuqaK2pDJZIanjR07lrnL5XItv4WZz1b3Kw6TWq2mt/fu3ZuQkNDT07Nr165du3ZZF9BU8MfMjrcGAAAYJDqdzt/fv6KigtqtqKhYuHAh/eNBUlJSTU2NUqmMj49fsWJFn9GsqFC3VRzLy9CjoqJefvlljUbT0tKydetWpVJJfvmJSKvVHjp0KDw8vKqq6tChQ3Sxe3/7oV/PhQp7AIA+YbANAAAAAAAGy6VLl9RqdUlJSVBQkHURoqKisrKyqDc4Bw8epKvcrODo6CiVSjUaTUlJydKlS+n2GTNmLFy4cPny5QsWLPDx8bEu+GuvvfbRRx9pNJqmpqaUlBS9o5Z/kt0Kpp4LAABg2DFVMZ+YmJiQkECdk5CQkJiYSG3X1ta+/vrrEydO5PP5iYmJKpXKuvuar1C3VRzLK92PHj165swZR0fHyZMnb9++nTnH9datW1etWqVUKtPT01etWkUVu9uqH8xDhT0AgBkYbAMAAAAAABtwd3c3bPT09Jw2bVp6evr+/fupFubrM6MzFDE3CCG7d++Wy+Xe3t7e3t6tra27d++2Lg4hhPogNp/Pz87OzsnJYV7y7rvvXrx4kX6LZ57R+KmpqY2NjXw+PzQ0dN26dXSGFK1Wa/nHvY3Gp1v0/jT/XAAAAMOLqYr54ODghw8flpeXl5eXd3d30x/iWb169eLFi2/cuKFUKo8fP26THGxVJj6QOMuXL1er1SqV6t///vfatWuDg4PNnz8Y/WAFVNgDwGg2tu9TAAAAAAAA+nLv3j3Dxjlz5jQ0NDBbzIw5GT3EZrNTU1NTU1MtOdn8IbFYbOodUFFR0Ztvvunt7W0qZp/xORxOXl5eXl6e0XOuXr1qSWQz8ZmNeieYeS4AAIARgy5uo8vaCCEymWzevHkuLi7V1dWff/651cGpCvWdO3fK5fJ9+/YNUhyqzP3KlSt9xnFzcysqKnruuee8vb1nzJjR2dlp/nxb9YMVqAr7l19+ubS0NCkp6eLFi4/z7gAAQwcq2wAAAAAAwPb0qq+GMhaLFRsb+/HHH9s7EQAAAPg/hhXzgYGBvb29Op3upZdeohsPHjwYExMjEAji4+OjoqII42cPU5XuVlSoGzWole5Tpkz57rvvfH19WSxWZGRkfn4+MfjhihnZVv1gqh0V9gAAfWJh7UoAAAAAAOiX5OTk5ubmjIwMeycCw1tsbKxIJIqLi7N3IiMNh8Opr693dXW1dyImsVgm30VQb28H+KbCTHww6tq1a2KxuK6uzt6JwOg1ZcqUoqKimTNn2jsRGMkcHBw6Ojo4HI69EwGAkQmVbQAAAAAAAL/i4eHBMuDh4WHvvACsJBQK9Vp4PJ6tgnd1dfX3EiumgbVVfD027AcAAAAAGM2wZhsAAAAAAMCvGF1/DmD4amlpYe4KBAKVSkXPAEYPTVEtRUVFYWFhxcXF4eHhXl5eDQ0NVHtpaenrr7/+5JNPFhQUTJ48mRAil8vDwsK+/fZbd3f3V199dd++fc7OzuYzocKSX4+HdXZ2bty48eTJkz4+PkeOHNG7xPIljkzFp/I/cOBASkrK/fv38/PzxWKxmX4YnR49ehQUFGTvLMB6fD6fz+fbOwvr9fb22jsFAACAAcFgG4wcvb29SqWys7PTwpXtAQAAAAAARiGFQmF0osXLly+/9dZbYWFhhJDQ0NB58+ZRq+/odDoWi9Xa2trQ0HD69Om33nrr1KlThBCJRJKWlrZo0aKenp5z585JJJJPPvnE/K3DwsKoaMzGuLg4oVCoUCja29uzsrL0LunXGJjR+FRLU1NTdXX1+fPnIyMj1Wq1mX4YncaMGYM5XYevxsZGfExkMHh4eNy/f1+v0d3dHb0NAACG8GMljBw6ne7u3btardbT0xPzLwMAAAAMHqzZBjaBNdsGCb1mm0gkampqYh7y9PSUyWTE9KpmERERa9asiYiIOHnyZEFBwbFjx6h2FovV1tY2YcIElUrl6enZ3t5OCJk4caJCoaCvdXNzM3wrbZTe3QUCQV1dnUAgIIS0tra6urrafM02Zoup7dEMa7aB3WHNNngMsGYbAAwqrNkGIweLxaIm3O/o6LB3LgAAAAAAAHYmk8l0Oh01mERtUCNteqgyL8revXsTEhJ6enp27dq1a9cuo2HHjv2/OXLmzp2rY7BwpM08ZjKPmR1vDQAAAADDHQbbYEShBttUKhUm+wYAAAAAADDF0dFRKpVqNJqSkpKlS5fS7TNmzFi4cOHy5csXLFjg4+PDvOTSpUtqtbqkpIRe2Ss0NDQ7O7uxsXGAv3+99tprH330kUajaWpqSklJ0Ts6f/58atm2wWCqHwAAAAAA+gWDbTCijB/GGdkPAAAgAElEQVQ/3tHRUafTdXZ22jsXAAAAABgJ9BZ/esy3tuPdYSRxd3fXa8nPz4+MjOTz+dnZ2dTCbLR333334sWLCQkJepd4enpOmzYtPT19//79VEtsbKxcLg8ICBAIBCEhIcnJyX1mQv+tZv71Tk1NbWxs5PP5oaGh69atI7/+d6fVai2f6dFofLpF70/z/QAAAAAAYLmx9k4AwMZcXFxaW1vb29upKjcAAAAAeDyEQmFzc/MAg3R1dTk7O1t4Mo/HMzV/uK3iEEL6tZ5Tv+7bJ51OZ8lgm636AUawe/fu6bWIxWJTsyYWFRW9+eab3t7eeu1z5sxpaGhgtowZM+bdd9999913Lc/E6D8oDoeTl5eXl5dn9JyrV68OMD6zUe8EM/0AAAAAAGA5VLbBSOPi4kII6erq0mg09s4FAAAAYBRpaWlh7nZ3d2/ZssXDw0MoFObm5vr6+lLtVLmJUqmMiYnh8XgSiYRql8vlfn5+HA7Hw8Nj06ZNXV1ddKjNmzdPnz6dw+EEBQWVlZVRjQKBQKVSsX5Bn2wmjlGm4hBCiouL9Rqp3fT0dB6PV1FRkZOTw+PxpFJpn/e1fB68zs7O6OhoLpc7e/bsqqoq5qFB7QcACovFio2N/fjjj/UaiV2rPAEARgxUzAMAjFQYbIORZuzYsdSnd818PBkAAAAABtv27dvVanVVVdWdO3c4HI5CoaDaqbKSiIiIgIAAmUy2bNkyql0ikaSlpanV6tu3bwcGBtKDcISQpKSkmpoapVIZHx+/YsUKqpEKqPsFfbKZOEaZikMICQsL02uhdrVa7aFDh8LDw6uqqg4dOhQZGdnnfQ2DmxIXFycUChUKxblz5woLC5mHBrUfAChG/y0YbQQAGFRCoXDgQfr1WRMzMyTZKg7pf8W85Sf3ycJb26ofAABGGwy2wQhEFbe1t7fbOxEAAACAkU8kEuktkiQSiQghx44d27Nnj5ubm5OT06uvvvrgwQPmVadPn46OjnZxcQkMDKRaCgsLlyxZwmazeTxeRETEiRMnqPba2trXX3994sSJfD4/MTFRpVKZz8dUHBvaunXrqlWrlEplenr6qlWrqAkVzN+3srKysrLSkuBHjx6VSCRsNtvV1XX9+vV0+xDsBwCjPDw8WAY8PDzsnRcADDOomEfFPADA8ILBNhiBuFyug4ODRqN5+PChvXMBAAAAGOFkMhld8kJtyGQyQsijR4/MXMXlcvVa5s6dq2O4f/8+1b569erFixffuHFDqVQeP37cVEB61SVTcSxk9epNA7xvn8k85n4AsNq9e/d0BgwXjQMA6BdUzOtdiIp5AIChBoNtMAKxWCyq5h3FbQAAAAD2smrVqrS0NEKIXC6XSqVr1qwxf35oaGh2dnZjY2Nvby+zXSaTzZs3z8XFpbq6+sCBA8xDjo6OUqlUo9GUlJQsXbrUfBwzjMbpL/P3tfwT6K+99tpHH32k0WiamppSUlLo9sfQDwAAAHaHinlUzAMADFMYbIORiZpJUqVS4eUCAAAAwOPh7u7O3E1LS1Mqle7u7s8+++wXX3yRmppKtTNfnzGnJ4qNjZXL5QEBAQKBICQkJDk5mWo/ePBgTEyMQCCIj4+PioqiIxBC8vPzIyMj+Xx+dnZ2Tk6O+ThmGI1DJ6m3wUzAkvwpWq3Wwk+gp6amNjY28vn80NDQdevW0Xd5DP0AAABgd6iYt8l9+0wGFfMAADbHsvBXPoBh56effurp6fHw8KAG3gAAAADAVpKTk5ubmzMyMuydCAxvsbGxIpEoLi7O3omMNBwOp76+3tXV1d6JwLBx7do1sVhcV1dn70Rg9JoyZUpRUdHMmTPpFhbrVy8t33zzTT6fv3fvXrlcfunSpYKCgr///e9Gz6RQC6EtW7bM09PTweE/xQbu7u7Hjh37r//6r1u3bn3++edJSUn0tWw2Oz8//+WXXy4tLU1KSrp48aKZOGYYjWPquehdvQ3z96XK5a9cudJnMhs2bODz+Tt37pTL5fv27cvIyKDu8hj6YQhycHDo6OjgcDj2TgQARqbh+s0RoE+YSRIAAAAAAAAAYDhCxTwq5gEAhhdUtsGIpdVq7969q9PpJk+ezGaz7Z0OAAAAwMiByjawCVS2DZJBqmyj3sMafYdgtKykz6sGL86gMpWJdf0zRKCyDezOsLINwOZQ2QYAgwqVbTBijRkzxtnZmRDS0dFh71wAAAAAwJ48PDxYBjw8POydF8BjIhQKBx7EzHCRdYcGL86gMpWJTZKnJmgBAAAAgGEHg20wklGrtWEmSQAAAIBR7t69ezoD9+7ds3deAI9JS0sLva032Zre7ubNm6dPn87hcIKCgsrKyvqMXFxcrDd1GyGks7MzOjqay+XOnj27qqrKkgytiDN//nxq1aI+SaVSNpvNYrFcXFwWL17s6+tLfnlwahWiioqKnJwcHo8nlUqpS/rbD/16LqolMzPTy8uLzWbTNxUIBCqVynA2PAAAAAAY+jDYBiMZh8MZM2bMo0ePurq67J0LAAAAAACA/el0On9//4qKCmq3oqJi4cKFdOlVUlJSTU2NUqmMj49fsWJFn9HCwsIMy7bi4uKEQqFCoTh37lxhYaElWVkRhxo1tyR4VFTUyy+/rNFoWlpatm7dqlQqyS/VZlqt9tChQ+Hh4VVVVYcOHYqMjKQu6W8/9Ou5qJampqbq6mpqbSSqXaFQ0M81dCr5AMAQKuYBAMDQUJ83HGCA5HK5Uqnk8XiTJk2ydy4AAAAAIwTWbAObwJptg4Res00kEjU1NTEPeXp6ymSys2fPpqamnjt3jhASFBS0bdu2oKAgQkhtbe3bb79dUVHR09MzZ86c8vJyvTcGptYe02sXCAR1dXUCgYAQ0tra6urqat2abVbH0VNYWPjKK69oNBpXV1c3N7e8vDw/Pz/m7fQ2bNUPZtqZLaa2Hyes2QZ2hzXb4DHAmm0AMKhQ2QYjHI/Hw/wbAAAAAAAwCslkMrpGitqQyWSEkODg4IcPH5aXl5eXl3d3d1MjbYSQ1atXL168+MaNG0ql8vjx4zbJQa1W2z3O8uXL1Wq1SqX697//vXbt2uDgYPPnD0Y/WMFWXQcAAAAAjwEG22CEGz9+/JQpU1DWBgAAAACGHufCSPgEGAwpiYmJCQkJCQkJiYmJdKNMJps3b56Li0t1dfWBAwesDv7aa6999NFHGo2mqakpJSVlkOJYvmabm5vblStXHBwcvL29Z8yY0dnZaf58W/WDFRwdHaVSqUajKSkpWbp06eO8NQAAAAAMBAbbYOQbM2aMvVMAAAAAGPmEQuHAg/RrqV0ejzfAOI9zujbL72XmuQCs4+7urtcSGBjY29ur0+leeukluvHgwYMxMTECgSA+Pj4qKoowBonpkWm9IWqj7ampqY2NjXw+PzQ0dN26dcSCwWYr4mi1Wgv/WU2ZMuW7777z9fVlsViRkZH5+fl0KOYD2rwfTLUzb62XBrWEG5/Pz87OzsnJseTpAAAAAGAowGAbAAAAAADYQEtLC3O3u7t7y5YtHh4eQqEwNzfX19eXaqfeOCuVypiYGB6PJ5FIqHa5XO7n58fhcDw8PDZt2sQcLdu8efP06dM5HE5QUFBZWRnVKBAIVCoV6xf0yWbimPLTTz/5+/vz+fx169bRJS9U2OLiYkJIcXExi8Xy9vamL7G8pIa+XG+wgWrJzMz08vJis9lSqdT8cwEMxL179wwbv/7663/+85/MFrFY/OOPP3Z1dRUXF8+YMYOegpL8Mgsljb7EaDuHw8nLy1OpVN9///2sWbP0LjHKijhXr16trKy05PGvXLmyfv36hoYGnU6nVqvFYjHzjvQ2+WVQ3Fb9YKrd8Nb0IbFYTM14WVBQ4OPjY8nTAcDQgYp5AIDRDINtAAAAAABge9u3b1er1VVVVXfu3OFwOAqFgmqn3ilHREQEBATIZLJly5ZR7RKJJC0tTa1W3759OzAwkB6EI4QkJSXV1NQolcr4+PgVK1ZQjVRAw1fbZuKYkpube/Lkydu3b3O53G3btlGNly9f9vf3DwsLI4SEhobOmzevqKiIvsSSwQNaWFiY4clUS1NTU3V1NVXLYv65AAAARhVUzNvqXqiYBwB4PDDYBgAAAAAA1hOJRHrzpIlEIkLIsWPH9uzZ4+bm5uTk9Oqrrz548IB51enTp6Ojo11cXAIDA6mWwsLCJUuWsNlsHo8XERFx4sQJqr22tvb111+fOHEin89PTExUqVTm8zEVx4yYmBgvLy+BQLBz5076fH9/f6FQeOrUKUJIQUHB008/PWvWLPqSyspKC0tqzEtKSnJxcRGLxRqNZuDRAOD/s3ev4VFV9x7H186NJDO5zCTMOAlaoXKpeKyEq5V4PAJFQDiFUvBCkXJpq4XwHJ4GIvikgg9JKmlROG3lkBSqrVYKjVYBqxj6JAoVxUtJgHBTMBOSTC4TMgmZ+3mx2+k4SSaTIclOJt/Pizwza6+91m9vFcP8Z+0FIGSwYr4zrJgHgP6JYhsAAACA4BmNRp/noRmNRiGEw+Hwc5ZarfZpGT9+vPfD1mpra+X2RYsWTZ069cyZM2azed++fZ0NaLPZ/I8TCJfLFRb2778i5eTkZGdnW63WLVu2bNmyJfBxepDnuoCBTq/XS+3o9XqlcwEYGFgx78GKeQDonyi2AQAAAOh5CxcuzM/PF0KYTKaioqIlS5b47z9r1qyCgoLKykqXy+XdbjQaJ0yYEB8ff/r06R07dngfioyMLCoqstvthw8fnj59uv9x/Ni9e3dlZWVjY+PWrVsXLVrkaR8zZszdd989d+7cyZMn+2ye1K1voHdXh9cFDHQ1NTXudjrcTA7AYMaK+RvBinkAUBDFNgAAAAA9QKfTeb/Nz883m806nW7s2LGvv/76tm3b5Hbvj8+8H2eUkZFhMpnS09O1Wu3MmTPz8vLk9l27dq1YsUKr1WZlZS1dutQzghBC/uK2RqMpKCgoLCz0P06H5KGWLVu2YMGCESNGWCwWn/5PPvlkSUlJdna2z4lOpzPwr4f7fGjocx98fnZ2XQAADAasmO9VrJgHgN4jsYIYg4fT6WxubpYkKSEhQeksAAAAA1heXt7Vq1eff/55pYP0up07d166dGn79u1KBwlNGRkZqampGzZsUDpIqFGpVJcvX05OTlY6CAaMU6dOzZ8//8KFC0oHweA1fPjwgwcP3n777Z4WSfrKh5aPP/64RqPJyckxmUzvvffegQMHfv/733fYU7Z9+/a4uLgHHnggJSXFu+Kl0+leeeWVe+6559y5c3/84x9zc3M950ZFRb366qsPPvjgkSNHcnNzS0pK/IzTGUmSfvazn61cuVKlUm3ZssXpdHqvy1+1atXly5e/9rWv7d692/ssebn8iRMnArtbHV+1d4v36w6va3AKCwtrbm5WqVRKBwEQmljZhkGkra3NZDLV19dTYwYAAECXJEnKyMh47rnnlA4CAMCgw4p5P7OwYh4A+iFWtmEQcbvdVVVVKpUqISHB+zcwAAAAdMvgWdmGXsXKtl4yeFa2dbicpc+mFkKEzCcqrGyD4tqvbAtJrJhXFivbAPQqVrZhEJG31U1MTKTSBgAAMKjo9XqpHb1er3QuoI8YDIYbH6S1tTXwznFxcb09juhmratb83YpwKl76j4ACAGsmAeA0EaxDQAAAECIq6mpcbdTU1OjdC6gj1RXV3u/bWtrW7t2rV6vNxgMe/fuHTVqlNwu16HNZvOKFSvi4uIyMzPldpPJNHHiRJVKpdfrV69e7V0lWrNmzejRo1Uq1YwZM44ePSo3arVai8XS/qlufsbpUGfjCCEOHTrk0yi/lXdXOnbsWGFhYVxcXFFRUZfzTpo0Sd4tqUstLS3Lli1Tq9Xjxo0rKyvzPtSr9wFAaPD8BqJ0EABAr6DYBgAAAADAILJx40abzVZWVnbp0iWVStXQ0CC3yx8BL1iwID093Wg0PvDAA3J7ZmZmfn6+zWa7ePHitGnTPEU4IURubm5FRYXZbM7Kypo3b57cKA/Y/mNlP+N0qLNxhBCzZ8/2aZHfOp3OPXv2zJkzp6ysbM+ePYsXL+5y3sA/+96wYYPBYGhoaHjnnXfeeOMN70O9eh8A9DesmAcAtMeebQAAAAC6hz3b0CPYs62XePZsS01Nraqq8j6UkpJiNBoNBkN5eblWq21/riRJzc3NarXauzEpKclTkBNCDB06tLa2Vghx/vz5devWHTt2zGq1pqWllZaWej5h6HA3tc7G8cP/rmw+Rz1vfV4EMW+HtFrthQsX5PtWX1+fnJwsz9IH96G3sWcbFDdI9myDstizDUCvYmUbAAAAAAAhyGg0etZUyS+MRqMQwuFw+DnLp9ImhBg/frz3I1g9laFFixZNnTr1zJkzZrN53759nQ1os9n8jxMgzzjddYPzdhmmj+8DAAAA+iGKbQAAAAAADCILFy7Mz88XQphMpqKioiVLlvjvP2vWrIKCgsrKSpfL5d1uNBonTJgQHx9/+vTpHTt2eB+KjIwsKiqy2+2HDx+ePn26/3H86HCc7vI/b+B7tj300EO/+MUv7HZ7VVXVz3/+c097H9wHAAAA9HMU2wAAAAD0HXlfE6VTdIOCaQfcvUK/pdPpvN/m5+ebzWadTjd27NjXX39927Ztcrv875tn/yFP/4yMDJPJlJ6ertVqZ86cmZeXJ7fv2rVrxYoVWq02Kytr6dKlwuu/l1dffXXx4sUajaagoKCwsND/OH50OI7w+q/D+4V3gEDyy5xOZ4D7a2zbtq2yslKj0cyaNWv58uWeWfrgPgAAAKCfY882DGput5vPLwAAALqrwz3bDAbD1atXAznd/yZMPaK1tTU2NjbAznFxcc3NzX0/byACuVd+8vd4np7Fnm29xLNnm9JBMGCwZxsUx55t6APs2QagV7GyDYOUw+Goqqq6fPmy0kEAAABCRHV1tffbtra2tWvX6vV6g8Gwd+/eUaNGeR8tLi4eNmxYVFRUUVGRp3HNmjWjR49WqVQzZsw4evSo3CgvW9m5c6dP/9bW1lWrVmk0mrS0tIqKCs/qFpPJNHHiRJVKpdfrV69e3dra6j+2Vqu1WCztl/IIIQ4dOuTTKL/dvn17XFzcsWPHCgsL4+Li5Ej+5w38OXUtLS3Lli1Tq9Xjxo0rKyvzPtTh/eksf3fvAwAAA9GAWwXOinkACFUU2zBIhYeHt7W12e32lpYWpbMAAACEoI0bN9pstrKyskuXLqlUqoaGBu+jhw8frqiokB+w5mnMzc2tqKgwm81ZWVnz5s2TG+V1XVVVVadPn/buv2HDBq1WW11dXVpa+tZbb3l6ZmZm5ufn22y2ixcvTps2LTMz039OOZj7X7wPzZ4926dFfut0Ovfs2TNnzpyysrI9e/bIkfzP237wzmzYsMFgMDQ0NLzzzjtvvPGG96EO709n+bt7HwAA6FcMBkMg3frmkV3d+s5KXFycn6PdCtyz35UJcGo/+fnuDgD44wYGK5PJdO7cOaPRqHQQAACAASY3NzcjI0N+nZKS4vNXjJSUFLfbfdNNN9XX13d4uhDCbrd7Xssvzp079+CDD2q1WpVKlZ6eLr5aQGr/eujQoZ7xa2trPe1ardY7zNChQ7u8HP9/LfI5KrwqZ94vgpi3QxqNxnNddXV13b0/Hj2Vp1etWbMmLy9P6RQhKDY21mQyKZ0iUD77ycl0Op3SuQaXf/zjH1//+teVToFB7dZbby0vL/du8fm/2/Xr1zMyMnQ63U033bRnz56RI0d693z33XdTU1MjIyP//Oc/e9pXr149atSo2NjY6dOnFxcXezoLIXbs2OHTv6WlZeXKlYmJiePGjTt79qznU9Pa2toJEybIfy795Cc/aWlp8X8hGo2ms89dDx486NMov/3lL3+pVqvff//9goICtVotR/I/78SJEydOnNjFPXW73W63xWJ57LHHVCrVXXfdderUKe/ZO7w/neXv7n3onyRJslgsSqcAELJY2YbBKyEhQQjR0tJit9uVzgIAADBQeb66JP71iYzRaBRCOBwOP2dFRET4tCxatGjq1Klnzpwxm8379u3rcl7v5yC5vb6pPX78eO+/8Mh1uMDZbLZu9e+pebsME+D98ZzSG3mA3lBTU9P+o4qamhqlcwHoX1gx73OimxXzANDP9PrO5EB/ZjQaW1tbtVptUlKS0lkAAAAGjLy8vKtXrz7//PPejZL0lb9cPP744xqNJicnx2QyvffeewcOHPj973/fvqfntU6ne+WVV+65555z58798Y9/zM3Nbd/H+3VGRkZCQsLmzZtbW1t37NixadMmuV3eUO2BBx5ISUkJCwvoy4VRUVGvvvrqgw8+eOTIkdzc3JKSEj/X5Xnr88L/vPKGbSdOnOgyzBNPPKHRaJ5++mmTyfTss88+//zzXd6fDvMHcR/6XkZGRmpq6oYNG5QOEmpUKtXly5eTk5OVDoIB49SpU/Pnz79w4YLSQTB4DR8+/ODBg7fffntqampVVZX3oZSUFKPRaDAYysvLfdZtyyRJstvt8vd4PP93Pn/+/Lp1644dO2a1WtPS0kpLS/3/XqHT6c6ePSuPbzKZ5PW1QoikpCTvwt7QoUO7/P6Kz28O/o929ntFEPN2SKvVXrhwQb6u+vr65OTkbt0fj57Ko6ywsLDm5maVSqV0EAChqZ/+pQvoG/LitqamJqrOAAAAN8jnWXD5+flms1mn040dO/b111/ftm2b3C6vSGv/c9euXStWrNBqtVlZWUuXLvXTU/6Zl5dXXV2dnJw8derUuXPneubNyMgwmUzp6elarXbmzJl5eXldJpe/2K7RaAoKCgoLCz3tkiR5ZmwfwPtFl/M6nc4Af+Hctm1bZWWlRqOZNWvW8uXLu7w/neUP4j4AAKA4Vsz3yLxdhmHFPAD0OFa2YVBzu91ffPGFw+EwGAxqtVrpOAAAAANDhyvblGK32998882nnnqqvLxc6SzoHla29RJWtqG7WNkGxXlWtnlaWDHPivkex8o2AL1qoP7hCPQISZLi4+OFEGazWeksAAAA6J5NmzZJkqRWq1988cXi4mKl4wAAgB7DinlWzAPAwMLKNgx2Dofj888/F0J87Wtfi4qKUjoOAADAANCvVrZh4GJlWy8JjZVt8se+ffORhf8NlgYDVrZBce1XtimFFfMhjJVtAHoVK9sw2EVERMj/l21qalI6CwAAAHqFXq+X2tHr9UrnAvqIwWC48UFaW1sD7xwXF3eD4/Rl9SvwufxcF4CBjhXzAIAbQbENEAkJCUKIa9euDfIvMwIAAISqmpoadzs1NTVK5wL6SHV1tffbtra2tWvX6vV6g8Gwd+/eUaNGye1yHdpsNq9YsSIuLi4zM1NuN5lMEydOVKlUer1+9erV3tWyNWvWjB49WqVSzZgx4+jRo3KjVqu1WCyewrans59xOnPlypUpU6ZoNJrly5e3tLR45zx06JAQ4tChQ5Ik3XzzzZ5TJk2aJO9mFAj5dO+QnvF37tw5bNiwqKiooqIi/9cFIDRs3brV7XZbrdaioiK+kQMA6C6KbYBQqVSRkZEul6u5uVnpLAAAAADQuzZu3Giz2crKyi5duqRSqRoaGuR2+duHCxYsSE9PNxqNDzzwgNyemZmZn59vs9kuXrw4bdo0TxFOCJGbm1tRUWE2m7OysubNmyc3ygN6Ctuezn7G6czevXv3799/8eJFtVq9fv16ufH48eNTpkyZPXu2EGLWrFkTJkw4ePCg5xSfSf2bPXt2+85yS1VV1enTp+W9i/xfF4DBhhXzAID2BvtzyQFZY2NjXV1ddHS09zciAQAA0CH2bEOPYM+2XuLZsy01NbWqqsr7UEpKitFoNBgM5eXlWq22/bmSJDU3N6vVau/GpKQkT0FOCDF06NDa2lohxPnz59etW3fs2DGr1ZqWllZaWur5hKHDXdA6G6czkiRVVlampqYKIRoaGsaMGePpv2DBgiVLlixYsGD//v0HDhx45ZVXuror/rRP693S2etQwp5tUFz/2bMNIYw92wD0Kla2AUIIER8fL0lSW1ub1WpVOgsAAAAA9ACj0ehZgyW/MBqNQgiHw+HnLJ9KmxBi/Pjx3o9g9VS8Fi1aNHXq1DNnzpjN5n379nU2oM1m8z9OIFwuV1jYvz/ByMnJyc7OtlqtW7Zs2bJlS+Dj9CDPdQEAAAAU2wAhhAgPD5e/2NLU1KR0FgAAAADoRQsXLszPzxdCmEymoqKiJUuW+O8/a9asgoKCyspKl8vl3W40GidMmBAfH3/69OkdO3Z4H4qMjCwqKrLb7YcPH54+fbr/cfzYvXt3ZWVlY2Pj1q1bFy1a5GkfM2bM3XffPXfu3MmTJ48cOdL7lG7t2dZdHV4XAAAAQLEN+CeNRiOEuHbtmtPpVDoLAABAyJL3NVE6xT/1ZZj+c9UYhHQ6nffb/Px8s9ms0+nGjh37+uuvb9u2TW6X/y317D/k6Z+RkWEymdLT07Va7cyZM/Py8uT2Xbt2rVixQqvVZmVlLV26VHj9ey5vdabRaAoKCgoLC/2P0yF5qGXLli1YsGDEiBEWi8Wn/5NPPllSUpKdne1zotPpDPxJj54r9b5kT4vPz86uCwAAAAjNp40Dwbly5YrVak1OTpYLbwAAAOhQh3u2GQyGq1evBnJ6H2x61NraGhsb20/CdFdcXFxzc7PSKfoCe7b1Es+ebUoH6V07d+68dOnS9u3blQ4SCtizDYpjzzb0AfZsA9CrWNkG/FtiYqIQwmw2Kx0EAABg4KmurvZ+29bWtnbtWr1ebzAY9u7dO2rUKO+jxcXFw4YNi4qKKioq8jSuWbNm9OjRKpVqxowZR48elRvl5SY7d+706d/a2rpq1SqNRpOWllZRUeFZlWIymSZOnKhSqfR6/erVq1tbW7tMfuXKlSlTpmg0muXLl7e0tHjPe+jQISHEoUOHJEm6+eabPad06zl18uk+K9s6u07IjDUAACAASURBVC6tVmuxWNovLQLgTZKkjIyM5557TukgABTWr/53yYp5ABjMKLYB/xYXFxceHu5wODwfsgAAACA4GzdutNlsZWVlly5dUqlUDQ0N3kcPHz5cUVEhP5DN05ibm1tRUWE2m7OysubNmyc3ysvOqqqqTp8+7d1/w4YNWq22urq6tLT0rbfe8vTMzMzMz8+32WwXL16cNm1aZmZml1H37t27f//+ixcvqtXq9evXy43Hjx+fMmXK7NmzhRCzZs2aMGHCwYMHPae43e7A18PNnj27fefOrku+Ue5/CXAKYLDhvxEg5BkMhkC69c2fA4F8d0f0VZjuzhUXF9erSQAAMoptwL9JkpSYmJiUlBQdHa10FgAAgIEhNTXVZ9Oj1NRUIcQrr7yydevWoUOHxsTEfO9736urq/M+Kzc3V6VSzZ8/3263yy3nz59/+OGHk5KSNBrN5s2bLRaLT//4+Hjv/q+++uqGDRuGDBmiUqkeeeQRT8833njjvvvui4qKiouLW7BgwZ/+9KcuL2HFihXDhg3TarVPP/20p/+UKVMMBsOf//xnIcSBAwduu+22O++803PKhx9++OGHH3b/bvlqf13AYKPX66V29Hq90rkAKIwV851hxTwA9E8U24Cv0Gq1Wq02PDxc6SAAAAADg9Fo9KwvkV8YjUYhhMPh8HNWRESET8uiRYumTp165swZs9m8b9++Luf1/sDI+8vd48ePd3upra0N/FpcLldY2L//ipSTk5OdnW21Wrds2bJly5bAx+lBNptNkXmBPlNTU+Nup6amRulcAPoXVsx7sGIeAPonim0AAAAAet7ChQvz8/OFECaTqaioaMmSJf77G43GCRMmxMfHnz59eseOHV2Ov3jx4u3bt7tcLovFUlBQ4GmfNWtWQUFBZWWly+UKMOru3bsrKysbGxu3bt26aNEiT/uYMWPuvvvuuXPnTp48eeTIkd6ndOsb6N0VGRlZVFRkt9sPHz48ffr0XpoFAIB+iBXzN4IV8wCgIIptAAAAAHqATqfzfpufn282m3U63dixY19//fVt27bJ7Z6Pz3x+7tq1a8WKFVqtNisra+nSpX56yj/z8vKqq6uTk5OnTp06d+5cz7wZGRkmkyk9PV2r1c6cOTMvL89PZnmoZcuWLViwYMSIERaLxaf/k08+WVJSkp2d7XOi0+kM/OvhPh8a+r8PQgj5C+kajaagoKCwsDDAWQAACAGsmO9VrJgHgN5DsQ0AAABAD/B57JtKpfr1r39dW1tbW1u7d+9eg8Egt3s/yMj79fz587/44ovW1tZDhw6NGTOmwz7er2NjY3fv3t3Q0PDhhx9euHDh9ttvl8cPDw9/8sknP//8c7PZ/Ne//jUrK8tPZnm0W2+99cSJE42Njbt3746NjfXucPDgwccff9x7VxXZyZMnA/8Gus/z8fzfB/lW2Gw2i8Vy4MABnxV1AAAMTqyYDxor5gGgb1BsAwAAADAgbdq0SZIktVr94osvFhcX9/j4kiRlZGQ899xzPT4yAADwjxXzfmZhxTwA9EMSe2MCAAAA6Ja8vLyrV68+//zzSgfBwJaRkZGamrphwwalg4QalUp1+fLl5OTk7p4ofzI7gD4lkCTFPtMYcPfKv1OnTs2fP//ChQtKB8HgNXz48IMHD3rWqSvIbre/+eabTz31VHl5eY8PvnPnzkuXLm3fvr3HR0YgwsLCmpubVSqV0kEAhCZWtgEAAAAIcXq9XmpHr9crnQvoI57nuPrXN6Wj1tbWwDvHxcX5OdqtwN2at0sBTu0nf8/mAXDjWDEPALgRFNsAf1wuV+BP5QYAAED/VFNT427HZ5M5IIRVV1d7v21ra1u7dq1erzcYDHv37h01apT30eLi4mHDhkVFRRUVFXka16xZM3r0aJVKNWPGjKNHj8qNct16586dPv1bW1tXrVql0WjS0tIqKio8DzozmUwTJ05UqVR6vX716tVdVpu0Wq3FYvEUyL0PHTp0yKdRfrt9+/a4uLhjx44VFhbGxcXJkfzPG/hWSS0tLcuWLVOr1ePGjSsrK/M+1OH96Sx/d+8DgL6xdetWt9tttVqLiop64xs5Plu0AgBCTITSAYD+y2w219fXJyYmJiUlKZ0FAACgH/nggw+OHDmyd+9epYNgYHO5XDNmzFA6xWC0ceNGm81WVlamVqvffPPNhoYG76OHDx+uqKh4++23Fy9ebLPZ5Mbc3NydO3fa7faSkpJ58+Y1NzcLIdxutyRJVVVVp0+ffvfddz39N2zYoNVqq6urHQ5HQUGB+Nc6sMzMzPz8/G9961tWq/Wdd97JzMz81a9+5SdnQ0NDZw+KnD17tjy7p0V+63Q69+zZM2fOnGXLlu3Zs0eO5H/ewD/43rBhg8FgaGhouHbt2u7du70PdXh/Osvf3fsAoL/R6/W1tbU+jTqdju/xAMBgxp5tQKcsFsvVq1dVKlVKSorSWQAAAPqRp59++vPPP//Zz36mdBAMbE8//fSIESOefvpppYOEGs+ebampqVVVVd6HUlJSjEajwWAoLy/XarXtz5UkyW63R0RECK8d0c6fP79u3bpjx45Zrda0tLTS0lLPJwnexSTPa51Od/bsWXl8k8mk0+nk9qSkJO/C3tChQ9t/Wt0+j59PLXyOet76vAhi3g5ptdoLFy7I11VfX5+cnNyt++PRU3l6EHu2QXH9Z882hDD2bAPQq1jZBnRKrVYPGzYsJiZG6SAAAAD9S3R0dGJi4ogRI5QOgoEtMTGRX7Z7ldFolF/4lHwcDoefs+RKm7dFixY99NBDhYWFWq22rq6uyx3gfBaceV6PHz/+7bffDjB8ezabLSoqKogTb3DezsJ4Xgd4fzz5eyMPMNA1NDTcfffdPg+MBXpWZGTk9evXKbYB6CUU2wB/+Ms/AAAAgBCzcOHC/Pz8nJwck8n03nvvHThw4Pe//72f/kajccKECfHx8adPn/7jH//Y5fiLFy/evn375s2bW1tb5cdIymbNmlVQUPDAAw+kpKSEhQW0hXxkZGRRUdGDDz545MiR3NzckpKSQM7y4X9eecO2EydOdDnOQw899Itf/OLpp582mUzPPvusp93P/ekwfxD3AQh5iYmJu3fvvu2225QOglB22223RUdHK50CQMii2AYAAACg24qKik6fPq10CgxsFRUVP/nJT5ROMSjodDrvt/n5+ZmZmXLj7Nmzt23bJrfLa0rkZXDer3ft2rVixYra2tr77rvvl7/8ZW5ubvs+3q/z8vLWrl2bnJx8yy23vPTSS5s2bZLHz8jIePbZZ9PT0xsbGydPnvxf//VfWVlZ/pO/+uqrixcvjoqKmjlzZmFhoafds/xFfuETQHx1MZ//eZ1OZ4AVr23btj3xxBMajebrX//6Sy+99Pzzz/u/P53lD+I+ACEvLCxs2LBhLJpHb2P1JIDew55tAAAAALrn7Nmzp06dUjoFQsF//Md/jBkzRukUocazZ5vSQYTdbn/zzTefeuqp8vJypbPAH/Zsg+LYsw19gD3bAPQqVrYBAAAA6J4xY8ZQIAHgx6ZNm3JycqKiombPnl1cXKx0HAADwMqVK6mCoFex5gRAr2JlGwAAAAAAoaP/rGzDQMHKNiju0KFDLS0tSqdA6Js/f35EBItPAPQK/nABAAAAAADK0Ov1tbW1Po06na6mpkaRPAAUMXv2bKUjAABwQyi2AQAAAAAAZVBUAwAAQAgIUzoAMGC0tLRUV1fz5FUAAAAAAAAAAOBBsQ0IiNvtrq2tbW5utlgsSmcBAAAAAAAAAAD9BcU2ICCSJCUmJgohGhsblc4CAAAAAAAAAAD6C4ptQKASEhLCwsKsVuv169eVzgIAAAAAPUySJEmSlE7xT30Zpv9cNQAAAAYoim1AoMLCwuLj44UQZrNZ6SwAAAAAECiDwRBIt77ZoLq1tTWQbn25W3bgc8XFxfVqEgAAAAxQFNuAbkhISBBCtLS02O12pbMAAAAAQECqq6u937a1ta1du1av1xsMhr17944aNcr7aHFx8bBhw6KiooqKijyNa9asGT16tEqlmjFjxtGjR+VGefHZzp07ffq3trauWrVKo9GkpaVVVFR41qiZTKaJEyeqVCq9Xr969epAqm5XrlyZMmWKRqNZvnx5S0uL97yHDh0SQhw6dEiSpJtvvtlzyqRJkyZNmhTgnZFP91nZ1tl1abVai8Ui/UuAUwAAAGAwoNgGdENUVJRKpXK73SxuAwAAADBAbdy40WazlZWVXbp0SaVSNTQ0eB89fPhwRUXFq6++unjxYk9jbm5uRUWF2WzOysqaN2+e3CgvCKuqqjp9+rR3/w0bNmi12urq6tLS0rfeesvTMzMzMz8/32azXbx4cdq0aZmZmV1G3bt37/79+y9evKhWq9evXy83Hj9+fMqUKbNnzxZCzJo1a8KECQcPHvSc4na7A1+pNnv27PadO7su+Ua5/yXAKQAAADAYSPyCCHTL9evXKysrJUkaPnx4eHi40nEAAAAA4CtUKtXly5eTk5NTU1Orqqq8D6WkpBiNRoPBUF5ertVq258rSZLdbo+IiJBfy58YnD9/ft26dceOHbNarWlpaaWlpZ5PEjx9vF/rdLqzZ8/K45tMJp1OJ7cnJSV5F/aGDh1aW1vr50IkSaqsrExNTRVCNDQ0jBkzxtN/wYIFS5YsWbBgwf79+w8cOPDKK68Ed6/aX4Wf6+qwZ2g4derU/PnzL1y4oHQQAACAgYqVbUD3xMTEREdHs7gNAAAAQD9nNBo9a7DkF0ajUQjhcDj8nCVX2rwtWrRo6tSpZ86cMZvN+/bt63Je70csepemxo8f7/biv9Lmw+VyhYX9+xOMnJyc7Oxsq9W6ZcuWLVu2BD5OD7LZbIrMCwAAgH6IYhvQbRqNRgjR1NTkcrmUzgIAAAAA3bNw4cL8/HwhhMlkKioqWrJkif/+RqNxwoQJ8fHxp0+f3rFjR5fjL168ePv27S6Xy2KxFBQUeNpnzZpVUFBQWVkZ+N+kdu/eXVlZ2djYuHXr1kWLFnnax4wZc/fdd8+dO3fy5MkjR470PqVbe7Z1V2RkZFFRkd1uP3z48PTp03tpFgAAAAw4FNuAblOr1ZGRkU6ns7m5WeksAAAAANAFnU7n/TY/P99sNut0urFjx77++uvbtm2T2+UVae1/7tq1a8WKFVqtNisra+nSpX56yj/z8vKqq6uTk5OnTp06d+5cz7wZGRkmkyk9PV2r1c6cOTMvL89PZnmoZcuWLViwYMSIERaLxaf/k08+WVJSkp2d7XOi0+kM/EmPkiR5knsW5HV2XUIIeQs3jUZTUFBQWFgY4CwAAAAIeaH5tHGgt5nNZpPJFBkZeeuttyqdBQAAAAD+zbNnm9JBhN1uf/PNN5966qny8vIeH3znzp2XLl3avn17j488CLFnGwAAwA1iZRsQjISEhPDwcLvdbrFYlM4CAAAAAP3Lpk2bJElSq9UvvvhicXFxj48vSVJGRsZzzz3X4yMDAAAAQaDYBgRDkqSEhAQhRGNjo9JZAAAAAKB/2bp1q9vttlqtRUVFer2+x8d3/0uPjwwAAAAEgWIbEKTExERJktra2q5fv650FgAAAAAYkPR6vdROb9TnAAAAgN4ToXQAYKAKDw+Pj49vampqbGyMiYlROg4AAAAADDw1NTVKRwAAAABuFMU2IHgajaapqamlpcVms0VFRSkdBwAAAACE2+0+duyY/Nx7IBCXLl1yOBxKpwAAABjAJB5xDtyIq1evWiyWhIQEnU6ndBYAAAAAEBEREVFRUZIkKR0EA4bL5YqIiGhublY6CAAAwEDFyjbghmg0GovFcu3ataSkpPDwcKXjAAAAABjshgwZcvny5eTkZKWDYMA4derU/PnzlU4BAAAwgFFsA25IdHS0SqWKjo7me6MAAAAAAAAAAAxCFNuAG5WSkqJ0BAAAAAAAAAAAoAyKbQAAAAAAhJSRI0fy7A0Ezul0Dh06VOkUAAAAAxjFNgAAAAAAQofRaHS73UqnwAATFhamdAQAAIABTOJXcAAAAAAAAAAAACA4fHEJAAAAAAAAAAAACBLFNgAAAAAAAAAAACBIFNsAAAAAAAAAAACAIFFsA3qY0+m02WxKpwAAAAAAAAAAAH2BYhvQkywWy+eff15bW6t0EAAAAAAAAAAA0BcotgE9KTo6Wn7hcrmUTQIAAAAAAAAAAPqA5Ha7lc4AhBSHwxEREaF0CgAAAAAAAAAA0BcotgEAAAAAAAAAAABB4jGSAAAAAAAAAAAAQJAotgEAAAAAAAAAAABBotgGAAAAAAAAAAAABIliGwAAAAAAAAAAABAkim0AAAAAAAAAAABAkCi2Ab3O7XYrHQEAAAAAAAAAAPQKim1AL2pra/vyyy9NJpPSQQAAAAAAAAAAQK+g2Ab0rra2tmvXrtntdqWDAAAAAAAAAACAnkexDehF0dHRsbGxbre7sbFR6SwAAAAAAAAAAKDnUWwDepdWqxVCXLt2zeFwKJ0FAAAAAAAAAAD0MIptQO+KiYmJiYlhcRsAAAAAAAAAACGJYhvQ6+TFbU1NTSxuAwAAAAAAAAAgxFBsA3pdbGysvLjNbDYrnQUAAAAAAAAAAPQkim1AX9BoNEKIpqYmp9OpdBYAAAAAAAAAANBjKLYBfUGlUg0ZMsTlcrG4DQAAAAAAAACAUEKxDegjycnJQgiz2cziNgAAAAAAAAAAQgbFNqCPyDu3uVyuxsZGpbMAAAAAAAAAAICeQbEN6DtarVYIYTabHQ6H0lkAAAAAAAAAAEAPoNgG9B15cZvb7WZxGwAAAAAAAAAAoYFiG9CnkpKShBBNTU0sbgMAAAAAAAAAIARQbAP6VExMTGxsLIvbAAAAAAAAAAAIDRTbgL7mWdxmt9uVzgIAAAAAAAAAAG4IxTagr0VHR7O4DQAAAAAAAACA0ECxDVCAvLjt2rVrLG4DAAAAAAAAAGBAo9gGKEBe3BYWFkaxDQAAAAAAAACAAU1yu91KZwAGI4fDERYWFhZGwRsAAAAAAAAAgAGMYhsAAAAAAAAAAAAQJFbVAAAAAAAAAAAAAEGi2AYAAAAAAAAAAAAEiWIbAAAAAAAAAAAAECSKbQAAAAAAAAAAAECQKLYBAAAAAAAAAAAAQaLYBvQXDodD6QgAAAAAAAAAAKB7KLYB/UJ9ff0XX3zR0tKidBAAAAAAAAAAANANFNuA/sLtdlNsAwAAAAAAAABgYJHcbrfSGQAIl8tltVpjYmKUDgIAAAAAAAAAALqBYhsAAAAAAAAAAAAQJB4jCQAAAAAAAAAAAASJYhsAAAAAAAAAAAAQJIptAAAAAAAAAAAAQJAotgEAAAAAAAAAAABBotgGAAAAAAAAAAAABIliG9B/uVwupSMAAAAAAAAAAAB/IpQOAKADVqu1trY2PDw8JSVF6SwAAAAAAAAAAKBTrGwD+qOwsDCr1drS0tLa2qp0FgAAAAAAAAAA0CmKbUB/FBkZmZCQIISoq6tTOgsAAAAAAAAAAOgUxTagn9JqtfL6tubmZqWzAAAAAAAAAACAjlFsA/qp8PBwjUYjhKivr3e73UrHAQAAAAAAAAAAHaDYBvRfiYmJERERdru9qalJ6SwAAAAAAAAAAKADFNuA/issLCwpKUkIUV9f73Q6lY4DAAAAAAAAAAB8UWwD+rX4+Pjo6GiXy9XQ0KB0FgAAAAAAAAAA4ItiG9DfJScnCyGamppsNpvSWQAAAAAAAAAAwFdQbAP6u5iYGLVa7Xa76+rqlM4CAAAAAAAAAAC+gmIbMAAkJydLktTS0tLa2qp0FgAAAAAAAAAA8G8U24ABIDIyMiEhQQhhMpncbrfScQAAAAAAAAAAwD9RbAMGhqSkpPDwcJvNdu3aNaWzAAAAAAAAAACAf6LYBgwMYWFhWq1WCFFfX+9yuZSOAwAAAAAAAAAAhKDYBgwgCQkJkZGRTqezsbFR6SwAAAAAAAAAAEAIim3AACJJUnJyshCisbHR4XAoHQcAAAAAAAAAAFBsAwYUtVodGxvrdrtNJpPSWQAAAAAAAAAAAMU2YKBJTk6WJMlisbS1tSmdBQAAAAAAAACAwS5C6QAAumfIkCEajSY8PHzIkCFKZwEAAAAAAAAAYLCT3G630hkAAAAAAAAAAACAAYnHSAIAAAAAAAAAAABBotgGAAAAAAAAAAAABIliGwAAAAAAAAAAABAkim0AAAAAAAAAAABAkCi2AQAAAAAAAAAAAEGi2AYAAAAAAAAAAAAEiWIbMOA5nc7q6mqTyaR0EAAAAAAAAAAABh2KbcCAZ7Vam5ubm5qaHA6H0lkAAAAAAAAAABhcJLfbrXQGADeqoaFBpVINGTJE6SAAAAAAAAAAAAwuFNsAAAAAAAAAAACAIPEYSQAAAAAAAAAAACBIFNsAAAAAAAAAAACAIFFsAwAAAAAAAAAAAIJEsQ0AAAAAAAAAAAAIEsU2AAAAAAAAAAAAIEgU24DQ5HK5HA6H0ikAAAAAAAAAAAhxFNuAENTW1nblypWamhqlgwAAAAAAAAAAEOIotgEhKCIiwul0tra2Xrt2TeksAAAAAAAAAACEMoptQAiKiIhISkoSQtTV1TmdTqXjAAAAAAAAAAAQsii2AaEpMTExOjra6XSaTCalswAAAAAAAAAAELIotgEhS6fTSZLU3Nzc2tqqdBYAAAAAAAAAAEITxTYgZA0ZMiQhIUEIUVtb63K5lI4DAAAAAAAAAEAIotgGhLKkpKSIiAi73V5fX690FgAAAAAAAAAAQhDFNiCUhYWF6fV6IYTZbOZhkgAAAAAAAAAA9DiKbUCIi42N5WGSAAAAAAAAAAD0EoptQOhLTk7mYZIAAAAAAAAAAPQGim1A6PN+mOT169eVjgMAAAAAAAAAQOig2AYMCrGxsfHx8UKI2tpat9utdBwAAAAAAAAAAEIExTZgsJAfJmmz2RoaGpTOAgAAAAAAAABAiKDYBgwW4eHhOp1OCNHY2NjW1qZ0HAAAAAAAAAAAQgHFNmAQUalUCQkJbre7urra5XIpHQcAAAAAAAAAgAGPYhswuCQnJ0dGRtrtdpPJpHQWAAAAAAAAAAAGPIptwOASFham1+uFENeuXWtpaVE6DgAAAAAAAAAAA1uE0gEA9LWYmBiNRmOz2aKjo5XOAgAAAAAAAADAwCa53W6lMwDoa263W5IkpVMAAAAAAAAAADDgUWwDAAAAAAAAAAAAgsSebQAAAAAAAAAAAECQKLYBAAAAAAAAAAAAQaLYBgAAAAAAAAAAAASJYhsAAAAAAAAAAAAQJIptAP7J4XA4nU6lUwAAAAAAAAAAMJBQbAMghBCtra1Xrlyprq52u91KZwEAAAAAAAAAYMCg2AZACCEiIyPdbrfL5XK5XEpnAQAAAAAAAABgwJBYxQJA1tbWNmTIEEmSlA4CAAAAAAAAAMCAQbENAAAAAAAAAAAACBKPkQQAAAAAAAAAAACCRLENAAAAAAAAAACgA2fOnHniiSfGjBmjVqtVKtXo0aMff/zxM2fO+HSTAtBZZ5VKNXbs2HXr1lVXV7cPcP369fz8/LvvvjsxMTEiIiIpKemee+7ZtGnTZ599FtwVeYfpVuwAk3hOfPTRR9vP/uijj7Yf2b/i4uJFixYNGzZsyJAhN91000MPPVRSUhLctfceHiMJAAAAAAAAAADg6+c///mmTZucTqdPe3h4eE5Ozvr16z0tgZSOPOWYzjrr9frjx48PHz7c01JbW3v//feXl5f7H7Bb5NnlcwOPHXgSeUxJkoYMGXL16tXExETPIbPZbDAYrFar3L/L/C6Xa/Xq1b/5zW/8z9gfsLINAAAAAAAAAADgK55//vmsrCyXy7VixYoPPvigubm5paXlxIkTK1eudLlcGzZs2LFjh6ez+6v8NLY/pba29rXXXhsxYkRNTc1TTz3l3Wf9+vXl5eWpqal79uz58ssvrVar2Ww+fvx4Tk7OnXfeeePXGHjs7ia5//7729raXn75Ze/GP/zhD21tbdOmTQsw3qZNm37zm99ERESsX7/+7NmzVqu1pqbmD3/4w+TJk2/gonsFK9sA+ONwOFwuV1RUlNJBAAAAAAAAAKCPfPnll7fddpvNZvvtb3/7gx/8wOfonj17li9fHhUVdfHixWHDhrU/3Xv1WIBH33///alTp+p0upqaGk9jUlJSQ0PD8ePHp0yZcoNXFEg2P4cCTyIP8vLLLz/yyCNpaWknT570HEpLS/vkk09eeeWVhx9+uLOJPM6dO/eNb3zD5XJ1+I+gv2FlG4BOWa3WL7/8sqqqqv1CaQAAAAAAAAAIVS+88ILNZlu4cGGHZZ4f/OAH3/3ud2022wsvvNBTM37zm98UQjQ1NXk3trS0CCFGjhzZ5ekd7oLWra3R/As8iWzBggVarfbjjz/+9NNP5ZZPPvnkk08+0Wq18+fPD2SEXbt2uVyub33rW/2/0iYotgHwIyIiIiwszG63V1VVsQoWAAAAAAAAwCDxzjvvCCFWrVrVWQf50JEjR3pqxo8//lgI4bNObty4cUKIFStWXLhwoacmCk53kwwZMuTRRx8VQhQWFsot8oslS5YMGTIkkBH+9re/CSG+//3vB5W3r/EYSQD+2Gy2yspKp9OpUqkMBkNPfQ8CAAAAAAAAAPotrVbb2NhYX1+v1Wo77FBXVzd06NCkpKS6urr2R7v1GMm6urrS0tJ169Z98cUX2dnZmzdv9vQsLS399re/3dbWJoQYMWLEXXfddccdd9x777333XdfeHh4lzMG3tjloSCSfPbZZ3fddZdGo6mqqhJCGAwGs9n82Wef3Xnnnf7vj0yj0ZjN5k8//bSioiI/P7+srCwiIuL2229/6KGHfvKTn0RGRvo5t+9RbAPQBavVWllZ6XK51Gq1wWBQOg4AAAAAAAAA9K7IyEiHw2G32yMiIjrsYLfbo6KiIiIi7HZ7+6OBFNvae/jh8oVjeAAADwhJREFUh3/3u9/5lJHOnj2bk5Pz2muvNTc3exqHDRv23HPPffe73w3wcgLM5j92gEm8B5k4ceJHH3308ssvu93uRx99dOLEiSdOnOhyIllERITT6czMzNy2bZvPoSlTprzzzjtqtTqgC+4TFNsAdK21tVV+kqRGo0lOTlY6DgAAAAAAAAD0oj5Y2eZj2LBhf/nLX+SnNbbndDrLysrKy8tPnDhx6NCh8+fPS5JUVFT03//934FeUgDZAqmBdZnEe5AXXnjh8ccfnzZtmtvtLi4ufuGFF370ox8FOFFcXJzFYpEk6Vvf+lZOTs43v/lNu93+2muvZWZmms3mn/70p+2LcAqi2AYgIM3NzdXV1UII6m0AAAAAAAAAQtukSZM+/PDDt99+e8aMGR12ePvtt2fOnDlp0qQPPvig/dHAHyNpt9s///zzrVu3vvjii0OHDj116pRer/efzeVybdq0KS8vLy0t7eTJk926Lv/ZAqmBdZnEe5CmpqaUlJTr168LIWJiYq5evRofHx/gRCNHjrxw4UJcXNyVK1cSExM97W+88ca8efNuueWWy5cvB5izD4QpHQDAwBAXF6fT6YQQjY2NJpNJ6TgAAAAAAAAA0FumT58uhNi9e3dnHeRDcrcbERkZOWrUqL17986cOdNkMm3atKnLU8LCwjZs2CCEKC8vv8HZb1CXSRISEhYuXOh2u91u9/e+9z250hagu+66SwgxatQo70qbEOLee+8VQsgrQ/oPim0AApWQkCDX28xmc21tLetiAQAAAAAAAISkH//4x5GRkX/6059eeuml9kdffPHF/fv3R0VF/fjHP+6R6SRJ2rFjR0RExO9+97tz58512f/ChQtCiP6waVmXSVasWOHzIkBz584VQpw/f76pqcm7vaSkRAiRkpLS3ai9imIbgG7w1NuampqqqqqcTqfSiQAAAAAAAACgh91yyy25ublCiMcee+yHP/zhhx9+2Nraev369Y8++uhHP/rRsmXLhBB5eXk333xzT804atSo5cuXOxwO78VtY8eO3bRp01//+tcvv/zSarW2tbV9/vnnv/71r+UN0mbNmuXpKUlS+63gOmwMTuBJfNx7773yyrb09PRuzbh48eKvf/3r165dmzNnTmlpaVNTU11dXWFh4dKlS4UQjzzyyA1eUc9izzYA3dbS0lJdXe1yuSIjI1NSUqKiopROBAAAAAAAAAA9bOvWrdnZ2S6Xy6c9LCzsmWee2bhxY2cnBr5nm7eqqqrbbrutra3txIkTEyZM8PTs0De+8Y3i4uKbbrrJz5iBNwZ4KOgkgU/k7eTJk9OmTfNZ2SaEuO+++w4dOhQTE+P/9L5EsQ1AMGw2W1VVld1ulyRJo9Fotdqe+ooEAAAAAAAAAPQT5eXl//u///vuu+8ajUa32z1s2LD7779/zZo1Y8eO9XNWcMU2IURWVtbPf/7z6dOnv/POO0KI06dPv/baayUlJeXl5fLOPklJSWPHjv3Od76zcuXK6Oho/2P2YLHtBpMEPpGPysrKrVu3Hj58uKqqKiYm5o477liyZMkPf/jD8PDwLs/tSxTbAATJ6XRWV1e3trYKISIiItRqdXh4uFarVToXAAAAAAAAAAB9h2IbgBvS3NxcV1fncDjkt6mpqbGxscpGAgAAAAAAAACgz1BsA3Cj3G63xWJpa2tzu91qtZpiGwAAAAAAAABg8KDYBgAAAAAAAAAAAAQpTOkAAAAAAAAAAAAAwEBFsQ0AAAAAAAAAAAAIEsU2AAAAAAAAAAAAIEgU2wAAAAAAAAAAAIAgUWwDAAAAAAAAAAAAgkSxDQAAAAAAAAAA4CskSZJ/dkYI4XK5fvvb36anp+v1+qioqFtvvXXZsmXvv/++Z4Q5c+Z0OPicOXPkETz++te/Pvjgg0OHDo2MjLzpppu++93vHjlyxBNDcd26lkGIYhsAAAAAAAAAAEAH3F7av12zZs3+/fu3bdt2/vx5i8Xy9ttvT5o06X/+5388p3/22Weffvqpz5iffvrpZ5995t2SnZ29cePGH//4x+fOnbt27VpRUZHT6ZwxY0bvX183BHgtg4RPfVGS/4UAAAAAAAAAAACATJJ8CyjtW9Rq9eXLl5OSkjob4Ve/+tXf/va3ffv2ebd/73vfu//++5944gl5tLfffnv9+vXHjx+PiYnx7rZly5bs7Oz2kyoiwGsZPHz+ubCyDQAAAAAAAAAAoNtSUlKOHTvmp8PKlStPnjxZUVHhaTl79uzHH3+8cuVKT8vOnTuzs7N9Km1CiOzsbPnFyy+/nJaWFh0drdfrv//979fX13v6GI3G1atXx8XFDR8+fP369W1tbXK7JEl+zvq///u/4cOHR0VFjRw5cteuXd6LtP7yl7+MGzduyJAht956a2FhYXevJehInZ0VXFp5rokTJ8bGxqrV6hkzZpSVlR0+fPiee+5RqVTJycmPPPKI9+z+x2mf2ecRo4JiGwAAAAAAAAAAQBB+85vfrFq1aurUqRs3bnzppZcuX77s0yEqKmrTpk25ubmeltzc3KeeeioyMtLT8ve//z09Pd3PLFu3bs3Pz6+rq/vkk09cLteaNWs8h+65557x48dfvXr16NGjly9f3rx5c5dnvfnmm7m5uXv37m1oaCgoKPDO9v777z/22GPr1683mUz79u3Lyck5fPhwt64luEh+zgo67TPPPJOXl1dbW3vhwoXU1NT//M///OlPf7p58+aampqysrKoqKiMjIxAxukws88zRQWPkQQAAAAAAAAAAPARyGMkhRCtra1/+9vfPvjgg/Ly8qNHj06YMOF3v/vdTTfd5OnvdDrvvPPOgwcP3nrrrV988cWcOXP+8Y9/hIeHe0aLjIy8fv16REREZzE+/vjjcePGyW9ra2tvv/32urq69j0bGxsnTJhw8eJF/2fde++969evf/DBB+VDb7zxxrx58+QkM2bM+NGPfrRw4UL50AcffLB69eoPP/ww8GsJLpKfs4JO+9FHH40fP14+ZDKZdDrdyZMn09LSPC3f+MY35Nn9j9NZZp9LptgGAAAAAAAAAADwFQEW27y1tbWtXbu2pqbmtdde8+7/8ssvv/fee7/+9a8ff/zxe++99+GHH/Y+OnTo0DNnziQnJ3cWw+l0hoWFebfIJzY0NPzsZz87ePBgVVWV1WoVQoSHhzscDv9nabXaS5cuJSYmyu2NjY1ardaTxKf65T1gINcSXCQ/ZwWdtv1cnc3e3XH+uZSNPdsAAAAAAAAAAAB6VnR0dF5eXnFxsU/7Qw89dOLEiZMnT3700UeLFy/2OTp58uSSkhI/w3oXe7wtXbrU4XC89dZbZrPZ7XZbLBan09nlWX5YLJbm5ma3F7nmFPi1BBfJ/1nBpW0/V2ezd3ecDlFsAwAAAAAAAAAA6LaMjAyfslBVVVVcXJxPt7CwsI0bN37729/euHFj++LN6tWrn3nmmevXr/u0P/PMM/5nLykpycvLGzVqVHR0tBDi3XffDSTzHXfc8d5773nevv/++57X48ePP3nypP/T/V9LcJH8nHWDaQMR3DgRERFfqSPeeA4AAAAAAAAAAIDBZufOnRMnTnzttdeampquXbtWXFz8yCOPrFmzpn3PBQsW1NfXz58/v/2hBx54YPbs2enp6QcPHmxqampra/v73//+ne98Jzs72//s3/zmN5999tmGhgaz2fynP/3phz/8YSCZ169fn5GRUVpa2tLSUlpampGR4Tm0efPmn/70pyUlJRaLpaWl5d13350zZ063riW4SH7OuvG0XQpunFtuueXIkSMul0t+y55tAAAAAAAAAAAAXxHInm3Hjh0rKCgoLi42Go0xMTF33HHHqlWrfvCDH3TW389ohw8f3rlz54kTJ5qampKSku65554nnnhi2rRpfmJ88cUXa9asKS0tbWtrGzNmzLp16x577LEOdxTzadm1a1dubm5VVdXXvva11atXr1+/Xt4pTYj/b+f+QaJ+4ziAf4Uja3B0iISI0MXBakpcEltqCCsdhBxUCiVIBxMxCBxachICJYiGQ3C6RETEpgYR/yxGkIMnZqKRqGDpGZjf33BwHJLi7ygv6fWa7s/7+fB+5g88wbt37zo7OycnJ/f29q5evfrkyZOKioqj3yWzSoec+l1tD/8lgzmxWKy1tXVxcfHnz59hGFq2AQAAAAAA/IvGx8fr6+s/fvyY7SJH8te29YwkAAAAAADAv6K2tvbDhw/b29sTExONjY319fXZbnSYE9E2ku0CAAAAAAAAHJPr16/X1NTMz8+fP3/+/v37zc3N2W50mBPR1jOSAAAAAAAAkCHPSAIAAAAAAECGLNsAAAAAAAAgQ5ZtAAAAAAAAkCHLNgAAAAAAgAN9+vTp8+fPyc/fv39fWFhIfv7x48fa2loQBFtbW0tLS0tLS1++fEk/mB5eW1ubnZ1N/zcMw3g8Ho/H903jxMkJwzDbHQAAAAAAAP5Gg4OD79+/X19fv3DhQlVVVUtLS0lJSW5u7q1bt54/f766ujowMDA9PT0yMpJIJKampkZHR5MHV1ZWUuFr1649e/astLQ0Ho/39vYmAzMzM2/fvv369WskEqmrq0tNy95dyZBlGwAAAAAAwGE2NzebmppKS0uLi4vLy8vv3LkTi8WCIKisrEytx6LRaCQSqampSX598eJFKtzQ0DA3N3fv3r2HDx/29/enxu7t7S0uLnZ2dr5+/XrfNE4Qz0gCAAAAAAAcKAzDtra2x48fr66u5ufnHxR78+bN7du35+fnp6enE4lEevjKlSvj4+OPHj26ceNGKpA80t7efvPmzWO6CX+GZRsAAAAAAMCBWltbq6urL126dO7cueXl5SAIcnJy9mXm5uYKCgpOnz69vLw8Ozu7s7OTHn716lVLS0tfX18sFksFgiC4e/duf39/NBo9/kvxG3lGEgAAAAAA4NdevnzZ09NTVlZWWFhYW1vb2Nh49uzZkpKSysrKp0+fDg8PP3jwoL29vaOjo7q6+vLly6mD6+vrqXBxcXFXV1dRUdHW1lZ3d3cyMDQ0NDY2trGxcfHixYaGhvRpWborGbJsAwAAAAAAOJIwDHd2ds6cOfN/w7u7u4lEIi8vLz3w7du3U6dO5ebm/pGuHBfLNgAAAAAAAMjQf1B3nsTVjilRAAAAAElFTkSuQmCC</File>
        <File Permission="660" Location="Kernel/Config/Files/XML/ITSMChangeManagement.xml" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIyLjAiIGluaXQ9IkNvbmZpZyI+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWRtaW5JVFNNQ2hhbmdlQ0lQQWxsb2NhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5hZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5BZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5DYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZG1pbklUU01DaGFuZ2VDSVBBbGxvY2F0ZSMjIzAwMy1JVFNNQ2hhbmdlTWFuYWdlbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ1NTIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPklUU00uVGFibGUuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZG1pbklUU01DaGFuZ2VDSVBBbGxvY2F0ZSMjIzAwMy1JVFNNQ2hhbmdlTWFuYWdlbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uTW9kdWxlIyMjQWRtaW5JVFNNQ2hhbmdlQ0lQQWxsb2NhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWRtaW4gYXJlYSBuYXZpZ2F0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb246OkFkbWluT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok5hdkJhcjo6TW9kdWxlQWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+Q2F0ZWdvcnkg4oaUIEltcGFjdCDihpQgUHJpb3JpdHk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5DaGFuZ2VTZXR0aW5nczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+TWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJY29uQmlnIj5mYS10YWJsZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSWNvblNtYWxsIj48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbiIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkNyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5JVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5BZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uIyMjMDAzLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5BZ2VudC5BZG1pbi5Ob3RpZmljYXRpb25FdmVudC5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkFkbWluLkNoYW5nZU1hbmFnZW1lbnQuQ2hhbmdlTm90aWZpY2F0aW9uLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuTm90aWZpY2F0aW9uRXZlbnQuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbiMjIzAwMy1JVFNNQ2hhbmdlTWFuYWdlbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uTW9kdWxlIyMjQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFkbWluIGFyZWEgbmF2aWdhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpBZG1pbk92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpOYXZCYXI6Ok1vZHVsZUFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPklUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5Db21tdW5pY2F0aW9uPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5DcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikljb25CaWciPmZhLWJlbGwtbzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSWNvblNtYWxsIj48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FkbWluSVRTTVN0YXRlTWFjaGluZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkFkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlN0YXRlIE1hY2hpbmU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5BZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FkbWluSVRTTVN0YXRlTWFjaGluZSMjIzAwMy1JVFNNQ2hhbmdlTWFuYWdlbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uTW9kdWxlIyMjQWRtaW5JVFNNU3RhdGVNYWNoaW5lIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFkbWluIGFyZWEgbmF2aWdhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpBZG1pbk92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpOYXZCYXI6Ok1vZHVsZUFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPlN0YXRlIE1hY2hpbmU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5DaGFuZ2VTZXR0aW5nczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+TWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikljb25CaWciPmZhLWNvZ3M8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikljb25TbWFsbCI+PC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01DQUJNZW1iZXJTZWFyY2giIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5Mb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkNBQiBNZW1iZXIgU2VhcmNoPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01DaGFuZ2UiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5PdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+SVRTTSBDaGFuZ2VzPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudElUU01DaGFuZ2UjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkFnZW50LkRlZmF1bHQuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Lk92ZXJ2aWV3LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudElUU01DaGFuZ2UjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBhcmVhLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPklUU00gQ2hhbmdlczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRJVFNNQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmtPcHRpb24iPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXIiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPk1lbnU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPkl0ZW1BcmVhPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjM0MDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBPdmVydmlldy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5PdmVydmlldzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRJVFNNQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmtPcHRpb24iPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXIiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjEwMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01DaGFuZ2VBZGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZS1tYW5hZ2VyPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkFkZCBhIGNoYW5nZS48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5BZGQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRJVFNNQ2hhbmdlQWRkIyMjMDAzLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5BZGRFZGl0LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudElUU01DaGFuZ2VBZGQjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlLW1hbmFnZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+TmV3PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+TmV3PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudElUU01DaGFuZ2VBZGQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGlua09wdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhciI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjZXNzS2V5Ij48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpbyI+MjAwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlLWJ1aWxkZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZS1tYW5hZ2VyPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkFkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkFkZCBmcm9tIHRlbXBsYXRlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlLWJ1aWxkZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2UtbWFuYWdlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5OZXcgKGZyb20gdGVtcGxhdGUpPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+TmV3IChmcm9tIHRlbXBsYXRlKTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmtPcHRpb24iPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXIiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjI1MDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPklUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIENBQiBUZW1wbGF0ZXM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+SVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkNvbmRpdGlvbiBPdmVydmlldzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudElUU01DaGFuZ2VDb25kaXRpb24jIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+SVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+Q29uZGl0aW9uIEVkaXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdCMjIzAwMy1JVFNNQ2hhbmdlTWFuYWdlbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ1NTIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPklUU00uVGFibGUuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01DaGFuZ2VFZGl0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+RWRpdCBhIGNoYW5nZS48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5FZGl0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50SVRTTUNoYW5nZUVkaXQjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkFkZEVkaXQuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNQ2hhbmdlRGVsZXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2UtbWFuYWdlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5EZWxldGUgYSBjaGFuZ2UuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+RGVsZXRlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTUNoYW5nZUhpc3RvcnkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2UgSGlzdG9yeS48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5IaXN0b3J5PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50SVRTTUNoYW5nZUhpc3RvcnkjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Lkhpc3RvcnkuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20iIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5EZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+SGlzdG9yeSBab29tPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBJbnZvbHZlZCBQZXJzb25zLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkludm9sdmVkIFBlcnNvbnM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zIyMjMDAzLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5JbnZvbHZlZFBlcnNvbnMuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNQ2hhbmdlTWFuYWdlciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlLW1hbmFnZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+SVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudElUU01DaGFuZ2VNYW5hZ2VyIyMjMDAzLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5EZWZhdWx0LmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRJVFNNQ2hhbmdlTWFuYWdlciMjIzAwMy1JVFNNQ2hhbmdlTWFuYWdlbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01DaGFuZ2VNeUNBQiIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPklUU00gTXlDQUIgT3ZlcnZpZXcuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRJVFNNQ2hhbmdlTXlDQUIjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkFnZW50LkRlZmF1bHQuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudElUU01DaGFuZ2VNeUNBQiMjIzAwMy1JVFNNQ2hhbmdlTWFuYWdlbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZS1idWlsZGVyPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2UtbWFuYWdlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5JVFNNIE15Q2hhbmdlcyBPdmVydmlldy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkFnZW50LkRlZmF1bHQuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+SVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzIyMjMDAzLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5EZWZhdWx0LmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzIyMjMDAzLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTUNoYW5nZVBJUiIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPklUU00gQ2hhbmdlIFBJUiBPdmVydmlldy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudElUU01DaGFuZ2VQSVIjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkFnZW50LkRlZmF1bHQuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudElUU01DaGFuZ2VQSVIjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+UElSPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudElUU01DaGFuZ2VQSVI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGlua09wdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhciI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjZXNzS2V5Ij48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpbyI+NDAwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTUNoYW5nZVByaW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIFByaW50LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlByaW50PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTUNoYW5nZVBTQSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlByb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlBTQTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRJVFNNQ2hhbmdlUFNBIyMjMDAzLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5EZWZhdWx0LmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRJVFNNQ2hhbmdlUFNBIyMjMDAzLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5Qcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSk8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5Qcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHk8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50SVRTTUNoYW5nZVBTQTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj4zNTA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNQ2hhbmdlUmVzZXQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZS1idWlsZGVyPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5SZXNldDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01DaGFuZ2VTY2hlZHVsZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIFNjaGVkdWxlPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBTY2hlZHVsZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPlNjaGVkdWxlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudElUU01DaGFuZ2VTY2hlZHVsZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj4zMDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNQ2hhbmdlU2VhcmNoIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+U2VhcmNoIENoYW5nZXMuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+U2VhcmNoPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50SVRTTUNoYW5nZVNlYXJjaCMjIzAwMy1JVFNNQ2hhbmdlTWFuYWdlbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuT3ZlcnZpZXcuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50SVRTTUNoYW5nZVNlYXJjaCMjIzAwMy1JVFNNQ2hhbmdlTWFuYWdlbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+U2VhcmNoIENoYW5nZXM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5TZWFyY2g8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50SVRTTUNoYW5nZVNlYXJjaDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj5vbmNsaWNrPSJJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuU2VhcmNoLk9wZW5TZWFyY2hEaWFsb2coJ0FnZW50SVRTTUNoYW5nZVNlYXJjaCcpOyBpZiAoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKSB7IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyB9IGVsc2UgeyB3aW5kb3cuZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTsgfSByZXR1cm4gZmFsc2U7IjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXIiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjYwMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01DaGFuZ2VUZW1wbGF0ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRlbXBsYXRlLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlRlbXBsYXRlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTUNoYW5nZVRpbWVTbG90IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+TW92ZSBUaW1lIFNsb3QuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+VGltZSBTbG90PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50SVRTTUNoYW5nZVRpbWVTbG90IyMjMDAzLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5UaW1lU2xvdC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01DaGFuZ2Vab29tIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIFpvb20uPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+Wm9vbTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudElUU01DaGFuZ2Vab29tIyMjMDAzLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5EZWZhdWx0LmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5BbGxvY2F0aW9uTGlzdC5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPklUU00uQ2hhbmdlTWFuYWdlbWVudC5EZWZhdWx0LmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5DaGFuZ2VNYW5hZ2VtZW50LlJlc3BvbnNpdmUuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkNoYW5nZU1hbmFnZW1lbnQuV29ya29yZGVyR3JhcGguY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkNoYW5nZU1hbmFnZW1lbnQuUlRFQ29udGVudC5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT50aGlyZHBhcnR5L2pxdWVyeS10YWJsZXNvcnRlci0yLjI4LjE0L2pxdWVyeS50YWJsZXNvcnRlci5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5VSS5UYWJsZS5Tb3J0LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkFnZW50LlRhYmxlRmlsdGVycy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkFnZW50LkNvbmZpcm1EaWFsb2cuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Xb3Jrb3JkZXJHcmFwaC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Llpvb20uanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2UtYnVpbGRlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlLW1hbmFnZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+SVRTTSBUZW1wbGF0ZSBEZWxldGUuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTVRlbXBsYXRlRWRpdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlLWJ1aWxkZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZS1tYW5hZ2VyPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPklUU00gVGVtcGxhdGUgRWRpdC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2UtYnVpbGRlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlLW1hbmFnZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+SVRTTSBUZW1wbGF0ZSBFZGl0IENBQi48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCIyMjMDAzLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5DQUJUZW1wbGF0ZUVkaXQuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlLWJ1aWxkZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZS1tYW5hZ2VyPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPklUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2UtYnVpbGRlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlLW1hbmFnZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+SVRTTSBUZW1wbGF0ZSBPdmVydmlldy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3IyMjMDAzLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5DaGFuZ2VNYW5hZ2VtZW50LkRlZmF1bHQuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5Db25maXJtRGlhbG9nLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuVGVtcGxhdGVPdmVydmlldy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldyMjIzAwMy1JVFNNQ2hhbmdlTWFuYWdlbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2UtYnVpbGRlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZS1tYW5hZ2VyPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRlbXBsYXRlIE92ZXJ2aWV3PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+VGVtcGxhdGVzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmtPcHRpb24iPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXIiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjUwMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01Vc2VyU2VhcmNoIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+TG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+VXNlciBTZWFyY2g8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNV29ya09yZGVyQWRkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+V29ya29yZGVyIEFkZC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5BZGQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+V29ya29yZGVyIEFkZCAoZnJvbSB0ZW1wbGF0ZSkuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+QWRkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTVdvcmtPcmRlckFnZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+V29ya29yZGVyIEFnZW50LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkFnZW50PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPml0c20tY2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPldvcmtvcmRlciBEZWxldGUuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+RGVsZXRlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTVdvcmtPcmRlckVkaXQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5Xb3Jrb3JkZXIgRWRpdC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5FZGl0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5Xb3Jrb3JkZXIgSGlzdG9yeS48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5IaXN0b3J5PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+SVRTTSBDaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Lkhpc3RvcnkuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20iIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5Xb3Jrb3JkZXIgSGlzdG9yeSBab29tLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkhpc3RvcnkgWm9vbTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5Xb3Jrb3JkZXIgUmVwb3J0LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlJlcG9ydDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01Xb3JrT3JkZXJUYWtlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+VGFrZSBXb3Jrb3JkZXIuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+VGFrZSBXb3Jrb3JkZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UZW1wbGF0ZS48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5UZW1wbGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudElUU01Xb3JrT3JkZXJab29tIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+V29ya29yZGVyIFpvb20uPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+Wm9vbTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPklUU00gQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudElUU01Xb3JrT3JkZXJab29tIyMjMDAzLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5EZWZhdWx0LmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5DaGFuZ2VNYW5hZ2VtZW50LkRlZmF1bHQuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkNoYW5nZU1hbmFnZW1lbnQuUlRFQ29udGVudC5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuQWxsb2NhdGlvbkxpc3QuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5VSS5UYWJsZS5Tb3J0LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkFnZW50LlRhYmxlRmlsdGVycy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkFnZW50LkNvbmZpcm1EaWFsb2cuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5ab29tLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkN1c3RvbWVyRnJvbnRlbmQ6Ok1vZHVsZSMjI0N1c3RvbWVySVRTTUNoYW5nZVNjaGVkdWxlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBTY2hlZHVsZS48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5JVFNNIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBTY2hlZHVsZTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6Q3VzdG9tZXJJVFNNQ2hhbmdlU2NoZWR1bGUjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkNoYW5nZU1hbmFnZW1lbnQuRGVmYXVsdC5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPklUU00uQ2hhbmdlTWFuYWdlbWVudC5UYWJsZS5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJDdXN0b21lckZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQ3VzdG9tZXJJVFNNQ2hhbmdlU2NoZWR1bGUjIyMwMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBTY2hlZHVsZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBTY2hlZHVsZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249Q3VzdG9tZXJJVFNNQ2hhbmdlU2NoZWR1bGU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGlua09wdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhciI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjQ1MDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpUb29sQmFyTW9kdWxlIyMjMTAxLUlUU01DaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2VNYW5hZ2VyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6VG9vbEJhcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpUb29sQmFyOjpDaGFuZ2VNYW5hZ2VyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDc3NDbGFzcyI+Q2hhbmdlTWFuYWdlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSWNvbiI+ZmEgZmEtbWFsZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpb3JpdHkiPjEwMDA2MTA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6OlRvb2xCYXJNb2R1bGUjIyMxMDItSVRTTUNoYW5nZU1hbmFnZW1lbnQ6Ok15Q2hhbmdlcyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpUb29sQmFyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRvb2xCYXI6Ok15Q2hhbmdlczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3NzQ2xhc3MiPk15Q2hhbmdlczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSWNvbiI+ZmEgZmEtcmV0d2VldDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpb3JpdHkiPjEwMDA2MzA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6OlRvb2xCYXJNb2R1bGUjIyMxMDMtSVRTTUNoYW5nZU1hbmFnZW1lbnQ6Ok15V29ya09yZGVycyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpUb29sQmFyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRvb2xCYXI6Ok15V29ya09yZGVyczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3NzQ2xhc3MiPk15V29ya09yZGVyczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSWNvbiI+ZmEgZmEtdGFza3M8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5Ij4xMDAwNjQwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpUb29sQmFyTW9kdWxlIyMjMTA0LUlUU01DaGFuZ2VNYW5hZ2VtZW50OjpNeUNBQiIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpUb29sQmFyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRvb2xCYXI6Ok15Q0FCPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDc3NDbGFzcyI+TXlDQUJzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJY29uIj5mYSBmYS1ncm91cDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpb3JpdHkiPjEwMDA2MjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IyMjU21hbGwiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpJVFNNQ2hhbmdlT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTUNoYW5nZTo6T3ZlcnZpZXdTbWFsbDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5TbWFsbDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZVNob3J0Ij5TPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQYWdlU2hvd24iPjI1PC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpUZW1wbGF0ZU92ZXJ2aWV3IyMjU21hbGwiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OklUU01UZW1wbGF0ZU92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OklUU01UZW1wbGF0ZTo6T3ZlcnZpZXdTbWFsbDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5TbWFsbDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZVNob3J0Ij5TPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQYWdlU2hvd24iPjI1PC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUjIyMzMTctSVRTTUNoYW5nZUFkZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Nb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaWNrZXRab29tOjpNZW51TW9kdWxlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRpY2tldE1lbnU6OklUU01DaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+Q3JlYXRlIENoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+Q3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50SVRTTUNoYW5nZUFkZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50SVRTTUNoYW5nZUFkZDtUaWNrZXRJRD1bJSBEYXRhLlRpY2tldElEIHwgaHRtbCAlXTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMzE4LUlUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGlja2V0Wm9vbTo6TWVudU1vZHVsZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpUaWNrZXRNZW51OjpJVFNNQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkNyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5DcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZTtUaWNrZXRJRD1bJSBEYXRhLlRpY2tldElEIHwgaHRtbCAlXTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIzAwMC1CYWNrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OklUU01DaGFuZ2U6Ok1lbnVNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTUNoYW5nZTo6TWVudUdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+QmFjazwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+QmFjazwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPlslIEVudigiTGFzdFNjcmVlbkNoYW5nZXMiKSAlXTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFyZ2V0Ij5CYWNrPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMDEwLUhpc3RvcnkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpJVFNNQ2hhbmdlOjpNZW51TW9kdWxlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OklUU01DaGFuZ2U6Ok1lbnVHZW5lcmljPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkhpc3Rvcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkhpc3Rvcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGlvbiI+QWdlbnRJVFNNQ2hhbmdlSGlzdG9yeTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50SVRTTUNoYW5nZUhpc3Rvcnk7Q2hhbmdlSUQ9WyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRhcmdldCI+UG9wVXA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUjIyMwMjAtUHJpbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OklUU01DaGFuZ2U6Ok1lbnVNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTUNoYW5nZTo6TWVudUdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+UHJpbnQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlByaW50IHRoZSBjaGFuZ2UuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50SVRTTUNoYW5nZVByaW50PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRJVFNNQ2hhbmdlUHJpbnQ7Q2hhbmdlSUQ9WyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmtQYXJhbSI+dGFyZ2V0PSJwcmludF9jaGFuZ2UiPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUYXJnZXQiPlBvcFVwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMDMwLUVkaXQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6SVRTTUNoYW5nZTo6TWVudU1vZHVsZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpJVFNNQ2hhbmdlOjpNZW51R2VuZXJpYzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5FZGl0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5FZGl0IHRoZSBjaGFuZ2UuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50SVRTTUNoYW5nZUVkaXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudElUU01DaGFuZ2VFZGl0O0NoYW5nZUlEPVslIERhdGEuQ2hhbmdlSUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUYXJnZXQiPlBvcFVwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMDQwLUludm9sdmVkUGVyc29ucyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OklUU01DaGFuZ2U6Ok1lbnVNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTUNoYW5nZTo6TWVudUdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+SW52b2x2ZWQgUGVyc29uczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGlvbiI+QWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zO0NoYW5nZUlEPVslIERhdGEuQ2hhbmdlSUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUYXJnZXQiPlBvcFVwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMDUwLVdvcmtPcmRlckFkZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OklUU01DaGFuZ2U6Ok1lbnVNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTUNoYW5nZTo6TWVudUdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+QWRkIFdvcmtvcmRlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+QWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50SVRTTVdvcmtPcmRlckFkZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlckFkZDtDaGFuZ2VJRD1bJSBEYXRhLkNoYW5nZUlEIHwgaHRtbCAlXTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFyZ2V0Ij5Qb3BVcDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIzA1NS1Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpJVFNNQ2hhbmdlOjpNZW51TW9kdWxlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OklUU01DaGFuZ2U6Ok1lbnVHZW5lcmljPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkFkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5BZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZTtDaGFuZ2VJRD1bJSBEYXRhLkNoYW5nZUlEIHwgaHRtbCAlXTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFyZ2V0Ij5Qb3BVcDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIzA2MC1Db25kaXRpb25zIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGNvbmRpdGlvbnMgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6SVRTTUNoYW5nZTo6TWVudU1vZHVsZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpJVFNNQ2hhbmdlOjpNZW51R2VuZXJpYzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5Db25kaXRpb25zPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5FZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50SVRTTUNoYW5nZUNvbmRpdGlvbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50SVRTTUNoYW5nZUNvbmRpdGlvbjtDaGFuZ2VJRD1bJSBEYXRhLkNoYW5nZUlEIHwgaHRtbCAlXTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFyZ2V0Ij5Qb3BVcDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIzA3MC1MaW5rIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6SVRTTUNoYW5nZTo6TWVudU1vZHVsZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpJVFNNQ2hhbmdlOjpNZW51R2VuZXJpYzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5MaW5rPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5MaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50TGlua09iamVjdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50TGlua09iamVjdDtTb3VyY2VPYmplY3Q9SVRTTUNoYW5nZTtTb3VyY2VLZXk9WyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRhcmdldCI+UG9wVXA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUjIyMwODAtTW92ZVRpbWVTbG90IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OklUU01DaGFuZ2U6Ok1lbnVNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTUNoYW5nZTo6TWVudVRpbWVTbG90PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPk1vdmUgVGltZSBTbG90PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5Nb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50SVRTTUNoYW5nZVRpbWVTbG90PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRJVFNNQ2hhbmdlVGltZVNsb3Q7Q2hhbmdlSUQ9WyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRhcmdldCI+UG9wVXA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUjIyMwOTAtVGVtcGxhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpJVFNNQ2hhbmdlOjpNZW51TW9kdWxlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OklUU01DaGFuZ2U6Ok1lbnVHZW5lcmljPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPlRlbXBsYXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5TYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50SVRTTUNoYW5nZVRlbXBsYXRlO0NoYW5nZUlEPVslIERhdGEuQ2hhbmdlSUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUYXJnZXQiPlBvcFVwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMTAwLUNoYW5nZURlbGV0ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6SVRTTUNoYW5nZTo6TWVudU1vZHVsZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpJVFNNQ2hhbmdlOjpNZW51Q2hhbmdlRGVsZXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkRlbGV0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+RGVsZXRlIHRoZSBjaGFuZ2UuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50SVRTTUNoYW5nZURlbGV0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50SVRTTUNoYW5nZURlbGV0ZTtDaGFuZ2VJRD1bJSBEYXRhLkNoYW5nZUlEIHwgaHRtbCAlXTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFyZ2V0Ij5Db25maXJtRGlhbG9nPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFbGVtZW50U2VsZWN0b3IiPiNNZW51WyUgRGF0YS5NZW51SUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEaWFsb2dDb250ZW50UXVlcnlTdHJpbmciPkFjdGlvbj1BZ2VudElUU01DaGFuZ2VEZWxldGU7Q2hhbmdlSUQ9WyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNvbmZpcm1lZEFjdGlvblF1ZXJ5U3RyaW5nIj5BY3Rpb249QWdlbnRJVFNNQ2hhbmdlRGVsZXRlO1N1YmFjdGlvbj1DaGFuZ2VEZWxldGU7Q2hhbmdlSUQ9WyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRpYWxvZ1RpdGxlIj5bJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXSBbJSBDb25maWcoIklUU01DaGFuZ2U6Okhvb2siKSAlXSBbJSBEYXRhLkNoYW5nZU51bWJlciB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUjIyMxMTAtQ2hhbmdlUmVzZXQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OklUU01DaGFuZ2U6Ok1lbnVNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTUNoYW5nZTo6TWVudUdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+UmVzZXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlJlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50SVRTTUNoYW5nZVJlc2V0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRJVFNNQ2hhbmdlUmVzZXQ7Q2hhbmdlSUQ9WyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRhcmdldCI+Q29uZmlybURpYWxvZzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRWxlbWVudFNlbGVjdG9yIj4jTWVudVslIERhdGEuTWVudUlEIHwgaHRtbCAlXTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGlhbG9nQ29udGVudFF1ZXJ5U3RyaW5nIj5BY3Rpb249QWdlbnRJVFNNQ2hhbmdlUmVzZXQ7Q2hhbmdlSUQ9WyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNvbmZpcm1lZEFjdGlvblF1ZXJ5U3RyaW5nIj5BY3Rpb249QWdlbnRJVFNNQ2hhbmdlUmVzZXQ7U3ViYWN0aW9uPVJlc2V0O0NoYW5nZUlEPVslIERhdGEuQ2hhbmdlSUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEaWFsb2dUaXRsZSI+WyUgVHJhbnNsYXRlKCJSZXNldCIpIHwgaHRtbCAlXSBbJSBDb25maWcoIklUU01DaGFuZ2U6Okhvb2siKSAlXSBbJSBEYXRhLkNoYW5nZU51bWJlciB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUjIyMwMDAtQmFjayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgd29ya29yZGVyIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpJVFNNV29ya09yZGVyOjpNZW51TW9kdWxlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OklUU01Xb3JrT3JkZXI6Ok1lbnVHZW5lcmljPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkJhY2s8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkJhY2s8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5bJSBFbnYoIkxhc3RTY3JlZW5Xb3JrT3JkZXJzIikgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRhcmdldCI+QmFjazwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIzAxMC1IaXN0b3J5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6SVRTTVdvcmtPcmRlcjo6TWVudU1vZHVsZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpJVFNNV29ya09yZGVyOjpNZW51R2VuZXJpYzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5IaXN0b3J5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5IaXN0b3J5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5O1dvcmtPcmRlcklEPVslIERhdGEuV29ya09yZGVySUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUYXJnZXQiPlBvcFVwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMDIwLVByaW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpJVFNNV29ya09yZGVyOjpNZW51TW9kdWxlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OklUU01Xb3JrT3JkZXI6Ok1lbnVHZW5lcmljPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPlByaW50PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5QcmludCB0aGUgd29ya29yZGVyLjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5BZ2VudElUU01DaGFuZ2VQcmludDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50SVRTTUNoYW5nZVByaW50O1dvcmtPcmRlcklEPVslIERhdGEuV29ya09yZGVySUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUYXJnZXQiPlBvcFVwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMDMwLUVkaXQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6SVRTTVdvcmtPcmRlcjo6TWVudU1vZHVsZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpJVFNNV29ya09yZGVyOjpNZW51V2l0aFBlcm1pc3Npb25Gcm9tQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkVkaXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkVkaXQgdGhlIHdvcmtvcmRlci48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGlvbiI+QWdlbnRJVFNNV29ya09yZGVyRWRpdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlckVkaXQ7V29ya09yZGVySUQ9WyUgRGF0YS5Xb3JrT3JkZXJJRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRhcmdldCI+UG9wVXA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUjIyMwMzUtVGFrZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OklUU01Xb3JrT3JkZXI6Ok1lbnVNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTVdvcmtPcmRlcjo6TWVudVdpdGhUYWtlUGVybWlzc2lvbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5UYWtlIFdvcmtvcmRlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+VGFrZSB0aGUgd29ya29yZGVyLjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5BZ2VudElUU01Xb3JrT3JkZXJUYWtlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRJVFNNV29ya09yZGVyVGFrZTtXb3JrT3JkZXJJRD1bJSBEYXRhLldvcmtPcmRlcklEIHwgaHRtbCAlXTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFyZ2V0Ij5Db25maXJtRGlhbG9nPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFbGVtZW50U2VsZWN0b3IiPiNNZW51WyUgRGF0YS5NZW51SUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEaWFsb2dDb250ZW50UXVlcnlTdHJpbmciPkFjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJUYWtlO1dvcmtPcmRlcklEPVslIERhdGEuV29ya09yZGVySUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDb25maXJtZWRBY3Rpb25RdWVyeVN0cmluZyI+QWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlclRha2U7U3ViYWN0aW9uPVdvcmtPcmRlclRha2U7V29ya09yZGVySUQ9WyUgRGF0YS5Xb3JrT3JkZXJJRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRpYWxvZ1RpdGxlIj5bJSBUcmFuc2xhdGUoIlRha2UgV29ya29yZGVyIikgfCBodG1sICVdOiBbJSBDb25maWcoIklUU01Xb3JrT3JkZXI6Okhvb2siKSAlXSBbJSBEYXRhLkNoYW5nZU51bWJlciB8IGh0bWwgJV0gLSBbJSBEYXRhLldvcmtPcmRlck51bWJlciB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUjIyMwNDAtV29ya09yZGVyQWdlbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpJVFNNV29ya09yZGVyOjpNZW51TW9kdWxlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OklUU01Xb3JrT3JkZXI6Ok1lbnVXaXRoUGVybWlzc2lvbkZyb21DaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+V29ya29yZGVyIEFnZW50PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5TZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5BZ2VudElUU01Xb3JrT3JkZXJBZ2VudDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlckFnZW50O1dvcmtPcmRlcklEPVslIERhdGEuV29ya09yZGVySUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUYXJnZXQiPlBvcFVwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMDUwLVJlcG9ydCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6SVRTTVdvcmtPcmRlcjo6TWVudU1vZHVsZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpJVFNNV29ya09yZGVyOjpNZW51R2VuZXJpYzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5SZXBvcnQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlJlcG9ydDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQ7V29ya09yZGVySUQ9WyUgRGF0YS5Xb3JrT3JkZXJJRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRhcmdldCI+UG9wVXA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUjIyMwNjAtTGluayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpJVFNNV29ya09yZGVyOjpNZW51TW9kdWxlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OklUU01Xb3JrT3JkZXI6Ok1lbnVHZW5lcmljPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkxpbms8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkxpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGlvbiI+QWdlbnRMaW5rT2JqZWN0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRMaW5rT2JqZWN0O1NvdXJjZU9iamVjdD1JVFNNV29ya09yZGVyO1NvdXJjZUtleT1bJSBEYXRhLldvcmtPcmRlcklEIHwgaHRtbCAlXTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFyZ2V0Ij5Qb3BVcDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIzA4MC1UZW1wbGF0ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OklUU01Xb3JrT3JkZXI6Ok1lbnVNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTVdvcmtPcmRlcjo6TWVudVdpdGhQZXJtaXNzaW9uRnJvbUNoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5UZW1wbGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+U2F2ZSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZS48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGlvbiI+QWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZTtXb3JrT3JkZXJJRD1bJSBEYXRhLldvcmtPcmRlcklEIHwgaHRtbCAlXTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFyZ2V0Ij5Qb3BVcDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIzA5MC1Xb3JrT3JkZXJEZWxldGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OklUU01Xb3JrT3JkZXI6Ok1lbnVNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTVdvcmtPcmRlcjo6TWVudVdpdGhQZXJtaXNzaW9uRnJvbUNoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5EZWxldGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkRlbGV0ZSB0aGUgd29ya29yZGVyLjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5BZ2VudElUU01Xb3JrT3JkZXJEZWxldGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJEZWxldGU7V29ya09yZGVySUQ9WyUgRGF0YS5Xb3JrT3JkZXJJRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRhcmdldCI+Q29uZmlybURpYWxvZzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRWxlbWVudFNlbGVjdG9yIj4jTWVudVslIERhdGEuTWVudUlEIHwgaHRtbCAlXTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGlhbG9nQ29udGVudFF1ZXJ5U3RyaW5nIj5BY3Rpb249QWdlbnRJVFNNV29ya09yZGVyRGVsZXRlO1dvcmtPcmRlcklEPVslIERhdGEuV29ya09yZGVySUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDb25maXJtZWRBY3Rpb25RdWVyeVN0cmluZyI+QWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlckRlbGV0ZTtTdWJhY3Rpb249V29ya09yZGVyRGVsZXRlO1dvcmtPcmRlcklEPVslIERhdGEuV29ya09yZGVySUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEaWFsb2dUaXRsZSI+WyUgVHJhbnNsYXRlKCJEZWxldGUiKSB8IGh0bWwgJV0gWyUgQ29uZmlnKCJJVFNNV29ya09yZGVyOjpIb29rIikgJV0gWyUgRGF0YS5DaGFuZ2VOdW1iZXIgfCBodG1sICVdLVslIERhdGEuV29ya09yZGVyTnVtYmVyIHwgaHRtbCAlXTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMaW5rT2JqZWN0OjpDb21wbGV4VGFibGU6OlNldHRpbmdzVmlzaWJpbGl0eSMjI0lUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OkxpbmtPYmplY3Q8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5BZ2VudElUU01DaGFuZ2Vab29tPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+QWdlbnRJVFNNV29ya09yZGVyWm9vbTwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTGlua09iamVjdDo6Q29tcGxleFRhYmxlIyMjSVRTTUNoYW5nZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TGlua09iamVjdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpMaW5rT2JqZWN0OjpJVFNNQ2hhbmdlLnBtPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Q29sdW1ucyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlVGl0bGUiPjI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlU3RhdGUiPjI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2F0ZWdvcnkiPjI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSW1wYWN0Ij4yPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5Ij4yPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBsYW5uZWRTdGFydFRpbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVuZFRpbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsU3RhcnRUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdHVhbEVuZFRpbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVmZm9ydCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2NvdW50ZWRUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlcXVlc3RlZFRpbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3JlYXRlVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VUaW1lIj4yPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpb3JpdHkiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVRpdGxlIj4xMDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlU3RhdGUiPjExMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDYXRlZ29yeSI+MTIwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkltcGFjdCI+MTMwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5Ij4xNDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZFN0YXJ0VGltZSI+MTUwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBsYW5uZWRFbmRUaW1lIj4xNjA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsU3RhcnRUaW1lIj4xNzA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsRW5kVGltZSI+MTgwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBsYW5uZWRFZmZvcnQiPjE5MDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2NvdW50ZWRUaW1lIj4yMDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVxdWVzdGVkVGltZSI+MjEwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNyZWF0ZVRpbWUiPjIyMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VUaW1lIj4yMzA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxpbmtPYmplY3Q6OkNvbXBsZXhUYWJsZSMjI0lUU01Xb3JrT3JkZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TGlua09iamVjdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpMaW5rT2JqZWN0OjpJVFNNV29ya09yZGVyLnBtPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Q29sdW1ucyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyVGl0bGUiPjI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyU3RhdGUiPjI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyVHlwZSI+MjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkU3RhcnRUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBsYW5uZWRFbmRUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdHVhbFN0YXJ0VGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3R1YWxFbmRUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBsYW5uZWRFZmZvcnQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjb3VudGVkVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDcmVhdGVUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVRpbWUiPjI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eSI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyVGl0bGUiPjEwMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJXb3JrT3JkZXJTdGF0ZSI+MTEwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlclR5cGUiPjEyMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkU3RhcnRUaW1lIj4xMzA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVuZFRpbWUiPjE0MDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3R1YWxTdGFydFRpbWUiPjE1MDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3R1YWxFbmRUaW1lIj4xNjA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVmZm9ydCI+MTcwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY291bnRlZFRpbWUiPjE4MDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDcmVhdGVUaW1lIj4xOTA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlVGltZSI+MjAwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJEeW5hbWljRmllbGQ6OkV2ZW50TW9kdWxlUG9zdCMjIzEwMC1VcGRhdGVJVFNNQ2hhbmdlQ29uZGl0aW9ucyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpFdmVudDo6RHluYW1pY0ZpZWxkPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RXZlbnQ6OlVwZGF0ZUlUU01DaGFuZ2VDb25kaXRpb25zPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFdmVudCI+KER5bmFtaWNGaWVsZEFkZHxEeW5hbWljRmllbGRVcGRhdGV8RHluYW1pY0ZpZWxkRGVsZXRlKTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHJhbnNhY3Rpb24iPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RXZlbnRNb2R1bGUjIyMwMS1IaXN0b3J5QWRkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RXZlbnQ6OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6Okhpc3RvcnlBZGQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkV2ZW50Ij4oQ2hhbmdlQWRkUG9zdHxDaGFuZ2VVcGRhdGVQb3N0fENoYW5nZUNBQlVwZGF0ZVBvc3R8Q2hhbmdlQ0FCRGVsZXRlUG9zdHxDaGFuZ2VMaW5rQWRkUG9zdHxDaGFuZ2VMaW5rRGVsZXRlUG9zdHxDaGFuZ2VBdHRhY2htZW50QWRkUG9zdHxDaGFuZ2VBdHRhY2htZW50RGVsZXRlUG9zdCk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRyYW5zYWN0aW9uIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkV2ZW50TW9kdWxlIyMjMDItTm90aWZpY2F0aW9uIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkV2ZW50OjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OkV2ZW50OjpOb3RpZmljYXRpb248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkV2ZW50Ij4oQ2hhbmdlQWRkUG9zdHxDaGFuZ2VVcGRhdGVQb3N0fENoYW5nZUNBQlVwZGF0ZVBvc3R8Q2hhbmdlQ0FCRGVsZXRlUG9zdHxDaGFuZ2VEZWxldGVQb3N0fENoYW5nZUxpbmtBZGRQb3N0fENoYW5nZUxpbmtEZWxldGVQb3N0fENoYW5nZUF0dGFjaG1lbnRBZGRQb3N0fENoYW5nZUF0dGFjaG1lbnREZWxldGVQb3N0KTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHJhbnNhY3Rpb24iPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RXZlbnRNb2R1bGUjIyMwMy1Db25kaXRpb24iIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpFdmVudDo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpFdmVudDo6Q29uZGl0aW9uPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFdmVudCI+KENoYW5nZUFkZFBvc3R8Q2hhbmdlVXBkYXRlUG9zdCk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRyYW5zYWN0aW9uIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkV2ZW50TW9kdWxlIyMjODAtVG9vbEJhckNoYW5nZU1hbmFnZXJDYWNoZURlbGV0ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpFdmVudDo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpFdmVudDo6VG9vbEJhckNoYW5nZU1hbmFnZXJDYWNoZURlbGV0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPihDaGFuZ2VBZGRQb3N0fENoYW5nZVVwZGF0ZVBvc3R8Q2hhbmdlRGVsZXRlUG9zdCk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRyYW5zYWN0aW9uIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkV2ZW50TW9kdWxlIyMjODEtVG9vbEJhck15Q2hhbmdlc0NhY2hlRGVsZXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkV2ZW50OjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OkV2ZW50OjpUb29sQmFyTXlDaGFuZ2VzQ2FjaGVEZWxldGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkV2ZW50Ij4oQ2hhbmdlQWRkUG9zdHxDaGFuZ2VVcGRhdGVQb3N0fENoYW5nZURlbGV0ZVBvc3QpPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUcmFuc2FjdGlvbiI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpFdmVudE1vZHVsZSMjIzgyLVRvb2xCYXJNeUNBQkNhY2hlRGVsZXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkV2ZW50OjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OkV2ZW50OjpUb29sQmFyTXlDQUJDYWNoZURlbGV0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPihDaGFuZ2VDQUJVcGRhdGVQb3N0fENoYW5nZUNBQkRlbGV0ZVBvc3QpPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUcmFuc2FjdGlvbiI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpFdmVudE1vZHVsZSMjIzkwLUNvbmRpdGlvbkRlbGV0ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RXZlbnQ6OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6OkNvbmRpdGlvbkRlbGV0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPihDaGFuZ2VEZWxldGVQb3N0KTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHJhbnNhY3Rpb24iPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RXZlbnRNb2R1bGUjIyM5MS1IaXN0b3J5RGVsZXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RXZlbnQ6OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6Okhpc3RvcnlEZWxldGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkV2ZW50Ij4oQ2hhbmdlRGVsZXRlUG9zdCk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRyYW5zYWN0aW9uIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OkV2ZW50TW9kdWxlIyMjMDEtV29ya09yZGVyTnVtYmVyQ2FsYyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpFdmVudDo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyOjpFdmVudDo6V29ya09yZGVyTnVtYmVyQ2FsYzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPihXb3JrT3JkZXJVcGRhdGVQb3N0fFdvcmtPcmRlckRlbGV0ZVBvc3QpPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUcmFuc2FjdGlvbiI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpFdmVudE1vZHVsZSMjIzAyLVdvcmtPcmRlckFjdHVhbFRpbWVzU2V0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkV2ZW50OjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXI6OkV2ZW50OjpXb3JrT3JkZXJBY3R1YWxUaW1lc1NldDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPldvcmtPcmRlclVwZGF0ZVBvc3Q8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRyYW5zYWN0aW9uIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OkV2ZW50TW9kdWxlIyMjMDMtSGlzdG9yeUFkZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkV2ZW50OjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OkV2ZW50OjpIaXN0b3J5QWRkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFdmVudCI+KFdvcmtPcmRlckFkZFBvc3R8V29ya09yZGVyVXBkYXRlUG9zdHxXb3JrT3JkZXJEZWxldGVQb3N0fFdvcmtPcmRlckxpbmtBZGRQb3N0fFdvcmtPcmRlckxpbmtEZWxldGVQb3N0fFdvcmtPcmRlckF0dGFjaG1lbnRBZGRQb3N0fFdvcmtPcmRlckF0dGFjaG1lbnREZWxldGVQb3N0fFdvcmtPcmRlclJlcG9ydEF0dGFjaG1lbnRBZGRQb3N0fFdvcmtPcmRlclJlcG9ydEF0dGFjaG1lbnREZWxldGVQb3N0KTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHJhbnNhY3Rpb24iPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6RXZlbnRNb2R1bGUjIyMwNC1Ob3RpZmljYXRpb24iIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RXZlbnQ6OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6Ok5vdGlmaWNhdGlvbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPihXb3JrT3JkZXJBZGRQb3N0fFdvcmtPcmRlclVwZGF0ZVBvc3R8V29ya09yZGVyRGVsZXRlUG9zdHxXb3JrT3JkZXJMaW5rQWRkUG9zdHxXb3JrT3JkZXJMaW5rRGVsZXRlUG9zdHxXb3JrT3JkZXJBdHRhY2htZW50QWRkUG9zdHxXb3JrT3JkZXJBdHRhY2htZW50RGVsZXRlUG9zdHxXb3JrT3JkZXJSZXBvcnRBdHRhY2htZW50QWRkUG9zdHxXb3JrT3JkZXJSZXBvcnRBdHRhY2htZW50RGVsZXRlUG9zdCk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRyYW5zYWN0aW9uIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OkV2ZW50TW9kdWxlIyMjMDUtQ29uZGl0aW9uIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RXZlbnQ6OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6OkNvbmRpdGlvbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPihXb3JrT3JkZXJBZGRQb3N0fFdvcmtPcmRlclVwZGF0ZVBvc3QpPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUcmFuc2FjdGlvbiI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpFdmVudE1vZHVsZSMjIzgwLVRvb2xCYXJNeVdvcmtPcmRlcnNDYWNoZURlbGV0ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpFdmVudDo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyOjpFdmVudDo6VG9vbEJhck15V29ya09yZGVyc0NhY2hlRGVsZXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFdmVudCI+KFdvcmtPcmRlckFkZFBvc3R8V29ya09yZGVyVXBkYXRlUG9zdHxXb3JrT3JkZXJEZWxldGVQb3N0KTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHJhbnNhY3Rpb24iPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRGFlbW9uOjpTY2hlZHVsZXJDcm9uVGFza01hbmFnZXI6OlRhc2sjIyNJVFNNQ2hhbmdlc0NoZWNrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJ1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5EYWVtb246OlNjaGVkdWxlckNyb25UYXNrTWFuYWdlcjo6VGFzazwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUYXNrTmFtZSI+SVRTTUNoYW5nZXNDaGVjazwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU2NoZWR1bGUiPiovMTAgKiAqICogKjwvSXRlbT4gPCEtLSBEZWZhdWx0IGV2ZXJ5IDEwIG1pbnMgLS0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkNvbnNvbGU6OkNvbW1hbmQ6OkFkbWluOjpJVFNNOjpDaGFuZ2U6OkNoZWNrPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJGdW5jdGlvbiI+RXhlY3V0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGFyYW1zIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTWF4aW11bVBhcmFsbGVsSW5zdGFuY2VzIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDwhLS0gVE9ETzogQ2hlY2sgaWYgdGhpcyBuZWVkcyB0byBiZSB1cGRhdGVkIGFuZCAvIG9yIHJlbmFtZWQgKG5vIGNyb25qb2JzIGFueW1vcmUpIC0tPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZUNyb25qb2I6OkV2ZW50TW9kdWxlIyMjMDEtSGlzdG9yeUFkZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkV2ZW50OjpJVFNNQ2hhbmdlQ3JvbmpvYjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpFdmVudDo6SGlzdG9yeUFkZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPihDaGFuZ2VQbGFubmVkU3RhcnRUaW1lUmVhY2hlZFBvc3R8Q2hhbmdlUGxhbm5lZEVuZFRpbWVSZWFjaGVkUG9zdHxDaGFuZ2VBY3R1YWxTdGFydFRpbWVSZWFjaGVkUG9zdHxDaGFuZ2VBY3R1YWxFbmRUaW1lUmVhY2hlZFBvc3R8Q2hhbmdlUmVxdWVzdGVkVGltZVJlYWNoZWRQb3N0fFdvcmtPcmRlclBsYW5uZWRTdGFydFRpbWVSZWFjaGVkUG9zdHxXb3JrT3JkZXJQbGFubmVkRW5kVGltZVJlYWNoZWRQb3N0fFdvcmtPcmRlckFjdHVhbFN0YXJ0VGltZVJlYWNoZWRQb3N0fFdvcmtPcmRlckFjdHVhbEVuZFRpbWVSZWFjaGVkUG9zdCk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRyYW5zYWN0aW9uIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2VDcm9uam9iOjpFdmVudE1vZHVsZSMjIzAyLU5vdGlmaWNhdGlvbiIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpFdmVudDo6SVRTTUNoYW5nZUNyb25qb2I8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6Ok5vdGlmaWNhdGlvbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPihDaGFuZ2VQbGFubmVkU3RhcnRUaW1lUmVhY2hlZFBvc3R8Q2hhbmdlUGxhbm5lZEVuZFRpbWVSZWFjaGVkUG9zdHxDaGFuZ2VBY3R1YWxTdGFydFRpbWVSZWFjaGVkUG9zdHxDaGFuZ2VBY3R1YWxFbmRUaW1lUmVhY2hlZFBvc3R8Q2hhbmdlUmVxdWVzdGVkVGltZVJlYWNoZWRQb3N0fFdvcmtPcmRlclBsYW5uZWRTdGFydFRpbWVSZWFjaGVkUG9zdHxXb3JrT3JkZXJQbGFubmVkRW5kVGltZVJlYWNoZWRQb3N0fFdvcmtPcmRlckFjdHVhbFN0YXJ0VGltZVJlYWNoZWRQb3N0fFdvcmtPcmRlckFjdHVhbEVuZFRpbWVSZWFjaGVkUG9zdCk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRyYW5zYWN0aW9uIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2VDcm9uam9iOjpFdmVudE1vZHVsZSMjIzAzLUNvbmRpdGlvbiIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkV2ZW50OjpJVFNNQ2hhbmdlQ3JvbmpvYjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpFdmVudDo6Q29uZGl0aW9uPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFdmVudCI+KENoYW5nZVBsYW5uZWRTdGFydFRpbWVSZWFjaGVkUG9zdHxDaGFuZ2VQbGFubmVkRW5kVGltZVJlYWNoZWRQb3N0fENoYW5nZUFjdHVhbFN0YXJ0VGltZVJlYWNoZWRQb3N0fENoYW5nZUFjdHVhbEVuZFRpbWVSZWFjaGVkUG9zdHxDaGFuZ2VSZXF1ZXN0ZWRUaW1lUmVhY2hlZFBvc3R8V29ya09yZGVyUGxhbm5lZFN0YXJ0VGltZVJlYWNoZWRQb3N0fFdvcmtPcmRlclBsYW5uZWRFbmRUaW1lUmVhY2hlZFBvc3R8V29ya09yZGVyQWN0dWFsU3RhcnRUaW1lUmVhY2hlZFBvc3R8V29ya09yZGVyQWN0dWFsRW5kVGltZVJlYWNoZWRQb3N0KTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHJhbnNhY3Rpb24iPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZU1hbmFnZW1lbnROb3RpZmljYXRpb246OkV2ZW50TW9kdWxlIyMjMDEtSGlzdG9yeUFkZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkV2ZW50OjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OkV2ZW50OjpIaXN0b3J5QWRkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFdmVudCI+KENoYW5nZU5vdGlmaWNhdGlvblNlbnRQb3N0fFdvcmtPcmRlck5vdGlmaWNhdGlvblNlbnRQb3N0KTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHJhbnNhY3Rpb24iPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNvbmRpdGlvbjo6RXZlbnRNb2R1bGUjIyMwMS1IaXN0b3J5QWRkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RXZlbnQ6OklUU01Db25kaXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6Okhpc3RvcnlBZGQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkV2ZW50Ij4oQ29uZGl0aW9uQWRkUG9zdHxDb25kaXRpb25VcGRhdGVQb3N0fENvbmRpdGlvbkRlbGV0ZVBvc3R8Q29uZGl0aW9uRGVsZXRlQWxsUG9zdHxFeHByZXNzaW9uQWRkUG9zdHxFeHByZXNzaW9uVXBkYXRlUG9zdHxFeHByZXNzaW9uRGVsZXRlUG9zdHxFeHByZXNzaW9uRGVsZXRlQWxsUG9zdHxBY3Rpb25BZGRQb3N0fEFjdGlvblVwZGF0ZVBvc3R8QWN0aW9uRGVsZXRlUG9zdHxBY3Rpb25EZWxldGVBbGxQb3N0fEFjdGlvbkV4ZWN1dGVQb3N0KTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHJhbnNhY3Rpb24iPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNvbmRpdGlvbjo6RXZlbnRNb2R1bGUjIyMwMi1Ob3RpZmljYXRpb24iIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RXZlbnQ6OklUU01Db25kaXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6Ok5vdGlmaWNhdGlvbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPihBY3Rpb25FeGVjdXRlUG9zdCk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRyYW5zYWN0aW9uIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkNoYW5nZVNlYXJjaDo6TWlycm9yREIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6REI6Ok1pcnJvcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkR5bmFtaWNGaWVsZHM6Ok9iamVjdFR5cGUjIyNJVFNNQ2hhbmdlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWNGaWVsZCBvYmplY3QgcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RHluYW1pY0ZpZWxkczo6T2JqZWN0VHlwZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEaXNwbGF5TmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5JVFNNQ2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6Ok9iamVjdFR5cGU6OklUU01DaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjQ1MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJEeW5hbWljRmllbGRzOjpPYmplY3RUeXBlIyMjSVRTTVdvcmtPcmRlciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljRmllbGQgb2JqZWN0IHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkR5bmFtaWNGaWVsZHM6Ok9iamVjdFR5cGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGlzcGxheU5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+SVRTTVdvcmtPcmRlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpPYmplY3RUeXBlOjpJVFNNV29ya09yZGVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj40NjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6Q2FjaGVUVEwiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Q2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkNhY2hlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj43MjAwPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpUb29sQmFyOjpDYWNoZVRUTCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5DYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6Q2FjaGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyQiPjE4MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlR5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+UmZDPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+T25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5pdHNtLWNoYW5nZS1idWlsZGVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+aXRzbS1jaGFuZ2UtbWFuYWdlcjwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6SG9vayIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPkNoYW5nZSM8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OlN0YXRlTG9jazo6QWxsb3dFbmRTdGF0ZXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OlN0YXRlOjpTaWduYWwiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0icmVxdWVzdGVkIj5ncmF5bGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJwZW5kaW5nIGFwcHJvdmFsIj55ZWxsb3dsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InJlamVjdGVkIj5yZWRsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImFwcHJvdmVkIj5ncmVlbmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaW4gcHJvZ3Jlc3MiPnllbGxvd2xlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0icGVuZGluZyBwaXIiPnllbGxvd2xlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ic3VjY2Vzc2Z1bCI+Z3JlZW5sZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImZhaWxlZCI+cmVkbGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJjYW5jZWxlZCI+cmVkbGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJyZXRyYWN0ZWQiPmdyYXlsZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6Q2F0ZWdvcnk6OkRlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPjMgbm9ybWFsPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpJbXBhY3Q6OkRlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iIj4zIG5vcm1hbDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6QXR0cmlidXRlOjpDb21wYXJlVmFsdWU6OkZpZWxkVHlwZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VTdGF0ZUlEIj5TZWxlY3Rpb248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVRpdGxlIj5UZXh0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDYXRlZ29yeUlEIj5TZWxlY3Rpb248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkltcGFjdElEIj5TZWxlY3Rpb248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5SUQiPlNlbGVjdGlvbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlTWFuYWdlcklEIj5TZWxlY3Rpb248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZUJ1aWxkZXJJRCI+U2VsZWN0aW9uPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJSZXF1ZXN0ZWRUaW1lIj5EYXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkU3RhcnRUaW1lIj5EYXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkRW5kVGltZSI+RGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsU3RhcnRUaW1lIj5EYXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3R1YWxFbmRUaW1lIj5EYXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkRWZmb3J0Ij5UZXh0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2NvdW50ZWRUaW1lIj5UZXh0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEeW5hbWljRmllbGQiPlRleHQ8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TWFwcGluZzo6RXhwcmVzc2lvbjo6T2JqZWN0OjpBdHRyaWJ1dGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlU3RhdGVJRCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlVGl0bGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhdGVnb3J5SUQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkltcGFjdElEIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eUlEIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VNYW5hZ2VySUQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZUJ1aWxkZXJJRCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVxdWVzdGVkVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZFN0YXJ0VGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVuZFRpbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdHVhbFN0YXJ0VGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsRW5kVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVmZm9ydCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjb3VudGVkVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6Ok1hcHBpbmc6OkV4cHJlc3Npb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNDaGFuZ2VTdGF0ZUlEIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZW1wdHkiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCBlbXB0eSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZ3JlYXRlciB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBsZXNzIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGJlZm9yZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYWZ0ZXIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3QgY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImJlZ2lucyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbmRzIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TWFwcGluZzo6RXhwcmVzc2lvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI0NoYW5nZVRpdGxlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpFeHByZXNzaW9uOjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGVtcHR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QgZW1wdHkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGdyZWF0ZXIgdGhhbiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbGVzcyB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBiZWZvcmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGFmdGVyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJjb250YWlucyI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ibm90IGNvbnRhaW5zIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJiZWdpbnMgd2l0aCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iZW5kcyB3aXRoIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6Ok1hcHBpbmc6OkV4cHJlc3Npb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNDYXRlZ29yeUlEIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZW1wdHkiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCBlbXB0eSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZ3JlYXRlciB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBsZXNzIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGJlZm9yZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYWZ0ZXIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3QgY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImJlZ2lucyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbmRzIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TWFwcGluZzo6RXhwcmVzc2lvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI0ltcGFjdElEIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpFeHByZXNzaW9uOjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGVtcHR5Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QgZW1wdHkiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGdyZWF0ZXIgdGhhbiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbGVzcyB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBiZWZvcmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGFmdGVyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJjb250YWlucyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ibm90IGNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJiZWdpbnMgd2l0aCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iZW5kcyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6Ok1hcHBpbmc6OkV4cHJlc3Npb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNQcmlvcml0eUlEIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZW1wdHkiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCBlbXB0eSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZ3JlYXRlciB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBsZXNzIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGJlZm9yZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYWZ0ZXIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3QgY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImJlZ2lucyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbmRzIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TWFwcGluZzo6RXhwcmVzc2lvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI0NoYW5nZU1hbmFnZXJJRCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZW1wdHkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCBlbXB0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZ3JlYXRlciB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBsZXNzIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGJlZm9yZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYWZ0ZXIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3QgY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImJlZ2lucyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbmRzIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TWFwcGluZzo6RXhwcmVzc2lvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI0NoYW5nZUJ1aWxkZXJJRCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZW1wdHkiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCBlbXB0eSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZ3JlYXRlciB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBsZXNzIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGJlZm9yZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYWZ0ZXIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3QgY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImJlZ2lucyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbmRzIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TWFwcGluZzo6RXhwcmVzc2lvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI1JlcXVlc3RlZFRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6RXhwcmVzc2lvbjo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBlbXB0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90IGVtcHR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBncmVhdGVyIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGxlc3MgdGhhbiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYmVmb3JlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBhZnRlciI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Im5vdCBjb250YWlucyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iYmVnaW5zIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImVuZHMgd2l0aCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpNYXBwaW5nOjpFeHByZXNzaW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjUGxhbm5lZFN0YXJ0VGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpFeHByZXNzaW9uOjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGVtcHR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QgZW1wdHkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGdyZWF0ZXIgdGhhbiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbGVzcyB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBiZWZvcmUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGFmdGVyIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJjb250YWlucyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ibm90IGNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJiZWdpbnMgd2l0aCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iZW5kcyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6Ok1hcHBpbmc6OkV4cHJlc3Npb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNQbGFubmVkRW5kVGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6RXhwcmVzc2lvbjo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBlbXB0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90IGVtcHR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBncmVhdGVyIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGxlc3MgdGhhbiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYmVmb3JlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBhZnRlciI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Im5vdCBjb250YWlucyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iYmVnaW5zIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImVuZHMgd2l0aCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpNYXBwaW5nOjpFeHByZXNzaW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjQWN0dWFsU3RhcnRUaW1lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6RXhwcmVzc2lvbjo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBlbXB0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90IGVtcHR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBncmVhdGVyIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGxlc3MgdGhhbiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYmVmb3JlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBhZnRlciI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Im5vdCBjb250YWlucyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iYmVnaW5zIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImVuZHMgd2l0aCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpNYXBwaW5nOjpFeHByZXNzaW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjQWN0dWFsRW5kVGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpFeHByZXNzaW9uOjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGVtcHR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QgZW1wdHkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGdyZWF0ZXIgdGhhbiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbGVzcyB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBiZWZvcmUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGFmdGVyIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJjb250YWlucyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ibm90IGNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJiZWdpbnMgd2l0aCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iZW5kcyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6Ok1hcHBpbmc6OkV4cHJlc3Npb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNQbGFubmVkRWZmb3J0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZW1wdHkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCBlbXB0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZ3JlYXRlciB0aGFuIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBsZXNzIHRoYW4iPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGJlZm9yZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYWZ0ZXIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3QgY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImJlZ2lucyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbmRzIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TWFwcGluZzo6RXhwcmVzc2lvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI0FjY291bnRlZFRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWNjb3VudGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6RXhwcmVzc2lvbjo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBlbXB0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90IGVtcHR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBncmVhdGVyIHRoYW4iPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGxlc3MgdGhhbiI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYmVmb3JlIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBhZnRlciI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Im5vdCBjb250YWlucyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iYmVnaW5zIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImVuZHMgd2l0aCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpNYXBwaW5nOjpFeHByZXNzaW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6RXhwcmVzc2lvbjo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBlbXB0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90IGVtcHR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBncmVhdGVyIHRoYW4iPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGxlc3MgdGhhbiI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYmVmb3JlIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBhZnRlciI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iY29udGFpbnMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Im5vdCBjb250YWlucyI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iYmVnaW5zIHdpdGgiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImVuZHMgd2l0aCI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpNYXBwaW5nOjpBY3Rpb246Ok9iamVjdDo6QXR0cmlidXRlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpBY3Rpb246OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlU3RhdGVJRCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlVGl0bGUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhdGVnb3J5SUQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkltcGFjdElEIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eUlEIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VNYW5hZ2VySUQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZUJ1aWxkZXJJRCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVxdWVzdGVkVGltZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZFN0YXJ0VGltZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVuZFRpbWUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdHVhbFN0YXJ0VGltZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsRW5kVGltZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVmZm9ydCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjb3VudGVkVGltZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6Ok1hcHBpbmc6OkFjdGlvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI0NoYW5nZVN0YXRlSUQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6QWN0aW9uOjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InNldCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ibG9jayI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpNYXBwaW5nOjpBY3Rpb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNDaGFuZ2VUaXRsZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6QWN0aW9uOjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InNldCI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpNYXBwaW5nOjpBY3Rpb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNDYXRlZ29yeUlEIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkFjdGlvbjo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJzZXQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TWFwcGluZzo6QWN0aW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjSW1wYWN0SUQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgSW1wYWN0SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkFjdGlvbjo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJzZXQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TWFwcGluZzo6QWN0aW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjUHJpb3JpdHlJRCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpBY3Rpb246OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ic2V0Ij4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6Ok1hcHBpbmc6OkFjdGlvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI0NoYW5nZU1hbmFnZXJJRCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkFjdGlvbjo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJzZXQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TWFwcGluZzo6QWN0aW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjQ2hhbmdlQnVpbGRlcklEIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6QWN0aW9uOjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InNldCI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpNYXBwaW5nOjpBY3Rpb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNSZXF1ZXN0ZWRUaW1lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFJlcXVlc3RlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkFjdGlvbjo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJzZXQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TWFwcGluZzo6QWN0aW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjUGxhbm5lZFN0YXJ0VGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpBY3Rpb246OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ic2V0Ij4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6Ok1hcHBpbmc6OkFjdGlvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI1BsYW5uZWRFbmRUaW1lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpBY3Rpb246OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ic2V0Ij4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6Ok1hcHBpbmc6OkFjdGlvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI0FjdHVhbFN0YXJ0VGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkFjdGlvbjo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJzZXQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TWFwcGluZzo6QWN0aW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjQWN0dWFsRW5kVGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpBY3Rpb246OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ic2V0Ij4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6Ok1hcHBpbmc6OkFjdGlvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI1BsYW5uZWRFZmZvcnQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6QWN0aW9uOjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InNldCI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpNYXBwaW5nOjpBY3Rpb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNBY2NvdW50ZWRUaW1lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkFjdGlvbjo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJzZXQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TWFwcGluZzo6QWN0aW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6QWN0aW9uOjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InNldCI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpBdHRyaWJ1dGU6OkNvbXBhcmVWYWx1ZTo6RmllbGRUeXBlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlck51bWJlciI+VGV4dDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyU3RhdGVJRCI+U2VsZWN0aW9uPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJXb3JrT3JkZXJUeXBlSUQiPlNlbGVjdGlvbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyVGl0bGUiPlRleHQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlckFnZW50SUQiPlNlbGVjdGlvbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZFN0YXJ0VGltZSI+RGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVuZFRpbWUiPkRhdGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdHVhbFN0YXJ0VGltZSI+RGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsRW5kVGltZSI+RGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVmZm9ydCI+VGV4dDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjb3VudGVkVGltZSI+VGV4dDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkIj5UZXh0PC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6Ok1hcHBpbmc6OkV4cHJlc3Npb246Ok9iamVjdDo6QXR0cmlidXRlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHdvcmtvcmRlciBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpFeHByZXNzaW9uOjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlck51bWJlciI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyU3RhdGVJRCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyVHlwZUlEIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJXb3JrT3JkZXJUaXRsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyQWdlbnRJRCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZFN0YXJ0VGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVuZFRpbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdHVhbFN0YXJ0VGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsRW5kVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVmZm9ydCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjb3VudGVkVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6Ok1hcHBpbmc6OkV4cHJlc3Npb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNXb3JrT3JkZXJOdW1iZXIiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpFeHByZXNzaW9uOjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGVtcHR5Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QgZW1wdHkiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGdyZWF0ZXIgdGhhbiI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbGVzcyB0aGFuIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBiZWZvcmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGFmdGVyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJjb250YWlucyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ibm90IGNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJiZWdpbnMgd2l0aCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iZW5kcyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6Ok1hcHBpbmc6OkV4cHJlc3Npb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNXb3JrT3JkZXJTdGF0ZUlEIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZW1wdHkiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCBlbXB0eSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZ3JlYXRlciB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBsZXNzIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGJlZm9yZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYWZ0ZXIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3QgY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImJlZ2lucyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbmRzIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6TWFwcGluZzo6RXhwcmVzc2lvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI1dvcmtPcmRlclR5cGVJRCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZW1wdHkiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCBlbXB0eSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZ3JlYXRlciB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBsZXNzIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGJlZm9yZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYWZ0ZXIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3QgY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImJlZ2lucyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbmRzIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6TWFwcGluZzo6RXhwcmVzc2lvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI1dvcmtPcmRlclRpdGxlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpFeHByZXNzaW9uOjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGVtcHR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QgZW1wdHkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGdyZWF0ZXIgdGhhbiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbGVzcyB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBiZWZvcmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGFmdGVyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJjb250YWlucyI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ibm90IGNvbnRhaW5zIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJiZWdpbnMgd2l0aCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iZW5kcyB3aXRoIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6Ok1hcHBpbmc6OkV4cHJlc3Npb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNXb3JrT3JkZXJBZ2VudElEIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZW1wdHkiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCBlbXB0eSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZ3JlYXRlciB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBsZXNzIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGJlZm9yZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYWZ0ZXIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3QgY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImJlZ2lucyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbmRzIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6TWFwcGluZzo6RXhwcmVzc2lvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI1BsYW5uZWRTdGFydFRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6RXhwcmVzc2lvbjo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBlbXB0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90IGVtcHR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBncmVhdGVyIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGxlc3MgdGhhbiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYmVmb3JlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBhZnRlciI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Im5vdCBjb250YWlucyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iYmVnaW5zIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImVuZHMgd2l0aCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpNYXBwaW5nOjpFeHByZXNzaW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjUGxhbm5lZEVuZFRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZW1wdHkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCBlbXB0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZ3JlYXRlciB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBsZXNzIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGJlZm9yZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYWZ0ZXIiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3QgY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImJlZ2lucyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbmRzIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6TWFwcGluZzo6RXhwcmVzc2lvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI0FjdHVhbFN0YXJ0VGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZW1wdHkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCBlbXB0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZ3JlYXRlciB0aGFuIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBsZXNzIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGJlZm9yZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYWZ0ZXIiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3QgY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImJlZ2lucyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbmRzIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6TWFwcGluZzo6RXhwcmVzc2lvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI0FjdHVhbEVuZFRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6RXhwcmVzc2lvbjo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBlbXB0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbm90IGVtcHR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBncmVhdGVyIHRoYW4iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGxlc3MgdGhhbiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYmVmb3JlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBhZnRlciI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Im5vdCBjb250YWlucyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iYmVnaW5zIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImVuZHMgd2l0aCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpNYXBwaW5nOjpFeHByZXNzaW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjUGxhbm5lZEVmZm9ydCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRWZmb3J0IGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpFeHByZXNzaW9uOjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGVtcHR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBub3QgZW1wdHkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGdyZWF0ZXIgdGhhbiI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgbGVzcyB0aGFuIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBiZWZvcmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGFmdGVyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJjb250YWlucyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ibm90IGNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJiZWdpbnMgd2l0aCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iZW5kcyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6Ok1hcHBpbmc6OkV4cHJlc3Npb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNBY2NvdW50ZWRUaW1lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZW1wdHkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCBlbXB0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZ3JlYXRlciB0aGFuIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBsZXNzIHRoYW4iPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGJlZm9yZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYWZ0ZXIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNvbnRhaW5zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3QgY29udGFpbnMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImJlZ2lucyB3aXRoIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbmRzIHdpdGgiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6TWFwcGluZzo6RXhwcmVzc2lvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI0R5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkV4cHJlc3Npb246OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZW1wdHkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIG5vdCBlbXB0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgZ3JlYXRlciB0aGFuIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJpcyBsZXNzIHRoYW4iPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImlzIGJlZm9yZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaXMgYWZ0ZXIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNvbnRhaW5zIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3QgY29udGFpbnMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImJlZ2lucyB3aXRoIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbmRzIHdpdGgiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6TWFwcGluZzo6QWN0aW9uOjpPYmplY3Q6OkF0dHJpYnV0ZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6QWN0aW9uOjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlck51bWJlciI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyU3RhdGVJRCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyVHlwZUlEIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJXb3JrT3JkZXJUaXRsZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyQWdlbnRJRCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZFN0YXJ0VGltZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVuZFRpbWUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdHVhbFN0YXJ0VGltZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsRW5kVGltZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVmZm9ydCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjb3VudGVkVGltZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6Ok1hcHBpbmc6OkFjdGlvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI1dvcmtPcmRlck51bWJlciIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkFjdGlvbjo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJzZXQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6TWFwcGluZzo6QWN0aW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjV29ya09yZGVyU3RhdGVJRCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpBY3Rpb246OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ic2V0Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJsb2NrIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6Ok1hcHBpbmc6OkFjdGlvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI1dvcmtPcmRlclR5cGVJRCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkFjdGlvbjo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJzZXQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6TWFwcGluZzo6QWN0aW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjV29ya09yZGVyVGl0bGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkFjdGlvbjo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJzZXQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6TWFwcGluZzo6QWN0aW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjV29ya09yZGVyQWdlbnRJRCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJBZ2VudElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpBY3Rpb246OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ic2V0Ij4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6Ok1hcHBpbmc6OkFjdGlvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI1BsYW5uZWRTdGFydFRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6QWN0aW9uOjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InNldCI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpNYXBwaW5nOjpBY3Rpb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNQbGFubmVkRW5kVGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6QWN0aW9uOjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InNldCI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpNYXBwaW5nOjpBY3Rpb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNBY3R1YWxTdGFydFRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpBY3Rpb246OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ic2V0Ij4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6Ok1hcHBpbmc6OkFjdGlvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI0FjdHVhbEVuZFRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNvbmRpdGlvbjo6QWN0aW9uOjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InNldCI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpNYXBwaW5nOjpBY3Rpb246OkF0dHJpYnV0ZTo6T3BlcmF0b3IjIyNQbGFubmVkRWZmb3J0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkFjdGlvbjo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJzZXQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6TWFwcGluZzo6QWN0aW9uOjpBdHRyaWJ1dGU6Ok9wZXJhdG9yIyMjQWNjb3VudGVkVGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ29uZGl0aW9uOjpBY3Rpb246OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ic2V0Ij4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6Ok1hcHBpbmc6OkFjdGlvbjo6QXR0cmlidXRlOjpPcGVyYXRvciMjI0R5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Db25kaXRpb246OkFjdGlvbjo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJzZXQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6SG9vayIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPldvcmtvcmRlciM8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OlN0YXRlTG9jazo6QWxsb3dFbmRTdGF0ZXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OlN0YXRlOjpTaWduYWwiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iY3JlYXRlZCI+Z3JheWxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iYWNjZXB0ZWQiPmdyYXlsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InJlYWR5Ij55ZWxsb3dsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImluIHByb2dyZXNzIj55ZWxsb3dsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNsb3NlZCI+Z3JlZW5sZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImNhbmNlbGVkIj5yZWRsZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6VHlwZTo6RGVmYXVsdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGUnLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPndvcmtvcmRlcjwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6QWN0dWFsU3RhcnRUaW1lU2V0OjpTdGF0ZXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+aW4gcHJvZ3Jlc3M8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OlRha2VQZXJtaXNzaW9uOjpMaXN0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkEgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OlRpbWVQZXJpb2QiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgcGVyaW9kIChpbiB5ZWFycyksIGluIHdoaWNoIHN0YXJ0IGFuZCBlbmQgdGltZXMgY2FuIGJlIHNlbGVjdGVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJZZWFyUGVyaW9kUGFzdCI+NTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iWWVhclBlcmlvZEZ1dHVyZSI+NTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6SGlzdG9yeU9yZGVyIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlSGlzdG9yeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSJub3JtYWwiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJyZXZlcnNlIiBUcmFuc2xhdGFibGU9IjEiPnJldmVyc2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9Im5vcm1hbCIgVHJhbnNsYXRhYmxlPSIxIj5ub3JtYWw8L0l0ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZSMjI0ZpbHRlcjo6Q2hhbmdlU3RhdGVzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5yZXF1ZXN0ZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5wZW5kaW5nIGFwcHJvdmFsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cmVqZWN0ZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5hcHByb3ZlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPmluIHByb2dyZXNzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyBwaXI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5zdWNjZXNzZnVsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+ZmFpbGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Y2FuY2VsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5yZXRyYWN0ZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2UjIyNPcmRlcjo6RGVmYXVsdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZU92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IlVwIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iRG93biIgVHJhbnNsYXRhYmxlPSIxIj5Eb3duPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJVcCIgVHJhbnNsYXRhYmxlPSIxIj5VcDwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJvPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlIyMjU2hvd0NvbHVtbnMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VTdGF0ZVNpZ25hbCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VOdW1iZXIiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlVGl0bGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlQnVpbGRlciIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VNYW5hZ2VyIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlckNvdW50IiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVN0YXRlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhdGVnb3J5IiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkltcGFjdCIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTZXJ2aWNlcyIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJSZXF1ZXN0ZWRUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBsYW5uZWRTdGFydFRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVuZFRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsU3RhcnRUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdHVhbEVuZFRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3JlYXRlVGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkR5bmFtaWNGaWVsZF9DaGFuZ2VGaWVsZE5hbWUxIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkR5bmFtaWNGaWVsZF9DaGFuZ2VGaWVsZE5hbWUyIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZSMjI1NvcnRCeTo6RGVmYXVsdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZU92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IkNoYW5nZU51bWJlciI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNoYW5nZU51bWJlciIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2UgbnVtYmVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDaGFuZ2VUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2UgdGl0bGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNoYW5nZVN0YXRlSUQiIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIHN0YXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDYXRlZ29yeUlEIiBUcmFuc2xhdGFibGU9IjEiPkNhdGVnb3J5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJJbXBhY3RJRCIgVHJhbnNsYXRhYmxlPSIxIj5JbXBhY3Q8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlByaW9yaXR5SUQiIFRyYW5zbGF0YWJsZT0iMSI+UHJpb3JpdHk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlJlcXVlc3RlZFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWVzdGVkIHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlBsYW5uZWRTdGFydFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+UGxhbm5lZCBzdGFydCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJQbGFubmVkRW5kVGltZSIgVHJhbnNsYXRhYmxlPSIxIj5QbGFubmVkIGVuZCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJBY3R1YWxTdGFydFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+QWN0dWFsIHN0YXJ0IHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkFjdHVhbEVuZFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+QWN0dWFsIGVuZCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDcmVhdGVUaW1lIiBUcmFuc2xhdGFibGU9IjEiPkNyZWF0ZSB0aW1lPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VBZGQjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VBZGQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXihyd3xybykkIj5ydzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZUFkZCMjI1JlcXVlc3RlZFRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZUFkZDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VBZGQjIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VBZGQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIyIiBUcmFuc2xhdGFibGU9IjEiPjIgLSBFbmFibGVkIGFuZCByZXF1aXJlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZSMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJ3PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXMnIENBQi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZUNBQlRlbXBsYXRlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il4ocnd8cm8pJCI+cnc8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VDb25kaXRpb24jIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlQ29uZGl0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il4ocnd8cm8pJCI+cnc8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0IyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXihyd3xybykkIj5ydzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZUVkaXQjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBjaGFuZ2VzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJ3PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlRGVsZXRlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlRGVsZXRlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il4ocnd8cm8pJCI+cnc8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VEZWxldGUjIyNDaGFuZ2VTdGF0ZXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VEZWxldGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5yZXF1ZXN0ZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5wZW5kaW5nIGFwcHJvdmFsPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlRWRpdCMjI1JlcXVlc3RlZFRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZUVkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlRWRpdCMjI0NoYW5nZVN0YXRlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZUVkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlRWRpdCMjI0R5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VFZGl0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMiIgVHJhbnNsYXRhYmxlPSIxIj4yIC0gRW5hYmxlZCBhbmQgcmVxdWlyZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VQU0EjIyNGaWx0ZXI6OkNoYW5nZVN0YXRlcyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VQU0FPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPmFwcHJvdmVkPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlUFNBIyMjT3JkZXI6OkRlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlUFNBT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iVXAiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJEb3duIiBUcmFuc2xhdGFibGU9IjEiPkRvd248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlVwIiBUcmFuc2xhdGFibGU9IjEiPlVwPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VQU0EjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlUFNBT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXihyd3xybykkIj5ybzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVBTQSMjI1Nob3dDb2x1bW5zIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VQU0FPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gRW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVN0YXRlU2lnbmFsIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZU51bWJlciIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VUaXRsZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VCdWlsZGVyIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZU1hbmFnZXIiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyQ291bnQiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlU3RhdGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2F0ZWdvcnkiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSW1wYWN0IiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5IiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNlcnZpY2VzIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlcXVlc3RlZFRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZFN0YXJ0VGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkRW5kVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3R1YWxTdGFydFRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsRW5kVGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDcmVhdGVUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkX0NoYW5nZUZpZWxkTmFtZTEiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkX0NoYW5nZUZpZWxkTmFtZTIiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlUFNBIyMjU29ydEJ5OjpEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVBTQU92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IlBsYW5uZWRTdGFydFRpbWUiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDaGFuZ2VOdW1iZXIiIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIG51bWJlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2hhbmdlVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIHRpdGxlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDaGFuZ2VTdGF0ZUlEIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBzdGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2F0ZWdvcnlJRCIgVHJhbnNsYXRhYmxlPSIxIj5DYXRlZ29yeTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iSW1wYWN0SUQiIFRyYW5zbGF0YWJsZT0iMSI+SW1wYWN0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJQcmlvcml0eUlEIiBUcmFuc2xhdGFibGU9IjEiPlByaW9yaXR5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJSZXF1ZXN0ZWRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPlJlcXVlc3RlZCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJQbGFubmVkU3RhcnRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPlBsYW5uZWQgc3RhcnQgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iUGxhbm5lZEVuZFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+UGxhbm5lZCBlbmQgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQWN0dWFsU3RhcnRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPkFjdHVhbCBzdGFydCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJBY3R1YWxFbmRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPkFjdHVhbCBlbmQgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ3JlYXRlVGltZSIgVHJhbnNsYXRhYmxlPSIxIj5DcmVhdGUgdGltZTwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlUmVzZXQjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVJlc2V0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il4ocnd8cm8pJCI+cnc8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VTY2hlZHVsZSMjI0ZpbHRlcjo6Q2hhbmdlU3RhdGVzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlU2NoZWR1bGVPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPmFwcHJvdmVkPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUjIyNPcmRlcjo6RGVmYXVsdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVNjaGVkdWxlT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iVXAiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJEb3duIiBUcmFuc2xhdGFibGU9IjEiPkRvd248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlVwIiBUcmFuc2xhdGFibGU9IjEiPlVwPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VTY2hlZHVsZSMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVNjaGVkdWxlT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXihyd3xybykkIj5ybzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVNjaGVkdWxlIyMjU2hvd0NvbHVtbnMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlU2NoZWR1bGVPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gRW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVN0YXRlU2lnbmFsIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZU51bWJlciIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VUaXRsZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VCdWlsZGVyIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZU1hbmFnZXIiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyQ291bnQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlU3RhdGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2F0ZWdvcnkiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSW1wYWN0IiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5IiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNlcnZpY2VzIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlcXVlc3RlZFRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZFN0YXJ0VGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkRW5kVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3R1YWxTdGFydFRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsRW5kVGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDcmVhdGVUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkX0NoYW5nZUZpZWxkTmFtZTEiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkX0NoYW5nZUZpZWxkTmFtZTIiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUjIyNTb3J0Qnk6OkRlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VTY2hlZHVsZU92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IlBsYW5uZWRTdGFydFRpbWUiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDaGFuZ2VOdW1iZXIiIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIG51bWJlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2hhbmdlVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIHRpdGxlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDaGFuZ2VTdGF0ZUlEIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBzdGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2F0ZWdvcnlJRCIgVHJhbnNsYXRhYmxlPSIxIj5DYXRlZ29yeTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iSW1wYWN0SUQiIFRyYW5zbGF0YWJsZT0iMSI+SW1wYWN0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJQcmlvcml0eUlEIiBUcmFuc2xhdGFibGU9IjEiPlByaW9yaXR5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJSZXF1ZXN0ZWRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPlJlcXVlc3RlZCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJQbGFubmVkU3RhcnRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPlBsYW5uZWQgc3RhcnQgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iUGxhbm5lZEVuZFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+UGxhbm5lZCBlbmQgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQWN0dWFsU3RhcnRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPkFjdHVhbCBzdGFydCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJBY3R1YWxFbmRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPkFjdHVhbCBlbmQgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ3JlYXRlVGltZSIgVHJhbnNsYXRhYmxlPSIxIj5DcmVhdGUgdGltZTwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlSGlzdG9yeSMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlSGlzdG9yeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJvPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20jIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlSGlzdG9yeVpvb208L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXihyd3xybykkIj5ybzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucyMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il4ocnd8cm8pJCI+cnc8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VNYW5hZ2VyIyMjRmlsdGVyOjpDaGFuZ2VTdGF0ZXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZU1hbmFnZXJPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPnJlcXVlc3RlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPnBlbmRpbmcgYXBwcm92YWw8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5hcHByb3ZlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPmluIHByb2dyZXNzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyBwaXI8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VNYW5hZ2VyIyMjT3JkZXI6OkRlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZU1hbmFnZXJPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSJVcCI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkRvd24iIFRyYW5zbGF0YWJsZT0iMSI+RG93bjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iVXAiIFRyYW5zbGF0YWJsZT0iMSI+VXA8L0l0ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZU1hbmFnZXIjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlTWFuYWdlck92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il4ocnd8cm8pJCI+cm88L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VNYW5hZ2VyIyMjU2hvd0NvbHVtbnMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VNYW5hZ2VyT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VTdGF0ZVNpZ25hbCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VOdW1iZXIiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlVGl0bGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlQnVpbGRlciIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VNYW5hZ2VyIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlckNvdW50IiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVN0YXRlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhdGVnb3J5IiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkltcGFjdCIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTZXJ2aWNlcyIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJSZXF1ZXN0ZWRUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBsYW5uZWRTdGFydFRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVuZFRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsU3RhcnRUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdHVhbEVuZFRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3JlYXRlVGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkR5bmFtaWNGaWVsZF9DaGFuZ2VGaWVsZE5hbWUxIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkR5bmFtaWNGaWVsZF9DaGFuZ2VGaWVsZE5hbWUyIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZU1hbmFnZXIjIyNTb3J0Qnk6OkRlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZU1hbmFnZXJPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSJDaGFuZ2VOdW1iZXIiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDaGFuZ2VOdW1iZXIiIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIG51bWJlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2hhbmdlVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIHRpdGxlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDaGFuZ2VTdGF0ZUlEIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBzdGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2F0ZWdvcnlJRCIgVHJhbnNsYXRhYmxlPSIxIj5DYXRlZ29yeTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iSW1wYWN0SUQiIFRyYW5zbGF0YWJsZT0iMSI+SW1wYWN0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJQcmlvcml0eUlEIiBUcmFuc2xhdGFibGU9IjEiPlByaW9yaXR5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJSZXF1ZXN0ZWRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPlJlcXVlc3RlZCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJQbGFubmVkU3RhcnRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPlBsYW5uZWQgc3RhcnQgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iUGxhbm5lZEVuZFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+UGxhbm5lZCBlbmQgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQWN0dWFsU3RhcnRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPkFjdHVhbCBzdGFydCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJBY3R1YWxFbmRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPkFjdHVhbCBlbmQgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ3JlYXRlVGltZSIgVHJhbnNsYXRhYmxlPSIxIj5DcmVhdGUgdGltZTwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlTXlDQUIjIyNGaWx0ZXI6OkNoYW5nZVN0YXRlcyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlTXlDQUJPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPnJlcXVlc3RlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPnBlbmRpbmcgYXBwcm92YWw8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5hcHByb3ZlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPmluIHByb2dyZXNzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyBwaXI8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VNeUNBQiMjI09yZGVyOjpEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VNeUNBQk92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IlVwIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iRG93biIgVHJhbnNsYXRhYmxlPSIxIj5Eb3duPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJVcCIgVHJhbnNsYXRhYmxlPSIxIj5VcDwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlTXlDQUIjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgYSBDQUIgbWVtYmVyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlTXlDQUJPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJvPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlTXlDQUIjIyNTaG93Q29sdW1ucyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZU15Q0FCT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VTdGF0ZVNpZ25hbCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VOdW1iZXIiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlVGl0bGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlQnVpbGRlciIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VNYW5hZ2VyIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlckNvdW50IiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVN0YXRlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhdGVnb3J5IiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkltcGFjdCIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTZXJ2aWNlcyIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJSZXF1ZXN0ZWRUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBsYW5uZWRTdGFydFRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVuZFRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsU3RhcnRUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdHVhbEVuZFRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3JlYXRlVGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkR5bmFtaWNGaWVsZF9DaGFuZ2VGaWVsZE5hbWUxIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkR5bmFtaWNGaWVsZF9DaGFuZ2VGaWVsZE5hbWUyIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZU15Q0FCIyMjU29ydEJ5OjpEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VNeUNBQk92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IkNoYW5nZU51bWJlciI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNoYW5nZU51bWJlciIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2UgbnVtYmVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDaGFuZ2VUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2UgdGl0bGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNoYW5nZVN0YXRlSUQiIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIHN0YXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDYXRlZ29yeUlEIiBUcmFuc2xhdGFibGU9IjEiPkNhdGVnb3J5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJJbXBhY3RJRCIgVHJhbnNsYXRhYmxlPSIxIj5JbXBhY3Q8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlByaW9yaXR5SUQiIFRyYW5zbGF0YWJsZT0iMSI+UHJpb3JpdHk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlJlcXVlc3RlZFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWVzdGVkIHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlBsYW5uZWRTdGFydFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+UGxhbm5lZCBzdGFydCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJQbGFubmVkRW5kVGltZSIgVHJhbnNsYXRhYmxlPSIxIj5QbGFubmVkIGVuZCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJBY3R1YWxTdGFydFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+QWN0dWFsIHN0YXJ0IHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkFjdHVhbEVuZFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+QWN0dWFsIGVuZCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDcmVhdGVUaW1lIiBUcmFuc2xhdGFibGU9IjEiPkNyZWF0ZSB0aW1lPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMjIyNGaWx0ZXI6OkNoYW5nZVN0YXRlcyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZU15Q2hhbmdlc092ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+cmVxdWVzdGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyBhcHByb3ZhbDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPmFwcHJvdmVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+aW4gcHJvZ3Jlc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5wZW5kaW5nIHBpcjwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZU15V29ya09yZGVycyMjI0ZpbHRlcjo6V29ya09yZGVyU3RhdGVzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5jcmVhdGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+YWNjZXB0ZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5yZWFkeTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPmluIHByb2dyZXNzPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzIyMjT3JkZXI6OkRlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VNeUNoYW5nZXNPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSJVcCI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkRvd24iIFRyYW5zbGF0YWJsZT0iMSI+RG93bjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iVXAiIFRyYW5zbGF0YWJsZT0iMSI+VXA8L0l0ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZU15Q2hhbmdlcyMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlTXlDaGFuZ2VzT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXihyd3xybykkIj5ybzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZU15Q2hhbmdlcyMjI1Nob3dDb2x1bW5zIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZU15Q2hhbmdlc092ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlU3RhdGVTaWduYWwiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlTnVtYmVyIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVRpdGxlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZUJ1aWxkZXIiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlTWFuYWdlciIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJXb3JrT3JkZXJDb3VudCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VTdGF0ZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDYXRlZ29yeSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJbXBhY3QiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpb3JpdHkiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU2VydmljZXMiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVxdWVzdGVkVGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkU3RhcnRUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBsYW5uZWRFbmRUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdHVhbFN0YXJ0VGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3R1YWxFbmRUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNyZWF0ZVRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlVGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEeW5hbWljRmllbGRfQ2hhbmdlRmllbGROYW1lMSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEeW5hbWljRmllbGRfQ2hhbmdlRmllbGROYW1lMiIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMjIyNTb3J0Qnk6OkRlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VNeUNoYW5nZXNPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSJQbGFubmVkU3RhcnRUaW1lIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2hhbmdlTnVtYmVyIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBudW1iZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNoYW5nZVRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSB0aXRsZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2hhbmdlU3RhdGVJRCIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2Ugc3RhdGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNhdGVnb3J5SUQiIFRyYW5zbGF0YWJsZT0iMSI+Q2F0ZWdvcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkltcGFjdElEIiBUcmFuc2xhdGFibGU9IjEiPkltcGFjdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iUHJpb3JpdHlJRCIgVHJhbnNsYXRhYmxlPSIxIj5Qcmlvcml0eTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iUmVxdWVzdGVkVGltZSIgVHJhbnNsYXRhYmxlPSIxIj5SZXF1ZXN0ZWQgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iUGxhbm5lZFN0YXJ0VGltZSIgVHJhbnNsYXRhYmxlPSIxIj5QbGFubmVkIHN0YXJ0IHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlBsYW5uZWRFbmRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPlBsYW5uZWQgZW5kIHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkFjdHVhbFN0YXJ0VGltZSIgVHJhbnNsYXRhYmxlPSIxIj5BY3R1YWwgc3RhcnQgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQWN0dWFsRW5kVGltZSIgVHJhbnNsYXRhYmxlPSIxIj5BY3R1YWwgZW5kIHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNyZWF0ZVRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+Q3JlYXRlIHRpbWU8L0l0ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZU15V29ya09yZGVycyMjI09yZGVyOjpEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iVXAiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJEb3duIiBUcmFuc2xhdGFibGU9IjEiPkRvd248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlVwIiBUcmFuc2xhdGFibGU9IjEiPlVwPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZU15V29ya09yZGVyc092ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il4ocnd8cm8pJCI+cm88L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMjIyNTaG93Q29sdW1ucyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VNeVdvcmtPcmRlcnNPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gRW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVN0YXRlU2lnbmFsIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZU51bWJlciIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VUaXRsZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VCdWlsZGVyIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZU1hbmFnZXIiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyQ291bnQiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlU3RhdGUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2F0ZWdvcnkiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSW1wYWN0IiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5IiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNlcnZpY2VzIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlcXVlc3RlZFRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZFN0YXJ0VGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkRW5kVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3R1YWxTdGFydFRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsRW5kVGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDcmVhdGVUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyU3RhdGVTaWduYWwiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyTnVtYmVyIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlclRpdGxlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlckFnZW50IiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlclN0YXRlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlclR5cGUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzIyMjU29ydEJ5OjpEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iUGxhbm5lZFN0YXJ0VGltZSI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNoYW5nZU51bWJlciIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2UgbnVtYmVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDaGFuZ2VUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2UgdGl0bGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNoYW5nZVN0YXRlSUQiIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIHN0YXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDYXRlZ29yeUlEIiBUcmFuc2xhdGFibGU9IjEiPkNhdGVnb3J5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJJbXBhY3RJRCIgVHJhbnNsYXRhYmxlPSIxIj5JbXBhY3Q8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlByaW9yaXR5SUQiIFRyYW5zbGF0YWJsZT0iMSI+UHJpb3JpdHk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlJlcXVlc3RlZFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWVzdGVkIHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlBsYW5uZWRTdGFydFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+UGxhbm5lZCBzdGFydCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJQbGFubmVkRW5kVGltZSIgVHJhbnNsYXRhYmxlPSIxIj5QbGFubmVkIGVuZCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJBY3R1YWxTdGFydFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+QWN0dWFsIHN0YXJ0IHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkFjdHVhbEVuZFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+QWN0dWFsIGVuZCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDcmVhdGVUaW1lIiBUcmFuc2xhdGFibGU9IjEiPkNyZWF0ZSB0aW1lPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VQSVIjIyNGaWx0ZXI6OldvcmtPcmRlclN0YXRlcyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVBJUk92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+YWNjZXB0ZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5yZWFkeTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPmluIHByb2dyZXNzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Y2xvc2VkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Y2FuY2VsZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VQSVIjIyNPcmRlcjo6RGVmYXVsdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVBJUk92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IlVwIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iRG93biIgVHJhbnNsYXRhYmxlPSIxIj5Eb3duPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJVcCIgVHJhbnNsYXRhYmxlPSIxIj5VcDwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlUElSIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlUElST3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXihyd3xybykkIj5ybzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVBJUiMjI1Nob3dDb2x1bW5zIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVBJUk92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlU3RhdGVTaWduYWwiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlTnVtYmVyIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVRpdGxlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZUJ1aWxkZXIiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlTWFuYWdlciIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJXb3JrT3JkZXJDb3VudCIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VTdGF0ZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDYXRlZ29yeSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJbXBhY3QiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpb3JpdHkiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU2VydmljZXMiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVxdWVzdGVkVGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkU3RhcnRUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBsYW5uZWRFbmRUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdHVhbFN0YXJ0VGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3R1YWxFbmRUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNyZWF0ZVRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlVGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJXb3JrT3JkZXJTdGF0ZVNpZ25hbCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJXb3JrT3JkZXJOdW1iZXIiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyVGl0bGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyQWdlbnQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyU3RhdGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyVHlwZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VQSVIjIyNTb3J0Qnk6OkRlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VQSVJPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSJQbGFubmVkU3RhcnRUaW1lIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2hhbmdlTnVtYmVyIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBudW1iZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNoYW5nZVRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSB0aXRsZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2hhbmdlU3RhdGVJRCIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2Ugc3RhdGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNhdGVnb3J5SUQiIFRyYW5zbGF0YWJsZT0iMSI+Q2F0ZWdvcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkltcGFjdElEIiBUcmFuc2xhdGFibGU9IjEiPkltcGFjdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iUHJpb3JpdHlJRCIgVHJhbnNsYXRhYmxlPSIxIj5Qcmlvcml0eTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iUmVxdWVzdGVkVGltZSIgVHJhbnNsYXRhYmxlPSIxIj5SZXF1ZXN0ZWQgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iUGxhbm5lZFN0YXJ0VGltZSIgVHJhbnNsYXRhYmxlPSIxIj5QbGFubmVkIHN0YXJ0IHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlBsYW5uZWRFbmRUaW1lIiBUcmFuc2xhdGFibGU9IjEiPlBsYW5uZWQgZW5kIHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkFjdHVhbFN0YXJ0VGltZSIgVHJhbnNsYXRhYmxlPSIxIj5BY3R1YWwgc3RhcnQgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQWN0dWFsRW5kVGltZSIgVHJhbnNsYXRhYmxlPSIxIj5BY3R1YWwgZW5kIHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNyZWF0ZVRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+Q3JlYXRlIHRpbWU8L0l0ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVBJUiMjI1dvcmtPcmRlclR5cGVzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VQSVJPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPnBpcjwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbiMjI1JpY2hUZXh0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlVzZXMgcmljaHRleHQgZm9yIHZpZXdpbmcgYW5kIGVkaXRpbmcgdGlja2V0IG5vdGlmaWNhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6Vmlldzo6SVRTTUNoYW5nZU5vdGlmaWNhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24jIyNSaWNoVGV4dFdpZHRoIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHdpZHRoIGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBjb21wb25lbnQgZm9yIHRoaXMgc2NyZWVuLiBFbnRlciBudW1iZXIgKHBpeGVscykgb3IgcGVyY2VudCB2YWx1ZSAocmVsYXRpdmUpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpWaWV3OjpJVFNNQ2hhbmdlTm90aWZpY2F0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCslPyQiPjYyMDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbiMjI1JpY2hUZXh0SGVpZ2h0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhlaWdodCBmb3IgdGhlIHJpY2ggdGV4dCBlZGl0b3IgY29tcG9uZW50IGZvciB0aGlzIHNjcmVlbi4gRW50ZXIgbnVtYmVyIChwaXhlbHMpIG9yIHBlcmNlbnQgdmFsdWUgKHJlbGF0aXZlKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6Vmlldzo6SVRTTUNoYW5nZU5vdGlmaWNhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeXGQrJT8kIj4zMjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VQcmludCMjI0FjY291bnRlZFRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVByaW50PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVByaW50IyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlUHJpbnQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXihyd3xybykkIj5ybzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVByaW50IyMjUGxhbm5lZEVmZm9ydCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlUHJpbnQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlUHJpbnQjIyNSZXF1ZXN0ZWRUaW1lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVByaW50PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVByaW50IyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVByaW50PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlU2VhcmNoIyMjUmVxdWVzdGVkVGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2VhcmNoZWQgYnkgY3VzdG9tZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VTZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlU2VhcmNoIyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlU2VhcmNoIyMjU2hvd0NvbHVtbnMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gRW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVN0YXRlU2lnbmFsIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZU51bWJlciIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VUaXRsZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VCdWlsZGVyIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZU1hbmFnZXIiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyQ291bnQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlU3RhdGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2F0ZWdvcnkiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSW1wYWN0IiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5IiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNlcnZpY2VzIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlcXVlc3RlZFRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZFN0YXJ0VGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkRW5kVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3R1YWxTdGFydFRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsRW5kVGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDcmVhdGVUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkX0NoYW5nZUZpZWxkTmFtZTEiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkX0NoYW5nZUZpZWxkTmFtZTIiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVRlbXBsYXRlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il4ocnd8cm8pJCI+cnc8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VUaW1lU2xvdCMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVRpbWVTbG90PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il4ocnd8cm8pJCI+cnc8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2Vab29tIyMjQWNjb3VudGVkVGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2Vab29tPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVpvb20jIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlWm9vbTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJvPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlWm9vbSMjI1BsYW5uZWRFZmZvcnQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlWm9vbTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2Vab29tIyMjUmVxdWVzdGVkVGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2Vab29tPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVpvb20jIyNXb3JrT3JkZXJTdGF0ZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlWm9vbTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2Vab29tIyMjV29ya09yZGVyVGl0bGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVpvb208L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlWm9vbSMjI1dvcmtPcmRlckdyYXBoIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVpvb208L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGltZUxpbmVDb2xvciI+I0RDMTQzQzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGltZUxpbmVXaWR0aCI+MjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0idW5kZWZpbmVkX3BsYW5uZWRfY29sb3IiPiNCMjIyMjI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InVuZGVmaW5lZF9hY3R1YWxfY29sb3IiPiNGMDgwODA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImFwcHJvdmFsX3BsYW5uZWRfY29sb3IiPiNGRjQ1MDA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImFwcHJvdmFsX2FjdHVhbF9jb2xvciI+I0ZGN0Y1MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iYmFja291dF9wbGFubmVkX2NvbG9yIj4jNjk2OTY5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJiYWNrb3V0X2FjdHVhbF9jb2xvciI+I0MwQzBDMDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0icGlyX3BsYW5uZWRfY29sb3IiPiM0NjgyQjQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InBpcl9hY3R1YWxfY29sb3IiPiM4N0NFRUI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IndvcmtvcmRlcl9wbGFubmVkX2NvbG9yIj4jMDA2NDAwPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJ3b3Jrb3JkZXJfYWN0dWFsX2NvbG9yIj4jM0NCMzcxPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2Vab29tIyMjVG9vbHRpcDo6V29ya09yZGVyQXR0cmlidXRlcyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlWm9vbTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJXb3JrT3JkZXJUaXRsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyU3RhdGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlclR5cGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IldvcmtPcmRlckFnZW50Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkU3RhcnRUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkRW5kVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0dWFsU3RhcnRUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3R1YWxFbmRUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJbnN0cnVjdGlvbiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVwb3J0Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2NvdW50ZWRUaW1lIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQbGFubmVkRWZmb3J0Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVpvb20jIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlWm9vbTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gRW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTVRlbXBsYXRlRGVsZXRlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlVGVtcGxhdGVEZWxldGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXihyd3xybykkIj5ydzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTVRlbXBsYXRlRWRpdCMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VUZW1wbGF0ZUVkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXihyd3xybykkIj5ydzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlVGVtcGxhdGVFZGl0Q29udGVudDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJ3PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudCMjI0RlZmF1bHRDaGFuZ2VUaXRsZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VUZW1wbGF0ZUVkaXRDb250ZW50PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+SGVscGVyIGR1bW15IGNoYW5nZSBuZWVkZWQgZm9yIGVkaXRpbmcgYSB3b3Jrb3JkZXIgdGVtcGxhdGU8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlVGVtcGxhdGVFZGl0Q0FCPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il4ocnd8cm8pJCI+cnc8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3IyMjRmlsdGVyOjpUZW1wbGF0ZVR5cGVzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHRlbXBsYXRlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlVGVtcGxhdGVPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPklUU01DaGFuZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5JVFNNV29ya09yZGVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Q0FCPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldyMjI09yZGVyOjpEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01DaGFuZ2VUZW1wbGF0ZU92ZXJ2aWV3PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IlVwIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iRG93biIgVHJhbnNsYXRhYmxlPSIxIj5Eb3duPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJVcCIgVHJhbnNsYXRhYmxlPSIxIj5VcDwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldyMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVRlbXBsYXRlT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXihyd3xybykkIj5ybzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcjIyNTaG93Q29sdW1ucyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVRlbXBsYXRlT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNvbW1lbnQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJWYWxpZCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFZGl0Q29udGVudCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWxldGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3JlYXRlQnkiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3JlYXRlVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VCeSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcjIyNTb3J0Qnk6OkRlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTUNoYW5nZVRlbXBsYXRlT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iVGVtcGxhdGVJRCI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlRlbXBsYXRlSUQiIFRyYW5zbGF0YWJsZT0iMSI+VGVtcGxhdGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+TmFtZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iVGVtcGxhdGVUeXBlSUQiIFRyYW5zbGF0YWJsZT0iMSI+VGVtcGxhdGUgdHlwZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iVmFsaWRJRCIgVHJhbnNsYXRhYmxlPSIxIj5WYWxpZGl0eTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ3JlYXRlVGltZSIgVHJhbnNsYXRhYmxlPSIxIj5DcmVhdGUgdGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2hhbmdlVGltZSIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2UgdGltZTwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTVdvcmtPcmRlckFkZCMjI0R5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTVdvcmtPcmRlckFkZDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gRW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjIiIFRyYW5zbGF0YWJsZT0iMSI+MiAtIEVuYWJsZWQgYW5kIHJlcXVpcmVkPC9JdGVtPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyQWRkIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTVdvcmtPcmRlckFkZDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJ3PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyQWRkIyMjUGxhbm5lZEVmZm9ydCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01Xb3JrT3JkZXJBZGQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJ3PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyQWdlbnQjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01Xb3JrT3JkZXJBZ2VudDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJ3PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyRGVsZXRlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTVdvcmtPcmRlckRlbGV0ZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJ3PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6RnJvbnRlbmQ6OkFnZW50SVRTTVdvcmtPcmRlckVkaXQjIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNV29ya09yZGVyRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gRW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjIiIFRyYW5zbGF0YWJsZT0iMSI+MiAtIEVuYWJsZWQgYW5kIHJlcXVpcmVkPC9JdGVtPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyRWRpdCMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNV29ya09yZGVyRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJ3PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyRWRpdCMjI1BsYW5uZWRFZmZvcnQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNV29ya09yZGVyRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjpBZ2VudElUU01Xb3JrT3JkZXJFZGl0IyMjTW92ZUZvbGxvd2luZ1dvcmtPcmRlcnMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBjaGVja2JveCBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGlmIHRoZSB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGFsc28gYmUgbW92ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgbW9kaWZpZWQgYW5kIHRoZSBwbGFubmVkIGVuZCB0aW1lIGhhcyBjaGFuZ2VkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNV29ya09yZGVyRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjpBZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5IyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01Xb3JrT3JkZXJIaXN0b3J5PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il4ocnd8cm8pJCI+cm88L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjpBZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbSMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJvPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyUmVwb3J0IyMjQWNjb3VudGVkVGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01Xb3JrT3JkZXJSZXBvcnQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyUmVwb3J0IyMjQWN0dWFsVGltZVNwYW4iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTVdvcmtPcmRlclJlcG9ydDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjpBZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQjIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OklUU01Xb3JrT3JkZXJSZXBvcnQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIyIiBUcmFuc2xhdGFibGU9IjEiPjIgLSBFbmFibGVkIGFuZCByZXF1aXJlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6RnJvbnRlbmQ6OkFnZW50SVRTTVdvcmtPcmRlclJlcG9ydCMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTVdvcmtPcmRlclJlcG9ydDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJ3PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyVGFrZSMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTVdvcmtPcmRlckFnZW50PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il4ocnd8cm8pJCI+cnc8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjpBZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZSMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNV29ya09yZGVyVGVtcGxhdGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXihyd3xybykkIj5ydzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6RnJvbnRlbmQ6OkFnZW50SVRTTVdvcmtPcmRlclpvb20jIyNBY2NvdW50ZWRUaW1lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTVdvcmtPcmRlclpvb208L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyWm9vbSMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNV29ya09yZGVyWm9vbTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeKHJ3fHJvKSQiPnJvPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyWm9vbSMjI1BsYW5uZWRFZmZvcnQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNV29ya09yZGVyWm9vbTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjpBZ2VudElUU01Xb3JrT3JkZXJab29tIyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6SVRTTVdvcmtPcmRlclpvb208L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpDdXN0b21lcklUU01DaGFuZ2VTY2hlZHVsZSMjI0ZpbHRlcjo6Q2hhbmdlU3RhdGVzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpWaWV3OjpJVFNNQ2hhbmdlU2NoZWR1bGVPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPmFwcHJvdmVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+aW4gcHJvZ3Jlc3M8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpDdXN0b21lcklUU01DaGFuZ2VTY2hlZHVsZSMjI09yZGVyOjpEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpWaWV3OjpJVFNNQ2hhbmdlU2NoZWR1bGVPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSJVcCI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkRvd24iIFRyYW5zbGF0YWJsZT0iMSI+RG93bjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iVXAiIFRyYW5zbGF0YWJsZT0iMSI+VXA8L0l0ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkN1c3RvbWVySVRTTUNoYW5nZVNjaGVkdWxlIyMjU2hvd0NvbHVtbnMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpWaWV3OjpJVFNNQ2hhbmdlU2NoZWR1bGVPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gRW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZVN0YXRlU2lnbmFsIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZU51bWJlciIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VUaXRsZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VCdWlsZGVyIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZU1hbmFnZXIiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iV29ya09yZGVyQ291bnQiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlU3RhdGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2F0ZWdvcnkiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSW1wYWN0IiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5IiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNlcnZpY2VzIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlcXVlc3RlZFRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZFN0YXJ0VGltZSIgU2VsZWN0ZWRJRD0iMSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGxhbm5lZEVuZFRpbWUiIFNlbGVjdGVkSUQ9IjEiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdHVhbFN0YXJ0VGltZSIgU2VsZWN0ZWRJRD0iMCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3R1YWxFbmRUaW1lIiBTZWxlY3RlZElEPSIwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNyZWF0ZVRpbWUiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkX0NoYW5nZUZpZWxkTmFtZTEiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRHluYW1pY0ZpZWxkX0NoYW5nZUZpZWxkTmFtZTIiIFNlbGVjdGVkSUQ9IjAiPjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6Q3VzdG9tZXJJVFNNQ2hhbmdlU2NoZWR1bGUjIyNTaG93T25seUNoYW5nZXNXaXRoQWxsb3dlZFNlcnZpY2VzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpWaWV3OjpJVFNNQ2hhbmdlU2NoZWR1bGVPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OkZyb250ZW5kOjpDdXN0b21lcklUU01DaGFuZ2VTY2hlZHVsZSMjI1NvcnRCeTo6RGVmYXVsdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpDdXN0b21lcjo6Vmlldzo6SVRTTUNoYW5nZVNjaGVkdWxlT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iUGxhbm5lZFN0YXJ0VGltZSI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNoYW5nZU51bWJlciIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2UgbnVtYmVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDaGFuZ2VUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2UgdGl0bGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNoYW5nZVN0YXRlSUQiIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIHN0YXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDYXRlZ29yeUlEIiBUcmFuc2xhdGFibGU9IjEiPkNhdGVnb3J5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJJbXBhY3RJRCIgVHJhbnNsYXRhYmxlPSIxIj5JbXBhY3Q8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlByaW9yaXR5SUQiIFRyYW5zbGF0YWJsZT0iMSI+UHJpb3JpdHk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlJlcXVlc3RlZFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWVzdGVkIHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlBsYW5uZWRTdGFydFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+UGxhbm5lZCBzdGFydCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJQbGFubmVkRW5kVGltZSIgVHJhbnNsYXRhYmxlPSIxIj5QbGFubmVkIGVuZCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJBY3R1YWxTdGFydFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+QWN0dWFsIHN0YXJ0IHRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkFjdHVhbEVuZFRpbWUiIFRyYW5zbGF0YWJsZT0iMSI+QWN0dWFsIGVuZCB0aW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDcmVhdGVUaW1lIiBUcmFuc2xhdGFibGU9IjEiPkNyZWF0ZSB0aW1lPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OlBlcm1pc3Npb24jIyMwNi1BZGRXb3JrT3JkZXJDaGVjayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Nb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpQZXJtaXNzaW9uOjpBZGRXb3JrT3JkZXJDaGVjazwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVxdWlyZWQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkdyYW50ZWQiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6UGVybWlzc2lvbiMjIzEwLUNoYW5nZU1hbmFnZXJDaGVjayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Nb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBtYW5hZ2VyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpQZXJtaXNzaW9uOjpDaGFuZ2VNYW5hZ2VyQ2hlY2s8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlcXVpcmVkIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcmFudGVkIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6OlBlcm1pc3Npb24jIyMyMC1DaGFuZ2VCdWlsZGVyQ2hlY2siIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6UGVybWlzc2lvbjo6Q2hhbmdlQnVpbGRlckNoZWNrPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJSZXF1aXJlZCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JhbnRlZCI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpQZXJtaXNzaW9uIyMjMzAtQ2hhbmdlQWdlbnRDaGVjayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Nb2R1bGUgdG8gY2hlY2sgdGhlIGFnZW50LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpQZXJtaXNzaW9uOjpDaGFuZ2VBZ2VudENoZWNrPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJSZXF1aXJlZCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JhbnRlZCI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpQZXJtaXNzaW9uIyMjNDAtQ0FCQ2hlY2siIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6UGVybWlzc2lvbjo6Q0FCQ2hlY2s8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlcXVpcmVkIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcmFudGVkIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OlBlcm1pc3Npb24jIyMxMC1DaGFuZ2VNYW5hZ2VyQ2hlY2siIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01Xb3JrT3JkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjo6UGVybWlzc2lvbjo6Q2hhbmdlTWFuYWdlckNoZWNrPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJSZXF1aXJlZCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JhbnRlZCI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNV29ya09yZGVyOjpQZXJtaXNzaW9uIyMjMjAtQ2hhbmdlQnVpbGRlckNoZWNrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXI6OlBlcm1pc3Npb246OkNoYW5nZUJ1aWxkZXJDaGVjazwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVxdWlyZWQiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkdyYW50ZWQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6UGVybWlzc2lvbiMjIzMwLVdvcmtPcmRlckFnZW50Q2hlY2siIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXI6OlBlcm1pc3Npb246OldvcmtPcmRlckFnZW50Q2hlY2s8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlcXVpcmVkIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcmFudGVkIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01Xb3JrT3JkZXI6OlBlcm1pc3Npb24jIyM0MC1DQUJDaGVjayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Nb2R1bGUgdG8gY2hlY2sgdGhlIENBQiBtZW1iZXJzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyOjpQZXJtaXNzaW9uOjpDQUJDaGVjazwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVxdWlyZWQiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkdyYW50ZWQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6VGFrZVBlcm1pc3Npb24jIyMxMC1FbXB0eUFnZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNV29ya09yZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXI6OlBlcm1pc3Npb246OkVtcHR5QWdlbnRDaGVjazwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVxdWlyZWQiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkdyYW50ZWQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6VGFrZVBlcm1pc3Npb24jIyMyMC1MaXN0QWdlbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyOjpQZXJtaXNzaW9uOjpMaXN0QWdlbnRDaGVjazwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVxdWlyZWQiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkdyYW50ZWQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcycsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6VGlja2V0OjpBQ0w8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBY2w6OlJlc3RyaWN0VGlja2V0VHlwZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVN0YXRlTWFjaGluZTo6T2JqZWN0IyMjQ2hhbmdlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNU3RhdGVNYWNoaW5lPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiPkNoYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2xhc3MiPklUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGU8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVN0YXRlTWFjaGluZTo6T2JqZWN0IyMjV29ya09yZGVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNU3RhdGVNYWNoaW5lPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiPldvcmtPcmRlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2xhc3MiPklUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6U3RhdGU8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6U2VuZE5vdGlmaWNhdGlvbnMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpOb3RpZmljYXRpb25zPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6VGltZVJlYWNoZWROb3RpZmljYXRpb25zIyMjRnJlcXVlbmN5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkNvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpOb3RpZmljYXRpb25zPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9Im9uY2UiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJvbmNlIiBUcmFuc2xhdGFibGU9IjEiPm9uY2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9InJlZ3VsYXJseSIgVHJhbnNsYXRhYmxlPSIxIj5yZWd1bGFybHk8L0l0ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6VGltZVJlYWNoZWROb3RpZmljYXRpb25zIyMjSG91cnMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgZnJlcXVlbmN5IGlzICdyZWd1bGFybHknLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6Tm90aWZpY2F0aW9uczwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeXGQrJCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iU3RhdHM6OkV4Y2hhbmdlQXhpcyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpTdGF0czwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlN0YXRzOjpEeW5hbWljT2JqZWN0UmVnaXN0cmF0aW9uIyMjSVRTTUNoYW5nZU1hbmFnZW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OlN0YXRzPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OlN0YXRzOjpEeW5hbWljOjpJVFNNQ2hhbmdlTWFuYWdlbWVudDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJTdGF0czo6RHluYW1pY09iamVjdFJlZ2lzdHJhdGlvbiMjI0lUU01DaGFuZ2VNYW5hZ2VtZW50SGlzdG9yeSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6U3RhdHM8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6U3RhdHM6OkR5bmFtaWM6OklUU01DaGFuZ2VNYW5hZ2VtZW50SGlzdG9yeTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJTdGF0czo6RHluYW1pY09iamVjdFJlZ2lzdHJhdGlvbiMjI0lUU01DaGFuZ2VNYW5hZ2VtZW50Q2hhbmdlc0luY2lkZW50cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6U3RhdHM8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6U3RhdHM6OkR5bmFtaWM6OklUU01DaGFuZ2VNYW5hZ2VtZW50Q2hhbmdlc0luY2lkZW50czwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJTdGF0czo6RHluYW1pY09iamVjdFJlZ2lzdHJhdGlvbiMjI0lUU01DaGFuZ2VNYW5hZ2VtZW50UmZjUmVxdWVzdGVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OlN0YXRzPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OlN0YXRzOjpEeW5hbWljOjpJVFNNQ2hhbmdlTWFuYWdlbWVudFJmY1JlcXVlc3RlcjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJTdGF0czo6RHluYW1pY09iamVjdFJlZ2lzdHJhdGlvbiMjI0lUU01DaGFuZ2VNYW5hZ2VtZW50Q2hhbmdlc1BlckNJQ2xhc3NlcyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpTdGF0czwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpTdGF0czo6RHluYW1pYzo6SVRTTUNoYW5nZU1hbmFnZW1lbnRDaGFuZ2VzUGVyQ0lDbGFzc2VzPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvciIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iUGVybE1vZHVsZSIgVmFsdWVGaWx0ZXI9Iktlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9OdW1iZXIvKi5wbSI+S2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Ok51bWJlcjo6RGF0ZUNoZWNrc3VtPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3I6Ok1pbkNvdW50ZXJTaXplIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkF1dG9JbmNyZW1lbnQiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBEZWZhdWx0IGlzIDUsIHRoaXMgbWVhbnMgdGhlIGNvdW50ZXIgc3RhcnRzIGZyb20gMTAwMDAuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpJVFNNQ2hhbmdlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XSQiPjU8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IklUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcjo6QXV0b0luY3JlbWVudDo6TWluQ291bnRlclNpemUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OklUU01DaGFuZ2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlswLTldJCI+NTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yOjpEYXRlOjpVc2VGb3JtYXR0ZWRDb3VudGVyIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkVuYWJsZXMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkRhdGUiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlByZWZlcmVuY2VzR3JvdXBzIyMjVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlBhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6UHJlZmVyZW5jZXM8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6UHJlZmVyZW5jZXM6OkdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByZWZlcmVuY2VHcm91cCI+TWlzY2VsbGFuZW91czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ29sdW1uIiBUcmFuc2xhdGFibGU9IjEiPk90aGVyIFNldHRpbmdzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMYWJlbCIgVHJhbnNsYXRhYmxlPSIxIj5TY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2MiIFRyYW5zbGF0YWJsZT0iMSI+Q29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJLZXkiIFRyYW5zbGF0YWJsZT0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEYXRhIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2VudElUU01Xb3JrT3JkZXJab29tIiBUcmFuc2xhdGFibGU9IjEiPldvcmtvcmRlciBab29tPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZW50SVRTTUNoYW5nZVpvb20iIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIFpvb208L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEYXRhU2VsZWN0ZWQiPkFnZW50SVRTTVdvcmtPcmRlclpvb208L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByZWZLZXkiPlVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzazwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpbyI+NDAwMDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aXZlIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlByZWZlcmVuY2VzR3JvdXBzIyMjQ2hhbmdlT3ZlcnZpZXdTbWFsbFBhZ2VTaG93biIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5QYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6UHJlZmVyZW5jZXM8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6UHJlZmVyZW5jZXM6OkdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByZWZlcmVuY2VHcm91cCI+TWlzY2VsbGFuZW91czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ29sdW1uIiBUcmFuc2xhdGFibGU9IjEiPk90aGVyIFNldHRpbmdzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMYWJlbCIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzYyIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iS2V5IiBUcmFuc2xhdGFibGU9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGF0YSI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTAiPjEwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjE1Ij4xNTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIyMCI+MjA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMjUiPjI1PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjMwIj4zMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIzNSI+MzU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEYXRhU2VsZWN0ZWQiPjI1PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmVmS2V5Ij5Vc2VyQ2hhbmdlT3ZlcnZpZXdTbWFsbFBhZ2VTaG93bjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpbyI+ODAwMDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aXZlIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlByZWZlcmVuY2VzR3JvdXBzIyMjVXNlcklUU01DaGFuZ2VNYW5hZ2VtZW50VGVtcGxhdGVFZGl0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlN0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlByZWZlcmVuY2VzPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlByZWZlcmVuY2VzOjpHZW5lcmljPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmVmZXJlbmNlR3JvdXAiPk1pc2NlbGxhbmVvdXM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNvbHVtbiIgVHJhbnNsYXRhYmxlPSIxIj5PdGhlciBTZXR0aW5nczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGFiZWwiIFRyYW5zbGF0YWJsZT0iMSI+Q2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iS2V5IiBUcmFuc2xhdGFibGU9IjEiPlRlbXBsYXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+SW5wdXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRhdGEiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJlZktleSI+VXNlcklUU01DaGFuZ2VNYW5hZ2VtZW50VGVtcGxhdGVFZGl0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj45MDAwPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6OlNlYXJjaCMjI0NoYW5nZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU6OlNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJeKD86QWdlbnR8QWRtaW4pSVRTTShDaGFuZ2V8V29ya09yZGVyfFRlbXBsYXRlT3ZlcnZpZXcpIj5BY3Rpb249QWdlbnRJVFNNQ2hhbmdlU2VhcmNoO1N1YmFjdGlvbj1BSkFYPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpTZWFyY2g6OkphdmFTY3JpcHQjIyNDaGFuZ2UiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SmF2YVNjcmlwdCBmdW5jdGlvbiBmb3IgdGhlIHNlYXJjaCBmcm9udGVuZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTo6U2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Il4oPzpBZ2VudHxBZG1pbilJVFNNKENoYW5nZXxXb3JrT3JkZXJ8VGVtcGxhdGVPdmVydmlldykiPklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5TZWFyY2guT3BlblNlYXJjaERpYWxvZygnQWdlbnRJVFNNQ2hhbmdlU2VhcmNoJyk8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVNlYXJjaCMjI1NlYXJjaENTVkRhdGEiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGF0YSB1c2VkIHRvIGV4cG9ydCB0aGUgc2VhcmNoIHJlc3VsdCBpbiBDU1YgZm9ybWF0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+Q2hhbmdlTnVtYmVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Q2hhbmdlVGl0bGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5DaGFuZ2VCdWlsZGVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+V29ya09yZGVyQ291bnQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5DaGFuZ2VTdGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPlByaW9yaXR5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+UGxhbm5lZFN0YXJ0VGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPlBsYW5uZWRFbmRUaW1lPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRIVE1MRmllbGRIZWlnaHREZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlWm9vbTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeWzAtOV17MSw0fSQiPjEwMDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SFRNTEZpZWxkSGVpZ2h0TWF4IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpJVFNNQ2hhbmdlWm9vbTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeWzAtOV17MSw1fSQiPjI1MDA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6QWdlbnQ6OkNvbW1vbkpTIyMjMTAwLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxpc3Qgb2YgSlMgZmlsZXMgdG8gYWx3YXlzIGJlIGxvYWRlZCBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpCYXNlOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ0FCTWVtYmVyU2VhcmNoLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+SVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LlNlYXJjaC5qczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Vc2VyU2VhcmNoLmpzPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJFdmVudHMjIyNJVFNNQ2hhbmdlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW48L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+Q2hhbmdlQWRkUHJlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Q2hhbmdlQWRkUG9zdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNoYW5nZVVwZGF0ZVByZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNoYW5nZVVwZGF0ZVBvc3Q8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5DaGFuZ2VDQUJVcGRhdGVQcmU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5DaGFuZ2VDQUJVcGRhdGVQb3N0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Q2hhbmdlQ0FCRGVsZXRlUHJlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Q2hhbmdlQ0FCRGVsZXRlUG9zdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNoYW5nZURlbGV0ZVByZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNoYW5nZURlbGV0ZVBvc3Q8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5DaGFuZ2VBdHRhY2htZW50QWRkUG9zdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNoYW5nZUF0dGFjaG1lbnREZWxldGVQb3N0PC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJFdmVudHMjIyNJVFNNV29ya09yZGVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxpc3Qgb2YgYWxsIHdvcmtvcmRlciBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW48L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5Xb3JrT3JkZXJBZGRQcmU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5Xb3JrT3JkZXJBZGRQb3N0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+V29ya09yZGVyVXBkYXRlUHJlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+V29ya09yZGVyVXBkYXRlUG9zdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPldvcmtPcmRlckRlbGV0ZVByZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPldvcmtPcmRlckRlbGV0ZVBvc3Q8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5Xb3JrT3JkZXJBdHRhY2htZW50QWRkUG9zdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPldvcmtPcmRlckF0dGFjaG1lbnREZWxldGVQb3N0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+V29ya09yZGVyUmVwb3J0QXR0YWNobWVudEFkZFBvc3Q8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5Xb3JrT3JkZXJSZXBvcnRBdHRhY2htZW50RGVsZXRlUG9zdDwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTUNoYW5nZTo6RXZlbnRNb2R1bGUjIyMxMDAwLUdlbmVyaWNJbnRlcmZhY2UiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpFdmVudDo6SVRTTUNoYW5nZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6RXZlbnQ6OkhhbmRsZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRyYW5zYWN0aW9uIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFdmVudCI+PC9JdGVtPjwhLS0gcnVuIG9uIGFsbCBldmVudHMgLS0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSVRTTVdvcmtPcmRlcjo6RXZlbnRNb2R1bGUjIyMxMDAwLUdlbmVyaWNJbnRlcmZhY2UiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpFdmVudDo6SVRTTVdvcmtPcmRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6RXZlbnQ6OkhhbmRsZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRyYW5zYWN0aW9uIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFdmVudCI+PC9JdGVtPjwhLS0gcnVuIG9uIGFsbCBldmVudHMgLS0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6OkFkbWluTW9kdWxlR3JvdXBzIyMjMjAwLUlUU01DaGFuZ2VNYW5hZ2VtZW50IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgYXZhaWxhYmxlIGdyb3VwcyBmb3IgdGhlIGFkbWluIG92ZXJ2aWV3IHNjcmVlbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpCYXNlOjpOYXZCYXJNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlU2V0dGluZ3MiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSBTZXR0aW5nczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJPcmRlciI+OTAwMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgo8L290cnNfY29uZmlnPgo=</File>
        <File Permission="660" Location="Kernel/GenericInterface/Event/ObjectType/ITSMChange.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6OkV2ZW50OjpPYmplY3RUeXBlOjpJVFNNQ2hhbmdlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6RXZlbnQ6Ok9iamVjdFR5cGU6OklUU01DaGFuZ2UgLSBHZW5lcmljSW50ZXJmYWNlIGV2ZW50IGRhdGEgaGFuZGxlcgoKPWhlYWQxIERFU0NSSVBUSU9OCgpUaGlzIGV2ZW50IGhhbmRsZXIgZ2F0aGVycyBkYXRhIGZyb20gb2JqZWN0cy4KCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIEFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgRGF0YUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhEYXRhKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJElEID0gJFBhcmFte0RhdGF9LT57Q2hhbmdlSUR9OwoKICAgIGlmICggISRJRCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgQ2hhbmdlSUQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAlT2JqZWN0RGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkSUQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgcmV0dXJuICVPYmplY3REYXRhOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="Kernel/GenericInterface/Event/ObjectType/ITSMWorkOrder.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6OkV2ZW50OjpPYmplY3RUeXBlOjpJVFNNV29ya09yZGVyOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6RXZlbnQ6Ok9iamVjdFR5cGU6OklUU01Xb3JrT3JkZXIgLSBHZW5lcmljSW50ZXJmYWNlIGV2ZW50IGRhdGEgaGFuZGxlcgoKPWhlYWQxIERFU0NSSVBUSU9OCgpUaGlzIGV2ZW50IGhhbmRsZXIgZ2F0aGVycyBkYXRhIGZyb20gb2JqZWN0cy4KCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIEFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgRGF0YUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhEYXRhKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJElEID0gJFBhcmFte0RhdGF9LT57V29ya09yZGVySUR9OwoKICAgIGlmICggISRJRCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgV29ya09yZGVySUQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAlT2JqZWN0RGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckdldCgKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkSUQsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7CgogICAgcmV0dXJuICVPYmplY3REYXRhOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="Kernel/Language/ar_SA_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6YXJfU0FfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAn2KfZhNmD2YQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmFja291dCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzIGZyb20gdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgb2YgdGlja2V0cywgd2hlcmUgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgYSBsaW5rIHRvIGFkZCBhIGNoYW5nZSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/bg_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6YmdfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICfQmtC70LDRgdC+0LLQtSDQsiDQutCw0YLQsNC70L7Qs9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIG5leHQgc3RhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB0aW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBDQUIgYXMgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgY29uZGl0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGNvbmRpdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0b3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEFjdGlvbnMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBkZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBBZHZpc29yeSBCb2FyZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoZS5nLiAxMCo1MTU1IG9yIDEwNTY1OCopJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmV0d2VlbiknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAn0J/QvtGB0LvQtdC00L3QsCDQv9GA0L7QvNGP0L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgd29ya29yZGVyIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcG9yYXJ5IGNoYW5nZSB3aWxsIGJlIGNyZWF0ZWQgd2hpY2ggY29udGFpbnMgdGhlIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB3b3Jrb3JkZXIgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIFdvcmtvcmRlci4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgQ29uZGl0aW9uISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGFrZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCBjaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgRXhwcmVzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBkb2VzIG5vdCBoYXZlIGFuIGFsbG93ZWQgY2hhbmdlIHN0YXRlIHRvIGJlIGRlbGV0ZWQhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRTdGFydFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICfQstGB0LjRh9C60LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmFja291dCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICfQlNGA0YPQs9C4INC90LDRgdGC0YDQvtC50LrQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/ca_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6Y2FfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAndG90JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBsZXNzIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgV29ya29yZGVyIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIHdvcmtvcmRlciB0ZW1wbGF0ZXMgZWRpdGVkIGJ5IHRoaXMgdXNlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBudW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBFZGl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIChmcm9tIHRlbXBsYXRlKSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2V0IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGF0IG9ubHkgY2hhbmdlcyBjb250YWluaW5nIFdvcmtvcmRlcnMgbGlua2VkIHdpdGggc2VydmljZXMsIHdoaWNoIHRoZSBjdXN0b21lciB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB3aWxsIGJlIHNob3duLiBBbnkgb3RoZXIgY2hhbmdlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHJlcG9ydCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkRhdGUiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFBJUiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2Ugbm90aWZpY2F0aW9uIHJ1bGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnQWx0cmVzIGNvbmZpZ3VyYWNpb25zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQU0EnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBvYmplY3QgaW4gdGhlIHByZWZlcmVuY2UgdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIGNoYW5nZXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmZvcm1zIHRoZSBjb25maWd1cmVkIGFjdGlvbiBmb3IgZWFjaCBldmVudCAoYXMgYW4gSW52b2tlcikgZm9yIGVhY2ggY29uZmlndXJlZCBXZWJzZXJ2aWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjaGFuZ2UgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2VzXCcgQ0FCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgaW52b2x2ZWQgcGVyc29ucyBvZiBhIGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIG1vdmUgY2hhbmdlcyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgYSBDQUIgbWVtYmVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBvdmVydmlldyBvdmVyIGFsbCB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHdyaXRlIGEgcmVwb3J0IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1J1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NyZWVuIGFmdGVyIGNyZWF0aW5nIGEgd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkF1dG9JbmNyZW1lbnQiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBEZWZhdWx0IGlzIDUsIHRoaXMgbWVhbnMgdGhlIGNvdW50ZXIgc3RhcnRzIGZyb20gMTAwMDAuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3IgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBjaGVja2JveCBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGlmIHRoZSB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGFsc28gYmUgbW92ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgbW9kaWZpZWQgYW5kIHRoZSBwbGFubmVkIGVuZCB0aW1lIGhhcyBjaGFuZ2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBjaGFuZ2luZyB0aGUgd29ya29yZGVyIGFnZW50LCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBlZGl0aW5nIHRoZSByZXBvcnQgb2YgYSB3b3Jrb3JkZXIsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRha2luZyBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGNvbmRpdGlvbnMgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhZGQgYSB3b3Jrb3JkZXIgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgd29ya29yZGVyIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgd29ya29yZGVyIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZCAoZnJvbSB0ZW1wbGF0ZSkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/cs_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6Y3NfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0thdGVnb3JpZSDihpQgRG9wYWQg4oaUIFByaW9yaXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgcHJpb3JpdHkgcmVzdWx0IG9mIGNvbWJpbmF0aW5nIENhdGVnb3J5IOKGlCBJbXBhY3QuJ30gPQogICAgICAgICdTcHJhdm92YXQgcHJpb3JpdG7DrSB2w71zbGVkZWsga29tYmluYWNlIEthdGVnb3JpZSDihpQgRG9wYWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICdBbG9rYWNlIHByaW9yaXQnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICdJVFNNIMWYw616ZW7DrSB6bcSbbiBTcHLDoXZjZSB1cG96b3JuxJtuw60nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnUMWZaWRhdCBub3RpZmlrYcSNbsOtIHByYXZpZGxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICdVcHJhdml0IG5vdGlmaWthxI1uw60gcHJhdmlkbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ05vdGlmaWthY2UgYnkgbcSbbGEgbcOtdCBuw6F6ZXYhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05hbWUgaXMgcmVxdWlyZWQuJ30gPSAnTsOhemV2IGplIHBvdmlubsO9Lic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICdBZG1pbmlzdHJhY2UgU3RhdGUgTWFjaGluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYSBjYXRhbG9nIGNsYXNzISd9ID0gJ1Z5YmVyIHTFmcOtZHUga2F0YWxvZ3UhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0YWxvZyBjbGFzcyBpcyByZXF1aXJlZCEnfSA9ICdUxZnDrWRhIGthdGFsb2d1IGplIHBvdmlubsOhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnUMWZaWRhdCBwxZllY2hvZCBzdGF2dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnVMWZw61kYSBrYXRhbG9ndSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPYmplY3QgTmFtZSd9ID0gJ07DoXpldiBvYmpla3R1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAnUMWZZWhsZWQgcMWZZWNob2TFryBzdGF2xa8gcHJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdPZHN0cmFuaXQgdGVudG8gcMWZZWNob2Qgc3RhdnUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnUMWZaWRhdCBub3bDvSBwxZllY2hvZCBzdGF2dSBwcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJ1Z5YmVydGUgcHJvc8OtbSBzdGF2ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICdWeWJlcnRlIHByb3PDrW0gZGFsxaHDrSBzdGF2ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICdVcHJhdml0IHDFmWVjaG9kIHN0YXZ1IHBybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJ1DFmWlkYXQgWm3Em251JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnWm3Em25hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICdEb3BhZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnB1dCBpbnZhbGlkLid9ID0gJ05lcGxhdG7DvSB2c3R1cCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgRGF0ZSd9ID0gJ1Bvxb5hZG92w6Fuw6kgZGF0dW0nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnVnliZXJ0ZSDFoWFibG9udSB6bcSbbnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAnVHlwIMSNYXN1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSB0eXBlLid9ID0gJ05lcGxhdG7DvSB0eXAgxI1hc3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICdOb3bDvSDEjWFzJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBDQUIgYXMgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnTmVwbGF0bsOtIGptw6lubyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbnMgYW5kIEFjdGlvbnMnfSA9ICdQb2Rtw61ua3kgYWtjZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnU21hemF0IHBkb23DrW5rdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJ1DFmWlkYXQgbm92b3UgcG9kbcOtbmt1JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJ1BvdMWZZWJ1amkgcGxhbsOpIGptw6lubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICdEdXBsaWNpdG7DrSBqbcOpbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGNvbmRpdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICdTaG9kdWplJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FueSBleHByZXNzaW9uIChPUiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb25zJ30gPSAnVsO9cmF6eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJ1ZvbGl0ZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICdPcGVyw6F0b3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICdTbWF6YXQgdsO9cmF6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEV4cHJlc3Npb25zIGZvdW5kLid9ID0gJ05lbmFsZXplIMW+w6FkbsO9IHbDvXJheic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGV4cHJlc3Npb24nfSA9ICdQxZlpZGF0IG5vdsO9IHbDvXJheic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAnU21hemF0IGFrY2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICduZW5hbGV6ZW5hIMW+w6FkbsOhIGFrY2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICdQxZlpZGF0IG5vdm91IGFrY2knOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJ09wcmF2ZHUgY2hjZXRlIHNtYXphdCB0dXRvIHptxJtudSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICdQcmFjb3Zuw60gw7prb2wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICdab2JyYXppdCBkZXRhaWx5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnWm9icmF6aXQgcHJhY292bsOtIMO6a29sJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnVXByYXZlbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnU3RhcsOhIGhvZG5vdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFZhbHVlJ30gPSAnTm92w6EgaG9kbm90YSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICdaYXBvamVuw6kgb3NvYnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJ01hbmHFmWVyIHptxJtueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnTmVwbGF0bsO9IHXFvml2YXRlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVyJ30gPSAnVHbFr3JjZSB6bcSbbnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnUG9yYWRuw60gdsO9Ym9yIHBybyB6bcSbbnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIFRlbXBsYXRlJ30gPSAnQ0FCIMWgYWJsb25hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnQXBsaWtvdmF0IMWhYWJsb251JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAnTm92w6EgxaFhYmxvbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ1Vsb8W+aXQgQ0FCIGpha28gxaFhYmxvbnUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRvIENBQid9ID0gJ1DFmWlkYXQgZG8gQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJ05lcGxhdG7DvSB1xb5pdmF0ZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICdha3R1w6FsbsOtIENBQic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAnWm3Em24gbmEgc3Ryw6Fua3UnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICdUdsWvcmNlIHptxJtueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTWFuYWdlcid9ID0gJ01hbmHFvmVyIHptxJtueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAnUHJhY292bsOtIMO6a29seSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnUG/FvmFkb3ZhbsO9IMSNYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIEVuZCBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAnT3ByYXZ1IGNoY2V0ZSByZXNldG92YXQgem3Em251Pyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnWm3Em25pdCBrYXRlZ29yaWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJlZm9yZS9hZnRlciknfSA9ICcocMWZZWQvcG8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyhtZXppKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICdVbG/Fvml0IHptxJtudSBqYWtvIMWhYWJsb251JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ8WgYWJsb25hIGJ5IG3Em2xhIG9ic2Fob3ZhdCBqbcOpbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuJ30gPSAnSm3DqW5vaCDFoWFibG9ueSBqZSB2ecW+YWRvdsOhbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAnUmVzZXRvdmF0IHN0YXZ5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJ1DFmWVwc2F0IG9yaWdpbsOhbG7DrSDFoWFibG9udSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnU21hemF0IG9yaWdpbsOhbG7DrSDFoWFibG9udSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QnfSA9ICdQxZllc3Vub3V0IMSNYXNvdsO9IHNsb3QnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluZm9ybWF0aW9uJ30gPSAnSW5mb3JtYWNlIG8gem3Em27Emyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnWm3Em25vdsO9IMW+YWRhdGVsKMOpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICdDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAnTmFwb3NsZWR5IHptxJtuxJtuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDQUIgVGVtcGxhdGUnfSA9ICd1cHJhdml0IENBQiDFoWFibG9udSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJ0NoY2V0ZSBwb2tyYcSNb3ZhdD8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbnRlbnQnfSA9ICdVcHJhdml0IG9ic2FoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICdJbnN0cnVrY2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB3b3Jrb3JkZXIgdHlwZS4nfSA9ICdOZXBsYXRuw70gdHlwIHByYWNvdm7DrSDDumtvbHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAnTmVwYWx0bsO9IGZvcm3DoXQnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgV29ya29yZGVyIFRlbXBsYXRlJ30gPSAnVnlicmF0IMWhYWJsb251IHByYWNvdm7DrWhvIMO6a29sdSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/J30gPSAnT3ByYXZkdSBjaGNldGUgc21hemF0IHRlbnRvIHByYWNvdm7DrSDDumtvbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJ1JlcG9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICdBa3R1w6FsbsOtIMWZZcWhaXRlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICdPcHJhdmR1IHNpIHDFmWVqZXRlIHDFmWV2esOtdCB0ZW50byBwcmFjb3Zuw60gw7prb2w/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJ1Vsb8W+aXQgcHJhY292bsOtIMO6a29sIGpha28gxaFhYmxvbnUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknfSA9ICdTbWF6YXQgb3JpZ2luw6FsIHByYWNvdm7DrWhvIMO6a29sdSAodsSNZXRuxJsgdsWhZWNoIG9rb2xuw61jaCB6bcSbbnkpJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCBjaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgRXhwcmVzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBkb2VzIG5vdCBoYXZlIGFuIGFsbG93ZWQgY2hhbmdlIHN0YXRlIHRvIGJlIGRlbGV0ZWQhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnUHJhY292bsOtIMO6a29sJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJ8SMw61zbG8gcHJhY292bsOtaG8gw7prb2x1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclRpdGxlJ30gPSAnTmFkcGlzIHByYWNvdm7DrWhvIMO6a29sdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJ1N0YXYgem3Em255JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICdQbMOhbm92YW7DvSBwcmFjbm9zdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJ1Bvxb5hZG92YW7DvSDEjWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRTdGFydFRpbWUnfSA9ICdQb8W+YWRvdmFuw70gemHEjcOhdGXEjW7DvSDEjWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnUG/FvmFkb3ZhbsO9IGtvbmXEjW7DvSDEjWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJ0FrdHXDoWxuw60gemHEjcOhdGXEjW7DvSDEjWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICdBa3R1w6FsbsOtIGtvbmXEjW7DvSDEjWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICfEjGFzIHptxJtueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICfEjMOtc2xvIHptxJtueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZSd9ID0gJ1N0YXYgcHJhY292bsOtaG8gw7prb2x1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICdUeXAgcHJhY292bsOtaG8gw7prb2x1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50J30gPSAnxZhlxaFpdGVsIHByYWNvdm7DrWhvw7prb2x1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIE92ZXJ2aWV3ICglcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVJlc2V0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICdOYWRwaXMgem3Em255JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlcnMnfSA9ICdQcmFjb3Zuw60gw7prb2x5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnTcOpIENBQnknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJ03DqSB6bcSbbnknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAndsWhZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICdrdGVyw71rb2xpdic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnemHFvsOhZMOhbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJ8SNZWvDoSBuYSBzY2h2w6FsZW7DrSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJ3phbcOtdG51dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICdzY2h2w6FsZW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAndiBwcm9jZXN1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICfDunNwxJvFoW7DvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICduZcO6c3DEm8WhbsO9JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnc3Rvcm5vdsOhbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICd2eXR2xZllbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICdwxZlpamF0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJ3DFmWlwcmF2ZW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAnc2NodmFsdWplJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJ3ByYWNvdm7DrSDDumtvbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAncm96aG9kbnV0w60nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJ2plJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJ25lbsOtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnamUgcHLDoXpkbsO9JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJ25lbsOtIHByw6F6ZG7DvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICdqZSB2xJt0xaHDrSBuZcW+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJ2plIG3DqW7EmyBuZcW+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJ2plIHDFmWVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnamUgcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICdvYnNhaHVqZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICduZW9ic2FodWonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVnaW5zIHdpdGgnfSA9ICd6YcSNw61uYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICdrb27EjcOtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJ25hc3RhdmVubyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJ1DFmWlkYXQgcHJhY292bsOtIMO6a29sJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnUMWZaWRhdCB6IMWhYWJsb255JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICdBZG1pbmlzdHJhY2Ugc3RhdGUgbWFjaGluZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICdQbMOhbiB6bWVueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICdVcHJhdml0IHptxJtudSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlJ30gPSAnVnl0dm/FmWl0IHptxJtudSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnWm3Em255JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJ1ptxJtuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnUHJhY292bsOtIMO6a29sJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICdOb3bDvSAoeiDFoWFibG9ueSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICdPc3RhdG7DrSBuYXN0YXZlbsOtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQU0EnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBvYmplY3QgaW4gdGhlIHByZWZlcmVuY2UgdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIGNoYW5nZXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmZvcm1zIHRoZSBjb25maWd1cmVkIGFjdGlvbiBmb3IgZWFjaCBldmVudCAoYXMgYW4gSW52b2tlcikgZm9yIGVhY2ggY29uZmlndXJlZCBXZWJzZXJ2aWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjaGFuZ2UgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2VzXCcgQ0FCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgaW52b2x2ZWQgcGVyc29ucyBvZiBhIGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIG1vdmUgY2hhbmdlcyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgYSBDQUIgbWVtYmVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBvdmVydmlldyBvdmVyIGFsbCB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHdyaXRlIGEgcmVwb3J0IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1J1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NyZWVuIGFmdGVyIGNyZWF0aW5nIGEgd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnVnlobGVkYXQgem3Em255JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkF1dG9JbmNyZW1lbnQiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBEZWZhdWx0IGlzIDUsIHRoaXMgbWVhbnMgdGhlIGNvdW50ZXIgc3RhcnRzIGZyb20gMTAwMDAuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3IgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBjaGVja2JveCBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGlmIHRoZSB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGFsc28gYmUgbW92ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgbW9kaWZpZWQgYW5kIHRoZSBwbGFubmVkIGVuZCB0aW1lIGhhcyBjaGFuZ2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBjaGFuZ2luZyB0aGUgd29ya29yZGVyIGFnZW50LCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBlZGl0aW5nIHRoZSByZXBvcnQgb2YgYSB3b3Jrb3JkZXIsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRha2luZyBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGNvbmRpdGlvbnMgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhZGQgYSB3b3Jrb3JkZXIgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgd29ya29yZGVyIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgd29ya29yZGVyIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICdWesOtdCBwcmFjb3Zuw60gw7prb2wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICdQxZllZGxlZCDFoWFibG9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/da_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGFfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdLYXRhbG9nIEtsYXNzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPYmplY3QgTmFtZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIHN0YXRlIHRyYW5zaXRpb25zIGZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgc3RhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnB1dCBpbnZhbGlkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgRGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBDaGFuZ2UgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSB0eXBlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIHRvIGludm9sdmVkIHBlcnNvbnMgc2NyZWVuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgTmFtZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbnMgYW5kIEFjdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENvbmRpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbmRpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGEgdmFsaWQgbmFtZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBuYW1lIGlzIG5lZWRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHVwbGljYXRlIG5hbWU6J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbmFtZSBpcyBhbHJlYWR5IHVzZWQgYnkgYW5vdGhlciBjb25kaXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hdGNoaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FueSBleHByZXNzaW9uIChPUiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdG9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZXJhdG9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBFeHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEV4cHJlc3Npb25zIGZvdW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGV4cHJlc3Npb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEFjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBBY3Rpb25zIGZvdW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGFjdGlvbid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjaGFuZ2U/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMnfSA9ICdIaXN0b3JpayBmb3IgJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBkZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBBZHZpc29yeSBCb2FyZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoZS5nLiAxMCo1MTU1IG9yIDEwNTY1OCopJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmV0d2VlbiknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAnU2lkc3Qgw6ZuZHJldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgd29ya29yZGVyIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcG9yYXJ5IGNoYW5nZSB3aWxsIGJlIGNyZWF0ZWQgd2hpY2ggY29udGFpbnMgdGhlIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB3b3Jrb3JkZXIgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIFdvcmtvcmRlci4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgQ29uZGl0aW9uISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGFrZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCBjaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgRXhwcmVzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBkb2VzIG5vdCBoYXZlIGFuIGFsbG93ZWQgY2hhbmdlIHN0YXRlIHRvIGJlIGRlbGV0ZWQhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRTdGFydFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICdhbGxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBsZXNzIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgV29ya29yZGVyIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIHdvcmtvcmRlciB0ZW1wbGF0ZXMgZWRpdGVkIGJ5IHRoaXMgdXNlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBudW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBFZGl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIChmcm9tIHRlbXBsYXRlKSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2V0IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGF0IG9ubHkgY2hhbmdlcyBjb250YWluaW5nIFdvcmtvcmRlcnMgbGlua2VkIHdpdGggc2VydmljZXMsIHdoaWNoIHRoZSBjdXN0b21lciB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB3aWxsIGJlIHNob3duLiBBbnkgb3RoZXIgY2hhbmdlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHJlcG9ydCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkRhdGUiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFBJUiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2Ugbm90aWZpY2F0aW9uIHJ1bGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnQW5kcmUgSW5kc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/de_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGVfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0thdGVnb3JpZSDihpQgQXVzd2lya3VuZyDihpQgUHJpb3JpdMOkdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnVmVyd2FsdGVuIFNpZSBkYXMgUHJpb3JpdMOkdHNlcmdlYm5pcyBkZXIgS29tYmluYXRpb24gdm9uIEthdGVnb3JpZSDihpQgQXVzd2lya3VuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHkgYWxsb2NhdGlvbid9ID0gJ1ByaW9yaXTDpHQgenVvcmRuZW4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICdJVFNNIENoYW5nZU1hbmFnZW1lbnQgQmVuYWNocmljaHRpZ3VuZ3MtVmVyd2FsdHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICdCZW5hY2hyaWNodGlndW5ncy1SZWdlbCBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnQmVuYWNocmljaHRpZ3VuZ3MtUmVnZWwgYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnRWluZSBCZW5hY2hyaWNodGlndW5nIGJlbsO2dGlndCBlaW5lbiBOYW1lbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmFtZSBpcyByZXF1aXJlZC4nfSA9ICdOYW1lIGlzdCBlcmZvcmRlcmxpY2guJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTVN0YXRlTWFjaGluZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gU3RhdGUgTWFjaGluZSd9ID0gJ0FkbWluIFN0YXRlIE1hY2hpbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICdXw6RobGVuIFNpZSBlaW5lIEthdGFsb2ctS2xhc3NlIGF1cyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJ0VpbmUgS2F0YWxvZy1LbGFzc2UgaXN0IGVyZm9yZGVybGljaCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ0hpbnp1ZsO8Z2VuIGVpbmVzIFN0YXR1cy3DnGJlcmdhbmdzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdLYXRhbG9nLUtsYXNzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPYmplY3QgTmFtZSd9ID0gJ09iamVrdC1OYW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAnw5xiZXJzaWNodCDDvGJlciBTdGF0dXMtw5xiZXJnw6RuZ2UgZsO8cic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnRGllc2VuIFN0YXR1cy3DnGJlcmdhbmcgbMO2c2NoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnTmV1ZW4gU3RhdHVzLcOcYmVyZ2FuZyBoaW56dWbDvGdlbiBmw7xyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICdCaXR0ZSB3w6RobGVuIFNpZSBlaW5lbiBTdGF0dXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJ0JpdHRlIHfDpGhsZW4gc2llIGRlbiBGb2xnZS1TdGF0dXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ0VpbmVuIFN0YXR1cy3DnGJlcmdhbmcgYmVhcmJlaXRlbiBmw7xyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdXb2xsZW4gU2llIGRpZXNlbiBTdGF0dXMtw5xiZXJnYW5nIHdpcmtsaWNoIGzDtnNjaGVuPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDaGFuZ2UnfSA9ICdDaGFuZ2UgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UnfSA9ICdJVFNNIENoYW5nZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKdXN0aWZpY2F0aW9uJ30gPSAnQmVncsO8bmR1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICdVbmfDvGx0aWdlIEVpbmdhYmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnV3Vuc2NodGVybWluJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJ0NoYW5nZS1Wb3JsYWdlIGF1c3fDpGhsZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAnWmVpdC1UeXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAnVW5nw7xsdGlnZXIgWmVpdC1UeXAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB0aW1lJ30gPSAnTmV1ZSBaZWl0JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBDQUIgYXMgdGVtcGxhdGUnfSA9ICdEaWVzZW4gQ2hhbmdlLUNBQiBhbHMgVm9ybGFnZSBzcGVpY2hlcm4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICd6dXIgQW5zaWNodCAiQmV0ZWlsaWd0ZSBQZXJzb25lbiIgZ2VoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnVW5nw7xsdGlnZXIgTmFtZSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbnMgYW5kIEFjdGlvbnMnfSA9ICdCZWRpbmd1bmdlbiB1bmQgQWt0aW9uZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENvbmRpdGlvbid9ID0gJ0JlZGluZ3VuZyBsw7ZzY2hlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJ0JlZGluZ3VuZyBoaW56dWbDvGdlbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbmRpdGlvbid9ID0gJ0JlZGluZ3VuZyBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJ0VpbiBnw7xsdGlnZXIgTmFtZSBpc3QgZXJmb3JkZXJsaWNoLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJ0VpbiBnw7xsdGlnZXIgTmFtZSBpc3QgZXJmb3JkZXJsaWNoLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICdEb3BwZWx0ZXIgTmFtZTonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGNvbmRpdGlvbi4nfSA9ICdEaWVzZXIgTmFtZSB3aXJkIGJlcmVpdHMgdm9uIGVpbmVyIGFuZGVyZW4gQmVkaW5ndW5nIHZlcndlbmRldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICfDnGJlcmVpbnN0aW1tdW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FueSBleHByZXNzaW9uIChPUiknfSA9ICdCZWxpZWJpZ2VyIGxvZ2lzY2hlciBBdXNkcnVjayAoT0RFUiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAnQWxsZSBsb2dpc2NoZW4gQXVzZHLDvGNrZSAoVU5EKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJ0xvZ2lzY2hlIEF1c2Ryw7xja2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0b3InfSA9ICdTZWxla3Rvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJ09wZXJhdG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBFeHByZXNzaW9uJ30gPSAnQXVzZHJ1Y2sgbMO2c2NoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAnS2VpbmVuIGxvZ2lzY2hlbiBBdXNkcnVjayBnZWZ1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnTmV1ZW4gbG9naXNjaGVuIEF1c2RydWNrIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICdBa3Rpb24gbMO2c2NoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICdLZWluZSBBa3Rpb25lbiBnZWZ1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICdOZXVlIEFrdGlvbiBoaW56dWbDvGdlbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjaGFuZ2U/J30gPSAnTcO2Y2h0ZW4gU2llIGRpZXNlbiBDaGFuZ2Ugd2lya2xpY2ggbMO2c2NoZW4/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcyd9ID0gJ0JlYXJiZWl0ZW4gJXMlcyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMnfSA9ICdIaXN0b3JpZSB2b24gJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICfDhG5kZXJ1bmdzdmVybGF1Zic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICdBcmJlaXRzYXVmdHJhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnRXJzdGVsbHQgYW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBkZXRhaWxzJ30gPSAnRGV0YWlscyBhbnplaWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJ0FyYmVpdHNhdWZ0cmFnIGFuemVpZ2VuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnRGV0YWlsbGllcnRlIEhpc3RvcmllLUluZm9ybWF0aW9uZW4gdm9uICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnTW9kaWZpemllcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnQWx0ZXIgV2VydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICdOZXVlciBXZXJ0JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJbnZvbHZlZCBQZXJzb25zIG9mICVzJXMnfSA9ICdCZXRlaWxpZ3RlIFBlcnNvbmVuIHZvbiAlcyVzIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52b2x2ZWQgUGVyc29ucyd9ID0gJ0JldGVpbGlndGUgUGVyc29uZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJ0NoYW5nZS1NYW5hZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaW52YWxpZC4nfSA9ICd1bmfDvGx0aWdlciBCZW51dHplci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcid9ID0gJ0NoYW5nZUJ1aWxkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnQ2hhbmdlLUFkdmlzb3J5LUJvYXJkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJ0NBQi1Wb3JsYWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnVm9ybGFnZSBhbndlbmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJ05ldWUgVm9ybGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnRGllc2VzIENBQiBhbHMgVm9ybGFnZSBzcGVpY2hlcm4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRvIENBQid9ID0gJ1p1bSBDQUIgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnVW5nw7xsdGlnZXIgQmVudXR6ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICdBa3R1ZWxsZXMgQ0FCJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnS29udGV4dC1FaW5zdGVsbHVuZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICdDaGFuZ2VzIHBybyBTZWl0ZSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICdBcmJlaXRzYXVmdHJhZ3MtVGl0ZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnQ2hhbmdlLVRpdGVsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJ0FyYmVpdHNhdWZ0cmFncy1BZ2VudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJ0NoYW5nZS1CdWlsZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnQ2hhbmdlLU1hbmFnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJ0FyYmVpdHNhdWZ0csOkZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnQ2hhbmdlLVN0YXR1cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgU3RhdGUnfSA9ICdBcmJlaXRzYXVmdHJhZ3MtU3RhdHVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnQXJiZWl0c2F1ZnRyYWdzLVR5cCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJ1d1bnNjaHRlcm1pbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIFN0YXJ0IFRpbWUnfSA9ICdHZXBsYW50ZSBTdGFydHplaXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJ0dlcGxhbnRlIEVuZHplaXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICdUYXRzw6RjaGxpY2hlIFN0YXJ0emVpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICdUYXRzw6RjaGxpY2hlIEVuZHplaXQnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICdNw7ZjaHRlbiBTaWUgZGllc2VuIENoYW5nZSB3aXJrbGljaCB6dXLDvGNrc2V0emVuPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcoei4gQi4gMTAqNTE1NSBvciAxMDU2NTgqKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICdDQUItQWdlbnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS5nLid9ID0gJ3ouIEIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJ0NBQi1LdW5kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJ0lUU00gQXJiZWl0c2F1ZnRyYWdzLUFud2Vpc3VuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBSZXBvcnQnfSA9ICdJVFNNIEFyYmVpdHNhdWZ0cmFncy1CZXJpY2h0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAnSVRTTSBDaGFuZ2UtUHJpb3JpdMOkdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICdJVFNNIENoYW5nZS1BdXN3aXJrdW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDYXRlZ29yeSd9ID0gJ0lUU00gQ2hhbmdlLUthdGVnb3JpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyh2b3IvbmFjaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnKHp3aXNjaGVuKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICdDaGFuZ2UgYWxzIFZvcmxhZ2Ugc3BlaWNoZXJuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ0VpbmUgVm9ybGFnZSBiZW7DtnRpZ3QgZWluZW4gTmFtZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJ0RlciBWb3JsYWdlbi1OYW1lIGlzdCBlcmZvcmRlcmxpY2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IFN0YXRlcyd9ID0gJ1NldHplIFN0YXR1cyB6dXLDvGNrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJ09yaWdpbmFsdm9ybGFnZSDDvGJlcnNjaHJlaWJlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnT3JpZ2luYWwtQ2hhbmdlIGzDtnNjaGVuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJ1plaXRmZW5zdGVyIHZlcnNjaGllYmVuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJ0NoYW5nZS1JbmZvcm1hdGlvbmVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRWZmb3J0J30gPSAnR2VwbGFudGVyIEF1ZndhbmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICdHZWJ1Y2h0ZSBaZWl0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3IocyknfSA9ICdDaGFyZ2UtSW5pdGlhdG9yKGVuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICdDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAnWnVsZXR6dCBnZcOkbmRlcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnWnVsZXR6dCBnZcOkbmRlcnQgdm9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnVW0gZGllIExpbmtzIGltIGZvbGdlbmRlbiBCZWl0cmFnIHp1IMO2ZmZuZW4sIGthbm4gZXMgbm90d2VuZGlnIHNlaW4gU3RyZyBvZGVyIFNoaWZ0IHp1IGRyw7xja2VuLCB3w6RocmVuZCBhdWYgZGVuIExpbmsgZ2VrbGlja3Qgd2lyZCAoYWJow6RuZ2lnIHZvbSB2ZXJ3ZW5kZXRlbiBCcm93c2VyIHVuZCBCZXRyaWVic3N5c3RlbSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICdBbmhhbmcgaGVydW50ZXJsYWRlbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnQ0FCLVZvcmxhZ2UgYmVhcmJlaXRlbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ0RpZXMgZXJzdGVsbHQgZWluZW4gbmV1ZW4gQ2hhbmdlIGF1cyBkaWVzZXIgVm9ybGFnZSwgZGllIFNpZSBiZWFyYmVpdGVuIHVuZCBzcGVpY2hlcm4ga8O2bm5lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5ldyBjaGFuZ2Ugd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgaXQgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICdEZXIgbmV1ZSBDaGFuZ2Ugd2lyZCBhdXRvbWF0aXNjaCBnZWzDtnNjaHQsIG5hY2hkZW0gZGllc2VyIGFscyBWb3JsYWdlIGdlc3BlaWNoZXJ0IHd1cmRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ0RpZXNlcyB3aXJkIGVpbmVuIG5ldWVuIEFyYmVpdHNhdWZ0cmFnIGF1cyBkaWVzZXIgVm9ybGFnZSBlcnN0ZWxsZW4sIFNpZSBrw7ZubmVuIGRpZXNlIGJlYXJiZWl0ZW4gdW5kIHNwZWljaGVybi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wb3JhcnkgY2hhbmdlIHdpbGwgYmUgY3JlYXRlZCB3aGljaCBjb250YWlucyB0aGUgd29ya29yZGVyLid9ID0KICAgICAgICAnRXMgd2lyZCBlaW4gdGVtcG9yw6RyZXIgQ2hhbmdlIGVyc3RlbGx0LCBkZXIgZGVuIEFyYmVpdHNhdWZ0cmFnIGVudGjDpGx0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnRGVyIHRlbXBvcsOkcmUgQ2hhbmdlIHVuZCBkZXIgbmV1ZSBBcmJlaXRzYXVmdHJhZyB3ZXJkZW4gYXV0b21hdGlzY2ggZ2Vsw7ZzY2h0LCBuYWNoZGVtIGRlciBBcmJlaXRzYXVmdHJhZyBhbHMgVm9ybGFnZSBnZXNwZWljaGVydCB3dXJkZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nfSA9ICdNw7ZjaHRlbiBTaWUgZm9ydGZhaHJlbj8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJ1ZvcmxhZ2VuLUlEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJ0luaGFsdCBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJ0Vyc3RlbGx0IHZvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICdHZcOkbmRlcnQgdm9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnWmVpdCDDpG5kZXJuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnQXJiZWl0c2F1ZnRyYWcgenUgJXMlcyBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnN0cnVjdGlvbid9ID0gJ0Fud2Vpc3VuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJ3VuZ8O8bHRpZ2VyIEFyYmVpdHNhdWZ0cmFncy1UeXAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnRGllIGdlcGxhbnRlIFN0YXJ0emVpdCBtdXNzIHZvciBkZXIgZ2VwbGFudGVuIEVuZHplaXQgbGllZ2VuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdC4nfSA9ICdVbmfDvGx0aWdlcyBGb3JtYXQuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJ0FyYmVpdHNhdWZ0cmFncy1Wb3JsYWdlIGF1c3fDpGhsZW4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICdBcmJlaXRzYXVmdHJhZ3MtQWdlbnQgdm9uICVzJXMgYmVhcmJlaXRlbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/J30gPSAnTcO2Y2h0ZW4gU2llIGRpZXNlbiBBcmJlaXRzYXVmdHJhZyB3aXJrbGljaCBsw7ZzY2hlbj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICdTaWUga8O2bm5lbiBkaWVzZW4gQXJiZWl0c2F1ZnRyYWcgbmljaHQgbMO2c2NoZW4uIEVyIHdpcmQgaW4gbWluZGVzdGVucyBlaW5lciBCZWRpbmd1bmcgdmVyd2VuZGV0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnRGllc2VyIEFyYmVpdHNhdWZ0cmFnIGZpbmRldCBWZXJ3ZW5kdW5nIGluIGRlbiBmb2xnZW5kZW4gQmVkaW5ndW5nKGVuKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICdCZWFyYmVpdGVuICVzJXMtJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBmb2xsb3dpbmcgd29ya29yZGVycyBhY2NvcmRpbmdseSd9ID0gJ05hY2hmb2xnZW5kZSBBcmJlaXRzYXVmdHLDpGdlIGVudHNwcmVjaGVuZCB2ZXJzY2hpZWJlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGUgcGxhbm5lZCBlbmQgdGltZSBvZiB0aGlzIHdvcmtvcmRlciBpcyBjaGFuZ2VkLCB0aGUgcGxhbm5lZCBzdGFydCB0aW1lcyBvZiBhbGwgZm9sbG93aW5nIHdvcmtvcmRlcnMgd2lsbCBiZSBjaGFuZ2VkIGFjY29yZGluZ2x5J30gPQogICAgICAgICdXZW5uIGRpZSBnZXBsYW50ZSBFbmR6ZWl0IGVpbmVzIEFyYmVpdHNhdWZ0cmFncyBnZcOkbmRlcnQgd2lyZCwgZGFubiB3ZXJkZW4gZGllIG5hY2hmb2xnZW5kZW4gQXJiZWl0c2F1ZnRyw6RnZSBlbnRzcHJlY2hlbmQgdmVyc2Nob2Jlbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICdIaXN0b3JpZSB2b24gJXMlcy0lcyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICdCZXJpY2h0IHZvbiAlcyVzLSVzIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0J30gPSAnQmVyaWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICdEaWUgdGF0c8OkY2hsaWNoZSBTdGFydHplaXQgbXVzcyB2b3IgZGVyIHRhdHPDpGNobGljaGVuIEVuZHplaXQgbGllZ2VuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICdEaWUgdGF0c8OkY2hsaWNoZSBTdGFydHplaXQgbXVzcyBhbmdlZ2ViZW4gd3JlZGVuLCB3ZW5uIGVpbmUgdGF0c8OkY2hsaWNoZSBFbmR6ZWl0IGFuZ2VnZWJlbiB3dXJkZSEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGFrZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBBZ2VudCd9ID0gJ0FrdHVlbGxlciBBZ2VudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICdXb2xsZW4gc2llIGRpZXNlbiBBcmJlaXRzYXVmdHJhZyB3aXJrbGljaCDDvGJlcm5laG1lbj8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAnQXJiZWl0c2F1ZnRyYWcgYWxzIFZvcmxhZ2Ugc3BlaWNoZXJuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnT3JpZ2luYWwtQXJiZWl0c2F1ZnRyYWcgKHVuZCBkZW4gdW1nZWJlbmRlbiBDaGFuZ2UpIGzDtnNjaGVuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJ0FyYmVpdHNhdWZ0cmFncy1JbmZvcm1hdGlvbmVuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBBZGRlZCEnfSA9ICdCZW5hY2hyaWNodGlndW5nIGhpbnp1Z2Vmw7xndCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biBub3RpZmljYXRpb24gJXMhJ30gPSAnVW5iZWthbm50ZSBCZW5hY2hyaWNodGlndW5nICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICdCZWltIEVyc3RlbGxlbiBkZXIgQmVuYWNocmljaHRpZ3VuZyBpc3QgZWluIEZlaGxlciBhdWZnZXRyZXRlbi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJ1N0YXR1cy3DnGJlcmdhbmcgYWt0dWFsaXNpZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJ1N0YXR1cy3DnGJlcmdhbmcgaGluenVnZWbDvGd0ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnw5xiZXJzaWNodDogSVRTTSBDaGFuZ2VzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISd9ID0gJ1RpY2tldCBtaXQgVGlja2V0LU51bW1lciAlcyBpc3QgbmljaHQgdm9yaGFuZGVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICdGZWhsZW5kZSBTeXN0ZW1rb25maWd1cmF0aW9ucy1PcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJ0tvbm50ZSBDaGFuZ2UgbmljaHQgaGluenVmw7xnZW4hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJ30gPSAnS29ubnRlIGtlaW5lbiBDaGFuZ2UgYXVzIFZvcmxhZ2UgZXJzdGVsbGVuISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ0tlaW5lIENoYW5nZS1JRCDDvGJlcm1pdHRlbHQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnS2VpbiBDaGFuZ2UgZsO8ciBDaGFuZ2UtSUQgJXMgZ2VmdW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnRGFzIENBQiB2b24gQ2hhbmdlICIlcyIga29ubnRlIG5pY2h0IHNlcmlhbGlzaWVydCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJ1ZvcmxhZ2Uga29ubnRlIG5pY2h0IGhpbnp1Z2Vmw7xndCB3ZXJkZW4uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICfDhG5kZXJ1bmcgIiVzIiBpbiBkZXIgRGF0ZW5iYW5rIG5pY2h0IGdlZnVuZGVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJ0tvbm50ZSBCZWRpbmd1bmdzLUlEICVzIG5pY2h0IGzDtnNjaGVuISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnS2VpbihlKSAlcyDDvGJlcm1pdHRlbHQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICdLb25udGUga2VpbmUgbmV1ZSBCZWRpbmd1bmcgZXJzdGVsbGVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJ0tvbm50ZSBCZWRpbmd1bmdzLUlEICVzIG5pY2h0IGFrdHVhbGlzaWVyZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJ0tvbm50ZSBBdXNkcnVja3MtSUQgJXMgbmljaHQgdXBkYXRlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgRXhwcmVzc2lvbiEnfSA9ICdOZXVlciBBdXNkcnVjayBrb25udGUgbmljaHQgaGluenVnZWbDvGd0IHdlcmRlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICdLb25udGUgQWt0aW9ucy1JRCBuaWNodCBha3R1YWxpc2llcmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnTmV1ZSBBa3Rpb24ga29ubnRlIG5pY2h0IGhpbnp1Z2Vmw7xndCB3ZXJkZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJ0tvbm50ZSBBdXNkcnVja3MtSUQgJXMgbmljaHQgbMO2c2NoZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnS29ubnRlIEFrdGlvbnMtSUQgJXMgbmljaHQgbMO2c2NoZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICdGZWhsZXI6IFVuYmVrYW5udGVyIEZlbGR0eXAgIiVzIiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICdCZWRpbmd1bmdzLUlEICVzIGdlaMO2cnQgbmljaHQgenVyIGFuZ2VnZWJlbmVuIENoYW5nZS1JRCAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnQ2hhbmdlICIlcyIgaGF0IGtlaW5lbiBlcmxhdWJ0ZW4gQ2hhbmdlLVN0YXR1cyB6dW0gTMO2c2NoZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJ0VzIHdhciBuaWNodCBtw7ZnbGljaCwgZGllIENoYW5nZS1JRCAlcyB6dSBsw7ZzY2hlbiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJ0VzIHdhciBuaWNodCBtw7ZnbGljaCwgZGVuIENoYW5nZSB6dSBha3R1YWxpc2llcmVuISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnS2FubiBIaXN0b3J5IG5pY2h0IGFuemVpZ2VuLCBrZWluZSBDaGFuZ2UtSUQgw7xiZXJtaXR0ZWx0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJ0NoYW5nZSAiJXMiIGluIGRlciBEYXRlbmJhbmsgbmljaHQgZ2VmdW5kZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJ1VuYmVrYW5udGVyIFR5cCAiJXMiIGdlZnVuZGVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJ0NoYW5nZS1IaXN0b3JpZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnS29ubnRlIEhpc3Rvcmllbi1EZXRhaWxzIG5pY2h0IGFuemVpZ2VuLCB3ZWlsIGtlaW5lIEhpc3Rvcmllbi1FaW50cmFncy1JRCDDvGJlcm1pdHRlbHQgd3VyZGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICdIaXN0b3JpZW4tRWludHJhZyAiJXMiIGluIERhdGVuYmFuayBuaWNodCBnZWZ1bmRlbiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnS29ubnRlIENoYW5nZS1DQUIgZsO8ciBDaGFuZ2UgJXMgbmljaHQgYWt0dWFsaXNpZXJlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnS29ubnRlIENoYW5nZSAlcyBuaWNodCBha3R1YWxpc2llcmVuISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICfDnGJlcnNpY2h0OiBDaGFuZ2UtTWFuYWdlcic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICfDnGJlcnNpY2h0OiBNZWluZSBDQUJzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnw5xiZXJzaWNodDogTWVpbmUgQ2hhbmdlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJ8OcYmVyc2ljaHQ6IE1laW5lIEFyYmVpdHNhdWZ0csOkZ2UnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJ8OcYmVyc2ljaHQ6IFBJUic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnw5xiZXJzaWNodDogUFNBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ0FyYmVpdHNhdWZ0cmFnICIlcyIgaW4gRGF0ZW5iYW5rIG5pY2h0IGdlZnVuZGVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICdLb25udGUga2VpbmUgQXVzZ2FiZSBlcnN0ZWxsZW4sIHdlaWwgZGVyIEFyYmVpdHNhdWZ0cmFnIG5pY2h0IGFuIGRlbiBDaGFuZ2UgYW5nZWhhbmdlbiB3dXJkZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ0tvbm50ZSBrZWluZSBBdXNnYWJlIGVyc3RlbGxlbiwgd2VpbCBrZWluZSBDaGFuZ2UtSUQgw7xiZXJtaXR0ZWx0IHd1cmRlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJ3VuYmVrYW5udGVyIENoYW5nZS1UaXRlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJ0lUU00gQXJiZWl0c2F1ZnRyYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyTnVtYmVyJ30gPSAnQXJiZWl0c2F1ZnRyYWctTnVtbWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclRpdGxlJ30gPSAnQXJiZWl0c2F1ZnRyYWdzLVRpdGVsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gd29ya29yZGVyIHRpdGxlJ30gPSAndW5iZWthbm50ZXIgQXJiZWl0c2F1ZnRyYWdzLVRpdGVsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlJ30gPSAnQ2hhbmdlLVN0YXR1cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnR2VwbGFudGVyIEF1ZndhbmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50cyd9ID0gJ0NBQi1BZ2VudGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICdDQUItS3VuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZFRpbWUnfSA9ICdXdW5zY2h0ZXJtaW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZFN0YXJ0VGltZSd9ID0gJ0dlcGxhbnRlciBTdGFydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRW5kVGltZSd9ID0gJ0dlcGxhbnRlcyBFbmRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJ1RhdHPDpGNobGljaGVyIFN0YXJ0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICdUYXRzw6RjaGxpY2hlcyBFbmRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICdDaGFuZ2UtWmVpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICdDaGFuZ2UtTnVtbWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnQXJiZWl0c2F1ZnRyYWctU3RhdHVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICdBcmJlaXRzYXVmdHJhZy1UeXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICdBcmJlaXRzYXVmdHJhZy1BZ2VudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnSVRTTSBBcmJlaXRzYXVmdHJhZy3DnGJlcnNpY2h0ICglcyknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVJlc2V0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnfSA9ICdLb25udGUgQXJiZWl0c2F1ZnRyYWcgJXMgdm9uIENoYW5nZSAlcyBuaWNodCB6dXLDvGNrc2V0emVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJ0tvbm50ZSBDaGFuZ2UgJXMgbmljaHQgenVyw7xja3NldHplbiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAnw5xiZXJzaWNodDogQ2hhbmdlLVplaXRwbGFuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICdDaGFuZ2UtU3VjaGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICdDaGFuZ2UtVGl0ZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ0FyYmVpdHNhdWZ0cmFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnQ2hhbmdlLVN1Y2hlcmdlYm5pc3NlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICdDaGFuZ2UtTnVtbWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICdBcmJlaXRzYXVmdHJhZy1UaXRlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICdDaGFuZ2UtQmVzY2hyZWlidW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnQ2hhbmdlLUJlZ3LDvG5kdW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJ0FyYmVpdHNhdWZ0cmFncy1BbndlaXN1bmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnQXJiZWl0c2F1ZnRyYWdzLUJlcmljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnQ2hhbmdlLVByaW9yaXTDpHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJ0NoYW5nZS1BdXN3aXJrdW5nZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJ0Vyc3RlbGx0IHZvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICdBcmJlaXRzYXVmdHJhZ3MtU3RhdHVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnQXJiZWl0c2F1ZnRyYWdzLVR5cCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICdBcmJlaXRzYXVmdHJhZ3MtQWdlbnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAndm9yJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJ0RlciBDaGFuZ2UgIiVzIiBrb25udGUgbmljaHQgc2VyaWFsaXNpZXJ0IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICdLb25udGUgVm9ybGFnZSAiJXMiIG5pY2h0IGFrdHVhbGlzaWVyZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnS29ubnRlIENoYW5nZSAiJXMiIG5pY2h0IGzDtnNjaGVuLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICdEZXIgQ2hhbmdlIGthbm4gbmljaHQgdmVyc2Nob2JlbiB3ZXJkZW4sIHdlaWwgZXIga2VpbmUgQXJiZWl0c2F1ZnRyw6RnZSBoYXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICdGw7xnZW4gU2llIHp1ZXJzdCBlaW5lbiBBcmJlaXRzYXVmdHJhZyBoaW56dS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICdLYW5uIGVpbmVuIENoYW5nZSBuaWNodCB2ZXJzY2hpZWJlbiwgZGVyIGJlcmVpdHMgZ2VzdGFydGV0IHd1cmRlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnQml0dGUgdmVyc2NoaWViZW4gU2llIHN0YXR0ZGVzc2VuIGRpZSBlaW56ZWxuZW4gQXJiZWl0c2F1ZnRyw6RnZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAnRGVyIGRlcnplaXRpZ2UgJXMga29ubnRlIG5pY2h0IGJlc3RpbW10IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJ0RlciAlcyBhbGxlciBBcmJlaXRzYXVmdHLDpGdlIG11c3MgZGVmaW5pZXJ0IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJ0RlciBUZXJtaW4gZsO8ciBkZW4gQXJiZWl0c2F1ZnRyYWcgIyAlcyBrb25udGUgbmljaHQgdmVyc2Nob2JlbiB3ZXJkZW4hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICdTaWUgYmVuw7Z0aWdlbiBkaWUgJXMgQmVyZWNodGlndW5nISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJ0tlaW5lIFZvcmxhZ2VuLUlEIMO8YmVybWl0dGVsdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnVm9ybGFnZSAiJXMiIGluIERhdGVuYmFuayBuaWNodCBnZWZ1bmRlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnS29ubnRlIGRpZSBWb3JsYWdlICVzIG5pY2h0IGzDtnNjaGVuISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJ0tvbm50ZSBkaWUgVm9ybGFnZSAlcyBuaWNodCBha3R1YWxpc2llcmVuISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnS29ubnRlIGRpZSBWb3JsYWdlICIlcyAibmljaHQgYWt0dWFsaXNpZXJlbiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJ0tvbm50ZSBDaGFuZ2UgbmljaHQgZXJzdGVsbGVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJ0tvbm50ZSBBcmJlaXRzYXVmdHJhZyBhdXMgVm9ybGFnZSBuaWNodCBlcnN0ZWxsZW4hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICfDnGJlcnNpY2h0OiBWb3JsYWdlbic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJ1NpZSBiZW7DtnRpZ2VuICVzIEJlcmVjaHRpZ3VuZ2VuIGbDvHIgZGVuIENoYW5nZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCB3b3Jrb3JkZXIhJ30gPSAnRXMgd2FyIG5pY2h0IG3DtmdsaWNoLCBkZW4gQXJiZWl0c2F1ZnRyYWcgaGluenV6dWbDvGdlbiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICdLZWluZSBBcmJlaXRzYXVmdHJhZ3MtSUQgw7xiZXJtaXR0ZWx0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnS29ubnRlIGRlbiBBcmJlaXRzYXVmdHJhZ3MtQWdlbnQgdm9uIEFyYmVpdHNhdWZ0cmFnICIlcyIgbmljaHQgYXVmIGxlZXIgc2V0emVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICdLb25udGUgQXJiZWl0c2F1ZnRyYWcgIiVzIiBuaWNodCBha3R1YWxpc2llcmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICdLb25udGUgQ2hhbmdlIGbDvHIgQXJiZWl0c2F1ZnRyYWcgJXMgbmljaHQgZmluZGVuISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnS29ubnRlIEFyYmVpdHNhdWZ0cmFnICVzIG5pY2h0IGzDtnNjaGVuISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnS29ubnRlIEFyYmVpdHNhdWZ0cmFnICVzIG5pY2h0IGFrdHVhbGlzaWVyZW4hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICdLYW5uIEhpc3RvcmllIG5pY2h0IGFuemVpZ2VuLCB3ZWlsIGtlaW5lIEFyYmVpdHNhdWZ0cmFncy1JRCDDvGJlcm1pdHRlbHQgd3VyZGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnQXJiZWl0c2F1ZnRyYWcgIiVzIiBpbiBEYXRlbmJhbmsgbmljaHQgZ2VmdW5kZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnQXJiZWl0c2F1ZnRyYWdzLUhpc3RvcmllJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnSGlzdG9yaWVuLUVpbnRyYWcgIiVzIiBpbiBEYXRlbmJhbmsgbmljaHQgZ2VmdW5kZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICdBcmJlaXRzYXVmdHJhZy1IaXN0b3JpZW5kZXRhaWxzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJ0tvbm50ZSBBcmJlaXRzYXVmdHJhZyAlcyBuaWNodCBuZWhtZW4hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJ0RlciBBcmJlaXRzYXVmdHJhZyAiJXMiIGtvbm50ZSBuaWNodCBzZXJpYWxpc2llcnQgd2VyZGVuLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnQmVuw7Z0aWdlIFN5c3RlbWtvbmZpZ3VyYXRpb25zLU9wdGlvbiAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJ1N5c3RlbWtvbmZpZ3VyYXRpb25zLU9wdGlvbiAlcyBtdXNzIGVpbmUgSGFzaC1SZWZlcmVueiBzZWluISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJ0tlaW5lIEtvbmZpZ3VyYXRpb25zb3B0aW9uIGbDvHIgZGllIEFuc2ljaHQgIiVzIiBnZWZ1bmRlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICdUaXRlbDogJXMgfCBUeXA6ICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ0FCcyd9ID0gJ01laW5lIENBQnMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJ01laW5lIENoYW5nZXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICdNZWluZSBBcmJlaXRzYXVmdHLDpGdlJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJXM6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJ05ldWUgQWt0aW9uIChJRD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJ0FrdGlvbiAoSUQ9JXMpIGdlbMO2c2NodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJ0FsbGUgQWt0aW9uZW4gZGVyIEJlZGluZ3VuZyAoSUQ9JXMpIGdlbMO2c2NodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAnQWt0aW9uIChJRD0lcykgYXVzZ2Vmw7xocnQ6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJXMgKEFrdGlvbnMtSUQ9JXMpOiAobmV1PSVzLCBhbHQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJ0NoYW5nZSAoSUQ9JXMpIGhhdCBkaWUgdGF0c8OkY2hsaWNoZSBFbmR6ZWl0IGVycmVpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJ0NoYW5nZSAoSUQ9JXMpIGhhdCBkaWUgdGF0c8OkY2hsaWNoZSBTdGFydHplaXQgZXJyZWljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJ05ldWVyIENoYW5nZSAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJ05ldWVyIEFuaGFuZzogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnR2Vsw7ZzY2h0ZXIgQW5oYW5nICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnQ0FCIGdlbMO2c2NodCAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyVzOiAobmV1PSVzLCBhbHQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJ1Zlcmtuw7xwZnVuZyB6dSAlcyAoSUQ9JXMpIGhpbnp1Z2Vmw7xndCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJ1Zlcmtuw7xwZnVuZyB6dSAlcyAoSUQ9JXMpIGdlbMO2c2NodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJ0JlbmFjaHJpY2h0aWd1bmcgYW4gJXMgZ2VzZW5kZXQgKEVyZWlnbmlzICVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnQ2hhbmdlIChJRD0lcykgaGF0IGRpZSBnZXBsYW50ZSBFbmR6ZWl0IGVycmVpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICdDaGFuZ2UgKElEPSVzKSBoYXQgZGllIGdlcGxhbnRlIFN0YXJ0emVpdCBlcnJlaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICdDaGFuZ2UgKElEPSVzKSBoYXQgZGllIGdld8O8bnNjaHRlIFplaXQgZXJyZWljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJ05ldWUgQmVkaW5ndW5nIChJRD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJ0JlZGluZ3VuZyAoSUQ9JXMpIGdlbMO2c2NodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnQWxsZSBCZWRpbmd1bmdlbiBkZXMgQ2hhbmdlcyAoSUQ9JXMpIGdlbMO2c2NodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQ29uZGl0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyVzIChCZWRpbmd1bmdzLUlEPSVzKTogKG5ldT0lcywgYWx0PSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRXhwcmVzc2lvbiAoSUQ9JXMpJ30gPSAnTmV1ZXIgbG9naXNjaGVyIEF1c2RydWNrIChJRD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdMb2dpc2NoZXIgQXVzZHJ1Y2sgKElEPSVzKSBnZWzDtnNjaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdBbGxlIGxvZ2lzY2hlbiBBdXNkcsO8Y2tlIGRlciBCZWRpbmd1bmcgKElEPSVzKSBnZWzDtnNjaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJXMgKEF1c2RydWNrcy1JRD0lcyk6IChuZXU9JXMsIGFsdD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnQXJiZWl0c2F1ZnRyYWcgKElEPSVzKSBoYXQgZGllIHRhdHPDpGNobGljaGUgRW5kemVpdCBlcnJlaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICdBcmJlaXRzYXVmdHJhZyAoSUQ9KSBoYXQgZGllIHRhdHPDpGNobGljaGUgU3RhcnR6ZWl0IGVycmVpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICdOZXVlciBBcmJlaXRzYXVmdHJhZyAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnTmV1ZXIgQW5oYW5nIGbDvHIgQXJiZWl0c2F1ZnRyYWc6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcoSUQ9JXMpIE5ldWVyIEFuaGFuZyBmw7xyIEFyYmVpdHNhdWZ0cmFnOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnQW5sYWdlIGF1cyBBcmJlaXRzYXVmdHJhZyBnZWzDtnNjaHQ6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyhJRD0lcykgQW5sYWdlIGF1cyBBcmJlaXRzYXVmdHJhZyBnZWzDtnNjaHQ6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJ05ldWVyIEJlcmljaHRzLUFuaGFuZyBmw7xyIEFyYmVpdHNhdWZ0cmFnICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnKElEPSVzKSBOZXVlciBCZXJpY2h0cy1BbmhhbmcgZsO8ciBBcmJlaXRzYXVmdHJhZzogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICdHZWzDtnNjaHRlciBCZXJpY2h0cy1Bbmhhbmcgdm9uIEFyYmVpdHNhdWZ0cmFnOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnKElEPSVzKSBHZWzDtnNjaHRlciBCZXJpY2h0cy1BbmhhbmcgZsO8ciBBcmJlaXRzYXVmdHJhZzogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJ0FyYmVpdHNhdWZ0cmFnIChJRD0lcykgZ2Vsw7ZzY2h0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnKElEPSVzKSBWZXJrbsO8cGZlbiB6dSAlcyAoSUQ9JXMpIGhpbnp1Z2Vmw7xndCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnKElEPSVzKSBWZXJrbsO8cGZlbiB6dSAlcyAoSUQ9JXMpIGdlbMO2c2NodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnKElEPSVzKSBCZW5hY2hyaWNodGlndW5nIGFuICVzIGdlc2VuZGV0IChFcmVpZ25pcyAlcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJ0FyYmVpdHNhdWZ0cmFnIChJRD0lcykgaGF0IGRpZSBnZXBsYW50ZSBFbmR6ZWl0IGVycmVpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICdBcmJlaXRzYXVmdHJhZyAoSUQ9JXMpIGhhdCBkaWUgZ2VwbGFudGUgU3RhcnR6ZWl0IGVycmVpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnKElEPSVzKSAlczogKG5ldT0lcywgYWx0PSVzKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0lUU01Db25kaXRpb24vT2JqZWN0L0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FsbCd9ID0gJ2FsbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAnYmVsaWViaWdlJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJ1ZvcmhlcmlnZXIgQ2hhbmdlLUJ1aWxkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICdWb3JoZXJpZ2VyIENoYW5nZS1NYW5hZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudHMnfSA9ICdBcmJlaXRzYXVmdHJhZ3MtQWdlbnRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICdWb3JoZXJpZ2VyIEFyYmVpdHNhdWZ0cmFncy1BZ2VudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJ0NoYW5nZS1Jbml0aWF0b3Jlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnR3J1cHBlIElUU01DaGFuZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICdHcnVwcGUgSVRTTUNoYW5nZUJ1aWxkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICdHcnVwcGUgSVRTTUNoYW5nZU1hbmFnZXInOwoKICAgICMgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJ0FuZ2VmcmFndCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAnQXVzc3RlaGVuZGUgR2VuZWhtaWd1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICdadXLDvGNrZ2V3aWVzZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICdHZW5laG1pZ3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICdJbiBCZWFyYmVpdHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJ1dhcnRlbmRlciBQSVInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJ0VyZm9sZ3JlaWNoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJ0ZlaGxnZXNjaGxhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnQWJnZWJyb2NoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnWnVyw7xja2dlem9nZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJ0Vyc3RlbGx0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnQW5nZW5vbW1lbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJ0ZlcnRpZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ0dlbmVobWlndW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJ0FyYmVpdHNhdWZ0cmFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICdCYWNrb3V0LVBsYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICdFbnRzY2hlaWR1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJ0NoYW5nZS1TdGF0dXMtSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJ0thdGVnb3JpZS1JRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJ0F1c3dpcmt1bmdzLUlEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICdQcmlvcml0w6R0cy1JRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICdDaGFuZ2UtTWFuYWdlci1JRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICdDaGFuZ2VCdWlsZGVySUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGVJRCd9ID0gJ0FyYmVpdHNhdWZ0cmFncy1TdGF0dXMtSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnQXJiZWl0c2F1ZnRyYWdzLVR5cC1JRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnQXJiZWl0c2F1ZnRyYWdzLUFnZW50LUlEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnaXN0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJ2lzdCBuaWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJ2lzdCBsZWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJ2lzdCBuaWNodCBsZWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJ2lzdCBncsO2c3NlciBhbHMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnaXN0IGtsZWluZXIgYWxzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJ2lzdCB2b3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICdpc3QgbmFjaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJ2VudGjDpGx0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJ2VudGjDpGx0IG5pY2h0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnYmVnaW5udCBtaXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZW5kcyB3aXRoJ30gPSAnZW5kZXQgbWl0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJ3NldHplJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnV29sbGVuIFNpZSBkaWVzZW4gbG9naXNjaGVuIEF1c2RydWNrIHdpcmtsaWNoIGzDtnNjaGVuPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJ1dvbGxlbiBTaWUgZGllc2UgQWt0aW9uIHdpcmtsaWNoIGzDtnNjaGVuPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJ1dvbGxlbiBTaWUgZGllc2UgQmVkaW5ndW5nIHdpcmtsaWNoIGzDtnNjaGVuPyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJ09rJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnRWluZSBMaXN0ZSBkZXIgQWdlbnRlbiwgZGllIEJlcmVjaHRpZ3VuZ2VuIGhhYmVuLCBBcmJlaXRzYXVmdHLDpGdlIHp1IMO8YmVybmVobWVuIGhhYmVuLiAiU2NobMO8c3NlbCIgaXN0IGRlciBBbm1lbGRlbmFtZS4gIkluaGFsdCIgaXN0IDAgb2RlciAxJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAnRWluZSBMaXN0ZSB2b24gQXJiZWl0c2F1ZnRyYWdzLVN0YXR1cywgYmVpIGRlbmVuIGRpZSB0YXRzw6RjaGxpY2hlIFN0YXJ0emVpdCBlaW5lcyBBcmJlaXRzYXVmdHJhZ3MgZmVzdGdlbGVndCB3aXJkLCB3ZW5uIGRpZXNlIHZvcmhlciBuaWNodCBmZXN0Z2VsZWd0IHdhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnVGF0c8OkY2hsaWNoZSBFbmR6ZWl0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnVGF0c8OkY2hsaWNoZSBTdGFydHplaXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJ0FyYmVpdHNhdWZ0cmFnIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnQXJiZWl0c2F1ZnRyYWcgaGluenVmw7xnZW4gKGF1cyBWb3JsYWdlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICdGw7xndCBlaW5lbiBDaGFuZ2UgYXVzIGVpbmVyIFZvcmxhZ2UgaGluenUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICdGw7xndCBlaW5lbiBDaGFuZ2UgaGluenUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICdGw7xndCBlaW5lbiBBcmJlaXRzYXVmdHJhZyAoYXVzIGVpbmVyIFZvcmxhZ2UpIHp1bSBDaGFuZ2UgaGluenUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJ0bDvGd0IGVpbmVuIEFyYmVpdHNhdWZ0cmFnIHp1bSBDaGFuZ2UgaGluenUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnQXVzIFZvcmxhZ2UgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnQWRtaW4gZGVyIENJUC1NYXRyaXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJ0FkbWluIGRlciBTdGF0ZSBNYWNoaW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnQmVuYWNocmljaHRpZ3VuZy1Nb2R1bCBmw7xyIGRhcyBBZ2VudGVuLUludGVyZmFjZSB1bSBkaWUgWmFobCBkZXIgQ2hhbmdlLUFkdmlzb3J5LUJvYXJkcyBhbnp1emVpZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICdCZW5hY2hyaWNodGlndW5nLU1vZHVsIGbDvHIgZGFzIEFnZW50ZW4tSW50ZXJmYWNlLCB1bSBkaWUgWmFobCBkZXIgQ2hhbmdlcyBhbnp1emVpZ2VuIGRpZSB2b20gQmVudXR6ZXIgdmVyd2FsdGV0IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJ0JlbmFjaHJpY2h0aWd1bmctTW9kdWwgZsO8ciBkYXMgQWdlbnRlbi1JbnRlcmZhY2UsIHVtIGRpZSBaYWhsIGRlciBDaGFuZ2VzIGFuenV6ZWlnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICdCZW5hY2hyaWNodGlndW5nLU1vZHVsIGbDvHIgZGFzIEFnZW50ZW4tSW50ZXJmYWNlLCB1bSBkaWUgQW56YWhsIGRlciBBcmJlaXRzYXVmdHLDpGdlIGFuenV6ZWlnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnQ0FCLU1pdGdsaWVkZXJzdWNoZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnQ2FjaGUtWmVpdCBpbiBNaW51dGVuIGbDvHIgZGllIENoYW5nZSBNYW5hZ2VtZW50IFdlcmt6ZXVnbGVpc3RlLiBTdGFuZGFyZDogMyBTdHVuZGVuICgxODAgTWludXRlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJ0NhY2hlLVplaXQgaW4gTWludXRlbiBmw7xyIGRhcyBDaGFuZ2UtTWFuYWdlbWVudC4gU3RhbmRhcmQ6IDUgVGFnZSAoNzIwMCBNaW51dGVuKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICdDaGFuZ2UtQ0FCIFZvcmxhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJ0NoYW5nZS1IaXN0b3JpZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnQ2hhbmdlLUJldGVpbGlndGUgUGVyc29uZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnQ2hhbmdlLcOcYmVyc2ljaHQgTGltaXQgZsO8ciBBbnNpY2h0ICJLbGVpbiInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJ0NoYW5nZS3DnGJlcnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnQ2hhbmdlLUF1c2RydWNrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICdDaGFuZ2UtWmVpdHBsYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICdDaGFuZ2UtRWluc3RlbGx1bmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJ0NoYW5nZS1EZXRhaWxhbnNpY2h0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJ0NoYW5nZS1EZXRhaWxhbnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICdDaGFuZ2UtIHVuZCBBcmJlaXRzYXV0cmFncy1Wb3JsYWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIHdvcmtvcmRlciB0ZW1wbGF0ZXMgZWRpdGVkIGJ5IHRoaXMgdXNlci4nfSA9ICdDaGFuZ2UtIHVuZCBBcmJlaXRzYXVmdHJhZ3MtVm9ybGFnZW4sIGRpZSB2b24gZGllc2VtIEJlbnV0emVyIGdlw6RuZGVydCB3dXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJ0NoYW5nZS1CZXJlaWNoLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJ0RpZSBiZXRlaWxpZ3RlbiBQZXJzb25lbiBkZXMgQ2hhbmdlIMOkbmRlcm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnQW56ZWlnZWxpbWl0IHBybyBTZWl0ZSBmw7xyIGRpZSBDaGFuZ2Utw5xiZXJzaWNodCAiS2xlaW4iLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnQ2hhbmdlLU51bW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnU3VjaC1CYWNrZW5kLVJvdXRlciBmw7xyIGRpZSBDaGFuZ2UtU3VjaGUgaW4gZGVyIEFnZW50ZW4tQW5zaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnQ2hhbmdlLVN0YXR1cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJ0NoYW5nZS1aZWl0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJ0NoYW5nZS1UaXRlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJ0JlZGluZ3VuZyBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJ0JlZGluZ3VuZ2VuLcOcYmVyc2ljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICdLb25maWd1cmllcmVuIFNpZSwgd2VsY2hlIEFuc2ljaHQgYW5nZXplaWd0IHdlcmRlbiBzb2xsLCBuYWNoZGVtIGVpbiBuZXVlciBBcmJlaXRzYXVmdHJhZyBlcnN0ZWxsdCB3dXJkZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJ0tvbmZpZ3VyaWVydCwgd2llIGjDpHVmaWcgQmVuYWNocmljaHRpZ3VuZ2VuIHZlcnNjaGlja3Qgd2VyZGVuIHdlbm4gZGllIGdlcGxhbnRlIFN0YXJ0emVpdCBvZGVyIGFuZGVyZSBaZWl0ZW4gZXJyZWljaHQgd3VyZGVuIGJ6dy4gc2Nob24gdm9yYmVpIHNpbmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICdDaGFuZ2UgZXJzdGVsbGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnQ2hhbmdlIGVyc3RlbGxlbiAoYXVzIFZvcmxhZ2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICdFaW5lbiBDaGFuZ2UgKGF1cyBWb3JsYWdlKSBhdXMgZGllc2VtIFRpY2tldCBlcnN0ZWxsZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJ0VpbmVuIENoYW5nZSBhdXMgZGllc2VtIFRpY2tldCBlcnN0ZWxsZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICdJVFNNIENoYW5nZS1CZW5hY2hyaWNodGlndW5nZW4gZXJzdGVsbGVuIHVuZCB2ZXJ3YWx0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJ0NoYW5nZS1CZW5hY2hyaWNodGlndW5nZW4gZXJzdGVsbGVuIHVuZCB2ZXJ3YWx0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJ1N0YW5kYXJkdHlwIGbDvHIgZWluZW4gQXJiZWl0c2F1ZnRyYWcuIERpZXNlciBFaW50cmFnIG11c3MgaW4gZGVyIEdlbmVyYWwgS2F0YWxvZy1LbGFzc2UgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJyBleGlzdGllcmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnRGVmaW5pZXJlbiBTaWUgQWN0aW9ucywgaW4gZGVuZW4gaW0gVmVya27DvHBmdGUtT2JqZWt0ZS1XaWRnZXQgZWluIEVpbnN0ZWxsdW5nZW4tS25vcGYgdmVyZsO8Z2JhciBzZWluIHNvbGwgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gQml0dGUgYmVhY2h0ZW4gU2llLCBkYXNzIGbDvHIgZGllc2UgQWN0aW9ucyBkaWUgZm9sZ2VuZGVuIEpTLSB1bmQgQ1NTLURhdGVpZW4gcmVnaXN0cmllcnQgc2VpbiBtw7xzc2VuOiAgQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgdW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICdEZWZpbmllcmVuIGVpbmVzIFNpZ25hbHMgZsO8ciBlaW5lbiBBcmJlaXRzYXVmdHJhZ3NzdGF0dXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnRGVmaW5pZXJ0LCB3ZWxjaGUgU3BhbHRlbiBpbSBXaWRnZXQgIlZlcmtuw7xwZnRlIE9iamVrdGUiIChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIEJpdHRlIGJlYWNodGVuOiBFcyBzaW5kIG51ciBDaGFuZ2UtQXR0cmlidXRlIGbDvHIgZGllIFN0YW5kYXJkc3BhbHRlbiBlcmxhdWJ0LiBNw7ZnbGljaGUgRWluc3RlbGx1bmdlbjogMCA9IERlYWt0aXZpZXJ0LCAxID0gVmVyZsO8Z2JhciwgMiA9IFN0YW5kYXJkbcOkw59pZyBha3RpdmllcnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICdEZWZpbmllcnQsIHdlbGNoZSBTcGFsdGVuIGltIFdpZGdldCAiVmVya27DvHBmdGUgQXJiZWl0c2F1ZnRyw6RnZSIgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gQml0dGUgYmVhY2h0ZW46IEVzIHNpbmQgbnVyIENoYW5nZS1BdHRyaWJ1dGUgZsO8ciBkaWUgU3RhbmRhcmRzcGFsdGVuIGVybGF1YnQuIE3DtmdsaWNoZSBFaW5zdGVsbHVuZ2VuOiAwID0gRGVha3RpdmllcnQsIDEgPSBWZXJmw7xnYmFyLCAyID0gU3RhbmRhcmRtw6TDn2lnIGFrdGl2aWVydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRhcyDDnGJlcnNpY2h0c21vZHVsIHVtIGRpZSAiS2xlaW4iLUFuc2ljaHQgZWluZXIgQ2hhbmdlLUxpc3RlIGFuenV6ZWlnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRhcyDDnGJlcnNpY2h0c21vZHVsIHVtIGRpZSAiS2xlaW4iLUFuc2ljaHQgZWluZXIgVm9ybGFnZW5saXN0ZSBhbnp1emVpZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJ0RlZmluaWVydCwgb2IgZGllIGVyZmFzc3RlIFplaXQgYXVzZ2VkcnVja3Qgd2VyZGVuIGthbm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAnRGVmaW5pZXJ0LCBvYiBkZXIgImdlcGxhbnRlIEF1ZndhbmQiIGF1c2dlZHJ1Y2t0IHdlcmRlbiBrYW5uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICdEZWZpbmllcnQsIG9iIGVycmVpY2hiYXJlICh3aWUgdm9uIGRlciBTdGF0ZSBNYWNoaW5lIGRlZmluaWVydCkgQ2hhbmdlLUVuZHp1c3TDpG5kZSBlcmxhdWJ0IHNlaW4gc29sbGVuLCB3ZW5uIHNpY2ggZWluIENoYW5nZSBpbSBTdGF0dXMgIkdlc3BlcnJ0IiBiZWZpbmRldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnRGVmaW5pZXJ0LCBvYiBuYWNoZm9sZ2VuZGUgRW5kenVzdMOkbmRlIGbDvHIgZWluZW4gQXJiZWl0c2F1ZnRyYWcgKHdpZSBpbiBkZXIgU3RhdGUgTWFjaGluZSBkZWZpbmllcnQpIGF1Y2ggZGFubiBlcmxhdWJ0IHNpbmQsIHdlbm4gc2ljaCBJaHJlIEFyYmVpdHNhdWZ0csOkZ2UgaW0gU3RhdHVzICJHZXNwZXJydCIgYmVmaW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICdEZWZpbmllcnQsIG9iIGRpZSBnZWJ1Y2h0ZSBaZWl0IGFuZ2V6ZWlndCB3ZXJkZW4gc29sbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICdEZWZpbmllcnQsIG9iIGRpZSB0YXRzw6RjaGxpY2hlIFN0YXJ0LSB1bmQgRW5kemVpdCBnZXNldHp0IHdlcmRlbiBzb2xsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICdEZWZpbmllcnQsIG9iIGRpZSBTdWNoZnVua3Rpb25lbiBmw7xyIENoYW5nZXMgdW5kIEFyYmVpdHNhdWZ0csOkZ2UgZGllIE1pcnJvckRCIGJlbnV0emVuIGthbm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCwgb2IgZGVyIENoYW5nZS1TdGF0dXMgaW4gZGVyIEJlYXJiZWl0dW5ncy1BbnNpY2h0IGVpbmVzIENoYW5nZXMgaW0gQWdlbnRlbi1JbnRlcmZhY2UgZ2VzZXR6dCB3ZXJkZW4ga2Fubi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJ0RlZmluaWVydCwgb2IgImdlcGxhbnRlciBBdWZ3YW5kIiBhbmdlemVpZ3Qgd2VyZGVuIHNvbGwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICdEZWZpbmllcnQgb2IgZGFzIEFuZnJhZ2VkYXR1bSBmw7xyIGRlbiBLdW5kZW4gZ2VkcnVja3Qgd2VyZGVuIHNvbGwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJ1NvbGwgZGVyIFd1bnNjaHRlcm1pbiBkZXMgS3VuZGVuIGdlc3VjaHQgd2VyZGVuIGvDtm5uZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnRGVmaW5pZXJ0IG9iIGRhcyBBbmZyYWdlZGF0dW0gdm9tIEt1bmRlbiBhdXNnZWbDvGxsdCB3ZXJkZW4gc29sbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJ0RlZmluaWVydCwgb2IgZGVyIFd1bnNjaHRlcm1pbiB2b20gS3VuZGVuIGFuZ2V6ZWlndCB3ZXJkZW4ga2Fubi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICdEZWZpbmllcnQsIG9iIGRlciBBcmJlaXRzYXVmdHJhZ3MtU3RhdHVzIGFuZ2V6ZWlndCB3ZXJkZW4gc29sbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICdEZWZpbmllcnQsIG9iIGRlciBBcmJlaXRzYXVmdHJhZ3MtVGl0ZWwgYW5nZXplaWd0IHdlcmRlbiBzb2xsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnRGVmaW5pZXJ0IEF0dHJpYnV0ZSBmw7xyIGRpZSBBbnplaWdlIGRlcyBHcmFwaGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ0RlZmluaWVydCwgZGFzcyBudXIgw4RuZGVydW5nZW4gYW5nZXplaWd0IHdlcmRlbiwgZGllIEFyYmVpdHNhdWZ0csOkZ2UgZW50aGFsdGVuLCBkaWUgbWl0IERpZW5zdGVuIHZlcmxpbmt0IHNpbmQsIGbDvHIgZGllIGRlciBLdW5kZW4tQmVudXR6ZXIgZWluZSBCZXJlY2h0aWd1bmcgaGF0LiBBbmRlcmUgw4RuZGVydW5nZW4gd2VyZGVuIG5pY2h0IGFuZ2V6ZWlndC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuJ30gPSAnRGVmaW5pZXJ0IGRpZSBDaGFuZ2UtU3RhdHVzLCBkaWUgZ2Vsw7ZzY2h0IHdlcmRlbiBkw7xyZmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIENoYW5nZS1TdGF0dXMsIGRpZSBhbHMgRmlsdGVyIGluIGRlciBDaGFuZ2UgUFNBLcOcYmVyc2ljaHQgdmVyd2VuZGV0IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIENoYW5nZS1TdGF0dXMsIGRpZSBhbHMgRmlsdGVyIGluIGRlciBDaGFuZ2VaZWl0cGxhbi3DnGJlcnNpY2h0IHZlcndlbmRldCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIENoYW5nZS1TdGF0dXMsIGRpZSBhbHMgRmlsdGVyIGluIGRlciDDnGJlcnNpY2h0ICJNZWluZSBDQUJzIiB2ZXJ3ZW5kZXQgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgQ2hhbmdlLVN0YXR1cywgZGllIGFscyBGaWx0ZXIgaW4gZGVyIMOcYmVyc2ljaHQgIk1laW5lIENoYW5nZXMiIHZlcndlbmRldCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIENoYW5nZS1TdGF0dXMgZGllIGFscyBGaWx0ZXIgaW4gZGVyIENoYW5nZS1NYW5hZ2VyLcOcYmVyc2ljaHQgdmVyd2VuZGV0IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIENoYW5nZS1TdGF0dXMgZGllIGFscyBGaWx0ZXIgaW4gZGVyIENoYW5nZS3DnGJlcnNpY2h0IHZlcndlbmRldCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBDaGFuZ2UtU3RhdGVzIGRpZSBhbHMgRmlsdGVyIGluIGRlciBLdW5kZW4tQW5zaWNodCAiQ2hhbmdlIFNjaGVkdWxlIiB2ZXJ3ZW5kZXQgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGVuIFN0YW5kYXJkdGl0ZWwgZsO8ciBlaW5lbiBEdW1teS1DaGFuZ2UsIGRlciBiZW7DtnRpZ3Qgd2lyZCwgdW0gZWluZSBBcmJlaXRzYXVmdHJhZ3MtVm9ybGFnZSB6dSBiZWFyYmVpdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIFN0YW5kYXJkIFNvcnRpZXJ1bmcgZGVyIENoYW5nZXMgaW4gZGVyIENoYW5nZSBQU0Etw5xiZXJzaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgU3RhbmRhcmRzb3J0aWVydW5nIGRlciBDaGFuZ2VzIGluIGRlciBDaGFuZ2UtTWFuYWdlci3DnGJlcnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICdEZWZpbmllcnQgZGllIFN0YW5kYXJkIFNvcnRpZXJ1bmcgZGVyIENoYW5nZXMgaW4gZGVyIENoYW5nZS3DnGJlcnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgU3RhbmRhcmQgU29ydGllcnVuZyBkZXIgQ2hhbmdlcyBpbiBkZXIgQ2hhbmdlLVplaXRwbGFuLcOcYmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIFN0YW5kYXJkLVNvcnRpZXJrcml0ZXJpZW4gZGVyIENoYW5nZXMgaW4gZGVyIMOcYmVyc2ljaHQgIk1laW5lIENBQnMiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgU3RhbmRhcmQtU29ydGllcmtyaXRlcmllbiBkZXIgQ2hhbmdlcyBpbiBkZXIgw5xiZXJzaWNodCAiTWVpbmUgQ2hhbmdlcyIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBTdGFuZGFyZC1Tb3J0aWVya3JpdGVyaWVuIGRlciBDaGFuZ2VzIGluIGRlciDDnGJlcnNpY2h0ICJNZWluZSBBcmJlaXRzYXVmdHLDpGdlIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIFN0YW5kYXJkLVNvcnRpZXJrcml0ZXJpZW4gZGVyIENoYW5nZXMgaW4gZGVyICJQSVIiLcOcYmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnU3RhbmRhcmQgU29ydGllcnVuZyBkZXIgQ2hhbmdlcyBpbiBkZXIgS3VuZGVuLUFuc2ljaHQgIkNoYW5nZSBTY2hlZHVsZSIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIFN0YW5kYXJkLVNvcnRpZXJrcml0ZXJpZW4gZGVyIFZvcmxhZ2VuIGluIGRlciBWb3JsYWdlbsO8YmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAnRGVmaW5pZXJ0IGRpZSBTdGFuZGFyZC1SZWloZW5mb2xnZSBkZXIgU29ydGllcnVuZyBkZXIgQ2hhbmdlcyBpbiBkZXIgw5xiZXJzaWNodCAiTWVpbmUgQ0FCcyIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0gJ0RlZmluaWVydCBkaWUgU3RhbmRhcmQtUmVpaGVuZm9sZ2UgZGVyIFNvcnRpZXJ1bmcgZGVyIENoYW5nZXMgaW4gZGVyIMOcYmVyc2ljaHQgIk1laW5lIENoYW5nZXMiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgU3RhbmRhcmQtUmVpaGVuZm9sZ2UgZGVyIFNvcnRpZXJ1bmcgZGVyIEFyYmVpdHNhdWZ0csOkZ2UgaW4gZGVyIMOcYmVyc2ljaHQgIk1laW5lIEFyYmVpdHNhdWZ0csOkZ2UiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICdEZWZpbmllcnQgZGllIFN0YW5kYXJkLVJlaWhlbmZvbGdlIGRlciBTb3J0aWVydW5nIGRlciBDaGFuZ2VzIGluIGRlciAiUElSIi3DnGJlcnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnRGVmaW5pZXJ0IGRpZSBTdGFuZGFyZC1SZWloZW5mb2xnZSBkZXIgU29ydGllcnVuZyBkZXIgQ2hhbmdlcyBpbiBkZXIgQ2hhbmdlIFBTQS3DnGJlcnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBTdGFuZGFyZC1SZWloZW5mb2xnZSBkZXIgU29ydGllcnVuZyBkZXIgQ2hhbmdlcyBpbiBkZXIgQ2hhbmdlLU1hbmFnZXItw5xiZXJzaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnRGVmaW5pZXJ0IGRpZSBTdGFuZGFyZC1SZWloZW5mb2xnZSBkZXIgU29ydGllcnVuZyBpbiBkZXIgQ2hhbmdlLcOcYmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBTdGFuZGFyZC1SZWloZW5mb2xnZSBkZXIgU29ydGllcnVuZyBkZXIgQ2hhbmdlcyBpbiBkZXIgQ2hhbmdlLVplaXRwbGFuLcOcYmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnU3RhbmRhcmQgUmVpaGVuZm9sZ2UgZGVyIENoYW5nZXMgaW4gZGVyIEt1bmRlbi1BbnNpY2h0ICJDaGFuZ2UgU2NoZWR1bGUiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJ0RlZmluaWVydCBkaWUgU3RhbmRhcmQtUmVpaGVuZm9sZ2UgZGVyIFNvcnRpZXJ1bmcgZGVyIFZvcmxhZ2VuIGluIGRlciBWb3JsYWdlbsO8YmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICdEZWZpbmllcnQgZGVuIFN0YW5kYXJkd2VydCBmw7xyIGRpZSBLYXRlZ29yaWUgZWluZXMgQ2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICdEZWZpbmllcnQgZGVuIFN0YW5kYXJkd2VydCBmw7xyIGRpZSBBdXN3aXJrdW5nIGVpbmVzIENoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICdEZWZpbmllcnQgZGVuIEZlbGQtVHlwIGbDvHIgIldlcnRlIHZlcmdsZWljaGVuIi1GZWxkZXIgZsO8ciBDaGFuZ2UtQXR0cmlidXRlLCBkaWUgaW4gZGVyIEJlYXJiZWl0dW5nc2Fuc2ljaHQgZsO8ciBCZWRpbmd1bmdlbiBkZXMgQ2hhbmdlcyBpbSBBZ2VudGVuLUludGVyZmFjZSBnZW51dHp0IHdlcmRlbi4gR8O8bHRpZ2UgV2VydGUgc2luZCAiU2VsZWN0aW9uIiwgIlRleHQiIHVuZCAiRGF0ZSIuIFdlbm4ga2VpbiBUeXAgZGVmaW5pZXJ0IGlzdCwgZGFubiB3aXJkIGRhcyBGZWxkIG5pY2h0IGFuZ2V6ZWlndC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciB3b3Jrb3JkZXIgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkZW4gRmVsZC1UeXAgZsO8ciAiQ29tcGFyZVZhbHVlIi1GZWxkZXIgZsO8ciBBcmJlaXRzYXVmdHJhZ3MtQXR0cmlidXRlLCBkaWUgaW4gZGVyIEJlYXJiZWl0dW5nc2Fuc2ljaHQgZsO8ciBCZWRpbmd1bmdlbiBkZXMgQ2hhbmdlcyBpbSBBZ2V0ZW4tSW50ZXJmYWNlIGdlbnV0enQgd2VyZGVuLiBHw7xsdGlnZSBXZXJ0ZSBzaW5kIFNlbGVjdGlvbiwgVGV4dCB1bmQgRGF0ZS4gV2VubiBrZWluIFR5cCBkZWZpbmllcnQgaXN0LCBkYW5uIHdpcmQgZGFzIEZlbGQgbmljaHQgYW5nZXplaWd0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciBjaGFuZ2Ugb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBPYmpla3QtQXR0cmlidXRlLCBkaWUgZsO8ciBDaGFuZ2UtT2JqZWt0ZSBpbiBkZXIgQmVhcmJlaXR1bmdzYW5zaWNodCBmw7xyIENoYW5nZS1CZWRpbmd1bmdlbiBpbSBBZ2VudGVuLUludGVyZmFjZSBhdXNnZXfDpGhsdCB3ZXJkZW4ga8O2bm5lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgT2JqZWt0LUF0dHJpYnV0ZSwgZGllIGbDvHIgQXJiZWl0c2F1ZnRyYWdzLU9iamVrdGUgaW4gZGVyIEJlYXJiZWl0dW5nc2Fuc2ljaHQgZsO8ciBDaGFuZ2UtQmVkaW5ndW5nZW4gaW0gQWdlbnRlbi1JbnRlcmZhY2UgYXVzZ2V3w6RobHQgd2VyZGVuIGvDtm5uZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgT3BlcmF0b3JlbiBkaWUgZsO8ciBkYXMgQXR0cmlidXQgIkdlYnVjaHRlIFplaXQiIGluIGRlciBCZWFyYmVpdHVuZ3NhbnNpY2h0IGbDvHIgQ2hhbmdlLUJlZGluZ3VuZ2VuIGltIEFnZW50ZW4tSW50ZXJmYWNlIGF1c2dld8OkaGx0IHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIE9wZXJhdG9yZW4gZGllIGbDvHIgZGFzIEF0dHJpYnV0ICJUYXRzw6RjaGxpY2hlIEVuZHplaXQiIGluIGRlciBCZWFyYmVpdHVuZ3NhbnNpY2h0IGbDvHIgQ2hhbmdlLUJlZGluZ3VuZ2VuIGltIEFnZW50ZW4tSW50ZXJmYWNlIGF1c2dld8OkaGx0IHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgT3BlcmF0b3JlbiBkaWUgZsO8ciBkYXMgQXR0cmlidXQgIlRhdHPDpGNobGljaGUgU3RhcnR6ZWl0IiBpbiBkZXIgQmVhcmJlaXR1bmdzYW5zaWNodCBmw7xyIENoYW5nZS1CZWRpbmd1bmdlbiBpbSBBZ2VudGVuLUludGVyZmFjZSBhdXNnZXfDpGhsdCB3ZXJkZW4ga8O2bm5lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBPcGVyYXRvcmVuIGRpZSBmw7xyIGRhcyBBdHRyaWJ1dCAiS2F0ZWdvcmllLUlEIiBpbiBkZXIgQmVhcmJlaXR1bmdzYW5zaWNodCBmw7xyIENoYW5nZS1CZWRpbmd1bmdlbiBpbSBBZ2VudGVuLUludGVyZmFjZSBhdXNnZXfDpGhsdCB3ZXJkZW4ga8O2bm5lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIE9wZXJhdG9yZW4gZGllIGbDvHIgZGFzIEF0dHJpYnV0ICJDaGFuZ2VCdWlsZGVySUQiIGluIGRlciBCZWFyYmVpdHVuZ3NhbnNpY2h0IGbDvHIgQ2hhbmdlLUJlZGluZ3VuZ2VuIGltIEFnZW50ZW4tSW50ZXJmYWNlIGF1c2dld8OkaGx0IHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgT3BlcmF0b3JlbiBkaWUgZsO8ciBkYXMgQXR0cmlidXQgIkNoYW5nZU1hbmFnZXJJRCIgaW4gZGVyIEJlYXJiZWl0dW5nc2Fuc2ljaHQgZsO8ciBDaGFuZ2UtQmVkaW5ndW5nZW4gaW0gQWdlbnRlbi1JbnRlcmZhY2UgYXVzZ2V3w6RobHQgd2VyZGVuIGvDtm5uZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgT3BlcmF0b3JlbiBkaWUgZsO8ciBkYXMgQXR0cmlidXQgIkNoYW5nZVN0YXRlSUQiIGluIGRlciBCZWFyYmVpdHVuZ3NhbnNpY2h0IGbDvHIgQ2hhbmdlLUJlZGluZ3VuZ2VuIGltIEFnZW50ZW4tSW50ZXJmYWNlIGF1c2dld8OkaGx0IHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBPcGVyYXRvcmVuIGRpZSBmw7xyIGRhcyBBdHRyaWJ1dCAiQ2hhbmdlVGl0bGUiIGluIGRlciBCZWFyYmVpdHVuZ3NhbnNpY2h0IGbDvHIgQ2hhbmdlLUJlZGluZ3VuZ2VuIGltIEFnZW50ZW4tSW50ZXJmYWNlIGF1c2dld8OkaGx0IHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgT3BlcmF0b3JlbiBkaWUgZsO8ciBkYXMgQXR0cmlidXQgIkR5bmFtaWNGaWVsZCIgaW4gZGVyIEJlYXJiZWl0dW5nc2Fuc2ljaHQgZsO8ciBDaGFuZ2UtQmVkaW5ndW5nZW4gaW0gQWdlbnRlbi1JbnRlcmZhY2UgYXVzZ2V3w6RobHQgd2VyZGVuIGvDtm5uZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIE9wZXJhdG9yZW4gZGllIGbDvHIgZGFzIEF0dHJpYnV0ICJJbXBhY3RJRCIgaW4gZGVyIEJlYXJiZWl0dW5nc2Fuc2ljaHQgZsO8ciBDaGFuZ2UtQmVkaW5ndW5nZW4gaW0gQWdlbnRlbi1JbnRlcmZhY2UgYXVzZ2V3w6RobHQgd2VyZGVuIGvDtm5uZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgT3BlcmF0b3JlbiBkaWUgZsO8ciBkYXMgQXR0cmlidXQgIlBsYW5uZWRFZmZvcnQiIGluIGRlciBCZWFyYmVpdHVuZ3NhbnNpY2h0IGbDvHIgQ2hhbmdlLUJlZGluZ3VuZ2VuIGltIEFnZW50ZW4tSW50ZXJmYWNlIGF1c2dld8OkaGx0IHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBPcGVyYXRvcmVuIGRpZSBmw7xyIGRhcyBBdHRyaWJ1dCAiUGxhbm5lZEVuZFRpbWUiIGluIGRlciBCZWFyYmVpdHVuZ3NhbnNpY2h0IGbDvHIgQ2hhbmdlLUJlZGluZ3VuZ2VuIGltIEFnZW50ZW4tSW50ZXJmYWNlIGF1c2dld8OkaGx0IHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIE9wZXJhdG9yZW4gZGllIGbDvHIgZGFzIEF0dHJpYnV0ICJQbGFubmVkU3RhcnRUaW1lIiBpbiBkZXIgQmVhcmJlaXR1bmdzYW5zaWNodCBmw7xyIENoYW5nZS1CZWRpbmd1bmdlbiBpbSBBZ2VudGVuLUludGVyZmFjZSBhdXNnZXfDpGhsdCB3ZXJkZW4ga8O2bm5lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBPcGVyYXRvcmVuIGRpZSBmw7xyIGRhcyBBdHRyaWJ1dCAiUHJpb3JpdHlJRCIgaW4gZGVyIEJlYXJiZWl0dW5nc2Fuc2ljaHQgZsO8ciBDaGFuZ2UtQmVkaW5ndW5nZW4gaW0gQWdlbnRlbi1JbnRlcmZhY2UgYXVzZ2V3w6RobHQgd2VyZGVuIGvDtm5uZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFJlcXVlc3RlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgT3BlcmF0b3JlbiBkaWUgZsO8ciBkYXMgQXR0cmlidXQgIlJlcXVlc3RlZFRpbWUiIGluIGRlciBCZWFyYmVpdHVuZ3NhbnNpY2h0IGbDvHIgQ2hhbmdlLUJlZGluZ3VuZ2VuIGltIEFnZW50ZW4tSW50ZXJmYWNlIGF1c2dld8OkaGx0IHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJBZ2VudElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIE9wZXJhdG9yZW4gZGllIGbDvHIgZGFzIEF0dHJpYnV0ICJXb3JrT3JkZXJBZ2VudElEIiBpbiBkZXIgQmVhcmJlaXR1bmdzYW5zaWNodCBmw7xyIENoYW5nZS1CZWRpbmd1bmdlbiBpbSBBZ2VudGVuLUludGVyZmFjZSBhdXNnZXfDpGhsdCB3ZXJkZW4ga8O2bm5lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIE9wZXJhdG9yZW4gZGllIGbDvHIgZGFzIEF0dHJpYnV0ICJXb3JrT3JkZXJOdW1iZXIiIGluIGRlciBCZWFyYmVpdHVuZ3NhbnNpY2h0IGbDvHIgQ2hhbmdlLUJlZGluZ3VuZ2VuIGltIEFnZW50ZW4tSW50ZXJmYWNlIGF1c2dld8OkaGx0IHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIE9wZXJhdG9yZW4gZGllIGbDvHIgZGFzIEF0dHJpYnV0ICJXb3JrT3JkZXJTdGF0ZUlEIiBpbiBkZXIgQmVhcmJlaXR1bmdzYW5zaWNodCBmw7xyIENoYW5nZS1CZWRpbmd1bmdlbiBpbSBBZ2VudGVuLUludGVyZmFjZSBhdXNnZXfDpGhsdCB3ZXJkZW4ga8O2bm5lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgT3BlcmF0b3JlbiBkaWUgZsO8ciBkYXMgQXR0cmlidXQgIldvcmtPcmRlclRpdGxlIiBpbiBkZXIgQmVhcmJlaXR1bmdzYW5zaWNodCBmw7xyIENoYW5nZS1CZWRpbmd1bmdlbiBpbSBBZ2VudGVuLUludGVyZmFjZSBhdXNnZXfDpGhsdCB3ZXJkZW4ga8O2bm5lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIE9wZXJhdG9yZW4gZGllIGbDvHIgZGFzIEF0dHJpYnV0ICJXb3JrT3JkZXJUeXBlSUQiIGluIGRlciBCZWFyYmVpdHVuZ3NhbnNpY2h0IGbDvHIgQ2hhbmdlLUJlZGluZ3VuZ2VuIGltIEFnZW50ZW4tSW50ZXJmYWNlIGF1c2dld8OkaGx0IHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGVuIFplaXRyYXVtIChpbiBKYWhyZW4pIGluIGRlbSBTdGFydC0gdW5kIEVuZHplaXRlbiBnZXfDpGhsdCB3ZXJkZW4ga8O2bm5lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgaW4gZGVyIEt1cnppbmZvIGFuZ2V6ZWlndGVuIEF0dHJpYnV0ZSBlaW5lcyBBcmJlaXRzYXVmdHJhZ3MtR3JhcGhlbiBpbiBkZXIgQ2hhbmdlLURldGFpbGFuc2ljaHQuIFVtIER5bmFtaXNjaGUgRmVsZGVyIGRlcyBBcmJlaXRzYXVmdHJhZ3MgYW56dXplaWdlbiwgbcO8c3NlbiBkaWVzZSBhbHMgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuIGFuZ2VnZWJlbiB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIGFuZ2V6ZWlndGVuIFRhYmVsbGVuc3BhbHRlbiBpbiBkZXIgQ2hhbmdlIFBTQS3DnGJlcnNpY2h0LiBEaWVzZSBPcHRpb24gaGF0IGtlaW5lbiBFZmZla3QgYXVmIGRpZSBQb3NpdGlvbiBkZXIgU3BhbHRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBhbmdlemVpZ3RlbiBUYWJlbGxlbnNwYWx0ZW4gaW4gZGVyIENoYW5nZS1aZWl0cGxhbi3DnGJlcnNpY2h0LiBEaWVzZSBPcHRpb24gaGF0IGtlaW5lbiBFZmZla3QgYXVmIGRpZSBQb3NpdGlvbiBkZXIgU3BhbHRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIGFuZ2V6ZWlndGVuIFRhYmVsbGVuc3BhbHRlbiBpbiBkZXIgw5xiZXJzaWNodCAiTWVpbmUgQ0FCcyIuIERpZXNlIE9wdGlvbiBoYXQga2VpbmVuIEVmZmVrdCBhdWYgZGllIFBvc2l0aW9uIGRlciBTcGFsdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIGFuZ2V6ZWlndGVuIFRhYmVsbGVuc3BhbHRlbiBpbiBkZXIgw5xiZXJzaWNodCAiTWVpbmUgQ2hhbmdlcyIuIERpZXNlIE9wdGlvbiBoYXQga2VpbmVuIEVmZmVrdCBhdWYgZGllIFBvc2l0aW9uIGRlciBTcGFsdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIGFuZ2V6ZWlndGVuIFRhYmVsbGVuc3BhbHRlbiBpbiBkZXIgw5xiZXJzaWNodCAiTWVpbmUgQXJiZWl0c2F1ZnRyw6RnZSIuIERpZXNlIE9wdGlvbiBoYXQga2VpbmVuIEVmZmVrdCBhdWYgZGllIFBvc2l0aW9uIGRlciBTcGFsdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBQSVIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIGFuZ2V6ZWlndGVuIFRhYmVsbGVuc3BhbHRlbiBpbiBkZXIgIlBJUiItw5xiZXJzaWNodC4gRGllc2UgT3B0aW9uIGhhdCBrZWluZW4gRWZmZWt0IGF1ZiBkaWUgUG9zaXRpb24gZGVyIFNwYWx0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBhbmdlemVpZ3RlbiBUYWJlbGxlbnNwYWx0ZW4gaW4gZGVyIENoYW5nZS1NYW5hZ2VyLcOcYmVyc2ljaHQuIERpZXNlIE9wdGlvbiBoYXQga2VpbmVuIEVmZmVrdCBhdWYgZGllIFBvc2l0aW9uIGRlciBTcGFsdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIGFuZ2V6ZWlndGVuIFRhYmVsbGVuc3BhbHRlbiBpbiBkZXIgQ2hhbmdlLcOcYmVyc2ljaHQuIERpZXNlIE9wdGlvbiBoYXQga2VpbmVuIEVmZmVrdCBhdWYgZGllIFBvc2l0aW9uIGRlciBTcGFsdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBhbmdlemVpZ3RlbiBUYWJlbGxlbnNwYWx0ZW4gaW0gU3VjaGVyZ2VibmlzLiBEaWVzZSBPcHRpb24gaGF0IGtlaW5lbiBFZmZla3QgYXVmIGRpZSBQb3NpdGlvbiBkZXIgU3BhbHRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBhbmdlemVpZ3RlbiBUYWJlbGxlbnNwYWx0ZW4gaW4gZGVyIEt1bmRlbi1BbnNpY2h0ICJDaGFuZ2UgU2NoZWR1bGUiLiBEaWVzZSBPcHRpb24gaGF0IGtlaW5lbiBFZmZla3QgYXVmIGRpZSBQb3NpdGlvbiBkZXIgU3BhbHRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIGFuZ2V6ZWlndGVuIFRhYmVsbGVuc3BhbHRlbiBpbiBkZXIgVm9ybGFnZW7DvGJlcnNpY2h0LiBEaWVzZSBPcHRpb24gaGF0IGtlaW5lbiBFZmZla3QgYXVmIGRpZSBQb3NpdGlvbiBkZXIgU3BhbHRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICdEZWZpbmllcnQgZGFzIFNpZ25hbCBmw7xyIGVpbmVuIElUU00gQ2hhbmdlLVN0YXR1cy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIFZvcmxhZ2VuLVR5cGVuLCBkaWUgYWxzIEZpbHRlciBpbiBkZXIgVm9ybGFnZW7DvGJlcnNpY2h0IHZlcndlbmRldCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBBcmJlaXRzYXVmdHJhZ3MtU3RhdHVzIGRpZSBhbHMgRmlsdGVyIGluIGRlciDDnGJlcnNpY2h0ICJNZWluZSBBcmJlaXRzYXVmdHLDpGdlIiB2ZXJ3ZW5kZXQgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgQXJiZWl0c2F1ZnRyYWdzLVN0YXR1cyBkaWUgYWxzIEZpbHRlciBpbiBkZXIgIlBJUiItw5xiZXJzaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBBcmJlaXRzYXVmdHJhZ3MtVHlwZW4sIGRpZSBhbHMgRmlsdGVyIGluIGRlciAiUElSIi3DnGJlcnNpY2h0IHZlcndlbmRldCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJ0RlZmluaWVydCwgb2IgQmVuYWNocmljaHRpZ3VuZ2VuIHZlcnNlbmRldCB3ZXJkZW4gc29sbGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnRWluZW4gQ2hhbmdlIGzDtnNjaGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICdEZW4gQ2hhbmdlIGzDtnNjaGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICdEZW4gQXJiZWl0c2F1ZnRyYWcgbMO2c2NoZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICdEZXRhaWxzIGVpbmVzIENoYW5nZS1IaXN0b3JpZW4tRWludHJhZ3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICdXZW5uIGRpZXNlIE9wdGlvbiBha3RpdmllcnQgd2lyZCwgaGF0IGRlciBBZ2VudCBkaWUgTcO2Z2xpY2hrZWl0IGJlaW0gR2VuZXJpZXJlbiBlaW5lciBTdGF0aXN0aWsgZGllIGJlaWRlbiBBY2hzZW4genUgdmVydGF1c2NoZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJ0hpZXIga8O2bm5lbiBTaWUgZmVzdGxlZ2VuLCBvYiBkYXMgU3RhdGlzdGlrLU1vZHVsIGF1Y2ggYWxsZ2VtZWluZSBTdGF0aXN0aWtlbiDDvGJlciBkaWUgQW56YWhsIGRlciBkdXJjaGdlZsO8aHJ0ZW4gQ2hhbmdlcyBuYWNoIENJLUtsYXNzZSBnZW5lcmllcmVuIGRhcmYuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICdIaWVyIGvDtm5uZW4gU2llIGZlc3RsZWdlbiwgb2IgZGFzIFN0YXRpc3Rpay1Nb2R1bCBhdWNoIGFsbGdlbWVpbmUgU3RhdGlzdGlrZW4gw7xiZXIgQ2hhbmdlcyBiemdsLiBTdGF0dXNha3R1YWxpc2llcnVuZ2VuIGlubmVyaGFsYiBlaW5lciBaZWl0cGVyaW9kZSBnZW5lcmllcmVuIGRhcmYuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICdIaWVyIGvDtm5uZW4gU2llIGZlc3RsZWdlbiwgb2IgZGFzIFN0YXRpc3Rpay1Nb2R1bCBhdWNoIGFsbGdlbWVpbmUgU3RhdGlzdGlrZW4gw7xiZXIgQ2hhbmdlcyBiemdsLiBkZW0gWnVzYW1tZW5oYW5nIHp3aXNjaGVuIENoYW5nZXMgdW5kIFZvcmZhbGxzLVRpY2tldHMgZ2VuZXJpZXJlbiBkYXJmLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAnSGllciBrw7ZubmVuIFNpZSBmZXN0bGVnZW4sIG9iIGRhcyBTdGF0aXN0aWstTW9kdWwgYXVjaCBhbGxnZW1laW5lIFN0YXRpc3Rpa2VuIMO8YmVyIENoYW5nZXMgZ2VuZXJpZXJlbiBkYXJmLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICdIaWVyIGvDtm5uZW4gU2llIGZlc3RsZWdlbiwgb2IgZGFzIFN0YXRpc3Rpay1Nb2R1bCBhdWNoIGFsbGdlbWVpbmUgU3RhdGlzdGlrZW4gw7xiZXIgZGllIEFuemFobCB2b24gUmZDLVRpY2tldHMsIGRpZSB2b24gQmVudXR6ZXJuIGVyemV1Z3Qgd3VyZGVuLCBnZW5lcmllcmVuIGRhcmYuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0R5bmFtaXNjaGUgRmVsZGVyIChmw7xyIENoYW5nZXMgdW5kIEFyYmVpdHNhdWZ0csOkZ2UpLCBkaWUgaW4gZGVyIEFuc2ljaHQgIkNoYW5nZSBkcnVja2VuIiBpbSBBZ2VudGVuLUludGVyZmFjZSBhbmdlemVpZ3Qgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0R5bmFtaXNjaGUgRmVsZGVyLCBkaWUgaW4gZGVyIEFuc2ljaHQgIkNoYW5nZSBoaW56dWbDvGdlbiIgaW0gQWdlbnRlbi1JbnRlcmZhY2UgYW5nZXplaWd0IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRHluYW1pc2NoZSBGZWxkZXIsIGRpZSBpbiBkZXIgQW5zaWNodCAiQ2hhbmdlIGJlYXJiZWl0ZW4iIGltIEFnZW50ZW4tSW50ZXJmYWNlIGFuZ2V6ZWlndCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRHluYW1pc2NoZSBGZWxkZXIsIGRpZSBpbiBkZXIgQW5zaWNodCAiQ2hhbmdlIHN1Y2hlbiIgaW0gQWdlbnRlbi1JbnRlcmZhY2UgYW5nZXplaWd0IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRHluYW1pc2NoZSBGZWxkZXIsIGRpZSBpbiBkZXIgRGV0YWlsYW5zaWNodCBlaW5lcyBDaGFuZ2VzIGltIEFnZW50ZW4tSW50ZXJmYWNlIGFuZ2V6ZWlndCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRHluYW1pc2NoZSBGZWxkZXIsIGRpZSBpbiBkZXIgQW5zaWNodCAiQXJiZWl0c2F1ZnRyYWcgaGluenVmw7xnZW4iIGltIEFnZW50ZW4tSW50ZXJmYWNlIGFuZ2V6ZWlndCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0R5bmFtaXNjaGUgRmVsZGVyLCBkaWUgaW4gZGVyIEFuc2ljaHQgIkFyYmVpdHNhdWZ0cmFnIGJlYXJiZWl0ZW4iIGltIEFnZW50ZW4tSW50ZXJmYWNlIGFuZ2V6ZWlndCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRHluYW1pc2NoZSBGZWxkZXIsIGRpZSBpbiBkZXIgQW5zaWNodCAiQXJiZWl0c2F1ZnRyYWdzLUJlcmljaHQiIGltIEFnZW50ZW4tSW50ZXJmYWNlIGFuZ2V6ZWlndCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0R5bmFtaXNjaGUgRmVsZGVyLCBkaWUgaW4gZGVyIERldGFpbGFuc2ljaHQgZWluZXMgQXJiZWl0c2F1ZnRyYWdzIGltIEFnZW50ZW4tSW50ZXJmYWNlIGFuZ2V6ZWlndCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJ0VyZWlnbmlzbW9kdWwgZsO8ciBEeW5hbWlzY2hlIEZlbGRlciB6dXIgQmVoYW5kbHVuZyBkZXIgQmVkaW5ndW5nZW4gd2VubiBEeW5hbWlzY2hlIEZlbGRlciBoaW56dWdlZsO8Z3QsIGdlw6RuZGVydCBvZGVyIGdlbMO2c2NodCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnRWluZW4gQ2hhbmdlIGJlYXJiZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICdEZW4gQ2hhbmdlIGJlYXJiZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICdEaWUgQmVkaW5ndW5nZW4gZGVzIENoYW5nZXMgYmVhcmJlaXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJ0RlbiBBcmJlaXRzYXVmdHJhZyBiZWFyYmVpdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJ0FrdGl2aWVydCBkaWUgTWluaW1hbGdyw7bDn2UgZsO8ciBDaGFuZ2UtWsOkaGxlciAod2VubiAiRGF0dW0iIGFscyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IgYXVzZ2V3w6RobHQgaXN0KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICdaZWl0cGxhbiBmw7xyIENoYW5nZXMuIMOcYmVyc2ljaHQgw7xiZXIgZ2VuZWhtaWd0ZSBDaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICdIaXN0b3JpZW5kZXRhaWxzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnSVRTTSBDaGFuZ2UtQ0FCIFZvcmxhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICdJVFNNIENoYW5nZS1CZWRpbmd1bmdlbiBiZWFyYmVpdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnSVRTTSBDaGFuZ2UtQmVkaW5ndW5ncy3DnGJlcnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJ0lUU00gQ2hhbmdlLU1hbmFnZXItw5xiZXJzaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJ0lUU00gQ2hhbmdlLUJlbmFjaHJpY2h0aWd1bmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnSVRTTSBDaGFuZ2UgUElSLcOcYmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJ0lUU00gQ2hhbmdlIEJlbmFjaHJpY2h0aWd1bmdzLVJlZ2Vsbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICdJVFNNIENoYW5nZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICdJVFNNIE1laW5lIENBQnMtw5xiZXJzaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnSVRTTSAiTWVpbmUgQ2hhbmdlcyItw5xiZXJzaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnSVRTTSAiTWVpbmUgQXJiZWl0c2F1ZnRyw6RnZSItw5xiZXJzaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnSVRTTSBWb3JsYWdlIGzDtnNjaGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJ0lUU00gVm9ybGFnZSBDQUIgYmVhcmJlaXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnSVRTTSBWb3JsYWdlIEluaGFsdCBiZWFyYmVpdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnSVRTTSBWb3JsYWdlIGJlYXJiZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnSVRTTSBWb3JsYWdlbi3DnGJlcnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJ0lUU00tRXJlaWduaXNtb2R1bCB6dW0gQXVmcsOkdW1lbiB2b24gQmVkaW5ndW5nZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICdJVFNNLUVyZWlnbmlzbW9kdWwsIGRhcyBkZW4gQ2FjaGUgZsO8ciBlaW5lIFdlcmt6ZXVnbGVpc3RlIGzDtnNjaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJ0lUU00tRXJlaWduaXNtb2R1bCwgZGFzIGRpZSBIaXN0b3JpZSB2b24gQ2hhbmdlcyBsw7ZzY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJ0lUU00tRXJlaWduaXNtb2R1bCB6dW0gw5xiZXJwcsO8ZmVuIHZvbiBCZWRpbmd1bmdlbiB1bmQgenVtIEF1c2bDvGhyZW4gdm9uIEFrdGlvbmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnSVRTTSBFcmVpZ25pc21vZHVsIHp1bSBTZW5kZW4gdm9uIEJlbmFjaHJpY2h0aWd1bmdlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnSVRTTS1FcmVpZ25pc21vZHVsLCBkYXMgZGllIEhpc3RvcmllIHZvbiBDaGFuZ2VzIGFrdHVhbGlzaWVydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnSVRTTS1FcmVpZ25pc21vZHVsLCBkYXNzIGRpZSBIaXN0b3JpZSB2b24gQmVkaW5ndW5nZW4gYWt0dWFsaXNpZXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICdJVFNNLUVyZWlnbmlzbW9kdWwsIGRhc3MgZGllIEhpc3RvcmllIHZvbiBBcmJlaXRzYXVmdHLDpGdlbiBha3R1YWxpc2llcnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nfSA9ICdJVFNNLUVyZWlnbmlzbW9kdWwsIGRhcyBkaWUgTnVtbWVybiB2b24gQXJiZWl0c2F1ZnRyw6RnZW4gbmV1IGJlcmVjaG5ldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnSVRTTS1FcmVpZ25pc21vZHVsLCBkYXMgZGllIHRhdHPDpGNobGljaGUgU3RhcnR6ZWl0ZW4gdW5kIGRpZSB0YXRzw6RjaGxpY2hlIEVuZHplaXRlbiB2b24gQXJiZWl0c2F1ZnRyw6RnZW4gc2V0enQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICdJVFNNIENoYW5nZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnSVRTTSBBcmJlaXRzYXVmdHJhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJ1dlbm4gZGllIEjDpHVmaWdrZWl0IGF1ZiBcJ3JlZ2xtw6TDn2lnXCcgZWluZ2VzdGVsbHQgaXN0LCBrw7ZubmVuIFNpZSBoaWVyIGVpbnN0ZWxsZW4sIHdpZSBvZnQgZGllIEJlbmFjaHJpY2h0aWd1bmcgdmVyc2VuZGV0IHdlcmRlbiAoQWxsZXIgWC1TdHVuZGVuKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgY2hhbmdlLid9ID0gJ0VpbiBhbmRlcmVzIE9iamVrdCBtaXQgZGVtIENoYW5nZSB2ZXJrbsO8cGZlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJ0VpbiBhbmRlcmVzIE9iamVrdCBtaXQgZGVtIEFyYmVpdHNhdWZ0cmFnIHZlcmtuw7xwZmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJ0xpc3RlIGFsbGVyIENoYW5nZS1FcmVpZ25pc3NlLCBkaWUgaW4gZGVyIGdyYWZpc2NoZW4gQmVudXR6ZXJvYmVyZmzDpGNoZSBhbmdlemVpZ3Qgd2VyZGVuIHNvbGxlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICdMaXN0ZSBhbGxlciBBcmJlaXRzYXVmdHJhZ3MtRXJlaWduaXNzZSwgZGllIGluIGRlciBncmFmaXNjaGVuIEJlbnV0emVyb2JlcmZsw6RjaGUgYW5nZXplaWd0IHdlcmRlbiBzb2xsZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnTmFjaHNjaGxhZ2VuIHZvbiBDQUItTWl0Z2xpZWRlcm4genVyIGF1dG9tYXRpc2NoZW4gVmVydm9sbHN0w6RuZGlndW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICdOYWNoc2NobGFnZW4gdm9uIEFnZW50ZW4genVyIGF1dG9tYXRpc2NoZW4gVmVydm9sbHN0w6RuZGlndW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLid9ID0gJ0lUU00gQ2hhbmdlIE1hbmFnZW1lbnQgU3RhdGUgTWFjaGluZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnRGllIEthdGVnb3JpZSDihpQgQXVzd2lya3VuZyDihpQgUHJpb3JpdMOkdCAtIE1hdHJpeCB2ZXJ3YWx0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICdNb2R1bCB6dXIgw5xiZXJwcsO8ZnVuZyBvYiBkYXMgSGluenVmw7xnZW4gdm9uIEFyYmVpdHNhdWZ0csOkZ2VuIG9kZXIgSGluenVmw7xnZW4gdm9uIEFyYmVpdHNhdWZ0csOkZ2VuIGF1cyBWb3JsYWdlbiBlcmxhdWJ0IGlzdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICdNb2R1bCB6dW0gw5xiZXJwcsO8ZmVuIGRlciBDQUItTWl0Z2xpZWRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICdNb2R1bCB6dW0gw5xiZXJwcsO8ZmVuIGRlcyBBZ2VudGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBidWlsZGVyLid9ID0gJ01vZHVsIHp1bSDDnGJlcnByw7xmZW4gZGVzIENoYW5nZS1CdWlsZGVycy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICdNb2R1bCB6dW0gw5xiZXJwcsO8ZmVuIGRlcyBDaGFuZ2UtTWFuYWdlcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJ01vZHVsIHp1bSDDnGJlcnByw7xmZW4gZGVzIEFyYmVpdHNhdWZ0cmFncy1BZ2VudGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJ01vZHVsIHp1bSDDnGJlcnByw7xmZW4sIG9iIGVzIGtlaW5lbiBBZ2VudGVuIGbDvHIgZGVuIEFyYmVpdHNhdWZ0cmFnIGdpYnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJ01vZHVsIHp1bSDDnGJlcnByw7xmZW4sIG9iIGRlciBBZ2VudCBpbiBkZXIga29uZmlndXJpZXJ0ZW4gTGlzdGUgZW50aGFsdGVuIGlzdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJ01pdCBkaWVzZW0gTW9kdWwgd2lyZCBlaW4gTGluayBpbSBNZW7DvCBkZXIgVGlja2V0YW5zaWNodCBhbmdlemVpZ3QsIG1pdCBkZW0gZWluIENoYW5nZSBlcnN0ZWxsdCB3ZXJkZW4ga2Fubi4gRGFzIFRpY2tldCB3aXJkIGF1dG9tYXRpc2NoIG1pdCBkZW0gbmV1IGVyc3RlbGx0ZW4gQ2hhbmdlIHZlcmxpbmt0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICdaZWl0ZmVuc3RlciB2ZXJzY2hpZWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJ0FsbGUgQXJiZWl0c2F1ZnRyw6RnZSByZWNodHplaXRpZyB2ZXJzY2hpZWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IChmcm9tIHRlbXBsYXRlKSd9ID0gJ05ldSAoYXVzIFZvcmxhZ2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnTnVyIGRpZSBNaXRnbGllZGVyIGRpZXNlciBHcnVwcGVuIGhhYmVuIGRpZSBCZXJlY2h0aWd1bmcsIGRpZSBUaWNrZXQtVHlwZW4genUgdmVyd2VuZGVuLCBkaWUgaW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgZGVmaW5pZXJ0IHNpbmQsIHdlbm4gZGFzIEZlYXR1cmUgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIgYWt0aXZpZXJ0IGlzdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICdBbmRlcmUgRWluc3RlbGx1bmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJ8OcYmVyc2ljaHQgw7xiZXIgYWxsZSBDaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICdQSVInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICdQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQU0EnfSA9ICdQU0EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBvYmplY3QgaW4gdGhlIHByZWZlcmVuY2UgdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnUGFyYW1ldGVyIGbDvHIgZGFzICJVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2siLU9iamVrdCBpbiBkZW4gQmVudXR6ZXJlaW5zdGVsbHVuZ2VuIGRlcyBBZ2VudGVuLUludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICdQYXJhbWV0ZXIgZsO8ciBkaWUgQ2hhbmdlIMOcYmVyc2ljaHRzLUFuemVpZ2UgaW4gZGVyIEFuemVpZ2UtVmFyaWFudGUgIlMiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJ0bDvGhydCBkaWUga29uZmlndXJpZXJ0ZSBBa3Rpb24gZsO8ciBqZWRlcyBFcmVpZ25pcyBmw7xyIGplZGVuIGtvbmZpZ3VyaWVydGVuIFdlYnNlcnZpY2UgYXVzIChhbHMgSW52b2tlcikuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICdHZXBsYW50ZSBFbmR6ZWl0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJ0dlcGxhbnRlIFN0YXJ0emVpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJ0NoYW5nZSBhdXNkcnVja2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJ0FyYmVpdHNhdWZ0cmFnIGF1c2RydWNrZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJ1ZvcmF1c3NpY2h0bGljaGUgU2VydmljZS1WZXJmw7xnYmFya2VpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknfSA9ICdQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAnRGllIFZvcmF1c3NpY2h0bGljaGUgU2VydmljZS1WZXJmw7xnYmFya2VpdCAoUFNBKSBhbGxlciBDaGFuZ2VzLiDDnGJlcnNpY2h0IMO8YmVyIGdlbmVobWlndGUgQ2hhbmdlcyB1bmQgZGVyZW4gU2VydmljZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAnV3Vuc2NodGVybWluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdCZW7DtnRpZ3RlcyBSZWNodCB6dW0gw5xiZXJuZWhtZW4gZWluZXMgQXJiZWl0YXVmdHJhZ3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuLCB1bSBhdWYgZGllIMOcYmVyc2ljaHQgYWxsZXIgQ2hhbmdlcyB6dXp1Z3JlaWZlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnRXJmb3JkZXJsaWNoZSBCZXJlY2h0aWd1bmdlbiB6dW0gTMO2c2NoZW4gZWluZXMgQXJiZWl0YXVmdHJhZ3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnRXJmb3JkZXJsaWNoZSBCZXJlY2h0aWd1bmdlbiB6dW0gw4RuZGVybiBkZXMgQWdlbnRlbiBlaW5lcyBBcmJlaXRzYXVmdHJhZ3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuLCB1bSBlaW5lIFZvcmxhZ2UgYXVzIGVpbmVtIENoYW5nZSB6dSBlcnN0ZWxsZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuLCB1bSBlaW5lIFZvcmxhZ2UgYXVzIGVpbmVtIENBQiBlaW5lcyBDaGFuZ2UgenUgZXJzdGVsbGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnRXJmb3JkZXJsaWNoZSBCZXJlY2h0aWd1bmdlbiwgdW0gZWluZSBWb3JsYWdlIGF1cyBlaW5lbSBBcmJlaXRzYXVmdHJhZyB6dSBlcnN0ZWxsZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnRXJmb3JkZXJsaWNoZSBCZXJlY2h0aWd1bmdlbiwgdW0gQ2hhbmdlcyBhdXMgVm9ybGFnZW4genUgZXJzdGVsbGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJ0VyZm9yZGVybGljaGUgQmVyZWNodGlndW5nZW4genVtIEVyc3RlbGxlbiB2b24gQ2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nfSA9ICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBMw7ZzY2hlbiBlaW5lciBWb3JsYWdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBMw7ZzY2hlbiBlaW5lcyBBcmJlaXRzYXVmdHJhZ3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGNoYW5nZXMuJ30gPSAnRXJmb3JkZXJsaWNoZSBCZXJlY2h0aWd1bmdlbiB6dW0gTMO2c2NoZW4gdm9uIENoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJ0VyZm9yZGVybGljaGUgQmVyZWNodGlndW5nZW4genVtIEJlYXJiZWl0ZW4gZWluZXIgVm9ybGFnZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJ0VyZm9yZGVybGljaGUgQmVyZWNodGlndW5nZW4genVtIEJlYXJiZWl0ZW4gZWluZXMgQXJiZWl0c2F1ZnRyYWdzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBCZWFyYmVpdGVuIHZvbiBDaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBCZWFyYmVpdGVuIGRlciBCZWRpbmd1bmdlbiB2b24gQ2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnRXJmb3JkZXJsaWNoZSBCZXJlY2h0aWd1bmdlbiB6dW0gQmVhcmJlaXRlbiBkZXMgSW5oYWx0cyBlaW5lciBWb3JsYWdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBCZWFyYmVpdGVuIGRlciBiZXRlaWxpZ3RlbiBQZXJzb25lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBCZWFyYmVpdGVuIHp1bSB6ZWl0bGljaGVuIFZlcnNjaGllYmVuIHZvbiBDaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJ0VyZm9yZGVybGljaGUgQmVyZWNodGlndW5nZW4genVtIERydWNrZW4gdm9uIENoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBadXLDvGNrc2V0emVuIHZvbiBDaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnRXJmb3JkZXJsaWNoZSBCZXJlY2h0aWd1bmdlbiB6dW0gQmV0cmFjaHRlbiBlaW5lcyBBcmJlaXRzYXVmdHJhZ3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJ0VyZm9yZGVybGljaGUgQmVyZWNodGlndW5nZW4genVtIEFuc2NoYXVlbiB2b24gQ2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBFaW5zZWhlbiBkZXIgTGlzdGUgZGVyIENoYW5nZXMgYmVpIGRlbmVuIGRlciBCZW51dHplciBNaXRnbGllZCBkZXMgQ0FCcyBpc3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0KICAgICAgICAnQmVuw7Z0aWd0ZXMgUmVjaHQgenVtIEVpbnNlaGVuIGRlciBMaXN0ZSBkZXIgQ2hhbmdlcyBiZWkgZGVuZW4gZGVyIEJlbnV0emVyIENoYW5nZS1NYW5hZ2VyIGlzdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBFaW5zZWhlbiBkZXIgTGlzdGUgdm9uIFZvcmxhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBCZXRyYWNodGVuIGRlciBCZWRpbmd1bmdlbiB2b24gQ2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJ0VyZm9yZGVybGljaGUgQmVyZWNodGlndW5nZW4genVtIEVpbnNlaGVuIGRlciBIaXN0b3JpZSBlaW5lcyBDaGFuZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlci4nfSA9ICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBCZXRyYWNodGVuIGRlciBIaXN0b3JpZSBlaW5lcyBBcmJlaXRzYXVmdHJhZ3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJ0VyZm9yZGVybGljaGUgQmVyZWNodGlndW5nZW4genVtIEVpbnNlaGVuIGRlciBIaXN0b3JpZW5kZXRhaWxzIGVpbmVzIENoYW5nZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBCZXRyYWNodGVuIGRlciBIaXN0b3JpZW5kZXRhaWxzIGVpbmVzIEFyYmVpdHNhdWZ0cmFncy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBFaW5zZWhlbiBkZXIgQ2hhbmdlLVplaXRwbGFuLcOcYmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJ0VyZm9yZGVybGljaGUgQmVyZWNodGlndW5nZW4genVtIEVpbnNlaGVuIGRlciBDaGFuZ2UgUFNBLcOcYmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBFaW5zZWhlbiBkZXIgTGlzdGUgdm9uIENoYW5nZXMgbWl0IGVpbmVtIGFuc3RlaGVuZGVuIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnRXJmb3JkZXJsaWNoZSBCZXJlY2h0aWd1bmdlbiB6dW0gRWluc2VoZW4gZGVyIExpc3RlIGRlciBlaWdlbmVuIENoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICdFcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZ2VuIHp1bSBFaW5zZWhlbiBkZXIgTGlzdGUgdm9uIGVpZ2VuZW4gQXJiZWl0c2F1ZnRyw6RnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnRXJmb3JkZXJsaWNoZSBCZXJlY2h0aWd1bmdlbiB6dW0gVmVyZmFzc2VuIGVpbmVzIEJlcmljaHRlcyBmw7xyIGVpbmVuIEFyYmVpdHNhdWZ0cmFnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnRWluZW4gQ2hhbmdlIHVuZCBzZWluZSBBcmJlaXRzYXVmdHLDpGdlIHp1csO8Y2tzZXR6ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnQ2hhbmdlIHVuZCBBcmJlaXRzYXVmdHLDpGdlIHp1csO8Y2tzZXR6ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1J1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICdBdWZnYWJlIGF1c2bDvGhyZW4sIHVtIHp1IMO8YmVycHLDvGZlbiwgb2IgYmVzdGltbXRlIFplaXRlbiBpbiBDaGFuZ2VzIHVuZCBBcmJlaXRzYXVmdHLDpGdlbiBlcnJlaWNodCB3dXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnQ2hhbmdlIGFscyBWb3JsYWdlIHNwZWljaGVybi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZS4nfSA9ICdBcmJlaXRzYXVmdHJhZyBhbHMgVm9ybGFnZSBzcGVpY2hlcm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnWmVpdHBsYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NyZWVuIGFmdGVyIGNyZWF0aW5nIGEgd29ya29yZGVyJ30gPSAnQW5zaWNodCBuYWNoIEFyYmVpdHNhdWZ0cmFncy1FcnN0ZWxsdW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnQ2hhbmdlcyBzdWNoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnQ2hhbmdlcyBzdWNoZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGFzIENoYW5nZSBOdW1tZXIgR2VuZXJpZXJ1bmcgTW9kdWwuICJBdXRvSW5jcmVtZW50IiBlcmjDtmh0IGRpZSBDaGFuZ2UgTnVtbWVyIGZvcnRsYXVmZW5kLCBkaWVzZXMgRm9ybWF0IHN0ZWxsdCBzaWNoIGFscyBTeXN0ZW1JRC5aw6RobGVyIGRhciAoei5CLiAxMDAxMTgsIDEwMDExOSkuIE1pdCAiRGF0dW0iIHdlcmRlbiBkaWUgQ2hhbmdlIE51bW1lcm4gYXVzIGRlbSBha3R1ZWxsZW4gRGF0dW0gdW5kIGVpbmVtIFrDpGhsZXIgZ2VuZXJpZXJ0LCBkaWVzZXMgRm9ybWF0IHN0ZWxsdCBzaWNoIGFscyBKYWhyLk1vbmF0LlRhZy5aw6RobGVyIGRhciwgei5CLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBNaXQgIkRhdGFDaGVja3N1bSIgaMOkbmd0IGRlciBaw6RobGVyIGVpbmUgUHLDvGZ6aWZmZXIgYW4gZGVuIFdlcnQgYW4genV6w7xnbGljaCBkZXIgU3lzdGVtSUQuIERpZSBQcsO8ZnppZmZlciDDpG5kZXJ0IHNpY2ggdMOkZ2xpY2gsIGRpZXNlcyBGb3JtYXQgc3RlbGx0IHNpY2ggYWxzIEphaHIuTW9uYXQuVGFnLlN5c3RlbUlELlrDpGhsZXIuUHLDvGZ6aWZmZXIgZGFyLCB6LkIuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnRGVuIEFnZW50ZW4gZWluZXMgQXJiZWl0c2F1ZnRyYWdzIHNldHplbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIHN0YW5kYXJkbcOkw59pZ2UgSMO2aGUgKGluIFBpeGVsKSBmw7xyIElubGluZS1IVE1MLUZlbGRlciBpbiBkZXIgQ2hhbmdlLURldGFpbGFuc2ljaHQgdW5kIGRlciBBcmJlaXRzYXVmdHJhZy1EZXRhaWxhbnNpY2h0IGltIEFnZW50ZW4tSW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgbWF4aW1hbGUgSMO2aGUgKGluIFBpeGVsKSBmw7xyIElubGluZS1IVE1MLUZlbGRlciBpbiBkZXIgQ2hhbmdlLURldGFpbGFuc2ljaHQgdW5kIGRlciBBcmJlaXRzYXVmdHJhZy1EZXRhaWxhbnNpY2h0IGltIEFnZW50ZW4tSW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBtaW5pbWFsZSBaw6RobGVyZ3LDtsOfZSBmw7xyIENoYW5nZXMgKHdlbm4gIkF1dG9JbmNyZW1lbnQiIHVudGVyIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvciBhdXNnZXfDpGhsdCB3dXJkZSkuIFN0YW5kYXJkIGlzdCA1LCBkLmguIGRlciBaw6RobGVyIHN0YXJ0ZXQgbWl0IDEwMDAwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJ0tvbmZpZ3VyYXRpb24gZsO8ciBkaWUgU3RhdGUgTWFjaGluZSBmw7xyIENoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnS29uZmlndXJhdGlvbiBmw7xyIGRpZSBTdGF0ZSBNYWNoaW5lIGbDvHIgQXJiZWl0c2F1ZnRyw6RnZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBjaGVja2JveCBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGlmIHRoZSB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGFsc28gYmUgbW92ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgbW9kaWZpZWQgYW5kIHRoZSBwbGFubmVkIGVuZCB0aW1lIGhhcyBjaGFuZ2VkLid9ID0KICAgICAgICAnWmVpZ3QgaW4gZGVyICJBcmJlaXRzYXVmdHJhZyBiZWFyYmVpdGVuIi1BbnNpY2h0IGltIEFnZW50ZW4tSW50ZXJmYWNlIGVpbiBLb250cm9sbGvDpHN0Y2hlbiwgZGFzIGVzIGVybGF1YnQgZGllIG5hY2hmb2xnZW5kZW4gQXJiZWl0c2F1ZnRyw6RnZSB6dSB2ZXJzY2hpZWJlbiBmYWxscyBkZXIgYmVhcmJlaXRldGUgQXJiZWl0c2F1ZnRyYWcgdmVyw6RuZGVydCB3dXJkZSB1bmQgZGllIGdlcGxhbnRlIEVuZHplaXQgc2ljaCBnZcOkbmRlcnQgaGF0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdaZWlndCBpbiBkZXIgQXJiZWl0c2F1ZnRyYWctRGV0YWlsYW5zaWNodCBpbSBBZ2VudGVuLUludGVyZmFjZSBlaW5lbiBNZW7DvC1MaW5rLCBkZXIgZXMgZXJsYXVidCwgZGVuIEFyYmVpdHNhdWZ0cmFncy1BZ2VudGVuIHp1IMOkbmRlcm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGluIGRlciBDaGFuZ2UtRGV0YWlsYW5zaWNodCBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgZWluZW4gTWVuw7wtTGluaywgZGVyIGVzIGVybGF1YnQgZGVuIENoYW5nZSBhbHMgVm9ybGFnZSB6dSBzcGVpY2hlcm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGluIGRlciBBcmJlaXRzYXVmdHJhZy1EZXRhaWxhbnNpY2h0IGltIEFnZW50ZW4tSW50ZXJmYWNlIGVpbmVuIE1lbsO8IExpbmssIGRlciBlcyBlcmxhdWJ0LCBlaW5lbiBBcmJlaXRzYXVmdHJhZyBhbHMgVm9ybGFnZSB6dSBkZWZpbmllcmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGluIGRlciBBcmJlaXRzYXVmdHJhZy1EZXRhaWxhbnNpY2h0IGltIEFnZW50ZW4tSW50ZXJmYWNlIGVpbmVuIE1lbsO8LUxpbmssIGRlciBlcyBlcmxhdWJ0LCBkZW4gQmVyaWNodCBlaW5lcyBBcmJlaXRzYXVmdHJhZ3MgenUgYmVhcmJlaXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnWmVpZ3QgaW4gZGVyIENoYW5nZS1EZXRhaWxhbnNpY2h0IGRlcyBBZ2VudGVuLUludGVyZmFjZSBlaW5lbiBNZW7DvC1MaW5rLCBkZXIgZXMgZXJsYXVidCBkZW4gQ2hhbmdlIG1pdCBlaW5lbSBhbmRlcmVuIE9iamVrdCB6dSB2ZXJrbsO8cGZlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGluIGRlciBBcmJlaXRzYXVmdHJhZy1EZXRhaWxhbnNpY2h0IGltIEFnZW50ZW4tSW50ZXJmYWNlIGVpbmVuIE1lbsO8LUxpbmssIGRlciBlcyBlcmxhdWJ0LCBlaW5lbiBBcmJlaXRzYXVmdHJhZyBtaXQgZWluZW0gYW5kZXJlbiBPYmpla3QgenUgdmVya27DvHBmZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdaZWlndCBpbiBkZXIgQ2hhbmdlLURldGFpbGFuc2ljaHQgZGVzIEFnZW50ZW4tSW50ZXJmYWNlIGVpbmVuIE1lbsO8LUxpbmsgenVtIMOEbmRlcm4gZGVzIFplaXRmZW5zdGVycy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRha2luZyBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGNvbmRpdGlvbnMgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGluIGRlciBDaGFuZ2UgWm9vbSBBbnNpY2h0IGRlcyBBZ2VudGVuLUludGVyZmFjZXMgZWluZW4gTWVudSBMaW5rIHp1bSBadWdyaWZmIGF1ZiBkaWUgQmVkaW5ndW5nZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGluIGRlciBDaGFuZ2UgWm9vbSBBbnNpY2h0IGRlcyBBZ2VudGVuLUludGVyZmFjZXMgZWluZW4gTWVudSBMaW5rIHp1bSBadWdyaWZmIGF1ZiBkaWUgSGlzdG9yaWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdaZWlndCBpbSBNZW7DvCBkZXIgQ2hhbmdlLURldGFpbGFuc2ljaHQgaW0gQWdlbnRlbi1JbnRlcmZhY2UgZWluZW4gTGluayB6dW0gSGluenVmw7xnZW4gZWluZXMgQXJiZWl0c2F1ZnRyYWdzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGluIGRlciBDaGFuZ2UtRGV0YWlsYW5zaWNodCBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgZWluZW4gTWVuw7wtTGluayB6dW0gTMO2c2NoZW4gZWluZXMgQ2hhbmdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgd29ya29yZGVyIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGltIE1lbsO8IGRlciBBcmJlaXRzYXVmdHJhZy1EZXRhaWxhbnNpY2h0IGltIEFnZW50ZW4tSW50ZXJmYWNlIGVpbmVuIExpbmsgenVtIEzDtnNjaGVuIGVpbmVzIEFyYmVpdHNhdWZ0cmFncy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGluIGRlciBDaGFuZ2UgWm9vbSBBbnNpY2h0IGRlcyBBZ2VudGVuLUludGVyZmFjZXMgZWluZW4gTWVudSBMaW5rIHp1bSBCZWFyYmVpdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdaZWlndCBpbiBkZXIgQ2hhbmdlLURldGFpbGFuc2ljaHQgZGVzIEFnZW50ZW4tSW50ZXJmYWNlIGVpbmVuIE1lbsO8LUxpbmsgenVtIFp1csO8Y2tnZWhlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGltIE1lbsO8IGRlciBBcmJlaXRzYXVmdHJhZy1EZXRhaWxhbnNpY2h0IGltIEFnZW50ZW4tSW50ZXJmYWNlIGVpbmVuIExpbmsgenVtIFp1csO8Y2tnZWhlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdaZWlndCBpbiBkZXIgIkNoYW5nZSBab29tIiBBbnNpY2h0IGRlciBBZ2VudGVuLU9iZXJmbMOkY2hlIGVpbmVuICBNZW51IExpbmsgZGVyIGVzIGVybGF1YnQgZGVuIENoYW5nZSBhdXN6dWRydWNrZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnWmVpZ3QgaW4gZGVyIENoYW5nZS1EZXRhaWxhbnNpY2h0IGRlcyBBZ2VudGVuLUludGVyZmFjZSBlaW5lbiBNZW7DvC1MaW5rLCBkZXIgZXMgZXJsYXVidCBkZW4gQ2hhbmdlIHVuZCBzZWluZSBBcmJlaXRzYXVmdHLDpGdlIHp1csO8Y2t6dXNldHplbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnWmVpZ3QgaW0gTWVuw7wgZGVyIENoYW5nZS1EZXRhaWxhbnNpY2h0IGltIEFnZW50ZW4tSW50ZXJmYWNlIGVpbmVuIExpbmssIGRlciBkaWUgYmV0ZWlsaWd0ZW4gUGVyc29uZW4gZWluZXMgQ2hhbmdlcyBhbnplaWd0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGRpZSBDaGFuZ2UtSGlzdG9yaWUgKHVtZ2VrZWhydGUgUmVpaGVuZm9sZ2UpIGltIEFnZW50ZW4tSW50ZXJmYWNlIGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnU3RhdGUgTWFjaGluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnU3BlaWNoZXJ0IENoYW5nZSB1bmQgQXJiZWl0c2F1ZnRyYWdzLUlEIHVuZCBkaWUgenVnZWjDtnJpZ2UgVm9ybGFnZW4tSUQgd8OkaHJlbmQgZWluIEJlbnV0emVyIGRpZSBWb3JsYWdlIGJlYXJiZWl0ZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnQXJiZWl0c2F1ZnRyYWcgw7xiZXJuZWhtZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnQXJiZWl0c2F1ZnRyYWcgw7xiZXJuZWhtZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICdBcmJlaXRzYXVmdHJhZyDDvGJlcm5laG1lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICdWb3JsYWdlbsO8YmVyc2ljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJ1ZvcmxhZ2VuLVR5cCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICdWb3JsYWdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnQ2hhbmdlLUlkZW50aWZpa2F0b3IsIHouIEIuIENoYW5nZSMsIE1laW5DaGFuZ2UjLiBBbHMgU3RhbmRhcmQgd2lyZCBDaGFuZ2UjIHZlcndlbmRldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJ0FyYmVpdHNhdWZ0cmFnLUlkZW50aWZpa2F0b3IsIHouIEIuIEFyYmVpdHNhdWZ0cmFnIywgTWVpbmVBcmJlaXRzYXVmdHLDpGdlIy4gQWxzIFN0YW5kYXJkIHdpcmQgIldvcmtvcmRlciMiIHZlcndlbmRldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJ0RpZXNlcyBBQ0wgTW9kdWwgYmVzY2hyw6Rua3QgZGllIE51dHp1bmcgdm9uIFRpY2tldC1UeXBlbiwgZGllIGluIGRlciBTeXN0ZW1rb25maWd1cmF0aW9uIHVudGVyICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGRlZmluaWVydCBzaW5kLCB6dSBkZW4gTnV0emVybiBkZXIgR3J1cHBlbiBhdXMgIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIFdlaWwgZGllc2UgQUNMIG1pdCBhbmRlcmVuIEFDTHMsIHdlbGNoZSBnZWJ1bmRlbiBhbiBkZW4gVGlja2V0dHlwZW4gc2luZCwga29sbGlkaWVyZW4ga8O2bm50ZSwgaXN0IGRpZXNlIE9wdGlvbiBzdGFuZGFyZG3DpMOfaWcgZGVha3RpdmllcnQgdW5kIHNvbGx0ZSBudXIgbmFjaCBCZWRhcmYgYWt0aXZpZXJ0IHdlcmRlbi4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJ1plaXRmZW5zdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICdUeXBlbiBkZXIgVGlja2V0cywgaW4gZGVuZW4gaW4gZGVyIFRpY2tldC1EZXRhaWxhbnNpY2h0IGVpbiBMaW5rIGFuZ2V6ZWlndCB3aXJkLCB1bSBlaW5lbiBDaGFuZ2UgenUgZXJzdGVsbGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJ0JlbnV0emVyLVN1Y2hlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJ0FyYmVpdHNhdWZ0cmFnIGhpbnp1ZsO8Z2VuIChhdXMgVm9ybGFnZSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAnQXJiZWl0c2F1ZnRyYWcgaGluenVmw7xnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICdBcmJlaXRzYXVmdHJhZ3MtQWdlbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnQXJiZWl0c2F1ZnRyYWcgbMO2c2NoZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJ0FyYmVpdHNhdWZ0cmFnIGJlYXJiZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnQXJiZWl0c2F1ZnRyYWctSGlzdG9yaWVuZGV0YWlscy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnQXJiZWl0c2F1ZnRyYWdzLUhpc3RvcmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJ0FyYmVpdHNhdWZ0cmFncy1CZXJpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJ0FyYmVpdHNhdWZ0cmFnLURldGFpbGFuc2ljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnQXJiZWl0c2F1ZnRyYWctRGV0YWlsYW5zaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJ2Vpbm1hbGlnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJ3JlZ2VsbcOkw59pZyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/el_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZWxfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ86azrHPhM63zrPOv8+Bzq/OseKGlM6Rzr3PhM6vzrrPhM+Fz4DOv8+C4oaUzqDPgc6/z4TOtc+BzrHOuc+Mz4TOt8+EzrEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBwcmlvcml0eSByZXN1bHQgb2YgY29tYmluYXRpbmcgQ2F0ZWdvcnkg4oaUIEltcGFjdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eSBhbGxvY2F0aW9uJ30gPSAnzprOsc+EzrHOvc6/zrzOriDOoM+Bzr/PhM61z4HOsc65zr/PhM6uz4TPic69JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VNYW5hZ2VtZW50IE5vdGlmaWNhdGlvbiBNYW5hZ2VtZW50J30gPSAnzpTOuc6xz4fOtc6vz4HOuc+DzrcgzpXOuc60zr/PgM6/zrnOrs+DzrXPic69IElUU00gQ2hhbmdlTWFuYWdlbWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05hbWUgaXMgcmVxdWlyZWQuJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTVN0YXRlTWFjaGluZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYSBjYXRhbG9nIGNsYXNzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGFsb2cgY2xhc3MgaXMgcmVxdWlyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPYmplY3QgTmFtZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIHN0YXRlIHRyYW5zaXRpb25zIGZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgc3RhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnB1dCBpbnZhbGlkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgRGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBDaGFuZ2UgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSB0eXBlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIHRvIGludm9sdmVkIHBlcnNvbnMgc2NyZWVuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgTmFtZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbnMgYW5kIEFjdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENvbmRpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbmRpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGEgdmFsaWQgbmFtZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBuYW1lIGlzIG5lZWRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHVwbGljYXRlIG5hbWU6J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbmFtZSBpcyBhbHJlYWR5IHVzZWQgYnkgYW5vdGhlciBjb25kaXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hdGNoaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FueSBleHByZXNzaW9uIChPUiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdG9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZXJhdG9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBFeHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEV4cHJlc3Npb25zIGZvdW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGV4cHJlc3Npb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEFjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBBY3Rpb25zIGZvdW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGFjdGlvbid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjaGFuZ2U/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgZGV0YWlscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbGQgVmFsdWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFZhbHVlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJbnZvbHZlZCBQZXJzb25zIG9mICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52b2x2ZWQgUGVyc29ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQWR2aXNvcnkgQm9hcmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgdGhpcyBDQUIgYXMgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRvIENBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlcyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIEVuZCBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBsYXRlIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IFN0YXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVyd3JpdGUgb3JpZ2luYWwgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIGNoYW5nZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluZm9ybWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnRlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3IocyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCd9ID0gJ86kzrXOu861z4XPhM6xzq/OsSDOsc67zrvOsc6zzq4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnzqTOtc67zrXPhc+EzrHOr86xIM6xzrvOu86xzrPOriDOsc+Az4wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgd29ya29yZGVyIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcG9yYXJ5IGNoYW5nZSB3aWxsIGJlIGNyZWF0ZWQgd2hpY2ggY29udGFpbnMgdGhlIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB3b3Jrb3JkZXIgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIFdvcmtvcmRlci4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgQ29uZGl0aW9uISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGFrZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCBjaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgRXhwcmVzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBkb2VzIG5vdCBoYXZlIGFuIGFsbG93ZWQgY2hhbmdlIHN0YXRlIHRvIGJlIGRlbGV0ZWQhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRTdGFydFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICfPjM67zrEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmFja291dCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICfOhs67zrvOtc+CIM+Bz4XOuM68zq/Pg861zrnPgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/en_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjplbl9JVFNNQ2hhbmdlTWFuYWdlbWVudDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICdQcmlvcml0eSBhbGxvY2F0aW9uJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlTWFuYWdlbWVudCBOb3RpZmljYXRpb24gTWFuYWdlbWVudCd9ID0gJ0lUU00gQ2hhbmdlTWFuYWdlbWVudCBOb3RpZmljYXRpb24gTWFuYWdlbWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICdBZGQgTm90aWZpY2F0aW9uIFJ1bGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJ05hbWUgaXMgcmVxdWlyZWQuJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pbklUU01TdGF0ZU1hY2hpbmUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICdBZG1pbiBTdGF0ZSBNYWNoaW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhIGNhdGFsb2cgY2xhc3MhJ30gPSAnU2VsZWN0IGEgY2F0YWxvZ3VlIGNsYXNzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGFsb2cgY2xhc3MgaXMgcmVxdWlyZWQhJ30gPSAnQSBjYXRhbG9ndWUgY2xhc3MgaXMgcmVxdWlyZWQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdDYXRhbG9ndWUgQ2xhc3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICdPYmplY3QgTmFtZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIHN0YXRlIHRyYW5zaXRpb25zIGZvcid9ID0gJ092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdEZWxldGUgdGhpcyBzdGF0ZSB0cmFuc2l0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgc3RhdGUhJ30gPSAnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICdQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudElUU01DaGFuZ2VBZGQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDaGFuZ2UnfSA9ICdBZGQgQ2hhbmdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnQ2hhbmdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICdKdXN0aWZpY2F0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAnSW5wdXQgaW52YWxpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0J30gPSAnSW1wYWN0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnUmVxdWVzdGVkIERhdGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJ1NlbGVjdCBDaGFuZ2UgVGVtcGxhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAnVGltZSB0eXBlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSB0eXBlLid9ID0gJ0ludmFsaWQgdGltZSB0eXBlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdGltZSd9ID0gJ05ldyB0aW1lJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIHRvIGludm9sdmVkIHBlcnNvbnMgc2NyZWVuJ30gPSAnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnSW52YWxpZCBOYW1lJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudElUU01DaGFuZ2VDb25kaXRpb24KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbnMgYW5kIEFjdGlvbnMnfSA9ICdDb25kaXRpb25zIGFuZCBBY3Rpb25zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICdEZWxldGUgQ29uZGl0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgY29uZGl0aW9uJ30gPSAnQWRkIG5ldyBjb25kaXRpb24nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJ05lZWQgYSB2YWxpZCBuYW1lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJ0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJ0R1cGxpY2F0ZSBuYW1lOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJ1RoaXMgbmFtZSBpcyBhbHJlYWR5IHVzZWQgYnkgYW5vdGhlciBjb25kaXRpb24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hdGNoaW5nJ30gPSAnTWF0Y2hpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJ0FueSBleHByZXNzaW9uIChPUiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAnQWxsIGV4cHJlc3Npb25zIChBTkQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb25zJ30gPSAnRXhwcmVzc2lvbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0b3InfSA9ICdTZWxlY3Rvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJ09wZXJhdG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBFeHByZXNzaW9uJ30gPSAnRGVsZXRlIEV4cHJlc3Npb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAnTm8gRXhwcmVzc2lvbnMgZm91bmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJ0FkZCBuZXcgZXhwcmVzc2lvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAnRGVsZXRlIEFjdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBBY3Rpb25zIGZvdW5kLid9ID0gJ05vIEFjdGlvbnMgZm91bmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAnQWRkIG5ldyBhY3Rpb24nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50SVRTTUNoYW5nZURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRJVFNNQ2hhbmdlRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudElUU01DaGFuZ2VIaXN0b3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAnV29ya29yZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgZGV0YWlscyd9ID0gJ1Nob3cgZGV0YWlscyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJ1Nob3cgd29ya29yZGVyJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJ01vZGlmaWVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJ09sZCBWYWx1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICdOZXcgVmFsdWUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJbnZvbHZlZCBQZXJzb25zIG9mICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52b2x2ZWQgUGVyc29ucyd9ID0gJ0ludm9sdmVkIFBlcnNvbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJ0NoYW5nZSBNYW5hZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaW52YWxpZC4nfSA9ICdVc2VyIGludmFsaWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICdDaGFuZ2UgQnVpbGRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQWR2aXNvcnkgQm9hcmQnfSA9ICdDaGFuZ2UgQWR2aXNvcnkgQm9hcmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIFRlbXBsYXRlJ30gPSAnQ0FCIFRlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnQXBwbHkgVGVtcGxhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICdOZXdUZW1wbGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAnQWRkIHRvIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICdJbnZhbGlkIFVzZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICdDdXJyZW50IENBQic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICdDaGFuZ2VzIHBlciBwYWdlJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnQ2hhbmdlIFRpdGxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJ0NoYW5nZSBCdWlsZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnQ2hhbmdlIE1hbmFnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJ1dvcmtvcmRlcnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnQ2hhbmdlIFN0YXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJ1JlcXVlc3RlZCBUaW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJ1BsYW5uZWQgU3RhcnQgVGltZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnUGxhbm5lZCBFbmQgVGltZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJ0FjdHVhbCBTdGFydCBUaW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJ0FjdHVhbCBFbmQgVGltZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRJVFNNQ2hhbmdlUmVzZXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudElUU01DaGFuZ2VTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcoZS5nLiAxMCo1MTU1IG9yIDEwNTY1OCopJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJ0NBQiBBZ2VudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAnZS5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXInfSA9ICdDQUIgQ3VzdG9tZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICdDaGFuZ2UgQ2F0ZWdvcnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJlZm9yZS9hZnRlciknfSA9ICcoYmVmb3JlL2FmdGVyKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmV0d2VlbiknfSA9ICcoYmV0d2VlbiknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50SVRTTUNoYW5nZVRlbXBsYXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBhcyBUZW1wbGF0ZSd9ID0gJ1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICdUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAnUmVzZXQgU3RhdGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJ092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnRGVsZXRlIG9yaWdpbmFsIGNoYW5nZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnTW92ZSBUaW1lIFNsb3QnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50SVRTTUNoYW5nZVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJ0NoYW5nZSBJbmZvcm1hdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnQ2hhbmdlIEluaXRpYXRvcihzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICdDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAnTGFzdCBjaGFuZ2VkJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnRWRpdCBDQUIgVGVtcGxhdGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFuZ2UgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnVGhlIG5ldyBjaGFuZ2Ugd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgaXQgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgd29ya29yZGVyIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyB3b3Jrb3JkZXIgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcG9yYXJ5IGNoYW5nZSB3aWxsIGJlIGNyZWF0ZWQgd2hpY2ggY29udGFpbnMgdGhlIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJ0EgdGVtcG9yYXJ5IGNoYW5nZSB3aWxsIGJlIGNyZWF0ZWQgd2hpY2ggY29udGFpbnMgdGhlIHdvcmtvcmRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAnRWRpdCBDb250ZW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICdDaGFuZ2UgVGltZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRJVFNNV29ya09yZGVyQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICdJbnN0cnVjdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJ0ludmFsaWQgd29ya29yZGVyIHR5cGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAnSW52YWxpZCBmb3JtYXQuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICdTZWxlY3QgV29ya29yZGVyIFRlbXBsYXRlJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudElUU01Xb3JrT3JkZXJBZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIFdvcmtvcmRlci4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgQ29uZGl0aW9uISd9ID0KICAgICAgICAnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICdUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudElUU01Xb3JrT3JkZXJFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBmb2xsb3dpbmcgd29ya29yZGVycyBhY2NvcmRpbmdseSd9ID0gJ01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzLSVzJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0J30gPSAnUmVwb3J0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJ1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICdUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudElUU01Xb3JrT3JkZXJUYWtlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnQ3VycmVudCBBZ2VudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJ1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50SVRTTVdvcmtPcmRlclpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJ1dvcmtvcmRlciBJbmZvcm1hdGlvbic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJ1Vua25vd24gbm90aWZpY2F0aW9uICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICdUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICdUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICdXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICdXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ05vIENoYW5nZUlEIGlzIGdpdmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJ05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXNlZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJ30gPSAnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICdDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnQ291bGQgbm90IGRlbGV0ZSBDb25kaXRpb25JRCAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICdDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnQ291bGQgbm90IGFkZCBuZXcgRXhwcmVzc2lvbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICdDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICdDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICdDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJ0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJ0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICdXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJ0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJ1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJ0NoYW5nZSBIaXN0b3J5JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICdDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICdXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJ092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJ092ZXJ2aWV3OiBNeSBDQUInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICdPdmVydmlldzogTXkgQ2hhbmdlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJ092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICdPdmVydmlldzogUElSJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICdPdmVydmlldzogUFNBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJ3Vua25vd24gY2hhbmdlIHRpdGxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnV29ya29yZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJ1dvcmtvcmRlciBOdW1iZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICdXb3Jrb3JkZXIgVGl0bGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICd1bmtub3duIHdvcmtvcmRlciB0aXRsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJ0NoYW5nZSBTdGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnUGxhbm5lZCBFZmZvcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZFRpbWUnfSA9ICdSZXF1ZXN0ZWQgVGltZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnUGxhbm5lZCBTdGFydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRW5kVGltZSd9ID0gJ1BsYW5uZWQgRW5kJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJ0FjdHVhbCBTdGFydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnQWN0dWFsIEVuZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaW1lJ30gPSAnQ2hhbmdlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICdDaGFuZ2UgTnVtYmVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnV29ya29yZGVyIFN0YXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICdXb3Jrb3JkZXIgVHlwZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudCd9ID0gJ1dvcmtvcmRlciBBZ2VudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJ1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJ1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJ092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJ0NoYW5nZSBTZWFyY2gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICdDaGFuZ2UgVGl0bGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ1dvcmtPcmRlcnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICdDaGFuZ2UgU2VhcmNoIFJlc3VsdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTnVtYmVyJ30gPSAnQ2hhbmdlIE51bWJlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnV29yayBPcmRlciBUaXRsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICdDaGFuZ2UgRGVzY3JpcHRpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICdDaGFuZ2UgSnVzdGlmaWNhdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICdXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJ1dvcmtPcmRlciBSZXBvcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnQ2hhbmdlIFByaW9yaXR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICdDaGFuZ2UgSW1wYWN0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICdDcmVhdGVkIEJ5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJ1dvcmtPcmRlciBTdGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJ1dvcmtPcmRlciBUeXBlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJ1dvcmtPcmRlciBBZ2VudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICdiZWZvcmUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpc2VkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJ0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnQWRkIGEgd29ya29yZGVyIGZpcnN0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJ0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICdQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJ1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICdObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICdUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAiJXMiISd9ID0gJ1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJ1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJ1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICdPdmVydmlldzogVGVtcGxhdGUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnfSA9ICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICdXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICdObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJ1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJ1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICdDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJ1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJ1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICdXb3JrT3JkZXIgSGlzdG9yeSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJ0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSBab29tJ30gPSAnV29ya09yZGVyIEhpc3RvcnkgWm9vbSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICdXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICdUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvRG9jdW1lbnRTZWFyY2gvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQXR0YWNobWVudCd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0RvY3VtZW50U2VhcmNoL0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29yayBPcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmsgT3JkZXIgQXR0YWNobWVudCd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnTXkgQ0FCcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDaGFuZ2VzJ30gPSAnTXkgQ2hhbmdlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJ015IFdvcmsgT3JkZXJzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0RvY3VtZW50U2VhcmNoL0RyaXZlci9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICdDaGFuZ2VzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0RvY3VtZW50U2VhcmNoL0RyaXZlci9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmsgT3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgRGVsZXRlZCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENvbmRpdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIENvbmRpdGlvbnMgb2YgQ2hhbmdlIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQ29uZGl0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRXhwcmVzc2lvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBFeHByZXNzaW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChFeHByZXNzaW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSAlczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0lUU01Db25kaXRpb24vT2JqZWN0L0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FsbCd9ID0gJ2FsbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICdhbnknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9Ob3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3JzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJ1JlcXVlc3RlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAnUGVuZGluZyBBcHByb3ZhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJ1JlamVjdGVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAnQXBwcm92ZWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICdJbiBQcm9ncmVzcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJ1BlbmRpbmcgUElSJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICdTdWNjZXNzZnVsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJ0ZhaWxlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJ0NhbmNlbGVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJ1JldHJhY3RlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAnQ3JlYXRlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJ0FjY2VwdGVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAnUmVhZHknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICdBcHByb3ZhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICdXb3Jrb3JkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmFja291dCd9ID0gJ0JhY2tvdXQgUGxhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJ0RlY2lzaW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJ1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJ2lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJ2lzIG5vdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJ2lzIGVtcHR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJ2lzIG5vdCBlbXB0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICdpcyBncmVhdGVyIHRoYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnaXMgbGVzcyB0aGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJ2lzIGJlZm9yZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJ2lzIGFmdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAnY29udGFpbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnZG9lcyBub3QgY29udGFpbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJ2JlZ2lucyB3aXRoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJ2VuZHMgd2l0aCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICdzZXQnOwoKICAgICMgSlMgRmlsZTogSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJ0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJ0FkZCBXb3Jrb3JkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICdBZGQgYSBjaGFuZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnQWRkIGZyb20gdGVtcGxhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJ0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJ0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnQ0FCIE1lbWJlciBTZWFyY2gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJ0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICdDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJ0NoYW5nZSBDQUIgVGVtcGxhdGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJ0NoYW5nZSBIaXN0b3J5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nfSA9ICdDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnQ2hhbmdlIE92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnQ2hhbmdlIFByaW50Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICdDaGFuZ2UgU2NoZWR1bGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJ0NoYW5nZSBab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJ0NoYW5nZSBhcmVhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICdDb25kaXRpb24gRWRpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICdDb25kaXRpb24gT3ZlcnZpZXcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJ0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICdDcmVhdGUgQ2hhbmdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICdDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICdEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICdEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICdEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICdEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJ0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJ0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICdEZWZpbmVzIGlmIHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBzaG91bGQgYmUgc2V0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICdEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBjb3VsZCBiZSBwcmludGVkIGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBjb3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBjb3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICdEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICdEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICdEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJ0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciB3b3Jrb3JkZXIgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciBjaGFuZ2Ugb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHdvcmtvcmRlciBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWNjb3VudGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDYXRlZ29yeUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlTWFuYWdlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgRHluYW1pY0ZpZWxkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgSW1wYWN0SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRWZmb3J0IGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFJlcXVlc3RlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJBZ2VudElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGVyaW9kIChpbiB5ZWFycyksIGluIHdoaWNoIHN0YXJ0IGFuZCBlbmQgdGltZXMgY2FuIGJlIHNlbGVjdGVkLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgcGVyaW9kIChpbiB5ZWFycyksIGluIHdoaWNoIHN0YXJ0IGFuZCBlbmQgdGltZXMgY2FuIGJlIHNlbGVjdGVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJ0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnRGVsZXRlIGEgY2hhbmdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICdEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICdEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICdEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICdEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJ0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJ0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICdEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnRWRpdCBhIGNoYW5nZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICdGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnSGlzdG9yeSBab29tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICdJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICdJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICdJVFNNIE15Q0FCIE92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICdJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRGVsZXRlLid9ID0gJ0lUU00gVGVtcGxhdGUgRGVsZXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJ0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJ0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnSVRTTSBUZW1wbGF0ZSBFZGl0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJ0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJ0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICdJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgSVRTTUNoYW5nZSBpbmRleC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBJVFNNV29ya09yZGVyIGluZGV4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICdJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJ0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICdJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICdDaGFuZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJ1dvcmtvcmRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJ0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJdCBjb250cm9scyBhdmFpbGFiaWxpdHkgZm9yIElUU01DaGFuZ2Ugc2VhcmNoIGRyaXZlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXQgY29udHJvbHMgYXZhaWxhYmlsaXR5IGZvciBJVFNNV29ya09yZGVyIHNlYXJjaCBkcml2ZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJ0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBhZ2VudHMsIHVzZWQgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJ0xvb2t1cCBvZiBhZ2VudHMsIHVzZWQgZm9yIGF1dG9jb21wbGV0aW9uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIGNhdGVnb3J5IOKGlCBpbXBhY3Qg4oaUIHByaW9yaXR5IG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIGlmIFdvcmtPcmRlckFkZCBvciBXb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUgc2hvdWxkIGJlIHBlcm1pdHRlZC4nfSA9CiAgICAgICAgJ01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICdNb2R1bGUgdG8gY2hlY2sgdGhlIGFnZW50Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBidWlsZGVyLid9ID0gJ01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QuJ30gPSAnTW92ZSBUaW1lIFNsb3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgYWxsIHdvcmtvcmRlcnMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IChmcm9tIHRlbXBsYXRlKSd9ID0gJ05ldyAoZnJvbSB0ZW1wbGF0ZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdPbmx5IHVzZXJzIG9mIHRoZXNlIGdyb3VwcyBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdGlja2V0IHR5cGVzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgaWYgdGhlIGZlYXR1cmUgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIgaXMgZW5hYmxlZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICdPdGhlciBTZXR0aW5ncyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJ092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSd9ID0gJ1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJ1BTQSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIGNoYW5nZXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmZvcm1zIHRoZSBjb25maWd1cmVkIGFjdGlvbiBmb3IgZWFjaCBldmVudCAoYXMgYW4gSW52b2tlcikgZm9yIGVhY2ggY29uZmlndXJlZCBXZWJzZXJ2aWNlLid9ID0KICAgICAgICAnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknfSA9ICdQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjaGFuZ2UgdGhlIHdvcmtvcmRlciBhZ2VudC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB3b3Jrb3JkZXIuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biB3b3Jrb3JkZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHdyaXRlIGEgcmVwb3J0IGZvciB0aGUgd29ya29yZGVyLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICdSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1J1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICdSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICdTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICdTZWFyY2ggQ2hhbmdlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICdTZWFyY2ggQ2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJ1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkF1dG9JbmNyZW1lbnQiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBEZWZhdWx0IGlzIDUsIHRoaXMgbWVhbnMgdGhlIGNvdW50ZXIgc3RhcnRzIGZyb20gMTAwMDAuJ30gPQogICAgICAgICdTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJ1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBjaGVja2JveCBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGlmIHRoZSB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGFsc28gYmUgbW92ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgbW9kaWZpZWQgYW5kIHRoZSBwbGFubmVkIGVuZCB0aW1lIGhhcyBjaGFuZ2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBjaGFuZ2luZyB0aGUgd29ya29yZGVyIGFnZW50LCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgd29ya29yZGVyIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIE1hY2hpbmUnfSA9ICdTdGF0ZSBNYWNoaW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuJ30gPQogICAgICAgICdTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlcid9ID0gJ1Rha2UgV29ya29yZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJ1Rha2UgV29ya29yZGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnVGVtcGxhdGUgT3ZlcnZpZXcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICdUZW1wbGF0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJ1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICdUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnVGltZSBTbG90JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICdUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJ1VzZXIgU2VhcmNoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJ1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJ1dvcmtvcmRlciBBZGQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICdXb3Jrb3JkZXIgQWdlbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnV29ya29yZGVyIERlbGV0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnV29ya29yZGVyIEVkaXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnV29ya29yZGVyIEhpc3RvcnkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnV29ya29yZGVyIFJlcG9ydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnV29ya29yZGVyIFpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICdvbmNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJ3JlZ3VsYXJseSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/en_CA_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZW5fQ0FfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnQ2hhbmdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICdKdXN0aWZpY2F0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB0aW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBDQUIgYXMgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgY29uZGl0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGNvbmRpdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0b3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEFjdGlvbnMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBkZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICdDaGFuZ2UgTWFuYWdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICdDaGFuZ2UgQnVpbGRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQWR2aXNvcnkgQm9hcmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgdGhpcyBDQUIgYXMgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRvIENBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlcyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIEVuZCBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBsYXRlIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IFN0YXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVyd3JpdGUgb3JpZ2luYWwgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIGNoYW5nZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluZm9ybWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnRlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3IocyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgd29ya29yZGVyIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcG9yYXJ5IGNoYW5nZSB3aWxsIGJlIGNyZWF0ZWQgd2hpY2ggY29udGFpbnMgdGhlIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICdJbnN0cnVjdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgcGxhbm5lZCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBwbGFubmVkIGVuZCB0aW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdC4nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgV29ya29yZGVyIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBXb3Jrb3JkZXIgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIENvbmRpdGlvbihzKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBmb2xsb3dpbmcgd29ya29yZGVycyBhY2NvcmRpbmdseSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGUgcGxhbm5lZCBlbmQgdGltZSBvZiB0aGlzIHdvcmtvcmRlciBpcyBjaGFuZ2VkLCB0aGUgcGxhbm5lZCBzdGFydCB0aW1lcyBvZiBhbGwgZm9sbG93aW5nIHdvcmtvcmRlcnMgd2lsbCBiZSBjaGFuZ2VkIGFjY29yZGluZ2x5J30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzLSVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnQnfSA9ICdSZXBvcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byB0YWtlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBXb3Jrb3JkZXIgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEluZm9ybWF0aW9uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBBZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biBub3RpZmljYXRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgbm90aWZpY2F0aW9uLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIFVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBJVFNNIENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biBjaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXInfSA9ICdXb3Jrb3JkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyTnVtYmVyJ30gPSAnV29ya29yZGVyIE51bWJlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUaXRsZSd9ID0gJ1dvcmtvcmRlciBUaXRsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJ0NoYW5nZSBTdGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnUGxhbm5lZCBFZmZvcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZFRpbWUnfSA9ICdSZXF1ZXN0ZWQgVGltZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnUGxhbm5lZCBTdGFydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRW5kVGltZSd9ID0gJ1BsYW5uZWQgRW5kJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJ0FjdHVhbCBTdGFydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnQWN0dWFsIEVuZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaW1lJ30gPSAnQ2hhbmdlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICdDaGFuZ2UgTnVtYmVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnV29ya29yZGVyIFN0YXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICdXb3Jrb3JkZXIgVHlwZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudCd9ID0gJ1dvcmtvcmRlciBBZ2VudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAnQ2hhbmdlIFRpdGxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICdSZXF1ZXN0ZWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJ1BlbmRpbmcgQXBwcm92YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICdSZWplY3RlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJ0FwcHJvdmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAnSW4gUHJvZ3Jlc3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICdQZW5kaW5nIFBJUic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAnU3VjY2Vzc2Z1bCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICdGYWlsZWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICdDYW5jZWxlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICdSZXRyYWN0ZWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJ0NyZWF0ZWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICdBY2NlcHRlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJ1JlYWR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAnQXBwcm92YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnV29ya29yZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICdCYWNrb3V0IFBsYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICdEZWNpc2lvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwaXInfSA9ICdQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICdkb2VzIG5vdCBjb250YWluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnQ2hhbmdlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICdDaGFuZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJ1dvcmtvcmRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQU0EnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBvYmplY3QgaW4gdGhlIHByZWZlcmVuY2UgdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIGNoYW5nZXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmZvcm1zIHRoZSBjb25maWd1cmVkIGFjdGlvbiBmb3IgZWFjaCBldmVudCAoYXMgYW4gSW52b2tlcikgZm9yIGVhY2ggY29uZmlndXJlZCBXZWJzZXJ2aWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjaGFuZ2UgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2VzXCcgQ0FCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgaW52b2x2ZWQgcGVyc29ucyBvZiBhIGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIG1vdmUgY2hhbmdlcyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgYSBDQUIgbWVtYmVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBvdmVydmlldyBvdmVyIGFsbCB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHdyaXRlIGEgcmVwb3J0IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1J1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NyZWVuIGFmdGVyIGNyZWF0aW5nIGEgd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkF1dG9JbmNyZW1lbnQiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBEZWZhdWx0IGlzIDUsIHRoaXMgbWVhbnMgdGhlIGNvdW50ZXIgc3RhcnRzIGZyb20gMTAwMDAuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3IgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBjaGVja2JveCBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGlmIHRoZSB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGFsc28gYmUgbW92ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgbW9kaWZpZWQgYW5kIHRoZSBwbGFubmVkIGVuZCB0aW1lIGhhcyBjaGFuZ2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBjaGFuZ2luZyB0aGUgd29ya29yZGVyIGFnZW50LCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBlZGl0aW5nIHRoZSByZXBvcnQgb2YgYSB3b3Jrb3JkZXIsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRha2luZyBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGNvbmRpdGlvbnMgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhZGQgYSB3b3Jrb3JkZXIgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgd29ya29yZGVyIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgd29ya29yZGVyIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZCAoZnJvbSB0ZW1wbGF0ZSkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/en_GB_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZW5fR0JfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICdQcmlvcml0eSBhbGxvY2F0aW9uJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VNYW5hZ2VtZW50IE5vdGlmaWNhdGlvbiBNYW5hZ2VtZW50J30gPSAnSVRTTSBDaGFuZ2VNYW5hZ2VtZW50IE5vdGlmaWNhdGlvbiBNYW5hZ2VtZW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJ0FkZCBOb3RpZmljYXRpb24gUnVsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Egbm90aWZpY2F0aW9uIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05hbWUgaXMgcmVxdWlyZWQuJ30gPSAnTmFtZSBpcyByZXF1aXJlZC4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBTdGF0ZSBNYWNoaW5lJ30gPSAnQWRtaW4gU3RhdGUgTWFjaGluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYSBjYXRhbG9nIGNsYXNzISd9ID0gJ1NlbGVjdCBhIGNhdGFsb2d1ZSBjbGFzcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJ0EgY2F0YWxvZ3VlIGNsYXNzIGlzIHJlcXVpcmVkISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnQWRkIGEgc3RhdGUgdHJhbnNpdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnQ2F0YWxvZ3VlIENsYXNzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAnT2JqZWN0IE5hbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICdPdmVydmlldyBvdmVyIHN0YXRlIHRyYW5zaXRpb25zIGZvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICdBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJ1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIG5leHQgc3RhdGUhJ30gPSAnUGxlYXNlIHNlbGVjdCBhIG5leHQgc3RhdGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDaGFuZ2UnfSA9ICdBZGQgQ2hhbmdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnQ2hhbmdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICdKdXN0aWZpY2F0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAnSW5wdXQgaW52YWxpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICdSZXF1ZXN0ZWQgRGF0ZSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBDaGFuZ2UgVGVtcGxhdGUnfSA9ICdTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJ1RpbWUgdHlwZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICdJbnZhbGlkIHRpbWUgdHlwZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICdOZXcgdGltZSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIHRvIGludm9sdmVkIHBlcnNvbnMgc2NyZWVuJ30gPSAnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnSW52YWxpZCBOYW1lJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJ0NvbmRpdGlvbnMgYW5kIEFjdGlvbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENvbmRpdGlvbid9ID0gJ0RlbGV0ZSBDb25kaXRpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICdBZGQgbmV3IGNvbmRpdGlvbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbmRpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGEgdmFsaWQgbmFtZS4nfSA9ICdOZWVkIGEgdmFsaWQgbmFtZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBuYW1lIGlzIG5lZWRlZC4nfSA9ICdBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICdEdXBsaWNhdGUgbmFtZTonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGNvbmRpdGlvbi4nfSA9ICdUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJ01hdGNoaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FueSBleHByZXNzaW9uIChPUiknfSA9ICdBbnkgZXhwcmVzc2lvbiAoT1IpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJ0FsbCBleHByZXNzaW9ucyAoQU5EKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJ0V4cHJlc3Npb25zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdG9yJ30gPSAnU2VsZWN0b3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICdPcGVyYXRvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJ0RlbGV0ZSBFeHByZXNzaW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEV4cHJlc3Npb25zIGZvdW5kLid9ID0gJ05vIEV4cHJlc3Npb25zIGZvdW5kLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGV4cHJlc3Npb24nfSA9ICdBZGQgbmV3IGV4cHJlc3Npb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEFjdGlvbid9ID0gJ0RlbGV0ZSBBY3Rpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICdObyBBY3Rpb25zIGZvdW5kLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGFjdGlvbid9ID0gJ0FkZCBuZXcgYWN0aW9uJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICdXb3Jrb3JkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICdTaG93IGRldGFpbHMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICdTaG93IHdvcmtvcmRlcic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJ01vZGlmaWVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJ09sZCBWYWx1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICdOZXcgVmFsdWUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnSW52b2x2ZWQgUGVyc29ucyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VyJ30gPSAnQ2hhbmdlIE1hbmFnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJ1VzZXIgaW52YWxpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcid9ID0gJ0NoYW5nZSBCdWlsZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBBZHZpc29yeSBCb2FyZCd9ID0gJ0NoYW5nZSBBZHZpc29yeSBCb2FyZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgVGVtcGxhdGUnfSA9ICdDQUIgVGVtcGxhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICdBcHBseSBUZW1wbGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJ05ld1RlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgdGhpcyBDQUIgYXMgdGVtcGxhdGUnfSA9ICdTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICdBZGQgdG8gQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJ0ludmFsaWQgVXNlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJ0N1cnJlbnQgQ0FCJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICdDaGFuZ2VzIHBlciBwYWdlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGl0bGUnfSA9ICdDaGFuZ2UgVGl0bGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBCdWlsZGVyJ30gPSAnQ2hhbmdlIEJ1aWxkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICdDaGFuZ2UgTWFuYWdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAnV29ya29yZGVycyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICdDaGFuZ2UgU3RhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnUmVxdWVzdGVkIFRpbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAnUGxhbm5lZCBTdGFydCBUaW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICdQbGFubmVkIEVuZCBUaW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnQWN0dWFsIFN0YXJ0IFRpbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIEVuZCBUaW1lJ30gPSAnQWN0dWFsIEVuZCBUaW1lJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcoZS5nLiAxMCo1MTU1IG9yIDEwNTY1OCopJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJ0NBQiBBZ2VudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAnZS5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXInfSA9ICdDQUIgQ3VzdG9tZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICdDaGFuZ2UgQ2F0ZWdvcnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJlZm9yZS9hZnRlciknfSA9ICcoYmVmb3JlL2FmdGVyKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmV0d2VlbiknfSA9ICcoYmV0d2VlbiknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJ1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICdSZXNldCBTdGF0ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICdEZWxldGUgb3JpZ2luYWwgY2hhbmdlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJ01vdmUgVGltZSBTbG90JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJ0NoYW5nZSBJbmZvcm1hdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnQ2hhbmdlIEluaXRpYXRvcihzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICdDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAnTGFzdCBjaGFuZ2VkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDQUIgVGVtcGxhdGUnfSA9ICdFZGl0IENBQiBUZW1wbGF0ZSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgd29ya29yZGVyIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICdUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJ0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAnRWRpdCBDb250ZW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICdDaGFuZ2UgVGltZSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgdG8gJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnN0cnVjdGlvbid9ID0gJ0luc3RydWN0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnSW52YWxpZCB3b3Jrb3JkZXIgdHlwZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICdUaGUgcGxhbm5lZCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBwbGFubmVkIGVuZCB0aW1lISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdC4nfSA9ICdJbnZhbGlkIGZvcm1hdC4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgV29ya29yZGVyIFRlbXBsYXRlJ30gPSAnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/J30gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICdZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBXb3Jrb3JkZXIgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIENvbmRpdGlvbihzKSd9ID0gJ1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICdNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJ0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzLSVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnQnfSA9ICdSZXBvcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJ1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGFrZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBBZ2VudCd9ID0gJ0N1cnJlbnQgQWdlbnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJ1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEluZm9ybWF0aW9uJ30gPSAnV29ya29yZGVyIEluZm9ybWF0aW9uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBBZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biBub3RpZmljYXRpb24gJXMhJ30gPSAnVW5rbm93biBub3RpZmljYXRpb24gJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgbm90aWZpY2F0aW9uLid9ID0gJ1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgbm90aWZpY2F0aW9uLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIFVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBJVFNNIENoYW5nZXMnfSA9ICdPdmVydmlldzogSVRTTSBDaGFuZ2VzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISd9ID0gJ1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICdNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJ1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJ1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICdUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpc2VkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICdDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICdDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICdDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnQ291bGQgbm90IGFkZCBuZXcgRXhwcmVzc2lvbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICdDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICdDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICdDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJ0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJ0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICdXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJ0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJ1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJ0NoYW5nZSBIaXN0b3J5JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICdDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICdXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJ092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJ092ZXJ2aWV3OiBNeSBDQUInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICdPdmVydmlldzogTXkgQ2hhbmdlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJ092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICdPdmVydmlldzogUElSJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICdPdmVydmlldzogUFNBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJ3Vua25vd24gY2hhbmdlIHRpdGxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnV29ya29yZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJ1dvcmtvcmRlciBOdW1iZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICdXb3Jrb3JkZXIgVGl0bGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICd1bmtub3duIHdvcmtvcmRlciB0aXRsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJ0NoYW5nZSBTdGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnUGxhbm5lZCBFZmZvcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZFRpbWUnfSA9ICdSZXF1ZXN0ZWQgVGltZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnUGxhbm5lZCBTdGFydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRW5kVGltZSd9ID0gJ1BsYW5uZWQgRW5kJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJ0FjdHVhbCBTdGFydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnQWN0dWFsIEVuZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaW1lJ30gPSAnQ2hhbmdlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICdDaGFuZ2UgTnVtYmVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnV29ya29yZGVyIFN0YXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICdXb3Jrb3JkZXIgVHlwZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudCd9ID0gJ1dvcmtvcmRlciBBZ2VudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJ1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJ1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJ092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJ0NoYW5nZSBTZWFyY2gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICdDaGFuZ2UgVGl0bGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ1dvcmtPcmRlcnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICdDaGFuZ2UgU2VhcmNoIFJlc3VsdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTnVtYmVyJ30gPSAnQ2hhbmdlIE51bWJlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnV29yayBPcmRlciBUaXRsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICdDaGFuZ2UgRGVzY3JpcHRpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICdDaGFuZ2UgSnVzdGlmaWNhdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICdXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJ1dvcmtPcmRlciBSZXBvcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnQ2hhbmdlIFByaW9yaXR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICdDaGFuZ2UgSW1wYWN0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICdDcmVhdGVkIEJ5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJ1dvcmtPcmRlciBTdGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJ1dvcmtPcmRlciBUeXBlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJ1dvcmtPcmRlciBBZ2VudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICdiZWZvcmUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpc2VkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJ0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnQWRkIGEgd29ya29yZGVyIGZpcnN0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJ0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICdQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJ1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICdObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICdUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAiJXMiISd9ID0gJ1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJ1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJ1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICdPdmVydmlldzogVGVtcGxhdGUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnfSA9ICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICdXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICdObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJ1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJ1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICdDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJ1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJ1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICdXb3JrT3JkZXIgSGlzdG9yeSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJ0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSBab29tJ30gPSAnV29ya09yZGVyIEhpc3RvcnkgWm9vbSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICdXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICdUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICdNeSBDQUJzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICdNeSBDaGFuZ2VzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IFdvcmsgT3JkZXJzJ30gPSAnTXkgV29yayBPcmRlcnMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAnYWxsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJ2FueSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnUmVxdWVzdGVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICdQZW5kaW5nIEFwcHJvdmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAnUmVqZWN0ZWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICdBcHByb3ZlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJ0luIFByb2dyZXNzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAnUGVuZGluZyBQSVInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJ1N1Y2Nlc3NmdWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAnRmFpbGVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnQ2FuY2VsZWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnUmV0cmFjdGVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICdDcmVhdGVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnQWNjZXB0ZWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICdSZWFkeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ0FwcHJvdmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJ1dvcmtvcmRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnQmFja291dCBQbGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnRGVjaXNpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnaXMgbm90JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnaXMgZW1wdHknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAnaXMgbm90IGVtcHR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJ2lzIGdyZWF0ZXIgdGhhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBsZXNzIHRoYW4nfSA9ICdpcyBsZXNzIHRoYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnaXMgYmVmb3JlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnaXMgYWZ0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICdjb250YWlucyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICdkb2VzIG5vdCBjb250YWluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnYmVnaW5zIHdpdGgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZW5kcyB3aXRoJ30gPSAnZW5kcyB3aXRoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJ3NldCc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJ0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICdBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICdBZGQgV29ya29yZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJ0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnQWRkIGEgY2hhbmdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJ0FkZCBmcm9tIHRlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJ0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICdBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJ0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJ0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJ0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICdBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJ0NBQiBNZW1iZXIgU2VhcmNoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICdDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICdDaGFuZ2UgQ0FCIFRlbXBsYXRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICdDaGFuZ2UgSGlzdG9yeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJ0NoYW5nZSBPdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJ0NoYW5nZSBQcmludC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAnQ2hhbmdlIFNjaGVkdWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJ0NoYW5nZSBab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJ0NoYW5nZSBhcmVhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJ0NvbmRpdGlvbiBFZGl0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJ0NvbmRpdGlvbiBPdmVydmlldyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJ0NyZWF0ZSBDaGFuZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIChmcm9tIHRlbXBsYXRlKSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBub3RpZmljYXRpb25zLid9ID0gJ0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJ0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJ0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJ0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJ0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICdEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICdEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJ0RlZmluZXMgaWYgdGhlIHBsYW5uZWQgZWZmb3J0IHNob3VsZCBiZSBzaG93bi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2VhcmNoZWQgYnkgY3VzdG9tZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJ0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICdEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLid9ID0gJ0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICdEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJ0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJ0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0gJ0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0gJ0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJ0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJ0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICdEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGF0dHJpYnV0ZXMgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIHRvb2x0aXAgb2YgdGhlIHdvcmtvcmRlciBncmFwaCBpbiB0aGUgY2hhbmdlIHpvb20uIFRvIHNob3cgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGluIHRoZSB0b29sdGlwLCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGxpa2UgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJ0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnRGVsZXRlIGEgY2hhbmdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICdEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICdEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICdEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICdEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJ0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJ0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICdEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnRWRpdCBhIGNoYW5nZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICdGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnSGlzdG9yeSBab29tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICdJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICdJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnQ2hhbmdlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJ0lUU00gTXlDQUIgT3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJ0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICdJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICdJVFNNIFRlbXBsYXRlIEVkaXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICdJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICdJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICdJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJ0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJ0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICdJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJ0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnQ2hhbmdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01Xb3JrT3JkZXInfSA9ICdXb3Jrb3JkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZnJlcXVlbmN5IGlzIFwncmVndWxhcmx5XCcsIHlvdSBjYW4gY29uZmlndXJlIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCAoZXZlcnkgWCBob3VycykuJ30gPQogICAgICAgICdJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIHdvcmtvcmRlciBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnTW9kdWxlIHRvIGNoZWNrIGlmIFdvcmtPcmRlckFkZCBvciBXb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUgc2hvdWxkIGJlIHBlcm1pdHRlZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICdNb2R1bGUgdG8gY2hlY2sgdGhlIENBQiBtZW1iZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGFnZW50Lid9ID0gJ01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICdNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBtYW5hZ2VyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICdNb2R1bGUgdG8gY2hlY2sgdGhlIHdvcmtvcmRlciBhZ2VudC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nfSA9ICdNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICdNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBzaG93IGEgbGluayB0byBjcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4gVGhlIHRpY2tldCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIG5ldyBjaGFuZ2UuJ30gPQogICAgICAgICdNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICdNb3ZlIFRpbWUgU2xvdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnTmV3IChmcm9tIHRlbXBsYXRlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IHVzZXJzIG9mIHRoZXNlIGdyb3VwcyBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdGlja2V0IHR5cGVzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgaWYgdGhlIGZlYXR1cmUgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ090aGVyIFNldHRpbmdzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJ30gPSAnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnUFNBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICdQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICdQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJ1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICdQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjaGFuZ2UgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2VzXCcgQ0FCLid9ID0KICAgICAgICAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzIGZyb20gdGVtcGxhdGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB3b3Jrb3JkZXIuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB3b3Jrb3JkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGNoYW5nZXMuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB3b3Jrb3JkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBjaGFuZ2VzLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBjaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgaW52b2x2ZWQgcGVyc29ucyBvZiBhIGNoYW5nZS4nfSA9CiAgICAgICAgJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgaW52b2x2ZWQgcGVyc29ucyBvZiBhIGNoYW5nZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIG1vdmUgY2hhbmdlcyBpbiB0aW1lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBhIHdvcmtvcmRlci4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgYSBDQUIgbWVtYmVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBvdmVydmlldyBvdmVyIGFsbCB0ZW1wbGF0ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJ1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gY2hhbmdlcy4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICdSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJ1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJ1J1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJ1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJ1NlYXJjaCBDaGFuZ2VzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzLid9ID0gJ1NlYXJjaCBDaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lid9ID0KICAgICAgICAnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJ1NldHMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkF1dG9JbmNyZW1lbnQiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBEZWZhdWx0IGlzIDUsIHRoaXMgbWVhbnMgdGhlIGNvdW50ZXIgc3RhcnRzIGZyb20gMTAwMDAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3IgY2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICdTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnU3RhdGUgTWFjaGluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICdUYWtlIFdvcmtvcmRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICdUYWtlIFdvcmtvcmRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJ1RlbXBsYXRlIE92ZXJ2aWV3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnVGVtcGxhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICdUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJ1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJ1RpbWUgU2xvdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnVHlwZXMgb2YgdGlja2V0cywgd2hlcmUgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgYSBsaW5rIHRvIGFkZCBhIGNoYW5nZSB3aWxsIGJlIGRpc3BsYXllZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICdVc2VyIFNlYXJjaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICdXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICdXb3Jrb3JkZXIgQWRkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnV29ya29yZGVyIEFnZW50Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJ1dvcmtvcmRlciBEZWxldGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJ1dvcmtvcmRlciBFZGl0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJ1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJ1dvcmtvcmRlciBIaXN0b3J5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJ1dvcmtvcmRlciBSZXBvcnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJ1dvcmtvcmRlciBab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnb25jZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICdyZWd1bGFybHknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/es_CO_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfQ09fSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAndG9kbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9Ob3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3JzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVnaW5zIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZW5kcyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSBjaGFuZ2UgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIGNoYW5nZSBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBzaG91bGQgYmUgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHN0YXRlIGNhbiBiZSBzZXQgaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHBsYW5uZWQgZWZmb3J0IHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2VhcmNoZWQgYnkgY3VzdG9tZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciB3b3Jrb3JkZXIgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciBjaGFuZ2Ugb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHdvcmtvcmRlciBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWNjb3VudGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDYXRlZ29yeUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlTWFuYWdlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgRHluYW1pY0ZpZWxkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgSW1wYWN0SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRWZmb3J0IGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFJlcXVlc3RlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJBZ2VudElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGVyaW9kIChpbiB5ZWFycyksIGluIHdoaWNoIHN0YXJ0IGFuZCBlbmQgdGltZXMgY2FuIGJlIHNlbGVjdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGF0dHJpYnV0ZXMgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIHRvb2x0aXAgb2YgdGhlIHdvcmtvcmRlciBncmFwaCBpbiB0aGUgY2hhbmdlIHpvb20uIFRvIHNob3cgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGluIHRoZSB0b29sdGlwLCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGxpa2UgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBQSVIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNpZ25hbHMgZm9yIGVhY2ggSVRTTSBjaGFuZ2Ugc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHRlbXBsYXRlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyBkb25lIGZvciBjb25maWcgaXRlbSBjbGFzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01Xb3JrT3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZnJlcXVlbmN5IGlzIFwncmVndWxhcmx5XCcsIHlvdSBjYW4gY29uZmlndXJlIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCAoZXZlcnkgWCBob3VycykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIHdvcmtvcmRlciBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBhZ2VudHMsIHVzZWQgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIGNhdGVnb3J5IOKGlCBpbXBhY3Qg4oaUIHByaW9yaXR5IG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIGlmIFdvcmtPcmRlckFkZCBvciBXb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUgc2hvdWxkIGJlIHBlcm1pdHRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIENBQiBtZW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBidWlsZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBzaG93IGEgbGluayB0byBjcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4gVGhlIHRpY2tldCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIG5ldyBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgYWxsIHdvcmtvcmRlcnMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IChmcm9tIHRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IHVzZXJzIG9mIHRoZXNlIGdyb3VwcyBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdGlja2V0IHR5cGVzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgaWYgdGhlIGZlYXR1cmUgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ090cmFzIENvbmZpZ3VyYWNpb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/es_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0NhdGVnb3LDrWEg4oaUIEltcGFjdG8g4oaUIFByaW9yaWRhZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnR2VzdGlvbmFyIGxhIHByaW9yaWRhZCByZXN1bHRhZG8gZGUgY29tYmluYXIgQ2F0ZWdvcsOtYSDihpQgSW1wYWN0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHkgYWxsb2NhdGlvbid9ID0gJ0FzaWduYWNpw7NuIHByaW9yaXRhcmlhJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VNYW5hZ2VtZW50IE5vdGlmaWNhdGlvbiBNYW5hZ2VtZW50J30gPSAnR2VzdGnDs24gZGUgTm90aWZpY2FjaW9uZXMgZGUgQ2FtYmlvcyBJVFNNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJ0FncmVnYXIgUmVnbGEgZGUgTm90aWZpY2FjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnRWRpdGFyIFJlZ2xhIGRlIE5vdGlmaWNhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ8KhTGFzIE5vdGlmaWNhY2lvbmVzIGRlYmVuIHRlbmVyIHVuIG5vbWJyZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmFtZSBpcyByZXF1aXJlZC4nfSA9ICdFbCBub21icmUgZXMgcmVxdWVyaWRvLic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICdBZG1pbmlzdHJhY2nDs24gZGUgTWFxdWluYSBkZSBFc3RhZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhIGNhdGFsb2cgY2xhc3MhJ30gPSAnwqFTZWxlY2Npb25lIHVuYSBjbGFzZSBkZWwgY2F0YWxvZ28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0YWxvZyBjbGFzcyBpcyByZXF1aXJlZCEnfSA9ICfCoVNlIHJlcXVpZXJlIHVuYSBjbGFzZSBkZWwgQ2F0w6Fsb2dvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnQWRpY2lvbmFyIHVuIGVzdGFkbyBkZSB0cmFuc2ljacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnQ2xhc2UgZGUgQ2F0w6Fsb2dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAnTm9tYnJlIGRlbCBPYmpldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICdSZXN1bWVuIGRlIGxhcyB0cmFuc2ljaW9uZXMgZGUgZXN0YWRvIHBhcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ0VsaW1pbmFyIGVzdGUgZXN0YWRvIGRlIHRyYW5zaWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ0FkaWNpb25hciB1biBlc3RhZG8gZGUgdHJhbnNpY2nDs24gbnVldm8gcGFyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgc3RhdGUhJ30gPSAnwqFQb3IgZmF2b3Igc2VsZWNjaW9uZSB1biBlc3RhZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJyFQb3IgZmF2b3Igc2VsZWNjaW9uZSBlbCBzaWd1aWVudGUgZXN0YWRvwqEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnRWRpdGFyIHVuIGVzdGFkbyBkZSB0cmFuc2ljacOzbiBwYXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICfCv1JlYWxtZW50ZSBkZXNlYSBlbGltaW5hciBlc3RhIHRyYW5zaWNpw7NuIGRlIGVzdGFkbz8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnQWdyZWdhciBDYW1iaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UnfSA9ICdDYW1iaW8gSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKdXN0aWZpY2F0aW9uJ30gPSAnSnVzdGlmaWNhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICdFbnRyYWRhIGludsOhbGlkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICdGZWNoYSBzb2xpY2l0YWRhJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJ1NlbGVjY2lvbmFyIFBsYW50aWxsYSBkZSBDYW1iaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAnVGlwbyBkZSBmZWNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICdUaXBvIGRlIGhvcmEgaW52w6FsaWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdGltZSd9ID0gJ051ZXZvIGludGVydmFsbyBkZSB0aWVtcG8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ0d1YXJkYXIgQ29taXTDqSBkZSBDYW1iaW8gY29tbyBwbGFudGlsbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICd2b2x2ZXIgYSBwYW50YWxsYSBkZSBwZXJzb25hcyBpbnZvbHVjcmFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnTm9tYnJlIG5vIHbDoWxpZG8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnQ29uZGljaW9uZXMgeSBBY2Npb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnRWxpbWluYXIgY29uZGljacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJ0FncmVnYXIgbnVldmEgY29uZGljacOzbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbmRpdGlvbid9ID0gJ0VkaXRhciBjb25kaWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJ1NlIHJlcXVpZXJlIHVuIG5vbWJyZSB2w6FsaWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJ1NlIHJlcXVpZXJlIHVuIG5vbWJyZSB2YWxpZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJ05vbWJyZSBkdXBsaWNhZG86JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbmFtZSBpcyBhbHJlYWR5IHVzZWQgYnkgYW5vdGhlciBjb25kaXRpb24uJ30gPSAnRXN0ZSBub21icmUgZXN0YSBzaWVuZG8gdXNhZG8gcG9yIG90cmEgQ29uZGljacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICdDb2luY2lkZW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJ0N1YWxxdWllciBleHByZXNpw7NuIChPKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICdUb2RhcyBsYXMgZXhwcmVzaW9uZXMgKFkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb25zJ30gPSAnRXhwcmVzaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0b3InfSA9ICdTZWxlY2Npb25hZG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZXJhdG9yJ30gPSAnT3BlcmFkb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICdFbGltaW5hciBleHByZXNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEV4cHJlc3Npb25zIGZvdW5kLid9ID0gJ05vIHNlIGVuY3VlbnRyYW4gRXhwcmVzaW9uZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJ0FncmVnYXIgZXhwcmVzacOzbiBudWV2YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAnRWxpbWluYXIgQWNjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBBY3Rpb25zIGZvdW5kLid9ID0gJ05vIHNlIGVuY3VlbnRyYW4gQWNjaW9uZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAnQWdyZWdhciBhY2Npw7NuIG51ZXZhJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICfCv1JlYWxtZW50ZSBkZXNlYSBlbGltaW5hciBlc3RlIENhbWJpbz8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnRWRpdGFyICVzJXMnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnSGlzdMOzcmljbyBkZSAlcyVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ0NvbnRlbmlkbyBkZWwgaGlzdG9yaWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcid9ID0gJ09yZGVuIGRlIFRyYWJham8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ0ZlY2hhIGRlIENyZWFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICdNb3N0cmFyIGRldGFsbGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnTW9zdHJhciBPcmRlbiBkZSBUcmFiYWpvJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnSW5mb3JtYWNpw7NuIGRldGFsbGFkYSBkZSBsYSBoaXN0b3JpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJ01vZGlmaWNhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnVmFsb3IgQW50aWd1byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICdOdWV2byBWYWxvcic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnRWRpdGFyIHBlcnNvbmFzIGludm9sdWNyYWRhcyBkZSAlcyVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICdQZXJzb25hcyBJbnZvbHVjcmFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJ0FkbWluaXN0cmFkb3IgZGUgQ2FtYmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnRWwgdXN1YXJpbyBubyBlcyB2w6FsaWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVyJ30gPSAnQ29uc3RydWN0b3IgZGUgQ2FtYmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQWR2aXNvcnkgQm9hcmQnfSA9ICdDb21pdMOpcyBkZSBDYW1iaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIFRlbXBsYXRlJ30gPSAnUGxhbnRpbGxhIGRlIENvbWl0w6kgZGUgQ2FtYmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnQXBsaWNhciBQbGFudGlsbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICdOdWV2YSBQbGFudGlsbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ1NhbHZhciBDb21pdMOpIGRlIENhbWJpbyBjb21vIHBsYW50aWxsYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAnQWdyZWdhciBhbCBDb21pdMOpIGRlIENhbWJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnVXN1YXJpbyBpbnbDoWxpZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICdDb21pdMOpIGRlIENhbWJpb3MgQWN0dWFsJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnQWp1c3RlcyBkZSBDb250ZXh0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAnQ2FtYmlvcyBwb3IgcMOhZ2luYSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICdUw610dWxvIGRlIGxhIE9yZGVuIGRlIFRyYWJham8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnQ2FtYmlhciBUw610dWxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJ0FnZW50ZSBkZSBsYSBPcmRlbiBkZSBUcmFiYWpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBCdWlsZGVyJ30gPSAnQ29uc3RydWN0b3IgZGVsIENhbWJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTWFuYWdlcid9ID0gJ0FkbWluaXN0cmFkb3IgZGVsIENhbWJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAnT3JkZW4gZGUgVHJhYmFqbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICdDYW1iaWFyIEVzdGFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgU3RhdGUnfSA9ICdFc3RhZG8gZGUgbGEgT3JkZW4gZGUgVHJhYmFqbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJ1RpcG8gZGUgT3JkZW4gZGUgVHJhYmFqbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJ0ZlY2hhIGRlIFNvbGljaXR1ZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIFN0YXJ0IFRpbWUnfSA9ICdGZWNoYSBkZSBpbmljaW8gcGxhbmlmaWNhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJ0ZlY2hhIGRlIGZpbiBwbGFuaWZpY2FkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJ0ZlY2hhIGFjdHVhbCBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIEVuZCBUaW1lJ30gPSAnRmVjaGEgYWN0dWFsIGRlIGZpbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJ8K/UmVhbG1lbnRlIGRlc2VhIHJlc2V0ZWFyIGVzdGUgQ2FtYmlvPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcoZWouIDEwKjUxNTUgbyAxMDU2NTgqKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICdBZ2VudGUgZGVsIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAnZWouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJ0NsaWVudGUgZGVsIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJ0lUU00gaW5zdHJ1Y2Npw7NuIGRlIE9yZGVuIGRlIHRyYWJham8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAnSVRTTSBpbmZvcm1lIGRlIGxhIE9yZGVuIGRlIHRyYWJham8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUHJpb3JpdHknfSA9ICdJVFNNIENhbWJpbyBkZSBQcmlvcmlkYWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAnSVRTTSBDYW1iaW8gZGUgSW1wYWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICdDYXRlZ29yw61hIGRlIENhbWJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyhhbnRlcy9kZXNwdcOpcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnKGVudHJlKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICdHdWFyZGFyIENhbWJpbyBjb21vIFBsYW50aWxsYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBsYXRlIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICfCoVVuYSBwbGFudGlsbGEgZGViZSB0ZW5lciB1biBub21icmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJ0VsIG5vbWJyZSBkZSBsYSBwbGFudGlsbGEgZXMgaW1wcmVzY2luZGlibGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IFN0YXRlcyd9ID0gJ1JlZXN0YWJsZWNlciBFc3RhZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJ1NvYnJlZXNjcmliaXIgcGxhdGlsbGEgb3JpZ2luYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIGNoYW5nZSd9ID0gJ0VsaW1pbmFyIGNhbWJpbyBvcmlnaW5hbCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QnfSA9ICdNb3ZlciBQZXJpb2RvIGRlIFRpZW1wbyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICdJbmZvcm1hY2nDs24gZGVsIENhbWJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJ0VzZnVlcnpvIHBsYW5lYWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnRlZCBUaW1lJ30gPSAnVGllbXBvIGNvbnRhYmlsaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ0luaWNpYWRvcihlcykgZGUgQ2FtYmlvKHMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJ0NBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICfDmmx0aW1vIGNhbWJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICfDmmx0aW1vIGNhbWJpbyBwb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICdQYXJhIGFicmlyIGxpbmtzIGVuIGxvcyBzaWd1aWVudGVzIGJsb3F1ZXMgZGUgZGVzY3JpcGNpw7NuLCBwb2Ryw61hIG5lY2VzaXRhciBwcmVzaW9uYXIgbGEgdGVjbGFzIEN0cmwsIENtZCBvIFNoaWZ0IG1pZW50cmFzIHByZXNpb25hIGVsIGxpbmsgKGRlcGVuZGUgZGVsIGJyb3dzZXIgeSBlbCBTTykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICdEZXNjYXJnYXIgQWRqdW50byc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnRWRpdGFyIFBsYW50aWxsYSBkZSBDb21pdMOpIGRlIENhbWJpb3MnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFuZ2UgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICdFc3RvIGNyZWFyw6EgdW4gbnVldm8gY2FtYmlvIGEgcGFydGlyIGRlIGVzdGEgcGxhbnRpbGxhLCBwYXJhIHF1ZSBsbyBwdWVkYSBlZGl0YXIgeSBndWFyZGFyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ0VsIG51ZXZvIGNhbWJpbyBzZXLDoSBlbGltaW5hZG8gYXV0b23DoXRpY2FtZW50ZSBsdWVnbyBkZSBxdWUgc2VhIGd1YXJkYWRvIGNvbW8gcGxhbnRpbGxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ0VzdG8gY3JlYXLDoSB1bmEgbnVldmEgb3JkZW4gZGUgdHJhYmFqbyBhIHBhcnRpciBkZSBlc3RhIHBsYW50aWxsYSwgcGFyYSBxdWUgbGEgcHVlZGEgZWRpdGFyIHkgZ3VhcmRhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wb3JhcnkgY2hhbmdlIHdpbGwgYmUgY3JlYXRlZCB3aGljaCBjb250YWlucyB0aGUgd29ya29yZGVyLid9ID0KICAgICAgICAnU2UgY3JlYXLDoSB1biBjYW1iaW8gdGVtcG9yYWxtZW50ZSwgZWwgY3VhbCBjb250ZW5kcsOhIGxhIG9yZGVuIGRlIHRyYWJham8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICdFbCBjYW1iaW8gdGVtcG9yYWwgeSBsYSBudWV2YSBvcmRlbiBkZSB0cmFiYWpvIHNlIGVsaW1pbmFyw6FuIGRlIGZvcm1hIGF1dG9tw6F0aWNhIGRlc3B1w6lzIGRlIHF1ZSBsYSBvcmRlbiBkZSB0cmFiYWpvIHNlIGhheWEgZ3VhcmRhZG8gY29tbyBwbGFudGlsbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAnwr9EZXNlYSBwcm9jZWRlcj8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJ1BsYW50aWxsYSBJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbnRlbnQnfSA9ICdFZGl0YXIgQ29udGVuaWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJ0NyZWFkbyBwb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnQ2FtYmlhZG8gcG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnQ2FtYmlhciB0aWVtcG8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICdBw7FhZGlyIE9yZGVuIGRlIHRyYWJham8gYSAlcyVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnSW5zdHJ1Y2Npw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnVGlwbyBkZSBvcmRlbiBkZSB0cmFiYWpvIGludsOhbGlkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICfCoUxhIGZlY2hhIHBsYW5lYWRhIGRlIGluaWNpbyBkZWJlIHNlciBhbnRlcmlvciBhIGxhIGRlIGZpbmFsaXphY2nDs24hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJ0Zvcm1hdG8gbm8gdsOhbGlkby4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgV29ya29yZGVyIFRlbXBsYXRlJ30gPSAnU2VsZWNjaW9uYXIgUGxhbnRpbGxhIGRlIE9yZGVuIGRlIFRyYWJham8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICdFZGl0YXIgQWdlbnRlIGRlIGxhIE9yZGVuIGRlIHRyYWJham8gZGUgJXMlcyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/J30gPSAnwr9SZWFsbWVudGUgZGVzZWEgZWxpbWluYXIgZXN0YSBvcmRlbiBkZSB0cmFiYWpvPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJ8KhTm8gZXMgcG9zaWJsZSBlbGltaW5hciBlc3RhIG9yZGVuIGRlIHRyYWJham8sIHB1ZXMgZXN0w6Egc2llbmRvIHVzYWRhIGVuIGFsIG1lbm9zIHVuYSBDb25kaWNpw7NuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnRXN0YSBvcmRlbiBkZSB0cmFiYWpvIHNlIHVzYSBlbiBsYShzKSBzaWd1aWVudGUocykgY29uZGljaW9uKGVzKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICdFZGl0YXIgJXMlcy0lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnTW92ZXIgbGFzIHNpZ3VpZW50ZXMgb3JkZW5lcyBkZSB0cmFiYWpvIGNvcnJlc3BvbmRpZW50ZW1lbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJ1NpIHNlIGNhbWJpYSBsYSBob3JhIGRlIGZpbmFsaXphY2nDs24gcHJldmlzdGEgZGUgZXN0YSBvcmRlbiBkZSB0cmFiYWpvICwgbGFzIGhvcmFzIGRlIGluaWNpbyBwbGFuaWZpY2FkYXMgZGUgdG9kYXMgbGFzIHNpZ3VpZW50ZXMgw7NyZGVuZXMgZGUgdHJhYmFqbyBzZSBjYW1iaWFyw6FuIGVuIGNvbnNlY3VlbmNpYSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICdIaXN0b3JpYWwgZGUgJXMlcy0lcyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICdFZGl0YXIgaW5mb3JtZSBkZSAlcyVzLSVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJ1JlcG9ydGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnwqFMYSBob3JhIGRlIGluaWNpbyBhY3R1YWwgZGViZSBzZXIgYW50ZXJpb3IgYSBsYSBkZSBmaW5hbGl6YWNpw7NuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICfCoURlYmUgZXN0YWJsZWNlciBsYSBob3JhIGRlIGluaWNpbyBhY3R1YWwgY3VhbmRvIGxhIGhvcmEgZGUgdMOpcm1pbm8gZXN0w6EgZXN0YWJsZWNpZGEhJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICdBZ2VudGUgQWN0dWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byB0YWtlIHRoaXMgd29ya29yZGVyPyd9ID0gJ8K/UmVhbG1lbnRlIGRlc2VhIHRvbWFyIGVzdGEgb3JkZW4gZGUgdHJhYmFqbz8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAnR3VhcmRhciBPcmRlbiBkZSBUcmFiYWpvIGNvbW8gUGxhbnRpbGxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnRWxpbWluYXIgb3JkZW4gZGUgdHJhYmFqbyBvcmlnaW5hbCAoeSBlbCBjYW1iaW8gcXVlIGxhIHJvZGVhKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICdJbmZvcm1hY2nDs24gZGUgbGEgT3JkZW4gZGUgVHJhYmFqbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnwqFBw7FhZGlkYSBub3RpZmljYWNpw7NuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICfCoU5vdGlmaWNhY2nDs24gZGVzY29ub2NpZGEgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgbm90aWZpY2F0aW9uLid9ID0gJ1NlIHByb2R1am8gdW4gZXJyb3IgYWwgY3JlYXIgbGEgbm90aWZpY2FjacOzbi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJ8KhRXN0YWRvIGRlIHRyYW5zaWNpw7NuIGFjdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJ8KhRXN0YWRvIGRlIHRyYW5zaWNpw7NuIGHDsWFkaWRvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnUmVzdW1lbjogQ2FtYmlvcyBJVFNNJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISd9ID0gJ8KhRWwgVGlja2V0IGNvbiBsYSBJRCAlcyBubyBleGlzdGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnfSA9CiAgICAgICAgJ0ZhbHRhIGxhIG9wY2nDs24gc3lzY29uZmlnICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICdObyBzZSBwdWRvIGFncmVnYXIgZWwgY2FtYmlvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJ05vIHNlIHB1ZG8gY3JlYXIgZWwgY2FtYmlvIGRlc2RlIGxhIHBsYW50aWxsYSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICfCoU5vIHNlIGhhIGRhZG8gQ2hhbmdlSUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnTm8gc2UgZW5jb250csOzIGNhbWJpbyBwYXJhIENoYW5nZUlEICVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJ0VsIENBQiBkZSBjYW1iaW8gIiVzIiBubyBwdWRvIHNlciBzZXJpYWxpemFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJ30gPSAnTm8gc2UgcHVkbyBhZ3JlZ2FyIGxhIHBsYW50aWxsYS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ8KhQ2FtYmlvICIlcyIgbm8gc2UgZW5jb250csOzIGVuIGxhIGJhc2UgZGUgZGF0b3MhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnwqFObyBzZSBwdWRvIGJvcnJhciBsYSBDb25kaXRpb25JRCAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJ8KhTm8gc2UgaW5kaWNhIGVsICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAnwqFObyBzZSBwdWRvIGNyZWFyIHVuYSBudWV2byBjb25kaWNpw7NuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJ8KhTm8gc2UgcHVkbyBhY3R1YWxpemFyIGxhIENvbmRpdGlvbklEJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJ8KhTm8gc2UgcHVkbyBhY3R1YWxpemFyIGxhIEV4cHJlc3Npb25JRCVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJ8KhTm8gc2UgcHVkbyBhw7FhZGlyIHVuYSBudWV2YSBleHByZXNpw7NuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJ8KhTm8gc2UgcHVkbyBhY3R1YWxpemFyIEFjdGlvbklEJXPCoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnwqFObyBzZSBwdWRvIGHDsWFkaXIgTnVldmEgQWNjacOzbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnwqFObyBzZSBwdWRvIGJvcnJhciBFeHByZXNzaW9uSUQlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICfCoU5vIHNlIHB1ZG8gYm9ycmFyIEFjdGlvbklEJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICfCoUVycm9yOiBUaXBvIGRlIGNhbXBvIGRlc2Nvbm9jaWRvICIlcyIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnwqFDb25kaXRpb25JRCAlcyBubyBwZXJ0ZW5lY2UgYWwgQ2hhbmdlSUQlcyBmYWNpbGl0YWRvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBkb2VzIG5vdCBoYXZlIGFuIGFsbG93ZWQgY2hhbmdlIHN0YXRlIHRvIGJlIGRlbGV0ZWQhJ30gPQogICAgICAgICfCoUNhbWJpbyAiJXMiIG5vIGRpc3BvbmUgZGUgdW4gY2FtYmlvIGRlIGVzdGFkbyBwZXJtaXRpZG8gcGFyYSBzZXIgYm9ycmFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnwqFObyBmdWUgcG9zaWJsZSBib3JyYXIgZWwgQ2hhbmdlSUQlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJ05vIHNlIHB1ZG8gYWN0dWFsaXphciBlbCBDYW1iaW8hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICfCoU5vIHNlIHB1ZWRlIG1vc3RyYXIgZWwgaGlzdG9yaWFsLCB5YSBxdWUgbm8gc2UgaGEgZmFjaWxpdGFkbyBlbCBDaGFuZ2VJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICfCoUNhbWJpbyAiJXMiIG5vIHNlIGVuY29udHLDsyBlbiBsYSBiYXNlIGRlIGRhdG9zISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICfCoVRpcG8gZGVzY29ub2NpZG8gIiVzIiBlbmNvbnRyYWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJ0hpc3RvcmlhbCBkZSBjYW1iaW8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJ8KhTm8gc2UgcHVlZGUgbW9zdHJhciBlbCBoaXN0b3JpYWwgZGVsIHpvb20sIG5vIHNlIGhhIGZhY2lsaXRhZG8gSGlzdG9yeUVudHJ5SUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICfCoUhpc3RvcmlhbCBkZSBlbnRyYWRhICIlcyIgbm8gc2UgZW5jb250csOzIGVuIGxhIGJhc2UgZGUgZGF0b3MhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJ8KhTm8gc2UgcHVkbyBhY3R1YWxpemFyIGVsIENBQiBkZSBDYW1iaW8gcGFyYSBlbCBDYW1iaW8gJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlICVzISd9ID0gJ8KhTm8gZnVlIHBvc2libGUgYWN0dWFsaXphciBlbCBDYW1iaW8gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJ1Jlc3VtZW46IENhbWJpb01hbmFnZXInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnUmVzdW1lbjogTWkgQ0FCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnUmVzdW1lbjogTWlzIENhbWJpb3MnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICdSZXN1bWVuOiBNaXMgb3JkZW5lcyBkZSB0cmFiYWpvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICdSZXN1bWVuOiBQSVInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJ1Jlc3VtZW46IFBTQSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICfCoU9yZGVuIGRlIHRyYWJham8gIiVzIiBubyBzZSBlbmNvbnRyw7MgZW4gbGEgYmFzZSBkZSBkYXRvcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnwqFObyBzZSBwdWVkZSBjcmVhciBsYSBzYWxpZGEsIHlhIHF1ZSBsYSBPcmRlbiBkZSB0cmFiYWpvIG5vIGVzdMOhIGFkanVudG8gYSB1biBjYW1iaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICfCoU5vIHNlIHB1ZWRlIGNyZWFyIGxhIHNhbGlkYSwgeWEgcXVlIG5vIHNlIGhhIGZhY2lsaXRhZG8gZWwgQ2hhbmdlSUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnVMOtdHVsbyBkZWwgY2FtYmlvIGRlc2Nvbm9jaWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnT3JkZW4gZGUgVHJhYmFqbyBJVFNNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJ07Dum1lcm8gZGUgbGEgT3JkZW4gZGUgVHJhYmFqbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUaXRsZSd9ID0gJ1TDrXR1bG8gZGUgbGEgT3JkZW4gZGUgVHJhYmFqbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJ1TDrXR1bG8gZGUgbGEgT3JkZW4gZGUgdHJhYmFqbyBkZXNjb25vY2lkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJ0VzdGFkbyBkZWwgQ2FtYmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICdFc2Z1ZXJ6byBQbGFuZWFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnQWdlbnRlcyBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJ0NsaWVudGVzIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnRmVjaGEgU29saWNpdGFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnRmVjaGEgZGUgSW5pY2lvIFBsYW5lYWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnRmVjaGEgZGUgRmluYWxpemFjacOzbiBQbGFuZWFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxTdGFydFRpbWUnfSA9ICdGZWNoYSBkZSBJbmljaW8gUmVhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnRmVjaGEgZGUgRmluYWxpemFjacOzbiBSZWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICdGZWNoYSBkZWwgY2FtYmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU51bWJlcid9ID0gJ07Dum1lcm8gZGVsIENhbWJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZSd9ID0gJ0VzdGFkbyBkZSBsYSBPcmRlbiBkZSBUcmFiYWpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICdUaXBvIGRlIE9yZGVuIGRlIFRyYWJham8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICdBZ2VudGUgZGUgbGEgT3JkZW4gZGUgVHJhYmFqbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnSVRTTSBSZXN1bWVuIGRlIGxhIG9yZGVuIGRlIHRyYWJham8gKCVzKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJ8KhTm8gZnVlIHBvc2libGUgcmVzdGFibGVjZXIgbGEgT3JkZW4gZGUgdHJhYmFqbyAlcyBkZWwgY2FtYmlvICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJ8KhTm8gZnVlIHBvc2libGUgcmVzdGFibGVjZXIgZWwgY2FtYmlvJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJ1Jlc3VtZW46IENhbWJpYXIgcHJvZ3JhbWFjacOzbic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnQ2FtYmlhciBCw7pzcXVlZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICdUw610dWxvIGRlbCBDYW1iaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ09yZGVuIGRlIFRyYWJham8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICdDYW1iaWFyIHJlc3VsdGFkbyBkZSBiw7pzcXVlZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJ0NhbWJpYXIgTsO6bWVybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnVMOtdHVsbyBPcmRlbiBkZSB0cmFiYWpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJ0NhbWJpYXIgZGVzY3JpcGNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnQ2FtYmlhciBKdXN0aWZpY2FjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICdJbnN0cnVjY2nDs24gT3JkZW4gZGUgdHJhYmFqbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnUmVwb3J0ZSBPcmRlbiBkZSB0cmFiYWpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSd9ID0gJ0NhbWJpYXIgUHJpb3JpZGFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICdDYW1iaWFyIEltcGFjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJ0NyZWFkb3IgcG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJ0VzdGFkbyBPcmRlbiBkZSB0cmFiYWpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnVGlwbyBkZSBPcmRlbiBkZSB0cmFiYWpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJ0FnZW50ZSBkZSBPcmRlbiBkZSB0cmFiYWpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJ2FudGVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJ0VsIGNhbWJpbyAiJXMiIG5vIHB1ZG8gc2VyIHNlcmlhbGl6YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJ05vIHNlIHB1ZG8gYWN0dWFsaXphciBsYSBwbGFudGlsbGEuICIlcyIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnTm8gc2UgcHVkbyBlbGltaW5hciBlbCBjYW1iaW8gIiVzIi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnRWwgY2FtYmlvIG5vIHB1ZWRlIHNlciBtb3ZpZG8sIHlhIHF1ZSBubyB0aWVuZSDDs3JkZW5lcyBkZSB0cmFiYWpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnQcOxYWRpciBwcmltZXJvIHVuYSBvcmRlbiBkZSB0cmFiYWpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJ8KhTm8gc2UgcHVlZGUgbW92ZXIgdW5hIGNhbWJpbyBxdWUgeWEgaGEgY29tZW56YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnUG9yIGZhdm9yLCBtdWV2YSBsYXMgw7NyZGVuZXMgZGUgdHJhYmFqbyBpbmRpdmlkdWFsZXMgZW4gc3UgbHVnYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJ0VsIGFjdHVhbCAlcyBubyBwdWRvIHNlciBkZXRlcm1pbmFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJ0VsICVzIGRlIHRvZGFzIGxhcyDDs3JkZW5lcyBkZSB0cmFiYWpvIHRpZW5lIHF1ZSBzZXIgZGVmaW5pZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICfCoU5vIHNlIHB1ZG8gbW92ZXIgZWwgaW50ZXJ2YWxvIGRlIHRpZW1wbyBwYXJhIGVsIG9yZGVuIGRlIHRyYWJham8gIyVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnwqFOZWNlc2l0YSBwZXJtaXNvICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJ8KhTm8gc2UgaGEgcHJvcG9yY2lvbmFkbyBUZW1wbGF0ZUlEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICfCoVBsYW50aWxsYSAiJXMiIG5vIHNlIGVuY29udHLDsyBlbiBsYSBiYXNlIGRlIGRhdG9zISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB0ZW1wbGF0ZSAlcyEnfSA9ICfCoU5vIHNlIHB1ZG8gZWxpbWluYXIgbGEgcGxhbnRpbGxhICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJ05vIHNlIHB1ZG8gYWN0dWFsaXphciBsYSBQbGFudGlsbGEgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICdObyBzZSBwdWRvIGFjdHVhbGl6YXIgbGEgUGxhbnRpbGxhICIlcyIhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICfCoU5vIGZ1ZSBwb3NpYmxlIGNyZWFyIGVsIGNhbWJpbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICfCoU5vIGZ1ZSBwb3NpYmxlIGNyZWFyIGxhIG9yZGVuIGRlIHRyYWJham8gZGVzZGUgbGEgcGxhbnRpbGxhISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnUmVzdW1lbjogUGxhbnRpbGxhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnwqFOZWNlc2l0YSAlcyBwZXJtaXNvcyBlbiBlbCBjYW1iaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJ8KhTm8gZnVlIHBvc2libGUgYcOxYWRpciBPcmRlbiBkZSB0cmFiYWpvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJ8KhTm8gc2UgaGEgcHJvcG9yY2lvbmFkbyBXb3JrT3JkZXJJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJ8KhTm8gZnVlIHBvc2libGUgY29uZmlndXJhciBlbCBhZ2VudGUgZGUgb3JkZW4gZGUgdHJhYmFqbyBkZWwgcGVkaWRvIGRlIHRyYWJham8gIiVzIiBwYXJhIHF1ZSBzZSB2YWPDrWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJ8KhTm8gc2UgcHVkbyBhY3R1YWxpemFyIGVsIG9yZGVuIGRlIHRyYWJham8gIiVzIiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnwqFObyBzZSBwdWRvIGVuY29udHJhciBDYW1iaW8gcGFyYSBPcmRlbiBkZSB0cmFiYWpvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnwqFObyBzZSBwdWRvIGVsaW1pbmFyIGxhIG9yZGVuIGRlIHRyYWJham8gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFdvcmtPcmRlciAlcyEnfSA9ICfCoU5vIGZ1ZSBwb3NpYmxlIGFjdHVhbGl6YXIgbGEgT3JkZW4gZGUgdHJhYmFqbyAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJ8KhTm8gc2UgcHVlZGUgbW9zdHJhciBlbCBoaXN0b3JpYWwsIHlhIHF1ZSBubyBzZSBoYSBwcm9wb3JjaW9uYWRvIFdvcmtPcmRlcklEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJ8KhT3JkZW4gZGUgdHJhYmFqbyAiJXMiIG5vIHNlIGVuY29udHLDsyBlbiBsYSBiYXNlIGRlIGRhdG9zISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJ0hpc3RvcmlhbCBkZSBsYSBPcmRlbiBkZSB0cmFiYWpvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnwqFFbnRyYWRhIGRlbCBoaXN0b3JpYWwgIiVzIiBubyBzZSBlbmNvbnRyw7MgZW4gbGEgYmFzZSBkZSBkYXRvcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJ0RldGFsbGUgZGVsIGhpc3RvcmlhbCBkZSBsYSBPcmRlbiBkZSB0cmFiYWpvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJ8KhTm8gZnVlIHBvc2libGUgdG9tYXIgbGEgT3JkZW4gZGUgdHJhYmFqbyAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnTGEgb3JkZW4gZGUgdHJhYmFqbyIlcyIgbm8gcHVkbyBzZXIgc2VyaWFsaXphZGEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICfCoU5lY2VzaXRhIGxhIG9wY2nDs24gZGUgY29uZmlndXJhY2nDs24gJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICfCoUxhIG9wY2nDs24gZGUgY29uZmlndXJhY2nDs24gJXMgbmVjZXNpdGEgc2VyIHVuYSByZWYgSEFTSCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICfCoU5vIHNlIGhhIGVuY29udHJhZG8gbmluZ3VuYSBvcGPDs24gZGUgY29uZmlndXJhY2nDs24gcGFyYSBsYSB2aXN0YSAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJ1TDrXR1bG86ICVzIHwgVGlwbzogJXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnTWlzIENvbWl0w6lzIGRlIENhbWJpbyAoQ0FCcyknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJ01pcyBDYW1iaW9zJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IFdvcmsgT3JkZXJzJ30gPSAnTWlzIMOTcmRlbmVzIGRlIFRyYWJham8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICclczolcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICdOdWV2YSBhY2Npw7NuIChJRD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJ0FjY2nDs24gKElEPSVzKSBlbGltaW5hZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJ1RvZGFzIGxhcyBhY2Npb25lcyBkZSBsYSBDb25kaWNpw7NuIChJRD0lcykgZWxpbWluYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICdBY2Npw7NuIChJRD0lcykgZWplY3V0YWRhOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyVzIChBY2Npw7NuIElEPSVzKTogKG51ZXZvPSVzLCB2aWVqbz0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnQ2FtYmlvIChJRD0lcykgYWxjYW56w7MgbGEgaG9yYSBkZSBmaW5hbGl6YWNpw7NuIHJlYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnRWwgY2FtYmlvIChJRD0lcykgYWxjYW56w7MgbGEgaG9yYSBkZSBpbmljaW8gcmVhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnTnVldm8gQ2FtYmlvIChJRD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQ6ICVzJ30gPSAnTnVldm8gYXJjaGl2byBhZGp1bnRvOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICdBZGp1bnRvIGJvcnJhZG8gJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICdDQUIgYm9ycmFkbyAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyVzOihudWV2bz0lcywgdmllam89JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJ0VubGFjZSBhICVzIChJRD0lcykgYcOxYWRpZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdFbmxhY2UgYSAlcyhJRD0lcykgYm9ycmFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJ05vdGlmaWNhY2nDs24gZW52aWFkYSBhICVzKEV2ZW50OiVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnQ2FtYmlvIChJRD0lcykgYWxjYW56w7MgZWwgdGllbXBvIGRlIGZpbmFsaXphY2nDs24gcGxhbmlmaWNhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJ0VsIGNhbWJpbyAoSUQgPSVzKSBhbGNhbnrDsyBsYSBob3JhIGRlIGluaWNpbyBwbGFuaWZpY2FkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICdFbCBjYW1iaW8gKElEPSVzKSBhbGNhbnrDsyBlbCB0aWVtcG8gc29saWNpdGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENvbmRpdGlvbiAoSUQ9JXMpJ30gPSAnTnVldmEgQ29uZGljacOzbiAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdDb25kaWNpw7NuIChJRD0lcykgYm9ycmFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnVG9kYXMgbGFzIGNvbmRpY2lvbmVzIGRlIENhbWJpbyAoSUQ9JXMpIGJvcnJhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICclcyAoQ29uZGljacOzbiBJRD0lcyk6IChudWV2bz0lcywgdmllam8lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJ051ZXZhIGV4cHJlc2nDs24gKElEPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJ0V4cHJlc2nDs24gKElEPSVzKSBib3JyYWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBFeHByZXNzaW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnVG9kYXMgbGFzIGV4cHJlc2lvbmVzIGRlIENvbmRpY2nDs24gKElEPSVzKSBib3JyYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICclcyhFeHByZXNpw7NuIElEPSVzKTogKG51ZXZvPSVzLCB2aWVqbz0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnT3JkZW4gZGUgdHJhYmFqbyAoSUQgPSVzKSBhbGNhbnrDsyBlbCB0aWVtcG8gcmVhbCBkZSBmaW5hbGl6YWNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJ09yZGVuIGRlIHRyYWJham8gKElEPSVzKSBsbGVnw7MgYSBsYSBob3JhIGRlIGluaWNpbyByZWFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICdOdWV2YSBPcmRlbiBkZSB0cmFiYWpvIChJRD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICdOdWV2byBhZGp1bnRvIHBhcmEgT3JkZW4gZGUgdHJhYmFqbzolcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnKElEPSVzKSBOdWV2byBhZGp1bnRvIHBhcmEgT3JkZW4gZGUgdHJhYmFqbzogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJ0JvcnJhZG8gYWRqdW50byBkZSBPcmRlbiBkZSB0cmFiYWpvOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcoSUQ9JXMpIEJvcnJhZG8gYWRqdW50byBkZSBPcmRlbiBkZSB0cmFiYWpvOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICdOdWV2byBhbmV4byBhZGp1bnRvIHBhcmEgT3JkZW4gZGUgdHJhYmFqbzogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcoSUQ9JXMpIE51ZXZvIGFuZXhvIGFkanVudG8gcGFyYSBPcmRlbiBkZSB0cmFiYWpvOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJ0JvcnJhZG8gYW5leG8gYWRqdW50byBkZSBPcmRlbiBkZSB0cmFiYWpvOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnKElEPSVzKSBCb3JyYWRvIGFuZXhvIGFkanVudG8gZGUgT3JkZW4gZGUgdHJhYmFqbzogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJ09yZGVuIGRlIHRyYWJham8gKElEPSVzKSBib3JyYWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnKElEPSVzKSBlbmxhY2UgYSAlcyhJRD0lcykgYcOxYWRpZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyhJRD0lcykgZW5sYWNlIGEgJXMgKElEPSVzKSBib3JyYWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcoSUQ9JXMpIE5vdGlmaWNhY2nDs24gZW52aWFkYSBhICVzIChFdmVudG86ICVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnT3JkZW4gZGUgdHJhYmFqbyAoSUQgPSVzKSBhbGNhbnrDsyBsYSBob3JhIGRlIGZpbmFsaXphY2nDs24gcGxhbmlmaWNhZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJ09yZGVuIGRlIHRyYWJham8gKElEPSVzKSBhbGNhbnrDsyBsYSBob3JhIGRlIGluaWNpbyBwbGFuaWZpY2FkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSAlczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyhJRD0lcyklczoobnVldm89JXMsIHZpZWpvPSVzKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0lUU01Db25kaXRpb24vT2JqZWN0L0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FsbCd9ID0gJ3RvZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAnY3VhbHF1aWVyYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICdBbnRlcmlvciBDb25zdHJ1Y3RvciBkZWwgY2FtYmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAnQW50ZXJpb3IgR2VzdG9yIGRlbCBDYW1iaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJ0FnZW50ZXMgZGUgbGEgT3JkZW4gZGUgVHJhYmFqbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICdBbnRlcmlvciBBZ2VudGUgZGUgbGEgT3JkZW4gZGUgVHJhYmFqbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJ0luaWNpYWRvcmVzIGRlbCBDYW1iaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJ0dydXBvIElUU01DaGFuZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICdHcnVwbyBJVFNNQ2hhbmdlQnVpbGRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJ0dydXBvIElUU01DaGFuZ2VNYW5hZ2VyJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICdzb2xpY2l0YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICdhcHJvYmFjacOzbiBwZW5kaWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICdyZWNoYXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICdhcHJvYmFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJ2VuIHByb2dyZXNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAncmV2aXNpw7NuIHBvc3QtaW1wbGVtZW50YWNpw7NuIHBlbmRpZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAnZXhpdG9zbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICdmYWxsaWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnY2FuY2VsYWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJ2RldnVlbHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICdjcmVhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICdhY2VwdGFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJ2xpc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAnYXByb2JhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnb3JkZW4gZGUgdHJhYmFqbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAncGxhbiBkZSB2dWVsdGEgYXRyw6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnZGVjaXNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJ3JldmlzacOzbiBwb3N0LWltcGxlbWVudGFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnQ2hhbmdlU3RhdGVJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnQ2F0ZWdvcnlJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJ0ltcGFjdG9JRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnUHJpb3JpZGFkSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnR2VzdG9yQ2FtYmlvSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnQ29uc3RydWN0b3JDYW1iaW9JRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnRXN0YWRvT3JkZW5UcmFiYWpvSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnVGlwb09yZGVuVHJhYmFqb0lEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICdBZ2VudGVPcmRlblRyYWJham9JRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJ2VzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJ25vIGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnZXN0w6EgdmFjw61vKGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJ25vIGVzdMOhIHZhY8OtbyhhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICdlcyBtYXlvciBxdWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnZXMgbWVub3IgcXVlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJ2VzdMOhIGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnZXN0w6EgZGVzcHXDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICdjb250aWVuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICdubyBjb250aWVuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJ2NvbWllbnphIGNvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICd0ZXJtaW5hIGNvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICdjb25maWd1cmFkYSc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJ8K/RGUgdmVyZGFkIHF1aWVyZXMgZWxpbWluYXIgZXN0YSBleHByZXNpw7NuPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJ8K/RGUgdmVyZGFkIHF1aWVyZXMgZWxpbWluYXIgZXN0YSBhY2Npw7NuPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJ8K/RGUgdmVyZGFkIHF1aWVyZXMgZWxpbWluYXIgZXN0YSBjb25kaWNpw7NuPyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJ09rJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnVW5hIGxpc3RhIGRlIGxvcyBhZ2VudGVzIHF1ZSB0aWVuZW4gcGVybWlzbyBwYXJhIHRvbWFyIMOzcmRlbmVzIGRlIHRyYWJham8uIEtleSBlcyB1biBub21icmUgZGUgaW5pY2lvIGRlIHNlc2nDs24uIENvbnRlbnQgcHVlZGUgc2VyIDAgw7MgMS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICdVbmEgbGlzdGEgZGUgZXN0YWRvcyBwYXJhIGxhcyDDs3JkZW5lcyBkZSB0cmFiYWpvLCBtaXNtYSBxdWUgc2Vyw6EgYXNpZ25hZGEgYSBBY3R1YWxTdGFydFRpbWUsIHNpIHBhcmEgZXN0ZSBwdW50byBzZWd1w61hIHZhY8Otby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnSG9yYSBkZSBmaW5hbGl6YWNpw7NuIGFjdHVhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJ0hvcmEgZGUgaW5pY2lvIGFjdHVhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnQWdyZWdhciBPcmRlbiBkZSBUcmFiYWpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnQcOxYWRpciBPcmRlbiBkZSB0cmFiYWpvIChkZXNkZSBQbGFudGlsbGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJ0FncmVnYXIgdW4gY2FtYmlvIGRlc2RlIHVuYSBwbGFudGlsbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICdBw7FhZGlyIHVuIGNhbWJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJ0HDsWFkaXIgdW5hIE9yZGVuIGRlIHRyYWJham8gKGRlc2RlIFBsYW50aWxsYSkgcGFyYSBlbCBjYW1iaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJ0HDsWFkaXIgdW5hIG9yZGVuIGRlIHRyYWJham8gcGFyYSBlbCBjYW1iaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnQWdyZWdhciBkZXNkZSBwbGFudGlsbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnQWRtaW5pc3RyYXIgbGEgbWF0cml6IENJUC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAnQWRtaW5pc3RyYXIgbGEgbcOhcXVpbmEgZGUgZXN0YWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgbm90aWZpY2FjacOzbiBkZSBsYSBpbnRlcmZhY2UgZGVsIEFnZW50ZSBwYXJhIG1vc3RyYXIgZWwgbsO6bWVybyBkZSBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gZGUgbGEgaW50ZXJmYWNlIGRlbCBBZ2VudGUgcGFyYSBtb3N0cmFyIGVsIG7Dum1lcm8gZGUgY2FtYmlvcyBhZG1pbmlzdHJhZG9zIHBvciBlbCB1c3VhcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSBub3RpZmljYWNpw7NuIGRlIGxhIGludGVyZmFjZSBkZWwgQWdlbnRlIHBhcmEgbW9zdHJhciBlbCBuw7ptZXJvIGRlIGNhbWJpb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gZGUgbGEgaW50ZXJmYXogZGUgYWdlbnRlIHBhcmEgdmVyIGVsIG7Dum1lcm8gZGUgw7NyZGVuZXMgZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICdCw7pzcXVlZGEgZGUgbWllbWJyb3MgQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICdUaWVtcG8gY2FjaMOpIGVuIG1pbnV0b3MgcGFyYSBsYXMgYmFycmFzIGRlIHRhcmVhcyBkZSBnZXN0acOzbiBkZWwgY2FtYmlvLiBQb3IgZGVmZWN0bzogMyBob3JhcyAoMTgwIG1pbnV0b3MpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnVGllbXBvIGNhY2jDqSBlbiBtaW51dG9zIHBhcmEgbGEgZ2VzdGnDs24gZGVsIGNhbWJpby4gUG9yIGRlZmVjdG86IDUgZMOtYXMgKDcyMDAgbWludXRvcykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAnQ2FtYmlhciBsYXMgcGxhbnRpbGxhcyBkZSBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnQ2FtYmlhciBIaXN0b3JpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJ0NhbWJpYXIgcGVyc29uYXMgaW52b2x1Y3JhZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0NhbWJpZSBMw61taXRlIFZpc3RhIEdlbmVyYWwgIlBlcXVlw7FhIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnQ2FtYmlhciBSZXN1bWVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnQ2FtYmlhciBJbXByZXNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICdDYW1iaWFyIFByb2dyYW1hY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJ0NhbWJpYXIgUHJvZ3JhbWFjacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnQ2FtYmlhciBDb25maWd1cmFjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICdDYW1iaWFyIERldGFsbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnQW1wbGlhY2nDs24gZGVsIENhbWJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnUGxhbnRpbGxhcyBkZSBDYW1iaW8geSDDk3JkZW5lcyBkZSB0cmFiYWpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJ1BsYW50aWxsYXMgZGUgQ2FtYmlvIHkgw5NyZGVuZXMgZGUgdHJhYmFqbyBlZGl0YWRvcyBwb3IgZXN0ZSB1c3VhcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICdDYW1iaWFyIGFyZWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnRWwgY2FtYmlvIGludm9sdWNyw7MgYSBsYXMgcGVyc29uYXMgZGVsIGNhbWJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICdMw61taXRlIGRlIGNhbWJpbyBwb3IgcMOhZ2luYSBwYXJhIENhbWJpbyBEZXNjcmlwY2nDs24gZ2VuZXJhbCAiUGVxdWXDsW8iLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnQ2FtYmlhciBudW1lcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ0NhbWJpZSBlbCBlbnJ1dGFkb3IgZGVsIGJhY2tlbmQgZGUgYsO6c3F1ZWRhIGRlIGxhIGludGVyZmF6IGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnQ2FtYmlhciBlc3RhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpbWUnfSA9ICdDYW1iaWFyIGhvcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpdGxlJ30gPSAnQ2FtYmlhciB0w610dWxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBFZGl0J30gPSAnRWRpdGFyIENvbmRpY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnUmVzdW1lbiBkZSBsYSBjb25kaWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnQ29uZmlndXJlIHF1ZSBwYW50YWxsYSBzZSBtb3N0cmFyw6EgZGVzcHXDqXMgZGUgcXVlIHVuYSBudWV2YSBvcmRlbiBkZSB0cmFiYWpvIGhhIHNpZG8gY3JlYWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnQ29uZmlndXJhIGVsIGludGVydmFsbyBkZSBlbnbDrW8gZGUgbm90aWZpY2FjaW9uZXMgY3VhbmRvIGFsZ3VubyBkZSBsb3MgdmFsb3JlcyBkZWwgdGllbXBvLCBjb21vIGxhIGZlY2hhIGRlIGluaWNpbyBwbGFuZWFkYSwgc2UgYWxjYW56YW4vc29icmVwYXNhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJ0NyZWFyIHVuIENhbWJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJ0NyZWFyIENhbWJpbyAoZGVzZGUgUGxhbnRpbGxhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnQ3JlYXIgdW4gY2FtYmlvIChkZXNkZSBQbGFudGlsbGEpIGRlc2RlIGVzdGUgdGlja2V0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICdDcmVhciB1biBjYW1iaW8gZGVzZGUgZXN0ZSB0aWNrZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICdDcmVhciB5IGdlc3Rpb25hciBub3RpZmljYWNpb25lcyBkZSBHZXN0acOzbiBkZWwgQ2FtYmlvIElUU00uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJ0NyZWFyIHkgZ2VzdGlvbmFyIG5vdGlmaWNhY2lvbmVzIGRlIGNhbWJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAnVGlwbyBkZWZhdWx0IHBhcmEgbGFzIMOzcmRlbmVzIGRlIHRyYWJham8uIEVzdGUgcmVnaXN0cm8gZGViZSBleGlzdGlyIGVuIGxhIGNsYXNlIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcgZGVsIGNhdMOhbG9nbyBnZW5lcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnRGVmaW5pciBhY2Npb25lcyBkb25kZSBlc3TDoSBkaXNwb25pYmxlIHVuIGJvdMOzbiBkZSBjb25maWd1cmFjacOzbiBlbiBlbCB3aWRnZXQgZGUgb2JqZXRvcyB2aW5jdWxhZG9zIChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFRlbmdhIGVuIGN1ZW50YSBxdWUgZXN0YXMgYWNjaW9uZXMgZGViZW4gaGFiZXIgcmVnaXN0cmFkbyBsb3Mgc2lndWllbnRlcyBhcmNoaXZvcyBKUyB5IENTUzogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgeSBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAnRGVmaW5lIGxhcyBzZcOxYWxlcyBwYXJhIGNhZGEgZXN0YWRvIGRlIGxhcyDDs3JkZW5lcyBkZSB0cmFiYWpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJ0RlZmluaXIgcXXDqSBjb2x1bW5hcyBzZSBtdWVzdHJhbiBlbiBlbCB3aWRnZXQgZGUgQ2FtYmlvcyB2aW5jdWxhZG8gKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90YTogU29sbyBzZSBwZXJtaXRlbiBsb3MgYXRyaWJ1dG9zIGRlIGNhbWJpbyBwYXJhIGxhcyBjb2x1bW5hcyBwcmVkZXRlcm1pbmFkYXMuIENvbmZpZ3VyYWNpb25lcyBwb3NpYmxlczogMCA9IERlc2hhYmlsaXRhZG8sIDEgPSBEaXNwb25pYmxlLCAyID0gSGFiaWxpdGFkbyBwb3IgZGVmZWN0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJ0RlZmluaXIgcXXDqSBjb2x1bW5hcyBzZSBtdWVzdHJhbiBlbiBlbCB3aWRnZXQgT3JkZW4gZGUgdHJhYmFqbyB2aW5jdWxhZG8gKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90YTogc29sbyBsb3MgYXRyaWJ1dG9zIFdvcmtvcmRlciBlc3TDoW4gcGVybWl0aWRvcyBwYXJhIERlZmF1bHRDb2x1bW5zLiBDb25maWd1cmFjaW9uZXMgcG9zaWJsZXM6IDAgPSBEZXNoYWJpbGl0YWRvLCAxID0gRGlzcG9uaWJsZSwgMiA9IEhhYmlsaXRhZG8gcG9yIGRlZmVjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJ0RlZmluZSB1biBtw7NkdWxvIGRlIHJlc3VtZW4gcGFyYSBtb3N0cmFyIGxhIHZpc3RhIHBlcXVlw7FhIGRlIHVuYSBsaXN0YSBkZSBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJ0RlZmluZSB1biBtw7NkdWxvIGRlIHJlc3VtZW4gcGFyYSBtb3N0cmFyIGxhIHZpc3RhIHBlcXVlw7FhIGRlIHVuYSBsaXN0YSBkZSBwbGFudGlsbGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJ0RlZmluZSBzaSBzZXLDoSBwb3NpYmxlIGltcHJpbWlyIGVsIHRpZW1wbyBjb250YWJpbGl6YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJ0RlZmluZSBzaSBzZXLDoSBwb3NpYmxlIGltcHJpbWlyIGVsIGVzZnVlcnpvIHBsYW5lYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICdEZWZpbmUgc2kgbG9zIGVzdGFkb3MgZmluYWxlcyBkZSBjYW1iaW8gYWxjYW56YWJsZXMgKHNlZ8O6biBsbyBkZWZpbmlkbyBwb3IgbGEgbcOhcXVpbmEgZGUgZXN0YWRvKSBkZWJlbiBwZXJtaXRpcnNlIHNpIHVuIGNhbWJpbyBlc3TDoSBlbiB1biBlc3RhZG8gYmxvcXVlYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICdEZWZpbmUgc2kgc2UgZGViZW4gcGVybWl0aXIgbG9zIGVzdGFkb3MgZmluYWxlcyBkZSBvcmRlbiBkZSB0cmFiYWpvIGFsY2FuemFibGVzIChzZWfDum4gbG8gZGVmaW5pZG8gcG9yIGxhIG3DoXF1aW5hIGRlIGVzdGFkbykgc2kgdW4gcGVkaWRvIGRlIHRyYWJham8gZXN0w6EgZW4gdW4gZXN0YWRvIGJsb3F1ZWFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJ0RldGVybWluYSBzaSBlbCB0aWVtcG8gY29udGFiaWxpemFkbyBkZWJlIG1vc3RyYXJzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICdEZXRlcm1pbmEgc2kgbGFzIGZlY2hhcyBkZSBpbmljaW8geSBmaW5hbGl6YWNpw7NuIHJlYWxlcyBkZWJlbiBmaWphcnNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICdEZWZpbmUgc2kgbGFzIGZ1bmNpb25lcyBkZSBiw7pzcXVlZGEgZGUgY2FtYmlvIHkgYsO6c3F1ZWRhIGRlIG9yZGVuIGRlIHRyYWJham8gcG9kcsOtYW4gdXNhciBlbCBlc3Blam8gREIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBzaSBlbCBlc3RhZG8gZGVsIGNhbWJpbyBwdWVkZSBmaWphcnNlIGVuIGxhIHBhbnRhbGxhIGRlIGVkaWNpw7NuIGRlIGNhbWJpbyBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnRGV0ZXJtaW5hIHNpIGVsIGVzZnVlcnpvIHBsYW5lYWRvIGRlYmUgbW9zdHJhcnNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnRGVmaW5lIHNpIGxhIGZlY2hhIHNvbGljaXRhZGEgZGViZSBzZXIgaW1wcmVzYSBwb3IgZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnRGVmaW5lIHNpIGxhIGZlY2hhIHNvbGljaXRhZGEgZGViZSBzZXIgYnVzY2FkYSBwb3IgZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci4nfSA9ICdEZWZpbmUgc2kgbGEgZmVjaGEgc29saWNpdGFkYSBkZWJlIHNlciBlc3RhYmxlY2lkYSBwb3IgZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJ0RlZmluZSBzaSBsYSBmZWNoYSBzb2xpY2l0YWRhIGRlYmUgc2VyIG1vc3RyYWRhIHBvciBlbCBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLid9ID0gJ0RldGVybWluYSBzaSBlbCBlc3RhZG8gZGUgbGEgb3JkZW4gZGUgdHJhYmFqbyBkZWJlIG1vc3RyYXJzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICdEZXRlcm1pbmEgc2kgZWwgdMOtdHVsbyBkZSBsYSBvcmRlbiBkZSB0cmFiYWpvIGRlYmUgbW9zdHJhcnNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnRGVmaW5lIGxvcyBhdHJpYnV0b3MgbW9zdHJhZG9zIGVuIGxhcyBncsOhZmljYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnRGVmaW5lIHF1ZSDDum5pY2FtZW50ZSBzZSBtb3N0cmFyw6FuIGxvcyBjYW1iaW9zIHF1ZSBjb250aWVuZW4gw7NyZGVuZXMgZGUgdHJhYmFqbywgdmluY3VsYWRhcyBjb24gc2VydmljaW9zLCBxdWUgZWwgY2xpZW50ZSB0aWVuZSBwZXJtaXNvIGRlIHVzYXIuIEVsIHJlc3RvIGRlIGxvcyBjYW1iaW9zIG5vIHNlIGRlc3BsZWdhcsOhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICdEZWZpbmUgbG9zIGVzdGFkb3MgZGUgY2FtYmlvIHF1ZSBzZSBwZXJtaXRpcsOhbiBlbGltaW5hci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIGxvcyBlc3RhZG9zIGRlIGxvcyBjYW1iaW9zIHF1ZSBzZXLDoW4gdXRpbGl6YWRvcyBjb21vIGZpbHRyb3MgZW4gbGEgdmlzdGEgZGUgcmVzdW1lbiBkZSBsYSBQU0EgZGUgbG9zIGNhbWJpb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIGxvcyBlc3RhZG9zIGRlIGxvcyBjYW1iaW9zIHF1ZSBzZXLDoW4gdXRpbGl6YWRvcyBjb21vIGZpbHRyb3MgZW4gbGEgdmlzdGEgZGUgcmVzdW1lbiBkZSBsYSBhZ2VuZGEgZGUgbG9zIGNhbWJpb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgbG9zIGVzdGFkb3MgZGUgbG9zIGNhbWJpb3MgcXVlIHNlcsOhbiB1dGlsaXphZG9zIGNvbW8gZmlsdHJvcyBlbiBsYSB2aXN0YSBkZSByZXN1bWVuIGRlIE15Q0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBsb3MgZXN0YWRvcyBkZSBsb3MgY2FtYmlvcyBxdWUgc2Vyw6FuIHV0aWxpemFkb3MgY29tbyBmaWx0cm9zIGVuIGxhIHZpc3RhIGRlIHJlc3VtZW4gZGUgTXlDaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIGxvcyBlc3RhZG9zIGRlIGxvcyBjYW1iaW9zIHF1ZSBzZXLDoW4gdXRpbGl6YWRvcyBjb21vIGZpbHRyb3MgZW4gbGEgdmlzdGEgZGUgcmVzdW1lbiBkZSBsYSBnZXN0acOzbiBkZSBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBsb3MgZXN0YWRvcyBkZSBsb3MgY2FtYmlvcyBxdWUgc2Vyw6FuIHVzYWRvcyBjb21vIGZpbHRyb3MgZW4gbG9zIHJlc8O6bWVuZXMgZGUgZGljaG9zIGNhbWJpb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIGxvcyBlc3RhZG9zIGRlIGxvcyBjYW1iaW9zIHF1ZSBzZXLDoW4gdXRpbGl6YWRvcyBjb21vIGZpbHRyb3MgZW4gbGEgdmlzdGEgZGUgcmVzdW1lbiBkZSBlZGljacOzbiBkZSBsYSBhZ2VuZGEsIGVuIGxhIGludGVyZmF6IGRlbCBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICdEZWZpbmUgZWwgdMOtdHVsbyBwb3IgZGVmZWN0byBkZSB1biBjYW1iaW8gcXVlIHNlcsOhIHV0aWxpemFkbyBwYXJhIHVuIGNhbWJpbyB0ZW1wb3JhbCwgZWwgY3VhbCBzZSBuZWNlc2l0YSBwYXJhIGVkaXRhciB1bmEgcGxhbnRpbGxhIGRlIG9yZGVuIGRlIHRyYWJham8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBjcml0ZXJpbyBkZSBvcmRlbmFtaWVudG8gcG9yIGRlZmF1bHQgcGFyYSBsYSB2aXN0YSBkZSByZXN1bWVtIGRlIGxhIFBTQSBkZSBsb3MgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBjcml0ZXJpbyBkZSBvcmRlbmFtaWVudG8gcG9yIGRlZmF1bHQgcGFyYSBsYSB2aXN0YSBkZSByZXN1bWVtIGRlbCBhZG1pbmlzdHJhZG9yIGRlIGxvcyBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICdEZWZpbmUgZWwgY3JpdGVyaW8gZGUgb3JkZW5hbWllbnRvIHBvciBkZWZhdWx0IHBhcmEgbGEgdmlzdGEgZGUgcmVzdW1lbSBkZSBsb3MgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgZWwgY3JpdGVyaW8gZGUgb3JkZW5hbWllbnRvIHBvciBkZWZhdWx0IHBhcmEgbGEgdmlzdGEgZGUgcmVzdW1lbSBkZSBsYSBhZ2VuZGEgZGUgbG9zIGNhbWJpb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgZWwgY3JpdGVyaW8gZGUgb3JkZW5hbWllbnRvIHBvciBkZWZhdWx0IGRlIGxvcyBjYW1iaW9zIHBhcmEgbGEgdmlzdGEgZGUgcmVzdW1lbSBkZSBNeUNBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgZWwgY3JpdGVyaW8gZGUgb3JkZW5hbWllbnRvIHBvciBkZWZhdWx0IGRlIGxvcyBjYW1iaW9zIHBhcmEgbGEgdmlzdGEgZGUgcmVzdW1lbSBkZSBNeUNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIGVsIGNyaXRlcmlvIGRlIG9yZGVuYW1pZW50byBwb3IgZGVmYXVsdCBkZSBsb3MgY2FtYmlvcyBwYXJhIGxhIHZpc3RhIGRlIHJlc3VtZW0gZGUgTXlXb3Jrb3JkZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBjcml0ZXJpbyBkZSBvcmRlbmFtaWVudG8gcG9yIGRlZmF1bHQgZGUgbG9zIGNhbWJpb3MgcGFyYSBsYSB2aXN0YSBkZSByZXN1bWVtIGRlIGxhcyBQSVIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIGVsIGNyaXRlcmlvIGRlIG9yZGVuYW1pZW50byBwb3IgZGVmYXVsdCBkZSBsb3MgY2FtYmlvcyBwYXJhIGxhIHZpc3RhIGRlIHJlc3VtZW0gZGUgZWRpY2nDs24gZGUgbGEgYWdlbmRhLCBlbiBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBjcml0ZXJpbyBkZSBvcmRlbmFtaWVudG8gcG9yIGRlZmF1bHQgZGUgbG9zIGNhbWJpb3MgcGFyYSBsYSB2aXN0YSBkZSByZXN1bWVtIGRlIGxhcyBwbGFudGlsbGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJ0RlZmluZSBlbCBwYXLDoW1ldHJvIGRlIG9yZGVuYW1pZW50byBwb3IgZGVmYXVsdCBwYXJhIGxhIHZpc3RhIGRlIHJlc3VtZW0gZGUgTXlDQUIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0gJ0RlZmluZSBlbCBwYXLDoW1ldHJvIGRlIG9yZGVuYW1pZW50byBwb3IgZGVmYXVsdCBwYXJhIGxhIHZpc3RhIGRlIHJlc3VtZW0gZGUgTXlDaGFuZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBwYXLDoW1ldHJvIGRlIG9yZGVuYW1pZW50byBwb3IgZGVmYXVsdCBwYXJhIGxhIHZpc3RhIGRlIHJlc3VtZW0gZGUgTXlXb3Jrb3JkZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICdEZWZpbmUgZWwgcGFyw6FtZXRybyBkZSBvcmRlbmFtaWVudG8gcG9yIGRlZmF1bHQgcGFyYSBsYSB2aXN0YSBkZSByZXN1bWVtIGRlIGxhcyBQSVIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICdEZWZpbmUgZWwgcGFyw6FtZXRybyBkZSBvcmRlbmFtaWVudG8gcG9yIGRlZmF1bHQgcGFyYSBsYSB2aXN0YSBkZSByZXN1bWVtIGRlIGxhIFBTQSBkZSBsb3MgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBwYXLDoW1ldHJvIGRlIG9yZGVuYW1pZW50byBwb3IgZGVmYXVsdCBwYXJhIGxhIHZpc3RhIGRlIHJlc3VtZW0gZGUgbGEgYWdlbmRhIGRlIGxvcyBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICdEZWZpbmUgZWwgcGFyw6FtZXRybyBkZSBvcmRlbmFtaWVudG8gcG9yIGRlZmF1bHQgZW4gbGEgdmlzdGEgZGUgcmVzdW1lbiBkZSBsb3MgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgZWwgcGFyw6FtZXRybyBkZSBvcmRlbmFtaWVudG8gcG9yIGRlZmF1bHQgcGFyYSBsYSB2aXN0YSBkZSByZXN1bWVtIGRlIGxhIGFnZW5kYSBkZSBsb3MgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgZWwgcGFyw6FtZXRybyBkZSBvcmRlbmFtaWVudG8gcG9yIGRlZmF1bHQgcGFyYSBsYSB2aXN0YSBkZSByZXN1bWVtIGRlIGVkaWNpw7NuIGRlIGxhIGFuZ2VuZGEsIGVuIGxhIGludGVyZmF6IGRlbCBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJ0RlZmluZSBlbCBwYXLDoW1ldHJvIGRlIG9yZGVuYW1pZW50byBwb3IgZGVmYXVsdCBwYXJhIGxhIHZpc3RhIGRlIHJlc3VtZW0gZGUgbGFzIHBsYW50aWxsYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICdEZWZpbmUgZWwgdmFsb3IgcG9yIGRlZmF1bHQgZGUgbGEgY2F0ZWdvcsOtYSBkZSBsb3MgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICdEZWZpbmUgZWwgdmFsb3IgcG9yIGRlZmF1bHQgZGVsIGltcGFjdG8gZGUgbG9zIGNhbWJpb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICdEZWZpbmUgZWwgdGlwbyBkZSBjYW1wbyBkZSBDb21wYXJlVmFsdWUgcGFyYSBsb3MgYXRyaWJ1dG9zIGRlbCBjYW1iaW8gdXNhZG9zIGVuIGxhIHBhbnRhbGxhIGRlIGVkaWNpw7NuIGRlIGNvbmRpY2nDs24gZGVsIGNhbWJpbyBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLiBWYWxvciB2w6FsaWRvIGVzIFNlbGVjY2nDs24sIFRleHRvIHkgRmVjaGEuIFNpIHVuIHRpcG8gbm8gZXN0w6EgZGVmaW5pZG8sIGVsIGNhbXBvIG5vIHNlIG1vc3RyYXLDoS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciB3b3Jrb3JkZXIgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCB0aXBvIGRlIGNhbXBvIENvbXBhcmVWYWx1ZSBwYXJhIGxvcyBhdHJpYnVyb3MgZGUgbGFzIMOzcmRlbmVzIGRlIHRyYWJham8gdXNhZG9zIGVuIGxhIHBhbnRhbGxhIGRlIGVkaWNpw7NuIGRlIGxhIGNvbmRpY2nDs24gZGVsIGNhbWJpbyBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLiBWYWxvciB2w6FsaWRvIGVzIFNlbGVjY2nDs24sIFRleHRvIHkgRmVjaGEuIFNpIHVuIHRpcG8gbm8gZXN0w6EgZGVmaW5pZG8gLCBlbCBjYW1wbyBubyBzZSBtb3N0cmFyw6EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbG9zIGF0cmlidXRvcyBkZSBvYmpldG8gcXVlIHNvbiBzZWxlY2Npb25hYmxlcyBwYXJhIGNhbWJpYXIgb2JqZXRvcyBlbiBsYSBwYW50YWxsYSBkZSBlZGljacOzbiBkZSBsYSBjb25kaWNpw7NuIGRlbCBjYW1iaW8gZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBsb3MgYXRyaWJ1dG9zIGRlIG9iamV0byBxdWUgc29uIHNlbGVjY2lvbmFibGVzIHBhcmEgb2JqZXRvcyBkZSBPcmRlbiBkZSBUcmFiYWpvIGVuIGxhIHBhbnRhbGxhIGRlIGVkaWNpw7NuIGRlIGxhIGNvbmRpY2nDs24gZGVsIGNhbWJpbyBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbG9zIG9wZXJhZG9yZXMgcXVlIHNvbiBzZWxlY2Npb25hYmxlcyBwYXJhIGVsIGF0cmlidXRvIEFjY291bnRlZFRpbWUgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gZGUgbGEgY29uZGljacOzbiBkZWwgY2FtYmlvIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBsb3Mgb3BlcmFkb3JlcyBxdWUgc29uIHNlbGVjY2lvbmFibGVzIHBhcmEgZWwgYXRyaWJ1dG8gQWN0dWFsRW5kVGltZSBlbiBsYSBwYW50YWxsYSBkZSBlZGljacOzbiBkZSBsYSBjb25kaWNpw7NuIGRlbCBjYW1iaW8gZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgYSBsb3Mgb3BlcmFkb3JlcyBxdWUgc29uIHNlbGVjY2lvbmFibGVzIHBhcmEgZWwgYXRyaWJ1dG8gQWN0dWFsU3RhcnRUaW1lIGVuIGxhIHBhbnRhbGxhIGRlIGVkaWNpw7NuIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBsb3Mgb3BlcmFkb3JlcyBxdWUgc29uIHNlbGVjY2lvbmFibGVzIHBhcmEgZWwgYXRyaWJ1dG8gQ2F0ZWdvcnlJRCBlbiBsYSBwYW50YWxsYSBkZSBlZGljacOzbiBkZSBsYSBjb25kaWNpw7NuIGRlbCBjYW1iaW8gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbG9zIG9wZXJhZG9yZXMgcXVlIHNvbiBzZWxlY2Npb25hYmxlIHBhcmEgZWwgYXRyaWJ1dG8gQ29uc3RydWN0b3JDYW1iaW9JRCBlbiBsYSBwYW50YWxsYSBkZSBlZGljacOzbiBkZSBsYSBjb25kaWNpw7NuIGRlIGNhbWJpbyBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBsb3Mgb3BlcmFkb3JlcyBxdWUgc29uIHNlbGVjY2lvbmFkb3MgcGFyYSBlbCBhdHJpYnV0byBDaGFuZ2VNYW5hZ2VySUQgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gZGUgbGEgY29uZGljacOzbiBkZSBjYW1iaW8gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIGxvcyBvcGVyYWRvcmVzIHF1ZSBzb24gc2VsZWNjaW9uYWRvcyBwYXJhIGVsIGF0cmlidXRvIENoYW5nZVN0YXRlSUQgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gZGUgbGEgY29uZGljacOzbiBkZSBjYW1iaW8gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBsb3Mgb3BlcmFkb3JlcyBxdWUgc29uIHNlbGVjY2lvbmFkb3MgcGFyYSBlbCBhdHJpYnV0byBDaGFuZ2VUaXRsZUlEIGVuIGxhIHBhbnRhbGxhIGRlIGVkaWNpw7NuIGRlIGxhIGNvbmRpY2nDs24gZGUgY2FtYmlvIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIGxvcyBvcGVyYWRvcmVzIHF1ZSBzb24gc2VsZWNjaW9uYWRvcyBwYXJhIGVsIGF0cmlidXRvIENhbXBvRGluw6FtaWNvIGVuIGxhIHBhbnRhbGxhIGRlIGVkaWNpw7NuIGRlIGxhIGNvbmRpY2nDs24gZGUgY2FtYmlvIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbG9zIG9wZXJhZG9yZXMgcXVlIHNvbiBzZWxlY2Npb25hZG9zIHBhcmEgZWwgYXRyaWJ1dG8gSW1wYWN0SUQgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gZGUgbGEgY29uZGljacOzbiBkZSBjYW1iaW8gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIGxvcyBvcGVyYWRvcmVzIHF1ZSBzb24gc2VsZWNjaW9uYWRvcyBwYXJhIGVsIGF0cmlidXRvIEVzZnVlcnpvUGxhbmVhZG8gZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gZGUgbGEgY29uZGljacOzbiBkZSBjYW1iaW8gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBsb3Mgb3BlcmFkb3JlcyBxdWUgc29uIHNlbGVjY2lvbmFkb3MgcGFyYSBlbCBhdHJpYnV0byBQbGFubmVkRW5kVGltZSBlbiBsYSBwYW50YWxsYSBkZSBlZGljacOzbiBkZSBsYSBjb25kaWNpw7NuIGRlIGNhbWJpbyBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbG9zIG9wZXJhZG9yZXMgcXVlIHNvbiBzZWxlY2Npb25hZG9zIHBhcmEgZWwgYXRyaWJ1dG8gUGxhbm5lZFN0YXJ0VGltZSBlbiBsYSBwYW50YWxsYSBkZSBlZGljacOzbiBkZSBsYSBjb25kaWNpw7NuIGRlIGNhbWJpbyBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbG9zIG9wZXJhZG9yZXMgcXVlIHNvbiBzZWxlY2Npb25hZG9zIHBhcmEgZWwgYXRyaWJ1dG8gUHJpb3JpZGFkSUQgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gZGUgbGEgY29uZGljacOzbiBkZSBjYW1iaW8gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIGxvcyBvcGVyYWRvcmVzIHF1ZSBzb24gc2VsZWNjaW9uYWRvcyBwYXJhIGVsIGF0cmlidXRvIFJlcXVlc3RlZFRpbWUgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gZGUgbGEgY29uZGljacOzbiBkZSBjYW1iaW8gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIGxvcyBvcGVyYWRvcmVzIHF1ZSBzb24gc2VsZWNjaW9uYWRvcyBwYXJhIGVsIGF0cmlidXRvIFdvcmtPcmRlckFnZW50SUQgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gZGUgbGEgY29uZGljacOzbiBkZSBjYW1iaW8gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbG9zIG9wZXJhZG9yZXMgcXVlIHNvbiBzZWxlY2Npb25hZG9zIHBhcmEgZWwgYXRyaWJ1dG8gV29ya09yZGVyTnVtYmVyIGVuIGxhIHBhbnRhbGxhIGRlIGVkaWNpw7NuIGRlIGxhIGNvbmRpY2nDs24gZGUgY2FtYmlvIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBsb3Mgb3BlcmFkb3JlcyBxdWUgc29uIHNlbGVjY2lvbmFkb3MgcGFyYSBlbCBhdHJpYnV0byBXb3JrT3JkZXJTdGF0ZUlEIGVuIGxhIHBhbnRhbGxhIGRlIGVkaWNpw7NuIGRlIGxhIGNvbmRpY2nDs24gZGUgY2FtYmlvIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbG9zIG9wZXJhZG9yZXMgcXVlIHNvbiBzZWxlY2Npb25hZG9zIHBhcmEgZWwgYXRyaWJ1dG8gV29ya09yZGVyVGl0bGUgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gZGUgbGEgY29uZGljacOzbiBkZSBjYW1iaW8gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbG9zIG9wZXJhZG9yZXMgcXVlIHNvbiBzZWxlY2Npb25hZG9zIHBhcmEgZWwgYXRyaWJ1dG8gQ2hhbmdlTWFuYWdlcklEIGVuIGxhIHBhbnRhbGxhIGRlIGVkaWNpw7NuIGRlIGxhIGNvbmRpY2nDs24gZGUgY2FtYmlvIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBwZXJpb2RvIChlbiBhw7FvcykgZW4gZWwgcXVlIGxhcyBmZWNoYXMgZGUgaW5pY2lvIHkgZmluYWxpemFjacOzbiBwdWVkZW4gc2VsZWNjaW9uYXJzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJ0RlZmluZSBsb3MgYXRyaWJ1dG9zIG1vc3RyYWRvcyBkZSB1biBwZWRpZG8gZGUgdHJhYmFqbyBlbiBsYSBpbmZvcm1hY2nDs24gc29icmUgaGVycmFtaWVudGFzIGRlbCBncsOhZmljbyBkZSBvcmRlbiBkZSB0cmFiYWpvIGVuIGVsIGRldGFsbGUgZGUgY2FtYmlvLiBQYXJhIG1vc3RyYXIgbG9zIGNhbXBvcyBkaW7DoW1pY29zIGRlIG9yZGVuIGRlIHRyYWJham8gZW4gbGEgaW5mb3JtYWNpw7NuIHNvYnJlIGhlcnJhbWllbnRhcywgc2UgZGViZW4gZXNwZWNpZmljYXIgY29tbyBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZSBsYXMgY29sdW1uYXMgbW9zdHJhZGFzIGVuIGxhIHZpc3RhIGRlIHJlc3VtZW4gZGUgbGEgUFNBIGRlIGxvcyBjYW1iaW9zLCBzaW4gcXVlIGVzdG8gdGVuZ2EgZWZlY3RvIGVuIGxhIHBvc2ljacOzbiBkZSBsYXMgbWlzbWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgbGFzIGNvbHVtbmFzIG1vc3RyYWRhcyBlbiBsYSB2aXN0YSBkZSByZXN1bWVuIGRlIGxhIGFnZW5kYSBkZSBsb3MgY2FtYmlvcywgc2luIHF1ZSBlc3RvIHRlbmdhIGVmZWN0byBlbiBsYSBwb3NpY2nDs24gZGUgbGFzIG1pc21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgbGFzIGNvbHVtbmFzIG1vc3RyYWRhcyBlbiBsYSB2aXN0YSBkZSByZXN1bWVuIGRlIE15Q0FCLCBzaW4gcXVlIGVzdG8gdGVuZ2EgZWZlY3RvIGVuIGxhIHBvc2ljacOzbiBkZSBsYXMgbWlzbWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgbGFzIGNvbHVtbmFzIG1vc3RyYWRhcyBlbiBsYSB2aXN0YSBkZSByZXN1bWVuIGRlIE15Q2hhbmdlcywgc2luIHF1ZSBlc3RvIHRlbmdhIGVmZWN0byBlbiBsYSBwb3NpY2nDs24gZGUgbGFzIG1pc21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGxhcyBjb2x1bW5hcyBtb3N0cmFkYXMgZW4gbGEgdmlzdGEgZGUgcmVzdW1lbiBkZSBNeVdvcmtvcmRlcnMsIHNpbiBxdWUgZXN0byB0ZW5nYSBlZmVjdG8gZW4gbGEgcG9zaWNpw7NuIGRlIGxhcyBtaXNtYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZSBsYXMgY29sdW1uYXMgbW9zdHJhZGFzIGVuIGxhIHZpc3RhIGRlIHJlc3VtZW4gZGUgbGFzIFBJUiwgc2luIHF1ZSBlc3RvIHRlbmdhIGVmZWN0byBlbiBsYSBwb3NpY2nDs24gZGUgbGFzIG1pc21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgbGFzIGNvbHVtbmFzIG1vc3RyYWRhcyBlbiBsYSB2aXN0YSBkZSByZXN1bWVuIGRlbCBhZG1pbmlzdHJhZG9yIGRlIGxvcyBjYW1iaW9zLCBzaW4gcXVlIGVzdG8gdGVuZ2EgZWZlY3RvIGVuIGxhIHBvc2ljacOzbiBkZSBsYXMgbWlzbWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgbGFzIGNvbHVtbmFzIG1vc3RyYWRhcyBlbiBsYSB2aXN0YSBkZSByZXN1bWVuIGRlIGxvcyBjYW1iaW9zLCBzaW4gcXVlIGVzdG8gdGVuZ2EgZWZlY3RvIGVuIGxhIHBvc2ljacOzbiBkZSBsYXMgbWlzbWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGxhcyBjb2x1bW5hcyBtb3N0cmFkYXMgZW4gbGEgYsO6c3F1ZWRhIGRlIGNhbWJpb3MsIHNpbiBxdWUgZXN0byB0ZW5nYSBlZmVjdG8gZW4gbGEgcG9zaWNpw7NuIGRlIGxhcyBtaXNtYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZSBsYXMgY29sdW1uYXMgbW9zdHJhZGFzIGVuIGxhIHZpc3RhIGRlIHJlc3VtZW4gZGUgZWRpY2nDs24gZGUgbGEgYW5nZW5kYSBkZSBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZSwgc2luIHF1ZSBlc3RvIHRlbmdhIGVmZWN0byBlbiBsYSBwb3NpY2nDs24gZGUgbGFzIG1pc21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgbGFzIGNvbHVtbmFzIG1vc3RyYWRhcyBlbiBsYSB2aXN0YSBkZSByZXN1bWVuIGRlIGxhcyBwbGFudGlsbGFzLCBzaW4gcXVlIGVzdG8gdGVuZ2EgZWZlY3RvIGVuIGxhIHBvc2ljacOzbiBkZSBsYXMgbWlzbWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJ0RlZmluZSBsYXMgc2XDsWFsZXMgcGFyYSBjYWRhIGNhbWJpbyBkZSBlc3RhZG8gSVRTTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgbG9zIHRpcG9zIGRlIHBsYW50aWxsYSBxdWUgc2Vyw6FuIHV0aWxpemFkb3MgY29tbyBmaWx0cm9zIGVuIGxhIHZpc3RhIGRlIHJlc3VtZW4gZGUgbGFzIHBsYW50aWxsYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIGxvcyBlc3RhZG9zIGRlIGxhcyDDs3JkZW5lcyBkZSB0cmFiYWpvIHF1ZSBzZXLDoW4gdXRpbGl6YWRvcyBjb21vIGZpbHRyb3MgZW4gbGEgdmlzdGEgZGUgcmVzdW1lbiBkZSBNeVdvcmtvcmRlcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIGxvcyBlc3RhZG9zIGRlIGxhcyDDs3JkZW5lcyBkZSB0cmFiYWpvIHF1ZSBzZXLDoW4gdXRpbGl6YWRvcyBjb21vIGZpbHRyb3MgZW4gbGEgdmlzdGEgZGUgcmVzdW1lbiBkZSBsYXMgUElSLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIGxvcyB0aXBvcyBkZSDDs3JkZW5lcyBkZSB0cmFiYWpvIHF1ZSBzZSB1c2Fyw6FuIGVuIGxhIHZpc3RhIGRlIHJlc3VtZW4gZGUgbGFzIFBJUi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAnRGV0ZXJtaW5hIHNpIGRlYmVuIGVudmlhcnNlIG5vdGlmaWNhY2lvbmVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnRWxpbWluYXIgdW4gY2FtYmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICdCb3JyYXIgZWwgY2FtYmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICdCb3JyYXIgbGEgb3JkZW4gZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJ0RldGFsbGVzIGRlIHVuYSBlbnRyYWRhIGRlIGhpc3RvcmlhbCBkZSBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNpLCBhbCBjcmVhciB1bmEgZXN0YWTDrXN0aWNhLCBlcyBwb3NpYmxlIHF1ZSBsb3MgYWdlbnRlcyBpbnRlcmNhbWJpZW4gbGFzIFgtYXhpcyBkZSBsYXMgbWlzbWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2kgZWwgbcOzZHVsbyBjb211biBkZSBlc3RhZMOtc3RpY2FzIGRlYmUgZ2VuZXJhciBlc3RhZMOtc3RpY2FzIHNvYnJlIGNhbWJpb3MgaGVjaG9zIGEgY2xhc2VzIGRlIGVsZW1lbnRvcyBkZSBjb25maWd1cmFjacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzaSBlbCBtw7NkdWxvIGNvbXVuIGRlIGVzdGFkw61zdGljYXMgZGViZSBnZW5lcmFyIGVzdGFkw61zdGljYXMgc29icmUgbG9zIGNhbWJpb3MsIHJlc3BlY3RvIGEgbGFzIGFjdHVhbGl6YWNpb25lcyBkZSBlc3RhZG8gZGUgbG9zIGNhbWJpb3MgZW4gdW4gcGVyaW9kbyBkZXRlcm1pbmFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzaSBlbCBtw7NkdWxvIGNvbXVuIGRlIGVzdGFkw61zdGljYXMgZGViZSBnZW5lcmFyIGVzdGFkw61zdGljYXMgc29icmUgbG9zIGNhbWJpb3MsIHJlc3BlY3RvIGEgbGEgcmVsYWNpw7NuIGVudHJlIGxvcyBjYW1iaW9zIHkgbG9zIHRpY2tldHMgZGUgdGlwbyBpbmNpZGVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2kgZWwgbcOzZHVsbyBjb211biBkZSBlc3RhZMOtc3RpY2FzIGRlYmUgZ2VuZXJhciBlc3RhZMOtc3RpY2FzIHNvYnJlIGxvcyBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2kgZWwgbcOzZHVsbyBjb211biBkZSBlc3RhZMOtc3RpY2FzIGRlYmUgZ2VuZXJhciBlc3RhZMOtc3RpY2FzIHNvYnJlIGVsIG7Dum1lcm8gZGUgdGlja2V0cyBSZmMgcXVlIHVuYSBwZXJzb25hIGNyZcOzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6FtaWNvcyAocGFyYSBjYW1iaW9zIHkgw7NyZGVuZXMgZGUgdHJhYmFqbykgcXVlIHNlIG11ZXN0cmFuIGVuIGxhIHBhbnRhbGxhIGRlIGNhbWJpbyBkZSBpbXByZXNpw7NuIGRlIGxhIGludGVyZmF6IGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdMb3MgY2FtcG9zIGRpbsOhbWljb3MgcXVlIHNlIG11ZXN0cmFuIGVuIGxhIHBhbnRhbGxhIGRlIGFncmVnYXIgY2FtYmlvcyBkZSBsYSBpbnRlcmZheiBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIHF1ZSBzZSBtdWVzdHJhbiBlbiBsYSBwYW50YWxsYSBkZSBtb2RpZmljYWNpw7NuIGRlIGNhbWJpb3MgZGUgbGEgaW50ZXJmYXogZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIHF1ZSBzZSBtdWVzdHJhbiBlbiBsYSBwYW50YWxsYSBkZSBiw7pzcXVlZGEgZGUgY2FtYmlvcyBkZSBsYSBpbnRlcmZheiBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIHF1ZSBzZSBtdWVzdHJhbiBlbiBsYSBwYW50YWxsYSBkZSBkZXRhbGxlIGRlIGNhbWJpbyBkZSBsYSBpbnRlcmZheiBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTG9zIGNhbXBvcyBkaW7DoW1pY29zIHF1ZSBzZSBtdWVzdHJhbiBlbiBsYSBwYW50YWxsYSBkZSBhZ3JlZ2FyIG9yZGVuIGRlIHRyYWJham8gZGUgbGEgaW50ZXJmYXogZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6FtaWNvcyBxdWUgc2UgbXVlc3RyYW4gZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gZGUgw7NyZGVuZXMgZGUgdHJhYmFqbyBkZSBsYSBpbnRlcmZheiBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOhbWljb3MgcXVlIHNlIG11ZXN0cmFuIGVuIGxhIHBhbnRhbGxhIGRlIGluZm9ybWUgZGUgw7NyZGVuZXMgZGUgdHJhYmFqbyBkZSBsYSBpbnRlcmZheiBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIHF1ZSBzZSBtdWVzdHJhbiBlbiBsYSBwYW50YWxsYSBkZSBkZXRhbGxlIGRlIGxhIG9yZGVuIGRlIHRyYWJham8gZGUgbGEgaW50ZXJmYXogZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIGV2ZW50byBEeW5hbWljRmllbGQgcGFyYSBnZXN0aW9uYXIgbGEgYWN0dWFsaXphY2nDs24gZGUgbGFzIGNvbmRpY2lvbmVzIHNpIHNlIGFncmVnYW4sIGFjdHVhbGl6YW4gbyBlbGltaW5hbiBjYW1wb3MgZGluw6FtaWNvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICdFZGl0YXIgdW4gY2FtYmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnRWRpdGFyIGVsIGNhbWJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJ0VkaXRhciBsYXMgY29uZGljaW9uZXMgZGVsIGNhbWJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJ0VkaXRhciBsYSBvcmRlbiBkZSB0cmFiYWpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJ0hhYmlsaXRhIGVsIHRhbWHDsW8gbcOtbmltbyBkZWwgY29udGFkb3IgZGUgY2FtYmlvcyAoU2kgIkZlY2hhIiBlc3RhYmEgc2VsZWNjaW9uYWRvIGNvbW8gSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICdFbnZpYXIgZWwgaG9yYXJpbyBkZSBjYW1iaW9zLiBEZXNjcmlwY2nDs24gZ2VuZXJhbCBkZSBsb3MgY2FtYmlvcyBhcHJvYmFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgWm9vbSd9ID0gJ0RldGFsbGUgZGVsIGhpc3RvcmlhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJ1BsYW50aWxsYXMgQ0FCIHBhcmEgZWwgQ2FtYmlvIElUU00uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJ0VkaXRhciBDb25kaWNpw7NuIGRlbCBDYW1iaW8gZW4gSVRTTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJ1Jlc3VtZW4gZGUgbGEgY29uZGljacOzbiBkZWwgY2FtYmlvIGVuIElUU00uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnUmVzdW1lbiBkZWwgR2VzdG9yIGRlbCBDYW1iaW8gZW4gSVRTTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJ05vdGlmaWNhY2lvbmVzIGRlbCBjYW1iaW8gZW4gSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnUmVzdW1lbiBkZWwgQ2FtYmlvIFBJUiBlbiBJVFNNLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICdSZWdsYXMgZGUgbm90aWZpY2FjacOzbiBkZWwgQ2FtYmlvIGVuIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnQ2FtYmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJ1Jlc3VtZW4gTXlDQUIgZW4gSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICdSZXN1bWVuIGRlIE15Q2hhbmdlcyBlbiBJVFNNLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICdSZXN1bWVuIE15V29ya29yZGVycyBlbiBJVFNNLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICdCb3JyYXIgcGxhbnRpbGxhIGVuIElUU00uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnRWRpdGFyIFBsYW50aWxsYSBDQUIgZW4gSVRTTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnRWRpdGFyIGNvbnRlbmlkbyBkZSBQbGFudGlsbGEgZW4gSVRTTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0Lid9ID0gJ0VkaXRhciBQbGFudGlsbGEgZW4gSVRTTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICdSZXN1bWVuIGRlIFBsYW50aWxsYSBlbiBJVFNNLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJ03Ds2R1bG8gZGUgZXZlbnRvcyBwYXJhIElUU00gcXVlIGVsaW1pbmEgY29uZGljaW9uZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICdNw7NkdWxvIGRlIGV2ZW50b3MgSVRTTSBxdWUgZWxpbWluYSBsYSBtZW1vcmlhIGNhY2hlIHBhcmEgdW5hIGJhcnJhIGRlIGhlcnJhbWllbnRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnTcOzZHVsbyBkZSBldmVudG9zIElUU00gcXVlIGVsaW1pbmEgZWwgaGlzdG9yaWFsIGRlIGNhbWJpb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSBldmVudG9zIHBhcmEgSVRTTSBxdWUgdmVyaWZpY2EgY29uZGljaW9uZXMgeSBlamVjdXRhIGFjY2lvbmVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnTcOzZHVsbyBkZSBldmVudG9zIHBhcmEgSVRTTSBwYXJhIGVudmlhciBub3RpZmljYWNpb25lcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnTcOzZHVsbyBkZSBldmVudG9zIHBhcmEgSVRTTSBxdWUgYWN0dWFsaXphIGxhIGhpc3RvcmlhIGRlIGxvcyBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICdNw7NkdWxvIGRlIGV2ZW50b3MgcXVlIGFjdHVhbGl6YSBlbCBoaXN0b3JpYWwgZGUgY29uZGljaW9uZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJ03Ds2R1bG8gZGUgZXZlbnRvcyBxdWUgYWN0dWFsaXphIGVsIGhpc3RvcmlhbCBkZSBsYXMgw7NyZGVuZXMgZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJ03Ds2R1bG8gZGUgZXZlbnRvcyBwYXJhIElUU00gcXVlIHJlY2FsY3VsYSBsb3MgbsO6bWVyb3MgZGUgbGFzIMOzcmRlbmVzIGRlIHRyYWJham8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgZXZlbnRvcyBwYXJhIElUU00gcGFyYSBkZWZpbmlyIGxhcyBmZWNoYXMgZGUgaW5pY2lvIHkgZmluYWxpemFjacOzbiByZWFsZXMgZGUgbGFzIMOzcmRlbmVzIGRlIHRyYWJham8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICdDYW1iaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJ09yZGVuIGRlIFRyYWJham8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZnJlcXVlbmN5IGlzIFwncmVndWxhcmx5XCcsIHlvdSBjYW4gY29uZmlndXJlIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCAoZXZlcnkgWCBob3VycykuJ30gPQogICAgICAgICdTaSBsYSBmcmVjdWVuY2lhIGVzIFwncmVndWxhclwnLCBwdWVkZSBjb25maWd1cmFyIGxhIGZyZWN1ZW5jaWEgY29uIGxhIHF1ZSBzZSBlbnbDrWFuIGxhcyBub3RpZmljYWNpb25lcyAoZXZlcnkgWCBob3VycykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICdFbmxhemFyIG90cm8gb2JqZWN0byBhbCBjYW1iaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICdFbmxhemFyIG90cm8gb2JqZWN0byBhIGxhIG9yZGVuIGRlIHRyYWJham8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnTGEgbGlzdGEgZGUgdG9kb3MgbG9zIGV2ZW50b3MgZGUgY2FtYmlvIHNlIG1vc3RyYXLDoSBlbiBlbCBHVUkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIHdvcmtvcmRlciBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnTGEgbGlzdGEgZGUgdG9kYXMgbGFzIMOzcmRlbmVzIGRlIHRyYWJham8gc2UgbW9zdHJhcsOhIGVuIGVsIEdVSS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICdCw7pzcXVlZGEgZGUgbWllbWJyb3MgZGUgQ0FCIHBhcmEgYXV0b2NvbXBsZXRhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnQsO6c3F1ZWRhIGRlIGFnZW50ZXMsIHVzYWRhIHBhcmEgYXV0b2NvbXBsZXRhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICdHZXN0aW9uYXIgZWwgZXN0YWRvIGRlIGxhIG3DoXF1aW5hIGVuIGxhIEdlc3Rpw7NuIGRlbCBDYW1iaW8gSVRTTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnR2VzdGlvbmFyIGxhIG1hdHJpeiBjYXRlZ29yw61hIOKGlCBpbXBhY3RvIOKGlCBwcmlvcmlkYWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICdNw7NkdWxvIHBhcmEgdmVyaWZpY2FyIHNpIFdvcmtPcmRlckFkZCBvIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzZSBkZWJlbiBwZXJtaXRpci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICdNw7NkdWxvIHBhcmEgdmVyaWZpY2FyIGxvcyBtaWVtYnJvcyBkZWwgQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGFnZW50Lid9ID0gJ03Ds2R1bG8gcGFyYSB2ZXJpZmljYXIgZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBidWlsZGVyLid9ID0gJ03Ds2R1bG8gcGFyYSB2ZXJpZmljYXIgZWwgY3JlYWRvciBkZSBsb3MgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICdNw7NkdWxvIHBhcmEgdmVyaWZpY2FyIGVsIGFkbWluaXN0cmFkb3IgZGUgbG9zIGNhbWJpb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJ03Ds2R1bG8gcGFyYSB2ZXJpZmljYXIgZWwgYWdlbnRlIGRlIGxhIG9yZGVuIGRlIHRyYWJham8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnTcOzZHVsbyBwYXJhIHZlcmlmaWNhciBzaSBlbCBhZ2VudGUgZGUgdW5hIG9yZGVuIGRlIHRyYWJham8gc2UgaGEgZXN0YWJsZWNpZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJ03Ds2R1bG8gcGFyYSB2ZXJpZmljYXIgc2kgZWwgYWdlbnRlIGVzdMOhIGluY2x1aWRvIGVuIGxhIGxpc3RhIGRlIGNvbmZpZ3VyYWNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnTcOzZHVsbyBxdWUgbXVlc3RyYSB1biB2w61uY3VsbyBwYXJhIGNyZWFyIHVuIGNhbWJpbyBkZSBlc3RlIHRpY2tldC4gRWwgdGlja2V0IHNlIHZpbmN1bGFyw6EgYXV0b21hdGljYW1lbnRlIGNvbiBlbCBjYW1iaW8gbnVldm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJ01vdmVyIHJhbnVyYSBkZWwgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnTW92ZXIgdG9kYXMgbGFzIMOzcmRlbmVzIGRlIHRyYWJham8gYWwgbWlzbW8gdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnTnVldm8gKGRlc2RlIHBsYW50aWxsYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTw7NsbyBsb3MgdXN1YXJpb3MgcXVlIHBlcnRlbmV6Y2FuIGEgZXN0b3MgZ3J1cG9zIHRlbmRyw6FuIHBlcm1pc28gZGUgdXNhciBsb3MgdGlwb3MgZGUgdGlja2V0cywgdGFsIHkgY29tbyBzZSBkZWZpbmUgZW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgc2kgbGEgZnVuY2lvbmFsaWRhZCAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBlc3TDoSBoYWJpbGl0YWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ090cm9zIGFqdXN0ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICdSZXN1bWVuIHNvYnJlIHRvZG9zIGxvcyBDYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICdQSVInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICdSZXZpc2nDs24gUG9zdCBJbXBsZW1lbnRhY2nDs24gKFBJUiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnUFNBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1BhcsOhbWV0cm9zIHBhcmEgZWwgb2JqZXRvIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBlbiBsYSB2aXN0YSBkZSBwcmVmZXJlbmNpYSBkZSBsYSBpbnRlcmZheiBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIGNoYW5nZXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnUGFyw6FtZXRyb3MgcGFyYSBsYXMgcMOhZ2luYXMgKGVuIGxhcyBxdWUgc2UgbXVlc3RyYW4gbG9zIGNhbWJpb3MpIGVuIGVsIHJlc3VtZW4gZGUgY2FtYmlvcyBwZXF1ZcOxb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmZvcm1zIHRoZSBjb25maWd1cmVkIGFjdGlvbiBmb3IgZWFjaCBldmVudCAoYXMgYW4gSW52b2tlcikgZm9yIGVhY2ggY29uZmlndXJlZCBXZWJzZXJ2aWNlLid9ID0KICAgICAgICAnUmVhbGl6YSBsYSBhY2Npw7NuIGNvbmZpZ3VyYWRhIHBhcmEgY2FkYSBldmVudG8gKCBjb21vIHVuIEludm9rZXIpIHBhcmEgY2FkYSBzZXJ2aWNpbyBXZWIgY29uZmlndXJhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICdIb3JhIGRlIGZpbmFsaXphY2nDs24gcGxhbmlmaWNhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnSG9yYSBkZSBpbmljaW8gcGxhbmlmaWNhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICdJbXByaW1pciBlbCBjYW1iaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSB3b3Jrb3JkZXIuJ30gPSAnSW1wcmltaXIgbGEgb3JkZW4gZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnRGlzcG9uaWJpbGlkYWQgZGVsIHNlcnZpY2lvIHByb3llY3RhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnRGlzcG9uaWJpbGlkYWQgUHJveWVjdGFkYSBkZWwgU2VydmljaW8gKFBTQSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAnRGlzcG9uaWJpbGlkYWRsIGRlIHNlcnZpY2lvIHByb3llY3RhZGEgKFBTQSkgZGUgY2FtYmlvcy4gUmVzdW1lbiBkZSBsb3MgY2FtYmlvcyBhcHJvYmFkb3MgeSBzdXMgc2VydmljaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJ1RpZW1wbyBzb2xpY2l0YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdQcml2aWxlZ2lvcyBuZWNlc2FyaW9zIHBhcmEgcXVlIHVuIGFnZW50ZSB0b21lIHVuYSBvcmRlbiBkZSB0cmFiYWpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnUGVybWlzb3MgbmVjZXNhcmlvcyBwYXJhIGFjY2VkZXIgYSBsYSB2aXN0YSBkZSByZXN1bWVuIGRlIHRvZG9zIGxvcyBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICdQcml2aWxlZ2lvcyBuZWNlc2FyaW9zIHBhcmEgYWdyZWdhciB1bmEgb3JkZW4gZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjaGFuZ2UgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICdQcml2aWxlZ2lvcyBuZWNlc2FyaW9zIHBhcmEgbW9kaWZpY2FyIGVsIGFnZW50ZSBkZSB1bmEgb3JkZW4gZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlLid9ID0gJ1ByaXZpbGVnaW9zIG5lY2VzYXJpb3MgcGFyYSBjcmVhciB1bmEgcGxhbnRpbGxhIGEgcGFydGlyIGRlIHVuIGNhbWJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJ1ByaXZpbGVnaW9zIG5lY2VzYXJpb3MgcGFyYSBjcmVhciB1bmEgcGxhdGlsbGEgYSBwYXJ0aXIgZGUgdW4gQ0FCIGRlIGNhbWJpb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nfSA9ICdQcml2aWxlZ2lvcyBuZWNlc2FyaW9zIHBhcmEgY3JlYXIgdW5hIHBsYW50aWxsYSBhIHBhcnRpciBkZSB1bmEgb3JkZW4gZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICdQcml2aWxlZ2lvcyByZXF1ZXJpZG9zIHBhcmEgY3JlYXIgY2FtYmlvcyBiYXNhZG9zIGVuIHBsYW50aWxsYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnUHJpdmlsZWdpb3MgbmVjZXNhcmlvcyBwYXJhIGNyZWFyIGNhbWJpb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnUHJpdmlsZWdpb3MgbmVjZXNhcmlvcyBwYXJhIGVsaW1pbmFyIHVuYSBwbGFudGlsbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJ1ByaXZpbGVnaW9zIG5lY2VzYXJpb3MgcGFyYSBlbGltaW5hciB1bmEgb3JkZW4gZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICdQcml2aWxlZ2lvcyByZXF1ZXJpZG9zIHBhcmEgZWxpbWluYXIgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAnUHJpdmlsZWdpb3MgbmVjZXNhcmlvcyBwYXJhIG1vZGlmaWNhciB1bmEgcGxhbnRpbGxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB3b3Jrb3JkZXIuJ30gPSAnUHJpdmlsZWdpb3MgbmVjZXNhcmlvcyBwYXJhIG1vZGlmaWNhciB1bmEgb3JkZW4gZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnUHJpdmlsZWdpb3MgbmVjZXNhcmlvcyBwYXJhIG1vZGlmaWNhciBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICdQcml2aWxlZ2lvcyBuZWNlc2FyaW9zIHBhcmEgbW9kaWZpY2FyIGxhcyBjb25kaWNpb25lcyBkZSBsb3MgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnUHJpdmlsZWdpb3MgcmVxdWVyaWRvcyBwYXJhIGVkaXRhciBlbCBjb250ZW5pZG8gZGUgdW5hIHBsYW50aWxsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAnUHJpdmlsZWdpb3MgbmVjZXNhcmlvcyBwYXJhIG1vZGlmaWNhciBsYSBsaXN0YSBkZSBwZXJzb25hcyBpbnZvbHVjcmFkYXMgZW4gdW4gY2FtYmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIG1vdmUgY2hhbmdlcyBpbiB0aW1lLid9ID0gJ1ByaXZpbGVnaW9zIG5lY2VzYXJpb3MgcGFyYSBtb3ZlciBjYW1iaW9zIGVuIGVsIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICdQcml2aWxlZ2lvcyBuZWNlc2FyaW9zIHBhcmEgaW1wcmltaXIgdW4gY2FtYmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJ30gPSAnUHJpdmlsZWdpb3MgcmVxdWVyaWRvcyBwYXJhIHJlYWp1c3RhciBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnUHJpdmlsZWdpb3MgbmVjZXNhcmlvcyBwYXJhIHZlciB1bmEgb3JkZW4gZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGNoYW5nZXMuJ30gPSAnUHJpdmlsZWdpb3MgbmVjZXNhcmlvcyBwYXJhIHZlciBsb3MgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICdQcml2aWxlZ2lvcyBuZWNlc2FyaW9zIHBhcmEgdmVyIGxhIGxpc3RhIGRlIGxvcyBjYW1iaW9zLCBkb25kZSBlbCB1c3VhcmlvIGVzIHVuIG1pZW1icm8gZGVsIENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICdQcml2aWxlZ2lvcyBuZWNlc2FyaW9zIHBhcmEgdmVyIGxhIGxpc3RhIGRlIGxvcyBjYW1iaW9zLCBkb25kZSBlbCB1c3VhcmlvIGVzIGVsIGFkbWluaXN0cmFkb3IgZGUgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICdQZXJtaXNvcyBuZWNlc2FyaW9zIHBhcmEgYWNjZWRlciBhIGxhIHZpc3RhIGRlIHJlc3VtZW4gZGUgdG9kYXMgbGFzIHBsYW50aWxsYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJ1ByaXZpbGVnaW9zIG5lY2VzYXJpb3MgcGFyYSB2ZXIgbGFzIGNvbmRpY2lvbmVzIGRlIGxvcyBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnUHJpdmlsZWdpb3MgbmVjZXNhcmlvcyBwYXJhIHZlciBsYSBoaXN0b3JpYSBkZSBsb3MgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJ1ByaXZpbGVnaW9zIG5lY2VzYXJpb3MgcGFyYSB2ZXIgbGEgaGlzdG9yaWEgZGUgdW5hIG9yZGVuIGRlIHRyYWJham8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJ1ByaXZpbGVnaW9zIG5lY2VzYXJpb3MgcGFyYSBhY2NlZGVyIGEgbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGxhIGhpc3RvcmlhIGRlIGxvcyBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJ1ByaXZpbGVnaW9zIG5lY2VzYXJpb3MgcGFyYSB2ZXIgbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGxhIGhpc3RvcmlhIGRlIHVuYSBvcmRlbiBkZSB0cmFiYWpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJ1ByaXZpbGVnaW9zIG5lY2VzYXJpb3MgcGFyYSB2ZXIgbGEgbGlzdGEgZGUgbGEgYWdlbmRhIGRlIGxvcyBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICdQcml2aWxlZ2lvcyBuZWNlc2FyaW9zIHBhcmEgdmVyIGxhIGxpc3RhIGRlIGxhIFBTQSBkZSBsb3MgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJ1ByaXZpbGVnaW9zIG5lY2VzYXJpb3MgcGFyYSB2ZXIgbGEgbGlzdGEgZGUgY2FtYmlvcyBjb24gdW4gUElSIChSZXZpc2nDs24gUG9zdCBJbXBsZW1lbnRhY2nDs24pIHByw7N4aW1vLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnUHJpdmlsZWdpb3MgbmVjZXNhcmlvcyBwYXJhIHZlciB1bmEgbGlzdGEgZGUgbWlzIGNhbWJpb3MgcHJvcGlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biB3b3Jrb3JkZXJzLid9ID0gJ1ByaXZpbGVnaW9zIG5lY2VzYXJpb3MgcGFyYSB2ZXIgdW5hIGxpc3RhIGRlIG1pcyDDs3JkZW5lcyBkZSB0cmFiYWpvIHByb3BpYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnUHJpdmlsZWdpb3MgbmVjZXNhcmlvcyBwYXJhIGhhY2VyIHVuIHJlcG9ydGUgZGUgdW5hIG9yZGVuIGRlIHRyYWJham8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICdSZXN0YWJsZWNlIHVuIGNhbWJpbyB5IHN1cyDDs3JkZW5lcyBkZSB0cmFiYWpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJ1Jlc2V0ZWFyIGNhbWJpbyB5IHN1cyDDs3JkZW5lcyBkZSB0cmFiYWpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnRWplY3V0YSBsYSB0YXJlYSBwYXJhIHZlcmlmaWNhciBzaSBzZSBoYW4gYWxjYW56YWRvIGxvcyB0aWVtcG9zIGVzcGVjw61maWNvcyBlbiBsb3MgY2FtYmlvcyB5IGVuIGxhcyDDs3JkZW5lcyBkZSB0cmFiYWpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJ1NhbHZhciBjYW1iaW8gY29tbyB1bmEgcGxhbnRpbGxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJ1NhbHZhciBvcmRlbiBkZSB0cmFiYWpvIGNvbW8gdW5hIHBsYW50aWxsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NoZWR1bGUnfSA9ICdQcm9ncmFtYXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NyZWVuIGFmdGVyIGNyZWF0aW5nIGEgd29ya29yZGVyJ30gPSAnUGFudGFsbGEgcG9zdGVyaW9yIGEgbGEgY3JlYWNpw7NuIGRlIHVuYSBvcmRlbiBkZSB0cmFiYWpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnQnVzY2FyIENhbWJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnQnVzY2FyIENhbWJpb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICdTZWxlY2Npb25hIGVsIG3Ds2R1bG8gZ2VuZXJhZG9yIGRlIG7Dum1lcm9zIGRlIGNhbWJpby4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudGEgZWwgbsO6bWVybyBkZSBjYW1iaW8sIGVsIFN5c3RlbUlEIHkgZWwgY29udGFkb3Igc2UgdXNhbiBjb24gZWwgZm9ybWF0byBTeXN0ZW1JRC5jb3VudGVyIChwb3IgZWplbXBsbywgMTAwMTE4LCAxMDAxMTkpLiBDb24gIkZlY2hhIiwgbG9zIG7Dum1lcm9zIGRlIGNhbWJpbyBzZXLDoW4gZ2VuZXJhZG9zIHBvciBsYSBmZWNoYSBhY3R1YWwgeSB1biBjb250YWRvcjsgZXN0ZSBmb3JtYXRvIHNlIHZlIGNvbW8gWWVhci5Nb250aC5EYXkuY291bnRlciwgcC4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gQ29uICJEYXRlQ2hlY2tzdW0iLCBlbCBjb250YWRvciBzZSBhZ3JlZ2Fyw6EgY29tbyBzdW1hIGRlIHZlcmlmaWNhY2nDs24gYSBsYSBjYWRlbmEgZGUgZmVjaGEgbcOhcyBlbCBJRCBkZWwgc2lzdGVtYS4gTGEgc3VtYSBkZSBjb21wcm9iYWNpw7NuIHNlIHJvdGFyw6EgZGlhcmlhbWVudGUuIEVzdGUgZm9ybWF0byBzZSB2ZSBjb21vIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIHAuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnRXN0YWJsZWNlIGVsIGFnZW50ZSBwYXJhIGxhIG9yZGVuIGRlIHRyYWJham8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRXN0YWJsZXpjYSBsYSBhbHR1cmEgcG9yIGRlZmVjdG8gKGVuIHDDrXhlbGVzKSBkZSBsb3MgY2FtcG9zIGlubGluZSBIVE1MIGVuIGxhIHBhbnRhbGxhIGRlIGRldGFsbGUgZGUgY2FtYmlvIHkgbGEgcGFudGFsbGEgZGUgZGV0YWxsZSBkZSBsYSBvcmRlbiBkZSB0cmFiYWpvIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRXN0YWJsZXpjYSBsYSBhbHR1cmEgbcOheGltYSAoZW4gcMOteGVsZXMpIGRlIGxvcyBjYW1wb3MgaW5saW5lIEhUTUwgZW4gZWwgZGV0YWxsZSBkZSBsYSBwYW50YWxsYSBkZSBjYW1iaW8geSBsYSBwYW50YWxsYSBkZSBkZXRhbGxlIGRlIGxhIG9yZGVuIGRlIHRyYWJham8gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJ0VzdGFibGUgZWwgdGFtYcOxbyBtw61uaW1vIGRlbCBjb250YWRvciBkZSBjYW1iaW9zIChzaSBzZSBzZWxlY2Npb27DsyAiQXV0b0luY3JlbWVudCIgY29tbyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBFbCB2YWxvciBwb3IgZGVmZWN0byBlcyA1LCBlc3RvIHNpZ25pZmljYSBxdWUgZWwgY29udGFkb3IgY29taWVuemEgZGVzZGUgMTAwMDAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnQ29uZmlndXJhIGxhIG3DoXF1aW5hIGRlIGVzdGFkb3MgcGFyYSBsb3MgY2FtYmlvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICdDb25maWd1cmEgbGEgbcOhcXVpbmEgZGUgZXN0YWRvcyBwYXJhIGxhcyDDs3JkZW5lcyBkZSB0cmFiYWpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICdNdWVzdHJhIHVuYSBjYXNpbGxhIGRlIHZlcmlmaWNhY2nDs24gZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gZGUgw7NyZGVuZXMgZGUgdHJhYmFqbyBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlIHF1ZSBkZWZpbmUgc2kgbG9zIHNpZ3VpZW50ZXMgcGVkaWRvcyBkZSB0cmFiYWpvIHRhbWJpw6luIGRlYmVyw61hbiBtb3ZlcnNlIHNpIHVuIHBlZGlkbyBlbiBjdXJzbyBzZSBtb2RpZmljYSB5IGxhIGhvcmEgZGUgZmluYWxpemFjacOzbiBwbGFuaWZpY2FkYSBoYSBjYW1iaWFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1biBlbmxhY2UgZW4gZWwgbWVuw7ogcXVlIHBlcm1pdGUgY2FtYmlhciBlbCBhZ2VudGUgZGUgbGEgb3JkZW4gZGUgdHJhYmFqbywgZW4gbGEgdmlzdGEgYW1wbGlhZGEgZGUgbGEgb3JkZW4gZGUgdHJhYmFqbyBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNdWVzdHJhIHVuIHbDrW5jdWxvIGVuIGVsIG1lbsO6IHF1ZSBwZXJtaXRlIGRlZmluaXIgdW4gY2FtYmlvIGNvbW8gdW5hIHBsYW50aWxsYSwgZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIGNhbWJpbywgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1biBlbmxhY2UgZW4gZWwgbWVuw7ogcXVlIHBlcm1pdGUgZGVmaW5pciB1bmEgb3JkZW4gZGUgdHJhYmFqbyBjb21vIHBsYW50aWxsYSBlbiBsYSB2aXN0YSBkZSBkZXRhbGxlIGRlbCBwZWRpZG8gZGUgdHJhYmFqbywgZW4gbGEgaW50ZXJmYXogZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW4gZW5sYWNlIGVuIGVsIG1lbsO6IHF1ZSBwZXJtaXRlIGVkaXRhciBlbCBpbmZvcm1lIGRlIHVuYSBvcmRlbiBkZSB0cmFiYWpvLCBlbiBsYSB2aXN0YSBhbXBsaWFkYSBkZSBsYSBvcmRlbiBkZSB0cmFiYWpvIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW4gbGluayBlbiBlbCBtZW7DuiBwYXJhIHZpbmN1bGFyIHVuIGNhbWJpbyBjb24gb3RybyBvYmpldG8sIGVuIGxhIHZpc3RhIGRldGFsbGFkYSBkZSBkaWNobyBjYW1iaW8gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW4gZW5sYWNlIGVuIGVsIG1lbsO6IHF1ZSBwZXJtaXRlIHZpbmN1bGFyIHVuYSBvcmRlbiBkZSB0cmFiYWpvIGNvbiBvdHJvIG9iamV0byBlbiBsYSB2aXN0YSBhbXBsaWFkYSBkZSBsYSBvcmRlbiBkZWwgdHJhYmFqbyBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1biB2w61uY3VsbyBlbiBlbCBtZW7DuiBxdWUgcGVybWl0ZSBtb3ZlciBlbCBwZXJpb2RvIGRlIHRpZW1wbyBkZSB1biBjYW1iaW8sIGVuIHN1IHZpc3RhIGRldGFsbGFkYSBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNdWVzdHJhIHVuIGVubGFjZSBlbiBlbCBtZW7DuiBxdWUgcGVybWl0ZSB0b21hciB1bmEgb3JkZW4gZGUgdHJhYmFqbyBlbiBsYSB2aXN0YSBhbXBsaWFkYSBkZSBsYSBpbnRlcmZheiBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGNvbmRpdGlvbnMgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW4gdsOtbmN1bG8gZW4gZWwgbWVuw7ogcGFyYSBhY2NlZGVyIGEgbGFzIGNvbmRpY2lvbmVzIGRlIHVuIGNhbWJpbyBlbiBzdSB2aXN0YSBkZXRhbGxhZGEgZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1biBsaW5rIGVuIGVsIG1lbsO6IHBhcmEgYWNjZWRlciBhIGxhIGhpc3RvcmlhIGRlIHVuIGNhbWJpbyBlbiBzdSB2aXN0YSBkZXRhbGxhZGEsIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW4gZW5sYWNlIGVuIGVsIG1lbsO6IHBhcmEgYWNjZWRlciBhbCBoaXN0b3JpYWwgZGUgdW4gcGVkaWRvIGRlIHRyYWJham8gZW4gbGEgdmlzdGEgYW1wbGlhZGEgZGUgbGEgaW50ZXJmYXogZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNdWVzdHJhIHVuIGVubGFjZSBlbiBlbCBtZW7DuiBwYXJhIGFncmVnYXIgdW5hIG9yZGVuIGRlIHRyYWJham8gZW4gbGEgdmlzdGEgZGUgY2FtYmlvIGFtcGxpYWRhIGRlIGxhIGludGVyZmF6IGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNdWVzdHJhIHVuIHbDrW5jdWxvIGVuIGVsIG1lbsO6IHBhcmEgZWxpbWluYXIgdW4gY2FtYmlvIGVuIGxhIHZpc3RhIGRlIHpvb20gbyBlbiBsYSBpbnRlcmZheiBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1biBlbmxhY2UgZW4gZWwgbWVuw7ogcGFyYSBlbGltaW5hciB1bmEgb3JkZW4gZGUgdHJhYmFqbyBlbiBzdSB2aXN0YSBhbXBsaWFkYSBkZSBsYSBpbnRlcmZheiBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNdWVzdHJhIHVuIGxpbmsgZW4gZWwgbWVuw7ogcGFyYSBlZGl0YXIgdW4gY2FtYmlvIGVuIHN1IHZpc3RhIGRldGFsbGFkYSwgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW4gZW5sYWNlIGVuIGVsIG1lbsO6IHBhcmEgZWRpdGFyIHVuYSBvcmRlbiBkZSB0cmFiYWpvIGVuIGxhIHZpc3RhIGFtcGxpYWRhIGRlIGxhIGludGVyZmF6IGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW4gbGluayBlbiBlbCBtZW7DuiBwYXJhIHJlZ3Jlc2FyIGVuIGxhIHZpc3RhIGRldGFsbGFkYSBkZSB1biBjYW1iaW8gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW4gZW5sYWNlIGVuIGVsIG1lbsO6IHBhcmEgdm9sdmVyIGEgbGEgdmlzdGEgYW1wbGlhZGEgZGUgbGEgb3JkZW4gZGUgdHJhYmFqbyBkZSBsYSBpbnRlcmZheiBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1biBsaW5rIGVuIGVsIG1lbsO6IHBhcmEgaW1wcmltaXIgdW4gY2FtYmlvIGVuIHN1IHZpc3RhIGRldGFsbGFkYSwgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNdWVzdHJhIHVuIGVubGFjZSBlbiBlbCBtZW7DuiBwYXJhIGltcHJpbWlyIHVuYSBvcmRlbiBkZSB0cmFiYWpvIGVuIGxhIHZpc3RhIGFtcGxpYWRhIGRlIGxhIGludGVyZmF6IGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNdWVzdHJhIHVuIHbDrW5jdWxvIGVuIGVsIG1lbsO6IHBhcmEgcmVhanVzdGFyIHVuIGNhbWJpbyB5IHN1cyBvcmRlbmVzIGRlIHRyYWJham8gZW4gbGEgdmlzdGEgZGUgem9vbSBvIGVuIGxhIGludGVyZmF6IGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RhIHVuIGVubGFjZSBlbiBlbCBtZW7DuiBxdWUgbXVlc3RyYSBhIGxhcyBwZXJzb25hcyBpbXBsaWNhZGFzIGVuIGVsIGNhbWJpbywgZW4gbGEgdmlzdGEgYW1wbGlhZGEgZGVsIGNhbWJpbyBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgbGEgaGlzdG9yaWEgZGVsIGNhbWJpbyAob3JkZW5hZG8gaW52ZXJzYW1lbnRlKSBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnTcOhcXVpbmEgZGUgRXN0YWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnSWRzIGRlIMOzcmRlbmVzIGRlIHRyYWJham8geSBhbG1hY2VuZXMgZGVsIGNhbWJpbyB5IHN1IGlkIGRlIHBsYW50aWxsYSBjb3JyZXNwb25kaWVudGUsIG1pZW50cmFzIHVuIHVzdWFyaW8gZXN0w6EgZWRpdGFuZG8gdW5hIHBsYW50aWxsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICdUb21hciBPcmRlbiBkZSBUcmFiYWpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJ0NvZ2VyIE9yZGVuIGRlIHRyYWJham8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICdDb2dlciBsYSBvcmRlbiBkZSB0cmFiYWpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJ1Jlc3VtZW4gZGUgUGxhbnRpbGxhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAnVGlwbyBkZSBwbGFudGlsbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnUGxhbnRpbGxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnSWRlbnRpZmljYWRvciBkZSB1biBjYW1iaW8sIHBvciBlamVtcGxvOiBDYW1iaW8jLCBNaUNhbWJpbyMuIEVsIGRlZmF1bHQgZXMgQ2hhbmdlIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJ0lkZW50aWZpY2Fkb3IgZGUgdW5hIG9yZGVuIGRlIHRyYWJham8sIHBvciBlamVtcGxvOiBPcmRlbkRlVHJhYmFqbyMsIE1pT3JkZW5EZVRyYWJham8jLiBFbCBkZWZhdWx0IGVzIFdvcmtvcmRlciMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICdFc3RlIG3Ds2R1bG8gQUNMIHJlc3RyaW5nZSBlbCB1c28gZGUgbG9zIHRpcG9zIGRlIHRpY2tldCBkZWZpbmlkb3MgZW4gbGEgb3BjacOzbiBzeXNjb25maWcgXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJyBhIGxvcyB1c3VhcmlvcyBkZSBsb3MgZ3J1cG9zIGRlZmluaWRvcyBlbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQ29tbyBlc3RhIEFDTCBwb2Ryw61hIGNvbGlzaW9uYXIgY29uIG90cmFzIEFDTCBxdWUgdGFtYmnDqW4gZXN0w6FuIHJlbGFjaW9uYWRhcyBjb24gZWwgdGlwbyBkZSB0aWNrZXQsIGVzdGEgb3BjacOzbiBkZSBzeXNjb25maWcgZXN0w6EgZGVzaGFiaWxpdGFkYSBwb3IgZGVmZWN0byB5IHNvbG8gc2UgZGViZSBhY3RpdmFyIHNpIGVzIG5lY2VzYXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnUGVyaW9kbyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgb2YgdGlja2V0cywgd2hlcmUgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgYSBsaW5rIHRvIGFkZCBhIGNoYW5nZSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ1RpcG9zIGRlIHRpY2tldHMgZW4gY3V5YSB2aXN0YSBkZXRhbGxhZGEgYXBhcmVjZXLDoSB1biB2w61uY3VsbyBwYXJhIGFncmVnYXIgdW4gY2FtYmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJ0LDunNxdWVkYSBkZSBVc3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJ0HDsWFkaXIgT3JkZW4gZGUgdHJhYmFqbyAoZGVzZGUgUGxhbnRpbGxhKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICdBw7FhZGlyIE9yZGVuIGRlIHRyYWJham8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICdBZ2VudGUgZGUgT3JkZW4gZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICdCb3JyYXIgT3JkZW4gZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnRWRpdGFyIE9yZGVuIGRlIHRyYWJham8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnVmlzdGEgZGV0YWxsYWRhIGRlbCBIaXN0b3JpYWwgZGUgbGEgT3JkZW4gZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnSGlzdG9yaWFsIGRlIE9yZGVuIGRlIHRyYWJham8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnSW5mb3JtZSBkZSBPcmRlbiBkZSB0cmFiYWpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJ0RldGFsbGUgZGUgbGEgT3JkZW4gZGUgdHJhYmFqbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICdWaXN0YSBkZXRhbGxhZGEgZGUgbGEgT3JkZW4gZGUgdHJhYmFqby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJ3VuYSB2ZXonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAncmVndWxhcm1lbnRlJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/es_MX_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfTVhfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICdBc2lnbmFjacOzbiBkZSBQcmlvZGlkYWQnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdDYXTDoWxvZ28gZGUgY2xhc2VzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIG5leHQgc3RhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB0aW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBDQUIgYXMgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgY29uZGl0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGNvbmRpdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0b3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEFjdGlvbnMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJ0hpc3TDs3JpY28gZGUgJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBkZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBBZHZpc29yeSBCb2FyZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoZS5nLiAxMCo1MTU1IG9yIDEwNTY1OCopJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmV0d2VlbiknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAnw5psdGltbyBjYW1iaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICdNaXMgQ2FtYmlvcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICd0b2RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICdSZWNoYXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnb3JkZW4gZGUgdHJhYmFqbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVnaW5zIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZW5kcyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJ0FncmVnYXIgdW5hIE9yZGVuIGRlIFRyYWJham8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnSVRTTSBDYW1iaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJ0NhbWJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICdPdHJhcyBDb25maWd1cmFjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzIGZyb20gdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgb2YgdGlja2V0cywgd2hlcmUgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgYSBsaW5rIHRvIGFkZCBhIGNoYW5nZSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/et_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXRfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAna8O1aWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmFja291dCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICdNdXVkIHNlYWRlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/fa_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZmFfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ9i32KjZgtmHIOKGlCDYp9ir2LEg4oaUINin2YTZiNuM2KonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBwcmlvcml0eSByZXN1bHQgb2YgY29tYmluYXRpbmcgQ2F0ZWdvcnkg4oaUIEltcGFjdC4nfSA9CiAgICAgICAgJ9mF2K/bjNix24zYqiDYp9mE2YjbjNiqINmG2KfYtNuMINin2LIg2KrYsdqp24zYqCDYt9io2YLZhyDihpQg2KfYq9ixJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICfYqtiu2LXbjNi1INin2YTZiNuM2KonOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICfZhdiv24zYsduM2Kog2KfYudmE2KfZhiDZhdix2KjZiNi3INio2Ycg2YXYr9uM2LHbjNiqINiq2LrbjNuM2LHYp9iqINiv2LEgSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICfYp9mB2LLZiNiv2YYg2YLYp9i52K/ZhyDYp9i52YTYp9mGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ9in2LnZhNin2YYg2KjYp9uM2K8g2K/Yp9ix2KfbjCDZhtin2YUg2KjYp9i02K8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05hbWUgaXMgcmVxdWlyZWQuJ30gPSAn2YbYp9mFINmF2YjYsdivINmG24zYp9iyINin2LPYqi4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBTdGF0ZSBNYWNoaW5lJ30gPSAn2YXYp9i024zZhiDYrdin2YTYqiDZhdiv24zYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYSBjYXRhbG9nIGNsYXNzISd9ID0gJ9uM2qkg2qnZhNin2LMg2KfZhtiq2K7Yp9ioINqp2YbbjNivISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGFsb2cgY2xhc3MgaXMgcmVxdWlyZWQhJ30gPSAn2qnZhNin2LMg2YHZh9ix2LPYqiDZhdmI2LHYryDZhtuM2KfYsiDYp9iz2KohJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICfYp9mB2LLZiNiv2YYg24zaqSDYp9mG2KrZgtin2YQg2YjYtti524zYqic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAn2qnZhNin2LMg2YHZh9ix2LPYqic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPYmplY3QgTmFtZSd9ID0gJ9mG2KfZhSDYtNuM2KEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICfZhtmF2KfbjCDaqdmE24wg2LHZiNuMINin2YbYqtmC2KfZhOKAjNmH2KfbjCDZiNi22LnbjNiqINio2LHYp9uMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAn2KfZgdiy2YjYr9mGINuM2qkg2KfZhtiq2YLYp9mEINmI2LbYuduM2Kog2KjYsdin24wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJ9mE2LfZgdinINuM2qkg2YjYtti524zYqiDYsdinINin2YbYqtiu2KfbjCDZhtmF2KfbjNuM2K8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJ9mE2LfZgdinINuM2qkg2YjYtti524zYqiDYqNi52K/bjCDYp9mG2K7Yp9ioINmG2YXYp9uM24zYryEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAn2YjbjNix2KfbjNi0INuM2qkg2KfZhtiq2YLYp9mEINmI2LbYuduM2Kog2KjYsdin24wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ9ii24zYpyDYp9iyINit2LDZgSDYp9mG2KrZgtin2YQg2YjYtti524zYqiDZhdi32YXYptmGINmH2LPYqtuM2K/Ynyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDaGFuZ2UnfSA9ICfYp9mB2LLZiNiv2YYg2KrYutuM24zYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSd9ID0gJ9iq2LrbjNuM2LEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSnVzdGlmaWNhdGlvbid9ID0gJ9iv2YTbjNmEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAn2YjYsdmI2K/bjCDZhtin2YXYudiq2KjYsSDYp9iz2KouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAn2KrYp9ix24zYriDYr9ix2K7ZiNin2LPYqiDYtNiv2YcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAn2KfZhtiq2K7Yp9ioINmC2KfZhNioINiq2LrbjNuM2LEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAn2YbZiNi5INiy2YXYp9mGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSB0eXBlLid9ID0gJ9mG2YjYuSDYstmF2KfZhiDZhtin2YXYudiq2KjYsdin2LPYqi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICfYstmF2KfZhiDYrNiv24zYryc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJ30gPSAn2LDYrtuM2LHZhyDaqdix2K/ZhiDZh9uM2KbYqiDZhdi02KfZiNix2KfZhiDYqti624zbjNixINio2Ycg2LnZhtmI2KfZhiDZgtin2YTYqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJ9io2Ycg2LXZgdit2Ycg2KfZgdix2KfYryDYr9ix2q/bjNixINqp2KfYsSDYqNix2YgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAn2YbYp9mFINmF2LnYqtio2LEg2YbbjNiz2KonOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAn2LTYsdmI2Lcg2Ygg2LnZhdmE24zYp9iq4oCM2YfYpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAn2K3YsNmBINi02LHYtyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJ9in2YHYstmI2K/ZhiDYtNix2Lcg2KzYr9uM2K8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAn24zaqSDZhtin2YUg2YXYudiq2KjYsSDZhdmI2LHYryDZhtuM2KfYsiDYp9iz2KouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJ9iq2LfYp9io2YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJ9mH2LEg2LnYqNin2LHYqtuMIChPUiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAn2YfZhdmHINi52KjYp9ix2KfYqiAoQU5EKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJ9i52KjYp9ix2KfYqiDZhdmG2LfZgtuMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdG9yJ30gPSAn2KfZhtiq2K7Yp9ioINqp2YbZhtiv2YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICfYp9m+2LHYp9iq2YjYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICfZh9uM2oYg2LnYqNin2LHYqtuMINuM2KfZgdiqINmG2LTYry4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAn2KfZgdiy2YjYr9mGINuM2qkg2LnYqNin2LHYqiDZhdmG2LfZgtuMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICfZh9uM2oYg2LnZhdmE24zYp9iq24wg24zYp9mB2Kog2YbYtNivLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGFjdGlvbid9ID0gJ9in2YHYstmI2K/ZhiDYudmF2YTbjNin2Kog2KzYr9uM2K8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ9mF2K3YqtmI2KfbjCDYs9in2KjZgtmHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcid9ID0gJ9iv2LPYqtmI2LEg2qnYp9ixJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICfYstmF2KfZhiDYp9uM2KzYp9ivICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICfZhtmF2KfbjNi0INis2LLYptuM2KfYqic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJ9mG2YXYp9uM2LQg2K/Ys9iq2YjYsSDaqdin2LHZh9inJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJ9mF2YLYr9in2LEg2YLYr9uM2YXbjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICfZhdmC2K/Yp9ixINis2K/bjNivJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJbnZvbHZlZCBQZXJzb25zIG9mICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52b2x2ZWQgUGVyc29ucyd9ID0gJ9in2YHYsdin2K8g2K/Ysdqv24zYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VyJ30gPSAn2YXYr9uM2LEg2KrYutuM24zYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAn2qnYp9ix2KjYsSDZhtin2YXYudiq2KjYsSDYp9iz2KouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICfYs9in2LLZhtiv2Ycg2KrYutuM24zYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQWR2aXNvcnkgQm9hcmQnfSA9ICfZh9uM2KbYqiDZhdi02KfZiNix2KfZhiDYqti624zbjNixJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJ9mC2KfZhNioINmH24zYptiqINmF2LTYp9mI2LHYp9mGINiq2LrbjNuM2LEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICfYp9i52YXYp9mEINmC2KfZhNioJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAn2YLYp9mE2Kgg2KzYr9uM2K8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ9in24zZhiDYsdinINio2Ycg2LnZhtmI2KfZhiDbjNqpINmC2KfZhNioINiw2K7bjNix2Ycg2qnZhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAn2KfZgdiy2YjYr9mGINio2Ycg2YfbjNim2Kog2YXYtNin2YjYsdin2YYg2KrYutuM24zYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICfaqdin2LHYqNixINmG2KfZhdi52KrYqNixJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAn2YfbjNim2Kog2YXYtNin2YjYsSDaqdmG2YjZhtuMJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAn2KrZhti424zZhdin2Kog2YXZgdin2K8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlcyBwZXIgcGFnZSd9ID0gJ9iq2LrbjNuM2LEg2K/YsSDYtdmB2K3Zhyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJ9iz2KfYstmG2K/ZhyDYqti624zbjNixJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAn2YXYr9uM2LEg2KrYutuM24zYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAn2K/Ys9iq2YjYsSDaqdin2LHZh9inJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIFRpbWUnfSA9ICfYstmF2KfZhiDYr9ix2K7ZiNin2LPYqiDYtNiv2YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIEVuZCBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJ9mF2KvYp9mEOiAxMCo1MTU1INuM2KcgMTA1NjU4Kic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS5nLid9ID0gJ9io2Ycg2LnZhtmI2KfZhiDZhdir2KfZhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICfYqti624zbjNixINi32KjZgtmH4oCM2KjZhtiv24wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJlZm9yZS9hZnRlciknfSA9ICfZgtio2YQg2KfYsi/YqNi52K8g2KfYsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmV0d2VlbiknfSA9ICfYqNuM2YYnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAn2LDYrtuM2LHZhyDYqti624zbjNixINio2Ycg2LnZhtmI2KfZhiDZgtin2YTYqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBsYXRlIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICfZgtin2YTYqCDYqNin24zYryDYr9in2LHYp9uMINmG2KfZhSDYqNin2LTYryEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuJ30gPSAn2YbYp9mFINmC2KfZhNioINmF2YjYsdivINmG24zYp9iyINin2LPYqi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAn2KrZhti424zZhSDZhdis2K/YryDZiNi22LnbjNiq4oCM2YfYpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVyd3JpdGUgb3JpZ2luYWwgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIGNoYW5nZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QnfSA9ICfYrNin2KjYrNin24zbjCDYtNuM2KfYsSDYstmF2KfZhic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICfYp9i32YTYp9i52KfYqiDYqti624zbjNixJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnRlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3IocyknfSA9ICfYoti62KfYstqv2LEg2KrYutuM24zYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICfZh9uM2KbYqiDZhdi02KfZiNixINiq2LrbjNuM2LEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAn2KLYrtix24zZhiDYqti624zbjNixICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICfYotiu2LHbjNmGINiq2LrbjNuM2LEg2KrZiNiz2LcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ9iv2LHbjNin2YHYqiDZvtuM2YjYs9iqJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDQUIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFuZ2UgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5ldyBjaGFuZ2Ugd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgaXQgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyB3b3Jrb3JkZXIgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wb3JhcnkgY2hhbmdlIHdpbGwgYmUgY3JlYXRlZCB3aGljaCBjb250YWlucyB0aGUgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbnRlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgdG8gJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnN0cnVjdGlvbid9ID0gJ9iv2LPYqtmI2LHYp9mE2LnZhdmEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAn2YbZiNi5INiv2LPYqtmI2LEg2qnYp9ixINmG2KfZhdi52KrYqNixINin2LPYqi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICfYstmF2KfZhiDYoti62KfYsiDYqNin24zYryDZgtio2YQg2KfYsiDYstmF2KfZhiDZvtin24zYp9mGINio2KfYtNivISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdC4nfSA9ICfZgtin2YTYqCDZhtin2YXYudiq2KjYsSDYp9iz2KouJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJ9in2YbYqtiu2KfYqCDZgtin2YTYqCDYr9iz2KrZiNixINqp2KfYsSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/J30gPSAn2KLbjNinINmF2KfbjNmEINio2Ycg2K3YsNmBINin24zZhiDYr9iz2KrZiNixINqp2KfYsSDZh9iz2KrbjNiv2J8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICfYtNmF2Kcg2YbZhduM4oCM2KrZiNin2YbbjNivINin24zZhiDYr9iz2KrZiNixINqp2KfYsSDYsdinINit2LDZgSDZhtmF2KfbjNuM2K8g2LLbjNix2Kcg2K3Yr9in2YLZhCDYr9ixINuM2qkg2LTYsdi3INin2LPYqtmB2KfYr9mHINi02K/ZhyDYp9iz2KouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICfYp9uM2YYg2K/Ys9iq2YjYsSDaqdin2LEg2K/YsSDYtNix2YjYtyDYstuM2LEg2KfYs9iq2YHYp9iv2Ycg2LTYr9mHINin2LPYqic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBmb2xsb3dpbmcgd29ya29yZGVycyBhY2NvcmRpbmdseSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGUgcGxhbm5lZCBlbmQgdGltZSBvZiB0aGlzIHdvcmtvcmRlciBpcyBjaGFuZ2VkLCB0aGUgcGxhbm5lZCBzdGFydCB0aW1lcyBvZiBhbGwgZm9sbG93aW5nIHdvcmtvcmRlcnMgd2lsbCBiZSBjaGFuZ2VkIGFjY29yZGluZ2x5J30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzLSVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnQnfSA9ICfar9iy2KfYsdi0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJ9iy2YXYp9mGINmI2KfZgti524wg2KLYutin2LIg2KjYp9uM2K8g2YLYqNmEINin2LIg2LLZhdin2YYg2YjYp9mC2LnbjCDYrtin2KrZhdmHINio2KfYtNivISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICfYstmF2KfZhtuMINqp2Ycg2LLZhdin2YYg2YjYp9mC2LnbjCDYrtin2KrZhdmHINmF2LTYrti1INi02K/ZhyDYp9iz2KrYjCDZhduM4oCM2KjYp9uM2LPYqiDYstmF2KfZhiDZiNin2YLYuduMINii2LrYp9iyINmG24zYsiDZhdi02K7YtSDYtNiv2Ycg2KjYp9i02K8hJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICfaqdin2LHYtNmG2KfYsyDaqdmG2YjZhtuMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byB0YWtlIHRoaXMgd29ya29yZGVyPyd9ID0gJ9ii24zYpyDZiNin2YLYudinINmF24zigIzYrtmI2KfZh9uM2K8g2KfbjNmGINiv2LPYqtmI2LEg2qnYp9ixINix2Kcg2Kjar9uM2LHbjNiv2J8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAn2LDYrtuM2LHZhyDYr9iz2KrZiNixINqp2KfYsSDYqNmHINi52YbZiNin2YYg2YLYp9mE2KgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEluZm9ybWF0aW9uJ30gPSAn2KfYt9mE2KfYudin2Kog2YLYp9mE2Kgg2qnYp9ixJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBBZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biBub3RpZmljYXRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgbm90aWZpY2F0aW9uLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIFVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBJVFNNIENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biBjaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXInfSA9ICfYr9iz2KrZiNixINqp2KfYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICfYtNmF2KfYsdmHINiv2LPYqtmI2LEg2qnYp9ixJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclRpdGxlJ30gPSAn2LnZhtmI2KfZhiDYr9iz2KrZiNixINqp2KfYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJ9mI2LbYuduM2Kog2KrYutuM24zYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAn2LPYuduMINio2LHZhtin2YXZh+KAjNix24zYstuMINi02K/Zhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJ9iy2YXYp9mGINmF2YjYsdivINin2YbYqti42KfYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAn2LLZhdin2YYg2KLYutin2LIg2KjYsdmG2KfZhdmH4oCM2LHbjNiy24wg2LTYr9mHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAn2LLZhdin2YYg2K7Yp9iq2YXZhyDYqNix2YbYp9mF2YfigIzYsduM2LLbjCDYtNiv2YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAn2LLZhdin2YYg2KLYutin2LIg2K/YsSDYudmF2YQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJ9iy2YXYp9mGINiu2KfYqtmF2Ycg2K/YsSDYudmF2YQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJ9iq2LrbjNuM2LEg24zYp9mB2KrZhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICfYtNmF2KfYsdmHINiq2LrbjNuM2LEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICfZiNi22LnbjNiqINiv2LPYqtmI2LEg2qnYp9ixJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICfZhtmI2Lkg2K/Ys9iq2YjYsSDaqdin2LEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICfaqdin2LHYtNmG2KfYsyDYp9mG2KzYp9mFINiv2LPYqtmI2LEg2qnYp9ixJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIE92ZXJ2aWV3ICglcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVJlc2V0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICfYudmG2YjYp9mGINiq2LrbjNuM2LEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ9iv2LPYqtmI2LEg2qnYp9ix2YfYpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoIFJlc3VsdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSAlcyBvZiBhbGwgd29ya29yZGVycyBoYXMgdG8gYmUgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB0ZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCB3b3Jrb3JkZXIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSB0aGUgd29ya29yZGVyICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBmaW5kIENoYW5nZSBmb3IgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSBab29tJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uICVzIG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpdGxlOiAlcyB8IFR5cGU6ICVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ0FCcyd9ID0gJ9mH24zYptiqINmF2LTYp9mI2LHYp9mGINmF2YYnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJ9iq2LrbjNuM2LHYp9iqINmF2YYnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAn2YfZhdmHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJ9mH24zahic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAn2K/Ysdiu2YjYp9iz2Kog2LTYr9mHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICfYr9ixINin2YbYqti42KfYsSDYqtin24zbjNivJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAn2LHYryDYtNiv2YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICfYqtin24zbjNivINi02K/Zhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJ9iv2LEg2K3Yp9mEINin2KzYsdinJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAn2K/YsSDYp9mG2KrYuNin2LEg2KjYsdix2LPbjCDZvtizINin2LIg2b7bjNin2K/Zh+KAjNiz2KfYstuMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICfZhdmI2YHZgtuM2KonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAn2LTaqdiz2KonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICfZhNi62Ygg2LTYr9mHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJ9is2YXYuSDYtNiv2YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJ9iz2KfYrtiq2Ycg2LTYr9mHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAn2b7YsNuM2LHZgdiq2Ycg2LTYr9mHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAn2KLZhdin2K/Zhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ9iq2LXZiNuM2KgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAn2K/Ys9iq2YjYsSDaqdin2LEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmFja291dCd9ID0gJ9i32LHYrSDYqNin2LLar9i02KonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICfYqti12YXbjNmFJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJ9io2LHYsdiz24wg2b7YsyDYp9iyINm+24zYp9iv2YfigIzYs9in2LLbjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICfZh9iz2KonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAn2YbbjNiz2KonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICfYrtin2YTbjCDYp9iz2KonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAn2K7Yp9mE24wg2YbbjNiz2KonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAn2KjYstix2q/YqtixINin2LPYqiDYp9iyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJ9qp2Yjahtqp2KrYsSDYp9iz2Kog2KfYsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICfZgtio2YQg2KfYsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJ9m+2LMg2KfYsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJ9i02KfZhdmEINin2LPYqic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICfYtNin2YXZhCDZhtuM2LPYqic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJ9i02LHZiNi5INmF24zigIzYtNmI2K8g2KjYpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICfZvtin24zYp9mGINmF24zigIzbjNin2KjYryDYqNinJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJ9iq2YbYuNuM2YUg2LTYr9mHJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAn2KrYp9uM24zYryc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJ9mB2YfYsdiz2Kog2qnYp9ix2LTZhtin2LPYp9mG24wg2qnZhyDYp9is2KfYstmHINiv2LPYqtix2LPbjCDYqNix2KfbjCDar9ix2YHYqtmGINiv2LPYqtmI2LEg2qnYp9ixINix2Kcg2K/Yp9ix2Kcg2YfYs9iq2YbYry4g2qnZhNuM2K8g24zaqSDZhtin2YUg2KjYsdin24wg2YjYsdmI2K8g2KfYs9iqLiDZhdit2KrZiNinIDAg24zYpyAxINin2LPYqi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICfZgdmH2LHYs9iq24wg2KfYsiDZiNi22LnbjNiq4oCM2YfYp9uMINiv2LPYqtmI2LEg2qnYp9ixINqp2Ycg2K/YsSDYtdmI2LHYqtuMINiv2LEg2KfbjNmG2KzYpyDZiNin2LHYryDZhti02YjYr9iMINio2Ycg2LnZhtmI2KfZhiDYstmF2KfZhiDZiNin2YLYuduMINii2LrYp9iyINmF2LTYrti1INiu2YjYp9mH2K8g2LTYry4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICfYp9mB2LLZiNiv2YYg2K/Ys9iq2YjYsSDaqdin2LEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAn2YXYr9uM2LEg2YXYp9iq2LHbjNizINin2YfZhduM2KogPC0+INin2KvYsSA8LT4g2KfZhNmI24zYqic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICfZhdiv24zYsSDZhdin2LTbjNmGINmI2LbYuduM2KonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJ9mF2KfamNmI2YQg2KfYudmE2KfZhiDZiNin2LPYtyDaqdin2LHYtNmG2KfYsyDYqNix2KfbjCDZhtmF2KfbjNi0INiq2LnYr9in2K8g2YfbjNim2KrigIzZh9in24wg2YXYtNin2YjYsSDYqti624zbjNix2KfYqic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICfZhdin2pjZiNmEINin2LnZhNin2YYg2YjYp9iz2Lcg2qnYp9ix2LTZhtin2LMg2KjYsdin24wg2YbZhdin24zYtCDYqti52K/Yp9ivINiq2LrbjNuM2LHYp9iqINmF2K/bjNix24zYqiDYtNiv2Ycg2KrZiNiz2Lcg2qnYp9ix2KjYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAn2YXYp9qY2YjZhCDYp9i52YTYp9mGINmI2KfYs9i3INqp2KfYsdi02YbYp9izINio2LHYp9uMINmG2YXYp9uM2LQg2KrYudiv2KfYryDYqti624zbjNix2KfYqic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAn2YbZhdin24wg2qnZhNuMINiq2LrbjNuM2LEg2KjZhyDYtdmI2LHYqiDaqdmI2obaqSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAn2LLZhdin2YbigIzYqNmG2K/bjCDYqti624zbjNixJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICfYqti624zbjNixINmF2LPbjNix24zYp9ioINis2LPYqtis2Ygg2K/YsSDYsdin2KjYtyDaqdin2LHYqNix24wg2qnYp9ix2LTZhtin2LMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJ9mI24zYsdin24zYtCDYtNix2LcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJ9iz2KfYrtiq2YYg2KrYutuM24zYsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJ9iq2LnYsduM2YEg2LnZhNin2KbZhSDYqNix2KfbjCDZh9ixINmI2LbYuduM2Kog2K/Ys9iq2YjYsSDaqdin2LEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICfYqti52LHbjNmBINmF2KfamNmI2YQg2YbZhdin24wg2qnZhNuMINio2LHYp9uMINmG2YXYp9uM2LQg2YbZhdin24wg2qnZiNqG2qkg2KfYsiDZgdmH2LHYs9iqINiq2LrbjNuM2LHYp9iqJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAn2KrYudix24zZgSDZhdin2pjZiNmEINmG2YXYp9uMINqp2YTbjCDYqNix2KfbjCDZhtmF2KfbjNi0INmG2YXYp9uMINqp2YjahtqpINin2LIg2YHZh9ix2LPYqiDZgtin2YTYqOKAjNmH2KcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2V0IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGF0IG9ubHkgY2hhbmdlcyBjb250YWluaW5nIFdvcmtvcmRlcnMgbGlua2VkIHdpdGggc2VydmljZXMsIHdoaWNoIHRoZSBjdXN0b21lciB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB3aWxsIGJlIHNob3duLiBBbnkgb3RoZXIgY2hhbmdlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHJlcG9ydCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkRhdGUiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFBJUiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2Ugbm90aWZpY2F0aW9uIHJ1bGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlcyd9ID0gJ9iq2LrbjNuM2LHYp9iqJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJ9iq2LrbjNuM2LEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJ9iv2LPYqtmI2LEg2qnYp9ixJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICfYqtmG2LjbjNmF2KfYqiDYr9uM2q/YsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICfYqNix2LHYs9uMINm+2LMg2KfYsiDZvtuM2KfYr9mH4oCM2LPYp9iy24wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJ9in2YbYrNin2YUg2LnZhdmEINm+24zaqdix2KjZhtiv24wg2KjYsdin24wg2YfYsSDYsdmI24zYr9in2K8gKNio2Ycg2LnZhtmI2KfZhiDbjNqpIEludm9rZXIpINio2LHYp9uMINmH2LEg2KfYsiB3ZWJzZXJ2aWNlINm+24zaqdix2KjZhtiv24wg2LTYr9mHINin2LPYqi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzIGZyb20gdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICfYrNiz2KrYrNmI24wg2KrYutuM24zYsdin2KonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIE1hY2hpbmUnfSA9ICfZhdin2LTbjNmGINmI2LbYuduM2KonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlcid9ID0gJ9qv2LHZgdiq2YYg2K/Ys9iq2YjYsSDaqdin2LEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICfZhtmF2KfbjCDaqdmE24wg2YLYp9mE2KgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZCAoZnJvbSB0ZW1wbGF0ZSkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/fi_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZmlfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAna2Fpa2tpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBsZXNzIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgV29ya29yZGVyIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIHdvcmtvcmRlciB0ZW1wbGF0ZXMgZWRpdGVkIGJ5IHRoaXMgdXNlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBudW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBFZGl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIChmcm9tIHRlbXBsYXRlKSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2V0IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGF0IG9ubHkgY2hhbmdlcyBjb250YWluaW5nIFdvcmtvcmRlcnMgbGlua2VkIHdpdGggc2VydmljZXMsIHdoaWNoIHRoZSBjdXN0b21lciB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB3aWxsIGJlIHNob3duLiBBbnkgb3RoZXIgY2hhbmdlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHJlcG9ydCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkRhdGUiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFBJUiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2Ugbm90aWZpY2F0aW9uIHJ1bGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnTXV1dCBhc2V0dWtzZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzIGZyb20gdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgb2YgdGlja2V0cywgd2hlcmUgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgYSBsaW5rIHRvIGFkZCBhIGNoYW5nZSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/fr_CA_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZnJfQ0FfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnSGlzdG9yaXF1ZSBkZSAlcyUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgZGV0YWlscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbGQgVmFsdWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFZhbHVlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJbnZvbHZlZCBQZXJzb25zIG9mICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52b2x2ZWQgUGVyc29ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQWR2aXNvcnkgQm9hcmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgdGhpcyBDQUIgYXMgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRvIENBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlcyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIEVuZCBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBsYXRlIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IFN0YXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVyd3JpdGUgb3JpZ2luYWwgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIGNoYW5nZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluZm9ybWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnRlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3IocyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgd29ya29yZGVyIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcG9yYXJ5IGNoYW5nZSB3aWxsIGJlIGNyZWF0ZWQgd2hpY2ggY29udGFpbnMgdGhlIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB3b3Jrb3JkZXIgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIFdvcmtvcmRlci4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgQ29uZGl0aW9uISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGFrZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCBjaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgRXhwcmVzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBkb2VzIG5vdCBoYXZlIGFuIGFsbG93ZWQgY2hhbmdlIHN0YXRlIHRvIGJlIGRlbGV0ZWQhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRTdGFydFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICd0b3V0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBsZXNzIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgV29ya29yZGVyIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIHdvcmtvcmRlciB0ZW1wbGF0ZXMgZWRpdGVkIGJ5IHRoaXMgdXNlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBudW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBFZGl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIChmcm9tIHRlbXBsYXRlKSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2V0IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGF0IG9ubHkgY2hhbmdlcyBjb250YWluaW5nIFdvcmtvcmRlcnMgbGlua2VkIHdpdGggc2VydmljZXMsIHdoaWNoIHRoZSBjdXN0b21lciB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB3aWxsIGJlIHNob3duLiBBbnkgb3RoZXIgY2hhbmdlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHJlcG9ydCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkRhdGUiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFBJUiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2Ugbm90aWZpY2F0aW9uIHJ1bGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnQXV0cmVzIHBhcmFtw6l0cmFnZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICdFeMOpY3V0ZSBsXCdhY3Rpb24gY29uZmlndXLDqWUgcG91ciBjaGFxdWUgw6l2w6huZW1lbnQgKMOgIHRpdHJlIGRlIGRlbWFuZGV1cikgcG91ciBsZXMgc2VydmljZXMgV2ViIGNvbmZpZ3Vyw6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/fr_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZnJfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0NhdMOpZ29yaWUg4oaUIEltcGFjdCDihpQgUHJpb3JpdMOpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgcHJpb3JpdHkgcmVzdWx0IG9mIGNvbWJpbmF0aW5nIENhdGVnb3J5IOKGlCBJbXBhY3QuJ30gPQogICAgICAgICdHw6lyZXIgbGEgbWF0cmljZSBkZSBwcmlvcml0w6kgZGVzIGNoYW5nZW1lbnRzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICdBdHRyaWJ1dGlvbiBkZSBwcmlvcml0w6knOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICdHZXN0aW9uIGRlcyBub3RpZmljYXRpb25zIGRlcyBjaGFuZ2VtZW50cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICdBam91dGVyIHVuZSByw6hnbGUgZGUgbm90aWZpY2F0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICfDiWRpdGVyIHVuZSByw6hnbGUgZGUgbm90aWZpY2F0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Egbm90aWZpY2F0aW9uIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdVbmUgbm90aWZpY2F0aW9uIGRldnJhaXQgYXZvaXIgdW4gbm9tICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmFtZSBpcyByZXF1aXJlZC4nfSA9ICdVbiBub20gZXN0IHJlcXVpcy4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBTdGF0ZSBNYWNoaW5lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhIGNhdGFsb2cgY2xhc3MhJ30gPSAnU8OpbGVjdGlvbm5leiB1bmUgY2xhc3NlIGRlIGNhdGFsb2d1ZSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0YWxvZyBjbGFzcyBpcyByZXF1aXJlZCEnfSA9ICdVbmUgY2xhc3NlIGRlIGNhdGFsb2d1ZSBlc3QgcmVxdWlzZSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdBam91dGVyIHVuZSB0cmFuc2l0aW9uIGRcJ8OpdGF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdDbGFzc2UgZGUgY2F0YWxvZ3VlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAnTm9tIGRlIGxcJ29iamV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAnVnVlIGRcJ2Vuc2VtYmxlIGRlcyB0cmFuc2l0aW9ucyBkXCfDqXRhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnU3VwcHJpbWVyIGNldHRlIHRyYW5zaXRpb24gZFwnw6l0YXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnQWpvdXRlciB1bmUgbm91dmVsbGUgdHJhbnNpdGlvbiBkXCfDqXRhdCBwb3VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICdTw6lsZWN0aW9ubmV6IHVuIMOpdGF0LCBzXCdpbCB2b3VzIHBsYcOudCAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJ1PDqWxlY3Rpb25uZXogdW4gcHJvY2hhaW4gw6l0YXQsIHNcJ2lsIHZvdXMgcGxhw650ICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnw4lkaXRlciB1bmUgdHJhbnNpdGlvbiBkXCfDqXRhdCBwb3VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdWb3VsZXotdm91cyB2cmFpbWVudCBzdXBwcmltZXIgY2V0dGUgdHJhbnNpdGlvbiBkXCfDqXRhdCA/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJ0Fqb3V0ZXIgdW4gY2hhbmdlbWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSd9ID0gJ0dlc3Rpb24gZGVzIGNoYW5nZW1lbnRzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICdKdXN0aWZpY2F0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAnRW50csOpZSBpbnZhbGlkZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICdEYXRlIGRlbWFuZMOpZSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBDaGFuZ2UgVGVtcGxhdGUnfSA9ICdTw6lsZWN0aW9ubmVyIHVuIG1vZMOobGUgZGUgY2hhbmdlbWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB0aW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBDQUIgYXMgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnTm9tIGludmFsaWRlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJ0NvbmRpdGlvbnMgZXQgYWN0aW9ucyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnU3VwcHJpbWVyIGxhIGNvbmRpdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJ0Fqb3V0ZXIgdW5lIG5vdXZlbGxlIGNvbmRpdGlvbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbmRpdGlvbid9ID0gJ8OJZGl0ZXIgbGEgY29uZGl0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJ1VuIG5vbSB2YWxpZGUgZXN0IHJlcXVpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBuYW1lIGlzIG5lZWRlZC4nfSA9ICdVbiBub20gdmFsaWRlIGVzdCByZXF1aXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJ05vbXMgZHVwbGlxdcOpcyA6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbmFtZSBpcyBhbHJlYWR5IHVzZWQgYnkgYW5vdGhlciBjb25kaXRpb24uJ30gPSAnQ2Ugbm9tIGVzdCBkw6lqw6AgdXRpbGlzw6kgcGFyIHVuZSBhdXRyZSBjb25kaXRpb24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hdGNoaW5nJ30gPSAnQ29ycmVzcG9uZGFudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnTlwnaW1wb3J0ZSBxdWVsbGUgZXhwcmVzc2lvbiAoT1IpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJ1RvdXRlcyBsZXMgZXhwcmVzc2lvbnMgKEFORCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbnMnfSA9ICdFeHByZXNzaW9ucyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJ1PDqWxlY3Rpb25uZXVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZXJhdG9yJ30gPSAnT3DDqXJhdGV1cic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJ1N1cHByaW1lciBsXCdleHByZXNzaW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEV4cHJlc3Npb25zIGZvdW5kLid9ID0gJ0F1Y3VuZSBleHByZXNzaW9uIG5cJ2Egw6l0w6kgdHJvdXbDqS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnQWpvdXRlciB1bmUgbm91dmVsbGUgZXhwcmVzc2lvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAnU3VwcHJpbWVyIGxcJ2FjdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBBY3Rpb25zIGZvdW5kLid9ID0gJ0F1Y3VuZSBhY3Rpb24gblwnYSDDqXTDqSB0cm91dsOpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGFjdGlvbid9ID0gJ0Fqb3V0ZXIgdW5lIG5vdXZlbGxlIGFjdGlvbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjaGFuZ2U/J30gPSAnVm91bGV6LXZvdXMgdnJhaW1lbnQgc3VwcHJpbWVyIGNlIGNoYW5nZW1lbnQgPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICfDiWRpdGVyICVzICVzJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJ0hpc3RvcmlxdWUgZGUgJXMgJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgZGV0YWlscyd9ID0gJ0FmZmljaGVyIGxlcyBkw6l0YWlscyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiAlcyd9ID0gJ0hpc3RvcmlxdWUgZGVzIGluZm9ybWF0aW9ucyBkw6l0YWlsbMOpcyBkZSAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJ01vZGlmacOpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJ0FuY2llbm5lIHZhbGV1cic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICdOb3V2ZWxsZSB2YWxldXInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJ8OJZGl0ZXIgbGVzIHBlcnNvbm5lcyBpbXBsaXF1w6llcyBkZSAlcyAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnUGVyc29ubmVzIGltcGxpcXXDqWVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICdEaXJlY3RldXIgZGVzIGNoYW5nZW1lbnRzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaW52YWxpZC4nfSA9ICdVdGlsaXNhdGV1ciBpbnZhbGlkZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQWR2aXNvcnkgQm9hcmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnQXBwbGlxdWVyIGxlIG1vZMOobGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICdOb3V2ZWF1IG1vZMOobGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJ1V0aWxpc2F0ZXVyIGludmFsaWRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICdOb21icmUgZGUgY2hhbmdlbWVudHMgcGFyIHBhZ2UnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJ1RpdHJlIGR1IGNoYW5nZW1lbnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnRGlyZWN0ZXVyIGR1IGNoYW5nZW1lbnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICfDiXRhdCBkdSBjaGFuZ2VtZW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJ1RlbXBzIGRlbWFuZMOpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJ0RhdGUgZGUgZMOpYnV0IHBsYW5pZmnDqWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJ0RhdGUgZGUgZmluIHBsYW5pZmnDqSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJ0RhdGUgZGUgZMOpYnV0IGFjdHVlbGxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJ0RhdGUgZGUgZmluIGFjdHVlbGxlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAnVm91bGV6LXZvdXMgdnJhaW1lbnQgcsOpaW5pdGlhbGlzZXIgY2UgY2hhbmdlbWVudCA/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJyhwYXIgZXhlbXBsZSAxMCo1MTU1IG91IDEwNTY1OCopJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAncGFyIGV4ZW1wbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJ1ByaW9yaXTDqSBkdSBjaGFuZ2VtZW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIEltcGFjdCd9ID0gJ0ltcGFjdCBkdSBjaGFuZ2VtZW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDYXRlZ29yeSd9ID0gJ0NhdMOpZ29yaWUgZHUgY2hhbmdlbWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyhhdmFudC9hcHLDqHMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyhlbnRyZSknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAnU2F1dmVnYXJkZXIgY2UgY2hhbmdlbWVudCBlbiB0YW50IHF1ZSBtb2TDqGxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ1VuIG1vZMOobGUgZGV2cmFpdCBhdm9pciB1biBub20gISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICdMZSBub20gZHUgbW9kw6hsZSBlc3QgcmVxdWlzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICdSw6lpbml0aWFsaXNlciBsZXMgw6l0YXRzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICdJbmZvcm1hdGlvbnMgZHUgY2hhbmdlbWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICdEZXJuacOocmVzIG1vZGlmaWNhdGlvbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJ1ZvdWxlei12b3VzIHBvdXJzdWl2cmUgPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnSUQgZHUgbW9kw6hsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbnRlbnQnfSA9ICfDiWRpdGVyIGxlIGNvbnRlbnUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgdG8gJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnN0cnVjdGlvbid9ID0gJ0luc3RydWN0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJ0Zvcm1hdCBpbnZhbGlkZS4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgV29ya29yZGVyIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBXb3Jrb3JkZXIgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIENvbmRpdGlvbihzKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICfDiWRpdGVyICVzICVzLSVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJ0hpc3RvcmlxdWUgZGUgJXMgJXMtJXMnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnw4lkaXRlciBsZSByYXBwb3J0IGRlICVzICVzLSVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJ1JhcHBvcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnT3DDqXJhdGV1ciBhY3R1ZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJ05vdGlmaWNhdGlvbiBham91dMOpZSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJ05vdGlmaWNhdGlvbiAiJXMiIGluY29ubnVlICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnSWwgeSBhIGV1IHVuZSBlcnJldXIgZHVyYW50IGxhIGNyw6lhdGlvbiBkZSBsYSBub3RpZmljYXRpb24uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICdMYSB0cmFuc2l0aW9uIGRcJ8OpdGF0IGEgw6l0w6kgbWlzZSDDoCBqb3VyICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICdMYSB0cmFuc2l0aW9uIGRcJ8OpdGF0IGEgw6l0w6kgYWpvdXTDqWUgISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnVnVlIGRcJ2Vuc2VtYmxlOiBnZXN0aW9uIGRlcyBjaGFuZ2VtZW50cyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICdMZSB0aWNrZXQgcG9ydGFudCBsXCdJRCAlcyBuXCdleGlzdGUgcGFzICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJ0ltcG9zc2libGUgZFwnYWpvdXRlciBsZSBjaGFuZ2VtZW50ICEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICdJbXBvc3NpYmxlIGRlIGNyw6llciBsZSBjaGFuZ2VtZW50IGRlcHVpcyBsZSBtb2TDqGxlICEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICdBdWN1biBJRCBkZSBjaGFuZ2VtZW50IG5cJ2Egw6l0w6kgdHJvdXbDqSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnQXVjdW4gY2hhbmdlbWVudCB0cm91dsOpIHBvdXIgbFwnSUQgJXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgRXhwcmVzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBkb2VzIG5vdCBoYXZlIGFuIGFsbG93ZWQgY2hhbmdlIHN0YXRlIHRvIGJlIGRlbGV0ZWQhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRTdGFydFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICd0b3VzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnT3JkcmUgZGUgdHJhdmFpbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICdJRCBkZSBjYXTDqWdvcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICdPdWknOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJ1BhcmFtw6h0cmVzIGRlIGxhIGdlc3Rpb24gZGVzIGNoYW5nZW1lbnRzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICdDcsOpZXIgZXQgZ8OpcmVyIGxlcyBub3RpZmljYXRpb25zIGRlIGNoYW5nZW1lbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJ0Nyw6llciBldCBnw6lyZXIgbGVzIG5vdGlmaWNhdGlvbnMgZGUgY2hhbmdlbWVudC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2V0IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGF0IG9ubHkgY2hhbmdlcyBjb250YWluaW5nIFdvcmtvcmRlcnMgbGlua2VkIHdpdGggc2VydmljZXMsIHdoaWNoIHRoZSBjdXN0b21lciB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB3aWxsIGJlIHNob3duLiBBbnkgb3RoZXIgY2hhbmdlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHJlcG9ydCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkRhdGUiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnTm90aWZpY2F0aW9ucyBkZXMgY2hhbmdlbWVudHMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnR2VzdGlvbiBkZXMgY2hhbmdlbWVudHMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnTW9kaWZpY2F0aW9uIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJ0fDqXJlciBsYSBtYXRyaWNlIGRlIHByaW9yaXTDqSAoY2F0w6lnb3JpZSDDlyBpbXBhY3QpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnTm91dmVhdSAoZGVwdWlzIHVuIG1vZMOobGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnQXV0cmVzIHBhcmFtw6h0cmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQU0EnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBvYmplY3QgaW4gdGhlIHByZWZlcmVuY2UgdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIGNoYW5nZXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmZvcm1zIHRoZSBjb25maWd1cmVkIGFjdGlvbiBmb3IgZWFjaCBldmVudCAoYXMgYW4gSW52b2tlcikgZm9yIGVhY2ggY29uZmlndXJlZCBXZWJzZXJ2aWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjaGFuZ2UgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2VzXCcgQ0FCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgaW52b2x2ZWQgcGVyc29ucyBvZiBhIGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIG1vdmUgY2hhbmdlcyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgYSBDQUIgbWVtYmVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBvdmVydmlldyBvdmVyIGFsbCB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHdyaXRlIGEgcmVwb3J0IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1J1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NyZWVuIGFmdGVyIGNyZWF0aW5nIGEgd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkF1dG9JbmNyZW1lbnQiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBEZWZhdWx0IGlzIDUsIHRoaXMgbWVhbnMgdGhlIGNvdW50ZXIgc3RhcnRzIGZyb20gMTAwMDAuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3IgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBjaGVja2JveCBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGlmIHRoZSB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGFsc28gYmUgbW92ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgbW9kaWZpZWQgYW5kIHRoZSBwbGFubmVkIGVuZCB0aW1lIGhhcyBjaGFuZ2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBjaGFuZ2luZyB0aGUgd29ya29yZGVyIGFnZW50LCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBlZGl0aW5nIHRoZSByZXBvcnQgb2YgYSB3b3Jrb3JkZXIsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRha2luZyBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGNvbmRpdGlvbnMgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhZGQgYSB3b3Jrb3JkZXIgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgd29ya29yZGVyIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgd29ya29yZGVyIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZCAoZnJvbSB0ZW1wbGF0ZSkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/gl_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6Z2xfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICdBc2lnbmFjacOzbiBkYSBwcmlvcmlkYWQnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJ1JlcXXDrXJlc2UgdW4gbm9tZS4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBTdGF0ZSBNYWNoaW5lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhIGNhdGFsb2cgY2xhc3MhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0YWxvZyBjbGFzcyBpcyByZXF1aXJlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnQ2xhc2UgZG8gY2F0w6Fsb2dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAnTm9tZSBkbyBvYnhlY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIG5leHQgc3RhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJ0VuZ2FkaXIgdW4gY2FtYmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICdYdXN0aWZpY2FjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnB1dCBpbnZhbGlkLid9ID0gJ0VudHJhZGEgaW5jb3JyZWN0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICdPIG5vbWUgbm9uIMOpIGNvcnJlY3RvJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJ0NvbmRpY2nDs25zIGUgYWNjacOzbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENvbmRpdGlvbid9ID0gJ0VsaW1pbmFyIGEgY29uZGljacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJ0VuZ2FkaXIgdW5oYSBjb25kaWNpw7NuIG5vdmEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnRmFpIGZhbHRhIHVuIG5vbWUgY29ycmVjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJ05vbWUgZHVwbGljYWRvOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJ1NlbGVjdG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZXJhdG9yJ30gPSAnT3BlcmFkb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICdFbGltaW5hciBhIGV4cHJlc2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAnTm9uIHNlIGF0b3BvdSBuaW5ndW5oYSBleHByZXNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGV4cHJlc3Npb24nfSA9ICdFbmdhZGlyIHVuaGEgZXhwcmVzacOzbiBub3ZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICdFbGltaW5hciBhIGFjY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICdOb24gc2UgYXRvcG91IG5pbmd1bmhhIGFjY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAnRW5nYWRpciB1bmhhIGFjY2nDs24gbm92YSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjaGFuZ2U/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMnfSA9ICdIaXN0w7NyaWNvIGRlICVzJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcid9ID0gJ09yZGUgZGUgdHJhYmFsbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICdNb3N0cmFyIG9zIGRldGFsbGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnTW9kaWZpY2Fkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbGQgVmFsdWUnfSA9ICdWYWxvciBhbnRpZ28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFZhbHVlJ30gPSAnVmFsb3Igbm92byc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJ1hlc3Rvci9hIGRvIGNhbWJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJ0FwbGljYXIgbyBtb2RlbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnWGVzdG9yL2EgZG8gY2FtYmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcnMnfSA9ICdPcmRlIGRlIHRyYWJhbGxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIEVuZCBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS5nLid9ID0gJ3BvciBleGVtcGxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDYXRlZ29yeSd9ID0gJ0NhbWJpYXIgYSBjYXRlZ29yw61hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnKGFudGVzL2Rlc3BvaXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyhlbnRyZSknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAnR2FyZGFyIG8gY2FtYmlvIGNvbW8gbW9kZWxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ1VuIG1vZGVsbyBkZWJlcsOtYSB0ZXIgdW4gbm9tZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuJ30gPSAnUmVxdcOtcmVzZSB1biBub21lIHBhcmEgbyBtb2RlbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IFN0YXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVyd3JpdGUgb3JpZ2luYWwgdGVtcGxhdGUnfSA9ICdTdWJzdGl0dcOtciBvIG1vZGVsbyBvcml4aW5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnRWxpbWluYXIgbyBjYW1iaW8gb3JpeGluYWwnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJ2luZm9ybWFjacOzbiBkbyBjYW1iaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ0luaWNpYWRvcihhL2VzKSBkbyBjYW1iaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCd9ID0gJ8OabHRpbW8gY2FtYmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDQUIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFuZ2UgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5ldyBjaGFuZ2Ugd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgaXQgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyB3b3Jrb3JkZXIgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wb3JhcnkgY2hhbmdlIHdpbGwgYmUgY3JlYXRlZCB3aGljaCBjb250YWlucyB0aGUgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nfSA9ICdEZXNleGEgcHJvc2VndWlyPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJ0VkaXRhciBvIGNvbnRpZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgdG8gJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnN0cnVjdGlvbid9ID0gJ0luc3RydWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJ0Zvcm1hdG8gaW5jb3JyZWN0by4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgV29ya29yZGVyIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICdDb25maXJtYSBxdWUgZGVzZXhhIGVsaW1pbmFyIGVzdGEgb3JkZSBkZSB0cmFiYWxsbz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBXb3Jrb3JkZXIgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIENvbmRpdGlvbihzKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBmb2xsb3dpbmcgd29ya29yZGVycyBhY2NvcmRpbmdseSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGUgcGxhbm5lZCBlbmQgdGltZSBvZiB0aGlzIHdvcmtvcmRlciBpcyBjaGFuZ2VkLCB0aGUgcGxhbm5lZCBzdGFydCB0aW1lcyBvZiBhbGwgZm9sbG93aW5nIHdvcmtvcmRlcnMgd2lsbCBiZSBjaGFuZ2VkIGFjY29yZGluZ2x5J30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzLSVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnQnfSA9ICdJbmZvcm1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGFrZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCBjaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgRXhwcmVzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBkb2VzIG5vdCBoYXZlIGFuIGFsbG93ZWQgY2hhbmdlIHN0YXRlIHRvIGJlIGRlbGV0ZWQhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnT3JkZSBkZSB0cmFiYWxsbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnT3JkZXMgZGUgdHJhYmFsbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJ09zIG1ldXMgY2FtYmlvcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICd0b2RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJ2NhbHF1ZXJhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICdzb2xpY2l0YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICdwZW5kZW50ZSBkZSBhcHJvYmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJ3JleGVpdGFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJ2Fwcm9iYWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAnZW4gcHJvZ3Jlc28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJ2NvcnJlY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJ2ZhbGxvdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJ2NhbmNlbGFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJ2NyZWFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJ3ByZXBhcmFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ2Fwcm9iYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJ09yZGUgZGUgdHJhYmFsbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmFja291dCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJ2RlY2lzacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnw6knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnbm9uIMOpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnZXN0w6EgYmFsZWlybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICdub24gZXN0w6EgYmFsZWlybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICfDqSBtYWlvciBxdWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnw6kgbWVub3IgcXVlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJ2VzdMOhIGFudGVzIGRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnZXN0w6EgZGVzcG9pcyBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJ2NvbnTDqW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnbm9uIGNvbnTDqW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVnaW5zIHdpdGgnfSA9ICdjb21lemEgcG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJ3JlbWF0YSBwb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAnZGVmaW5pcic7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJ0VuZ2FkaXIgYSBwYXJ0aXIgZHVuIG1vZGVsbyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJ0NyZWFyIHVuIGNhbWJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egb3MgdGlwb3MgZGUgbW9kZWxvIHF1ZSBzZSBlbXByZWdhbiBjb21vIGZpbHRyb3MgbmEgdmlzdGEgZGUgbW9kZWxvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICdJbmRpY2Egc2UgaGFpIHF1ZSBlbnZpYXIgbm90aWZpY2FjacOzbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzZSB1biBheGVudGUgcG9kZSBpbnRlcmNhbWJpYXIgbyBlaXhvIFggZHVuaGEgZXN0YXTDrXN0aWNhIHNlIGEgeGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyBkb25lIGZvciBjb25maWcgaXRlbSBjbGFzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01Xb3JrT3JkZXInfSA9ICdPcmRlIGRlIHRyYWJhbGxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICdNw7NkdWxvIHBhcmEgY29tcHJvYmFyIG8gYXhlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBidWlsZGVyLid9ID0gJ03Ds2R1bG8gcGFyYSBjb21wcm9iYXIgbyBjb25zdHJ1dG9yIGRlIGNhbWJpb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnTcOzZHVsbyBwYXJhIGNvbXByb2JhciBvIHhlc3RvciBkZSBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBzaG93IGEgbGluayB0byBjcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4gVGhlIHRpY2tldCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIG5ldyBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgYWxsIHdvcmtvcmRlcnMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IChmcm9tIHRlbXBsYXRlKSd9ID0gJ05vdm8gKGEgcGFydGlyIGR1biBtb2RlbG8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnT3V0cm9zIGF4dXN0ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICdFeGVjdXRhIGEgYWNjacOzbiBjb25maWd1cmFkYSBwYXJhIGNhZGEgZXZlbnRvIChjb21hIHVuIEludm9jYWRvcikgcGFyYSBjYWRhIFNlcnZpem8gV2ViIGNvbmZpZ3VyYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJ1BhbnRhbGxhIGRlc3BvaXMgZGUgY3JlYXIgdW5oYSBvcmRlIGRlIHRyYWJhbGxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnQnVzY2FyIGNhbWJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIE1hY2hpbmUnfSA9ICdNw6FxdWluYSBkZSBlc3RhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgb2YgdGlja2V0cywgd2hlcmUgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgYSBsaW5rIHRvIGFkZCBhIGNoYW5nZSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/he_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aGVfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAn15vXnCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9Ob3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3JzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVnaW5zIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZW5kcyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSBjaGFuZ2UgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIGNoYW5nZSBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBzaG91bGQgYmUgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHN0YXRlIGNhbiBiZSBzZXQgaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHBsYW5uZWQgZWZmb3J0IHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2VhcmNoZWQgYnkgY3VzdG9tZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciB3b3Jrb3JkZXIgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciBjaGFuZ2Ugb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHdvcmtvcmRlciBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWNjb3VudGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDYXRlZ29yeUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlTWFuYWdlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgRHluYW1pY0ZpZWxkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgSW1wYWN0SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRWZmb3J0IGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFJlcXVlc3RlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJBZ2VudElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGVyaW9kIChpbiB5ZWFycyksIGluIHdoaWNoIHN0YXJ0IGFuZCBlbmQgdGltZXMgY2FuIGJlIHNlbGVjdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGF0dHJpYnV0ZXMgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIHRvb2x0aXAgb2YgdGhlIHdvcmtvcmRlciBncmFwaCBpbiB0aGUgY2hhbmdlIHpvb20uIFRvIHNob3cgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGluIHRoZSB0b29sdGlwLCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGxpa2UgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBQSVIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNpZ25hbHMgZm9yIGVhY2ggSVRTTSBjaGFuZ2Ugc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHRlbXBsYXRlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyBkb25lIGZvciBjb25maWcgaXRlbSBjbGFzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01Xb3JrT3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZnJlcXVlbmN5IGlzIFwncmVndWxhcmx5XCcsIHlvdSBjYW4gY29uZmlndXJlIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCAoZXZlcnkgWCBob3VycykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIHdvcmtvcmRlciBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBhZ2VudHMsIHVzZWQgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIGNhdGVnb3J5IOKGlCBpbXBhY3Qg4oaUIHByaW9yaXR5IG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIGlmIFdvcmtPcmRlckFkZCBvciBXb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUgc2hvdWxkIGJlIHBlcm1pdHRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIENBQiBtZW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBidWlsZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBzaG93IGEgbGluayB0byBjcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4gVGhlIHRpY2tldCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIG5ldyBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgYWxsIHdvcmtvcmRlcnMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IChmcm9tIHRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IHVzZXJzIG9mIHRoZXNlIGdyb3VwcyBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdGlja2V0IHR5cGVzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgaWYgdGhlIGZlYXR1cmUgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ9eU15LXk9eo15XXqiDXkNeX16jXldeqJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQU0EnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBvYmplY3QgaW4gdGhlIHByZWZlcmVuY2UgdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIGNoYW5nZXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmZvcm1zIHRoZSBjb25maWd1cmVkIGFjdGlvbiBmb3IgZWFjaCBldmVudCAoYXMgYW4gSW52b2tlcikgZm9yIGVhY2ggY29uZmlndXJlZCBXZWJzZXJ2aWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjaGFuZ2UgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2VzXCcgQ0FCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgaW52b2x2ZWQgcGVyc29ucyBvZiBhIGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIG1vdmUgY2hhbmdlcyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgYSBDQUIgbWVtYmVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBvdmVydmlldyBvdmVyIGFsbCB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHdyaXRlIGEgcmVwb3J0IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1J1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NyZWVuIGFmdGVyIGNyZWF0aW5nIGEgd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkF1dG9JbmNyZW1lbnQiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBEZWZhdWx0IGlzIDUsIHRoaXMgbWVhbnMgdGhlIGNvdW50ZXIgc3RhcnRzIGZyb20gMTAwMDAuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3IgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBjaGVja2JveCBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGlmIHRoZSB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGFsc28gYmUgbW92ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgbW9kaWZpZWQgYW5kIHRoZSBwbGFubmVkIGVuZCB0aW1lIGhhcyBjaGFuZ2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBjaGFuZ2luZyB0aGUgd29ya29yZGVyIGFnZW50LCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBlZGl0aW5nIHRoZSByZXBvcnQgb2YgYSB3b3Jrb3JkZXIsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRha2luZyBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGNvbmRpdGlvbnMgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhZGQgYSB3b3Jrb3JkZXIgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgd29ya29yZGVyIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgd29ya29yZGVyIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZCAoZnJvbSB0ZW1wbGF0ZSkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/hi_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aGlfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAn4KS44KSt4KWAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBsZXNzIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgV29ya29yZGVyIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIHdvcmtvcmRlciB0ZW1wbGF0ZXMgZWRpdGVkIGJ5IHRoaXMgdXNlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBudW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBFZGl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIChmcm9tIHRlbXBsYXRlKSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2V0IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGF0IG9ubHkgY2hhbmdlcyBjb250YWluaW5nIFdvcmtvcmRlcnMgbGlua2VkIHdpdGggc2VydmljZXMsIHdoaWNoIHRoZSBjdXN0b21lciB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB3aWxsIGJlIHNob3duLiBBbnkgb3RoZXIgY2hhbmdlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHJlcG9ydCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkRhdGUiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFBJUiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2Ugbm90aWZpY2F0aW9uIHJ1bGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAn4KSF4KSo4KWN4KSvIOCkteCljeCkr+CkteCkuOCljeCkpeCkvuCkkOCkgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/hr_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aHJfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdLYXRhbG/FoWthIGtsYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIG5leHQgc3RhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB0aW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBDQUIgYXMgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgY29uZGl0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGNvbmRpdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0b3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEFjdGlvbnMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBkZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBBZHZpc29yeSBCb2FyZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoZS5nLiAxMCo1MTU1IG9yIDEwNTY1OCopJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmV0d2VlbiknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDQUIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFuZ2UgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5ldyBjaGFuZ2Ugd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgaXQgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyB3b3Jrb3JkZXIgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wb3JhcnkgY2hhbmdlIHdpbGwgYmUgY3JlYXRlZCB3aGljaCBjb250YWlucyB0aGUgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbnRlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgdG8gJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgcGxhbm5lZCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBwbGFubmVkIGVuZCB0aW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdC4nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgV29ya29yZGVyIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBXb3Jrb3JkZXIgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIENvbmRpdGlvbihzKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBmb2xsb3dpbmcgd29ya29yZGVycyBhY2NvcmRpbmdseSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGUgcGxhbm5lZCBlbmQgdGltZSBvZiB0aGlzIHdvcmtvcmRlciBpcyBjaGFuZ2VkLCB0aGUgcGxhbm5lZCBzdGFydCB0aW1lcyBvZiBhbGwgZm9sbG93aW5nIHdvcmtvcmRlcnMgd2lsbCBiZSBjaGFuZ2VkIGFjY29yZGluZ2x5J30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzLSVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byB0YWtlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBXb3Jrb3JkZXIgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEluZm9ybWF0aW9uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBBZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biBub3RpZmljYXRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgbm90aWZpY2F0aW9uLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIFVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBJVFNNIENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biBjaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gd29ya29yZGVyIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRW5kVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxTdGFydFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIE92ZXJ2aWV3ICglcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVJlc2V0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoIFJlc3VsdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSAlcyBvZiBhbGwgd29ya29yZGVycyBoYXMgdG8gYmUgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB0ZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCB3b3Jrb3JkZXIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSB0aGUgd29ya29yZGVyICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBmaW5kIENoYW5nZSBmb3IgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSBab29tJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uICVzIG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpdGxlOiAlcyB8IFR5cGU6ICVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ0FCcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IFdvcmsgT3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgRGVsZXRlZCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENvbmRpdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIENvbmRpdGlvbnMgb2YgQ2hhbmdlIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQ29uZGl0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRXhwcmVzc2lvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBFeHByZXNzaW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChFeHByZXNzaW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSAlczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0lUU01Db25kaXRpb24vT2JqZWN0L0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FsbCd9ID0gJ3N2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9Ob3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3JzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVnaW5zIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZW5kcyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSBjaGFuZ2UgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIGNoYW5nZSBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBzaG91bGQgYmUgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHN0YXRlIGNhbiBiZSBzZXQgaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHBsYW5uZWQgZWZmb3J0IHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2VhcmNoZWQgYnkgY3VzdG9tZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciB3b3Jrb3JkZXIgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciBjaGFuZ2Ugb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHdvcmtvcmRlciBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWNjb3VudGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDYXRlZ29yeUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlTWFuYWdlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgRHluYW1pY0ZpZWxkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgSW1wYWN0SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRWZmb3J0IGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFJlcXVlc3RlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJBZ2VudElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGVyaW9kIChpbiB5ZWFycyksIGluIHdoaWNoIHN0YXJ0IGFuZCBlbmQgdGltZXMgY2FuIGJlIHNlbGVjdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGF0dHJpYnV0ZXMgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIHRvb2x0aXAgb2YgdGhlIHdvcmtvcmRlciBncmFwaCBpbiB0aGUgY2hhbmdlIHpvb20uIFRvIHNob3cgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGluIHRoZSB0b29sdGlwLCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGxpa2UgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBQSVIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNpZ25hbHMgZm9yIGVhY2ggSVRTTSBjaGFuZ2Ugc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHRlbXBsYXRlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyBkb25lIGZvciBjb25maWcgaXRlbSBjbGFzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01Xb3JrT3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZnJlcXVlbmN5IGlzIFwncmVndWxhcmx5XCcsIHlvdSBjYW4gY29uZmlndXJlIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCAoZXZlcnkgWCBob3VycykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIHdvcmtvcmRlciBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBhZ2VudHMsIHVzZWQgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIGNhdGVnb3J5IOKGlCBpbXBhY3Qg4oaUIHByaW9yaXR5IG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIGlmIFdvcmtPcmRlckFkZCBvciBXb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUgc2hvdWxkIGJlIHBlcm1pdHRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIENBQiBtZW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBidWlsZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBzaG93IGEgbGluayB0byBjcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4gVGhlIHRpY2tldCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIG5ldyBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgYWxsIHdvcmtvcmRlcnMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IChmcm9tIHRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IHVzZXJzIG9mIHRoZXNlIGdyb3VwcyBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdGlja2V0IHR5cGVzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgaWYgdGhlIGZlYXR1cmUgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ0RydWdlIHBvc3RhdmtlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQU0EnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBvYmplY3QgaW4gdGhlIHByZWZlcmVuY2UgdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIGNoYW5nZXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmZvcm1zIHRoZSBjb25maWd1cmVkIGFjdGlvbiBmb3IgZWFjaCBldmVudCAoYXMgYW4gSW52b2tlcikgZm9yIGVhY2ggY29uZmlndXJlZCBXZWJzZXJ2aWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjaGFuZ2UgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2VzXCcgQ0FCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgaW52b2x2ZWQgcGVyc29ucyBvZiBhIGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIG1vdmUgY2hhbmdlcyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgYSBDQUIgbWVtYmVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBvdmVydmlldyBvdmVyIGFsbCB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHdyaXRlIGEgcmVwb3J0IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1J1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NyZWVuIGFmdGVyIGNyZWF0aW5nIGEgd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkF1dG9JbmNyZW1lbnQiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBEZWZhdWx0IGlzIDUsIHRoaXMgbWVhbnMgdGhlIGNvdW50ZXIgc3RhcnRzIGZyb20gMTAwMDAuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3IgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBjaGVja2JveCBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGlmIHRoZSB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGFsc28gYmUgbW92ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgbW9kaWZpZWQgYW5kIHRoZSBwbGFubmVkIGVuZCB0aW1lIGhhcyBjaGFuZ2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBjaGFuZ2luZyB0aGUgd29ya29yZGVyIGFnZW50LCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBlZGl0aW5nIHRoZSByZXBvcnQgb2YgYSB3b3Jrb3JkZXIsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRha2luZyBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGNvbmRpdGlvbnMgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhZGQgYSB3b3Jrb3JkZXIgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgd29ya29yZGVyIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgd29ya29yZGVyIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZCAoZnJvbSB0ZW1wbGF0ZSkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/hu_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aHVfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0thdGVnw7NyaWEg4oaUIEhhdMOhcyDihpQgUHJpb3JpdMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnQSBLYXRlZ8OzcmlhIOKGlCBIYXTDoXMgw7Zzc3pldMOpdGVsIHByaW9yaXTDoXMgZXJlZG3DqW55w6luZWsga2V6ZWzDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eSBhbGxvY2F0aW9uJ30gPSAnUHJpb3JpdMOhcyBsZWZvZ2xhbMOhcyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlTWFuYWdlbWVudCBOb3RpZmljYXRpb24gTWFuYWdlbWVudCd9ID0gJ0lUU00gdsOhbHRvesOhc21lbmVkenNtZW50IMOpcnRlc8OtdMOpcyBrZXplbMOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICfDiXJ0ZXPDrXTDqXNpIHN6YWLDoWx5IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnw4lydGVzw610w6lzaSBzemFiw6FseSBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Egbm90aWZpY2F0aW9uIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdBeiDDqXJ0ZXPDrXTDqXNuZWsgcmVuZGVsa2V6bmllIGtlbGwgZWd5IG7DqXZ2ZWwhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05hbWUgaXMgcmVxdWlyZWQuJ30gPSAnQSBuw6l2IGvDtnRlbGV6xZEuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTVN0YXRlTWFjaGluZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gU3RhdGUgTWFjaGluZSd9ID0gJ0FkbWluaXN6dHLDoXRvcmkgw6FsbGFwb3Rnw6lwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhIGNhdGFsb2cgY2xhc3MhJ30gPSAnVsOhbGFzc3pvbiBlZ3kga2F0YWzDs2d1c29zenTDoWx5dCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJ0Ega2F0YWzDs2d1c29zenTDoWx5IGvDtnRlbGV6xZEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdFZ3kgw6FsbGFwb3TDoXRtZW5ldCBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ0thdGFsw7NndXNvc3p0w6FseSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPYmplY3QgTmFtZSd9ID0gJ09iamVrdHVtbsOpdic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIHN0YXRlIHRyYW5zaXRpb25zIGZvcid9ID0gJ8OBbGxhcG90w6F0bWVuZXRlayDDoXR0ZWtpbnTDqXNlIGVubsOpbDonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ0F6IMOhbGxhcG90w6F0bWVuZXQgdMO2cmzDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ0VneSDDumogw6FsbGFwb3TDoXRtZW5ldCBob3p6w6FhZMOhc2EgZWhoZXo6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICdWw6FsYXNzem9uIGVneSDDoWxsYXBvdG90ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICdWw6FsYXNzem9uIGVneSBrw7Z2ZXRrZXrFkSDDoWxsYXBvdG90ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICdFZ3kgw6FsbGFwb3TDoXRtZW5ldCBzemVya2VzenTDqXNlIGVubsOpbDonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ1ZhbMOzYmFuIHTDtnLDtmxuaSBzemVyZXRuw6kgYXogw6FsbGFwb3TDoXRtZW5ldGV0JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJ1bDoWx0b3rDoXMgaG96esOhYWTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnSVRTTSB2w6FsdG96w6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICdJbmRva2zDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICfDiXJ2w6lueXRlbGVuIGJlbWVuZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnS8OpcnQgZMOhdHVtJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJ1bDoWx0b3rDoXNzYWJsb24ga2l2w6FsYXN6dMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAnSWTFkXTDrXB1cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICfDiXJ2w6lueXRlbGVuIGlkxZF0w61wdXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB0aW1lJ30gPSAnw5pqIGlkxZEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ1bDoWx0b3rDoXMgQ0FCIG1lbnTDqXNlIHNhYmxvbmvDqW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIHRvIGludm9sdmVkIHBlcnNvbnMgc2NyZWVuJ30gPSAndWdyw6FzIGEgcsOpc3p0dmV2xZEgc3plbcOpbHllayBrw6lwZXJuecWRasOpaGV6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgTmFtZSd9ID0gJ8OJcnbDqW55dGVsZW4gbsOpdic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbnMgYW5kIEFjdGlvbnMnfSA9ICdGZWx0w6l0ZWxlayDDqXMgbcWxdmVsZXRlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnRmVsdMOpdGVsIHTDtnJsw6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJ8OaaiBmZWx0w6l0ZWwgaG96esOhYWTDoXNhJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAnRmVsdMOpdGVsIHN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnRWd5IMOpcnbDqW55ZXMgbsOpdiBzesO8a3PDqWdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBuYW1lIGlzIG5lZWRlZC4nfSA9ICdFZ3kgw6lydsOpbnllcyBuw6l2IHN6w7xrc8OpZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICdOw6l2IGtldHTFkXrDqXNlOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJ0V6dCBhIG5ldmV0IG3DoXIgZWd5IG3DoXNpayBmZWx0w6l0ZWwgaGFzem7DoWxqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICdJbGxlc3prZWTDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJ0LDoXJtZWx5IGtpZmVqZXrDqXMgKFZBR1kpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJ01pbmRlbiBraWZlamV6w6lzICjDiVMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb25zJ30gPSAnS2lmZWplesOpc2VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdG9yJ30gPSAnS2l2w6FsYXN6dMOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZXJhdG9yJ30gPSAnTcWxdmVsZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICdLaWZlamV6w6lzIHTDtnJsw6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICdOZW0gdGFsw6FsaGF0w7NrIGtpZmVqZXrDqXNlay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnw5pqIGtpZmVqZXrDqXMgaG96esOhYWTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICdNxbF2ZWxldCB0w7ZybMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICdOZW0gdGFsw6FsaGF0w7NrIG3FsXZlbGV0ZWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAnw5pqIG3FsXZlbGV0IGhvenrDoWFkw6FzYSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjaGFuZ2U/J30gPSAnVmFsw7NiYW4gdMO2csO2bG5pIHN6ZXJldG7DqSBlenQgYSB2w6FsdG96w6FzdD8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnJXMlcyBzemVya2VzenTDqXNlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJyVzJXMgZWzFkXptw6lueWVpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ0VsxZF6bcOpbnl0YXJ0YWxvbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnTMOpdHJlaG96w6FzIGlkZWplJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgZGV0YWlscyd9ID0gJ1LDqXN6bGV0ZWsgbWVnamVsZW7DrXTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnTXVua2FtZWdyZW5kZWzDqXMgbWVnamVsZW7DrXTDqXNlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJXMgcsOpc3psZXRlcyBlbMWRem3DqW55aW5mb3Jtw6FjacOzaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJ03Ds2Rvc8OtdHZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJ1LDqWdpIMOpcnTDqWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFZhbHVlJ30gPSAnw5pqIMOpcnTDqWsnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyVzJXMgcsOpc3p0dmV2xZEgc3plbcOpbHllaW5layBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICdSw6lzenR2ZXbFkSBzemVtw6lseWVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICdWw6FsdG96w6FzbWVuZWR6c2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaW52YWxpZC4nfSA9ICfDiXJ2w6lueXRlbGVuIGZlbGhhc3puw6Fsw7MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICdWw6FsdG96w6FzLcO2c3N6ZcOhbGzDrXTDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQWR2aXNvcnkgQm9hcmQnfSA9ICdWw6FsdG96w6FzbWVuZWR6c21lbnQtdGFuw6Fjcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgVGVtcGxhdGUnfSA9ICdDQUIgc2FibG9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnU2FibG9uIGFsa2FsbWF6w6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJ8OaaiBzYWJsb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ0EgQ0FCIG1lbnTDqXNlIHNhYmxvbmvDqW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICdIb3p6w6FhZMOhcyBDQUItaG96JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJ8OJcnbDqW55dGVsZW4gZmVsaGFzem7DoWzDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJ0plbGVubGVnaSBDQUInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdLw7ZybnllemV0IGJlw6FsbMOtdMOhc29rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICdPbGRhbGFua8OpbnRpIHbDoWx0b3rDoXNvayc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcy1jw61tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJ1bDoWx0b3rDoXNjw61tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJ011bmthbWVncmVuZGVsw6lzLcO8Z3lpbnTDqXrFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJ1bDoWx0b3rDoXMtw7Zzc3plw6FsbMOtdMOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnVsOhbHRvesOhc21lbmVkenNlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAnTXVua2FtZWdyZW5kZWzDqXNlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICdWw6FsdG96w6Fzw6FsbGFwb3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnTXVua2FtZWdyZW5kZWzDqXMtw6FsbGFwb3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFR5cGUnfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcy10w61wdXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIFRpbWUnfSA9ICdLw6lydCBpZMWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJ1RlcnZlemV0dCBrZXpkw6lzaSBpZMWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICdUZXJ2ZXpldHQgYmVmZWplesOpc2kgaWTFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJ1TDqW55bGVnZXMga2V6ZMOpc2kgaWTFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICdUw6lueWxlZ2VzIGJlZmVqZXrDqXNpIGlkxZEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICdWYWzDs2JhbiB2aXNzemEgc3plcmV0bsOpIMOhbGzDrXRhbmkgZXp0IGEgdsOhbHRvesOhc3Q/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJyhww6lsZMOhdWwgMTAqNTE1NSB2YWd5IDEwNTY1OCopJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJ0NBQi3DvGd5aW50w6l6xZEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS5nLid9ID0gJ3DDqWxkw6F1bCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXInfSA9ICdDQUItw7xneWbDqWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICdJVFNNIG11bmthbWVncmVuZGVsw6lzIHV0YXPDrXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAnSVRTTSBtdW5rYW1lZ3JlbmRlbMOpcyBqZWxlbnTDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUHJpb3JpdHknfSA9ICdJVFNNIHbDoWx0b3rDoXMgcHJpb3JpdMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICdJVFNNIHbDoWx0b3rDoXMgaGF0w6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDYXRlZ29yeSd9ID0gJ1bDoWx0b3rDoXNrYXRlZ8OzcmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnKGVsxZF0dC91dMOhbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnKGvDtnrDtnR0KSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICdWw6FsdG96w6FzIG1lbnTDqXNlIHNhYmxvbmvDqW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ0Egc2FibG9ubmFrIHJlbmRlbGtlem5pZSBrZWxsIGVneSBuw6l2dmVsISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICdBIHNhYmxvbm7DqXYga8O2dGVsZXrFkS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAnw4FsbGFwb3RvayB2aXNzemHDoWxsw610w6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVyd3JpdGUgb3JpZ2luYWwgdGVtcGxhdGUnfSA9ICdFcmVkZXRpIHNhYmxvbiBmZWzDvGzDrXLDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICdFcmVkZXRpIHbDoWx0b3rDoXMgdMO2cmzDqXNlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJ0lkxZFyw6lzIMOhdGhlbHllesOpc2UnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluZm9ybWF0aW9uJ30gPSAnVsOhbHRvesOhcyBpbmZvcm3DoWNpw7NrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRWZmb3J0J30gPSAnVGVydmV6ZXR0IHLDoWZvcmTDrXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICdFbHN6w6Ftb2x0IGlkxZEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ1bDoWx0b3rDoXNrZXpkZW3DqW55ZXrFkWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCJ30gPSAnQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCd9ID0gJ1V0b2xzw7MgbcOzZG9zw610w6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ1V0b2xqw6FyYSBtw7Nkb3PDrXRvdHRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnQSBrw7Z2ZXRrZXrFkSBsZcOtcsOhc2kgYmxva2tva2JhbiBsw6l2xZEgaGl2YXRrb3rDoXNvayBtZWdueWl0w6Fzw6Fob3ogbGVoZXRzw6lnZXMsIGhvZ3kgbGUga2VsbCBueW9tbmlhIGEgQ3RybCB2YWd5IENtZCB2YWd5IFNoaWZ0IGJpbGxlbnR5xbF0LCBtaWvDtnpiZW4gYSBoaXZhdGtvesOhc3JhIGthdHRpbnQgKGEgYsO2bmfDqXN6xZFqw6l0xZFsIMOpcyBvcGVyw6FjacOzcyByZW5kc3plcsOpdMWRbCBmw7xnZ8WRZW4pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnTWVsbMOpa2xldCBsZXTDtmx0w6lzZSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnQ0FCIHNhYmxvbiBzemVya2VzenTDqXNlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnRXogbMOpdHJlIGZvZyBob3puaSBlZ3kgw7pqIHbDoWx0b3rDoXN0IGViYsWRbCBhIHNhYmxvbmLDs2wsIMOtZ3kgc3plcmtlc3p0aGV0aSDDqXMgZWxtZW50aGV0aSBhenQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnQXogw7pqIHbDoWx0b3rDoXMgYXV0b21hdGlrdXNhbiB0w7Zyw7ZsdmUgbGVzeiwgbWl1dMOhbiBtZW50w6lzcmUga2Vyw7xsdCBzYWJsb25rw6ludC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyB3b3Jrb3JkZXIgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICdFeiBsw6l0cmUgZm9nIGhvem5pIGVneSDDumogbXVua2FtZWdyZW5kZWzDqXN0IGViYsWRbCBhIHNhYmxvbmLDs2wsIMOtZ3kgc3plcmtlc3p0aGV0aSDDqXMgZWxtZW50aGV0aSBhenQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcG9yYXJ5IGNoYW5nZSB3aWxsIGJlIGNyZWF0ZWQgd2hpY2ggY29udGFpbnMgdGhlIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJ0VneSBpZGVpZ2xlbmVzIHbDoWx0b3rDoXMgbGVzeiBsw6l0cmVob3p2YSwgYW1lbHkgdGFydGFsbWF6emEgYSBtdW5rYW1lZ3JlbmRlbMOpc3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICdBeiBpZGVpZ2xlbmVzIHbDoWx0b3rDoXMgw6lzIGF6IMO6aiBtdW5rYW1lZ3JlbmRlbMOpcyBhdXRvbWF0aWt1c2FuIHTDtnLDtmx2ZSBsZXN6LCBtaXV0w6FuIGEgbXVua2FtZWdyZW5kZWzDqXMgbWVudMOpc3JlIGtlcsO8bHQgc2FibG9ua8OpbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAnU3plcmV0bsOpIGZvbHl0YXRuaT8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJ1NhYmxvbi1hem9ub3PDrXTDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbnRlbnQnfSA9ICdUYXJ0YWxvbSBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJ0zDqXRyZWhvenRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBieSd9ID0gJ03Ds2Rvc8OtdG90dGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICdWw6FsdG96w6FzIGlkZWplJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnTXVua2FtZWdyZW5kZWzDqXMgaG96esOhYWTDoXNhIGVoaGV6OiAlcyVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnVXRhc8OtdMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJ8OJcnbDqW55dGVsZW4gbXVua2FtZWdyZW5kZWzDqXMtdMOtcHVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgcGxhbm5lZCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBwbGFubmVkIGVuZCB0aW1lISd9ID0gJ0EgdGVydmV6ZXR0IGtlemTDqXNpIGlkxZFuZWsgYSB0ZXJ2ZXpldHQgYmVmZWplesOpc2kgaWTFkSBlbMWRdHQga2VsbCBsZW5uaWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJ8OJcnbDqW55dGVsZW4gZm9ybcOhdHVtLic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcy1zYWJsb24ga2l2w6FsYXN6dMOhc2EnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICclcyVzIG11bmthbWVncmVuZGVsw6lzLcO8Z3lpbnTDqXrFkWrDqW5layBzemVya2VzenTDqXNlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICdWYWzDs2JhbiB0w7Zyw7Zsbmkgc3plcmV0bsOpIGV6dCBhIG11bmthbWVncmVuZGVsw6lzdD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICdOZW0gdMO2csO2bGhldGkgZXp0IGEgbXVua2FtZWdyZW5kZWzDqXN0LiBMZWdhbMOhYmIgZWd5IGZlbHTDqXRlbGJlbiBoYXN6bsOhbGrDoWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICdFenQgYSBtdW5rYW1lZ3JlbmRlbMOpc3QgYSBrw7Z2ZXRrZXrFkSBmZWx0w6l0ZWxla2JlbiBoYXN6bsOhbGrDoWsnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnJXMlcy0lcyBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICdBIGvDtnZldMWRIG11bmthbWVncmVuZGVsw6lzZWsgw6F0aGVseWV6w6lzZSBlc3plcmludCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGUgcGxhbm5lZCBlbmQgdGltZSBvZiB0aGlzIHdvcmtvcmRlciBpcyBjaGFuZ2VkLCB0aGUgcGxhbm5lZCBzdGFydCB0aW1lcyBvZiBhbGwgZm9sbG93aW5nIHdvcmtvcmRlcnMgd2lsbCBiZSBjaGFuZ2VkIGFjY29yZGluZ2x5J30gPQogICAgICAgICdIYSBlbm5layBhIG11bmthbWVncmVuZGVsw6lzbmVrIG1lZ3bDoWx0b3ppayBhIHRlcnZlemV0dCBiZWZlamV6w6lzaSBpZGVqZSwgYWtrb3IgYXogw7Zzc3plcyBhenQga8O2dmV0xZEgbXVua2FtZWdyZW5kZWzDqXMgdGVydmV6ZXR0IGtlemTDqXNpIGlkZWplIGlzIG1lZyBmb2cgdsOhbHRvem5pIGVzemVyaW50JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJyVzJXMtJXMgZWzFkXptw6lueWVpJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJyVzJXMtJXMgamVsZW50w6lzw6luZWsgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnQnfSA9ICdKZWxlbnTDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnQSB0w6lueWxlZ2VzIGtlemTDqXNpIGlkxZFuZWsgYSB0w6lueWxlZ2VzIGJlZmVqZXrDqXNpIGlkxZEgZWzFkXR0IGtlbGwgbGVubmllISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICdBIHTDqW55bGVnZXMga2V6ZMOpc2kgaWTFkW5layBiZcOhbGzDrXR2YSBrZWxsIGxlbm5pZSwgYW1pa29yIGEgdMOpbnlsZWdlcyBiZWZlamV6w6lzaSBpZMWRIGJlIHZhbiDDoWxsw610dmEhJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICdKZWxlbmxlZ2kgw7xneWludMOpesWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byB0YWtlIHRoaXMgd29ya29yZGVyPyd9ID0gJ1ZhbMOzYmFuIGZlbCBzemVyZXRuw6kgdmVubmllIGV6dCBhIG11bmthbWVncmVuZGVsw6lzdD8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAnTXVua2FtZWdyZW5kZWzDqXMgbWVudMOpc2Ugc2FibG9ua8OpbnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknfSA9ICdFcmVkZXRpIG11bmthbWVncmVuZGVsw6lzICjDqXMgYSBrw7ZybnllesWRIHbDoWx0b3rDoXMpIHTDtnJsw6lzZSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcy1pbmZvcm3DoWNpw7NrJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBBZGRlZCEnfSA9ICfDiXJ0ZXPDrXTDqXMgaG96esOhYWR2YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biBub3RpZmljYXRpb24gJXMhJ30gPSAnSXNtZXJldGxlbiDDqXJ0ZXPDrXTDqXM6ICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICdIaWJhIHTDtnJ0w6ludCBheiDDqXJ0ZXPDrXTDqXMgbMOpdHJlaG96w6FzYWtvci4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJ8OBbGxhcG90w6F0bWVuZXQgZnJpc3PDrXR2ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICfDgWxsYXBvdMOhdG1lbmV0IGhvenrDoWFkdmEhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBJVFNNIENoYW5nZXMnfSA9ICfDgXR0ZWtpbnTFkTogSVRTTSB2w6FsdG96w6Fzb2snOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAnQSh6KSAlcyBqZWd5YXpvbm9zw610w7N2YWwgcmVuZGVsa2V6xZEgamVneSBuZW0gbMOpdGV6aWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnfSA9CiAgICAgICAgJ0hpw6FueXrDsyDigJ5JVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXPigJ0gcmVuZHN6ZXJiZcOhbGzDrXTDoXNpIGxlaGV0xZFzw6lnISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICdOZW0gc2lrZXLDvGx0IGEgdsOhbHRvesOhcyBob3p6w6FhZMOhc2EhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJ30gPSAnTmVtIHNpa2Vyw7xsdCBhIHbDoWx0b3rDoXMgbMOpdHJlaG96w6FzYSBzYWJsb25iw7NsISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ05pbmNzIHbDoWx0b3rDoXNhem9ub3PDrXTDsyBtZWdhZHZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJ05lbSB0YWzDoWxoYXTDsyB2w6FsdG96w6FzIGEoeikgJXMgdsOhbHRvesOhc2F6b25vc8OtdMOzaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJ0Eoeikg4oCeJXPigJ0gdsOhbHRvesOhcyBDQUItasOhdCBuZW0gc2lrZXLDvGx0IHNvcm9zw610YW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICdOZW0gc2lrZXLDvGx0IGhvenrDoWFkbmkgYSBzYWJsb250Lic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnQSh6KSDigJ4lc+KAnSB2w6FsdG96w6FzIG5lbSB0YWzDoWxoYXTDsyBheiBhZGF0YsOhemlzYmFuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJ05lbSBzaWtlcsO8bHQgdMO2csO2bG5pIGEoeikgJXMgZmVsdMOpdGVsYXpvbm9zw610w7N0ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnTmluY3MgJXMgbWVnYWR2YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJ05lbSBzaWtlcsO8bHQgbMOpdHJlaG96bmkgw7pqIGZlbHTDqXRlbHQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnTmVtIHNpa2Vyw7xsdCBmcmlzc8OtdGVuaSBhKHopICVzIGZlbHTDqXRlbGF6b25vc8OtdMOzdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnTmVtIHNpa2Vyw7xsdCBmcmlzc8OtdGVuaSBhKHopICVzIGtpZmVqZXrDqXMtYXpvbm9zw610w7N0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJ05lbSBzaWtlcsO8bHQgaG96esOhYWRuaSDDumoga2lmZWplesOpc3QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnTmVtIHNpa2Vyw7xsdCBmcmlzc8OtdGVuaSBhKHopICVzIG3FsXZlbGV0YXpvbm9zw610w7N0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnTmVtIHNpa2Vyw7xsdCBob3p6w6FhZG5pIMO6aiBtxbF2ZWxldGV0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICdOZW0gc2lrZXLDvGx0IHTDtnLDtmxuaSBhKHopICVzIGtpZmVqZXrDqXMtYXpvbm9zw610w7N0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJ05lbSBzaWtlcsO8bHQgdMO2csO2bG5pIGEoeikgJXMgbcWxdmVsZXRhem9ub3PDrXTDs3QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICdIaWJhOiBpc21lcmV0bGVuIOKAniVz4oCdIG1lesWRdMOtcHVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJ0EoeikgJXMgZmVsdMOpdGVsYXpvbm9zw610w7MgbmVtIHRhcnRvemlrIGEgbWVnYWRvdHQgJXMgdsOhbHRvesOhc2F6b25vc8OtdMOzaG96ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBkb2VzIG5vdCBoYXZlIGFuIGFsbG93ZWQgY2hhbmdlIHN0YXRlIHRvIGJlIGRlbGV0ZWQhJ30gPQogICAgICAgICdBKHopIOKAniVz4oCdIHbDoWx0b3rDoXNuYWsgbmluY3Mgb2x5YW4gbWVnZW5nZWRldHQgdsOhbHRvesOhc8OhbGxhcG90YSwgYW1lbHlldCB0w7Zyw7ZsbmkgbGVoZXRuZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnTmVtIHNpa2Vyw7xsdCBhKHopICVzIHbDoWx0b3rDoXNhem9ub3PDrXTDsyB0w7ZybMOpc2UhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICdOZW0gc2lrZXLDvGx0IGEgdsOhbHRvesOhcyBmcmlzc8OtdMOpc2UhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICdOZW0gbGVoZXQgbWVnamVsZW7DrXRlbmkgYXogZWzFkXptw6lueWVrZXQsIG1pdmVsIG5pbmNzIHbDoWx0b3rDoXNhem9ub3PDrXTDsyBtZWdhZHZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJ0Eoeikg4oCeJXPigJ0gdsOhbHRvesOhcyBuZW0gdGFsw6FsaGF0w7MgYXogYWRhdGLDoXppc2JhbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnSXNtZXJldGxlbiB0w61wdXMgZm9yZHVsdCBlbMWROiAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICdWw6FsdG96w6FzdMO2cnTDqW5ldCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnTmVtIGxlaGV0IG1lZ2plbGVuw610ZW5pIGF6IGVsxZF6bcOpbnluYWd5w610w6FzdCwgbmluY3MgZWzFkXptw6lueWJlamVneXrDqXMtYXpvbm9zw610w7MgbWVnYWR2YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ0Eoeikg4oCeJXPigJ0gZWzFkXptw6lueWJlamVneXrDqXMgbmVtIHRhbMOhbGhhdMOzIGF6IGFkYXRiw6F6aXNiYW4hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJ05lbSBzaWtlcsO8bHQgYSB2w6FsdG96w6FzIENBQiBmcmlzc8OtdMOpc2UgYSh6KSAlcyB2w6FsdG96w6FzbsOhbCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnTmVtIHNpa2Vyw7xsdCBhKHopICVzIHbDoWx0b3rDoXMgZnJpc3PDrXTDqXNlISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICfDgXR0ZWtpbnTDqXM6IHbDoWx0b3rDoXNtZW5lZHpzZXInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnw4F0dGVraW50w6lzOiBzYWrDoXQgQ0FCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnw4F0dGVraW50w6lzOiBzYWrDoXQgdsOhbHRvesOhc29rJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAnw4F0dGVraW50w6lzOiBzYWrDoXQgbXVua2FtZWdyZW5kZWzDqXNlayc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnw4F0dGVraW50w6lzOiBQSVInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJ8OBdHRla2ludMOpczogUFNBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ0Eoeikg4oCeJXPigJ0gbXVua2FtZWdyZW5kZWzDqXMgbmVtIHRhbMOhbGhhdMOzIGF6IGFkYXRiw6F6aXNiYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJ05lbSBsZWhldCBsw6l0cmVob3puaSBhIGtpbWVuZXRldCwgbWl2ZWwgYSBtdW5rYW1lZ3JlbmRlbMOpcyBuaW5jcyBjc2F0b2x2YSBlZ3kgdsOhbHRvesOhc2hveiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ05lbSBsZWhldCBsw6l0cmVob3puaSBhIGtpbWVuZXRldCwgbWl2ZWwgbmluY3MgdsOhbHRvesOhc2F6b25vc8OtdMOzIG1lZ2FkdmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnaXNtZXJldGxlbiB2w6FsdG96w6FzY8OtbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJ0lUU00gbXVua2FtZWdyZW5kZWzDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyTnVtYmVyJ30gPSAnTXVua2FtZWdyZW5kZWzDqXMtc3rDoW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcy1jw61tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gd29ya29yZGVyIHRpdGxlJ30gPSAnaXNtZXJldGxlbiBtdW5rYW1lZ3JlbmRlbMOpcy1jw61tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlJ30gPSAnVsOhbHRvesOhc8OhbGxhcG90JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICdUZXJ2ZXpldHQgcsOhZm9yZMOtdMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnQ0FCIMO8Z3lpbnTDqXrFkWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJ0NBQiDDvGd5ZmVsZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJ0vDqXJ0IGlkxZEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZFN0YXJ0VGltZSd9ID0gJ1RlcnZlemV0dCBrZXpkw6lzaSBpZMWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnVGVydmV6ZXR0IGJlZmVqZXrDqXNpIGlkxZEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAnVMOpbnlsZWdlcyBrZXpkw6lzaSBpZMWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICdUw6lueWxlZ2VzIGJlZmVqZXrDqXNpIGlkxZEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJ1bDoWx0b3rDoXMgaWRlamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnVsOhbHRvesOhc3N6w6FtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnTXVua2FtZWdyZW5kZWzDqXMtw6FsbGFwb3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJ011bmthbWVncmVuZGVsw6lzLXTDrXB1cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudCd9ID0gJ011bmthbWVncmVuZGVsw6lzLcO8Z3lpbnTDqXrFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnSVRTTSBtdW5rYW1lZ3JlbmRlbMOpcyDDoXR0ZWtpbnTDqXMgKCVzKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJ05lbSBzaWtlcsO8bHQgYSh6KSAlcyBtdW5rYW1lZ3JlbmRlbMOpcyB2aXNzemHDoWxsw610w6FzYSBhKHopICVzIHbDoWx0b3rDoXNuw6FsISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJ05lbSBzaWtlcsO8bHQgYSh6KSAlcyB2w6FsdG96w6FzIHZpc3N6YcOhbGzDrXTDoXNhISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICfDgXR0ZWtpbnTDqXM6IHbDoWx0b3p0YXTDoXNpIMO8dGVtdGVydic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnVsOhbHRvesOhc2tlcmVzw6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAnVsOhbHRvesOhc2PDrW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ011bmthbWVncmVuZGVsw6lzZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICdWw6FsdG96w6Fza2VyZXPDqXNpIGVyZWRtw6lueWVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICdWw6FsdG96w6Fzc3rDoW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJ011bmthbWVncmVuZGVsw6lzLWPDrW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAnVsOhbHRvesOhc2xlw61yw6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnVsOhbHRvesOhc2luZG9rbMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcy11dGFzw610w6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcy1qZWxlbnTDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnVsOhbHRvesOhc3ByaW9yaXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJ1bDoWx0b3rDoXNoYXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJ0zDqXRyZWhvenRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJ011bmthbWVncmVuZGVsw6lzLcOhbGxhcG90JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnTXVua2FtZWdyZW5kZWzDqXMtdMOtcHVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJ011bmthbWVncmVuZGVsw6lzLcO8Z3lpbnTDqXrFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICdlbMWRdHQnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnQSh6KSDigJ4lc+KAnSB2w6FsdG96w6FzdCBuZW0gc2lrZXLDvGx0IHNvcm9zw610YW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJ05lbSBzaWtlcsO8bHQgZnJpc3PDrXRlbmkgYSh6KSDigJ4lc+KAnSBzYWJsb250Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJ05lbSBzaWtlcsO8bHQgdMO2csO2bG5pIGEoeikg4oCeJXPigJ0gdsOhbHRvesOhc3QuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJ0EgdsOhbHRvesOhc3QgbmVtIGxlaGV0IMOhdGhlbHllem5pLCBtaXZlbCBuaW5jc2VuZWsgbXVua2FtZWdyZW5kZWzDqXNlaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJ0VsxZFzesO2ciBhZGpvbiBob3p6w6EgZWd5IG11bmthbWVncmVuZGVsw6lzdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICdOZW0gbGVoZXQgw6F0aGVseWV6bmkgZWd5IG9seWFuIHbDoWx0b3rDoXN0LCBhbWVseSBtw6FyIGVsa2V6ZMWRZMO2dHQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICdIZWx5ZXR0ZSBoZWx5ZXp6ZSDDoXQgYXogZWd5ZXMgbXVua2FtZWdyZW5kZWzDqXNla2V0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICdBIGplbGVubGVnaSAlcyBtZWdoYXTDoXJvesOhc2EgbmVtIHNpa2Vyw7xsdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJ0F6IMO2c3N6ZXMgbXVua2FtZWdyZW5kZWzDqXMgJXMgdMOtcHVzw6F0IG1lZyBrZWxsIGhhdMOhcm96bmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICdOZW0gc2lrZXLDvGx0IGF6IGlkxZFyw6lzIMOhdGhlbHllesOpc2UgYSh6KSAjJXMgbXVua2FtZWdyZW5kZWzDqXNuw6lsISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnJXMgam9nb3N1bHRzw6FncmEgdmFuIHN6w7xrc8OpZ2UhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAnTmluY3Mgc2FibG9uYXpvbm9zw610w7MgbWVnYWR2YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnQSh6KSDigJ4lc+KAnSBzYWJsb24gbmVtIHRhbMOhbGhhdMOzIGF6IGFkYXRiw6F6aXNiYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJ05lbSBzaWtlcsO8bHQgYSh6KSAlcyBzYWJsb24gdMO2cmzDqXNlISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJ05lbSBzaWtlcsO8bHQgYSh6KSAlcyBzYWJsb24gZnJpc3PDrXTDqXNlISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnTmVtIHNpa2Vyw7xsdCBhKHopIOKAniVz4oCdIHNhYmxvbiBmcmlzc8OtdMOpc2UhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICdOZW0gc2lrZXLDvGx0IGEgdsOhbHRvesOhcyBsw6l0cmVob3rDoXNhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJ05lbSBzaWtlcsO8bHQgYSBtdW5rYW1lZ3JlbmRlbMOpcyBsw6l0cmVob3rDoXNhIHNhYmxvbmLDs2whJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICfDgXR0ZWtpbnTDqXM6IHNhYmxvbic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyVzIGpvZ29zdWx0c8OhZ29rcmEgdmFuIHN6w7xrc8OpZ2UgYSB2w6FsdG96w6Fzb24hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJ05lbSBzaWtlcsO8bHQgYSBtdW5rYW1lZ3JlbmRlbMOpcyBob3p6w6FhZMOhc2EhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnTmluY3MgbXVua2FtZWdyZW5kZWzDqXMtYXpvbm9zw610w7MgbWVnYWR2YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJ05lbSBzaWtlcsO8bHQgYSh6KSDigJ4lc+KAnSBtdW5rYW1lZ3JlbmRlbMOpcyDDvGd5aW50w6l6xZFqw6luZWsgYmXDoWxsw610w6FzYSDDvHJlc3JlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICdOZW0gc2lrZXLDvGx0IGEoeikg4oCeJXPigJ0gbXVua2FtZWdyZW5kZWzDqXMgZnJpc3PDrXTDqXNlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICdOZW0gdGFsw6FsaGF0w7MgdsOhbHRvesOhcyBhKHopICVzIG11bmthbWVncmVuZGVsw6lzaGV6ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnTmVtIHNpa2Vyw7xsdCBhKHopICVzIG11bmthbWVncmVuZGVsw6lzIHTDtnJsw6lzZSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJ05lbSBzaWtlcsO8bHQgYSh6KSAlcyBtdW5rYW1lZ3JlbmRlbMOpcyBmcmlzc8OtdMOpc2UhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICdOZW0gbGVoZXQgbWVnamVsZW7DrXRlbmkgYXogZWzFkXptw6lueWVrZXQsIG1pdmVsIG5pbmNzIG11bmthbWVncmVuZGVsw6lzLWF6b25vc8OtdMOzIG1lZ2FkdmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnQSh6KSDigJ4lc+KAnSBtdW5rYW1lZ3JlbmRlbMOpcyBuZW0gdGFsw6FsaGF0w7MgYXogYWRhdGLDoXppc2JhbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcy1lbMWRem3DqW55ZWsnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICdBKHopIOKAniVz4oCdIGVsxZF6bcOpbnliZWplZ3l6w6lzIG5lbSB0YWzDoWxoYXTDsyBheiBhZGF0YsOhemlzYmFuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSBab29tJ30gPSAnTXVua2FtZWdyZW5kZWzDqXMgZWzFkXptw6lueWVpbmVrIG5hZ3nDrXTDoXNhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJ05lbSBzaWtlcsO8bHQgYSh6KSAlcyBtdW5rYW1lZ3JlbmRlbMOpcyBmZWx2w6l0ZWxlISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICdBKHopIOKAniVz4oCdIG11bmthbWVncmVuZGVsw6lzdCBuZW0gc2lrZXLDvGx0IHNvcm9zw610YW5pLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnQSh6KSAlcyBrb25maWd1csOhY2nDs3MgYmXDoWxsw610w6FzIHN6w7xrc8OpZ2VzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uICVzIG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPSAnQSh6KSAlcyBrb25maWd1csOhY2nDs3MgYmXDoWxsw610w6FzbmFrIGtpdm9uYXQtaGl2YXRrb3rDoXNuYWsga2VsbCBsZW5uaWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnTmVtIHRhbMOhbGhhdMOzIGtvbmZpZ3Vyw6FjacOzcyBiZcOhbGzDrXTDoXMgYSh6KSDigJ4lc+KAnSBuw6l6ZXRoZXohJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpdGxlOiAlcyB8IFR5cGU6ICVzJ30gPSAnQ8OtbTogJXMgfCBUw61wdXM6ICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ0FCcyd9ID0gJ1NhasOhdCBDQUItb2snOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJ1NhasOhdCB2w6FsdG96w6Fzb2snOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICdTYWrDoXQgbXVua2FtZWdyZW5kZWzDqXNlayc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyVzOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICfDmmogbcWxdmVsZXQgKGF6b25vc8OtdMOzID0gJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdNxbF2ZWxldCAoYXpvbm9zw610w7MgPSAlcykgdMO2csO2bHZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdBIGZlbHTDqXRlbCAoYXpvbm9zw610w7MgPSAlcykgw7Zzc3plcyBtxbF2ZWxldGUgdMO2csO2bHZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJ03FsXZlbGV0IChhem9ub3PDrXTDsyA9ICVzKSB2w6lncmVoYWp0dmE6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJXMgKG3FsXZlbGV0LWF6b25vc8OtdMOzID0gJXMpOiAow7pqID0gJXMsIHLDqWdpID0gJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJ0EgdsOhbHRvesOhcyAoYXpvbm9zw610w7MgPSAlcykgZWzDqXJ0ZSBhIHTDqW55bGVnZXMgYmVmZWplesOpc2kgaWTFkXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnQSB2w6FsdG96w6FzIChhem9ub3PDrXTDsyA9ICVzKSBlbMOpcnRlIGEgdMOpbnlsZWdlcyBrZXpkw6lzaSBpZMWRdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnw5pqIHbDoWx0b3rDoXMgKGF6b25vc8OtdMOzID0gJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJ8OaaiBtZWxsw6lrbGV0OiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICdNZWxsw6lrbGV0IHTDtnLDtmx2ZTogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICdDQUIgdMO2csO2bHZlOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyVzOiAow7pqID0gJXMsIHLDqWdpID0gJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJ0thcGNzb2xhdCBlaGhlejogJXMgKGF6b25vc8OtdMOzID0gJXMpIGhvenrDoWFkdmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdLYXBjc29sYXQgZWhoZXo6ICVzIChhem9ub3PDrXTDsyA9ICVzKSB0w7Zyw7ZsdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICfDiXJ0ZXPDrXTDqXMgZWxrw7xsZHZlIGlkZTogJXMgKGVzZW3DqW55OiAlcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJ0EgdsOhbHRvesOhcyAoYXpvbm9zw610w7MgPSAlcykgZWzDqXJ0ZSBhIHRlcnZlemV0dCBiZWZlamV6w6lzaSBpZMWRdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnQSB2w6FsdG96w6FzIChhem9ub3PDrXTDsyA9ICVzKSBlbMOpcnRlIGEgdGVydmV6ZXR0IGtlemTDqXNpIGlkxZF0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJ0EgdsOhbHRvesOhcyAoYXpvbm9zw610w7MgPSAlcykgZWzDqXJ0ZSBhIGvDqXJ0IGlkxZF0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICfDmmogZmVsdMOpdGVsIChhem9ub3PDrXTDsyA9ICVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnRmVsdMOpdGVsIChhem9ub3PDrXTDsyA9ICVzKSB0w7Zyw7ZsdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIENvbmRpdGlvbnMgb2YgQ2hhbmdlIChJRD0lcykgZGVsZXRlZCd9ID0gJ0EgdsOhbHRvesOhcyAoYXpvbm9zw610w7MgPSAlcykgw7Zzc3plcyBmZWx0w6l0ZWxlIHTDtnLDtmx2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQ29uZGl0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyVzIChmZWx0w6l0ZWwtYXpvbm9zw610w7MgPSAlcyk6ICjDumogPSAlcywgcsOpZ2kgPSAlcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJ8OaaiBraWZlamV6w6lzIChhem9ub3PDrXTDsyA9ICVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJ0tpZmVqZXrDqXMgKGF6b25vc8OtdMOzID0gJXMpIHTDtnLDtmx2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJ0EgZmVsdMOpdGVsIChhem9ub3PDrXTDsyA9ICVzKSDDtnNzemVzIGtpZmVqZXrDqXNlIHTDtnLDtmx2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICclcyAoa2lmZWplesOpcy1hem9ub3PDrXTDsyA9ICVzKTogKMO6aiA9ICVzLCByw6lnaSA9ICVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICdBIG11bmthbWVncmVuZGVsw6lzIChhem9ub3PDrXTDsyA9ICVzKSBlbMOpcnRlIGEgdMOpbnlsZWdlcyBiZWZlamV6w6lzaSBpZMWRdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICdBIG11bmthbWVncmVuZGVsw6lzIChhem9ub3PDrXTDsyA9ICVzKSBlbMOpcnRlIGEgdMOpbnlsZWdlcyBrZXpkw6lzaSBpZMWRdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJ30gPSAnw5pqIG11bmthbWVncmVuZGVsw6lzIChhem9ub3PDrXTDsyA9ICVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJ8OaaiBtZWxsw6lrbGV0IGEgbXVua2FtZWdyZW5kZWzDqXNoZXo6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcoYXpvbm9zw610w7MgPSAlcykgw5pqIG1lbGzDqWtsZXQgYSBtdW5rYW1lZ3JlbmRlbMOpc2hlejogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJ01lbGzDqWtsZXQgdMO2csO2bHZlIGEgbXVua2FtZWdyZW5kZWzDqXNixZFsOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcoYXpvbm9zw610w7MgPSAlcykgTWVsbMOpa2xldCB0w7Zyw7ZsdmUgYSBtdW5rYW1lZ3JlbmRlbMOpc2LFkWw6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJ8OaaiBqZWxlbnTDqXNtZWxsw6lrbGV0IGEgbXVua2FtZWdyZW5kZWzDqXNoZXo6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnKGF6b25vc8OtdMOzID0gJXMpIMOaaiBqZWxlbnTDqXNtZWxsw6lrbGV0IGEgbXVua2FtZWdyZW5kZWzDqXNoZXo6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnSmVsZW50w6lzbWVsbMOpa2xldCB0w7Zyw7ZsdmUgYSBtdW5rYW1lZ3JlbmRlbMOpc2LFkWw6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcoYXpvbm9zw610w7MgPSAlcykgSmVsZW50w6lzbWVsbMOpa2xldCB0w7Zyw7ZsdmUgYSBtdW5rYW1lZ3JlbmRlbMOpc2LFkWw6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcyAoYXpvbm9zw610w7MgPSAlcykgdMO2csO2bHZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnKGF6b25vc8OtdMOzID0gJXMpIEthcGNzb2xhdCBlaGhlejogJXMgKGF6b25vc8OtdMOzID0gJXMpIGhvenrDoWFkdmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyhhem9ub3PDrXTDsyA9ICVzKSBLYXBjc29sYXQgZWhoZXo6ICVzIChhem9ub3PDrXTDsyA9ICVzKSB0w7Zyw7ZsdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyhhem9ub3PDrXTDsyA9ICVzKSDDiXJ0ZXPDrXTDqXMgZWxrw7xsZHZlIGlkZTogJXMgKGVzZW3DqW55OiAlcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJ0EgbXVua2FtZWdyZW5kZWzDqXMgKGF6b25vc8OtdMOzID0gJXMpIGVsw6lydGUgYSB0ZXJ2ZXpldHQgYmVmZWplesOpc2kgaWTFkXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJ0EgbXVua2FtZWdyZW5kZWzDqXMgKGF6b25vc8OtdMOzID0gJXMpIGVsw6lydGUgYSB0ZXJ2ZXpldHQga2V6ZMOpc2kgaWTFkXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcoYXpvbm9zw610w7MgPSAlcykgJXM6ICjDumogPSAlcywgcsOpZ2kgPSAlcyknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICfDtnNzemVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJ2LDoXJtZWx5JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJ0VsxZF6xZEgdsOhbHRvesOhcy3DtnNzemXDoWxsw610w7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICdFbMWResWRIHbDoWx0b3rDoXNtZW5lZHpzZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJ011bmthbWVncmVuZGVsw6lzIMO8Z3lpbnTDqXrFkWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnRWzFkXrFkSBtdW5rYW1lZ3JlbmRlbMOpcy3DvGd5aW50w6l6xZEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICdWw6FsdG96dGF0w6Fza2V6ZGVtw6lueWV6xZFrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICdJVFNNIHbDoWx0b3rDoXMgY3NvcG9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJ0lUU00gdsOhbHRvesOhcy3DtnNzemXDoWxsw610w7MgY3NvcG9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJ0lUU00gdsOhbHRvesOhc21lbmVkenNlciBjc29wb3J0JzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICdrw6lydmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJ2rDs3bDoWhhZ3nDoXNyYSB2w6FyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAndmlzc3phdXRhc8OtdHZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAnasOzdsOhaGFneXZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAnZm9seWFtYXRiYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICdmw7xnZ8WRYmVuIGzDqXbFkSBQSVInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJ3Npa2VyZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAnc2lrZXJ0ZWxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJ21lZ3N6YWvDrXR2YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICd2aXNzemF2b252YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAnbMOpdHJlaG96dmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICdlbGZvZ2FkdmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICdrw6lzemVuIMOhbGwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICdqw7N2w6FoYWd5w6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJ211bmthbWVncmVuZGVsw6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICd2aXNzemHDoWxsw6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnZMO2bnTDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnUElSJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICdWw6FsdG96w6Fzw6FsbGFwb3QtYXpvbm9zw610w7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJ0thdGVnw7NyaWEtYXpvbm9zw610w7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICdIYXTDoXNhem9ub3PDrXTDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnUHJpb3JpdMOhc2F6b25vc8OtdMOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXJJRCd9ID0gJ1bDoWx0b3rDoXNtZW5lZHpzZXItYXpvbm9zw610w7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnVsOhbHRvesOhc8O2c3N6ZcOhbGzDrXTDsy1hem9ub3PDrXTDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnTXVua2FtZWdyZW5kZWzDqXPDoWxsYXBvdC1hem9ub3PDrXTDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICdNdW5rYW1lZ3JlbmRlbMOpc3TDrXB1cy1hem9ub3PDrXTDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnTXVua2FtZWdyZW5kZWzDqXPDvGd5aW50w6l6xZEtYXpvbm9zw610w7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICdlZ3llbmzFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICduZW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICfDvHJlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICduZW0gw7xyZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnbmFneW9iYiBtaW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJ2tpc2ViYiBtaW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJ2V6IGVsxZF0dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJ2V6IHV0w6FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAndGFydGFsbWF6emEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnbmVtIHRhcnRhbG1henphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnZXp6ZWwga2V6ZMWRZGlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJ2V6emVsIHbDqWd6xZFkaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAnYmXDoWxsw610dmEnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICdWYWzDs2JhbiB0w7Zyw7Zsbmkgc3plcmV0bsOpIGV6dCBhIGtpZmVqZXrDqXN0Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJ1ZhbMOzYmFuIHTDtnLDtmxuaSBzemVyZXRuw6kgZXp0IGEgbcWxdmVsZXRldD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICdWYWzDs2JhbiB0w7Zyw7Zsbmkgc3plcmV0bsOpIGV6dCBhIGZlbHTDqXRlbHQ/JzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnT0snOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICdBem9uIMO8Z3lpbnTDqXrFkWsgbGlzdMOhamEsIGFraWsgam9nb3N1bHRzw6FnZ2FsIHJlbmRlbGtlem5layBhIG11bmthbWVncmVuZGVsw6lzZWsgZmVsdsOpdGVsw6loZXouIEEga3VsY3MgYSBiZWplbGVudGtlesOpc2kgbsOpdi4gQSB0YXJ0YWxvbSAwIHZhZ3kgMS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICdBem9uIG11bmthbWVncmVuZGVsw6lzLcOhbGxhcG90b2sgbGlzdMOhamEsIGFtZWx5ZWtuw6lsIGVneSBtdW5rYW1lZ3JlbmRlbMOpcyB0w6lueWxlZ2VzIGtlemTDqXNpIGlkZWplIGJlIGxlc3ogw6FsbMOtdHZhLCBoYSBheiDDvHJlcyBlbm7DqWwgYSBwb250bsOhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnVMOpbnlsZWdlcyBiZWZlamV6w6lzaSBpZMWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnVMOpbnlsZWdlcyBrZXpkw6lzaSBpZMWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcyBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcyBob3p6w6FhZMOhc2EgKHNhYmxvbmLDs2wpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJ0VneSB2w6FsdG96w6FzIGhvenrDoWFkw6FzYSBzYWJsb25iw7NsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnRWd5IHbDoWx0b3rDoXMgaG96esOhYWTDoXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnRWd5IG11bmthbWVncmVuZGVsw6lzIGhvenrDoWFkw6FzYSAoc2FibG9uYsOzbCkgYSB2w6FsdG96w6FzaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICdFZ3kgbXVua2FtZWdyZW5kZWzDqXMgaG96esOhYWTDoXNhIGEgdsOhbHRvesOhc2hvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICdIb3p6w6FhZMOhcyBzYWJsb25iw7NsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJ0EgQ0lQIG3DoXRyaXggYWRtaW5pc3p0csOhdG9yYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAnQXogw6FsbGFwb3Rnw6lwIGFkbWluaXN6dHLDoXRvcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICfDnGd5aW50w6l6xZFpIGZlbMO8bGV0IMOpcnRlc8OtdMOpc2kgbW9kdWwgYSB2w6FsdG96w6FzbWVuZWR6c21lbnQtdGFuw6Fjc29rIHN6w6Ftw6FuYWsgbWVndGVraW50w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJ8OcZ3lpbnTDqXrFkWkgZmVsw7xsZXQgw6lydGVzw610w6lzaSBtb2R1bCBhIGZlbGhhc3puw6Fsw7Mgw6FsdGFsIGtlemVsdCB2w6FsdG96w6Fzb2sgc3rDoW3DoW5hayBtZWd0ZWtpbnTDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJ8OcZ3lpbnTDqXrFkWkgZmVsw7xsZXQgw6lydGVzw610w6lzaSBtb2R1bCBhIHbDoWx0b3rDoXNvayBzesOhbcOhbmFrIG1lZ3Rla2ludMOpc8OpaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnw5xneWludMOpesWRaSBmZWzDvGxldCDDqXJ0ZXPDrXTDqXNpIG1vZHVsIGEgbXVua2FtZWdyZW5kZWzDqXNlayBzesOhbcOhbmFrIG1lZ3Rla2ludMOpc8OpaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJ0NBQi10YWcga2VyZXPDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJ0d5b3Jzw610w7N0w6FyIGlkxZEgcGVyY2JlbiBhIHbDoWx0b3rDoXNtZW5lZHpzbWVudCBlc3prw7Z6dMOhcm7DoWwuIEFsYXDDqXJ0ZWxtZXpldHQ6IDMgw7NyYSAoMTgwIHBlcmMpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnR3lvcnPDrXTDs3TDoXIgaWTFkSBwZXJjYmVuIGEgdsOhbHRvesOhc21lbmVkenNtZW50bsOpbC4gQWxhcMOpcnRlbG1lemV0dDogNSBuYXAgKDcyMDAgcGVyYykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAnVsOhbHRvesOhcyBDQUItc2FibG9ub2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnVsOhbHRvesOhc3TDtnJ0w6luZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJ0EgdsOhbHRvesOhc2JhbiByw6lzenR2ZXbFkSBzemVtw6lseWVrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ1bDoWx0b3rDoXMgw6F0dGVraW50xZEg4oCea2lz4oCdIGtvcmzDoXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJ1bDoWx0b3rDoXMgw6F0dGVraW50w6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnVsOhbHRvesOhc255b210YXTDoXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJ1bDoWx0b3p0YXTDoXNpIMO8dGVtdGVydic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnVsOhbHRvenRhdMOhc2kgw7x0ZW10ZXJ2Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICdWw6FsdG96w6FzIGJlw6FsbMOtdMOhc29rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnVsOhbHRvesOhc25hZ3nDrXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnVsOhbHRvesOhc25hZ3nDrXTDoXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgV29ya29yZGVyIFRlbXBsYXRlcyd9ID0gJ1bDoWx0b3rDoXMgw6lzIG11bmthbWVncmVuZGVsw6lzIHNhYmxvbm9rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJ0EgZmVsaGFzem7DoWzDsyDDoWx0YWwgc3plcmtlc3p0ZXR0IHbDoWx0b3rDoXMgw6lzIG11bmthbWVncmVuZGVsw6lzIHNhYmxvbm9rLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICdWw6FsdG96w6FzdGVyw7xsZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnQSB2w6FsdG96w6FzIHLDqXN6dHZldsWRIHN6ZW3DqWx5ZWluZWsgbcOzZG9zw610w6FzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICdPbGRhbGFua8OpbnRpIHbDoWx0b3rDoXMga29ybMOhdCBhIOKAnmtpc+KAnSB2w6FsdG96w6FzIMOhdHRla2ludMWRbsOpbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJ1bDoWx0b3rDoXNzesOhbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnQXogw7xneWludMOpesWRaSBmZWzDvGxldCB2w6FsdG96w6FzIGtlcmVzw6lzaSBow6F0dMOpcnByb2dyYW0gw7p0dsOhbGFzenTDs2phLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICdWw6FsdG96w6Fzw6FsbGFwb3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpbWUnfSA9ICdWw6FsdG96dGF0w6FzIGlkZWplJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJ1bDoWx0b3rDoXNjw61tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBFZGl0J30gPSAnRmVsdMOpdGVsIHN6ZXJrZXN6dMOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICdGZWx0w6l0ZWwgw6F0dGVraW50w6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnQW5uYWsgYmXDoWxsw610w6FzYSwgaG9neSBtZWx5IGvDqXBlcm55xZEgbGVneWVuIG1lZ2plbGVuw610dmUsIG1pdXTDoW4gZWd5IMO6aiBtdW5rYW1lZ3JlbmRlbMOpc3QgbMOpdHJlaG96dGFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnQmXDoWxsw610amEsIGhvZ3kgbWlseWVuIGd5YWtyYW4gbGVneWVuZWsgZWxrw7xsZHZlIGF6IMOpcnRlc8OtdMOpc2VrLCBhbWlrb3IgZWzDqXJpay/DoXRhZGrDoWsgYSB0ZXJ2ZXpldHQga2V6ZMOpc2kgaWTFkXQgdmFneSBtw6FzIGlkxZHDqXJ0w6lrZWtldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJ1bDoWx0b3rDoXMgbMOpdHJlaG96w6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJ1bDoWx0b3rDoXMgbMOpdHJlaG96w6FzYSAoc2FibG9uYsOzbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIChmcm9tIHRlbXBsYXRlKSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJ1bDoWx0b3rDoXMgbMOpdHJlaG96w6FzYSAoc2FibG9uYsOzbCkgZWJixZFsIGEgamVneWLFkWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJ1bDoWx0b3rDoXMgbMOpdHJlaG96w6FzYSBlYmLFkWwgYSBqZWd5YsWRbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBub3RpZmljYXRpb25zLid9ID0gJ0lUU00gdsOhbHRvesOhc21lbmVkenNtZW50IMOpcnRlc8OtdMOpc2VrIGzDqXRyZWhvesOhc2Egw6lzIGtlemVsw6lzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnVsOhbHRvesOhcyDDqXJ0ZXPDrXTDqXNlayBsw6l0cmVob3rDoXNhIMOpcyBrZXplbMOpc2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJ0VneSBtdW5rYW1lZ3JlbmRlbMOpcyBhbGFww6lydGVsbWV6ZXR0IHTDrXB1c2EuIEVubmVrIGEgYmVqZWd5esOpc25layBsw6l0ZXpuaWUga2VsbCBheiDigJ5JVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGXigJ0gw6FsdGFsw6Fub3Mga2F0YWzDs2d1cyBvc3p0w6FseWJhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJ03FsXZlbGV0ZWsgbWVnaGF0w6Fyb3rDoXNhLCBhaG9sIGVneSBiZcOhbGzDrXTDoXNvayBnb21iIMOpcmhldMWRIGVsIGEga2FwY3NvbHQgb2JqZWt0dW1vayBmZWzDvGxldGkgZWxlbWVuIChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9IOKAnsO2c3N6ZXRldHTigJ0pLiBOZSBmZWxlZGplLCBob2d5IGV6ZWtuZWsgYSBtxbF2ZWxldGVrbmVrIHJlbmRlbGtlem5pw7xrIGtlbGwgYSBrw7Z2ZXRrZXrFkSBKUyDDqXMgQ1NTIGbDoWpsb2sgcmVnaXN6dHLDoWzDoXPDoXZhbDogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgw6lzIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICdBIHN6aWduw6Fsb2sgbWVnaGF0w6Fyb3rDoXNhIG1pbmRlbiBtdW5rYW1lZ3JlbmRlbMOpcy3DoWxsYXBvdG7DoWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnQW5uYWsgbWVnaGF0w6Fyb3rDoXNhLCBob2d5IG1lbHkgb3N6bG9wb2sgbGVneWVuZWsgbMOhdGhhdMOzayBhIGthcGNzb2x0IHbDoWx0b3rDoXNvayBmZWzDvGxldGkgZWxlbWVuIChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9IOKAnsO2c3N6ZXRldHTigJ0pLiBNZWdqZWd5esOpczogY3NhayB2w6FsdG96w6FzIGF0dHJpYsO6dHVtb2sgZW5nZWTDqWx5ZXpldHRlayBheiBhbGFww6lydGVsbWV6ZXR0IG9zemxvcG9rbsOhbC4gTGVoZXRzw6lnZXMgYmXDoWxsw610w6Fzb2s6IDAgPSBsZXRpbHR2YSwgMSA9IGVsw6lyaGV0xZEsIDIgPSBhbGFww6lydGVsbWV6ZXR0ZW4gZW5nZWTDqWx5ZXpldHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICdBbm5hayBtZWdoYXTDoXJvesOhc2EsIGhvZ3kgbWVseSBvc3psb3BvayBsZWd5ZW5layBsw6F0aGF0w7NrIGEga2FwY3NvbHQgbXVua2FtZWdyZW5kZWzDqXMgZmVsw7xsZXRpIGVsZW1lbiAoTGlua09iamVjdDo6Vmlld01vZGUgPSDigJ7DtnNzemV0ZXR04oCdKS4gTWVnamVneXrDqXM6IGNzYWsgbXVua2FtZWdyZW5kZWzDqXMgYXR0cmliw7p0dW1vayBlbmdlZMOpbHllemV0dGVrIGF6IGFsYXDDqXJ0ZWxtZXpldHQgb3N6bG9wb2tuw6FsLiBMZWhldHPDqWdlcyBiZcOhbGzDrXTDoXNvazogMCA9IGxldGlsdHZhLCAxID0gZWzDqXJoZXTFkSwgMiA9IGFsYXDDqXJ0ZWxtZXpldHRlbiBlbmdlZMOpbHllemV0dC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnRWd5IMOhdHRla2ludMWRIG1vZHVsdCBoYXTDoXJveiBtZWcgZWd5IHbDoWx0b3rDoXNsaXN0YSBraXMgbsOpemV0w6luZWsgbWVnamVsZW7DrXTDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICdFZ3kgw6F0dGVraW50xZEgbW9kdWx0IGhhdMOhcm96IG1lZyBlZ3kgc2FibG9ubGlzdGEga2lzIG7DqXpldMOpbmVrIG1lZ2plbGVuw610w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAnTWVnaGF0w6Fyb3p6YSwgaG9neSBsZWhldHPDqWdlcyBsZXN6LWUga2lueW9tdGF0bmkgYXogZWxzesOhbW9sdCBpZMWRdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICdNZWdoYXTDoXJvenphLCBob2d5IGxlaGV0c8OpZ2VzIGxlc3otZSBraW55b210YXRuaSBhIHRlcnZlemV0dCByw6Fmb3Jkw610w6FzdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSwgaG9neSBheiBlbMOpcmhldMWRIChhaG9neSBheiDDoWxsYXBvdGfDqXAgbWVnaGF0w6Fyb3p0YSkgdsOhbHRvesOhcyBiZWZlamV6w6lzaSDDoWxsYXBvdGFpdCBlbCBrZWxsLWUgZm9nYWRuaSwgaGEgZWd5IHbDoWx0b3rDoXMgesOhcm9sdCDDoWxsYXBvdGJhbiB2YW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEsIGhvZ3kgYXogZWzDqXJoZXTFkSAoYWhvZ3kgYXogw6FsbGFwb3Rnw6lwIG1lZ2hhdMOhcm96dGEpIG11bmthbWVncmVuZGVsw6lzIGJlZmVqZXrDqXNpIMOhbGxhcG90YWl0IGVsIGtlbGwtZSBmb2dhZG5pLCBoYSBlZ3kgbXVua2FtZWdyZW5kZWzDqXMgesOhcm9sdCDDoWxsYXBvdGJhbiB2YW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICdNZWdoYXTDoXJvenphLCBob2d5IGF6IGVsc3rDoW1vbHQgaWTFkXQgbWVnIGtlbGwtZSBqZWxlbsOtdGVuaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICdNZWdoYXTDoXJvenphLCBob2d5IGEgdMOpbnlsZWdlcyBrZXpkw6lzaSDDqXMgYmVmZWplesOpc2kgaWTFkWtldCBiZSBrZWxsLWUgw6FsbMOtdGFuaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSwgaG9neSBhIHbDoWx0b3rDoXNrZXJlc8OpcyDDqXMgYSBtdW5rYW1lZ3JlbmRlbMOpcy1rZXJlc8OpcyBmdW5rY2nDs2sgaGFzem7DoWxoYXRqw6FrLWUgYSB0w7xrw7ZyIGFkYXRiw6F6aXN0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphLCBob2d5IGEgdsOhbHRvesOhcyDDoWxsYXBvdGEgYmXDoWxsw610aGF0w7MtZSBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJ01lZ2hhdMOhcm96emEsIGhvZ3kgYSB0ZXJ2ZXpldHQgcsOhZm9yZMOtdMOhc3QgbWVnIGtlbGwtZSBqZWxlbsOtdGVuaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJ01lZ2hhdMOhcm96emEsIGhvZ3kgYSBrw6lydCBkw6F0dW1vdCDDvGd5ZsOpbCBzemVyaW50IGtlbGwtZSBraW55b210YXRuaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSwgaG9neSBhIGvDqXJ0IGTDoXR1bW90IMO8Z3lmw6lsIHN6ZXJpbnQga2VsbC1lIGtlcmVzbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnTWVnaGF0w6Fyb3p6YSwgaG9neSBhIGvDqXJ0IGTDoXR1bW90IMO8Z3lmw6lsIHN6ZXJpbnQga2VsbC1lIGJlw6FsbMOtdGFuaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJ01lZ2hhdMOhcm96emEsIGhvZ3kgYSBrw6lydCBkw6F0dW1vdCDDvGd5ZsOpbCBzemVyaW50IGtlbGwtZSBtZWdqZWxlbsOtdGVuaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICdNZWdoYXTDoXJvenphLCBob2d5IGEgbXVua2FtZWdyZW5kZWzDqXMgw6FsbGFwb3TDoXQgbWVnIGtlbGwtZSBqZWxlbsOtdGVuaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICdNZWdoYXTDoXJvenphLCBob2d5IGEgbXVua2FtZWdyZW5kZWzDqXMgY8OtbcOpdCBtZWcga2VsbC1lIGplbGVuw610ZW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnTWVnaGF0w6Fyb3p6YSBhIG1lZ2plbGVuw610ZXR0IGdyYWZpa29uYXR0cmliw7p0dW1va2F0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEsIGhvZ3kgY3NhayBhem9rIGEgc3pvbGfDoWx0YXTDoXNva2thbCDDtnNzemVrYXBjc29sdCBtdW5rYW1lZ3JlbmRlbMOpc2VrZXQgdGFydGFsbWF6w7MgdsOhbHRvesOhc29rIGxlc3puZWsgbWVnamVsZW7DrXR2ZSwgYW1lbHlla3JlIGF6IMO8Z3lmw6lsZmVsaGFzem7DoWzDs25hayBoYXN6bsOhbGF0aSBqb2dvc3VsdHPDoWdhIHZhbi4gTWluZGVuIGVnecOpYiB2w6FsdG96w6FzIG5lbSBrZXLDvGwgbWVnamVsZW7DrXTDqXNyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuJ30gPSAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYSB2w6FsdG96w6Fzw6FsbGFwb3Rva2F0LCBhbWVseWVrIGVuZ2Vkw6lseWV6ZXR0ZWsgbGVzem5layB0w7ZybMOpc3JlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6b2thdCBhIHbDoWx0b3rDoXPDoWxsYXBvdG9rYXQsIGFtZWx5ZWsgc3rFsXLFkWtrw6ludCBsZXN6bmVrIGhhc3puw6FsdmEgYSB2w6FsdG96w6FzIFBTQSDDoXR0ZWtpbnTFkWrDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6b2thdCBhIHbDoWx0b3rDoXPDoWxsYXBvdG9rYXQsIGFtZWx5ZWsgc3rFsXLFkWtrw6ludCBsZXN6bmVrIGhhc3puw6FsdmEgYSB2w6FsdG96dGF0w6FzaSDDvHRlbXRlcnYgw6F0dGVraW50xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6b2thdCBhIHbDoWx0b3rDoXPDoWxsYXBvdG9rYXQsIGFtZWx5ZWsgc3rFsXLFkWtrw6ludCBsZXN6bmVrIGhhc3puw6FsdmEgYSBzYWrDoXQgQ0FCIMOhdHRla2ludMWRasOpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXpva2F0IGEgdsOhbHRvesOhc8OhbGxhcG90b2thdCwgYW1lbHllayBzesWxcsWRa2vDqW50IGxlc3puZWsgaGFzem7DoWx2YSBhIHNhasOhdCB2w6FsdG96w6Fzb2sgw6F0dGVraW50xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6b2thdCBhIHbDoWx0b3rDoXPDoWxsYXBvdG9rYXQsIGFtZWx5ZWsgc3rFsXLFkWtrw6ludCBsZXN6bmVrIGhhc3puw6FsdmEgYSB2w6FsdG96w6FzbWVuZWR6c2VyIMOhdHRla2ludMWRasOpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXpva2F0IGEgdsOhbHRvesOhc8OhbGxhcG90b2thdCwgYW1lbHllayBzesWxcsWRa2vDqW50IGxlc3puZWsgaGFzem7DoWx2YSBhIHbDoWx0b3rDoXMgw6F0dGVraW50xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYSB2w6FsdG96w6Fzw6FsbGFwb3Rva2F0LCBhbWVseWVrIHN6xbFyxZFra8OpbnQgbGVzem5layBoYXN6bsOhbHZhIGF6IMO8Z3lmw6lsIHbDoWx0b3p0YXTDoXNpIMO8dGVtdGVydiDDoXR0ZWtpbnTFkWrDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBlZ3kgw7xyZXMgdsOhbHRvesOhcyBhbGFww6lydGVsbWV6ZXR0IHbDoWx0b3rDoXNjw61tw6l0LCBhbWVseSBlZ3kgbXVua2FtZWdyZW5kZWzDqXMtc2FibG9uIHN6ZXJrZXN6dMOpc8OpaGV6IHN6w7xrc8OpZ2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6IGFsYXDDqXJ0ZWxtZXpldHQgcmVuZGV6w6lzaSBmZWx0w6l0ZWx0IGEgdsOhbHRvesOhcyBQU0Egw6F0dGVraW50xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6IGFsYXDDqXJ0ZWxtZXpldHQgcmVuZGV6w6lzaSBmZWx0w6l0ZWx0IGEgdsOhbHRvesOhc21lbmVkenNlciDDoXR0ZWtpbnTFkWrDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnTWVnaGF0w6Fyb3p6YSBheiBhbGFww6lydGVsbWV6ZXR0IHJlbmRlesOpc2kgZmVsdMOpdGVsdCBhIHbDoWx0b3rDoXMgw6F0dGVraW50xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBheiBhbGFww6lydGVsbWV6ZXR0IHJlbmRlesOpc2kgZmVsdMOpdGVsdCBhIHbDoWx0b3p0YXTDoXNpIMO8dGVtdGVydiDDoXR0ZWtpbnTFkWrDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYSB2w6FsdG96w6Fzb2sgYWxhcMOpcnRlbG1lemV0dCByZW5kZXrDqXNpIGZlbHTDqXRlbMOpdCBhIHNhasOhdCBDQUIgw6F0dGVraW50xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhIHbDoWx0b3rDoXNvayBhbGFww6lydGVsbWV6ZXR0IHJlbmRlesOpc2kgZmVsdMOpdGVsw6l0IGEgc2Fqw6F0IHbDoWx0b3rDoXNvayDDoXR0ZWtpbnTFkWrDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGEgdsOhbHRvesOhc29rIGFsYXDDqXJ0ZWxtZXpldHQgcmVuZGV6w6lzaSBmZWx0w6l0ZWzDqXQgYSBzYWrDoXQgbXVua2FtZWdyZW5kZWzDqXNlayDDoXR0ZWtpbnTFkWrDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGEgdsOhbHRvesOhc29rIGFsYXDDqXJ0ZWxtZXpldHQgcmVuZGV6w6lzaSBmZWx0w6l0ZWzDqXQgYSBQSVIgw6F0dGVraW50xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhIHbDoWx0b3rDoXNvayBhbGFww6lydGVsbWV6ZXR0IHJlbmRlesOpc2kgZmVsdMOpdGVsw6l0IGF6IMO8Z3lmw6lsIHbDoWx0b3p0YXTDoXNpIMO8dGVtdGVydiDDoXR0ZWtpbnTFkWrDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYSB2w6FsdG96w6Fzb2sgYWxhcMOpcnRlbG1lemV0dCByZW5kZXrDqXNpIGZlbHTDqXRlbMOpdCBhIHNhYmxvbiDDoXR0ZWtpbnTFkWrDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICdNZWdoYXTDoXJvenphIGF6IGFsYXDDqXJ0ZWxtZXpldHQgcmVuZGV6w6lzaSBzb3JyZW5kZXQgYSBzYWrDoXQgQ0FCIMOhdHRla2ludMWRasOpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICdNZWdoYXTDoXJvenphIGF6IGFsYXDDqXJ0ZWxtZXpldHQgcmVuZGV6w6lzaSBzb3JyZW5kZXQgYSBzYWrDoXQgdsOhbHRvesOhc29rIMOhdHRla2ludMWRasOpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXogYWxhcMOpcnRlbG1lemV0dCByZW5kZXrDqXNpIHNvcnJlbmRldCBhIHNhasOhdCBtdW5rYW1lZ3JlbmRlbMOpc2VrIMOhdHRla2ludMWRasOpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICdNZWdoYXTDoXJvenphIGF6IGFsYXDDqXJ0ZWxtZXpldHQgcmVuZGV6w6lzaSBzb3JyZW5kZXQgYSBQSVIgw6F0dGVraW50xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICdNZWdoYXTDoXJvenphIGF6IGFsYXDDqXJ0ZWxtZXpldHQgcmVuZGV6w6lzaSBzb3JyZW5kZXQgYSB2w6FsdG96w6FzIFBTQSDDoXR0ZWtpbnTFkWrDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXogYWxhcMOpcnRlbG1lemV0dCByZW5kZXrDqXNpIHNvcnJlbmRldCBhIHbDoWx0b3rDoXNtZW5lZHpzZXIgw6F0dGVraW50xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJ01lZ2hhdMOhcm96emEgYXogYWxhcMOpcnRlbG1lemV0dCByZW5kZXrDqXNpIHNvcnJlbmRldCBhIHbDoWx0b3rDoXMgw6F0dGVraW50xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBheiBhbGFww6lydGVsbWV6ZXR0IHJlbmRlesOpc2kgc29ycmVuZGV0IGEgdsOhbHRvenRhdMOhc2kgw7x0ZW10ZXJ2IMOhdHRla2ludMWRasOpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXogYWxhcMOpcnRlbG1lemV0dCByZW5kZXrDqXNpIHNvcnJlbmRldCBheiDDvGd5ZsOpbCB2w6FsdG96dGF0w6FzaSDDvHRlbXRlcnYgw6F0dGVraW50xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAnTWVnaGF0w6Fyb3p6YSBheiBhbGFww6lydGVsbWV6ZXR0IHJlbmRlesOpc2kgc29ycmVuZGV0IGEgc2FibG9uIMOhdHRla2ludMWRasOpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnTWVnaGF0w6Fyb3p6YSBlZ3kgdsOhbHRvesOhcyBrYXRlZ8OzcmnDoWrDoW5hayBhbGFww6lydGVsbWV6ZXR0IMOpcnTDqWvDqXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnTWVnaGF0w6Fyb3p6YSBlZ3kgdsOhbHRvesOhcyBoYXTDoXPDoW5hayBhbGFww6lydGVsbWV6ZXR0IMOpcnTDqWvDqXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6IOKAnsOWc3N6ZWhhc29ubMOtdMOhcyDDqXJ0w6lr4oCdIG1lesWRayBtZXrFkXTDrXB1c8OhdCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgZmVsdMOpdGVsw6luZWsgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbiBoYXN6bsOhbHQgdsOhbHRvesOhcyBhdHRyaWLDunR1bWFpbsOhbC4gQXogw6lydsOpbnllcyDDqXJ0w6lrZWs6IFNlbGVjdGlvbiwgVGV4dCDDqXMgRGF0ZS4gSGEgYSB0w61wdXMgbmluY3MgbWVnaGF0w6Fyb3p2YSwgYWtrb3IgYSBtZXrFkSBuZW0gbGVzeiBsw6F0aGF0w7MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6IOKAnsOWc3N6ZWhhc29ubMOtdMOhcyDDqXJ0w6lr4oCdIG1lesWRayBtZXrFkXTDrXB1c8OhdCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgZmVsdMOpdGVsw6luZWsgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbiBoYXN6bsOhbHQgbXVua2FtZWdyZW5kZWzDqXMgYXR0cmliw7p0dW1haW7DoWwuIEF6IMOpcnbDqW55ZXMgw6lydMOpa2VrOiBTZWxlY3Rpb24sIFRleHQgw6lzIERhdGUuIEhhIGEgdMOtcHVzIG5pbmNzIG1lZ2hhdMOhcm96dmEsIGFra29yIGEgbWV6xZEgbmVtIGxlc3ogbMOhdGhhdMOzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciBjaGFuZ2Ugb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYXogb2JqZWt0dW1hdHRyaWLDunR1bW9rYXQsIGFtZWx5ZWsga2l2w6FsYXN6dGhhdMOzayBhIHbDoWx0b3rDoXNvYmpla3R1bW9rbsOhbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgZmVsdMOpdGVsw6luZWsgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXpva2F0IGF6IG9iamVrdHVtYXR0cmliw7p0dW1va2F0LCBhbWVseWVrIGtpdsOhbGFzenRoYXTDs2sgYSBtdW5rYW1lZ3JlbmRlbMOpcyBvYmpla3R1bW9rbsOhbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgZmVsdMOpdGVsw6luZWsgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWNjb3VudGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYXogb3BlcsOhdG9yb2thdCwgYW1lbHllayBraXbDoWxhc3p0aGF0w7NrIGF6IOKAnkVsc3rDoW1vbHQgaWTFkeKAnSBhdHRyaWLDunR1bW7DoWwgYXogw7xneWludMOpesWRaSBmZWzDvGxldCB2w6FsdG96w6FzIGZlbHTDqXRlbMOpbmVrIHN6ZXJrZXN6dMOpc2Uga8OpcGVybnnFkWrDqW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXpva2F0IGF6IG9wZXLDoXRvcm9rYXQsIGFtZWx5ZWsga2l2w6FsYXN6dGhhdMOzayBhIOKAnlTDqW55bGVnZXMgYmVmZWplesOpc2kgaWTFkeKAnSBhdHRyaWLDunR1bW7DoWwgYXogw7xneWludMOpesWRaSBmZWzDvGxldCB2w6FsdG96w6FzIGZlbHTDqXRlbMOpbmVrIHN6ZXJrZXN6dMOpc2Uga8OpcGVybnnFkWrDqW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYXogb3BlcsOhdG9yb2thdCwgYW1lbHllayBraXbDoWxhc3p0aGF0w7NrIGEg4oCeVMOpbnlsZWdlcyBrZXpkw6lzaSBpZMWR4oCdIGF0dHJpYsO6dHVtbsOhbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgZmVsdMOpdGVsw6luZWsgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYXogb3BlcsOhdG9yb2thdCwgYW1lbHllayBraXbDoWxhc3p0aGF0w7NrIGEg4oCeS2F0ZWfDs3JpYWF6b25vc8OtdMOz4oCdIGF0dHJpYsO6dHVtbsOhbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgZmVsdMOpdGVsw6luZWsgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6b2thdCBheiBvcGVyw6F0b3Jva2F0LCBhbWVseWVrIGtpdsOhbGFzenRoYXTDs2sgYSDigJ5Ww6FsdG96w6Fzw7Zzc3plw6FsbMOtdMOzLWF6b25vc8OtdMOz4oCdIGF0dHJpYsO6dHVtbsOhbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgZmVsdMOpdGVsw6luZWsgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlTWFuYWdlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6b2thdCBheiBvcGVyw6F0b3Jva2F0LCBhbWVseWVrIGtpdsOhbGFzenRoYXTDs2sgYSDigJ5Ww6FsdG96w6FzbWVuZWR6c2VyLWF6b25vc8OtdMOz4oCdIGF0dHJpYsO6dHVtbsOhbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgZmVsdMOpdGVsw6luZWsgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYXogb3BlcsOhdG9yb2thdCwgYW1lbHllayBraXbDoWxhc3p0aGF0w7NrIGEg4oCeVsOhbHRvesOhc8OhbGxhcG90LWF6b25vc8OtdMOz4oCdIGF0dHJpYsO6dHVtbsOhbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgZmVsdMOpdGVsw6luZWsgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXpva2F0IGF6IG9wZXLDoXRvcm9rYXQsIGFtZWx5ZWsga2l2w6FsYXN6dGhhdMOzayBhIOKAnlbDoWx0b3rDoXNjw61t4oCdIGF0dHJpYsO6dHVtbsOhbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgZmVsdMOpdGVsw6luZWsgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgRHluYW1pY0ZpZWxkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6b2thdCBheiBvcGVyw6F0b3Jva2F0LCBhbWVseWVrIGtpdsOhbGFzenRoYXTDs2sgYSDigJ5EaW5hbWlrdXMgbWV6xZHigJ0gYXR0cmliw7p0dW1uw6FsIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgdsOhbHRvesOhcyBmZWx0w6l0ZWzDqW5layBzemVya2VzenTDqXNlIGvDqXBlcm55xZFqw6luLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYXogb3BlcsOhdG9yb2thdCwgYW1lbHllayBraXbDoWxhc3p0aGF0w7NrIGEg4oCeSGF0w6FzYXpvbm9zw610w7PigJ0gYXR0cmliw7p0dW1uw6FsIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgdsOhbHRvesOhcyBmZWx0w6l0ZWzDqW5layBzemVya2VzenTDqXNlIGvDqXBlcm55xZFqw6luLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRWZmb3J0IGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6b2thdCBheiBvcGVyw6F0b3Jva2F0LCBhbWVseWVrIGtpdsOhbGFzenRoYXTDs2sgYSDigJ5UZXJ2ZXpldHQgcsOhZm9yZMOtdMOhc+KAnSBhdHRyaWLDunR1bW7DoWwgYXogw7xneWludMOpesWRaSBmZWzDvGxldCB2w6FsdG96w6FzIGZlbHTDqXRlbMOpbmVrIHN6ZXJrZXN6dMOpc2Uga8OpcGVybnnFkWrDqW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6b2thdCBheiBvcGVyw6F0b3Jva2F0LCBhbWVseWVrIGtpdsOhbGFzenRoYXTDs2sgYSDigJ5UZXJ2ZXpldHQgYmVmZWplesOpc2kgaWTFkeKAnSBhdHRyaWLDunR1bW7DoWwgYXogw7xneWludMOpesWRaSBmZWzDvGxldCB2w6FsdG96w6FzIGZlbHTDqXRlbMOpbmVrIHN6ZXJrZXN6dMOpc2Uga8OpcGVybnnFkWrDqW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXpva2F0IGF6IG9wZXLDoXRvcm9rYXQsIGFtZWx5ZWsga2l2w6FsYXN6dGhhdMOzayBhIOKAnlRlcnZlemV0dCBrZXpkw6lzaSBpZMWR4oCdIGF0dHJpYsO6dHVtbsOhbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgZmVsdMOpdGVsw6luZWsgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYXogb3BlcsOhdG9yb2thdCwgYW1lbHllayBraXbDoWxhc3p0aGF0w7NrIGEg4oCeUHJpb3JpdMOhc2F6b25vc8OtdMOz4oCdIGF0dHJpYsO6dHVtbsOhbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgZmVsdMOpdGVsw6luZWsgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYXogb3BlcsOhdG9yb2thdCwgYW1lbHllayBraXbDoWxhc3p0aGF0w7NrIGEg4oCeS8OpcnQgaWTFkeKAnSBhdHRyaWLDunR1bW7DoWwgYXogw7xneWludMOpesWRaSBmZWzDvGxldCB2w6FsdG96w6FzIGZlbHTDqXRlbMOpbmVrIHN6ZXJrZXN6dMOpc2Uga8OpcGVybnnFkWrDqW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXpva2F0IGF6IG9wZXLDoXRvcm9rYXQsIGFtZWx5ZWsga2l2w6FsYXN6dGhhdMOzayBhIOKAnk11bmthbWVncmVuZGVsw6lzw7xneWludMOpesWRLWF6b25vc8OtdMOz4oCdIGF0dHJpYsO6dHVtbsOhbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgZmVsdMOpdGVsw6luZWsgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6b2thdCBheiBvcGVyw6F0b3Jva2F0LCBhbWVseWVrIGtpdsOhbGFzenRoYXTDs2sgYSDigJ5NdW5rYW1lZ3JlbmRlbMOpcy1zesOhbeKAnSBhdHRyaWLDunR1bW7DoWwgYXogw7xneWludMOpesWRaSBmZWzDvGxldCB2w6FsdG96w6FzIGZlbHTDqXRlbMOpbmVrIHN6ZXJrZXN6dMOpc2Uga8OpcGVybnnFkWrDqW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXpva2F0IGF6IG9wZXLDoXRvcm9rYXQsIGFtZWx5ZWsga2l2w6FsYXN6dGhhdMOzayBhIOKAnk11bmthbWVncmVuZGVsw6lzw6FsbGFwb3QtYXpvbm9zw610w7PigJ0gYXR0cmliw7p0dW1uw6FsIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgdsOhbHRvesOhcyBmZWx0w6l0ZWzDqW5layBzemVya2VzenTDqXNlIGvDqXBlcm55xZFqw6luLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYXogb3BlcsOhdG9yb2thdCwgYW1lbHllayBraXbDoWxhc3p0aGF0w7NrIGEg4oCeTXVua2FtZWdyZW5kZWzDqXMtY8OtbeKAnSBhdHRyaWLDunR1bW7DoWwgYXogw7xneWludMOpesWRaSBmZWzDvGxldCB2w6FsdG96w6FzIGZlbHTDqXRlbMOpbmVrIHN6ZXJrZXN6dMOpc2Uga8OpcGVybnnFkWrDqW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYXogb3BlcsOhdG9yb2thdCwgYW1lbHllayBraXbDoWxhc3p0aGF0w7NrIGEg4oCeTXVua2FtZWdyZW5kZWzDqXN0w61wdXMtYXpvbm9zw610w7PigJ0gYXR0cmliw7p0dW1uw6FsIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgdsOhbHRvesOhcyBmZWx0w6l0ZWzDqW5layBzemVya2VzenTDqXNlIGvDqXBlcm55xZFqw6luLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphICjDqXZla2JlbikgYXp0IGF6IGlkxZFzemFrb3QsIGFtZWx5YmVuIGEga2V6ZMOpc2kgw6lzIGJlZmVqZXrDqXNpIGlkxZFrIGtpdsOhbGFzenRoYXTDs2suJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGF0dHJpYnV0ZXMgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIHRvb2x0aXAgb2YgdGhlIHdvcmtvcmRlciBncmFwaCBpbiB0aGUgY2hhbmdlIHpvb20uIFRvIHNob3cgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGluIHRoZSB0b29sdGlwLCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGxpa2UgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGVneSBtdW5rYW1lZ3JlbmRlbMOpcyBtZWdqZWxlbsOtdGV0dCBhdHRyaWLDunR1bWFpdCBhIHbDoWx0b3rDoXNuYWd5w610w6FzYmFuIGzDqXbFkSBtdW5rYW1lZ3JlbmRlbMOpcy1ncmFmaWtvbiBidWJvcsOpa3PDumfDs2rDoWJhbi4gQWhob3osIGhvZ3kgYSBtdW5rYW1lZ3JlbmRlbMOpcyBkaW5hbWlrdXMgbWV6xZFpIG1lZ2plbGVuamVuZWsgYSBidWJvcsOpa3PDumfDs2JhbiwgbWVnIGtlbGwgYWRuaSBhem9rYXQgYSBrw7Z2ZXRrZXrFkWvDqXBwZW46IER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgc3RiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhIG1lZ2plbGVuw610ZXR0IG9zemxvcG9rYXQgYSB2w6FsdG96w6FzIFBTQSDDoXR0ZWtpbnTFkWrDqWJlbi4gRW5uZWsgYSBiZcOhbGzDrXTDoXNuYWsgbmluY3MgaGF0w6FzYSBheiBvc3psb3AgaGVseXpldMOpcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYSBtZWdqZWxlbsOtdGV0dCBvc3psb3Bva2F0IGEgdsOhbHRvenRhdMOhc2kgw7x0ZW10ZXJ2IMOhdHRla2ludMWRasOpYmVuLiBFbm5layBhIGJlw6FsbMOtdMOhc25hayBuaW5jcyBoYXTDoXNhIGF6IG9zemxvcCBoZWx5emV0w6lyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGEgbWVnamVsZW7DrXRldHQgb3N6bG9wb2thdCBhIHNhasOhdCBDQUIgw6F0dGVraW50xZFqw6liZW4uIEVubmVrIGEgYmXDoWxsw610w6FzbmFrIG5pbmNzIGhhdMOhc2EgYXogb3N6bG9wIGhlbHl6ZXTDqXJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGEgbWVnamVsZW7DrXRldHQgb3N6bG9wb2thdCBhIHNhasOhdCB2w6FsdG96w6Fzb2sgw6F0dGVraW50xZFqw6liZW4uIEVubmVrIGEgYmXDoWxsw610w6FzbmFrIG5pbmNzIGhhdMOhc2EgYXogb3N6bG9wIGhlbHl6ZXTDqXJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGEgbWVnamVsZW7DrXRldHQgb3N6bG9wb2thdCBhIHNhasOhdCBtdW5rYW1lZ3JlbmRlbMOpc2VrIMOhdHRla2ludMWRasOpYmVuLiBFbm5layBhIGJlw6FsbMOtdMOhc25hayBuaW5jcyBoYXTDoXNhIGF6IG9zemxvcCBoZWx5emV0w6lyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhIG1lZ2plbGVuw610ZXR0IG9zemxvcG9rYXQgYSBQSVIgw6F0dGVraW50xZFqw6liZW4uIEVubmVrIGEgYmXDoWxsw610w6FzbmFrIG5pbmNzIGhhdMOhc2EgYXogb3N6bG9wIGhlbHl6ZXTDqXJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYSBtZWdqZWxlbsOtdGV0dCBvc3psb3Bva2F0IGEgdsOhbHRvesOhc21lbmVkenNlciDDoXR0ZWtpbnTFkWrDqWJlbi4gRW5uZWsgYSBiZcOhbGzDrXTDoXNuYWsgbmluY3MgaGF0w6FzYSBheiBvc3psb3AgaGVseXpldMOpcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYSBtZWdqZWxlbsOtdGV0dCBvc3psb3Bva2F0IGEgdsOhbHRvesOhcyDDoXR0ZWtpbnTFkWrDqWJlbi4gRW5uZWsgYSBiZcOhbGzDrXTDoXNuYWsgbmluY3MgaGF0w6FzYSBheiBvc3psb3AgaGVseXpldMOpcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGEgbWVnamVsZW7DrXRldHQgb3N6bG9wb2thdCBhIHbDoWx0b3rDoXNrZXJlc8WRYmVuLiBFbm5layBhIGJlw6FsbMOtdMOhc25hayBuaW5jcyBoYXTDoXNhIGF6IG9zemxvcCBoZWx5emV0w6lyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhIG1lZ2plbGVuw610ZXR0IG9zemxvcG9rYXQgYXogw7xneWbDqWwgdsOhbHRvenRhdMOhc2kgw7x0ZW10ZXJ2IMOhdHRla2ludMWRasOpYmVuLiBFbm5layBhIGJlw6FsbMOtdMOhc25hayBuaW5jcyBoYXTDoXNhIGF6IG9zemxvcCBoZWx5emV0w6lyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGEgbWVnamVsZW7DrXRldHQgb3N6bG9wb2thdCBhIHNhYmxvbiDDoXR0ZWtpbnTFkWrDqWJlbi4gRW5uZWsgYSBiZcOhbGzDrXTDoXNuYWsgbmluY3MgaGF0w6FzYSBheiBvc3psb3AgaGVseXpldMOpcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNpZ25hbHMgZm9yIGVhY2ggSVRTTSBjaGFuZ2Ugc3RhdGUuJ30gPSAnTWVnaGF0w6Fyb3p6YSBhIHN6aWduw6Fsb2thdCBtaW5kZW4gZWd5ZXMgSVRTTSB2w6FsdG96w6FzIMOhbGxhcG90w6Fob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHRlbXBsYXRlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYSBzYWJsb250w61wdXNva2F0LCBhbWVseWVrIHN6xbFyxZFra8OpbnQgbGVzem5layBoYXN6bsOhbHZhIGEgc2FibG9uIMOhdHRla2ludMWRasOpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXpva2F0IGEgbXVua2FtZWdyZW5kZWzDqXMtw6FsbGFwb3Rva2F0LCBhbWVseWVrIHN6xbFyxZFra8OpbnQgbGVzem5layBoYXN6bsOhbHZhIGEgc2Fqw6F0IG11bmthbWVncmVuZGVsw6lzZWsgw6F0dGVraW50xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYSBtdW5rYW1lZ3JlbmRlbMOpcy3DoWxsYXBvdG9rYXQsIGFtZWx5ZWsgc3rFsXLFkWtrw6ludCBsZXN6bmVrIGhhc3puw6FsdmEgYSBQSVIgw6F0dGVraW50xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6b2thdCBhIG11bmthbWVncmVuZGVsw6lzLXTDrXB1c29rYXQsIGFtZWx5ZWsgYSBQSVIgw6F0dGVraW50xZEgbWVnamVsZW7DrXTDqXNoZXogbGVzem5layBoYXN6bsOhbHZhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICdNZWdoYXTDoXJvenphLCBob2d5IGF6IMOpcnRlc8OtdMOpc2VrZXQgZWwga2VsbC1lIGvDvGxkZW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnRWd5IHbDoWx0b3rDoXMgdMO2cmzDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICdBIHbDoWx0b3rDoXMgdMO2cmzDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICdBIG11bmthbWVncmVuZGVsw6lzIHTDtnJsw6lzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJ0VneSB2w6FsdG96w6FzdMO2cnTDqW5ldC1iZWplZ3l6w6lzIHLDqXN6bGV0ZWkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphLCBob2d5IGVneSDDvGd5aW50w6l6xZEga2ljc2Vyw6lsaGV0aS1lIGVneSBzdGF0aXN6dGlrYSBYLXRlbmdlbHnDqXQsIGhhIGzDqXRyZWhvem90dCBlZ3lldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyBkb25lIGZvciBjb25maWcgaXRlbSBjbGFzc2VzLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSwgaG9neSBhIGvDtnrDtnMgc3RhdGlzenRpa8OhayBtb2R1bCBlbMWRw6FsbMOtdGhhdC1lIHN0YXRpc3p0aWvDoWthdCBheiBlbHbDqWd6ZXR0IHbDoWx0b3rDoXNva3LDs2wgYSBrb25maWd1csOhY2nDs2VsZW0gb3N6dMOhbHlva27DoWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphLCBob2d5IGEga8O2esO2cyBzdGF0aXN6dGlrw6FrIG1vZHVsIGVsxZHDoWxsw610aGF0LWUgc3RhdGlzenRpa8Oha2F0IGVneSBpZMWRc3pha29uIGJlbMO8bGkgdsOhbHRvesOhc8OhbGxhcG90IGZyaXNzw610w6lzZWtyZSB2b25hdGtvesOzIHbDoWx0b3rDoXNva3LDs2wuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphLCBob2d5IGEga8O2esO2cyBzdGF0aXN6dGlrw6FrIG1vZHVsIGVsxZHDoWxsw610aGF0LWUgc3RhdGlzenRpa8Oha2F0IGEgdsOhbHRvesOhc29rIMOpcyBpbmNpZGVuc2plZ3llayBrw7Z6w7Z0dGkga2FwY3NvbGF0cmEgdm9uYXRrb3rDsyB2w6FsdG96w6Fzb2tyw7NsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSwgaG9neSBhIGvDtnrDtnMgc3RhdGlzenRpa8OhayBtb2R1bCBlbMWRw6FsbMOtdGhhdC1lIHN0YXRpc3p0aWvDoWthdCBhIHbDoWx0b3rDoXNva3LDs2wuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEsIGhvZ3kgYSBrw7Z6w7ZzIHN0YXRpc3p0aWvDoWsgbW9kdWwgZWzFkcOhbGzDrXRoYXQtZSBzdGF0aXN6dGlrw6FrYXQgZWd5IGvDqXLFkSDDoWx0YWwgbMOpdHJlaG96b3R0IHbDoWx0b3rDoXNrw6lyZWxlbSBqZWd5ZWsgc3rDoW3DoXLDs2wuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0F6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgdsOhbHRvesOhcyBueW9tdGF0w6FzIGvDqXBlcm55xZFqw6luIG1lZ2plbGVuw610ZXR0IGRpbmFtaWt1cyBtZXrFkWsgKHbDoWx0b3rDoXNva2hveiDDqXMgbXVua2FtZWdyZW5kZWzDqXNla2hleikuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQXogw7xneWludMOpesWRaSBmZWzDvGxldCB2w6FsdG96w6FzIGhvenrDoWFkw6FzYSBrw6lwZXJuecWRasOpbiBtZWdqZWxlbsOtdGV0dCBkaW5hbWlrdXMgbWV6xZFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdBeiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbiBtZWdqZWxlbsOtdGV0dCBkaW5hbWlrdXMgbWV6xZFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0F6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgdsOhbHRvesOhcyBrZXJlc8Opc2Uga8OpcGVybnnFkWrDqW4gbWVnamVsZW7DrXRldHQgZGluYW1pa3VzIG1lesWRay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQXogw7xneWludMOpesWRaSBmZWzDvGxldCB2w6FsdG96w6FzIG5hZ3nDrXTDoXNhIGvDqXBlcm55xZFqw6luIG1lZ2plbGVuw610ZXR0IGRpbmFtaWt1cyBtZXrFkWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQXogw7xneWludMOpesWRaSBmZWzDvGxldCBtdW5rYW1lZ3JlbmRlbMOpcyBob3p6w6FhZMOhc2Ega8OpcGVybnnFkWrDqW4gbWVnamVsZW7DrXRldHQgZGluYW1pa3VzIG1lesWRay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQXogw7xneWludMOpesWRaSBmZWzDvGxldCBtdW5rYW1lZ3JlbmRlbMOpcyBzemVya2VzenTDqXNlIGvDqXBlcm55xZFqw6luIG1lZ2plbGVuw610ZXR0IGRpbmFtaWt1cyBtZXrFkWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQXogw7xneWludMOpesWRaSBmZWzDvGxldCBtdW5rYW1lZ3JlbmRlbMOpcyBqZWxlbnTDqXNlIGvDqXBlcm55xZFqw6luIG1lZ2plbGVuw610ZXR0IGRpbmFtaWt1cyBtZXrFkWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0F6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgbXVua2FtZWdyZW5kZWzDqXMgbmFnecOtdMOhc2Ega8OpcGVybnnFkWrDqW4gbWVnamVsZW7DrXRldHQgZGluYW1pa3VzIG1lesWRay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnRGluYW1pa3VzIG1lesWRIGVzZW3DqW55bW9kdWwgYSBmZWx0w6l0ZWxlayBmcmlzc8OtdMOpc8OpbmVrIGtlemVsw6lzw6loZXosIGhhIGRpbmFtaWt1cyBtZXrFkWsga2Vyw7xsbmVrIGhvenrDoWFkw6FzcmEsIGZyaXNzw610w6lzcmUgdmFneSB0w7ZybMOpc3JlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJ0VneSB2w6FsdG96w6FzIHN6ZXJrZXN6dMOpc2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICdBIHbDoWx0b3rDoXMgc3plcmtlc3p0w6lzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJ0EgdsOhbHRvesOhcyBmZWx0w6l0ZWxlaW5layBzemVya2VzenTDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAnQSBtdW5rYW1lZ3JlbmRlbMOpcyBzemVya2VzenTDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJ0VuZ2Vkw6lseWV6aSBhIGxlZ2tpc2ViYiB2w6FsdG96w6Fzc3rDoW1sw6Fsw7MgbcOpcmV0ZXQgKGhhIOKAnkRhdGXigJ0gbGV0dCBraXbDoWxhc3p0dmEgYXogSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yIGJlw6FsbMOtdMOhc2Frw6ludCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnVsOhbHRvesOhc29rIGVsxZFqZWd5esOpc2kgdGVydmUuIEEgasOzdsOhaGFneW90dCB2w6FsdG96w6Fzb2sgw6F0dGVraW50w6lzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnRWzFkXptw6lueW5hZ3nDrXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICdJVFNNIHbDoWx0b3rDoXMgQ0FCIHNhYmxvbm9rLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICdJVFNNIHbDoWx0b3rDoXNmZWx0w6l0ZWwgc3plcmtlc3p0w6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnSVRTTSB2w6FsdG96w6FzZmVsdMOpdGVsIMOhdHRla2ludMOpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICdJVFNNIHbDoWx0b3rDoXNtZW5lZHpzZXIgw6F0dGVraW50w6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnSVRTTSB2w6FsdG96w6FzIMOpcnRlc8OtdMOpc2VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFBJUiBPdmVydmlldy4nfSA9ICdJVFNNIHbDoWx0b3rDoXMgUElSIMOhdHRla2ludMOpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2Ugbm90aWZpY2F0aW9uIHJ1bGVzJ30gPSAnSVRTTSB2w6FsdG96w6FzIMOpcnRlc8OtdMOpc2kgc3phYsOhbHlvayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICdJVFNNIHbDoWx0b3rDoXNvayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJ0lUU00gc2Fqw6F0IENBQiDDoXR0ZWtpbnTDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJ0lUU00gc2Fqw6F0IHbDoWx0b3rDoXNvayDDoXR0ZWtpbnTDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJ0lUU00gc2Fqw6F0IG11bmthbWVncmVuZGVsw6lzZWsgw6F0dGVraW50w6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICdJVFNNIHNhYmxvbiB0w7ZybMOpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICdJVFNNIHNhYmxvbiBzemVya2VzenTDqXMgQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICdJVFNNIHNhYmxvbiBzemVya2VzenTDqXMgdGFydGFsb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICdJVFNNIHNhYmxvbiBzemVya2VzenTDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnSVRTTSBzYWJsb24gw6F0dGVraW50w6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJ0lUU00gZXNlbcOpbnltb2R1bCwgYW1lbHkgdMO2cmxpIGEgZmVsdMOpdGVsZWtldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJ0lUU00gZXNlbcOpbnltb2R1bCwgYW1lbHkgdMO2cmxpIGEgZ3lvcnPDrXTDs3TDoXJhdCBlZ3kgZXN6a8O2enTDoXJuw6FsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICdJVFNNIGVzZW3DqW55bW9kdWwsIGFtZWx5IHTDtnJsaSBhIHbDoWx0b3rDoXNvayBlbMWRem3DqW55ZWl0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJ0lUU00gZXNlbcOpbnltb2R1bCwgYW1lbHkgZmVsdMOpdGVsZWtldCBpbGxlc3p0IMOpcyBtxbF2ZWxldGVrZXQgaGFqdCB2w6lncmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICdJVFNNIGVzZW3DqW55bW9kdWwsIGFtZWx5IMOpcnRlc8OtdMOpc2VrZXQga8O8bGQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJ0lUU00gZXNlbcOpbnltb2R1bCwgYW1lbHkgZnJpc3PDrXRpIGEgdsOhbHRvesOhc29rIGVsxZF6bcOpbnllaXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJ0lUU00gZXNlbcOpbnltb2R1bCwgYW1lbHkgZnJpc3PDrXRpIGEgZmVsdMOpdGVsZWsgZWzFkXptw6lueWVpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIHdvcmtvcmRlcnMuJ30gPSAnSVRTTSBlc2Vtw6lueW1vZHVsLCBhbWVseSBmcmlzc8OtdGkgYSBtdW5rYW1lZ3JlbmRlbMOpc2VrIGVsxZF6bcOpbnllaXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nfSA9ICdJVFNNIGVzZW3DqW55bW9kdWwgYSBtdW5rYW1lZ3JlbmRlbMOpcyBzesOhbWFpbmFrIMO6anJhc3rDoW1vbMOhc8OhaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICdJVFNNIGVzZW3DqW55bW9kdWwgYSBtdW5rYW1lZ3JlbmRlbMOpc2VrIHTDqW55bGVnZXMga2V6ZMOpc2kgw6lzIGJlZmVqZXrDqXNpIGlkZWrDqW5layBiZcOhbGzDrXTDoXPDoWhvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJ0lUU00gdsOhbHRvesOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnSVRTTSBtdW5rYW1lZ3JlbmRlbMOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJ0hhIGEgZ3lha29yaXPDoWcg4oCecmVuZHN6ZXJlc2Vu4oCdLCBha2tvciBiZcOhbGzDrXRoYXRqYSwgaG9neSBheiDDqXJ0ZXPDrXTDqXNlayBtaWx5ZW4gZ3lha3JhbiBsZWd5ZW5layBlbGvDvGxkdmUgKG1pbmRlbiBYLiDDs3LDoWJhbikuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICdNw6FzaWsgb2JqZWt0dW0gw7Zzc3pla2FwY3NvbMOhc2EgYSB2w6FsdG96w6Fzc2FsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSB3b3Jrb3JkZXIuJ30gPSAnTcOhc2lrIG9iamVrdHVtIMO2c3N6ZWthcGNzb2zDoXNhIGEgbXVua2FtZWdyZW5kZWzDqXNzZWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnQXogw7Zzc3plcyB2w6FsdG96w6FzZXNlbcOpbnkgbGlzdMOhamEsIGFtZWx5ZWsgbWVnamVsZW5uZWsgYSBncmFmaWt1cyBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJ0F6IMO2c3N6ZXMgbXVua2FtZWdyZW5kZWzDqXMtZXNlbcOpbnkgbGlzdMOhamEsIGFtZWx5ZWsgbWVnamVsZW5uZWsgYSBncmFmaWt1cyBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJ0NBQi10YWdvayBraWtlcmVzw6lzZSBheiBhdXRvbWF0aWt1cyBraWVnw6lzesOtdMOpc2hlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnw5xneWludMOpesWRayBraWtlcmVzw6lzZSBheiBhdXRvbWF0aWt1cyBraWVnw6lzesOtdMOpcyBoYXN6bsOhbGF0w6Fob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnSVRTTSB2w6FsdG96w6FzbWVuZWR6c21lbnQgw6FsbGFwb3Rnw6lwIGtlemVsw6lzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnQSBrYXRlZ8OzcmlhIOKGlCBoYXTDoXMg4oaUIHByaW9yaXTDoXMgbcOhdHJpeCBrZXplbMOpc2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICdFZ3kgbW9kdWwgYW5uYWsgZWxsZW7FkXJ6w6lzw6loZXosIGhvZ3kgYSDigJ5NdW5rYW1lZ3JlbmRlbMOpcyBob3p6w6FhZMOhc2HigJ0gdmFneSBhIOKAnk11bmthbWVncmVuZGVsw6lzIGhvenrDoWFkw6FzYSBzYWJsb25iw7Ns4oCdIG9zenTDoWx5b2thdCBlbmdlZMOpbHllem5pIGtlbGwtZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICdFZ3kgbW9kdWwgYSBDQUItdGFnb2sgZWxsZW7FkXJ6w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnRWd5IG1vZHVsIGF6IMO8Z3lpbnTDqXrFkSBlbGxlbsWRcnrDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICdFZ3kgbW9kdWwgYSB2w6FsdG96w6FzLcO2c3N6ZcOhbGzDrXTDsyBlbGxlbsWRcnrDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICdFZ3kgbW9kdWwgYSB2w6FsdG96w6FzbWVuZWR6c2VyIGVsbGVuxZFyesOpc8OpaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICdFZ3kgbW9kdWwgYSBtdW5rYW1lZ3JlbmRlbMOpcyDDvGd5aW50w6l6xZFqw6luZWsgZWxsZW7FkXJ6w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnRWd5IG1vZHVsIGFubmFrIGVsbGVuxZFyesOpc8OpaGV6LCBob2d5IHZhbi1lIG11bmthbWVncmVuZGVsw6lzLcO8Z3lpbnTDqXrFkSBiZcOhbGzDrXR2YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAnRWd5IG1vZHVsIGFubmFrIGVsbGVuxZFyesOpc8OpaGV6LCBob2d5IGF6IMO8Z3lpbnTDqXrFkXQgdGFydGFsbWF6emEtZSBhIGJlw6FsbMOtdMOhc2kgbGlzdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBzaG93IGEgbGluayB0byBjcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4gVGhlIHRpY2tldCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIG5ldyBjaGFuZ2UuJ30gPQogICAgICAgICdFZ3kgbW9kdWwgZWd5IGhpdmF0a296w6FzIG1lZ2plbGVuw610w6lzw6loZXosIGFtZWx5IGVneSB2w6FsdG96w6FzIGzDqXRyZWhvesOhc8OhcmEgbXV0YXQgZWJixZFsIGEgamVneWLFkWwuIEEgamVneSBhdXRvbWF0aWt1c2FuIMO2c3N6ZSBsZXN6IGthcGNzb2x2YSBheiDDumogdsOhbHRvesOhc3NhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QuJ30gPSAnSWTFkXLDqXMgw6F0aGVseWV6w6lzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJ01pbmRlbiBtdW5rYW1lZ3JlbmRlbMOpcyDDoXRoZWx5ZXrDqXNlIGF6IGlkxZFiZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICfDmmogKHNhYmxvbmLDs2wpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnQ3NhayBlemVuIGNzb3BvcnRvayBmZWxoYXN6bsOhbMOzaW5hayB2YW4gam9nb3N1bHRzw6FnYSBheiDigJ5JVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXPigJ0gYmXDoWxsw610w6FzYmFuIG1lZ2hhdMOhcm96b3R0IGplZ3l0w61wdXNvayBoYXN6bsOhbGF0w6FyYSwgaGEgYSDigJ5UaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGXigJ0gc3pvbGfDoWx0YXTDoXMgZW5nZWTDqWx5ZXp2ZSB2YW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnRWd5w6liIGJlw6FsbMOtdMOhc29rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJ30gPSAnQXogw7Zzc3plcyB2w6FsdG96w6FzIMOhdHRla2ludMOpc2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUid9ID0gJ1BJUic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSd9ID0gJ1BJUiAobWVndmFsw7Nzw610w6FzIHV0w6FuaSB2aXpzZ8OhbGF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQU0EnfSA9ICdQU0EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBvYmplY3QgaW4gdGhlIHByZWZlcmVuY2UgdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWt0dW0gcGFyYW3DqXRlcmVpIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgYmXDoWxsw610w6FzIG7DqXpldMOpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcmFtw6l0ZXJlayBhIGtpcyB2w6FsdG96w6FzIMOhdHRla2ludMWRIG9sZGFsYWlob3ogKGFtZWx5ZWtiZW4gYSB2w6FsdG96w6Fzb2sgbWVnamVsZW5uZWspLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJ1bDqWdyZWhhanRqYSBhIGJlw6FsbMOtdG90dCBtxbF2ZWxldGV0IG1pbmRlbiBlc2Vtw6lueW7DqWwgKG1pbnQgZWd5IG1lZ2jDrXbDsykgbWluZGVuIGVneWVzIGJlw6FsbMOtdG90dCB3ZWJzem9sZ8OhbHRhdMOhc2hvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJ1RlcnZlemV0dCBiZWZlamV6w6lzaSBpZMWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJ1RlcnZlemV0dCBrZXpkw6lzaSBpZMWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAnQSB2w6FsdG96w6FzIG55b210YXTDoXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJ0EgbXVua2FtZWdyZW5kZWzDqXMgbnlvbXRhdMOhc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJ1RlcnZlemV0dCBzem9sZ8OhbHRhdMOhc2Vsw6lyaGV0xZFzw6lnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJ1RlcnZlemV0dCBzem9sZ8OhbHRhdMOhc2Vsw6lyaGV0xZFzw6lnIChQU0EpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJ0EgdsOhbHRvesOhcyB0ZXJ2ZXpldHQgc3pvbGfDoWx0YXTDoXNlbMOpcmhldMWRc8OpZ2UgKFBTQSkuIEEgasOzdsOhaGFneW90dCB2w6FsdG96w6Fzb2sgw6lzIGF6b2sgc3pvbGfDoWx0YXTDoXNhaW5hayDDoXR0ZWtpbnTDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJ0vDqXJ0IGlkxZEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgYW5uYWsgw6lyZGVrw6liZW4sIGhvZ3kgZWd5IMO8Z3lpbnTDqXrFkSBmZWx2ZWhlc3NlbiBlZ3kgbXVua2FtZWdyZW5kZWzDqXN0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayBheiDDtnNzemVzIHbDoWx0b3rDoXMgw6F0dGVraW50xZFqw6luZWsgaG96esOhZsOpcsOpc8OpaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICdBIHN6w7xrc8OpZ2VzIGpvZ29zdWx0c8OhZ29rIGVneSBtdW5rYW1lZ3JlbmRlbMOpcyBob3p6w6FhZMOhc8OhaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgZWd5IG11bmthbWVncmVuZGVsw6lzIMO8Z3lpbnTDqXrFkWrDqW5layBtZWd2w6FsdG96dGF0w6Fzw6Fob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICdBIHN6w7xrc8OpZ2VzIGpvZ29zdWx0c8OhZ29rIGVneSBzYWJsb24gbMOpdHJlaG96w6Fzw6Fob3ogZWd5IHbDoWx0b3rDoXNiw7NsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2VzXCcgQ0FCLid9ID0KICAgICAgICAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayBlZ3kgc2FibG9uIGzDqXRyZWhvesOhc8OhaG96IGEgdsOhbHRvesOhc29rIENBQi1qw6lixZFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayBlZ3kgc2FibG9uIGzDqXRyZWhvesOhc8OhaG96IGVneSBtdW5rYW1lZ3JlbmRlbMOpc2LFkWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayB2w6FsdG96w6Fzb2sgbMOpdHJlaG96w6Fzw6Fob3ogc2FibG9ub2tiw7NsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgdsOhbHRvesOhc29rIGzDqXRyZWhvesOhc8OhaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgZWd5IHNhYmxvbiB0w7ZybMOpc8OpaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICdBIHN6w7xrc8OpZ2VzIGpvZ29zdWx0c8OhZ29rIGVneSBtdW5rYW1lZ3JlbmRlbMOpcyB0w7ZybMOpc8OpaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgdsOhbHRvesOhc29rIHTDtnJsw6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgZWd5IHNhYmxvbiBzemVya2VzenTDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgZWd5IG11bmthbWVncmVuZGVsw6lzIHN6ZXJrZXN6dMOpc8OpaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICdBIHN6w7xrc8OpZ2VzIGpvZ29zdWx0c8OhZ29rIHbDoWx0b3rDoXNvayBzemVya2VzenTDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayB2w6FsdG96w6Fzb2sgZmVsdMOpdGVsZWluZWsgc3plcmtlc3p0w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgZWd5IHNhYmxvbiB0YXJ0YWxtw6FuYWsgc3plcmtlc3p0w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgaW52b2x2ZWQgcGVyc29ucyBvZiBhIGNoYW5nZS4nfSA9CiAgICAgICAgJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgZWd5IHbDoWx0b3rDoXNiYW4gw6lyaW50ZXR0IHN6ZW3DqWx5ZWsgc3plcmtlc3p0w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayBhIHbDoWx0b3rDoXNvayDDoXRoZWx5ZXrDqXPDqWhleiBheiBpZMWRYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgZWd5IHbDoWx0b3rDoXMga2lueW9tdGF0w6Fzw6Fob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICdBIHN6w7xrc8OpZ2VzIGpvZ29zdWx0c8OhZ29rIHbDoWx0b3rDoXNvayB2aXNzemHDoWxsw610w6Fzw6Fob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBhIHdvcmtvcmRlci4nfSA9ICdBIHN6w7xrc8OpZ2VzIGpvZ29zdWx0c8OhZ29rIGVneSBtdW5rYW1lZ3JlbmRlbMOpcyBtZWd0ZWtpbnTDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGNoYW5nZXMuJ30gPSAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayB2w6FsdG96w6Fzb2sgbWVndGVraW50w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgYSBDQUIgbWVtYmVyLid9ID0KICAgICAgICAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayBhem9uIHbDoWx0b3rDoXNvayBsaXN0w6Fqw6FuYWsgbWVndGVraW50w6lzw6loZXosIGFob2wgYSBmZWxoYXN6bsOhbMOzIGVneSBDQUItdGFnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgYXpvbiB2w6FsdG96w6Fzb2sgbGlzdMOhasOhbmFrIG1lZ3Rla2ludMOpc8OpaGV6LCBhaG9sIGEgZmVsaGFzem7DoWzDsyBhIHbDoWx0b3rDoXNtZW5lZHpzZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBvdmVydmlldyBvdmVyIGFsbCB0ZW1wbGF0ZXMuJ30gPSAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayBheiDDtnNzemVzIHNhYmxvbiDDoXR0ZWtpbnTFkWrDqW5layBtZWd0ZWtpbnTDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayB2w6FsdG96w6Fzb2sgZmVsdMOpdGVsZWluZWsgbWVndGVraW50w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICdBIHN6w7xrc8OpZ2VzIGpvZ29zdWx0c8OhZ29rIGVneSB2w6FsdG96w6FzIGVsxZF6bcOpbnllaW5layBtZWd0ZWtpbnTDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgZWd5IG11bmthbWVncmVuZGVsw6lzIGVsxZF6bcOpbnllaW5layBtZWd0ZWtpbnTDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJ30gPSAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayBlZ3kgdsOhbHRvesOhcyBlbMWRem3DqW55ZWkgbmFnecOtdMOhc8OhbmFrIG1lZ3Rla2ludMOpc8OpaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgZWd5IG11bmthbWVncmVuZGVsw6lzIGVsxZF6bcOpbnllaSBuYWd5w610w6Fzw6FuYWsgbWVndGVraW50w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayBhIHbDoWx0b3p0YXTDoXNpIMO8dGVtdGVydiBsaXN0w6Fqw6FuYWsgbWVndGVraW50w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgYSB2w6FsdG96w6FzIFBTQSBsaXN0w6Fqw6FuYWsgbWVndGVraW50w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICdBIHN6w7xrc8OpZ2VzIGpvZ29zdWx0c8OhZ29rIGVneSBrw7Z6ZWxnxZEgUElSLXJlbCAobWVndmFsw7Nzw610w6FzIHV0w6FuaSB2aXpzZ8OhbGF0dGFsKSByZW5kZWxrZXrFkSB2w6FsdG96w6Fzb2sgbGlzdMOhasOhbmFrIG1lZ3Rla2ludMOpc8OpaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayBhIHNhasOhdCB2w6FsdG96w6Fzb2sgbGlzdMOhasOhbmFrIG1lZ3Rla2ludMOpc8OpaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnQSBzesO8a3PDqWdlcyBqb2dvc3VsdHPDoWdvayBhIHNhasOhdCBtdW5rYW1lZ3JlbmRlbMOpc2VrIGxpc3TDoWrDoW5hayBtZWd0ZWtpbnTDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICdBIHN6w7xrc8OpZ2VzIGpvZ29zdWx0c8OhZ29rIGVneSBqZWxlbnTDqXMgw61yw6Fzw6Fob3ogYSBtdW5rYW1lZ3JlbmRlbMOpc27DqWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICdFZ3kgdsOhbHRvesOhcyDDqXMgYSBtdW5rYW1lZ3JlbmRlbMOpc2VpbmVrIHZpc3N6YcOhbGzDrXTDoXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJ0EgdsOhbHRvesOhcyDDqXMgbXVua2FtZWdyZW5kZWzDqXNlaW5layB2aXNzemHDoWxsw610w6FzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJ0ZlbGFkYXQgZnV0dGF0w6FzYSBhbm5hayBlbGxlbsWRcnrDqXPDqWhleiwgaG9neSBhIG1lZ2hhdMOhcm96b3R0IGlkxZFwb250b2thdCBlbMOpcnTDqWstZSBhIHbDoWx0b3rDoXNva2JhbiDDqXMgYSBtdW5rYW1lZ3JlbmRlbMOpc2VrYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJ1bDoWx0b3rDoXMgbWVudMOpc2Ugc2FibG9ua8OpbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnTXVua2FtZWdyZW5kZWzDqXMgbWVudMOpc2Ugc2FibG9ua8OpbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnw5x0ZW10ZXJ2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJ0VneSBtdW5rYW1lZ3JlbmRlbMOpcyBsw6l0cmVob3rDoXNhIHV0w6FuaSBrw6lwZXJuecWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnVsOhbHRvesOhc29rIGtlcmVzw6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICdWw6FsdG96w6Fzb2sga2VyZXPDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lid9ID0KICAgICAgICAnS2l2w6FsYXN6dGphIGEgdsOhbHRvesOhc3N6w6FtIGVsxZHDoWxsw610w7MgbW9kdWx0LiBBeiDigJ5BdXRvSW5jcmVtZW504oCdIG7DtnZlbGkgYSB2w6FsdG96w6Fzc3rDoW1vdCwgYWhvbCBhIHJlbmRzemVyLWF6b25vc8OtdMOzdCDDqXMgYSBzesOhbWzDoWzDs3QgYSBSZW5kc3plcklELnN6w6FtbMOhbMOzIGZvcm3DoXR1bW1hbCBoYXN6bsOhbGphIChww6lsZMOhdWwgMTAwMTE4LCAxMDAxMTkpLiBBIOKAnkRhdGXigJ0gw6lydMOpa2tlbCBhIHbDoWx0b3rDoXNzesOhbW9rYXQgYXogYWt0dcOhbGlzIGTDoXR1bSDDqXMgYSBzesOhbWzDoWzDsyBmb2dqYSBlbMWRw6FsbMOtdGFuaS4gQSBmb3Jtw6F0dW0gw61neSBuw6l6IGtpOiDDiXYuSMOzbmFwLk5hcC5zesOhbWzDoWzDsyAocMOpbGTDoXVsIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIpLiBBIOKAnkRhdGVDaGVja3N1beKAnSBoYXN6bsOhbGF0w6F2YWwgYSBzesOhbWzDoWzDsyBlbGxlbsWRcnrFkcO2c3N6ZWdrw6ludCBsZXN6IGhvenrDoWbFsXp2ZSBhIGTDoXR1bSDDqXMgYSByZW5kc3plci1hem9ub3PDrXTDsyBzesO2dmVnw6loZXouIEF6IGVsbGVuxZFyesWRw7Zzc3plZyBuYXBvbnRhIGZvZyDDoXRmb3JkdWxuaS4gQSBmb3Jtw6F0dW0gw61neSBuw6l6IGtpOiDDiXYuSMOzbmFwLk5hcC5SZW5kc3plcklELlN6w6FtbMOhbMOzLkVsbMOWc3N6ZWcgKHDDqWxkw6F1bCAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICdBeiDDvGd5aW50w6l6xZEgYmXDoWxsw610w6FzYSBhIG11bmthbWVncmVuZGVsw6lzaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0EgYmXDoWd5YXpvdHQgSFRNTCBtZXrFkWsgYWxhcMOpcnRlbG1lemV0dCBtYWdhc3PDoWfDoW5hayBiZcOhbGzDrXTDoXNhIChrw6lwcG9udGJhbikgYXogw7xneWludMOpesWRaSBmZWzDvGxldCB2w6FsdG96w6FzbmFnecOtdMOhcyBrw6lwZXJuecWRasOpbiDDqXMgbXVua2FtZWdyZW5kZWzDqXMtbmFnecOtdMOhcyBrw6lwZXJuecWRasOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdBIGJlw6FneWF6b3R0IEhUTUwgbWV6xZFrIGxlZ25hZ3lvYmIgbWFnYXNzw6Fnw6FuYWsgYmXDoWxsw610w6FzYSAoa8OpcHBvbnRiYW4pIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgdsOhbHRvesOhc25hZ3nDrXTDoXMga8OpcGVybnnFkWrDqW4gw6lzIG11bmthbWVncmVuZGVsw6lzLW5hZ3nDrXTDoXMga8OpcGVybnnFkWrDqW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkF1dG9JbmNyZW1lbnQiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBEZWZhdWx0IGlzIDUsIHRoaXMgbWVhbnMgdGhlIGNvdW50ZXIgc3RhcnRzIGZyb20gMTAwMDAuJ30gPQogICAgICAgICdCZcOhbGzDrXRqYSBhIGxlZ2tpc2ViYiB2w6FsdG96w6Fzc3rDoW1sw6Fsw7MgbcOpcmV0ZXQgKGhhIOKAnkF1dG9JbmNyZW1lbnTigJ0gbGV0dCBraXbDoWxhc3p0dmEgSVRTTSB2w6FsdG96w6FzOjpTesOhbWVsxZHDoWxsw610w7Nrw6ludCkgQXogYWxhcMOpcnRlbG1lemV0dCA1LCBhbWVseSBhenQgamVsZW50aSwgaG9neSBhIHN6w6FtbMOhbMOzIDEwMDAwLXTFkWwgZm9nIGluZHVsbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnQmXDoWxsw610amEgYXogw6FsbGFwb3Rnw6lwZXQgYSB2w6FsdG96w6Fzb2tuw6FsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJ0Jlw6FsbMOtdGphIGF6IMOhbGxhcG90Z8OpcGV0IGEgbXVua2FtZWdyZW5kZWzDqXNla27DqWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJ0VneSBqZWzDtmzFkW7DqWd5emV0ZXQgamVsZW7DrXQgbWVnIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgbXVua2FtZWdyZW5kZWzDqXMgc3plcmtlc3p0w6lzZSBrw6lwZXJuecWRasOpbiwgYW1lbHkgYXp0IGhhdMOhcm96emEgbWVnLCBob2d5IGEga8O2dmV0a2V6xZEgbXVua2FtZWdyZW5kZWzDqXNla2V0IGlzIMOhdCBrZWxsLWUgaGVseWV6bmksIGhhIGVneSBtdW5rYW1lZ3JlbmRlbMOpcyBtw7Nkb3N1bHQgw6lzIGEgdGVydmV6ZXR0IGJlZmVqZXrDqXNpIGlkxZEgbWVndsOhbHRvem90dC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRWd5IGhpdmF0a296w6FzdCBqZWxlbsOtdCBtZWcgYSBtZW7DvGJlbiwgYW1lbHkgbGVoZXTFkXbDqSB0ZXN6aSBhIG11bmthbWVncmVuZGVsw6lzIMO8Z3lpbnTDqXrFkWrDqW5layBtZWd2w6FsdG96dGF0w6Fzw6F0IGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgbXVua2FtZWdyZW5kZWzDqXPDqW5layBuYWd5w610w6FzaSBuw6l6ZXTDqW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VneSBoaXZhdGtvesOhc3QgamVsZW7DrXQgbWVnIGEgbWVuw7xiZW4sIGFtZWx5IGxlaGV0xZF2w6kgdGVzemkgZWd5IHbDoWx0b3rDoXMgc2FibG9ua8OpbnQgdmFsw7MgbWVnaGF0w6Fyb3rDoXPDoXQgYSB2w6FsdG96w6FzIG5hZ3nDrXTDoXMgbsOpemV0w6liZW4gYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFZ3kgaGl2YXRrb3rDoXN0IGplbGVuw610IG1lZyBhIG1lbsO8YmVuLCBhbWVseSBsZWhldMWRdsOpIHRlc3ppIGVneSBtdW5rYW1lZ3JlbmRlbMOpcyBzYWJsb25rw6ludCB2YWzDsyBtZWdoYXTDoXJvesOhc8OhdCBhIG11bmthbWVncmVuZGVsw6lzIG5hZ3nDrXRvdHQgbsOpemV0w6liZW4gYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VneSBoaXZhdGtvesOhc3QgamVsZW7DrXQgbWVnIGEgbWVuw7xiZW4sIGFtZWx5IGxlaGV0xZF2w6kgdGVzemkgZWd5IG11bmthbWVncmVuZGVsw6lzIGplbGVudMOpc8OpbmVrIHN6ZXJrZXN6dMOpc8OpdCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IG11bmthbWVncmVuZGVsw6lzw6luZWsgbmFnecOtdMOhc2kgbsOpemV0w6luLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFZ3kgaGl2YXRrb3rDoXN0IGplbGVuw610IG1lZyBhIG1lbsO8YmVuLCBhbWVseSBsZWhldMWRdsOpIHRlc3ppIGVneSB2w6FsdG96w6FzIMO2c3N6ZWthcGNzb2zDoXPDoXQgZWd5IG3DoXNpayBvYmpla3R1bW1hbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IHbDoWx0b3rDoXMgbmFnecOtdMOhcyBuw6l6ZXTDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VneSBoaXZhdGtvesOhc3QgamVsZW7DrXQgbWVnIGEgbWVuw7xiZW4sIGFtZWx5IGxlaGV0xZF2w6kgdGVzemkgZWd5IG11bmthbWVncmVuZGVsw6lzIMO2c3N6ZWthcGNzb2zDoXPDoXQgZWd5IG3DoXNpayBvYmpla3R1bW1hbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IG11bmthbWVncmVuZGVsw6lzw6luZWsgbmFnecOtdMOhc2kgbsOpemV0w6luLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRWd5IGhpdmF0a296w6FzdCBqZWxlbsOtdCBtZWcgYSBtZW7DvGJlbiwgYW1lbHkgbGVoZXTFkXbDqSB0ZXN6aSBlZ3kgdsOhbHRvesOhcyBpZMWRcsOpc8OpbmVrIMOhdGhlbHllesOpc8OpdCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4gYXogZWxlbSBuYWd5w610w6FzaSBuw6l6ZXTDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRha2luZyBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRWd5IGhpdmF0a296w6FzdCBqZWxlbsOtdCBtZWcgYSBtZW7DvGJlbiwgYW1lbHkgbGVoZXTFkXbDqSB0ZXN6aSBlZ3kgbXVua2FtZWdyZW5kZWzDqXMgZmVsdsOpdGVsw6l0IGFubmFrIG5hZ3nDrXTDoXNpIG7DqXpldMOpbiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGNvbmRpdGlvbnMgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VneSBoaXZhdGtvesOhc3QgamVsZW7DrXQgbWVnIGEgbWVuw7xiZW4gZWd5IHbDoWx0b3rDoXMgZmVsdMOpdGVsZWluZWsgZWzDqXLDqXPDqWhleiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4gYXogZWxlbSBuYWd5w610w6FzaSBuw6l6ZXTDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRWd5IGhpdmF0a296w6FzdCBqZWxlbsOtdCBtZWcgYSBtZW7DvGJlbiBlZ3kgdsOhbHRvesOhcyBlbMWRem3DqW55ZWluZWsgZWzDqXLDqXPDqWhleiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4gYXogZWxlbSBuYWd5w610w6FzaSBuw6l6ZXTDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRWd5IGhpdmF0a296w6FzdCBqZWxlbsOtdCBtZWcgYSBtZW7DvGJlbiBlZ3kgbXVua2FtZWdyZW5kZWzDqXMgZWzFkXptw6lueWVpbmVrIGhvenrDoWbDqXLDqXPDqWhleiBhbm5hayBuYWd5w610w6FzaSBuw6l6ZXTDqW4gYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFZ3kgaGl2YXRrb3rDoXN0IGplbGVuw610IG1lZyBhIG1lbsO8YmVuIGVneSBtdW5rYW1lZ3JlbmRlbMOpcyBob3p6w6FhZMOhc8OhaG96IGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgdsOhbHRvesOhc25hZ3nDrXTDoXMgbsOpemV0w6luLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VneSBoaXZhdGtvesOhc3QgamVsZW7DrXQgbWVnIGEgbWVuw7xiZW4gZWd5IHbDoWx0b3rDoXMgdMO2cmzDqXPDqWhleiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4gYXogZWxlbSBuYWd5w610w6FzaSBuw6l6ZXTDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFZ3kgaGl2YXRrb3rDoXN0IGplbGVuw610IG1lZyBhIG1lbsO8YmVuIGVneSBtdW5rYW1lZ3JlbmRlbMOpcyB0w7ZybMOpc8OpaGV6IGFubmFrIG5hZ3nDrXTDoXNpIG7DqXpldMOpbiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFZ3kgaGl2YXRrb3rDoXN0IGplbGVuw610IG1lZyBhIG1lbsO8YmVuIGVneSB2w6FsdG96w6FzIHN6ZXJrZXN6dMOpc8OpaGV6IGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXRlbiBheiBlbGVtIG5hZ3nDrXTDoXNpIG7DqXpldMOpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRWd5IGhpdmF0a296w6FzdCBqZWxlbsOtdCBtZWcgYSBtZW7DvGJlbiBlZ3kgbXVua2FtZWdyZW5kZWzDqXMgc3plcmtlc3p0w6lzw6loZXogYW5uYWsgbmFnecOtdMOhc2kgbsOpemV0w6luIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VneSBoaXZhdGtvesOhc3QgamVsZW7DrXQgbWVnIGEgbWVuw7xiZW4gYXogw7xneWludMOpesWRaSBmZWzDvGxldCB2w6FsdG96w6FzIG5hZ3nDrXTDoXNpIG7DqXpldMOpYmUgdmFsw7Mgdmlzc3phdMOpcsOpc2hlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VneSBoaXZhdGtvesOhc3QgamVsZW7DrXQgbWVnIGEgbWVuw7xiZW4gYXogw7xneWludMOpesWRaSBmZWzDvGxldCBtdW5rYW1lZ3JlbmRlbMOpcyBuYWd5w610w6FzaSBuw6l6ZXRoZXogdmFsw7Mgdmlzc3phdMOpcsOpc2hlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFZ3kgaGl2YXRrb3rDoXN0IGplbGVuw610IG1lZyBhIG1lbsO8YmVuIGVneSB2w6FsdG96w6FzIG55b210YXTDoXPDoWhveiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4gYXogZWxlbSBuYWd5w610w6FzaSBuw6l6ZXTDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFZ3kgaGl2YXRrb3rDoXN0IGplbGVuw610IG1lZyBhIG1lbsO8YmVuIGVneSBtdW5rYW1lZ3JlbmRlbMOpcyBueW9tdGF0w6Fzw6Fob3ogYW5uYWsgbmFnecOtdMOhc2kgbsOpemV0w6luIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFZ3kgaGl2YXRrb3rDoXN0IGplbGVuw610IG1lZyBhIG1lbsO8YmVuIGVneSB2w6FsdG96w6FzIMOpcyBhbm5hayBtdW5rYW1lZ3JlbmRlbMOpc2VpIHZpc3N6YcOhbGzDrXTDoXPDoWhveiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4gYXogZWxlbSBuYWd5w610w6FzaSBuw6l6ZXTDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRWd5IGhpdmF0a296w6FzdCBqZWxlbsOtdCBtZWcgYSBtZW7DvGJlbiBlZ3kgdsOhbHRvesOhc2JhbiDDqXJpbnRldHQgc3plbcOpbHllayBtZWdqZWxlbsOtdMOpc8OpaGV6IGEgdsOhbHRvesOhcyBuYWd5w610w6FzIG7DqXpldMOpYmVuIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZWdqZWxlbsOtdGkgYSB2w6FsdG96w6FzIGVsxZF6bcOpbnllaXQgKGZvcmTDrXRvdHQgc29ycmVuZGJlbikgYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnw4FsbGFwb3Rnw6lwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuJ30gPQogICAgICAgICdWw6FsdG96w6FzLSDDqXMgbXVua2FtZWdyZW5kZWzDqXMtYXpvbm9zw610w7NrYXQsIHZhbGFtaW50IGEgbmVraWsgbWVnZmVsZWzFkSBzYWJsb25hem9ub3PDrXTDs3QgdMOhcm9samEsIG1pa8O2emJlbiBlZ3kgZmVsaGFzem7DoWzDsyBzemVya2VzenQgZWd5IHNhYmxvbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnTXVua2FtZWdyZW5kZWzDqXMgZmVsdsOpdGVsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcyBmZWx2w6l0ZWxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnQSBtdW5rYW1lZ3JlbmRlbMOpcyBmZWx2w6l0ZWxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJ1NhYmxvbiDDoXR0ZWtpbnTFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAnU2FibG9udMOtcHVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlLid9ID0gJ1NhYmxvbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJ0VneSB2w6FsdG96w6FzIGF6b25vc8OtdMOzamEsIHDDqWxkw6F1bCBDaGFuZ2UjLCBNeUNoYW5nZSMuIEF6IGFsYXDDqXJ0ZWxtZXpldHQ6IENoYW5nZSMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICdFZ3kgbXVua2FtZWdyZW5kZWzDqXMgYXpvbm9zw610w7NqYSwgcMOpbGTDoXVsIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gQXogYWxhcMOpcnRlbG1lemV0dDogV29ya29yZGVyIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJ0V6IGF6IEFDTCBtb2R1bCBrb3Jsw6F0b3p6YSBheiDigJ5JVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXPigJ0gcmVuZHN6ZXJiZcOhbGzDrXTDoXNpIGxlaGV0xZFzw6lnYmVuIG1lZ2hhdMOhcm96b3R0IGplZ3l0w61wdXNvayBoYXN6bsOhbGF0w6F0IGF6IOKAnklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3Vwc+KAnSBjc29wb3J0YmFuIG1lZ2hhdMOhcm96b3R0IGZlbGhhc3puw6Fsw7NrcmEuIE1pdmVsIGV6IGF6IEFDTCDDvHRrw7Z6aGV0IG3DoXMgb2x5YW4gQUNMLWVra2VsLCBhbWVseWVrIHN6aW50w6luIGEgamVneXTDrXB1c3NhbCB2YW5uYWsgw7Zzc3plZsO8Z2fDqXNiZW4sIGV6w6lydCBleiBhIHJlbmRzemVyYmXDoWxsw610w6FzaSBsZWhldMWRc8OpZyBhbGFww6lydGVsbWV6ZXR0ZW4gbGUgdmFuIHRpbHR2YSwgw6lzIGNzYWsgYWtrb3Iga2VsbCBha3RpdsOhbG5pLCBoYSBzesO8a3PDqWdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnSWTFkXLDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgb2YgdGlja2V0cywgd2hlcmUgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgYSBsaW5rIHRvIGFkZCBhIGNoYW5nZSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ0plZ3llayB0w61wdXNhaSwgYWhvbCBhIGplZ3kgbmFnecOtdMOhcyBuw6l6ZXRiZW4gZWd5IHbDoWx0b3rDoXMgaG96esOhYWTDoXPDoXJhIG11dGF0w7MgaGl2YXRrb3rDoXMgbGVzeiBtZWdqZWxlbsOtdHZlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJ0ZlbGhhc3puw6Fsw7NrZXJlc8Opcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcyBob3p6w6FhZMOhc2EgKHNhYmxvbmLDs2wpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJ011bmthbWVncmVuZGVsw6lzIGhvenrDoWFkw6FzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJ011bmthbWVncmVuZGVsw6lzIMO8Z3lpbnTDqXrFkWplLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJ011bmthbWVncmVuZGVsw6lzIHTDtnJsw6lzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnTXVua2FtZWdyZW5kZWzDqXMgc3plcmtlc3p0w6lzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcyBlbMWRem3DqW55ZWluZWsgbmFnecOtdMOhc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJ011bmthbWVncmVuZGVsw6lzIGVsxZF6bcOpbnllaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICdNdW5rYW1lZ3JlbmRlbMOpcyBqZWxlbnTDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJ011bmthbWVncmVuZGVsw6lzIG5hZ3nDrXTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJ011bmthbWVncmVuZGVsw6lzIG5hZ3nDrXTDoXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnZWd5c3plcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICdyZW5kc3plcmVzZW4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/id_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aWRfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0thdGVnb3JpIOKGlCBEYW1wYWsg4oaUIFByaW9yaXRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnTWVuZ2Vsb2xhIGhhc2lsIHByaW9yaXRhcyBrb21iaW5hc2kgS2F0ZWdvcmkg4oaUIERhbXBhay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHkgYWxsb2NhdGlvbid9ID0gJ0Fsb2thc2kgUHJpb3JpdGFzJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VNYW5hZ2VtZW50IE5vdGlmaWNhdGlvbiBNYW5hZ2VtZW50J30gPSAnTWFuYWplbWVuIFBlbWJlcml0YWh1YW4gSVRTTSBNYW5hamVtZW4gUGVydWJhaGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJ1RhbWJhaCBwZXJhdHVyYW4gbm90aWZpa2FzaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Egbm90aWZpY2F0aW9uIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdQZW1iZXJpdGFodWFuIGhhcnVzIG1lbWlsaWtpIG5hbWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05hbWUgaXMgcmVxdWlyZWQuJ30gPSAnTmFtYSBkaXBlcmx1a2FuLic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICdBZG1pbiBTdGF0ZSBNYWNoaW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhIGNhdGFsb2cgY2xhc3MhJ30gPSAnUGlsaWgga2VsYXMga2F0YWxvZyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJ1NlYnVhaCBrZWxhcyBLYXRhbG9nIGRpcGVybHVrYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdNZW5hbWJhaGthbiB0cmFuc2lzaSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ0tlbGFzIEthdGFsb2cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICdOYW1hIG9ieWVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAnS2VzZWx1cnVoYW4gc3RhdGUgdHJhbnNpc2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ0hhcHVzIHRyYW5zaXNpIHN0YXRlIGJlcmlrdXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnVGFtYmFoIHN0YXRlIHRyYW5zaXNpIGJhcnUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJ1BpbGloIHN0YXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJ1BpbGloIHN0YXRlIGJlcmlrdXRueWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnRWRpdCB0cmFuc2lzaSBzdGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnQXBha2FoIEFuZGEgYmVuYXItYmVuYXIgaW5naW4gbWVuZ2hhcHVzIHRyYW5zaXNpPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDaGFuZ2UnfSA9ICdUYW1iYWggcGVydWJhaGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnVWJhaCBJVFNNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICdKdXN0aWZpa2FzaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnB1dCBpbnZhbGlkLid9ID0gJ1BlbWFzdWthbiB0aWRhayBzYWgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICdUYW5nZ2FsIGRpbWludGEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnUGlsaWggcGVydWJhaGFuIHRlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJ0plbmlzIHdha3R1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSB0eXBlLid9ID0gJ0plbmlzIHdha3R1IHRpZGFrIHNhaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdGltZSd9ID0gJ1dha3R1IGJhcnUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ1NpbXBhbiBwZXJ1YmFoYW4gQ0FCIHNlYmFnYWkgVGVtcGxhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICdwZXJnaSBrZSBsYXlhciBvcmFuZyB5YW5nIHRlcmxpYmF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgTmFtZSd9ID0gJ05hbWEgdGlkYWsgc2FoJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJ0tvbmRpc2kgZGFuIFRpbmRha2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICdIYXB1cyBrb25kaXNpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgY29uZGl0aW9uJ30gPSAnVGFtYmFoIGtvbmRpc2kgYmFydSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbmRpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGEgdmFsaWQgbmFtZS4nfSA9ICdQZXJsdSBuYW1hIHlhbmcgc2FoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnTmFtYSB5YW5nIHNhaCBkaXBlcmx1a2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJ0R1cGxpa2FzaSBuYW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbmFtZSBpcyBhbHJlYWR5IHVzZWQgYnkgYW5vdGhlciBjb25kaXRpb24uJ30gPSAnTmFtYSB0ZXJzZWJ1dCB0ZWxhaCBkaWd1bmFrYW4gb2xlaCBrb25kaXNpIGxhaW5ueWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICdTZXN1YWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJ0Vrc3ByZXNpIGxhaW5ueWEgKE9SKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICdTZW11YSBla3NwcmVzaSAoQU5EKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJ0Vrc3ByZXNpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdG9yJ30gPSAnUGVtaWxpaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJ1Blbmd1cnVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBFeHByZXNzaW9uJ30gPSAnSGFwdXMgZWtzcHJlc2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAnRWtzcHJlc2kgdGlkYWsgZGl0ZW11a2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJ1RhbWJhaCBla3NwcmVzaSBiYXJ1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICdIYXB1cyBha3NpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEFjdGlvbnMgZm91bmQuJ30gPSAnVGlkYWsgYWRhIGFrc2kgZGl0ZW11a2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAnVGFtYmFoIGFrc2kgYmFydSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjaGFuZ2U/J30gPSAnQXBha2FoIGFuZGEgaW5naW4gbWVuZ2hhcHVzIHBlcnViYWhhbiBpbmk/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMnfSA9ICdTZWphcmFoIGRhcmkgJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICdJc2kgc2VqYXJhaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICdUYXRhIGtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICdCdWF0V2FrdHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBkZXRhaWxzJ30gPSAnVGFtcGlsa2FuIGRldGFpbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJ1RhbXBpbGthbiB0YXRhIGtlcmphJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnRGl1YmFoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJ05pbGFpIGxhbWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFZhbHVlJ30gPSAnTmlsYWkgYmFydSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICdPcmFuZyB5YW5nIHRlcmxpYmF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICdVYmFoIG1hbmFnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJ1BlbmdndW5hIHRpZGFrIHNhaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVyJ30gPSAnVWJhaCBwZW1iYW5ndW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnRGV3YW4gUGVuYXNlaGF0IHBlcnViYWhhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgVGVtcGxhdGUnfSA9ICdUZW1wbGF0ZSBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICdUZXJhcGthbiBUZW1wbGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJ1RlbXBsYXRlIGJhcnUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ1NpbXBhbiBDQUIgc2ViYWdhaSB0ZW1wbGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAnVGFtYmFoIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICdQZW5nZ3VuYSB0aWRhayBzYWgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICdDQUIgc2FhdCBpbmknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdQZW5nYXR1cmFuIEtvbnRla3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlcyBwZXIgcGFnZSd9ID0gJ1ViYWggc2V0aWFwIGhhbGFtYW4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJ1ViYWgganVkdWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBCdWlsZGVyJ30gPSAnVWJhaCBwZW1iYW5ndW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICdVYmFoIG1hbmFnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJ1RhdGEga2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnVWJhaCBzdGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIFRpbWUnfSA9ICdXYWt0dSB5YW5nIGRpbWludGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAnUGVyZW5jYW5hYW4gd2FrdHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJ1BlcmVuY2FuYWFuIHdha3R1IGJlcmFraGlyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnV2FrdHUgZGltdWxhaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICdXYWt0dSBiZXJha2hpcic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJ0FwYWthaCBhbmRhIGluZ2luIG1lbmdlc2V0IHVsYW5nIHBlcnViYWhhbiBpbmk/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJyhDb250b2ggMTAqNTE1NSBvciAxMDU2NTgqKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICdBZ2VuIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAnQ29udG9oJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJ1BlbGFuZ2dhbiBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICdVYmFoIGthdGVnb3JpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnKFNlYmVsdW0vU2V0ZWxhaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnKGRpYW50YXJhKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICdTaW1wYW4gc2ViYWdhaSB0ZW1wbGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBsYXRlIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdTZWJ1YWggdGVtcGxhdGUgaGFydXMgbWVtaWxpa2kgbmFtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuJ30gPSAnTmFtYSBUZW1wbGF0ZSBkaXBlcmx1a2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICdBdHVyIHVsYW5nIHN0YXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJ1RlbXBsYXRlIGFzbGkgZGl0aW1wYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnSGFwdXMgcGVydWJhaGFuIGFzbGknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnUGluZGFoa2FuIFdha3R1IFNsb3QnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluZm9ybWF0aW9uJ30gPSAnVWJhaCBpbmZvcm1hc2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ1BlcnViYWhhbiBQZW1yYWthcnNhIChzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICdDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAnVGVyYWtoaXIgZGl1YmFoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ1RlcmFraGlyIGRpcnViYWggb2xlaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJ1VudHVrIG1lbWJ1a2EgdGF1dGFuIHBhZGEgYmFnaWFuIGRlc2tyaXBzaSBiZXJpa3V0LCBBbmRhIGhhcnVzIG1lbmVrYW4gdG9tYm9sIEN0cmwgYXRhdSBDbXMgYXRhdSBTaGlmdCBzYW1iaWwgbWVuZWthbiB0YXV0YW5ueWEgKHRlcmdhbnR1bmcgcGFkYSBTaXN0ZW0gT3BlcmFzaSBkYW4gUGVyYW1iYW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICdVbmR1aCBMYW1waXJhbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnTWVuZ2VkaXQgQ0FCIFRlbXBsYXRlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnSW5pIGFrYW4gbWVtYnVhdCBwZXJ1YmFoYW4gYmFydSBkYXJpIHRlbXBsYXRlIGluaSwgc2VoaW5nZ2EgQW5kYSBkYXBhdCBtZW5nZWRpdCBkYW4gbWVueWltcGFubnlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ1BlcnViYWhhbiBiYXJ1IGFrYW4gZGloYXB1cyBzZWNhcmEgb3RvbWF0aXMgc2V0ZWxhaCB0ZWxhaCBkaXNpbXBhbiBzZWJhZ2FpIHRlbXBsYXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ0luaSBha2FuIG1lbWJ1YXQgcGVyaW50YWgga2VyamEgYmFydSBkYXJpIHRlbXBsYXRlIGluaSwgc2VoaW5nZ2EgQW5kYSBkYXBhdCBtZW5nZWRpdCBkYW4gbWVueWltcGFubnlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdTZWJ1YWggcGVydWJhaGFuIHNlbWVudGFyYSBha2FuIGRpYnVhdCB5YW5nIGJlcmlzaSBwZXJpbnRhaCBrZXJqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ1BlcnViYWhhbiBzZW1lbnRhcmEgZGFuIHBlcmludGFoIGtlcmphIGJhcnUgYWthbiBkaWhhcHVzIHNlY2FyYSBvdG9tYXRpcyBzZXRlbGFoIHBlcmludGFoIGtlcmphIHRlbGFoIGRpc2ltcGFuIHNlYmFnYWkgdGVtcGxhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAnQXBha2FoIEFuZGEgaW5naW4gbWVsYW5qdXRrYW4/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAnVWJhaCBpc2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGltZSd9ID0gJ01lbmd1YmFoIHdha3R1JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnSW5zdHJ1a3NpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnSmVuaXMgcGVyaW50YWgga2VyamEgdGlkYWsgdmFsaWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICd3YWt0dSBtdWxhaSBkaXJlbmNhbmFrYW4gaGFydXMgc2ViZWx1bSB3YWt0dSBha2hpciB5YW5nIGRpcmVuY2FuYWthbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAnRm9ybWF0IHRpZGFrIHNhaCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICdQaWxpaCBXb3JrIE9yZGVyIFRlbXBsYXRlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICdBcGFrYWggQW5kYSBiZW5hci1iZW5hciBpbmdpbiBtZW5naGFwdXMgcGVyaW50YWgga2VyamEgaW5pPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJ0FuZGEgdGlkYWsgZGFwYXQgbWVuZ2hhcHVzIFBlcmludGFoIEtlcmphIGluaS4gSGFsIGluaSBkaWd1bmFrYW4gZGFsYW0gc2V0aWRha255YSBzYXR1IEtvbmRpc2khJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICdQZXJpbnRhaCBLZXJqYSBpbmkgZGlndW5ha2FuIGRhbGFtIEtvbmRpc2kgYmVyaWt1dCAocyknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICdCZXJnZXJhayBtZW5naWt1dGkgcGVyaW50YWgga2VyamEgeWFuZyBzZXN1YWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnSmlrYSB3YWt0dSBha2hpciB5YW5nIGRpcmVuY2FuYWthbiBkYXJpIHBlcmludGFoIGtlcmphIGluaSBiZXJ1YmFoLCBrYWxpIG11bGFpIGRpcmVuY2FuYWthbiBzZW11YSBwZXJpbnRhaCBrZXJqYSBiZXJpa3V0IGFrYW4gYmVydWJhaCBkZW5nYW4gc2VzdWFpJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0J30gPSAnTGFwb3Jhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICdXYWt0dSBtdWxhaSB5YW5nIHNlYmVuYXJueWEgaGFydXMgc2ViZWx1bSB3YWt0dSBha2hpciB5YW5nIHNlYmVuYXJueWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJ1dha3R1IG11bGFpIHlhbmcgc2ViZW5hcm55YSBoYXJ1cyBkaWF0dXIsIGtldGlrYSB3YWt0dSBha2hpciB5YW5nIHNlYmVuYXJueWEgZGlhdHVyISc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnQWdlbiBzYWF0IGluaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICdBcGFrYWggQW5kYSBiZW5hci1iZW5hciBpbmdpbiBtZW5nYW1iaWwgcGVzYW5hbiBwZWtlcmphYW4gaW5pPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBXb3Jrb3JkZXIgYXMgVGVtcGxhdGUnfSA9ICdIZW1hdCBXb3JrIE9yZGVyIHNlYmFnYWkgVGVtcGxhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknfSA9ICdIYXB1cyBwZXJpbnRhaCBrZXJqYSBhc2xpIChkYW4gcGVydWJhaGFuIHNla2l0YXJueWEpJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJ1BlcmludGFoIGtlcmphIGluZm9ybWFzaSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJ3BlbWJlcml0YWh1YW4gdGlkYWsgZGlrZXRhaHVpICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICdBZGEga2VzYWxhaGFuIHNhYXQgbWVtYnVhdCBwZW1iZXJpdGFodWFuLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIFVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBJVFNNIENoYW5nZXMnfSA9ICdJa2h0aXNhcjogSVRTTSBQZXJ1YmFoYW4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAnVGlrZXQgZGVuZ2FuIElEIHRpa2V0ICVzIHRpZGFrIGFkYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnT3BzaSBzeXNjb25maWcgaGxsYW5nICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICdUaWRhayBkYXBhdCBtZW5hbWJhaGthbiBwZXJ1YmFoYW4hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJ30gPSAnVGlkYWsgbWFtcHUgbWVtYnVhdCBwZXJ1YmFoYW4gZGFyaSB0ZW1wbGF0ZSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICdUaWRhayBhZGEgR2FudGkgSUQgZGliZXJpa2FuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJ1RpZGFrIGFkYSBwZXJ1YmFoYW4geWFuZyBkaXRlbXVrYW4gdW50dWsgSUQgcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJ0NBQiBwZXJ1YmFoYW4gIiVzIiB0aWRhayBkYXBhdCBzZXJpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJ1RpZGFrIGRhcGF0IG1lbmFtYmFoa2FuIHRlbXBsYXRlLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnR2FudGkgIiVzIiB0aWRhayBkaXRlbXVrYW4gZGFsYW0gZGF0YWJhc2UhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnVGlkYWsgZGFwYXQgbWVuZ2hhcHVzIENvbmRpdGlvbklEICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnVGlkYWsgYWRhICVzIGRpYmVyaWthbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJ1RpZGFrIGRhcGF0IG1lbWJ1YXQga29uZGlzaSBiYXJ1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJ3RpZGFrIGJpc2EgdXBkYXRlIENvbmRpdGlvbklEICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICd0aWRhayBiaXNhIHVwZGF0ZSBFeHByZXNzaW9uICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJ2FrIGRhcGF0IG1lbmFtYmFoa2FuIEV4cHJlc2kgYmFydSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICd0aWRhayBiaXNhIHVwZGF0ZSBBY3Rpb25JRCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISd9ID0gJ3RpZGFrIGJpc2EgbWVuYW1iYWggQWN0aW9uIGJhcnUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJ1RpZGFrIGRhcGF0IG1lbmdoYXB1cyBFa3NwcmVzaSAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICdUaWRhayBkYXBhdCBtZW5naGFwdXMgQWN0aW9uSUQgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICdLZXNhbGFoYW46IHRpZGFrIGRpa2V0YWh1aSBqZW5pcyBmaWVsZCAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJ0tvbmRpc2kgSUQgJXMgdGlkYWsgbWVtaWxpa2kgcGVydWJhaGFuIElEICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBkb2VzIG5vdCBoYXZlIGFuIGFsbG93ZWQgY2hhbmdlIHN0YXRlIHRvIGJlIGRlbGV0ZWQhJ30gPQogICAgICAgICdQZXJ1YmFoYW4gIiVzIiB0aWRhayBtZW1pbGlraSAgcGVydWJhaGFuIHN0YXRlIHlhbmcgYm9sZWggZGloYXB1cyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnVGlkYWsgYmlzYSBtZW5naGFwdXMgcGVydWJhaGFuIElEJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICdUaWRhayBkYXBhdCBtZW1wZXJiYXJ1aSBwZXJ1YmFoYW4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ3RpZGFrIGJpc2EgbWVudW5qdWtrYW4gc2VqYXJhaCwga2FyZW5hIHRpZGFrIGFkYSBwZXJ1YmFoYW4gSUQgeWFuZyBkaWJlcmlrYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnUGVydWJhaGFuICIlcyIgdGlkYWsgZGl0ZW11a2FuIGRpIGRhbGFtIGRhdGFiYXNlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICdKZW5pcyB0aWRhayBkaWtldGFodWkgIiVzIiBkaXRlbXVpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJ1ViYWggc2VqYXJhaCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAndGlkYWsgYmlzYSBtZW51bmp1a2thbiBzZWphcmFoIHpvb20sIHRpZGFrIGFkYSBTZWphcmFoIEVudHJ5SUQgZGliZXJpa2FuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnU2VqYXJhaCBFbnRyeSAiJXMiIHRpZGFrIGRpdGVtdWthbiBkYWxhbSBkYXRhYmFzZSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnVGlkYWsgZGFwYXQgbWVtcGVyYmFydWkgR2FudGkgQ0FCIHVudHVrIFBlcnViYWhhbiAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnVGlkYWsgZGFwYXQgbWVtcGVyYmFydWkgcGVydWJhaGFuICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICdJa2h0aXNhcjogUGVydWJhaGFuIG1hbmFqZXInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnSWtodGlzYXI6IENBQiBzYXlhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnSWtodGlzYXI6IFBlcnViYWhhbiBTYXlhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAnSWtodGlzYXI6IFBlcmludGFoIEtlcmphIFNheWEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJ0lraHRpc2FyOiBQSVInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJ0lraHRpc2FyOiBQU0EnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnVGF0YWtlcmphICIlcyIgdGlkYWsgZGl0ZW11a2FuIGRpZGFsYW0gZGF0YWJhc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnVGlkYWsgZGFwYXQgbWVtYnVhdCBvdXRwdXQsIHNlYmFnYWkgcGVyaW50YWgga2VyamEgdGlkYWsgdGVyaWthdCBwYWRhIHBlcnViYWhhbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ1RpZGFrIGRhcGF0IG1lbWJ1YXQgb3V0cHV0LCBrYXJlbmEgdGlkYWsgYWRhIHBlcnViYWhhbiBJRCB5YW5nIGRpYmVyaWthbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biBjaGFuZ2UgdGl0bGUnfSA9ICdUaWRhayBkaWtldGFodWkgcGVydWJhaGFuIGp1ZHVsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnVGF0YWtlcmphIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyTnVtYmVyJ30gPSAnTm9tb3IgVGF0YSBLZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUaXRsZSd9ID0gJ0p1ZHVsIHRhdGEga2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICdUaWRhayBkaWtldGFodWkganVkdWwgcGVyaW50YWgga2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICdVYmFoIHN0YXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICdVcGF5YSB5YW5nIGRpcmVuY2FuYWthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJ1dha3R1IHlhbmcgZGltaW50YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnV2FrdHUgbXVsYWkgZGlyZW5jYW5ha2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnV2FrdHUgYWtoaXIgZGlyZW5jYW5ha2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJ011bGFpIHdha3R1ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnV2FrdHUgYmVyYWtoaXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJ1ViYWggd2FrdHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnTWVuZ3ViYWggTm9tb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICdTdGF0ZSB0YXRhIGtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICdKZW5pcyB0YXRhIGtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50J30gPSAnVGF0YSBrZXJqYSBhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIE92ZXJ2aWV3ICglcyknfSA9ICdJVFNNIEtlc2VsdXJ1aGFuIHBlcmludGFoIGtlcmphICglcyknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVJlc2V0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnfSA9ICdUaWRhayBiaXNhIG1lLXJlc2V0IFBlcmludGFoIEtlcmphICVzIGRhcmkgcGVydWJhaGFuICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJ1RpZGFrIGJpc2EgbWUtcmVzZXQgUGVydWJhaGFuICAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAnSWtodGlzYXI6IFBlcnViYWhhbiBKYWR3YWwnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJ01lbmd1YmFoIHBlbmNhcmlhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJ1ViYWgganVkdWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ1BlcmludGFoIGtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnTWVuZ3ViYWggaGFzaWwgcGVuY2FyaWFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICdVYmFoIG5vbW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICdKdWR1bCBwZXJpbnRhaCBrZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICdNZW5ndWJhaCBkZXNrcmlwc2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICdNZW5ndWJhaCBqdXN0aWZpa2FzaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICdJbnN0cnVrc2kgcGVyaW50YWgga2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJ0xhcG9yYW4gcGVyaW50YWgga2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnVWJhaCBwcmlvcml0YXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJ1ViYWggZGFtcGFrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICdEaWNpcHRha2FuIG9sZWgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFN0YXRlJ30gPSAnU3RhdGUgcGVyaW50YWgga2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICdKZW5pcyBwZXJpbnRhaCBrZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICdQZXJpbnRhaCBrZXJqYSBhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJ1NlYmVsdW0nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnUGVydWJhaGFuICIlcyJ0aWRhayBkYXBhdCBzZXJpYWwuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJ3RpZGFrIGJpc2EgdXBkYXRlIHRlbXBsYXRlICIlcyInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICd0aWRhayBiaXNhIG1lbmdoYXB1cyBwZXJ1YmFoYW4gIiVzIic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICdwZXJ1YmFoYW4gdGlkYWsgZGFwYXQgZGlwaW5kYWhrYW4sIGthcmVuYSB0aWRhayBtZW1pbGlraSBwZXJpbnRhaCBrZXJqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJ3BlcnRhbWEgdGFtYmFoa2FuIHBlcmludGFoIGtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAnVGlkYWsgZGFwYXQgbWVtaW5kYWhrYW4gcGVydWJhaGFuIHlhbmcgc3VkYWggdGVsYWggZGltdWxhaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJ1NpbGFrYW4gbWVtaW5kYWhrYW4gcGVyaW50YWgga2VyamEgaW5kaXZpZHUgc2ViYWdhaSBnYW50aW55YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAnU2FhdCBpbmkgJXMgdGlkYWsgZGFwYXQgZGl0ZW50dWthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyVzIGRhcmkgc2VtdWEgcGVyaW50YWgga2VyamEgaGFydXMgZGlkZWZpbmlzaWthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJ1RpZGFrIGJpc2EgYmVyZ2VyYWsgc2xvdCB3YWt0dSB1bnR1ayBwZXJpbnRhaCBrZXJqYSAjJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICdBbmRhIHBlcmx1ICVzIGl6aW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAnVGlkYWsgYWRhIElEIFRlbXBsYXRlIGRpYmVyaWthbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnVGVtcGxhdGUgIiVzIiB0aWRhayBkaXRlbXVrYW4gZGFsYW0gZGF0YWJhc2UhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJ1RpZGFrIGJpc2EgbWVuZ2hhcHVzIHRlbXBsYXRlICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJ1RpZGFrIGRhcGF0IG1lbXBlcmJhcnVpIFRlbXBsYXRlICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnVGlkYWsgZGFwYXQgbWVtcGVyYmFydWkgVGVtcGxhdGUgIiVzIiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJ1RpZGFrIG1hbXB1IG1lbWJ1YXQgcGVydWJhaGFuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJ1RpZGFrIG1hbXB1IG1lbmNpcHRha2FuIHBlcmludGFoIGtlcmphIGRhcmkgVGVtcGxhdGUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICdJa2h0aXNhcjogVGVtcGxhdGUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnfSA9ICdBbmRhIHBlcmx1ICVzIGl6aW4gcGFkYSBwZXJ1YmFoYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJ1RpZGFrIGRhcGF0IG1lbmFtYmFoa2FuIHBlcmludGFoIGtlcmphISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJ1RpZGFrIGFkYSBJRCBwZXJpbnRhaCBrZXJqYSBkaWJlcmlrYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJ30gPQogICAgICAgICdUaWRhayBtYW1wdSBtZW5nYXR1ciBhZ2VuIHBlcmludGFoIGtlcmphIGRhcmkgcGVyaW50YWgga2VyamEgIiVzIiB1bnR1ayBtZW5nb3NvbmdrYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJ1RpZGFrIGRhcGF0IG1lbXBlcmJhcnVpIHBlcmludGFoIGtlcmphICIlcyIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBmaW5kIENoYW5nZSBmb3IgV29ya09yZGVyICVzISd9ID0gJ1RpZGFrIGRhcGF0IG1lbXBlcmJhcnVpIHBlcmludGFoIGtlcmphICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnVGlkYWsgZGFwYXQgbWVuZ2hhcHVzIHBlcmludGFoIGtlcmphICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnVGlkYWsgZGFwYXQgbWVtcGVyYmFydWkgUGVyaW50YWggS2VyamEgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICd0aWRhayBiaXNhIG1lbnVuanVra2FuIHNlamFyYWgsIGthcmVuYSB0aWRhayBhZGEgSUQgVGF0YSBLZXJqYSBkaWJlcmlrYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnV29yayBPcmRlciAiJXMiIHRpZGFrIGRpdGVtdWthbiBkYWxhbSBkYXRhYmFzZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICdSaXdheWF0IHBlcmludGFoIGtlcmphJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnZW50cmkgc2VqYXJhaCAiJXMiIHRpZGFrIGRpdGVtdWthbiBkYWxhbSBkYXRhYmFzZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJ1Jpd2F5YXQgWm9vbSBCZWtlcmphJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJ1RpZGFrIGJpc2EgbWVuZ2FtYmlsIHBlcmludGFoIGtlcmphISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICdQZXJpbnRhaCBrZXJqYSAiJXMiIHRpZGFrIGRhcGF0IHNlcmlhbC4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uICVzIG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpdGxlOiAlcyB8IFR5cGU6ICVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ0FCcyd9ID0gJ0NBQnMgc2F5YSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDaGFuZ2VzJ30gPSAnUGVydWJhaGFuIHNheWEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICdQZXJpbnRhaCBrZXJqYSBzYXlhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgRGVsZXRlZCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENvbmRpdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIENvbmRpdGlvbnMgb2YgQ2hhbmdlIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQ29uZGl0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRXhwcmVzc2lvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBFeHByZXNzaW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChFeHByZXNzaW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSAlczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0lUU01Db25kaXRpb24vT2JqZWN0L0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FsbCd9ID0gJ3NlbXVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJ0FwYSBzYWphJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICdEaW1pbnRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICdhcHByb3ZhbCB0ZXJ0dW5kYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJ0RpdG9sYWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICdEaXNldHVqdWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICdEYWxhbSBwcm9zZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICdQSVIgVGVydHVuZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJ0Jlcmhhc2lsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJ0dhZ2FsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnRGliYXRhbGthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICdEaWNhYnV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICdEaWNpcHRha2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnRGl0ZXJpbWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICdTZWRpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ1BlcnNldHVqdWFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJ3BlcmludGFoIGtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICdNdW5na2lyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnS2VwdXR1c2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJ1BJUic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICdhZGFsYWgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnYnVrYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICdrb3NvbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAnYnVrYW4ga29zb25nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJ2xlYmloIGJlc2FyIGRhcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAna3VyYW5nIGRhcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnc2ViZWx1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJ3NldGVsYWgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICdJc2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnYnVrYW4gaXNpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnRGltdWxhaSBkZW5nYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZW5kcyB3aXRoJ30gPSAnQmVyYWtoaXIgZGVuZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJ0F0dXJhbic7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJ09rJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnU2VidWFoIGRhZnRhciBhZ2VuIHlhbmcgbWVtaWxpa2kgaXppbiB1bnR1ayBtZW5lcmltYSBwZXJpbnRhaCBrZXJqYS4gS2V5IGFkYWxhaCBuYW1hIGxvZ2luLiBLb250ZW4gYWRhbGFoIDAgYXRhdSAxLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJ0RhZnRhciBzdGF0dXMgcGVyaW50YWgga2VyamEgZGkgbWFuYSBzZWJlbmFybnlhIFN0YXJ0IFRpbWUgZGFyaSB3b3Jrb3JkZXIgYWthbiBkaXRldGFwa2FuIGFwYWthaCBpdHUga29zb25nIHBhZGEgc2FhdCBpbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnVGFtYmFoa2FuIFdvcmsgT3JkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnVGFtYmFoIHBlcnViYWhhbiBkYXJpIHRlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICdUYW1iYWggcGVydWJhaGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnVGFtYmFoa2FuIGRhcmkgdGVtcGxhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnTWF0cmlrcyBDSVAgYWRtaW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAnTWVzaW4gc3RhdGUgYWRtaW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJ21vZHVsZSBub3RpZmlrYXNpIGFnZW4gYW50YXIgbXVrYSB1bnR1ayBtZWxpaGF0IG5vbW9yIGRhcmkgcGVydWJhaGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJ0FnZW4gbW9kdWwgcGVtYmVyaXRhaHVhbiBhbnRhcm11a2EgdW50dWsgbWVsaWhhdCBqdW1sYWggcGVydWJhaGFuIGRpa2Vsb2xhIG9sZWggcGVuZ2d1bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICdBZ2VuIG1vZHVsIHBlbWJlcml0YWh1YW4gYW50YXJtdWthIHVudHVrIG1lbGloYXQganVtbGFoIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJ01vZHVsIHBlbWJlcml0YXVhbiBkaSBhbnRhcm11a2EgYWdlbiB1bnR1ayBtZWxpaGF0IGp1bWxhaCBwZXJpbnRhaCBrZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJ0NhcmkgYW5nZ290YSBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJ3dha3R1IGNhY2hlIGRpIG1lbml0IHVudHVrIHRvb2xiYXIgcGVydWJhaGFuIG1hbmFqZW1lbi4gRGVmYXVsdDogMyBqYW0gKDE4MCBtZW5pdCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICd3YWt0dSBjYWNoZSBkaSBtZW5pdCB1bnR1ayBtYW5hamVtZW4gcGVydWJhaGFuLiBEZWZhdWx0OiA1IGhhcmkgKDcyMDAgbWVuaXQpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJ01lbmd1YmFoIHRlbXBsYXRlIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICdNZW5ndWJhaCBzZWphcmFoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJ01lbmd1YmFoIG9yYW5nIHlhbmcgdGVybGliYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdCYXRhcyBtZW5ndWJhaCBrZXNlbHVydWhhbiAiS2VjaWwiICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnTWVuZ3ViYWgga2VzZWx1cnVoYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJ01lbmd1YmFoIHByaW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJ1ViYWggamFkd2FsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICdNZW5ndWJhaCBqYWR3YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJ01lbmd1YmFoIHpvb20nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICdNZW5ndWJhaCBhcmVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBudW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ1ViYWggcGVuY2FyaWFuIGJhY2tlbmQgcm91dGVyIGRhcmkgaW50ZXJmYWNlIGFnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICdFZGl0IGtvbmRpc2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnS29uZGlzaSBrZXNlbHVydWhhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnTWVuZ2tvbmZpZ3VyYXNpIHNlYmVyYXBhIHNlcmluZyBwZW1iZXJpdGFodWFuIGRpa2lyaW0ga2V0aWthIGRpcmVuY2FuYWthbiB3YWt0dSBtdWxhaSBhdGF1IHdha3R1IGxhaW5ueWEgeWFuZyB0ZWxhaCB0ZXJjYXBhaSAvIGJlcmxhbHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICdNZW1idWF0IHBlcnViYWhhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnbWVtYnVhdCBkYW4gbWVuZ2Vsb2xhIHBlbWJlcml0YWh1YW4gSVRTTSBNYW5hamVtZW4gUGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAnSmVuaXMgZGVmYXVsdCB1bnR1ayBwZXJpbnRhaCBrZXJqYS4gQ2F0YXRhbiBpbmkgaGFydXMgYWRhIGRhbGFtIGtlbGFzIGthdGFsb2cgdW11bSBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAnTWVuZGVmaW5pc2lrYW4gc2lueWFsIHVudHVrIHNldGlhcCBuZWdhcmEgcGVyaW50YWgga2VyamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gc2VidWFoIG1vZHVsIGdhbWJhcmFuIHVudHVrIG1lbnVuanVra2FuIHBhbmRhbmdhbiBrZWNpbCBkYXJpIGRhZnRhciBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gc2VidWFoIG1vZHVsIGdhbWJhcmFuIHVudHVrIG1lbnVuanVra2FuIHBhbmRhbmdhbiBrZWNpbCBkYXJpIGRhZnRhciB0ZW1wbGF0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICdNZW5kZWZpbmlzaWthbiBqaWthIGl0dSBha2FuIG11bmdraW4gdW50dWsgbWVuY2V0YWsgd2FrdHUgZGlwZXJ0YW5nZ3VuZ2phd2Fia2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJ01lbmRlZmluaXNpa2FuIGppa2EgaXR1IGFrYW4gbXVuZ2tpbiB1bnR1ayBtZW5jZXRhayB1cGF5YSB5YW5nIGRpcmVuY2FuYWthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gamlrYSBkaWNhcGFpIChzZXBlcnRpIHlhbmcgZGlkZWZpbmlzaWthbiBvbGVoIG1lc2luKSBzdGF0ZSBwZXJ1YmFoYW4gYWtoaXIgaGFydXMgZGlpemlua2FuIGppa2EgcGVydWJhaGFuIGRhbGFtIGtlYWRhYW4gdGVya3VuY2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJ01lbmRlZmluaXNpa2FuIGppa2EgZGljYXBhaSAoc2VwZXJ0aSB5YW5nIGRpZGVmaW5pc2lrYW4gb2xlaCBtZXNpbikgcGVyaW50YWgga2VyamEgYWtoaXIgaGFydXMgZGlpemlua2FuIGppa2EgcGVyaW50YWgga2VyamEgZGFsYW0ga2VhZGFhbiB0ZXJrdW5jaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJ01lbmRpZmluaXNpa2FuIHdha3R1IHVudHVrIGRpdHVuanVra2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnTWVuZGlmaW5pc2lrYW4gd2FrdHUgbXVsYWkgZGFuIHdha3R1IGJlcmFraGlyIGhhcnVzIGJpc2EgZGlhdHVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJ01lbmRpZmluaXNpa2FuIGppa2EgcGVydWJhaGFuIHBlbmNhcmlhbiBkYW4gZnVuZ3NpIHBlbmNhcmlhbiBwZXJpbnRhaCBrZXJqYSBiaXNhIG1lbmdndW5ha2FuIERCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnTWVuZGVmaW5pc2lrYW4gamlrYSB1cGF5YSB5YW5nIGRpcmVuY2FuYWthbiBoYXJ1cyBkaXRhbXBpbGthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJ01lbmRlZmluaXNpa2FuIGppa2EgdGFuZ2dhbCB5YW5nIGRpbWludGEgaGFydXMgZGljZXRhayBvbGVoIHBlbGFuZ2dhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gamlrYSB0YW5nZ2FsIHlhbmcgZGltaW50YSBoYXJ1cyBkaWNhcmkgb2xlaCBwZWxhbmdnYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnTWVuZGVmaW5pc2lrYW4gamlrYSB0YW5nZ2FsIHlhbmcgZGltaW50YSBoYXJ1cyBkaXRldGFwa2FuIG9sZWggcGVsYW5nZ2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAnTWVuZGVmaW5pc2lrYW4gamlrYSB0YW5nZ2FsIHlhbmcgZGltaW50YSBoYXJ1cyBkaXRhbXBpbGthbiBvbGVoIHBlbGFuZ2dhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICdNZW5kZWZpbmlzaWthbiBqaWthIHBlcmludGFoIGtlcmphIGhhcnVzIGRpdGFtcGlsa2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLid9ID0gJ01lbmRlZmluaXNpa2FuIGppa2EganVkdWwgcGVyaW50YWgga2VyamEgaGFydXMgZGl0YW1waWxrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICdNZW5kZWZpbmlzaWthbiBhdHJpYnV0IGdyYWZpayBkaXRhbXBpbGthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGF0IG9ubHkgY2hhbmdlcyBjb250YWluaW5nIFdvcmtvcmRlcnMgbGlua2VkIHdpdGggc2VydmljZXMsIHdoaWNoIHRoZSBjdXN0b21lciB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB3aWxsIGJlIHNob3duLiBBbnkgb3RoZXIgY2hhbmdlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiBiYWh3YSBoYW55YSBwZXJ1YmFoYW4geWFuZyBtZW5nYW5kdW5nIFBlc2FuYW4gS2VyamEgdGVya2FpdCBkZW5nYW4gbGF5YW5hbiB5YW5nIHBlbmdndW5hIHBlbGFuZ2dhbiBtZW1pbGlraSBpemluIHVudHVrIG1lbmdndW5ha2FuIGFrYW4gZGl0YW1waWxrYW4uIFBlcnViYWhhbiBsYWluIHRpZGFrIGFrYW4gZGl0YW1waWxrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJ01lbmRpZmluaXNpa2FuIHBlcnViYWhhbiB5YW5nIGFrYW4gZGlpamlua2FuIHVudHVrIGRpaGFwdXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gcGVydWJhaGFuIGFrYW4gZGlndW5ha2FuIHNlYmFnYWkgZmlsdGVyIGRhbGFtIHBlcnViYWhhbiBQU0EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiBwZXJ1YmFoYW4gYWthbiBkaWd1bmFrYW4gc2ViYWdhaSBmaWx0ZXIgZGFsYW0gcGVydWJhaGFuIGphZHdhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gcGVydWJhaGFuIHlhbmcgYWthbiBkaWd1bmFrYW4gc2ViYWdhaSBmaWx0ZXIgZGFsYW0gTXlDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiBwZXJ1YmFoYW4geWFuZyBha2FuIGRpZ3VuYWthbiBzZWJhZ2FpIGZpbHRlciBkYWxhbSBNeUNoYWdlcyAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lbmRlZmluaXNpa2FuIHBlcnViYWhhbiB5YW5nIGFrYW4gZGlndW5ha2FuIHNlYmFnYWkgZmlsdGVyIGRhbGFtIHBlcnViYWhhbiBtYW5hamVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gcGVydWJhaGFuIHlhbmcgYWthbiBkaWd1bmFrYW4gc2ViYWdhaSBmaWx0ZXIgZGFsYW0gcGVydWJhaGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gcGVydWJhaGFuIHlhbmcgYWthbiBkaWd1bmFrYW4gc2ViYWdhaSBmaWx0ZXIgZGFsYW0gcGVydWJhaGFuIGphZHdhbCBwZWxhbmdnYW4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ01lbmRlZmluaXNpa2FuIGp1ZHVsIHBlcnViYWhhbiBkZWZhdWx0IHVudHVrIHBlcnViYWhhbiBib25la2EgeWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbmdlZGl0IHBlcmludGFoIGtlcmphIFRlbXBsYXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiBrcml0ZXJpYSBzdGFuZGFyIHNlbWFjYW0gZGFsYW0gcGVydWJhaGFuIFBTQSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lbmRlZmluaXNpa2FuIGtyaXRlcmlhIHN0YW5kYXIgc2VtYWNhbSBkYWxhbSBwZXJ1YmFoYW4gbWFuYWplciAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnTWVuZGVmaW5pc2lrYW4ga3JpdGVyaWEgc3RhbmRhciBzZW1hY2FtIGRhbGFtIHBlcnViYWhhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lbmRlZmluaXNpa2FuIGtyaXRlcmlhIHN0YW5kYXIgc2VtYWNhbSBkaSBqYWR3YWwgcGVydWJhaGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiBrcml0ZXJpYSBzdGFuZGFyIHNlbWFjYW0gcGVydWJhaGFuIGRhbGFtIE15IENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lbmRlZmluaXNpa2FuIGtyaXRlcmlhIHN0YW5kYXIgc2VtYWNhbSBwZXJ1YmFoYW4gZGFsYW0gTXlDaGFuZ2VzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4ga3JpdGVyaWEgc3RhbmRhciBzZW1hY2FtIHBlcnViYWhhbiBkYWxhbSBwZXNhbmFuIEtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4ga3JpdGVyaWEgc3RhbmRhciBzZW1hY2FtIHBlcnViYWhhbiBkYWxhbSBQSVInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiBrcml0ZXJpYSBzdGFuZGFyIHNlbWFjYW0gcGVydWJhaGFuIGphZHdhbCBwZXJ1YmFoYW4gcGVsYW5nZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiBrcml0ZXJpYSBzdGFuZGFyIHNlbWFjYW0gcGVydWJhaGFuIGRhbGFtIHRlbXBsYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAnTWVuZGVmaW5pc2lrYW4gdXJ1dGFuIHN0YW5kYXIgc2VtYWNhbSBkaSBNeSBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnTWVuZGVmaW5pc2lrYW4gdXJ1dGFuIHN0YW5kYXIgc2VtYWNhbSBkaSBNeUNoYW5nZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiB1cnV0YW4gc3RhbmRhciBzZW1hY2FtIGRpIHBlc2FuYW4gS2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnTWVuZGVmaW5pc2lrYW4gdXJ1dGFuIHN0YW5kYXIgc2VtYWNhbSBkaSBQSVInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0gJ01lbmRlZmluaXNpa2FuIHVydXRhbiBkZWZhdWx0IGRpIFBTQSBwZXJ1YmFoYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lbmRlZmluaXNpa2FuIHVydXRhbiBzdGFuZGFyIHNlbWFjYW0gZGkgcGVydWJhaGFuIG1hbmFqZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnTWVuZGVmaW5pc2lrYW4gdXJ1dGFuIGRlZmF1bHQgZGFsYW0gcGVydWJhaGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gdXJ1dGFuIGRlZmF1bHQgZGFsYW0gamFkd2FsIHBlcnViYWhhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lbmRlZmluaXNpa2FuIHVydXRhbiBkZWZhdWx0IGRhbGFtIGphZHdhbCBwZXJ1YmFoYW4gcGVsYW5nZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAnTWVuZGVmaW5pc2lrYW4gdXJ1dGFuIHN0YW5kYXIgc2VtYWNhbSBkaSB0ZW1wbGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnTWVuZGVmaW5pc2lrYW4gbmlsYWkgZGVmYXVsdCB1bnR1ayBrYXRlZ29yaSBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnTWVuZGVmaW5pc2lrYW4gbmlsYWkgZGVmYXVsdCB1bnR1ayBkYW1wYWsgcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJ01lbmRlZmluaXNpa2FuIHBlcmlvZGUgKHRhaHVuKSwgZGkgbWFuYSB3YWt0dSBtdWxhaSBkYW4gYmlzYSBkaXBpbGloLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gYXRyaWJ1dCBkaXRhbXBpbGthbiBkYXJpIHBlcmludGFoIGtlcmphIGRpIHRvb2x0aXAgZGFyaSBncmFmaWsgcGVyaW50YWgga2VyamEgZGkgem9vbSBwZXJ1YmFoYW4uIFVudHVrIG1lbmFtcGlsa2FuIGZpZWxkIHdvcmtvcmRlciBkaW5hbWlzIGRhbGFtIHRvb2x0aXAsIG1lcmVrYSBoYXJ1cyBkaXRlbnR1a2FuIHNlcGVydGkgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiBhY2FyYSBrb2xvbSBkaSBHYW50aSBQU0EgZ2FtYmFyYW4uIFBpbGloYW4gaW5pIHRpZGFrIGJlcnBlbmdhcnVoIHBhZGEgcG9zaXNpIGtvbG9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiBhY2FyYSBrb2xvbSBkaSBVYmFoIEphZHdhbC4gUGlsaWhhbiBpbmkgdGlkYWsgYmVycGVuZ2FydWggcGFkYSBwb3Npc2kga29sb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gYWNhcmEga29sb20gZGkgTXkgQ0FCLiBQaWxpaGFuIGluaSB0aWRhayBiZXJwZW5nYXJ1aCBwYWRhIHBvc2lzaSBrb2xvbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gYWNhcmEga29sb20gZGkgUGVydWJhaGFuIGdhbWJhcmFuLiBQaWxpaGFuIGluaSB0aWRhayBiZXJwZW5nYXJ1aCBwYWRhIHBvc2lzaSBrb2xvbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gYWNhcmEga29sb20gZGkgcGVyaW50YWgga2VyamEuIFBpbGloYW4gaW5pIHRpZGFrIGJlcnBlbmdhcnVoIHBhZGEgcG9zaXNpIGtvbG9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBQSVIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiBhY2FyYSBrb2xvbSBkaSBQSVIuIFBpbGloYW4gaW5pIHRpZGFrIGJlcnBlbmdhcnVoIHBhZGEgcG9zaXNpIGtvbG9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ01lbmRlZmluaXNpa2FuIGFjYXJhIGtvbG9tIGRhbGFtIHBlcnViYWhhbiBtYW5hamVyLiBQaWxpaGFuIGluaSB0aWRhayBiZXJwZW5nYXJ1aCBwYWRhIHBvc2lzaSBrb2xvbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gYWNhcmEga29sb20gZGFsYW0gcGVydWJhaGFuLiBQaWxpaGFuIGluaSB0aWRhayBiZXJwZW5nYXJ1aCBwYWRhIHBvc2lzaSBrb2xvbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ01lbmRlZmluaXNpa2FuIGFjYXJhIGtvbG9tIGRhbGFtIHBlbmNhcmlhbiBwZXJ1YmFoYW4uIFBpbGloYW4gaW5pIHRpZGFrIGJlcnBlbmdhcnVoIHBhZGEgcG9zaXNpIGtvbG9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiBhY2FyYSBrb2xvbSBkaSBwZWxhbmdnYW4gamFkd2FsIHBlcnViYWhhbi4gUGlsaWhhbiBpbmkgdGlkYWsgYmVycGVuZ2FydWggcGFkYSBwb3Npc2kga29sb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gYWNhcmEga29sb20gZGkgdGVtcGxhdGUuIFBpbGloYW4gaW5pIHRpZGFrIGJlcnBlbmdhcnVoIHBhZGEgcG9zaXNpIGtvbG9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lbmRlZmluaXNpa2FuIGplbmlzIHRlbXBsYXRlIHlhbmcgYWthbiBkaWd1bmFrYW4gc2ViYWdhaSBmaWx0ZXIgZGFsYW0gdGVtcGxhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiBzdGF0ZSBwZXJpbnRhaCBrZXJqYSB5YW5nIGFrYW4gZGlndW5ha2FuIHNlYmFnYWkgZmlsdGVyIGRhbGFtIE15V29ya29yZGVycyAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW5kZWZpbmlzaWthbiBwZXJpbnRhaCBrZXJqYSB5YW5nIGFrYW4gZGlndW5ha2FuIHNlYmFnYWkgZmlsdGVyIGRhbGFtIFBJUic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVuZGVmaW5pc2lrYW4gamVuaXMgcGVyaW50YWgga2VyamEgeWFuZyBha2FuIGRpZ3VuYWthbiB1bnR1ayBtZW51bmp1a2thbiBQSVInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAnTWVuZGVmaW5pc2lrYW4gYXBha2FoIHBlbWJlcml0YWh1YW4gaGFydXMgZGlraXJpbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJ01lbmdoYXB1cyBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJ1JpbmNpYW4gZGFyaSBlbnRyaSBwZXJ1YmFoYW4gc2VqYXJhaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJ01lbmVudHVrYW4gYXBha2FoIGFnZW4gZGFwYXQgYmVydHVrYXIgWCBqaWthIGlhIG1lbmdoYXNpbGthbiBzYXR1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICdNZW5lbnR1a2FuIGFwYWthaCBtb2R1bCBzdGF0aXN0aWsgdW11bSBkYXBhdCBtZW5naGFzaWxrYW4gc3RhdGlzdGlrIHRlbnRhbmcgcGVydWJhaGFuIGRpbGFrdWthbiB1bnR1ayBrZWxhcyBjb25maWcgYmFyYW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnTWVuZW50dWthbiBhcGFrYWggbW9kdWwgc3RhdGlzdGlrIHVtdW0gZGFwYXQgbWVuZ2hhc2lsa2FuIHN0YXRpc3RpayB0ZW50YW5nIHBlcnViYWhhbiBtZW5nZW5haSB1cGRhdGUgcGVydWJhaGFuIGRhbGFtIHBlcmlvZGUgd2FrdHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICdNZW5lbnR1a2FuIGFwYWthaCBtb2R1bCBzdGF0aXN0aWsgdW11bSBkYXBhdCBtZW5naGFzaWxrYW4gc3RhdGlzdGlrIHRlbnRhbmcgcGVydWJhaGFuIG1lbmdlbmFpIGh1YnVuZ2FuIGFudGFyYSBwZXJ1YmFoYW4gZGFuIHRpa2V0IGluc2lkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICdNZW5lbnR1a2FuIGFwYWthaCBtb2R1bCBzdGF0aXN0aWsgdW11bSBkYXBhdCBtZW5naGFzaWxrYW4gc3RhdGlzdGlrIHRlbnRhbmcgcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICdNZW5lbnR1a2FuIGFwYWthaCBtb2R1bCBzdGF0aXN0aWsgdW11bSBkYXBhdCBtZW5naGFzaWxrYW4gc3RhdGlzdGlrIHRlbnRhbmcganVtbGFoIHRpa2V0IHBlbW9ob24gUkZDICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJ0RpbmFtaXMgbW9kdWwgYWNhcmEgTGFwYW5nYW4gdW50dWsgbWVuYW5nYW5pIHVwZGF0ZSBrb25kaXNpIGppa2EgYmlkYW5nIHlhbmcgZGluYW1pcyBkaXRhbWJhaGthbiwgZGlwZXJiYXJ1aSBhdGF1IGRpaGFwdXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnTWVuZ2VkaXQgcGVydWJhaGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkRhdGUiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnUGVydWJhaGFuIGJhaHdhIGphZHdhbCBkaW1hanVrYW4gLiBJa2h0aXNhciBsZWJpaCBwZXJ1YmFoYW4gZGlzZXR1anVpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICdzZWphcmFoIFpvb20vRGVrYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICdJVFNNIG1lbmd1YmFoIHRlbXBsYXRlIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICdJVFNNIG1lbmd1YmFoIGtvbmRpc2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJ1BlcnViYWhhbiBLb25kaXNpIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICdNZW5ndWJhaCBtYW5hamVyIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnTWVuZ3ViYWggUElSIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2Ugbm90aWZpY2F0aW9uIHJ1bGVzJ30gPSAnTWVuZ3ViYWggcGVyYXR1cmFuIG5vdGlmaWthc2kgSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICdQZXJ1YmFoYW4gSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJ0lraHRpc2FyIE15Q0FCIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnSWtodGlzYXIgTXlDaGFuZ2VzIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnSWtodGlzYXIgTXlXb3Jrb3JkZXJzIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnTWVuZ2hhcHVzIHRlbXBsYXRlIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICdJVFNNIG1lbmdlZGl0IHRlbXBsYXRlIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICdNZW5nZWRpdCBpc2kgdGVtcGxhdGUgSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnTWVuZ2VkaXQgdGVtcGxhdGUgSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJ1RlbXBsYXRlIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICdJVFNNIGFjYXJhIG1vZHVsIHlhbmcgbWVtYmVyc2loa2FuIGtvbmRpc2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICdJVFNNIGFjYXJhIG1vZHVsIHlhbmcgbWVuZ2hhcHVzIGNhY2hlIHVudHVrIHRvb2xiYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJ0lUU00gYWNhcmEgbW9kdWwgeWFuZyBtZW5naGFwdXMgc2VqYXJhaCBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnSVRTTSBhY2FyYSBtb2R1bCB5YW5nIGNvY29rIGtvbmRpc2kgZGFuIG1lbmdla3Nla3VzaSB0aW5kYWthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJ0lUU00gYWNhcmEgbW9kdWwgeWFuZyBtZW5naXJpbWthbiBwZW1iZXJpdGFodWFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICdJVFNNIGFjYXJhIG1vZHVsIHlhbmcgdXBkYXRlIHNlamFyYWggcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICdJVFNNIGFjYXJhIG1vZHVsIHlhbmcgdXBkYXRlIHNlamFyYWgga29uZGlzaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIHdvcmtvcmRlcnMuJ30gPSAnSVRTTSBhY2FyYSBtb2R1bCB5YW5nIHVwZGF0ZSBzZWphcmFoIHBlcmludGFoIGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnSVRTTSBhY2FyYSBtb2R1bCB1bnR1ayBtZW5naGl0dW5nIGFuZ2thIHBlcmludGFoIGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICdJVFNNIGFjYXJhIG1vZHVsIHVudHVrIG1lbmdhdHVyIHNlYmVuYXJueWEgbXVsYWkgZGFuIGFraGlyIGRhcmkgcGVyaW50YWgga2VyamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICdQZXJ1YmFoYW4gSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnVGF0YSBLZXJqYSBJVFNNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnSmlrYSBmcmVrdWVuc2kgXCd0ZXJhdHVyXCcsIEFuZGEgZGFwYXQgbWVuZ2tvbmZpZ3VyYXNpIHNlYmVyYXBhIHNlcmluZyBwZW1iZXJpdGFodWFuIGRpa2lyaW0gKHNldGlhcCBYIGphbSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJ0xvb2t1cCBhbmdnb3RhIENBQiB1bnR1ayBwZWxlbmdrYXBhbiBvdG9tYXRpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnTG9va3VwIGFnZW4sIHlhbmcgZGlndW5ha2FuIHVudHVrIG1lbGVuZ2thcGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnTW9kdWwgdW50dWsgbWVtZXJpa3NhIGFwYWthaCBXb3JrT3JkZXJBZGQgYXRhdSBXb3JrIE9yZGVyIEFkZEZyb21UZW1wbGF0ZSBoYXJ1cyBkaWlqaW5rYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnTW9kdWwgdW50dWsgbWVtZXJpa3NhIGFuZ2dvdGEgQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGFnZW50Lid9ID0gJ01vZHVsIHVudHVrIG1lbWVyaWtzYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBidWlsZGVyLid9ID0gJ01vZHVsIHVudHVrIG1lbWVyaWtzYSBwZXJ1YmFoYW4gcGVtYmFuZ3VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnTW9kdWwgdW50dWsgbWVtZXJpa3NhIHBlcnViYWhhbiBtYW5hamVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJ01vZHVsIHVudHVrIG1lbWVyaWtzYSBhZ2VuIHBlcmludGFoIGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJ01vZHVsIHVudHVrIG1lbWVyaWtzYSBhcGFrYWggYWRhIGFnZW4gcGVyaW50YWgga2VyamEgZGlhdHVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICdNb2R1bCB1bnR1ayBtZW1lcmlrc2EgYXBha2FoIGFnZW4geWFuZyB0ZXJrYW5kdW5nIGRhbGFtIGRhZnRhciBkaWtvbmZpZ3VyYXNpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnTW9kdWwgdW50dWsgbWVudW5qdWtrYW4gbGluayB1bnR1ayBtZW1idWF0IHBlcnViYWhhbiBkYXJpIHRpa2V0IGluaS4gdGlrZXQgYWthbiBvdG9tYXRpcyB0ZXJodWJ1bmcgZGVuZ2FuIHBlcnViYWhhbiBiYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICdQaW5kYWggV2FrdHUgU2xvdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnQmFydSAoZGFyaSB0ZW1wbGF0ZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdIYW55YSBwZW5nZ3VuYSBkYXJpIGtlbG9tcG9rLWtlbG9tcG9rIGluaSBtZW1pbGlraSBpemluIHVudHVrIG1lbmdndW5ha2FuIGplbmlzIHRpa2V0IHNlYmFnYWltYW5hIGRpZGVmaW5pc2lrYW4gZGFsYW0gIklUU00gUGVydWJhaGFuIDo6IEFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgamlrYSBmaXR1ciAiVGlja2V0IDo6IEFjbCA6OiBNb2R1bCAjIyMgMjAwLVRpY2tldCA6OiBBY2wgOjogTW9kdWwiIGRpYWt0aWZrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnUGVuZ2F0dXJhbiBMYWluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJ30gPSAnR2FtYmFyYW4gYXRhcyBzZW11YSBQZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSd9ID0gJ1BJUiAoUG9zdCBJbXBsZW1lbnRhc2kgUmV2aWV3KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQU0EnfSA9ICdQU0EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBvYmplY3QgaW4gdGhlIHByZWZlcmVuY2UgdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnUGFyYW1ldGVyIHVudHVrIFBlbmdndW5hIEJ1YXQgV29ya09yZGVyTmV4dE1hc2sgb2JqZWsgZGFsYW0gcGFuZGFuZ2FuIHByZWZlcmVuc2kgYW50YXJtdWthIGFnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIGNoYW5nZXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnUGFyYW1ldGVyIHVudHVrIGhhbGFtYW4gKGRpIG1hbmEgcGVydWJhaGFuIGFrYW4gZGl0YW1waWxrYW4pIGRhcmkgZ2FtYmFyYW4gcGVydWJhaGFuIGtlY2lsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJ01lbGFrdWthbiB0aW5kYWthbiBkaWtvbmZpZ3VyYXNpIHVudHVrIHNldGlhcCBhY2FyYSAoc2ViYWdhaSBJbnZva2VyKSB1bnR1ayBzZXRpYXAgTGF5YW5hbiBXZWIgZGlrb25maWd1cmFzaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJ1Byb3lla3NpIExheWFuYW4gS2V0ZXJzZWRpYWFuIChQU0EpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJ1Byb3lla3NpIExheWFuYW4gS2V0ZXJzZWRpYWFuIChQU0EpIHBlcnViYWhhbi4gSWtodGlzYXIgcGVydWJhaGFuIGRpc2V0dWp1aSBkYW4gbGF5YW5hbiBtZXJla2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdoYWsgZGlwZXJsdWthbiBhZ2FyIGFnZW4gdW50dWsgbWVuZ2FtYmlsIHBlcmludGFoIGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnaGFrIHlhbmcgZGlwZXJsdWthbiB1bnR1ayBtZW5nYWtzZXMgZ2FtYmFyYW4gZGFyaSBzZW11YSBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJ2hhayBkaXBlcmx1a2FuIHVudHVrIG1lbmFtYmFoa2FuIHBlcmludGFoIGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJ2hhayBkaXBlcmx1a2FuIHVudHVrIG1lbmd1YmFoIGFnZW4gcGVyaW50YWgga2VyamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICdoYWsgeWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbWJ1YXQgdGVtcGxhdGUgZGFyaSBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICdoYWsgeWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbWJ1YXQgdGVtcGxhdGUgZGFyaSBwZXJ1YmFoYW4gQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nfSA9ICdoYWsgeWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbWJ1YXQgdGVtcGxhdGUgZGFyaSBwZXJpbnRhaCBrZXJqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICdoYWsgeWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbWJ1YXQgcGVydWJhaGFuIGRhcmkgdGVtcGxhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnaGFrIHlhbmcgZGlwZXJsdWthbiB1bnR1ayBtZW1idWF0IHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nfSA9ICdoYWsgZGlwZXJsdWthbiB1bnR1ayBtZW5naGFwdXMgdGVtcGxhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJ2hhayBkaXBlcmx1a2FuIHVudHVrIG1lbmdoYXB1cyBwZXJpbnRhaCBrZXJqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICdoYWsgZGlwZXJsdWthbiB1bnR1ayBtZW5naGFwdXMgcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICdoYWsgZGlwZXJsdWthbiB1bnR1ayBtZW5nZWRpdCB0ZW1wbGF0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJ2hhayBkaXBlcmx1a2FuIHVudHVrIG1lbmdlZGl0IHBlcmludGFoIGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICdoYWsgZGlwZXJsdWthbiB1bnR1ayBtZW5nZWRpdCBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJ2hhayBkaXBlcmx1a2FuIHVudHVrIG1lbmdlZGl0IGtvbmRpc2kgcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICdoYWsgZGlwZXJsdWthbiB1bnR1ayBtZW5nZWRpdCBpc2kgZGFyaSB0ZW1wbGF0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAnaGFrIGRpcGVybHVrYW4gdW50dWsgbWVuZ2VkaXQgb3JhbmcgeWFuZyB0ZXJsaWJhdCBkYXJpIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICdoYWsgeWFuZyBkaWJ1dHVoa2FuIHVudHVrIG1lbWluZGFoa2FuIHBlcnViYWhhbiB3YWt0dS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICdoYWsgeWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbmNldGFrIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJ2hhayBkaXBlcmx1a2FuIHVudHVrIG1lLXJlc2V0IHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJ2hhayBkaXBlcmx1a2FuIHVudHVrIG1lbGloYXQgcGVyaW50YWgga2VyamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJ2hhayBkaXBlcmx1a2FuIHVudHVrIG1lLXJldmlldyBNZWxpaGF0IGhhbCBQZXJpbnRhaCBrZXJqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICdoYWsgZGlwZXJsdWthbiB1bnR1ayBtZWxpaGF0IGRhZnRhciBwZXJ1YmFoYW4gZGkgbWFuYSBwZW5nZ3VuYSBhZGFsYWggYW5nZ290YSBDQUIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0KICAgICAgICAnaGFrIGRpcGVybHVrYW4gdW50dWsgbWVsaWhhdCBkYWZ0YXIgcGVydWJhaGFuIGRpIG1hbmEgcGVuZ2d1bmEgYWRhbGFoIHBlcnViYWhhbiBtYW5hamVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBvdmVydmlldyBvdmVyIGFsbCB0ZW1wbGF0ZXMuJ30gPSAnaGFrIGRpcGVybHVrYW4gdW50dWsgbWVsaWhhdCBnYW1iYXJhbiBhdGFzIHNlbXVhIHRlbXBsYXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICdoYWsgZGlwZXJsdWthbiB1bnR1ayBtZWxpaGF0IGtvbmRpc2kgcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnaGFrIGRpcGVybHVrYW4gdW50dWsgbWVsaWhhdCBzZWphcmFoIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJ2hhayBkaXBlcmx1a2FuIHVudHVrIG1lbGloYXQgc2VqYXJhaCBwZXJpbnRhaCBrZXJqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJ30gPSAnaGFrIGRpcGVybHVrYW4gdW50dWsgbWVsaWhhdCB6b29tIHNlamFyYWggcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJ2hhayBkaXBlcmx1a2FuIHVudHVrIG1lbGloYXQgem9vbSBzZWphcmFoIHBlcmludGFoIGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJ2hhayBkaXBlcmx1a2FuIHVudHVrIG1lbGloYXQgZGFmdGFyIFBlcnViYWhhbiBKYWR3YWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJ2hhayBkaXBlcmx1a2FuIHVudHVrIG1lbGloYXQgZGFmdGFyIHBlcnViYWhhbiBQU0EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICdoYWsgZGlwZXJsdWthbiB1bnR1ayBtZWxpaGF0IGRhZnRhciBwZXJ1YmFoYW4gZGVuZ2FuIFBJUiBtZW5kYXRhbmcgKFBvc3QgUGVsYWtzYW5hYW4gUmV2aWV3KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJ2hhayBkaXBlcmx1a2FuIHVudHVrIG1lbGloYXQgZGFmdGFyIHBlcnViYWhhbiBzZW5kaXJpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnaGFrIGRpcGVybHVrYW4gdW50dWsgbWVsaWhhdCBkYWZ0YXIgcGVyaW50YWgga2VyamEgc2VuZGlyaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICdoYWsgZGlwZXJsdWthbiB1bnR1ayBtZW51bGlzIGxhcG9yYW4gdW50dWsgcGVyaW50YWgga2VyamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICdVbGFuZyBwZXJ1YmFoYW4gZGFuIHBlcmludGFoIGtlcmphIG55YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJ3R1Z2FzIGRpamFsYW5rYW4gdW50dWsgbWVtZXJpa3NhIGFwYWthaCB3YWt0dSB0ZXJ0ZW50dSB0ZWxhaCBkaWNhcGFpIGRhbGFtIHBlcnViYWhhbiBkYW4gcGVyaW50YWgga2VyamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJ0xheWFyIHNldGVsYWggbWVtYnVhdCBwZXJpbnRhaCBrZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJ0NhcmkgcGVydWJhaGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzLid9ID0gJ0NhcmkgUGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lid9ID0KICAgICAgICAnTWVtaWxpaCBtb2R1bCBqdW1sYWggcGVydWJhaGFuIHBlbWJhbmdraXQuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnQganVtbGFoIHBlcnViYWhhbiwgU3lzdGVtSUQgZGFuIG1lamEgeWFuZyBkaWd1bmFrYW4gZGVuZ2FuIGZvcm1hdCB5YW5nIFN5c3RlbUlELmNvdW50ZXIgKE1pc2FsbnlhIDEwMC4xMTgsIDEwMC4xMTkpLiBEZW5nYW4gIlRhbmdnYWwiLCBhbmdrYSBwZXJ1YmFoYW4gYWthbiBkaWhhc2lsa2FuIG9sZWggdGFuZ2dhbCBkYW4gY291bnRlcjsgZm9ybWF0IGluaSB0YW1wYWsgc2VwZXJ0aSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBtaXNhbG55YSAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBEZW5nYW4gIkRhdGVDaGVja3N1bSIsIGNvdW50ZXIgYWthbiBkaXRhbWJhaGthbiBzZWJhZ2FpIGNoZWNrc3VtIHVudHVrIHN0cmluZyBkYXJpIHRhbmdnYWwgZGl0YW1iYWggU3lzdGVtSUQuIGNoZWNrc3VtIGFrYW4gZGlwdXRhciBzZXRpYXAgaGFyaS4gRm9ybWF0IGluaSB0ZXJsaWhhdCBzZXBlcnRpIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIG1pc2FsbnlhIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkF1dG9JbmNyZW1lbnQiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBEZWZhdWx0IGlzIDUsIHRoaXMgbWVhbnMgdGhlIGNvdW50ZXIgc3RhcnRzIGZyb20gMTAwMDAuJ30gPQogICAgICAgICdNZW5ldGFwa2FuIG1pbmltYWwgdWt1cmFuIHBlcnViYWhhbiBjb3VudGVyIChqaWthICJhdXRvX2luY3JlbWVudCIgdGVycGlsaWggc2ViYWdhaSBQZXJ1YmFoYW4gSVRTTSA6OiBOdW1iZXIgR2VuZXJhdG9yKS4gRGVmYXVsdCBhZGFsYWggNSwgaW5pIGJlcmFydGkga29udGVyIGRpbXVsYWkgZGFyaSAxMDAwMC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3IgY2hhbmdlcy4nfSA9ICdTZXQgdXAgbWVzaW4gdW50dWsgcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJ1NldCB1cCBtZXNpbiB1bnR1ayBwZXJpbnRhaCBrZXJqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBjaGVja2JveCBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGlmIHRoZSB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGFsc28gYmUgbW92ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgbW9kaWZpZWQgYW5kIHRoZSBwbGFubmVkIGVuZCB0aW1lIGhhcyBjaGFuZ2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBjaGFuZ2luZyB0aGUgd29ya29yZGVyIGFnZW50LCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBsaW5rIGRhbGFtIG1lbnUgeWFuZyBtZW11bmdraW5rYW4gbWVuZGVmaW5pc2lrYW4gcGVydWJhaGFuIHNlYmFnYWkgdGVtcGxhdGUgZGFsYW0gdGFtcGlsYW4gem9vbSBwZXJ1YmFoYW4sIGRhbGFtIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBsaW5rIGRhbGFtIG1lbnUgeWFuZyBtZW11bmdraW5rYW4gbWVuZGVmaW5pc2lrYW4gcGVyaW50YWgga2VyamEgc2ViYWdhaSB0ZW1wbGF0ZSBkYWxhbSB0YW1waWxhbiB6b29tIGRhcmkgcGVyaW50YWgga2VyamEsIGRpIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBsaW5rIGRhbGFtIG1lbnUgeWFuZyBtZW11bmdraW5rYW4gbWVuZ2h1YnVuZ2thbiBwZXJ1YmFoYW4gZGVuZ2FuIG9iamVrIGxhaW4gcGFkYSB0YW1waWxhbiBwZXJ1YmFoYW4gem9vbSBkYXJpIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBsaW5rIGRhbGFtIG1lbnUgeWFuZyBtZW11bmdraW5rYW4gYmVyZ2VyYWsgc2xvdCB3YWt0dSBwZXJ1YmFoYW4gZGFsYW0gdGFtcGlsYW4gem9vbS1ueWEgZGFyaSBhbnRhcm11a2EgYWdlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRha2luZyBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVudW5qdWtrYW4gbGluayBkYWxhbSBtZW51IHlhbmcgbWVtdW5na2lua2FuIG1lbmdhbWJpbCBwZXJpbnRhaCBrZXJqYSBkYWxhbSB0YW1waWxhbiB6b29tLW55YSBkYXJpIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBsaW5rIGRhbGFtIG1lbnUgdW50dWsgbWVuZ2Frc2VzIGtvbmRpc2kgcGVydWJhaGFuIHlhbmcgem9vbSBwYW5kYW5nYW4gYWdlbiBhbnRhcm11a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lbnVuanVra2FuIGxpbmsgZGFsYW0gbWVudSB1bnR1ayBtZW5nYWtzZXMgc2VqYXJhaCBkYXJpIHBlcnViYWhhbiBkYWxhbSB0YW1waWxhbiB6b29tLW55YSBkYXJpIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBsaW5rIGRhbGFtIG1lbnUgdW50dWsgbWVuZ2Frc2VzIHNlamFyYWggcGVyaW50YWgga2VyamEgZGFsYW0gdGFtcGlsYW4gem9vbS1ueWEgZGFyaSBhbnRhcm11a2EgYWdlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVudW5qdWtrYW4gbGluayBkYWxhbSBtZW51IHVudHVrIG1lbmFtYmFoa2FuIHBlcmludGFoIGtlcmphIGRhbGFtIHRhbXBpbGFuIHBlcnViYWhhbiB6b29tIGRhcmkgYW50YXJtdWthIGFnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVudW5qdWtrYW4gbGluayBkYWxhbSBtZW51IHVudHVrIG1lbmdoYXB1cyBwZXJ1YmFoYW4gZGFsYW0gcGFuZGFuZ2FuIHpvb20tbnlhIGRhcmkgYW50YXJtdWthIGFnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVudW5qdWtrYW4gbGluayBkYWxhbSBtZW51IHVudHVrIG1lbmdoYXB1cyBwZXJpbnRhaCBrZXJqYSBkYWxhbSBwYW5kYW5nYW4gem9vbS1ueWEgZGFyaSBhbnRhcm11a2EgYWdlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lbnVuanVra2FuIGxpbmsgZGFsYW0gbWVudSB1bnR1ayBtZW5nZWRpdCBwZXJ1YmFoYW4gZGFsYW0gdGFtcGlsYW4gem9vbS1ueWEgZGFyaSBhbnRhcm11a2EgYWdlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lbnVuanVra2FuIGxpbmsgZGFsYW0gbWVudSB1bnR1ayBtZW5nZWRpdCBwZXJpbnRhaCBrZXJqYSBkYWxhbSB0YW1waWxhbiB6b29tLW55YSBkYXJpIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVudW5qdWtrYW4gbGluayBkYWxhbSBtZW51IHVudHVrIGtlbWJhbGkgZGFsYW0gdGFtcGlsYW4gcGVydWJhaGFuIHpvb20gZGFyaSBhbnRhcm11a2EgYWdlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lbnVuanVra2FuIGxpbmsgZGFsYW0gbWVudSB1bnR1ayBrZW1iYWxpIGRhbGFtIHVydXRhbiBrZXJqYSB0YW1waWxhbiB6b29tIGRhcmkgYW50YXJtdWthIGFnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVudW5qdWtrYW4gbGluayBkYWxhbSBtZW51IHVudHVrIG1lbmNldGFrIHBlcnViYWhhbiBkYWxhbSB0YW1waWxhbiB6b29tLW55YSBkYXJpIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lbnVuanVra2FuIGxpbmsgZGFsYW0gbWVudSB1bnR1ayBtZW5jZXRhayBwZXJpbnRhaCBrZXJqYSBkYWxhbSB0YW1waWxhbiB6b29tLW55YSBkYXJpIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lbnVuanVra2FuIGxpbmsgZGFsYW0gbWVudSB1bnR1ayBtZW5nYXR1ciB1bGFuZyBwZXJ1YmFoYW4gZGFuIHBlcmludGFoIGtlcmphIGRhbGFtIHRhbXBpbGFuIHpvb20tbnlhIGRhcmkgYW50YXJtdWthIGFnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lbnVuanVra2FuIHNlamFyYWggcGVydWJhaGFuICh1cnV0YW4gdGVyYmFsaWspIGRpIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnU3RhdGUgbWVzaW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ1NpbXBhbiBwZXJ1YmFoYW4gZGFuIHBlcmludGFoIGtlcmphIGlkIGRhbiBUZW1wbGF0ZSBpZCB5YW5nIHNlc3VhaSBtZXJla2EsIHNlbWVudGFyYSBwZW5nZ3VuYSBtZW5nZWRpdCB0ZW1wbGF0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICdBbWJpbCBXb3JrIE9yZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJ01lbmdhbWJpbCBwZXJpbnRhaCBrZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnSWtodGlzYXIgVGVtcGxhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICdUZW1wbGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnUGVuZ2VuYWwgdW50dWsgcGVydWJhaGFuLCBtaXNhbG55YS4gR2FudGkgIywgIHBlcnViYWhhbiBzYXlhIy4gZGVmYXVsdCBCZXJ1YmFoICMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICdQZW5nZW5hbCB1bnR1ayBwZXJpbnRhaCBrZXJqYSwgbWlzYWxueWEgV29ya29yZGVyICMsIFdvcmtvcmRlciAjLiBTdGFuZGFybnlhIGFkYWxhaCBXb3JrIE9yZGVyICMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICdNb2R1bCBBQ0wgaW5pIG1lbWJhdGFzaSBwZW5nZ3VuYWFuIGplbmlzIHRpa2V0IHlhbmcgZGlkZWZpbmlzaWthbiBkYWxhbSBwaWxpaGFuIHN5c2NvbmZpZyBcJ0lUU01DaGFuZ2UgOjogQWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHVudHVrIHBlbmdndW5hIGtlbG9tcG9rIHNlYmFnYWltYW5hIGRpZGVmaW5pc2lrYW4gZGFsYW0gIklUU01DaGFuZ2UgOjogUmVzdHJpY3RUaWNrZXRUeXBlcyA6OiBHcnVwIi4gU2ViYWdhaSBBQ0wgaW5pIGJpc2EgYmVyYmVudHVyYW4gZGVuZ2FuIEFDTCBsYWluIHlhbmcganVnYSB0ZXJrYWl0IGRlbmdhbiBqZW5pcyB0aWtldCwgb3BzaSBzeXNjb25maWcgaW5pIGRpbm9uYWt0aWZrYW4gc2VjYXJhIGRlZmF1bHQgZGFuIGhhbnlhIGhhcnVzIGRpYWt0aWZrYW4gamlrYSBkaXBlcmx1a2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICd3YWt0dSBTbG90JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICdKZW5pcyB0aWtldCwgZGkgbWFuYSBkYWxhbSB6b29tIHRpa2V0IG1lbGloYXQgbGluayB1bnR1ayBtZW5hbWJhaGthbiBwZXJ1YmFoYW4gYWthbiBkaXRhbXBpbGthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICdDYXJpIHBlbmdndW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJ1RhbWJhaGFuIFBlcmludGFoIEtlcmphIChkYXJpIHRlbXBsYXRlKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICdQZXJpbnRhaCBrZXJqYSBkaXRhbWJhaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnQWdlbiBwZXJpbnRhaCBrZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJ1BlcmludGFoIGtlcmphIGRpaGFwdXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnUGVyaW50YWgga2VyamEgZGkgZWRpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJ1NlamFyYWggcGVyaW50YWgga2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnU2VqYXJhaCBwZXJpbnRhaCBrZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJ0xhcG9yYW4gcGVyaW50YWgga2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnUGVyaW50YWgga2VyamEgem9vbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnU2VrYWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJ3NlY2FyYSB0ZXJhdHVyJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/it_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aXRfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0NhdGVnb3JpYSDihpQgSW1wYXR0byDihpQgUHJpb3JpdMOgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgcHJpb3JpdHkgcmVzdWx0IG9mIGNvbWJpbmF0aW5nIENhdGVnb3J5IOKGlCBJbXBhY3QuJ30gPQogICAgICAgICdHZXN0aXJlIGlsIHJpc3VsdGF0byBwcmlvcml0YXJpbyBkZWxsYSBjb21iaW5hemlvbmUgZGkgQ2F0ZWdvcmlhIOKGlCBJbXBhdHRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eSBhbGxvY2F0aW9uJ30gPSAnQXNzZWduYXppb25lIHByaW9yaXRhcmlhJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VNYW5hZ2VtZW50IE5vdGlmaWNhdGlvbiBNYW5hZ2VtZW50J30gPSAnR2VzdGlvbmUgZGVsbGUgbm90aWZpY2hlIGRpIENoYW5nZU1hbmFnZW1lbnQgSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICdBZ2dpdW5naSByZWdvbGEgZGkgbm90aWZpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJ01vZGlmaWNhIHJlZ29sYSBkaSBub3RpZmljYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnVW5hIG5vdGlmaWNhIGRldmUgYXZlcmUgdW4gbm9tZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmFtZSBpcyByZXF1aXJlZC4nfSA9ICdJbCBub21lIMOoIG9iYmxpZ2F0b3Jpby4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBTdGF0ZSBNYWNoaW5lJ30gPSAnQWRtaW4gU3RhdGUgTWFjaGluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYSBjYXRhbG9nIGNsYXNzISd9ID0gJ1NlbGV6aW9uYSB1bmEgY2xhc3NlIGRpIGNhdGFsb2dvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGFsb2cgY2xhc3MgaXMgcmVxdWlyZWQhJ30gPSAnVW5hIGNsYXNzZSBkaSBjYXRhbG9nbyDDqCByaWNoaWVzdGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdBZ2dpdW5naSB1bmEgdHJhbnNpemlvbmUgZGkgc3RhdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ0NsYXNzZSBkaSBDYXRhbG9nbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPYmplY3QgTmFtZSd9ID0gJ05vbWUgb2dnZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIHN0YXRlIHRyYW5zaXRpb25zIGZvcid9ID0gJ1Bhbm9yYW1pY2Egc3VsbGUgdHJhbnNpemlvbmkgZGkgc3RhdG8gcGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdFbGltaW5hIHF1ZXN0YSB0cmFuc2l6aW9uZSBkaSBzdGF0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICdBZ2dpdW5naSB1bmEgbnVvdmEgdHJhbnNpemlvbmUgZGkgc3RhdG8gcGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICdTZWxlemlvbmEgdW5vIHN0YXRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICdTZWxlemlvbmEgdW5vIHN0YXRvIHN1Y2Nlc3Npdm8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ01vZGlmaWNhIHVuYSB0cmFuc2l6aW9uZSBkaSBzdGF0byBwZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ1Z1b2kgdmVyYW1lbnRlIGNhbmNlbGxhcmUgbGEgdHJhbnNpemlvbmUgZGkgc3RhdG8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnQWdnaXVuZ2kgbW9kaWZpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UnfSA9ICdJVFNNIENoYW5nZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKdXN0aWZpY2F0aW9uJ30gPSAnR2l1c3RpZmljYXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAnSW5wdXQgbm9uIHZhbGlkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICdEYXRhIHJpY2hpZXN0YSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBDaGFuZ2UgVGVtcGxhdGUnfSA9ICdTZWxlemlvbmEgQ2FtYmlhIG1vZGVsbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAnVGlwbyBkaSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICdUaXBvIGRpIHRlbXBvIG5vbiB2YWxpZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB0aW1lJ30gPSAnTnVvdm8gdGVtcG8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ1NhbHZhIE1vZGlmaWNhIENBQiBjb21lIG1vZGVsbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICd2YWkgYWxsYSBzY2hlcm1hdGEgZGVsbGUgcGVyc29uZSBjb2ludm9sdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnTm9tZSBub24gdmFsaWRvJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJ0NvbmRpemlvbmkgZSBhemlvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENvbmRpdGlvbid9ID0gJ0VsaW1pbmEgY29uZGl6aW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJ0FnZ2l1bmdpIG51b3ZhIGNvbmRpemlvbmUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICdNb2RpZmljYSBjb25kaXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJ0hhaSBiaXNvZ25vIGRpIHVuIG5vbWUgdmFsaWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJ8OIIG5lY2Vzc2FyaW8gdW4gbm9tZSB2YWxpZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJ05vbWUgZHVwbGljYXRvOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJ1F1ZXN0byBub21lIMOoIGdpw6AgdXRpbGl6emF0byBkYSB1blwnYWx0cmEgY29uZGl6aW9uZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICdBY2NvcHBpYW1lbnRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FueSBleHByZXNzaW9uIChPUiknfSA9ICdRdWFsc2lhc2kgZXNwcmVzc2lvbmUgKE9SKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICdUdXR0ZSBsZSBlc3ByZXNzaW9uaSAoQU5EKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJ0VzcHJlc3Npb25pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdG9yJ30gPSAnU2VsZXR0b3JlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZXJhdG9yJ30gPSAnT3BlcmF0b3JlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBFeHByZXNzaW9uJ30gPSAnRWxpbWluYSBlc3ByZXNzaW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICdOZXNzdW5hIGVzcHJlc3Npb25lIHRyb3ZhdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJ0FnZ2l1bmdpIG51b3ZhIGVzcHJlc3Npb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICdFbGltaW5hIGF6aW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBBY3Rpb25zIGZvdW5kLid9ID0gJ05lc3N1bmEgYXppb25lIHRyb3ZhdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAnQWdnaXVuZ2kgbnVvdmEgYXppb25lJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICdWdW9pIHZlcmFtZW50ZSBjYW5jZWxsYXJlIHF1ZXN0YSBtb2RpZmljYT8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnTW9kaWZpY2FyZSAlcyVzJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJ1N0b3JpY28gZGkgJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICdDb250ZW51dG8gZGVsbG8gc3Rvcmljbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICdPcmRpbmUgZGkgbGF2b3JvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICdJc3RhbnRlIGRpIGNyZWF6aW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICdNb3N0cmEgaSBkZXR0YWdsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJ01vc3RyYXJlIG9yZGluZSBkaSBsYXZvcm8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICdJbmZvcm1hemlvbmkgZGV0dGFnbGlhdGUgc3VsbGEgc3RvcmlhIGRpICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnTW9kaWZpY2F0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbGQgVmFsdWUnfSA9ICdWZWNjaGlvIHZhbG9yZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICdOdW92byB2YWxvcmUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJ01vZGlmaWNhIHBlcnNvbmUgY29pbnZvbHRlIGRpICVzJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52b2x2ZWQgUGVyc29ucyd9ID0gJ1BlcnNvbmUgY29pbnZvbHRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICdDaGFuZ2VNYW5hZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaW52YWxpZC4nfSA9ICdVdGVudGUgbm9uIHZhbGlkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcid9ID0gJ0NoYW5nZUJ1aWxkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnQ29uc2lnbGlvIGNvbnN1bHRpdm8gZGVsIGNhbWJpYW1lbnRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJ01vZGVsbG8gQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnQXBwbGljYSBNb2RlbGxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAnTmV3VGVtcGxhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ1NhbHZhIHF1ZXN0byBDQUIgY29tZSBtb2RlbGxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICdBZ2dpdW5naSBhIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICdVdGVudGUgbm9uIHZhbGlkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJ0NBQiBjb3JyZW50ZSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ0ltcG9zdGF6aW9uaSBkaSBjb250ZXN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAnTW9kaWZpY2hlIHBlciBwYWdpbmEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnVGl0b2xvIGRlbGxcJ29yZGluZSBkaSBsYXZvcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnQ2FtYmlhIHRpdG9sbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICdBZ2VudGUgZGkgb3JkaW5lIGRpIGxhdm9ybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJ0NhbWJpYSBjb3N0cnV0dG9yZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTWFuYWdlcid9ID0gJ0dlc3Rpb25lIGRlaSBDaGFuZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJ09yZGluaSBkaSBsYXZvcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnQ2FtYmlhIHN0YXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJ1N0YXRvIGRlbGxcJ29yZGluZSBkaSBsYXZvcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFR5cGUnfSA9ICdUaXBvIGRpIG9yZGluZSBkaSBsYXZvcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIFRpbWUnfSA9ICdUZW1wbyByaWNoaWVzdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAnT3JhIGRpIGluaXppbyBwaWFuaWZpY2F0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnT3JhIGRpIGZpbmUgcGlhbmlmaWNhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICdPcmEgZGkgaW5pemlvIGVmZmV0dGl2YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICdPcmEgZGkgZmluZSBlZmZldHRpdmEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICdWdW9pIGRhdnZlcm8gcmlwcmlzdGluYXJlIHF1ZXN0YSBtb2RpZmljYT8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoZS5nLiAxMCo1MTU1IG9yIDEwNTY1OCopJ30gPSAnKGFkIGVzLiBcJzEwKjUxNTVcJyBvIFwnMTA1NjU4KlwnKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICdBZ2VudGUgQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICdhZCBlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnQ2xpZW50ZSBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICdJc3RydXppb25pIHBlciBsXCdvcmRpbmF0b3JlIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAnUmFwcG9ydG8gc3VsbFwnb3JkaW5lIGRpIGxhdm9ybyBJVFNNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAnUHJpb3JpdMOgIGRpIGNhbWJpYW1lbnRvIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAnSW1wYXR0byBkZWwgY2FtYmlhbWVudG8gSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICdDYW1iaWEgY2F0ZWdvcmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnKHByaW1hL2RvcG8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyh0cmEpJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBhcyBUZW1wbGF0ZSd9ID0gJ1NhbHZhIG1vZGlmaWNhIGNvbWUgbW9kZWxsbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBsYXRlIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdVbiBtb2RlbGxvIGRvdnJlYmJlIGF2ZXJlIHVuIG5vbWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJ8OIIHJpY2hpZXN0byBpbCBub21lIGRlbCBtb2RlbGxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICdSaXByaXN0aW5hIFN0YXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJ1NvdnJhc2NyaXZpIG1vZGVsbG8gb3JpZ2luYWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICdFbGltaW5hIGxhIG1vZGlmaWNhIG9yaWdpbmFsZSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QnfSA9ICdTcG9zdGEgZmFzY2lhIG9yYXJpYSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICdNb2RpZmljYSBpbmZvcm1hemlvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICdTZm9yem8gcGlhbmlmaWNhdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICdUZW1wbyBjb250YWJpbGl6emF0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnQ2FtYmlhIGluaXppYXRvcmUoaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCJ30gPSAnQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCd9ID0gJ1VsdGltYSBtb2RpZmljYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICdVbHRpbWEgbW9kaWZpY2EgZWZmZXR0dWF0YSBkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJ1BlciBhcHJpcmUgaSBjb2xsZWdhbWVudGkgbmVpIHNlZ3VlbnRpIGJsb2NjaGkgZGVzY3JpemlvbmUsIHBvdHJlYmJlIGVzc2VyZSBuZWNlc3NhcmlvIHByZW1lcmUgQ3RybCBvIENtZCBvIFNoaWZ0IG1lbnRyZSBzaSBjbGljY2Egc3VsIGNvbGxlZ2FtZW50byAoYSBzZWNvbmRhIGRlbCBicm93c2VyIGUgZGVsIFNpc3RlbWEgT3BlcmF0aXZvKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ1NjYXJpY2EgQWxsZWdhdG8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJ01vZGlmaWNhIG1vZGVsbG8gQ0FCJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnQ2nDsiBjcmVlcsOgIHVuYSBudW92YSBtb2RpZmljYSBkYSBxdWVzdG8gbW9kZWxsbywgcXVpbmRpIHB1b2kgbW9kaWZpY2FybG8gZSBzYWx2YXJsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5ldyBjaGFuZ2Ugd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgaXQgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICdMYSBudW92YSBtb2RpZmljYSB2ZXJyw6AgZWxpbWluYXRhIGF1dG9tYXRpY2FtZW50ZSBkb3BvIGVzc2VyZSBzdGF0YSBzYWx2YXRhIGNvbWUgbW9kZWxsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyB3b3Jrb3JkZXIgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICdDacOyIGNyZWVyw6AgdW4gbnVvdm8gb3JkaW5lIGRpIGxhdm9ybyBkYSBxdWVzdG8gbW9kZWxsbywgaW4gbW9kbyBjaGUgdHUgcG9zc2EgbW9kaWZpY2FybG8gZSBzYWx2YXJsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wb3JhcnkgY2hhbmdlIHdpbGwgYmUgY3JlYXRlZCB3aGljaCBjb250YWlucyB0aGUgd29ya29yZGVyLid9ID0KICAgICAgICAnVmVycsOgIGNyZWF0byB1biBjYW1iaWFtZW50byB0ZW1wb3JhbmVvIGNoZSBjb250aWVuZSBsXCdvcmRpbmUgZGkgbGF2b3JvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnTGEgbW9kaWZpY2EgdGVtcG9yYW5lYSBlIGlsIG51b3ZvIG9yZGluZSBkaSBsYXZvcm8gdmVycmFubm8gZWxpbWluYXRpIGF1dG9tYXRpY2FtZW50ZSBkb3BvIGNoZSBsXCdvcmRpbmUgZGkgbGF2b3JvIMOoIHN0YXRvIHNhbHZhdG8gY29tZSBtb2RlbGxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJ1Z1b2kgY29udGludWFyZT8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJ01vZGVsbG8gSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAnTW9kaWZpY2EgY29udGVudXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJ0NyZWF0byBkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICdDYW1iaWF0byBkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGltZSd9ID0gJ0NhbWJpYSBvcmEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICdBZ2dpdW5naSBvcmRpbmUgZGkgbGF2b3JvIGEgJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnN0cnVjdGlvbid9ID0gJ0lzdHJ1emlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB3b3Jrb3JkZXIgdHlwZS4nfSA9ICdUaXBvIGRpIG9yZGluZSBkaSBsYXZvcm8gbm9uIHZhbGlkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICdMXCdvcmEgZGkgaW5pemlvIHBpYW5pZmljYXRhIGRldmUgZXNzZXJlIHByZWNlZGVudGUgYWxsXCdvcmEgZGkgZmluZSBwaWFuaWZpY2F0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAnRm9ybWF0byBub24gdmFsaWRvLic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICdTZWxlemlvbmEgbW9kZWxsbyBkaSBvcmRpbmUgZGkgbGF2b3JvJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAnTW9kaWZpY2EgYWdlbnRlIGRpIGxhdm9ybyBkaSAlcyVzJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICdWdW9pIHZlcmFtZW50ZSBjYW5jZWxsYXJlIHF1ZXN0byBvcmRpbmU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIFdvcmtvcmRlci4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgQ29uZGl0aW9uISd9ID0KICAgICAgICAnTm9uIMOoIHBvc3NpYmlsZSBlbGltaW5hcmUgcXVlc3RvIG9yZGluZSBkaSBsYXZvcm8uIMOIIHVzYXRvIGluIGFsbWVubyB1bmEgY29uZGl6aW9uZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBXb3Jrb3JkZXIgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIENvbmRpdGlvbihzKSd9ID0gJ1F1ZXN0byBvcmRpbmUgZGkgbGF2b3JvIHZpZW5lIHV0aWxpenphdG8gbmVsbGUgc2VndWVudGkgY29uZGl6aW9uZShpKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICdNb2RpZmljYSAlcyVzLSVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICdTcG9zdGFyZSBpIHNlZ3VlbnRpIG9yZGluaSBkaSBsYXZvcm8gZGkgY29uc2VndWVuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnU2UgbFwnb3JhIGRpIGZpbmUgcGlhbmlmaWNhdGEgZGkgcXVlc3RvIG9yZGluZSBkaSBsYXZvcm8gdmllbmUgbW9kaWZpY2F0YSwgZ2xpIG9yYXJpIGRpIGluaXppbyBwaWFuaWZpY2F0aSBkaSB0dXR0aSBpIHNlZ3VlbnRpIG9yZGluaSBkaSBsYXZvcm8gdmVycmFubm8gbW9kaWZpY2F0aSBkaSBjb25zZWd1ZW56YSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICdTdG9yaWEgZGkgJXMlcy0lcyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICdNb2RpZmljYSByYXBwb3J0byBkaSAlcyVzLSVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJ1JlcG9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICdMXCdvcmEgZGkgaW5pemlvIGVmZmV0dGl2YSBkZXZlIGVzc2VyZSBwcmVjZWRlbnRlIGFsbFwnb3JhIGRpIGZpbmUgZWZmZXR0aXZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICdMXCdvcmEgZGkgaW5pemlvIGVmZmV0dGl2YSBkZXZlIGVzc2VyZSBpbXBvc3RhdGEsIHF1YW5kbyDDqCBpbXBvc3RhdGEgbFwnb3JhIGRpIGZpbmUgZWZmZXR0aXZhISc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnQWdlbnRlIGF0dHVhbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnVnVvaSBkYXZ2ZXJvIHByZW5kZXJlIHF1ZXN0byBvcmRpbmU/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJ1NhbHZhIE1vZGVsbG8gZGkgbGF2b3JvIGNvbWUgbW9kZWxsbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJ0VsaW1pbmEgb3JkaW5lIGRpIGxhdm9ybyBvcmlnaW5hbGUgKGUgbW9kaWZpY2hlIGNpcmNvc3RhbnRpKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICdJbmZvcm1hemlvbmkgb3JkaW5lIGRpIGxhdm9ybyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnTm90aWZpY2EgYWdnaXVudGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJ05vdGlmaWNhIHNjb25vc2NpdXRhICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICdTaSDDqCB2ZXJpZmljYXRvIHVuIGVycm9yZSBkdXJhbnRlIGxhIGNyZWF6aW9uZSBkZWxsYSBub3RpZmljYS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJ1RyYW5zaXppb25lIGRpIHN0YXRvIGFnZ2lvcm5hdGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAnQWdnaXVudGEgdHJhbnNpemlvbmUgZGkgc3RhdG8hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBJVFNNIENoYW5nZXMnfSA9ICdQYW5vcmFtaWNhOiBtb2RpZmljaGUgSVRTTSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICdUaWNrZXQgY29uIFRpY2tldElEICVzIG5vbiBlc2lzdGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnfSA9CiAgICAgICAgJ09wemlvbmUgc3lzY29uZmlnIG1hbmNhbnRlICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICdOb24gw6ggc3RhdG8gcG9zc2liaWxlIGFnZ2l1bmdlcmUgaWwgY2FtYmlhbWVudG8hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJ30gPSAnSW1wb3NzaWJpbGUgY3JlYXJlIGlsIGNhbWJpYW1lbnRvIGRhbCBtb2RlbGxvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ8KgTmVzc3VuIENoYW5nZUlEIMOoIGRhdG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnTmVzc3VuYSBtb2RpZmljYSB0cm92YXRhIHBlciBjaGFuZ2VJRCAlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICdJbCBDQUIgZGVsIGNhbWJpYW1lbnRvICIlcyIgbm9uIMOoIHN0YXRvIHBvc3NpYmlsZSBzZXJpYWxpenphcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJ0ltcG9zc2liaWxlIGFnZ2l1bmdlcmUgaWwgbW9kZWxsby4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ01vZGlmaWNhcmUgIiVzIiBub24gdHJvdmF0byBuZWwgZGF0YWJhc2UhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnSW1wb3NzaWJpbGUgZWxpbWluYXJlIENvbmRpdGlvbklEICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICdJbXBvc3NpYmlsZSBjcmVhcmUgdW5hIG51b3ZhIGNvbmRpemlvbmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnSW1wb3NzaWJpbGUgYWdnaW9ybmFyZSBDb25kaXRpb25JRCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnSW1wb3NzaWJpbGUgYWdnaW9ybmFyZSBFeHByZXNzaW9uSUQgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnSW1wb3NzaWJpbGUgYWdnaXVuZ2VyZSB1bmEgbnVvdmEgZXNwcmVzc2lvbmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnSW1wb3NzaWJpbGUgYWdnaW9ybmFyZSBBY3Rpb25JRCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISd9ID0gJ0ltcG9zc2liaWxlIGFnZ2l1bmdlcmUgdW5hIG51b3ZhIGF6aW9uZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnSW1wb3NzaWJpbGUgZWxpbWluYXJlIEV4cHJlc3Npb25JRCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICdJbXBvc3NpYmlsZSBlbGltaW5hcmUgQWN0aW9uSUQgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICdFcnJvcmU6IHRpcG8gZGkgY2FtcG8gc2Nvbm9zY2l1dG8gIiVzIiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICdDb25kaXRpb25JRCAlcyBub24gYXBwYXJ0aWVuZSBhbCBDaGFuZ2VJRCBzcGVjaWZpY2F0byAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnTW9kaWZpY2FyZSAiJXMiIG5vbiDDqCBjb25zZW50aXRvIGVsaW1pbmFyZSB1bm8gc3RhdG8gZGkgbW9kaWZpY2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJ0ltcG9zc2liaWxlIGVsaW1pbmFyZSBpbCBjaGFuZ2VJRCAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJ0ltcG9zc2liaWxlIGFnZ2lvcm5hcmUgQ2hhbmdlISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnSW1wb3NzaWJpbGUgbW9zdHJhcmUgbGEgY3Jvbm9sb2dpYSwgcG9pY2jDqSBub24gdmllbmUgZm9ybml0byBhbGN1biBDaGFuZ2VJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICdNb2RpZmljYXJlICIlcyIgbm9uIHRyb3ZhdG8gbmVsIGRhdGFiYXNlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICdUaXBvIHNjb25vc2NpdXRvICIlcyIgaW5jb250cmF0byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICdDYW1iaWFyZSBsYSBzdG9yaWEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJ0ltcG9zc2liaWxlIG1vc3RyYXJlIGxvIHpvb20gZGVsbGEgY3Jvbm9sb2dpYSwgbm9uIHZpZW5lIGZvcm5pdG8gYWxjdW4gSGlzdG9yeUVudHJ5SUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICdIaXN0b3J5RW50cnkgIiVzIiBub24gdHJvdmF0byBuZWwgZGF0YWJhc2UhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJ0ltcG9zc2liaWxlIGFnZ2lvcm5hcmUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnfSA9ICdJbXBvc3NpYmlsZSBhZ2dpb3JuYXJlIENoYW5nZSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnUGFub3JhbWljYTogQ2hhbmdlTWFuYWdlcic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICdQYW5vcmFtaWNhOiBNeSBDQUInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICdQYW5vcmFtaWNhOiBsZSBtaWUgbW9kaWZpY2hlJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAnUGFub3JhbWljYTogSSBtaWVpIGxhdm9yaSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnUGFub3JhbWljYTogUElSJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICdQYW5vcmFtaWNhOiBQU0EnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnT3JkaW5lIGRpIGxhdm9ybyAiJXMiIG5vbiB0cm92YXRvIG5lbCBkYXRhYmFzZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnSW1wb3NzaWJpbGUgY3JlYXJlIG91dHB1dCwgcG9pY2jDqSBpbCB3b3Jrb3JkZXIgbm9uIMOoIGFzc29jaWF0byBhIHVuYSBtb2RpZmljYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ0ltcG9zc2liaWxlIGNyZWFyZSBvdXRwdXQsIHBvaWNow6kgbm9uIHZpZW5lIGZvcm5pdG8gYWxjdW4gQ2hhbmdlSUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAndGl0b2xvIGRlbCBjYW1iaWFtZW50byBzY29ub3NjaXV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJ09yZGluZSBkaSBsYXZvcm8gSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICdXb3JrT3JkZXJOdW1iZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICdXb3JrT3JkZXJUaXRsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJ3RpdG9sbyBkaSBsYXZvcm8gc2Nvbm9zY2l1dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICdDaGFuZ2VTdGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnUGxhbm5lZEVmZm9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnQWdlbnRpIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXJzJ30gPSAnQ2xpZW50aSBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJ1JlcXVlc3RlZFRpbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZFN0YXJ0VGltZSd9ID0gJ1BsYW5uZWRTdGFydFRpbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICdQbGFubmVkRW5kVGltZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxTdGFydFRpbWUnfSA9ICdBY3R1YWxTdGFydFRpbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJ0FjdHVhbEVuZFRpbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJ0NoYW5nZVRpbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnQ2hhbmdlTnVtYmVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnV29ya09yZGVyU3RhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJ1dvcmtPcmRlclR5cGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICdXb3JrT3JkZXJBZ2VudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnUGFub3JhbWljYSBzdWxsXCdvcmRpbmUgZGkgbGF2b3JvIElUU00gKCVzKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJ0ltcG9zc2liaWxlIHJpcHJpc3RpbmFyZSBXb3JrT3JkZXIgJXMgZGkgY2FtYmlhbWVudGkgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAnSW1wb3NzaWJpbGUgcmlwcmlzdGluYXJlIGxhIG1vZGlmaWNhICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICdQYW5vcmFtaWNhOiBtb2RpZmljYSBwcm9ncmFtbWEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJ0NhbWJpYSByaWNlcmNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAnQ2hhbmdlVGl0bGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ1dvcmtPcmRlcnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICdDYW1iaWEgcmlzdWx0YXRvIHJpY2VyY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJ0NhbWJpYSBudW1lcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJ1RpdG9sbyBkZWxsXCdvcmRpbmUgZGkgbGF2b3JvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJ01vZGlmaWNhIGRlc2NyaXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnTW9kaWZpY2EgZ2l1c3RpZmljYXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJ0lzdHJ1emlvbmkgc3VsbFwnb3JkaW5lIGRpIGxhdm9ybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnUmFwcG9ydG8gc3VsbFwnb3JkaW5lIGRpIGxhdm9yby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnQ2FtYmlhIHByaW9yaXTDoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSAlcyBvZiBhbGwgd29ya29yZGVycyBoYXMgdG8gYmUgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB0ZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCB3b3Jrb3JkZXIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSB0aGUgd29ya29yZGVyICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBmaW5kIENoYW5nZSBmb3IgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSBab29tJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uICVzIG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnTmVzc3VuYSBvcHppb25lIGRpIGNvbmZpZ3VyYXppb25lIHRyb3ZhdGEgcGVyIGxhIHZpc3RhICIlcyIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpdGxlOiAlcyB8IFR5cGU6ICVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ0FCcyd9ID0gJ0kgbWllaSBDQUInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICd0dXR0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICdxdWFsc2lhc2knOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9Ob3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3JzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJ3JpY2hpZXN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAnaW4gYXR0ZXNhIGRpIGFwcHJvdmF6aW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJ3JpZml1dGF0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJ2FwcHJvdmF0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJ2luIGNvcnNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAnbm9uIHJpdXNjaXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnYW5udWxsYXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAnY3JlYXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnYWNjZXR0YXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAncHJvbnRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAnYXBwcm92YXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnZGVjaXNpb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICfDqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICdub24gw6gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICfDqCB2dW90byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICdub24gw6ggdnVvdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnw6ggbWFnZ2lvcmUgZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnw6ggbWlub3JlIGRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJ8OoIHByaW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnw6ggZG9wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJ2NvbnRpZW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJ25vbiBjb250aWVuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJ2luaXppYSBjb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZW5kcyB3aXRoJ30gPSAndGVybWluYSBjb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnT2snOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICdBZ2dpdW5naSBkYSBtb2RlbGxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgV29ya29yZGVyIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIHdvcmtvcmRlciB0ZW1wbGF0ZXMgZWRpdGVkIGJ5IHRoaXMgdXNlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBudW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBFZGl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIChmcm9tIHRlbXBsYXRlKSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICdEZWZpbmlzY2UgbFwnYXppb25lIGNvbiBjdWkgaWwgYm90dG9uZSBkZWkgc2V0dGFnZ2kgw6ggZGlzcG9uaWJpbGUgaW4gdW4gb2dnZXR0byB3aWRnZXQgY29sbGVnYXRvIChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGFyZSBjaGUgcXVlc3RlIEFjdGlvbnMgZGV2b25vIGVzc2VyZSByZWdpc3RyYXRlIG5laSBzZWd1ZW50aSBmaWxlIEpTIGUgQ1NTOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICdOdW92byAoZGEgbW9kZWxsbyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICdBbHRyZSBpbXBvc3RhemlvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzIGZyb20gdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJ0ltcG9zdGEgbGEgbWFjY2hpbmEgYSBzdGF0aSBwZXIgZ2xpIG9yZGluaSBkaSBsYXZvcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmEgdW4gY29sbGVnYW1lbnRvIG5lbCBtZW51IHBlciBhZ2dpdW5nZXJlIHVuIG9yZGluZSBkaSBsYXZvcm8gbmVsbGEgdmlzdGEgZGkgbW9kaWZpY2EgZGVsbG8gem9vbSBkZWxsXCdpbnRlcmZhY2NpYSBhZ2VudGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9zdHJhIHVuIGNvbGxlZ2FtZW50byBuZWwgbWVudSBwZXIgZWxpbWluYXJlIHVuYSBtb2RpZmljYSBuZWxsYSB2aXN0YSB6b29tIGRlbGxcJ2ludGVyZmFjY2lhIGFnZW50aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmEgdW4gY29sbGVnYW1lbnRvIG5lbCBtZW51IHBlciBlbGltaW5hcmUgdW4gb3JkaW5lIGRpIGxhdm9ybyBuZWxsYSBzdWEgdmlzdGEgem9vbSBkZWxsXCdpbnRlcmZhY2NpYSBhZ2VudGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9zdHJhIHVuIGNvbGxlZ2FtZW50byBuZWwgbWVudSBwZXIgdG9ybmFyZSBpbmRpZXRybyBuZWxsYSB2aXN0YSBkaSBtb2RpZmljYSBkZWxsbyB6b29tIGRlbGxcJ2ludGVyZmFjY2lhIGFnZW50aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1biBjb2xsZWdhbWVudG8gbmVsIG1lbnUgcGVyIHRvcm5hcmUgaW5kaWV0cm8gbmVsbGEgdmlzdGEgZGkgem9vbSBkZWxsXCdvcmRpbmUgZGkgbGF2b3JvIGRlbGxcJ2ludGVyZmFjY2lhIGFnZW50aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmFyZSB1biBjb2xsZWdhbWVudG8gbmVsIG1lbnUgcGVyIHJpcHJpc3RpbmFyZSB1bmEgbW9kaWZpY2EgZSBpIHJlbGF0aXZpIHdvcmtvcmRlciBuZWxsYSB2aXN1YWxpenphemlvbmUgem9vbSBkZWxsXCdpbnRlcmZhY2NpYSBhZ2VudGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1biBjb2xsZWdhbWVudG8gbmVsIG1lbnUgcGVyIG1vc3RyYXJlIGxlIHBlcnNvbmUgY29pbnZvbHRlIGluIHVuYSBtb2RpZmljYSwgbmVsbGEgdmlzdGEgem9vbSBkZWxsYSBtb2RpZmljYSBuZWxsXCdpbnRlcmZhY2NpYSBhZ2VudGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9zdHJhIGxhIGNyb25vbG9naWEgZGVsbGUgbW9kaWZpY2hlIChvcmRpbmUgaW52ZXJzbykgbmVsbFwnaW50ZXJmYWNjaWEgYWdlbnRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnTWFjY2hpbmEgc3RhdGFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnTWVtb3JpenphIGdsaSBJRCBkaSBjYW1iaWFtZW50byBlIGRpIG9yZGluZSBkaSBsYXZvcm8gZSBpbCBsb3JvIElEIG1vZGVsbG8gY29ycmlzcG9uZGVudGUsIG1lbnRyZSB1biB1dGVudGUgc3RhIG1vZGlmaWNhbmRvIHVuIG1vZGVsbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnUHJlbmRpIGxcJ29yZGluZSBkaSBsYXZvcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnUHJlbmRpIGxcJ29yZGluZSBkaSBsYXZvcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICdQcmVuZGkgbFwnb3JkaW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJ1JpZXBpbG9nbyBkZWwgbW9kZWxsbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAnVGlwbyBkaSBtb2RlbGxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlLid9ID0gJ01vZGVsbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJ0xcJ2lkZW50aWZpY2F0b3JlIGRpIHVuYSBtb2RpZmljYSwgYWQgZXMuIENoYW5nZSMsIE15Q2hhbmdlIy4gTFwnaW1wb3N0YXppb25lIHByZWRlZmluaXRhIMOoIENoYW5nZSMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICdMXCdpZGVudGlmaWNhdG9yZSBwZXIgdW4gb3JkaW5lIGRpIGxhdm9ybywgYWQgZXMuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gTFwnaW1wb3N0YXppb25lIHByZWRlZmluaXRhIMOoIFdvcmtvcmRlciMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICdRdWVzdG8gbW9kdWxvIEFDTCBsaW1pdGEgbFwndXRpbGl6em8gZGVpIHRpcGkgZGkgdGlja2V0IGRlZmluaXRpIG5lbGxcJ29wemlvbmUgc3lzY29uZmlnIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIGFnbGkgdXRlbnRpIGRlaSBncnVwcGkgY29tZSBkZWZpbml0aSBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gUG9pY2jDqSBxdWVzdG8gQUNMIHBvdHJlYmJlIHNjb250cmFyc2kgY29uIGFsdHJpIEFDTCBjb3JyZWxhdGkgYW5jaGUgYWwgdGlwbyBkaSB0aWNrZXQsIHF1ZXN0YSBvcHppb25lIGRpIHN5c2NvbmZpZyDDqCBkaXNhYmlsaXRhdGEgcGVyIGltcG9zdGF6aW9uZSBwcmVkZWZpbml0YSBlIGRldmUgZXNzZXJlIGF0dGl2YXRhIHNvbG8gc2UgbmVjZXNzYXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnRmFzY2lhIG9yYXJpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnVGlwaSBkaSB0aWNrZXQsIGluIGN1aSBuZWxsYSB2aXN1YWxpenphemlvbmUgZGVsbG8gem9vbSBkZWwgdGlja2V0IHZlcnLDoCB2aXN1YWxpenphdG8gdW4gY29sbGVnYW1lbnRvIHBlciBhZ2dpdW5nZXJlIHVuYSBtb2RpZmljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICdSaWNlcmNhIHV0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICdBZ2dpdW5naSBhbGxcJ29yZGluZSBkaSBsYXZvcm8gKGRhbCBtb2RlbGxvKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICdBZ2dpdW5naSBvcmRpbmUgZGkgbGF2b3JvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnQWdlbnRlIGRpIG9yZGluZSBkaSBsYXZvcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnRWxpbWluYSBvcmRpbmUgZGkgbGF2b3JvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICdNb2RpZmljYSBvcmRpbmUgZGkgbGF2b3JvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJ1pvb20gY3Jvbm9sb2dpYSBvcmRpbmUgZGkgbGF2b3JvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICdTdG9yaWEgZGVnbGkgb3JkaW5pIGRpIGxhdm9yby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICdSYXBwb3J0byBzdWxsXCdvcmRpbmUgZGkgbGF2b3JvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJ1pvb20gc3VsbFwnb3JkaW5lIGRpIGxhdm9ybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICdab29tIHN1bGxcJ29yZGluZSBkaSBsYXZvcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICd1bmEgdm9sdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnUmVnb2xhcm1lbnRlJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/ja_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6amFfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ+OCq+ODhuOCtOODqiDihpQg5b2x6Z+/5bqmIOKGlCDlhKrlhYjluqYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBwcmlvcml0eSByZXN1bHQgb2YgY29tYmluYXRpbmcgQ2F0ZWdvcnkg4oaUIEltcGFjdC4nfSA9CiAgICAgICAgJ+OCq+ODhuOCtOODquOBqOW9semfv+W6puOBrue1hOOBv+WQiOOCj+OBm+OBq+OCiOOBo+OBpuWEquWFiOW6puOCkueuoeeQhuOBl+OBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eSBhbGxvY2F0aW9uJ30gPSAn5YSq5YWI5bqm44Gu5Ymy44KK5b2T44GmJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VNYW5hZ2VtZW50IE5vdGlmaWNhdGlvbiBNYW5hZ2VtZW50J30gPSAn5aSJ5pu0566h55CG44Gu6YCa55+l566h55CGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJ+mAmuefpeODq+ODvOODq+OCkui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Egbm90aWZpY2F0aW9uIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICfpgJrnn6Xjgavjga/lkI3np7DjgYzlv4XpoIjjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmFtZSBpcyByZXF1aXJlZC4nfSA9ICflkI3np7Djga/lhaXlipvlv4XpoIjjgafjgZnjgIInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBTdGF0ZSBNYWNoaW5lJ30gPSAn44K544OG44O844OI44Oe44K344Oz44Gu566h55CGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhIGNhdGFsb2cgY2xhc3MhJ30gPSAn44Kr44K/44Ot44Kw44Kv44Op44K544Gu6YG45oqe44Gv5b+F6aCI44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0YWxvZyBjbGFzcyBpcyByZXF1aXJlZCEnfSA9ICfjgqvjgr/jg63jgrDjgq/jg6njgrnjga7pgbjmip7jga/lv4XpoIjjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ+OCueODhuODvOOCv+OCuemBt+enu+OCkui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAn44Kr44K/44Ot44Kw44O744Kv44Op44K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAn44Kq44OW44K444Kn44Kv44OI5ZCNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAn44K544OG44O844K/44K544Gu5qaC6KaB77yaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICfjgZPjga7jgrnjg4bjg7zjgr/jgrnpgbfnp7vjgpLliYrpmaQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAn5paw44GX44GE44K544OG44O844K/44K544KS6L+95Yqg77yaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICfjgrnjg4bjg7zjgr/jgrnjgpLpgbjmip7jgZfjgabkuIvjgZXjgYTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIG5leHQgc3RhdGUhJ30gPSAn5paw44GX44GE44K544OG44O844K/44K544KS6YG45oqe44GX44Gm5LiL44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ+OCueODhuODvOOCv+OCueOBrue3qOmbhu+8mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAn5pys5b2T44Gr44K544OG44O844K/44K56YG356e744KS5YmK6Zmk44GX44G+44GZ44GL77yfJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJ+WkieabtOeuoeeQhumgheebruOCkui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSd9ID0gJ+WkieabtOeuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKdXN0aWZpY2F0aW9uJ30gPSAn5q2j5b2T5YyWJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAn5YWl5Yqb44Gv54Sh5Yq544Gn44GZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAn6KaB5rGC5pelJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJ+WkieabtOeuoeeQhumgheebruODhuODs+ODl+ODrOODvOODiOOCkumBuOaKnic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHR5cGUnfSA9ICfmmYLplpPjgr/jgqTjg5cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAn5LiN5q2j44Gq5pmC6ZaT44K/44Kk44OXJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB0aW1lJ30gPSAn5paw6KaP44Gu5pmC6ZaTJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBDQUIgYXMgdGVtcGxhdGUnfSA9ICflpInmm7Toq67llY/lp5Tlk6HkvJrvvIhDQULvvInjga7lpInmm7TjgpLjg4bjg7Pjg5fjg6zjg7zjg4jjgajjgZfjgabkv53lrZjjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICfplqLkv4LogIXnlLvpnaLjgavpgbfnp7vjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAn5LiN5q2j44Gq5ZCN56ew44Gn44GZJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJ+adoeS7tuOBqOOCouOCr+OCt+ODp+ODsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAn5p2h5Lu244KS5YmK6Zmk44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgY29uZGl0aW9uJ30gPSAn5paw44GX44GE5p2h5Lu244KS6L+95Yqg44GZ44KLJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAn5p2h5Lu244KS57eo6ZuG44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJ+acieWKueOBquWQjeensOOBjOW/heimgeOBp+OBmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJ+acieWKueOBquWQjeWJjeOBjOW/heimgeOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICflkI3liY3jgpLopIfoo70nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGNvbmRpdGlvbi4nfSA9ICfjgZPjga7lkI3liY3jga/jgZnjgafjgavku5bjga7mnaHku7bjgafkvb/jgo/jgozjgabjgYTjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICfkuIDoh7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJ+OBhOOBmuOCjOOBi+OBruacn+mWk+OBq+ipsuW9k+OBmeOCiyhPUiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAn44GZ44G544Gm44Gu5pyf6ZaT44GM6Kmy5b2T44GZ44KLKEFORCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbnMnfSA9ICfmnJ/pmZAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0b3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICfpgYvnlKjogIUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICfmnJ/pmZDjgpLliYrpmaTjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAn5pyf6ZmQ44GM5pyq6Kit5a6a44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJ+aWsOOBl+OBhOacn+mZkOOBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAn44Ki44Kv44K344On44Oz44Gu5YmK6ZmkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEFjdGlvbnMgZm91bmQuJ30gPSAn44Ki44Kv44K344On44Oz44Gv6KaL44Gk44GL44KK44G+44Gb44KT44Gn44GX44Gf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAn5paw44GX44GE44Ki44Kv44K344On44Oz44Gu6L+95YqgJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICfmnKzlvZPjgavjgZPjga7lpInmm7TnrqHnkIbpoIXnm67jgpLliYrpmaTjgZfjgb7jgZnjgYvjgIInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnJXMlc+OCkuS/ruatoyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMnfSA9ICclcyVz44Gu5bGl5q20JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ+WxpeattOWGheWuuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICfkvZzmpa3jgqrjg7zjg4Djg7wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ+S9nOaIkOaXpeaZgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICfoqbPntLDjgpLooajnpLonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICfkvZzmpa3jgqrjg7zjg4Djg7zjgpLooajnpLonOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICfmm7TmlrAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAn5Y+k44GE5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJ+aWsOOBl+OBhOWApCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICfplqLkv4LogIUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJ+WkieabtOeuoeeQhuODnuODjeODvOOCuOODoyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAn5LiN5q2j44Gq44Om44O844K2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICflpInmm7Tlrp/mlr3ogIUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAn5aSJ5pu06Kuu5ZWP5aeU5ZOh5LyaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJ0NBQuODhuODs+ODl+ODrOODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJ+ODhuODs+ODl+ODrOODvOODiOOCkumBqeeUqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJ+aWsOODhuODs+ODl+ODrOODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAn44GT44GuQ0FC44KS44OG44Oz44OX44Os44O844OI44Go44GX44Gm5L+d5a2Y44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICdDQULjgavov73liqDjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAn5LiN5q2j44Gq44Om44O844K2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAn54++5Zyo44GuQ0FCJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAn6Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJ+WkieabtOeuoeeQhumgheebruWQjSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICfkvZzmpa3kvp3poLzogIUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICfjg5Pjg6vjg4Djg7zjgpLlpInmm7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICfjg57jg43jg7zjgrjjg6Pjg7zjgpLlpInmm7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJ+S9nOalreS+nemgvOabuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICflpInmm7TnrqHnkIbjga7jgrnjg4bjg7zjgr/jgrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAn5L2c5qWt5L6d6aC85pu444Gu44K544OG44O844K/44K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAn5L2c5qWt5L6d6aC85pu444Gu44K/44Kk44OXJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAn6KaB5rGC5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJ+ioiOeUu+S4iuOBruOCueOCv+ODvOODiOaZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAn6KiI55S75LiK44Gu57WC5LqG5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAn5a6f6Zqb44Gu44K544K/44O844OI5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJ+Wun+mam+OBrue1guS6huaZgumWkyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJ+acrOW9k+OBq+ePvuWcqOOBruWkieabtOWGheWuueOCkuODquOCu+ODg+ODiOOBl+OBpuOCguOCiOOCjeOBl+OBhOOBp+OBmeOBi++8nyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICfkvos6IDEwKjUxNTUg44G+44Gf44GvIDEwNTY1OConOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnQ0FC5ouF5b2T6ICFJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICfkvos6ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXInfSA9ICdDQULpoaflrqInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICflpInmm7Tkvp3poLzmm7jjga7mjIflsI4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAn5aSJ5pu05L6d6aC85pu444Gu44Os44Od44O844OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAn5aSJ5pu0566h55CG44Gu5YSq5YWI5bqmJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIEltcGFjdCd9ID0gJ+WkieabtOeuoeeQhuOBrumHjeimgeW6pic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICfjgqvjg4bjgrTjg6rjgpLlpInmm7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJlZm9yZS9hZnRlciknfSA9ICco5Lul5YmNL+S7peW+jCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnKOacn+mWk+aMh+WumiknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAn5aSJ5pu044KS44OG44Oz44OX44Os44O844OI44Go44GX44Gm5L+d5a2Y44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ+OAjOODhuODs+ODl+ODrOODvOODiOWQjeOAjeOBr+W/hemgiOmgheebruOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICfjg4bjg7Pjg5fjg6zjg7zjg4jlkI3jga/lhaXlipvlv4XpoIjjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAn44K544OG44O844K/44K544KS44Oq44K744OD44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICflpInmm7Tmg4XloLEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICfoqIjnlLvnmoTjgarlj5bjgorntYTjgb8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICfmiYDopoHmmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ+OCpOODi+OCt+OCqOODvOOCv+OCkuWkieabtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICflpInmm7Tmib/oqo3ogIUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAn5pyA57WC5aSJ5pu05pmC5Yi7JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ+acgOe1guWkieabtOiAhSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyjkuIDpg6jjga5PU+OBq+OBiuOBhOOBpuOBrynkuIvoqJjjga7jg6rjg7Pjgq/jgpLjgqrjg7zjg5fjg7PjgZnjgovjgZ/jgoHjgavjgq/jg6rjg4Pjgq/mmYLjgavjgIFDdHJsIOOBguOCi+OBhOOBryBDbWQg44G+44Gf44GvIFNoaWZ044Kt44O844KS5oq85LiL44GZ44KL5b+F6KaB44GM44KL5aC05ZCI44GM44GC44KK44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICfmt7vku5jjg5XjgqHjgqTjg6vjga7jg4Djgqbjg7Pjg63jg7zjg4knOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJ0NBQuODhuODs+ODl+ODrOODvOODiOOCkue3qOmbhic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ+OBk+OBruaTjeS9nOOBr+mBuOaKnuS4reOBruODhuODs+ODl+ODrOODvOODiOOBi+OCiee3qOmbhuODu+S/neWtmOOBjOWPr+iDveOBquWkieabtOeuoeeQhumgheebruOCkuaWsOimj+OBq+S9nOaIkOOBl+OBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ+OBk+OBruaTjeS9nOOBr+mBuOaKnuS4reOBruODhuODs+ODl+ODrOODvOODiOOBi+OCiee3qOmbhuODu+S/neWtmOOBjOWPr+iDveOBquS9nOalreOCquODvOODgOODvOOCkuaWsOimj+OBq+S9nOaIkOOBl+OBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJ+e2muihjOOBl+OBvuOBmeOBi++8nyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnVGVtcGxhdGUgSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAn5YaF5a6544KS57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJ+S9nOaIkOiAhSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICflpInmm7TogIUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICflpInmm7Tml6XmmYInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICclcyVz44Gr5L2c5qWt5L6d6aC85pu444KS6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAn5LiN5q2j44Gq5L2c5qWt44Kq44O844OA44O844K/44Kk44OXJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJ+S4jeato+OBquODleOCqeODvOODnuODg+ODiOOBp+OBmSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICfkvZzmpa3jgqrjg7zjg4Djg7zjga7jg4bjg7Pjg5fjg6zjg7zjg4jjgpLpgbjmip7jgZfjgabjgY/jgaDjgZXjgYQnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJ+acrOW9k+OBq+OBk+OBruS9nOalreOCquODvOODgOODvOOCkuWJiumZpOOBl+OBvuOBmeOBi+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJ+OBk+OBruS9nOalreOCquODvOODgOODvOOCkuWJiumZpOOBmeOCi+OBk+OBqOOBr+OBp+OBjeOBvuOBm+OCk+OAguS4gOOBpOS7peS4iuOBruadoeS7tuOBp+S9v+eUqOOBleOCjOOBpuOBhOOBvuOBme+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAn44GT44Gu5L2c5qWt44Kq44O844OA44O844Gv5Lul5LiL44Gu6KiY5LqLKOe+pCnjgafkvb/nlKjjgZXjgozjgabjgYTjgb7jgZnjgIInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0J30gPSAn44Os44Od44O844OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGFrZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBBZ2VudCd9ID0gJ+ePvuWcqOOBruaLheW9k+iAhSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICfmnKzlvZPjgavjgZPjga7kvZzmpa3jgqrjg7zjg4Djg7zjgpLpgannlKjjgZfjgb7jgZnjgYvjgIInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAn44Ov44O844Kv44Kq44O844OA44O844KS44OG44Oz44OX44Os44O844OI44Go44GX44Gm5L+d5a2Y44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJ+S9nOalreOCquODvOODgOODvOaDheWgsSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJ+OCueODhuODvOOCv+OCuemBt+enu+OBjOabtOaWsOOBleOCjOOBvuOBl+OBn++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJ+OCueODhuODvOOCv+OCuemBt+enu+OBjOi/veWKoOOBleOCjOOBvuOBl+OBn++8gSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAn5LiA6KanOiDlpInmm7TnrqHnkIYnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAn44OB44Kx44OD44OISUQgJXMg44Gu44OB44Kx44OD44OI44Gv5a2Y5Zyo44GX44G+44Gb44KT77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICflpInmm7TnrqHnkIbpoIXnm67jgpLov73liqDjgafjgY3jgb7jgZvjgpPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICfjg4bjg7Pjg5fjg6zjg7zjg4jjgYvjgonlpInmm7TnrqHnkIbpoIXnm67jgpLkvZzmiJDjgafjgY3jgb7jgZvjgpPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICdDaGFuZ2VJRCDjgYzmjIflrprjgZXjgozjgabjgYTjgb7jgZvjgpPvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nfSA9ICdJRCAlcyDjgavoqbLlvZPjgZnjgovlpInmm7TnrqHnkIbpoIXnm67jgYzopovjgaTjgYvjgorjgb7jgZvjgpPjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJ30gPSAn44OG44Oz44OX44Os44O844OI44KS6L+95Yqg44Gn44GN44G+44Gb44KT44Gn44GX44Gf44CCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICciJXMiIOOBq+ipsuW9k+OBmeOCi+WkieabtOeuoeeQhumgheebruOBjOODh+ODvOOCv+ODmeODvOOCueS4iuOBq+imi+OBpOOBi+OCiuOBvuOBm+OCk+OBp+OBl+OBn++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJ+adoeS7tklEICVzIOOCkuWJiumZpOOBp+OBjeOBvuOBm+OCk+OBp+OBl+OBn++8gSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJXPCoMKgIOOBjOS4jei2s+OBl+OBpuOBhOOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAn5paw44GX44GE5p2h5Lu244KS5L2c5oiQ44Gn44GN44G+44Gb44KT44Gn44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAn5p2h5Lu2SUQgJXMg44KS5pu05paw44Gn44GN44G+44Gb44KT44Gn44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJ+OCouOCr+OCt+ODp+ODs0lEICVzIOOCkuabtOaWsOOBp+OBjeOBvuOBm+OCk+OBp+OBl+OBn++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAn5paw44GX44GE44Ki44Kv44K344On44Oz44KS6L+95Yqg44Gn44GN44G+44Gb44KT44Gn44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJ+OCouOCr+OCt+ODp+ODs0lEICVzIOOCkuWJiumZpOOBp+OBjeOBvuOBm+OCk+OBp+OBl+OBn++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAn44Ko44Op44O877yaICIlcyIg44Gv5LiN5piO44Gq44OV44Kj44O844Or44OJ44K/44Kk44OX44Gn44GZ77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAn5p2h5Lu2SUQgJXMg44Gv5oyH5a6a44GV44KM44Gf5aSJ5pu0SUQgJXMg44Gr5bGe44GX44Gm44GE44G+44Gb44KT77yBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICflpInmm7TnrqHnkIZJRCAlcyDjga7lpInmm7TnrqHnkIbpoIXnm67jgpLliYrpmaTjgafjgY3jgb7jgZvjgpPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJ+WkieabtOeuoeeQhumgheebruOCkuabtOaWsOOBp+OBjeOBvuOBm+OCk++8gSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnIiVzIiDjgavoqbLlvZPjgZnjgovlpInmm7TnrqHnkIbpoIXnm67jgYzjg4fjg7zjgr/jg5njg7zjgrnkuIrjgavopovjgaTjgYvjgorjgb7jgZvjgpPjgafjgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJ+WkieabtOeuoeeQhuODnuODjeODvOOCuOODo++8muamguimgSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICfmi4XlvZPkuK3lpInmm7TnrqHnkIbvvJrmpoLopoEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICfmi4XlvZPkuK3kvZzmpa3jgqrjg7zjg4Djg7zvvJrmpoLopoEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJ1BJUu+8iOWwjuWFpeW+jOODrOODk+ODpeODvO+8ie+8muamguimgSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnUFNB77yI5LqI5oOz5Y+v55So5oCn77yJ77ya5qaC6KaBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyIlcyIg44Gr6Kmy5b2T44GZ44KL5L2c5qWt44Kq44O844OA44O844GM44OH44O844K/44OZ44O844K55LiK44Gr6KaL44Gk44GL44KK44G+44Gb44KT44Gn44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAn5aSJ5pu05L6d6aC85pu4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJ+ODr+ODvOOCr+OCquODvOODgOODvOeVquWPtyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUaXRsZSd9ID0gJ+alreWLmeaMh+ekuuWQjSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJ+WkieabtOeuoeeQhuOBruOCueODhuODvOOCv+OCuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAn6KiI55S755qE44Gq5Y+W44KK57WE44G/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRTdGFydFRpbWUnfSA9ICfkuojlrprplovlp4vmmYLliLsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICfkuojlrprntYLkuobml6XmmYInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAn5a6f57i+6ZaL5aeL5pmC5Yi7JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICflrp/nuL7ntYLkuobml6XmmYInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJ0NoYW5nZVRpbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAn5aSJ5pu0566h55CG6aCF55uu55Wq5Y+3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAn5qWt5YuZ5oyH56S644Gu54q25oWLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICfkvZzmpa3jgqrjg7zjg4Djg7zjgr/jgqTjg5cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICfmpa3li5nmjIfnpLrogIUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJ+WkieabtOS+nemgvOabuOOBruS4gOimpyglcyknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVJlc2V0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnfSA9ICflpInmm7TnrqHnkIbpoIXnm64gJXMg5YaF44Gu5L2c5qWt44Kq44O844OA44O8ICVzIOOBr+ODquOCu+ODg+ODiOOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJ+WkieabtOeuoeeQhumgheebriAlcyDjga/jg6rjgrvjg4Pjg4jjgafjgY3jgb7jgZvjgpPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAn5aSJ5pu0566h55CG44K544Kx44K444Ol44O844Or77ya5qaC6KaBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICflpInmm7TnrqHnkIbpoIXnm67jga7mpJzntKInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICflpInmm7TnrqHnkIbpoIXnm67lkI0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ+S9nOalreOCquODvOODgOODvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoIFJlc3VsdCd9ID0gJ+WkieabtOeuoeeQhumgheebruOBruaknOe0oue1kOaenCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTnVtYmVyJ30gPSAn5aSJ5pu0566h55CG6aCF55uu55Wq5Y+3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICfkvZzmpa3jgqrjg7zjg4Djg7zlkI0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAn5aSJ5pu0566h55CG6aCF55uu44Gu6Kqs5piOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAn5L2c5qWt44Kq44O844OA44O844Os44Od44O844OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSd9ID0gJ+WkieabtOeuoeeQhumgheebruOBruWEquWFiOW6pic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAn5aSJ5pu0566h55CG6aCF55uu44Gu5b2x6Z+/5bqmJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICfkvZzmiJDogIUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFN0YXRlJ30gPSAn5L2c5qWt5L6d6aC85pu444Gu44K544OG44O844K/44K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAn5L2c5qWt44Kq44O844OA44O844K/44Kk44OXJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJ+S9nOalreOCquODvOODgOODvOOBruaLheW9k+iAhSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAn5L2c5qWt5L6d6aC85pu444KS5pyA5Yid44Gr6L+95Yqg44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSAlcyBvZiBhbGwgd29ya29yZGVycyBoYXMgdG8gYmUgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyIlcyIg44Gr6Kmy5b2T44GZ44KL44OG44Oz44OX44Os44O844OI44GM44OH44O844K/44OZ44O844K55LiK44Gr6KaL44Gk44GL44KK44G+44Gb44KT44Gn44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICfkvZzmpa3kvp3poLzmm7jjgpLov73liqDjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ/vvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnIiVzIiDjgavoqbLlvZPjgZnjgovkvZzmpa3jgqrjg7zjg4Djg7zjgYzjg4fjg7zjgr/jg5njg7zjgrnkuIrjgavopovjgaTjgYvjgorjgb7jgZvjgpPjgafjgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICfkvZzmiJDmuIjjgb/jgIBDQUInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJ+aLheW9k+OBmeOCi+WkieabtOeuoeeQhumgheebric7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICflhajjgaYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAn44GZ44G544GmJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICfopoHmsYLjgZXjgozjgabjgYTjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJ+aJv+iqjeW+heOBoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJ+WNtOS4iyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJ+aJv+iqjea4iOOBvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJ+mAsuihjOS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJ+S/neeVmeS4reOBrlBJUic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAn5oiQ5YqfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJ+WkseaVlyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJ+OCreODo+ODs+OCu+ODqyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICflj5bmtojmuIjjgb8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJ+S9nOaIkOa4iOOBvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJ+aJv+iqjea4iOOBvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJ+a6luWCmeWujOS6hic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ+iqjeiovCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICfkvZzmpa3jgqrjg7zjg4Djg7wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmFja291dCd9ID0gJ+ODkOODg+OCr+OCouOCpuODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJ+axuuWumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwaXInfSA9ICdQSVInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAn44Gn44GC44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJ+OBp+OBr+OBquOBhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJ+OBr+epuuOBp+OBguOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICfjga/nqbrjgafjga/jgarjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAn44KI44KK5aSn44GN44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJ+OCiOOCiuWwj+OBleOBhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICfjga7liY3jgafjgYLjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICfjga7lvozjgafjgYLjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICflkKvjgpPjgafjgYTjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAn44KS5ZCr44G+44Gq44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAn44Gn5aeL44G+44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJ+OBp+e1guS6hic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICfjgrvjg4Pjg4gnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICdPayc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJ+S9nOalreS+nemgvOiAheOCkui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJ+S9nOalreS+nemgvOiAhe+8iOODhuODs+ODl+ODrOODvOODiOOBi+OCie+8ieOCkui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJ+WkieabtOOBruS9nOalreS+nemgvOabuOOCkui/veWKoOOBl+OBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJ+ODhuODs+ODl+ODrOODvOODiOOBi+OCiei/veWKoOOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAn44K544OG44O844OI44Oe44K344Oz44Gu566h55CGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAn5aSJ5pu0566h55CG44K544Kx44K444Ol44O844OrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICfjgrnjgrHjgrjjg6Xjg7zjg6vjgpLlpInmm7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAn5aSJ5pu0566h55CG44Gu6Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJ+adoeS7tuOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICfmnaHku7bjga7mpoLopoEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlJ30gPSAn5aSJ5pu0566h55CG6aCF55uu44KS5L2c5oiQJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAn44Oq44Oz44Kv44Kq44OW44K444Kn44Kv44OI44Km44Kj44K444Kn44OD44OI77yITGlua09iamVjdCA6OiBWaWV3TW9kZSA9ICJjb21wbGV4Iu+8ieOBp+ioreWumuODnOOCv+ODs+OCkuS9v+eUqOOBp+OBjeOCi+OCouOCr+OCt+ODp+ODs+OCkuWumue+qeOBl+OBvuOBmeOAgiDjgZPjgozjgonjga7jgqLjgq/jgrfjg6fjg7Pjga/jgIHmrKHjga5KU+OBiuOCiOOBs0NTU+ODleOCoeOCpOODq+OCkueZu+mMsuOBl+OBpuOBhOOCi+W/heimgeOBjOOBguOCiuOBvuOBmeOAgkNvcmUuQWxsb2NhdGlvbkxpc3QuY3Nz44CBQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qc+OAgUNvcmUuVUkuVGFibGUuU29ydC5qc+OAgUNvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpz44CB5Y+K44GzQ29yZS5BZ2VudCAuTGlua09iamVjdC5qcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJ+ioiOeUu+OBleOCjOOBn+S9nOalreOCkuWNsOWIt+OBp+OBjeOCi+OBi+OBqeOBhuOBi+OCkuWumue+qeOBl+OBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAn57Wx6KiI6Lu444KS44CB5ouF5b2T6ICF44GM5paw44Gf44Gr5L2c5oiQ44GX44Gf5aC05ZCI44Gv44CB5ouF5b2T6ICF44GM5Lqk5o+b44Gn44GN44KL44KI44GG44Gr44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJ+WFsemAmue1seioiOODouOCuOODpeODvOODq+OBjOOAgeani+aIkOOCouOCpOODhuODoOODu+OCr+ODqeOCueOBq+mWouOBl+OBpuihjOOCj+OCjOOBn+WkieabtOOBrue1seioiOOCkueUn+aIkOOBl+OBpuOCiOOBhOOBi+OBqeOBhuOBi+OCkuWumue+qeOBl+OBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAn5YWx6YCa57Wx6KiI44Oi44K444Ol44O844Or44GM44CB5LiA5a6a5pyf6ZaT5YaF44Gr44GK44GR44KL5aSJ5pu054q25oWL44Ki44OD44OX44OH44O844OI44Gr6Zai44GZ44KL44CB5aSJ5pu044Gu57Wx6KiI44KS55Sf5oiQ44GX44Gm44KI44GE44GL44Gp44GG44GL44KS5a6a576p44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICflhbHpgJrntbHoqIjjg6Ljgrjjg6Xjg7zjg6vjgYzjgIHlpInmm7TjgajjgqTjg7Pjgrfjg4fjg7Pjg4jjg7vjg4HjgrHjg4Pjg4jplpPjga7plqLkv4LjgavplqLjgZnjgovjgIHlpInmm7Tjga7ntbHoqIjjgpLnlJ/miJDjgZfjgabjgojjgYTjgYvjganjgYbjgYvjgpLlrprnvqnjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJ+WFsemAmue1seioiOODouOCuOODpeODvOODq+OBjOOAgeWkieabtOOBrue1seioiOOCkueUn+aIkOOBl+OBpuOCiOOBhOOBi+OBqeOBhuOBi+OCkuWumue+qeOBl+OBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICflhbHpgJrntbHoqIjjg6Ljgrjjg6Xjg7zjg6vjgYzjgIHjg6rjgq/jgqjjgrnjgr/jg7zvvIjopoHmsYLogIXvvInjgYzkvZzmiJDjgZfjgZ9SZmPjg4HjgrHjg4Pjg4jjga7mlbDjga7ntbHoqIjjgpLnlJ/miJDjgZfjgabjgojjgYTjgYvjganjgYbjgYvjgpLlrprnvqnjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAn5aSJ5pu0566h55CG44GuQ0FC44OG44Oz44OX44Os44O844OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJ+WkieabtOeuoeeQhuOBruadoeS7tuS/ruatoyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAn5aSJ5pu0566h55CG44Gu5p2h5Lu25LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAn5aSJ5pu0566h55CG6ICF44Gu5LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJ+WkieabtOeuoeeQhuOBrlBJUuS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICflpInmm7TnrqHnkIbjga7pgJrnn6Xjg6vjg7zjg6snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAn5aSJ5pu0566h55CGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAn56eB44Gu5aSJ5pu0566h55CGQ0FC44Gu5LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJ+engeOBruWkieabtOeuoeeQhuOBruS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICfnp4Hjga7lpInmm7Tkvp3poLzmm7jjga7kuIDopqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAn5aSJ5pu05L6d6aC85pu444OG44Oz44OX44Os44O844OI44Gu5YmK6ZmkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAn5aSJ5pu05L6d6aC85pu444GuQ0FC5L+u5q2jJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJ+WkieabtOS+nemgvOabuOOBruOCs+ODs+ODhuODs+ODhOS/ruatoyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAn5aSJ5pu05L6d6aC85pu444OG44Oz44OX44Os44O844OI44Gu5L+u5q2jJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAn5aSJ5pu05L6d6aC85pu444OG44Oz44OX44Os44O844OI5LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJ+WkieabtOeuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAn5aSJ5pu05L6d6aC85pu4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAn44GT44Gu44OB44Kx44OD44OI44GL44KJ5aSJ5pu044KS5L2c5oiQ44GZ44KL44Gf44KB44Gu44Oq44Oz44Kv44KS6KGo56S644GV44Gb44KL44Oi44K444Ol44O844Or44Gn44GZ44CC44OB44Kx44OD44OI44Gv44CB6Ieq5YuV55qE44Gr5paw44GX44GE5aSJ5pu044Go44Oq44Oz44Kv44GV44KM44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICfmlrDopo8o44OG44Oz44OX44Os44O844OI44GL44KJKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IHVzZXJzIG9mIHRoZXNlIGdyb3VwcyBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdGlja2V0IHR5cGVzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgaWYgdGhlIGZlYXR1cmUgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ+OBneOBruS7luOBruioreWumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICfkuovlvozjg6zjg5Pjg6Xjg7wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICfoqIjnlLvjgZXjgozjgZ/jgrXjg7zjg5Pjgrnjga7lj6/nlKjmgKcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAn6KiI55S744GV44KM44Gf44K144O844OT44K544Gu5Y+v55So5oCnKFBTQSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAn44OX44Ot44K444Kn44Kv44OI44Gu44K144O844OT44K55Y+v55So5oCn77yIUFNB77yJ44KS5aSJ5pu044CCIOaJv+iqjeOBleOCjOOBn+WkieabtOOBqOOBneOBruOCteODvOODk+OCueOBruS4gOimp+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJ+WkieabtOeuoeeQhumgheebruOCkuODquOCu+ODg+ODiOOBmeOCi+OBq+OBr+aoqemZkOOBjOW/heimgeOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJ+WkieabtOeuoeeQhumgheebruOBqOmFjeS4i+OBruS9nOalreOCquODvOODgOODvOOCkuODquOCu+ODg+ODiOOBl+OBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAn44K544Kx44K444Ol44O844OrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJ+WkieabtOeuoeeQhumgheebruOCkuaknOe0oic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICflpInmm7TnrqHnkIbpoIXnm67jgpLmpJzntKLjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+aLheW9k+iAheOCpOODs+OCv+ODleOCp+ODvOOCueOBruWkieabtOeuoeeQhuOCuuODvOODoOODu+ODk+ODpeODvOOBp+OAgeWkieabtOWGheWuueOCkuODquOCu+ODg+ODiOOBmeOCi+OBn+OCgeOBruODquODs+OCr+OCkuODoeODi+ODpeODvOOBq+ihqOekuuOBl+OBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJ+OCueODhuODvOODiOODnuOCt+ODvOODsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAn44Ov44O844Kv44Kq44O844OA44O844KS5Y+X44GR5Y+W44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAn44OG44Oz44OX44Os44O844OI5qaC6KaBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAn44OG44Oz44OX44Os44O844OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJ+S9nOalreS+nemgvOabuCjjg4bjg7Pjg5fjg6zjg7zjg4jjgYvjgokp44KS6L+95Yqg44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAn5L2c5qWt5L6d6aC85pu444KS6L+95Yqg44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICfkvZzmpa3jgqrjg7zjg4Djg7zjgpLliYrpmaTjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAn5L2c5qWt44Kq44O844OA44O844KS57eo6ZuG44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJ+S9nOalreOCquODvOODgOODvOWxpeattCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJ+S9nOalreOCquODvOODgOODvOODrOODneODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/ko_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6a29fSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBsZXNzIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgV29ya29yZGVyIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIHdvcmtvcmRlciB0ZW1wbGF0ZXMgZWRpdGVkIGJ5IHRoaXMgdXNlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBudW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBFZGl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIChmcm9tIHRlbXBsYXRlKSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2V0IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGF0IG9ubHkgY2hhbmdlcyBjb250YWluaW5nIFdvcmtvcmRlcnMgbGlua2VkIHdpdGggc2VydmljZXMsIHdoaWNoIHRoZSBjdXN0b21lciB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB3aWxsIGJlIHNob3duLiBBbnkgb3RoZXIgY2hhbmdlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHJlcG9ydCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkRhdGUiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFBJUiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2Ugbm90aWZpY2F0aW9uIHJ1bGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQU0EnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBvYmplY3QgaW4gdGhlIHByZWZlcmVuY2UgdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIGNoYW5nZXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmZvcm1zIHRoZSBjb25maWd1cmVkIGFjdGlvbiBmb3IgZWFjaCBldmVudCAoYXMgYW4gSW52b2tlcikgZm9yIGVhY2ggY29uZmlndXJlZCBXZWJzZXJ2aWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjaGFuZ2UgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2VzXCcgQ0FCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgaW52b2x2ZWQgcGVyc29ucyBvZiBhIGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIG1vdmUgY2hhbmdlcyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgYSBDQUIgbWVtYmVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBvdmVydmlldyBvdmVyIGFsbCB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHdyaXRlIGEgcmVwb3J0IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1J1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NyZWVuIGFmdGVyIGNyZWF0aW5nIGEgd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkF1dG9JbmNyZW1lbnQiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBEZWZhdWx0IGlzIDUsIHRoaXMgbWVhbnMgdGhlIGNvdW50ZXIgc3RhcnRzIGZyb20gMTAwMDAuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3IgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBjaGVja2JveCBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGlmIHRoZSB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGFsc28gYmUgbW92ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgbW9kaWZpZWQgYW5kIHRoZSBwbGFubmVkIGVuZCB0aW1lIGhhcyBjaGFuZ2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBjaGFuZ2luZyB0aGUgd29ya29yZGVyIGFnZW50LCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBlZGl0aW5nIHRoZSByZXBvcnQgb2YgYSB3b3Jrb3JkZXIsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRha2luZyBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGNvbmRpdGlvbnMgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhZGQgYSB3b3Jrb3JkZXIgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgd29ya29yZGVyIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgd29ya29yZGVyIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZCAoZnJvbSB0ZW1wbGF0ZSkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/lt_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bHRfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdLYXRhbG9nbyBrbGFzxJcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAndmlzaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9Ob3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3JzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVnaW5zIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZW5kcyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSBjaGFuZ2UgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIGNoYW5nZSBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBzaG91bGQgYmUgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHN0YXRlIGNhbiBiZSBzZXQgaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHBsYW5uZWQgZWZmb3J0IHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2VhcmNoZWQgYnkgY3VzdG9tZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciB3b3Jrb3JkZXIgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciBjaGFuZ2Ugb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHdvcmtvcmRlciBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWNjb3VudGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDYXRlZ29yeUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlTWFuYWdlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgRHluYW1pY0ZpZWxkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgSW1wYWN0SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRWZmb3J0IGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFJlcXVlc3RlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJBZ2VudElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGVyaW9kIChpbiB5ZWFycyksIGluIHdoaWNoIHN0YXJ0IGFuZCBlbmQgdGltZXMgY2FuIGJlIHNlbGVjdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGF0dHJpYnV0ZXMgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIHRvb2x0aXAgb2YgdGhlIHdvcmtvcmRlciBncmFwaCBpbiB0aGUgY2hhbmdlIHpvb20uIFRvIHNob3cgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGluIHRoZSB0b29sdGlwLCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGxpa2UgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBQSVIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNpZ25hbHMgZm9yIGVhY2ggSVRTTSBjaGFuZ2Ugc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHRlbXBsYXRlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyBkb25lIGZvciBjb25maWcgaXRlbSBjbGFzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01Xb3JrT3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZnJlcXVlbmN5IGlzIFwncmVndWxhcmx5XCcsIHlvdSBjYW4gY29uZmlndXJlIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCAoZXZlcnkgWCBob3VycykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIHdvcmtvcmRlciBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBhZ2VudHMsIHVzZWQgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIGNhdGVnb3J5IOKGlCBpbXBhY3Qg4oaUIHByaW9yaXR5IG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIGlmIFdvcmtPcmRlckFkZCBvciBXb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUgc2hvdWxkIGJlIHBlcm1pdHRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIENBQiBtZW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBidWlsZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBzaG93IGEgbGluayB0byBjcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4gVGhlIHRpY2tldCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIG5ldyBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgYWxsIHdvcmtvcmRlcnMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IChmcm9tIHRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IHVzZXJzIG9mIHRoZXNlIGdyb3VwcyBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdGlja2V0IHR5cGVzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgaWYgdGhlIGZlYXR1cmUgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ0tpdGkgbnVzdGF0eW1haSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/lv_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bHZfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAndmlzaSBwaWV0ZWlrdW1pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBsZXNzIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgV29ya29yZGVyIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIHdvcmtvcmRlciB0ZW1wbGF0ZXMgZWRpdGVkIGJ5IHRoaXMgdXNlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBudW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBFZGl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIChmcm9tIHRlbXBsYXRlKSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2V0IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGF0IG9ubHkgY2hhbmdlcyBjb250YWluaW5nIFdvcmtvcmRlcnMgbGlua2VkIHdpdGggc2VydmljZXMsIHdoaWNoIHRoZSBjdXN0b21lciB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB3aWxsIGJlIHNob3duLiBBbnkgb3RoZXIgY2hhbmdlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHJlcG9ydCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkRhdGUiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFBJUiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2Ugbm90aWZpY2F0aW9uIHJ1bGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnQ2l0aSBpZXN0YXTEq2p1bWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzIGZyb20gdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgb2YgdGlja2V0cywgd2hlcmUgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgYSBsaW5rIHRvIGFkZCBhIGNoYW5nZSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/mk_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bWtfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICfQn9GA0LjQvtGA0LjRgtC10YLQvdC+INCw0LvQvtGG0LjRgNCw0ZrQtSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlTWFuYWdlbWVudCBOb3RpZmljYXRpb24gTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05hbWUgaXMgcmVxdWlyZWQuJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTVN0YXRlTWFjaGluZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYSBjYXRhbG9nIGNsYXNzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGFsb2cgY2xhc3MgaXMgcmVxdWlyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ9Ca0LDRgtCw0LvQvtCzINCa0LvQsNGB0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICfQn9C+0YHQu9C10LTQvdC+INC/0YDQvtC80LXQvdC10YLQvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgd29ya29yZGVyIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcG9yYXJ5IGNoYW5nZSB3aWxsIGJlIGNyZWF0ZWQgd2hpY2ggY29udGFpbnMgdGhlIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB3b3Jrb3JkZXIgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIFdvcmtvcmRlci4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgQ29uZGl0aW9uISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGFrZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCBjaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgRXhwcmVzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBkb2VzIG5vdCBoYXZlIGFuIGFsbG93ZWQgY2hhbmdlIHN0YXRlIHRvIGJlIGRlbGV0ZWQhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRTdGFydFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICfRgdC40YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9Ob3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3JzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVnaW5zIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZW5kcyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSBjaGFuZ2UgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIGNoYW5nZSBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBzaG91bGQgYmUgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHN0YXRlIGNhbiBiZSBzZXQgaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHBsYW5uZWQgZWZmb3J0IHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2VhcmNoZWQgYnkgY3VzdG9tZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciB3b3Jrb3JkZXIgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciBjaGFuZ2Ugb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHdvcmtvcmRlciBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWNjb3VudGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDYXRlZ29yeUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlTWFuYWdlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgRHluYW1pY0ZpZWxkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgSW1wYWN0SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRWZmb3J0IGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFJlcXVlc3RlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJBZ2VudElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGVyaW9kIChpbiB5ZWFycyksIGluIHdoaWNoIHN0YXJ0IGFuZCBlbmQgdGltZXMgY2FuIGJlIHNlbGVjdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGF0dHJpYnV0ZXMgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIHRvb2x0aXAgb2YgdGhlIHdvcmtvcmRlciBncmFwaCBpbiB0aGUgY2hhbmdlIHpvb20uIFRvIHNob3cgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGluIHRoZSB0b29sdGlwLCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGxpa2UgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBQSVIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNpZ25hbHMgZm9yIGVhY2ggSVRTTSBjaGFuZ2Ugc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHRlbXBsYXRlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyBkb25lIGZvciBjb25maWcgaXRlbSBjbGFzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01Xb3JrT3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZnJlcXVlbmN5IGlzIFwncmVndWxhcmx5XCcsIHlvdSBjYW4gY29uZmlndXJlIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCAoZXZlcnkgWCBob3VycykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIHdvcmtvcmRlciBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBhZ2VudHMsIHVzZWQgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIGNhdGVnb3J5IOKGlCBpbXBhY3Qg4oaUIHByaW9yaXR5IG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIGlmIFdvcmtPcmRlckFkZCBvciBXb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUgc2hvdWxkIGJlIHBlcm1pdHRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIENBQiBtZW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBidWlsZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBzaG93IGEgbGluayB0byBjcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4gVGhlIHRpY2tldCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIG5ldyBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgYWxsIHdvcmtvcmRlcnMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IChmcm9tIHRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IHVzZXJzIG9mIHRoZXNlIGdyb3VwcyBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdGlja2V0IHR5cGVzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgaWYgdGhlIGZlYXR1cmUgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ9CU0YDRg9Cz0Lgg0L/QvtC00LXRgdGD0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzIGZyb20gdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgb2YgdGlja2V0cywgd2hlcmUgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgYSBsaW5rIHRvIGFkZCBhIGNoYW5nZSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/ms_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bXNfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0thdGVnb3JpIOKGlCBLZXNhbiDihpQga2V1dGFtYWFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgcHJpb3JpdHkgcmVzdWx0IG9mIGNvbWJpbmF0aW5nIENhdGVnb3J5IOKGlCBJbXBhY3QuJ30gPQogICAgICAgICdQZW50YWRiaXJhbiBnYWJ1bmdhbiBrYXRlZ29yaSBrZXV0YW1hYW4g4oaUIEltcGFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eSBhbGxvY2F0aW9uJ30gPSAnQmVyaWthbiBrZXV0YW1hYW4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICdJVFNNIFBlbmd1cnVzYW4gUGVydWJhaGFuIHBlbmd1cnVzYW4gcGVtYmVyaXRhaHVhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICdQZXJhdHVyYW4gUGVtYmVyaXRhaHVhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Egbm90aWZpY2F0aW9uIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdQZW1iZXJpdGFodWFuIG1lbWVybHVrYW4gbmFtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmFtZSBpcyByZXF1aXJlZC4nfSA9ICdOYW1hbnlhIGRpa2VoZW5kYWtpLic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICdLZWFkYWFuIE1lc2luIEFkbWluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhIGNhdGFsb2cgY2xhc3MhJ30gPSAnUGlsaWgga2VsYXMga2F0YWxvZyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJ1NhdHUga2VsYXMga2F0YWxvZyBkaXBlcmx1a2FuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnVGFtYmFoIHBlcmFsaWhhbiBzdGF0dXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ0tlbGFzIGthdGFsb2cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICdOYW1hIE9iamVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAnVGluamF1YW4gYmFnaSBrZWFkYWFuIHBlcmFsaWhhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnTWVtYWRhbSBwZXJhbGloYW4ga2VhZGFhbiBpbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnTWVuYW1iYWggcGVyYWxpaGFuIGtlYWRhYW4geWFuZyBiYXJ1IHVudHVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICdTaWxhIHBpbGloIGtlYWRhYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJ1NpbGEgcGlsaWggc3RhdHVzIGJlcmlrdXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ1Blbnl1bnRpbmdhbiBwZXJhbGloYW4ga2VhZGFhbiB1bnR1ayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnQWRha2FoIGFuZGEgbWFodSBtZW1hZGFtIHN0YXR1cyBwZXJhbGloYW4gaW5pIGJlbmFyLWJlbmFyPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDaGFuZ2UnfSA9ICdUdWthciBUYW1iYWgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UnfSA9ICdVYmFoIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSnVzdGlmaWNhdGlvbid9ID0gJ2p1c3RpZmlrYXNpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAnaW5wdXQgdGlkYWsgc2FoLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgRGF0ZSd9ID0gJ1RhcmlraCB5YW5nIGRpbWludGEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnVHVrYXIgUGlsaWggVGVtcGxhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHR5cGUnfSA9ICdNYXNhLWplbmlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSB0eXBlLid9ID0gJ01hc2EgVGFpcCB0aWRhayBzYWguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB0aW1lJ30gPSAnTWFzYSBiYXJ1JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBDQUIgYXMgdGVtcGxhdGUnfSA9ICdJbmkgcGVydWJhaGFuIHNlYmFnYWkgdGVtcGxhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJ3BlcmdpIGtlcGFkYSBvcmFuZy1vcmFuZyBza3JpbiB0ZXJsaWJhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICduYW1hIHRpZGFrIHNhaCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbnMgYW5kIEFjdGlvbnMnfSA9ICdTeWFyYXQtc3lhcmF0IGRhbiBUaW5kYWthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnUGFkYW0ga2VhZGFhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJ1RhbWJhaCBrZWFkYWFuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJ1Blcmx1IG5hbWEgeWFuZyBzYWguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJ01lbnlhbGluIG5hbWE6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbmFtZSBpcyBhbHJlYWR5IHVzZWQgYnkgYW5vdGhlciBjb25kaXRpb24uJ30gPSAnTmFtYSBqbmkgc3VkYWggZGlndW5ha2FuIG9sZWgga2VhZGFhbiBsYWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJ1NlcGFkYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJ1NlYmFyYW5nIGVrc3ByZXNpIChBVEFVKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICdTZW11YSB1bmdrYXBhbiBsb2dpayAoREFOKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJ1VuZ2thcGFuIGxvZ2lrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdG9yJ30gPSAncGVtaWxpaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJ09wZXJhdG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBFeHByZXNzaW9uJ30gPSAnTWVtYWRhbSB1bmdrYXBhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICdUaWFkYSB1bmdrYXBhbiBsb2dpayBkaXRlbXVpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGV4cHJlc3Npb24nfSA9ICdUYW1iYWggdW5na2FwYW4gYmFydSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAnTWVtYWRhbSB0aW5kYWthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBBY3Rpb25zIGZvdW5kLid9ID0gJ1RpYWRhIFRpbmRha2FuIGRpanVtcGFpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGFjdGlvbid9ID0gJ1RhbWJhaCB0aW5kYWthbiBiYXJ1JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICdBZGFrYWggYW5kYSBiZW5hci1iZW5hciBtYWh1IHVudHVrIG1lbWFkYW0gcGVydWJhaGFuIGluaT8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJ1NlamFyYWggJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICdLYW5kdW5nYW4gc2VqYXJhaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICdQZXJpbnRhaCBLZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnQ2lwdGEgbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICdLZXBlcmluY2hpYW4gbWVudW5qdWtrYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICdQZXJpbnRhaCBrZXJqYSBtZW51bmp1a2thbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJ0RpdWJhaHN1YWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnTmlsYWkgTGFtYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICdOaWxhaSBCYXJ1JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJbnZvbHZlZCBQZXJzb25zIG9mICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52b2x2ZWQgUGVyc29ucyd9ID0gJ09yYW5nIHRlcmxpYmF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICdQZXJ1YmFoYW4gUGVuZ3VydXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJ1BlbmdndW5hIHRpZGFrIHNhaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVyJ30gPSAnUGVydWJhaGFuIE1lbWJpbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnUGVydWJhaGFuLVBlbmFzaWhhdC1MZW1iYWdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJ0NBQi1UZW1wbGF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnbWVtb2hvbiB0ZW1wbGF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAnVGVtcGxhdCBiYXJ1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgdGhpcyBDQUIgYXMgdGVtcGxhdGUnfSA9ICdTaW1wYW4gQ0FCIGluaSBzZWJhZ2FpIHRlbXBsYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRvIENBQid9ID0gJ1RhbWJhaCBrZXBhZGEgQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJ1BlbmdndW5hIFRpZGFrIFNhaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJ0NBQiBzZW1hc2EnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdUZXRhcGFuIGtvbnRla3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlcyBwZXIgcGFnZSd9ID0gJ1BlcnViYWhhbiBzZXRpYXAgaGFsYW1hbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJ1BlcnViYWhhbiBwZW1iaW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnUGVydWJhaGFuIFBlbmd1cnVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcnMnfSA9ICdQZXJpbnRhaCBLZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnTWFzYSB5YW5nIERpbWludGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIEVuZCBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAnQWRha2FoIGFuZGEgYmVuYXItYmVuYXIgbWFodSB1bnR1ayBtZW5ldGFwa2FuIHNlbXVsYSBwZXJ1YmFoYW4gaW5pPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcoei4gQi4gMTAqNTE1NSBvciAxMDU2NTgqKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS5nLid9ID0gJ2N0aC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnVWJhaCBLYXRlZ29yaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyhzZWJlbHVtL3NlbGVwYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyhkaWFudGFyYSknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAnU2ltcGFuIFBlcnViYWhhbiBzZWJhZ2FpIFRlbXBsYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnVGVtcGxhdGUgaGFydXMgbWVtcHVueWFpIG5hbWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJ05hbWEgdGVtcGxhdGUgZGlwZXJsdWthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAnU2V0IFNlbXVsYSBLZWFkYWFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJ01lbnVsaXMgZ2FudGkgdGVtcGxhdCBhc2FsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICdNZW1hZGFtIHBlcnViYWhhbiBhc2FsJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJ0dlcmFra2FuIFNsb3QgTWFzYSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICdtZW5ndWJhaCBNYWtsdW1hdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnUGVuZ2dlcmFrIFBlcnViYWhhbihzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICdDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAnVGVya2luaSBiZXJ1YmFoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ1RlcmFraGlyIGRpdWJhaCBvbGVoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnVW50dWsgbWVtYnVrYSBwYXV0YW4gZGFsYW0ga2V0ZXJhbmdhbiBibG9rIGJlcmlrdXQsIGFuZGEgbXVuZ2tpbiBwZXJsdSBtZW5la2FuIGtla3VuY2kgQ3RybCBhdGF1IENtZCBhdGF1IFNoaWZ0IHNlbWFzYSBtZW5la2FuIHBhdXRhbiAoYmVyZ2FudHVuZyBrZXBhZGEgcGVsYXlhciBkYW4gc2lzdGVtIG9wZXJhc2kgYW5kYSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICdtZW11YXQgdHVydW4gbGFtcGlyYW4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJ01lbnl1bnRpbmcgdGVtcGxhdCBDQUInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFuZ2UgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICdJbmkgYWthbiBtZW5naGFzaWxrYW4gcGVydWJhaGFuIGJhcnUgcGFkYSB0ZW1wbGF0LCBqYWRpIGFuZGEgYm9sZWggbWVuZ3ViYWggZGFuIG1lbnlpbXBhbm55YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5ldyBjaGFuZ2Ugd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgaXQgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICdQZXJ1YmFoYW4gYmFydSBha2FuIGRpcGFkYW0gc2VjYXJhIGF1dG9tYXRpayBzZWxlcGFzIGlhIHRlbGFoIGRpc2ltcGFuIHNlYmFnYWkgdGVtcGxhdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyB3b3Jrb3JkZXIgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICdJbmkgYWthbiBtZW5jaXB0YSBhdHVyYW4ga2VyamEgYmFydSBkYXJpIHRlbXBsYXQsIGphZGkgYW5kYSBib2xlaCBtZW5ndWJhaCBkYW4gbWVueWltcGFubnlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdQZXJ1YmFoYW4gc2VtZW50YXJhIGFrYW4gZGl3dWp1ZGthbiB5YW5nIG1lbmdhbmR1bmdpIGF0dXJhbiBrZXJqYSBpdHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICdQZXJ1YmFoYW4gc2VtZW50YXJhIGRhbiBhdHVyYW4ga2VyamEgYmFoYXJ1IGFrYW4gZGlwYWRhbSBzZWNhcmEgYXV0b21hdGlrIHNlbGVwYXMgYXR1cmFuIGtlcmphIHRlbGFoIGRpc2ltcGFuIHNlYmFnYWkgdGVtcGxhdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nfSA9ICdBZGFrYWggYW5kYSBpbmdpbiBtZW5lcnVza2FuPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJ01lbmd1YmFoIGthbmR1bmdhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnQXJhaGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnS2VyamEgdGlkYWsgc2FoIG1lbmdpa3V0IHBlc2FuYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICdNYXNhIG11bGEgZGlyYW5jYW5nIG1lc3RpbGFoIHNlYmVsdW0gbWFzYSBha2hpciBkaXJhbmNhbmchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJ2Zvcm1hdCB0aWRhayBzYWguJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJ1BpbGloIFRlbXBsYXQgUGVyaW50YWggS2VyamEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJ0FkYWthaCBhbmRhIGJlbmFyLWJlbmFyIGluZ2luIG1lbWFkYW0gaW5pIHBlcmludGFoIGtlcmphPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJ0FuZGEgdGlkYWsgYm9sZWggbWVtYWRhbSBpbmkgVGF0YSBLZXJqYS4gSWEgZGlndW5ha2FuIGRhbGFtIHNla3VyYW5nLWt1cmFuZ255YSBzYXR1IEtlYWRhYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICdQZXJpbnRhaCBLZXJqYSBkaWd1bmFrYW4gZGFsYW0gU3lhcmF0LXN5YXJhdCBiZXJpa3V0JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnR2VyYWtrYW4gYXR1cmFuLWF0dXJhbiBrZXJqYSBzZXdhamFybnlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJ0ppa2EgbWFzYSBha2hpciB5YW5nIGRpcmFuY2FuZyB1bnR1ayBhdHVyYW4ga2VyamEgaW5pIGJlcnViYWgsIHphbWFuIHBlcm11bGFhbiB5YW5nIGRpcmFuY2FuZyBzZW11YSBhdHVyYW4ga2VyamEgYmVyaWt1dG55YSBha2FuIGJlcnViYWggc2V3YWphcm55YSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJ0xhcG9yYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnTWFzYSBtdWxhIHNlYmVuYXIgbWVzdGkgc2ViZWx1bSBtYXNhIGFraGlyIHNlYmVuYXIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJ01hc2EgbXVsYSBzZWJlbmFyIG1lc3RpIGRpdGV0YXBrYW4sIGFwYWJpbGEgYWtoaXIgemFtYW4gc2ViZW5hciBkaXRldGFwa2FuISc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnQWdlbiBzZW1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnQWRha2FoIGFuZGEgYmVuYXItYmVuYXIgbWFodSBtZW5nYW1iaWwgcGVyaW50YWgga2VyamE/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJ1NpbXBhbiBQZXJpbnRhaCBLZXJqYSBzZWJhZ2FpIFRlbXBsYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknfSA9ICdQYWRhbSBhdHVyYW4ga2VyamEgYXNhbCAoZGFuIHBlcnViYWhhbiBzZWtlbGlsaW5nKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICdJbmZvcm1hc2kgUGVyaW50YWggS2VyamEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnVGlhZGEgJXMgZGliZXJpa2FuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biBjaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXInfSA9ICdQZXJpbnRhaCBLZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICdOb21ib3IgVXJ1dGFuS2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICdUYWp1ayBLZXJqYSBQZXJpbnRhaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJ1ViYWggU3RhdHVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICdVc2FoYSB5YW5nIGRpcmFuY2FuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJ01hc2FZYW5nRGltaW50YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnUmFuY2FuZyBNYXNhIE11bGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICdSYW5jYW5nIE1hc2EgVGFtYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAnTWFzYSBNdWxhIFNlYmVuYXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJ01hc2EgVGFtYXQgU2ViZW5hcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaW1lJ30gPSAnVWJhaE1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnVWJhaCBOb21ib3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICdTdGF0dXMgUGVyaW50YWggS2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJ0plbmlzIFBlcmludGFoIEtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50J30gPSAnRWplbiBQZXJpbnRhaCBrZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAnVWJhaCB0YWp1ayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnUGVyaW50YWggS2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJ1RpYWRhIHBpbGloYW4gY29uZmlnIGRpanVtcGFpIHVudHVrIHBhbmRhbmdhbiAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICdDQUIgU2F5YSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDaGFuZ2VzJ30gPSAnUGVydWJhaGFuIFNheWEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAnc2VtdWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAncGVsYmFnYWknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9Ob3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3JzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJ2RpbWludGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJ3Blbmdlc2FoYW4gdGVyZ2FudHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJ2RpdG9sYWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICdEaXNhaGthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJ2RhbGFtIHByb3Nlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJ1BJUiB0ZXJnYW50dW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICdiZXJqYXlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJ2RpZ2FnYWxrYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICdkaWJhdGFsa2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJ2RpdGFyaWsgYmFsaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJ2RpY2lwdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICdEaXRlcmltYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJ3NlZGlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAnUGVuZ2VzYWhhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICd1cnV0YW5rZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnbWVuYXJpa2RpcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICdrZXB1dHVzYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnaWFsYWgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnaWFsYWggdGlkYWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICdpYWxhaCBrb3NvbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAnaWFsYWggdGlkYWsga29zb25nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJ2lhbGFoIGxlYmloIGJlc2FyIGRhcmlwYWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJ2lhbGFoIGt1cmFuZyBkYXJpcGFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICdpYWxhaCBzZWJlbHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnaWFsYWggc2VsZXBhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJ21lbmdhbmR1bmdpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJ3RpZGFrIG1lbmdhbmR1bmdpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnYmVybXVsYSBkZW5nYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZW5kcyB3aXRoJ30gPSAndGFtYXQgZGVuZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJ3NldCc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJ09rJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnU2F0dSBzZW5hcmFpIGFnZW4geWFuZyBtZW1wdW55YWkga2ViZW5hcmFuIHVudHVrIG1lbmdhbWJpbCBwZXNhbmFuIGtlcmphLiBVdGFtYSBhZGFsYWggbmFtYSBsb2cgbWFzdWsuIEthbmR1bmdhbiBhZGFsYWggMCBhdGF1IDEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICdTYXR1IHNlbmFyYWkgc3RhdHVzIHBlc2FuYW4ga2VyamEsIGRpIG1hbmEgTWFzYSBNdWxhIHNlYmVuYXIgcGVyaW50YWgga2VyamEgYWthbiBkaXRldGFwa2FuIGppa2EgaWEgYWRhbGFoIGtvc29uZyBwYWRhIGtldGlrYSBpbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnVGFtYmFoIFVydXRhbmtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnVGFtYmFoIGRhcmlwYWRhIHRlbXBsYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnQWRtaW4gbWF0cmlrcyBDSVAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJ0FkbWluIGplbnRlcmEga2VyYWphYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICdBZ2VuIGFudGFyYSBtdWthIG1vZHVsIHBlbWJlcml0YWh1YW4gdW50dWsgbWVsaWhhdCBiaWxhbmdhbiBtZW51a2FyIGxlbWJhZ2EgcGVuYXNpaGF0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICdBZ2VuIGFudGFyYSBtdWthIG1vZHVsIHBlbWJlcml0YWh1YW4gdW50dWsgbWVsaWhhdCBiZWJlcmFwYSBwZXJ1YmFoYW4geWFuZyBkaXVydXNrYW4gb2xlaCBwZW5nZ3VuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJ0FnZW4gYW50YXJhIG11a2EgbW9kdWwgcGVtYmVyaXRhaHVhbiB1bnR1ayBtZWxpaGF0IGJlYmVyYXBhIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnV2FrdHUgY2FjaGUgZGFsYW0gbWluaXQgdW50dWsgYmFyIGFsYXQgcGVuZ3VydXNhbiBjaGFuZ2UuIExhbGFpOiAzIGphbSAoMTgwIG1pbml0KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJ1dha3R1IGNhY2hlIGRhbGFtIG1pbml0IHVudHVrIHBlbmd1cnVzYW4gY2hhbmdlLiBMYWxhaTogNSBoYXJpICg3MjAwIG1pbml0KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ1RpbmphdWFuIENoYW5nZSBIYWQgIktlY2lsIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAnVWJhaCBKYWR1YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgV29ya29yZGVyIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIHdvcmtvcmRlciB0ZW1wbGF0ZXMgZWRpdGVkIGJ5IHRoaXMgdXNlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBudW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ1R1a2FyIHJvdXRlciBjYXJpYW4gYmFja2VuZCBhbnRhcmEgbXVrYSBlamVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBFZGl0J30gPSAnQXVkaXQgU3lhcmF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnRGlrb25maWd1cmFzaSBiZXJhcGEga2VyYXAgcGVtYmVyaXRhaHVhbiBha2FuIGRpaGFudGFyIGFwYWJpbGEgbWVyYW5jYW5nIG1hc2EgbXVsYSBhdGF1IG5pbGFpIG1hc2EgbGFpbiB0ZWxhaCBtZW5jYXBhaSAvIGRpbHVsdXNrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICdDaXB0YSBVYmFoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJ0plbmlzIGxhbGFpIHVudHVrIHBlcmludGFoIGtlcmphLiBFbnRyaSBpbmkgbWVzdGkgd3VqdWQgZGkgZGFsYW0ga2VsYXMga2F0YWxvZyBhbSBcJ0lUU006OlBlbmd1cnVzYW4gUGVydWJhaGFuOjpQZXJpbnRhaCBLZXJqYTo6SmVuaXNcJy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJ1Rha3JpZmthbiBUaW5kYWthbiBkaW1hbmEgYnV0YW5nIHRldGFwYW4gaXR1IGFkYSBkYWxhbSB3aWRnZXQgb2JqZWsgYmVyc2FtYnVuZyAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBTaWxhIHBhc3Rpa2FuIHlhbmcgVGluZGFrYW4gaW5pIHBlcmx1IGRpZGFmdGFya2FuIHlhbmcgYmVyaWt1dCBmYWlsLWZhaWwgSlMgZGFuIENTUzogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICdUZW50dWthbiBpc3lhcmF0IHVudHVrIHNldGlhcCBrZWFkYWFuIHBlcmludGFoIGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBtb2R1bCBnYW1iYXJhbiB1bnR1ayBtZW51bmp1a2thbiBwYW5kYW5nYW4geWFuZyBrZWNpbCBzZW5hcmFpIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gbW9kdWwgZ2FtYmFyYW4gdW50dWsgbWVudW5qdWtrYW4gcGFuZGFuZ2FuIHlhbmcga2VjaWwgc2VuYXJhaSB0ZW1wbGF0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJ01lbnRha3JpZmthbiBqaWthIGlhIGFrYW4gbWVuamFkaSBtdXN0YWhpbCB1bnR1ayBtZW5jZXRhayBtYXNhIHlhbmcgZGlhbWJpbGtpcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICdNZW50YWtyaWZrYW4gamlrYSBpYSBha2FuIG1lbmphZGkgbXVzdGFoaWwgdW50dWsgbWVuY2V0YWsgdXNhaGEgeWFuZyBkaXJhbmNhbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSBjaGFuZ2UgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIGNoYW5nZSBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBqaWthIGRhcGF0IGRpaHVidW5naSAoc2VwZXJ0aSB5YW5nIGRpdGFrcmlma2FuIG9sZWgga2VhZGFhbiBtZXNpbikga2VhZGFhbiBjaGFuZ2UgYWtoaXIgaGFydXMgZGliZW5hcmthbiBqaWthIGNoYW5nZSBiZXJhZGEgZGFsYW0ga2VhZGFhbiB5YW5nIGJlcmt1bmNpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gamlrYSBkYXBhdCBkaWh1YnVuZ2kgKHNlcGVydGkgeWFuZyBkaXRha3JpZmthbiBvbGVoIGtlYWRhYW4gbWVzaW4pIHVydXRhbmtlcmphIGtlYWRhYW4gY2hhbmdlIGFraGlyIGhhcnVzIGRpYmVuYXJrYW4gamlrYSB1cnV0YW5rZXJqYSBiZXJhZGEgZGFsYW0ga2VhZGFhbiB5YW5nIGJlcmt1bmNpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnTWVudGFrcmlma2FuIGppa2EgbWFzYSB5YW5nIGRpYW1iaWwga2lyYSBoZW5kYWtsYWggZGl0dW5qdWtrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnTWVudGFrcmlma2FuIGppa2EgcGVybXVsYWFuIHNlYmVuYXIgZGFuIGFraGlyIHphbWFuIGhhcnVzIGRpdGV0YXBrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBqaWthIGNhcmlhbiBjaGFuZ2UgZGFuIHVydXRhbmtlcmphIGNhcmlhbiBmdW5nc2kgYm9sZWggbWVuZ2d1bmFrYW4gY2VybWluIERCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJ01lbnRha3JpZmthbiBqaWthIHVzYWhhIHlhbmcgZGlyYW5jYW5nIGhlbmRha2xhaCBkaXR1bmp1a2thbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJ01lbnRha3JpZmthbiBqaWthIHRhcmlraCB5YW5nIGRpbWludGEgaGFydXMgY2V0YWsgb2xlaCBwZWxhbmdnYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGppa2EgdGFyaWtoIHlhbmcgZGltaW50YSBwZXJsdSBkaWNhcmkgb2xlaCBwZWxhbmdnYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnTWVudGFrcmlma2FuIGppa2EgdGFyaWtoIHlhbmcgZGltaW50YSBoZW5kYWtsYWggZGl0ZXRhcGthbiBvbGVoIHBlbGFuZ2dhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAnTWVudGFrcmlma2FuIGppa2EgdGFyaWtoIHlhbmcgZGltaW50YSBoZW5kYWtsYWggZGl0dW5qdWtrYW4gb2xlaCBwZWxhbmdnYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnTWVudGFrcmlma2FuIGppa2Ega2VhZGFhbiBwZXJpbnRhaCBrZXJqYSBoZW5kYWtsYWggZGl0dW5qdWtrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnTWVudGFrcmlma2FuIGppa2EgdGFqdWsgcGVyaW50YWgga2VyamEgaGVuZGFrbGFoIGRpdHVuanVra2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnTWVudGFrcmlma2FuIGNpcmktY2lyaSBncmFmIGRpdHVuanVra2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBiYWhhd2EgcGVydWJhaGFuIGhhbnlhIG1lbmdhbmR1bmdpIFdvcmtvcmRlcnMgZGlrYWl0a2FuIGRlbmdhbiBwZXJraGlkbWF0YW4sIHBlbmdndW5hIHBlbGFuZ2dhbiB5YW5nIG1lbXB1bnlhaSBrZWJlbmFyYW4gdW50dWsgbWVuZ2d1bmFrYW4gYWthbiBkaXR1bmp1a2thbi4gU2ViYXJhbmcgcGVydWJhaGFuIGxhaW4gdGlkYWsgYWthbiBkaXBhcGFya2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICdNZW50YWtyaWZrYW4ga2VhZGFhbiBjaGFuZ2UgeWFuZyBha2FuIGRpYmVuYXJrYW4gdW50dWsgbWVtYWRhbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGtlYWRhYW4gcGVydWJhaGFuIHlhbmcgYWthbiBkaWd1bmFrYW4gc2ViYWdhaSBwZW5hcGlzIGRhbGFtIGdhbWJhcmFuIFBTQSBQZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGtlYWRhYW4gcGVydWJhaGFuIHlhbmcgYWthbiBkaWd1bmFrYW4gc2ViYWdhaSBwZW5hcGlzIGRhbGFtIGdhbWJhcmFuIEphZHVhbCBQZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4ga2VhZGFhbiBwZXJ1YmFoYW4geWFuZyBha2FuIGRpZ3VuYWthbiBzZWJhZ2FpIHBlbmFwaXMgZGFsYW0gZ2FtYmFyYW4gTXlDQUIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGtlYWRhYW4gcGVydWJhaGFuIHlhbmcgYWthbiBkaWd1bmFrYW4gc2ViYWdhaSBwZW5hcGlzIGRhbGFtIGdhbWJhcmFuIE15Q2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBrZWFkYWFuIHBlcnViYWhhbiB5YW5nIGFrYW4gZGlndW5ha2FuIHNlYmFnYWkgcGVuYXBpcyBkYWxhbSBnYW1iYXJhbiBwZW5ndXJ1cyBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGtlYWRhYW4gcGVydWJhaGFuIHlhbmcgYWthbiBkaWd1bmFrYW4gc2ViYWdhaSBwZW5hcGlzIGRhbGFtIGdhbWJhcmFuIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gbmVnZXJpIHBlcnViYWhhbiB5YW5nIGFrYW4gZGlndW5ha2FuIHNlYmFnYWkgcGVuYXBpcyBkYWxhbSBwZXJ1YmFoYW4gamFkdWFsIGdhbWJhcmFuIGtlc2VsdXJ1aGFuIHBlbGFuZ2dhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHRhanVrIHBlcnViYWhhbiBsYWxhaSB1bnR1ayBwZXJ1YmFoYW4gZHVtbXkgeWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbmdlZGl0IHRlbXBsYXQgVXJ1dGFuS2VyamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBrcml0ZXJpYSBqZW5pcyBsYWxhaSBkYWxhbSBnYW1iYXJhbiBrZXNlbHVydWhhbiBQU0EgcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGtyaXRlcmlhIGplbmlzIGxhbGFpIGRhbGFtIGdhbWJhcmFuIHBlbmd1cnVzIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnTWVudGFrcmlma2FuIGtyaXRlcmlhIGFwYXB1biBsYWxhaSBkYWxhbSBnYW1iYXJhbiBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnU01lbnRha3JpZmthbiBrcml0ZXJpYSBqZW5pcyBsYWxhaSBkYWxhbSBnYW1iYXJhbiBrZXNlbHVydWhhbiBqYWR1YWwgcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGtyaXRlcmlhIGplbmlzIGxhbGFpIHBlcnViYWhhbiBkYWxhbSBnYW1iYXJhbiBNeUNBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4ga3JpdGVyaWEgamVuaXMgbGFsYWkgcGVydWJhaGFuIGRhbGFtIGdhbWJhcmFuIE15Q2hhbmdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4ga3JpdGVyaWEgamVuaXMgbGFsYWkgcGVydWJhaGFuIGRhbGFtIGdhbWJhcmFuIGtlc2VsdXJ1aGFuIHBlc2FuYW4gS2VyamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGtyaXRlcmlhIGplbmlzIGxhbGFpIHBlcnViYWhhbiBkYWxhbSBnYW1iYXJhbiBQSVIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGtyaXRlcmlhIGFwYXB1biBsYWxhaSBwZXJ1YmFoYW4gZGFsYW0gcGVydWJhaGFuIGphZHVhbCBnYW1iYXJhbiBrZXNlbHVydWhhbiBwZWxhbmdnYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4ga3JpdGVyaWEgamVuaXMgbGFsYWkgcGVydWJhaGFuIGRhbGFtIGdhbWJhcmFuIHRlbXBsYXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAnTWVudGFrcmlma2FuIHBlcmludGFoIGxhbGFpIGFwYXB1biBkYWxhbSBnYW1iYXJhbiBNeUNBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnTWVudGFrcmlma2FuIHBlcmludGFoIGxhbGFpIGFwYXB1biBkYWxhbSBnYW1iYXJhbiBNeUNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHBlcmludGFoIGxhbGFpIGFwYXB1biBkYWxhbSBnYW1iYXJhbiBrZXNlbHVydWhhbiBwZXNhbmFuIEtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICdNZW50YWtyaWZrYW4gcGVyaW50YWggbGFsYWkgYXBhcHVuIGRhbGFtIGdhbWJhcmFuIFBJUi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0gJ01lbnRha3JpZmthbiBwZXJpbnRhaCBsYWxhaSBqZW5pcyBnYW1iYXJhbiBwZXJ1YmFoYW4gUFNBLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHBlcmludGFoIGxhbGFpIGplbmlzIGRhbGFtIGdhbWJhcmFuIHBlbmd1cnVzIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnTWVudGFrcmlma2FuIHBlcmludGFoIGxhbGFpIGFwYXB1biBkYWxhbSBnYW1iYXJhbiBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHBlcmludGFoIGxhbGFpIGplbmlzIGRhbGFtIGdhbWJhcmFuIGtlc2VsdXJ1aGFuIGphZHVhbCBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHBlcmludGFoIGxhbGFpIGFwYXB1biBkYWxhbSBwZXJ1YmFoYW4gamFkdWFsIGdhbWJhcmFuIGtlc2VsdXJ1aGFuIHBlbGFuZ2dhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICdNZW50YWtyaWZrYW4gcGVyaW50YWggbGFsYWkgYXBhcHVuIGRhbGFtIGdhbWJhcmFuIHRlbXBsYXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnTWVudGFrcmlma2FuIG5pbGFpIGxhbGFpIGJhZ2kga2F0ZWdvcmkgcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJ01lbnRha3JpZmthbiBuaWxhaSBsYWxhaSBiYWdpIGtlc2FuIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gdGVtcG9oIChkYWxhbSB0YWh1biksIGRpIG1hbmEgbXVsYSBkYW4gYWtoaXIga2FsaSBib2xlaCBkaXBpbGloLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHNpZmF0LXNpZmF0IHlhbmcgZGl0dW5qdWtrYW4gZGFyaXBhZGEgVXJ1dGFuS2VyamEgZGFsYW0gdG9vbHRpcCBncmFmIFVydXRhbktlcmphIGRpIHp1bSBwZXJ1YmFoYW4uIFVudHVrIG1lbnVuanVra2FuIG1lZGFuIGRpbmFtaWsgVXJ1dGFuS2VyamEgZGFsYW0gdG9vbHRpcCAsIG1lcmVrYSBtZXN0aSBkaW55YXRha2FuIHNlcGVydGkgTWVkYW5EaW5hbWlrX1VydXRhbktlcmphTmFtYTEsIE1lZGFuRGluYW1pa19VcnV0YW5LZXJqYU5hbWEyLCBkYW4gbGFpbi1sYWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGxhanVyIG1lbnVuanVra2FuIGdhbWJhcmFuIFBTQSBQZXJ1YmFoYW4uIFBpbGloYW4gaW5pIHRpZGFrIG1lbXB1bnlhaSBrZXNhbiBrZSBhdGFzIGtlZHVkdWthbiB0aWFuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGxhanVyIG1lbnVuanVra2FuIGRhbGFtIGdhbWJhcmFuIEphZHVhbCBQZXJ1YmFoYW4uIFBpbGloYW4gaW5pIHRpZGFrIG1lbXB1bnlhaSBrZXNhbiBrZSBhdGFzIGtlZHVkdWthbiB0aWFuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gcnVhbmdhbiBtZW51bmp1a2thbiBkYWxhbSBnYW1iYXJhbiBNeUNBQi4gUGlsaWhhbiBpbmkgdGlkYWsgbWVtcHVueWFpIGtlc2FuIGtlIGF0YXMga2VkdWR1a2FuIHRpYW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gcnVhbmdhbiB5YW5nIGRpdHVuanVra2FuIGRhbGFtIGdhbWJhcmFuIE15Q2hhbmdlcy4gUGlsaWhhbiBpbmkgdGlkYWsgbWVtcHVueWFpIGtlc2FuIGtlIGF0YXMga2VkdWR1a2FuIHRpYW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gbGFqdXIgbWVudW5qdWtrYW4gZ2FtYmFyYW4ga2VzZWx1cnVoYW4gUGVzYW5hbiBLZXJqYSBTYXlhLiBQaWxpaGFuIGluaSB0aWRhayBtZW1wdW55YWkga2VzYW4ga2UgYXRhcyBrZWR1ZHVrYW4gdGlhbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBydWFuZ2FuIHlhbmcgZGl0dW5qdWtrYW4gZGFsYW0gZ2FtYmFyYW4gUElSLiBQaWxpaGFuIGluaSB0aWRhayBtZW1wdW55YWkga2VzYW4ga2UgYXRhcyBrZWR1ZHVrYW4gdGlhbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHJ1YW5nYW4geWFuZyBkaXR1bmp1a2thbiBkYWxhbSBnYW1iYXJhbiBrZXNlbHVydWhhbiBwZW5ndXJ1cyBwZXJ1YmFoYW4uIFBpbGloYW4gaW5pIHRpZGFrIG1lbXB1bnlhaSBrZXNhbiBrZSBhdGFzIGtlZHVkdWthbiB0aWFuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHJ1YW5nYW4geWFuZyBkaXR1bmp1a2thbiBkYWxhbSBnYW1iYXJhbiBwZXJ1YmFoYW4uIFBpbGloYW4gaW5pIHRpZGFrIG1lbXB1bnlhaSBrZXNhbiBrZSBhdGFzIGtlZHVkdWthbiB0aWFuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBydWFuZ2FuIHlhbmcgZGl0dW5qdWtrYW4gZGFsYW0gY2FyaWFuIHBlcnViYWhhbi4gUGlsaWhhbiBpbmkgdGlkYWsgbWVtcHVueWFpIGtlc2FuIGtlIGF0YXMga2VkdWR1a2FuIHRpYW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gcnVhbmdhbiB5YW5nIGRpdHVuanVra2FuIGRhbGFtIHBlcnViYWhhbiBqYWR1YWwgZ2FtYmFyYW4ga2VzZWx1cnVoYW4gcGVsYW5nZ2FuLiBQaWxpaGFuIGluaSB0aWRhayBtZW1wdW55YWkga2VzYW4ga2UgYXRhcyBrZWR1ZHVrYW4gdGlhbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHJ1YW5nYW4geWFuZyBkaXR1bmp1a2thbiBkYWxhbSBnYW1iYXJhbiB0ZW1wbGF0ZS4gUGlsaWhhbiBpbmkgdGlkYWsgbWVtcHVueWFpIGtlc2FuIGtlIGF0YXMga2VkdWR1a2FuIHRpYW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBqZW5pcyB0ZW1wbGF0ZSB5YW5nIGFrYW4gZGlndW5ha2FuIHNlYmFnYWkgcGVuYXBpcyBkYWxhbSBnYW1iYXJhbiB0ZW1wbGF0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gc3RhdHVzIGtlcmphIHBlcmludGFoIHlhbmcgYWthbiBkaWd1bmFrYW4gc2ViYWdhaSBwZW5hcGlzIGRhbGFtIGdhbWJhcmFuIGtlc2VsdXJ1aGFuIEtlcmphIHBlc2FuYW4gc2F5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gc3RhdHVzIGtlcmphIHBlcmludGFoIHlhbmcgYWthbiBkaWd1bmFrYW4gc2ViYWdhaSBwZW5hcGlzIGRhbGFtIGdhbWJhcmFuIFBJUi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBqZW5pcyBwZXJpbnRhaCBrZXJqYSB5YW5nIGFrYW4gZGlndW5ha2FuIHVudHVrIG1lbnVuanVra2FuIGdhbWJhcmFuIFBJUi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAnTWVudGFrcmlma2FuIHNhbWEgYWRhIHBlbWJlcml0YWh1YW4gaGVuZGFrbGFoIGRpaGFudGFyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnTWVuZW50dWthbiBqaWthIGVqZW4gYm9sZWggYmVydHVrYXItdHVrYXIgWC1wYWtzaSBiaW50YW5nIGppa2EgZGlhIG1lbmphbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJ01lbmVudHVrYW4gamlrYSBtb2R1bCBzdGF0aXN0aWsgYmlhc2EgYm9sZWggbWVuamFuYSBzdGF0aXN0aWsgdGVudGFuZyBwZXJ1YmFoYW4geWFuZyBkaWxha3VrYW4gYmFnaSBrZWxhcyBpdGVtIGNvbmZpZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJ01lbmVudHVrYW4gamlrYSBtb2R1bCBzdGF0aXN0aWsgYmlhc2EgYm9sZWggbWVuamFuYSBzdGF0aXN0aWsgdGVudGFuZyBwZXJ1YmFoYW4gbWVuZ2VuYWkga2VtYXNraW5pIG5lZ2VyaSBwZXJ1YmFoYW4gZGFsYW0gdGVtcG9oIG1hc2EgeWFuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nfSA9CiAgICAgICAgJ01lbmVudHVrYW4gamlrYSBtb2R1bCBzdGF0aXN0aWsgYmlhc2EgYm9sZWggbWVuamFuYSBzdGF0aXN0aWsgbWVuZ2VuYWkgcGVydWJhaGFuIG1lbmdlbmFpIGh1YnVuZ2FuIGFudGFyYSBwZXJ1YmFoYW4gZGFuIHRpa2V0IGtlamFkaWFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAnTWVuZW50dWthbiBqaWthIG1vZHVsIHN0YXRpc3RpayBiaWFzYSBib2xlaCBtZW5qYW5hIHN0YXRpc3RpayBtZW5nZW5haSBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJ01lbmVudHVrYW4gamlrYSBtb2R1bCBzdGF0aXN0aWsgYmlhc2EgYm9sZWggbWVuamFuYSBzdGF0aXN0aWsgbWVuZ2VuYWkgYmlsYW5nYW4gdGlrZXQgUkZDIHBlbWludGEgZGljaXB0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICdNb2R1bCBhY2FyYSBNZWRhbkRpbmFtaWsgdW50dWsgbWVuZ2VuZGFsaWthbiBtYWtsdW1hdCBrZWFkYWFuIGppa2EgbWVkYW4gZGluYW1payBkaXRhbWJhaCwgZGlrZW1hc2tpbmkgYXRhdSBkaWhhcHVza2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICdJVFNNIENoYW5nZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICdJVFNNIG1vZHVsIHBlcmlzdGl3YSB5YW5nIG1lbWJlcnNpaGthbiBzZWhpbmdnYSBrZWFkYWFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnSVRTTSBtb2R1bCBwZXJpc3Rpd2EgeWFuZyBtZW1hZGFtIGNhY2hlIHVudHVrIHRvb2xiYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJ0lUU00gbW9kdWwgYWNhcmEgeWFuZyBzZXBhZGFuIGRlbmdhbiBrZWFkYWFuIGRhbiBtZWxha3NhbmFrYW4gdGluZGFrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICdJVFNNIG1vZHVsIGFjYXJhIHlhbmcgbWVuZ2hhbnRhciBwZW1iZXJpdGFodWFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICdJVFNNIG1vZHVsIHBlcmlzdGl3YSB5YW5nIG1lbmdlbWFza2luaSBzZWphcmFoIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnSVRTTSBtb2R1bCBhY2FyYSB1bnR1ayBtZW5naXJhIG5vbWJvciBwZXNhbmFuIGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICdJVFNNIG1vZHVsIGFjYXJhIHVudHVrIG1lbmV0YXBrYW4gcGVybXVsYWFuIHNlYmVuYXIgZGFuIG1hc2EgYWtoaXIgcGVzYW5hbiBrZXJqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJ0lUU01VQ2hhbmdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01Xb3JrT3JkZXInfSA9ICdJVFNNVXJ1dGFuS2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZnJlcXVlbmN5IGlzIFwncmVndWxhcmx5XCcsIHlvdSBjYW4gY29uZmlndXJlIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCAoZXZlcnkgWCBob3VycykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIHdvcmtvcmRlciBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBhZ2VudHMsIHVzZWQgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIGNhdGVnb3J5IOKGlCBpbXBhY3Qg4oaUIHByaW9yaXR5IG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIGlmIFdvcmtPcmRlckFkZCBvciBXb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUgc2hvdWxkIGJlIHBlcm1pdHRlZC4nfSA9CiAgICAgICAgJ01vZHVsIHVudHVrIG1lbWVyaWtzYSBqaWthIFdvcmtPcmRlckFkZCBhdGF1IFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBoYXJ1cyBkaWJlbmFya2FuIC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICdNb2R1bCB1bnR1ayBtZW1lcmlrc2EgYWhsaSBDQUIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnTW9kdWwgdW50dWsgbWVtZXJpa3NhIGVqZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnTW9kdWwgdW50dWsgbWVtZXJpa3NhIHBlbWJpbmEgcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0gJ01vZHVsIHVudHVrIG1lbWVyaWtzYSBwZW5ndXJ1cyBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJ01vZHVsIHVudHVrIG1lbWVyaWtzYSBwZXNhbmFuIGtlcmphIGVqZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnTW9kdWwgdW50dWsgbWVtZXJpa3NhIHNhbWEgYWRhIHRpYWRhIGVqZW4ga2VyamEgcGVyaW50YWggZGl0ZXRhcGthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAnTW9kdWwgdW50dWsgbWVtZXJpa3NhIHNhbWEgYWRhIGVqZW4gaXR1IHRlcmthbmR1bmcgZGFsYW0gc2VuYXJhaSBkaWtvbmZpZ3VyYXNpa2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnTW9kdWwgdW50dWsgbWVudW5qdWtrYW4gcGF1dGFuIHVudHVrIG1lbWJ1YXQgcGVydWJhaGFuIGRhcmkgdGlrZXQgaW5pLiBUaWtldCBha2FuIHNlY2FyYSBhdXRvbWF0aWsgZGlrYWl0a2FuIGRlbmdhbiBwZXJ1YmFoYW4gYmFydS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgYWxsIHdvcmtvcmRlcnMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IChmcm9tIHRlbXBsYXRlKSd9ID0gJ0JhcnUgKGRhcmlwYWRhIHRlbXBsYXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnSGFueWEgcGVuZ2d1bmEga3VtcHVsYW4ta3VtcHVsYW4gaW5pIG1lbXB1bnlhaSBrZWJlbmFyYW4gdW50dWsgbWVuZ2d1bmFrYW4gamVuaXMgdGlrZXQgc2VwZXJ0aSB5YW5nIGRpdGFrcmlma2FuIGRhbGFtICJJVFNNQ2hhbmdlIDo6IEFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgamlrYSBjaXJpICJUaWtldCA6OiBBQ0wgOjogTW9kdWwgIyAjICMgMjAwLVRpa2V0IDo6IEFDTCA6OiBNb2R1bCIgZGlha3RpZmthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICdBdHVyYW4gTGFpbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICdQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQU0EnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBvYmplY3QgaW4gdGhlIHByZWZlcmVuY2UgdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnUGFyYW1ldGVyIHVudHVrIG9iamVrIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBkYWxhbSBwYW5kYW5nYW4ga2V1dGFtYWFuIGJhZ2kgYW50YXJhIG11a2EgZWplbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICdQYXJhbWV0ZXIgdW50dWsgaGFsYW1hbiAoZGkgbWFuYSBwZXJ1YmFoYW4gZGl0dW5qdWtrYW4pIGdhbWJhcmFuIHBlcnViYWhhbiBrZWNpbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICdNZWxha3VrYW4gdGluZGFrYW4geWFuZyB0ZWxhaCBkaWtvbmZpZ3VyYXNpIHVudHVrIHNldGlhcCBhY2FyYSAoc2ViYWdhaSBwZW5jZXR1cykgdW50dWsgc2V0aWFwIFdlYnNlcnZpY2UgeWFuZyB0ZWxhaCBkaWtvbmZpZ3VyYXNpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnS2Vpc3RpbWV3YWFuIERpcGVybHVrYW4gZGFsYW0gdXNhaGEgdW50dWsgZWplbiB1bnR1ayBtZW5nYW1iaWwgcGVyaW50YWgga2VyamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbmdha3NlcyBnYW1iYXJhbiBrZXNlbHVydWhhbiBzZW11YSBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJ0tlaXN0aW1ld2FhbiB5YW5nIGRpcGVybHVrYW4gdW50dWsgbWVuYW1iYWggcGVyaW50YWgga2VyamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnS2Vpc3RpbWV3YWFuIHlhbmcgZGlwZXJsdWthbiB1bnR1ayBtZW51a2FyIHBlc2FuYW4ga2VyamEgZWplbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlLid9ID0gJ0tlaXN0aW1ld2FhbiB5YW5nIGRpcGVybHVrYW4gdW50dWsgbWV3dWp1ZGthbiB0ZW1wbGF0ZSBkYXJpIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJ0tlaXN0aW1ld2FhbiB5YW5nIGRpcGVybHVrYW4gdW50dWsgbWVtYnVhdCB0ZW1wbGF0ZSBkYXJpIHBlcnViYWhhbiBDQUIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nfSA9ICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbWJ1YXQgdGVtcGxhdGUgZGFyaSBwZXJpbnRhaCBrZXJqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbWJ1YXQgcGVydWJhaGFuIGRhcmkgdGVtcGxhdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbmNpcHRhIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nfSA9ICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbWFkYW0gdGVtcGxhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJ0tlaXN0aW1ld2FhbiB5YW5nIGRpcGVybHVrYW4gdW50dWsgbWVtYWRhbSBwZXJpbnRhaCBrZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJ0tlaXN0aW1ld2FhbiB5YW5nIGRpcGVybHVrYW4gdW50dWsgbWVtYWRhbSBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJ0tlaXN0aW1ld2FhbiB5YW5nIGRpcGVybHVrYW4gdW50dWsgbWVuZ2VkaXQgdGVtcGxhdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbmdlZGl0IHBlcmludGFoIGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbmdlZGl0IHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnS2Vpc3RpbWV3YWFuIHlhbmcgZGlwZXJsdWthbiB1bnR1ayBtZW5nZWRpdCBzeWFyYXQgcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbmdlZGl0IGthbmR1bmdhbiB0ZW1wbGF0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbmdlZGl0IG9yYW5nIHlhbmcgdGVybGliYXQgcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIG1vdmUgY2hhbmdlcyBpbiB0aW1lLid9ID0gJ0tlaXN0aW1ld2FhbiB5YW5nIGRpcGVybHVrYW4gdW50dWsgbWVuZ2dlcmFra2FuIHBlcnViYWhhbiBkYWxhbSBtYXNhLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbmNldGFrIHBlcnViYWhhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJ30gPSAnS2Vpc3RpbWV3YWFuIHlhbmcgZGlwZXJsdWthbiB1bnR1ayBtZW5ldGFwa2FuIHNlbXVsYSBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBhIHdvcmtvcmRlci4nfSA9ICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbGloYXQgcGVyaW50YWgga2VyamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJ0tlaXN0aW1ld2FhbiB5YW5nIGRpcGVybHVrYW4gdW50dWsgbWVsaWhhdCBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgYSBDQUIgbWVtYmVyLid9ID0KICAgICAgICAnS2Vpc3RpbWV3YWFuIERpcGVybHVrYW4gdW50dWsgbWVsaWhhdCBzZW5hcmFpIHBlcnViYWhhbiBkaSBtYW5hIHBlbmdndW5hIGFkYWxhaCBhaGxpIENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICdLZWlzdGltZXdhYW4gRGlwZXJsdWthbiB1bnR1ayBtZWxpaGF0IHNlbmFyYWkgcGVydWJhaGFuIGRpIG1hbmEgcGVuZ2d1bmEgYWRhbGFoIHBlbmd1cnVzIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbGloYXQgZ2FtYmFyYW4gYXRhcyBzZW11YSB0ZW1wbGF0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnS2Vpc3RpbWV3YWFuIHlhbmcgZGlwZXJsdWthbiB1bnR1ayBtZWxpaGF0IGtlYWRhYW4gcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnS2Vpc3RpbWV3YWFuIHlhbmcgZGlwZXJsdWthbiB1bnR1ayBtZWxpaGF0IHNlamFyYWggcGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnS2Vpc3RpbWV3YWFuIHlhbmcgZGlwZXJsdWthbiB1bnR1ayBtZWxpaGF0IHNlamFyYWggcGVyaW50YWgga2VyamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJ0tlaXN0aW1ld2FhbiB5YW5nIGRpcGVybHVrYW4gdW50dWsgbWVsaWhhdCB6dW0gc2VqYXJhaCBwZXJ1YmFoYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnS2Vpc3RpbWV3YWFuIHlhbmcgZGlwZXJsdWthbiB1bnR1ayBtZWxpaGF0IHNlamFyYWggem9vbSBwZXJpbnRhaCBrZXJqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbGloYXQgc2VuYXJhaSBKYWR1YWwgUGVydWJhaGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICdLZWlzdGltZXdhYW4geWFuZyBkaXBlcmx1a2FuIHVudHVrIG1lbGloYXQgc2VuYXJhaSBwZXJ1YmFoYW4gUFNBLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLid9ID0KICAgICAgICAnS2Vpc3RpbWV3YWFuIHlhbmcgZGlwZXJsdWthbiB1bnR1ayBtZWxpaGF0IHNlbmFyYWkgcGVydWJhaGFuIGRlbmdhbiBQSVIgYWthbiBkYXRhbmcgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJ0tlaXN0aW1ld2FhbiB5YW5nIGRpcGVybHVrYW4gdW50dWsgbWVsaWhhdCBzZW5hcmFpIHBlcnViYWhhbiBzZW5kaXJpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnS2Vpc3RpbWV3YWFuIHlhbmcgZGlwZXJsdWthbiB1bnR1ayBtZWxpaGF0IHNlbmFyYWkgcGVzYW5hbiBrZXJqYSBzZW5kaXJpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHdyaXRlIGEgcmVwb3J0IGZvciB0aGUgd29ya29yZGVyLid9ID0gJ0tlaXN0aW1ld2FhbiB5YW5nIGRpcGVybHVrYW4gdW50dWsgbWVudWxpcyBsYXBvcmFuIHVudHVrIG1lbmRhcGF0a2FuIHBlcmludGFoIGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1J1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NyZWVuIGFmdGVyIGNyZWF0aW5nIGEgd29ya29yZGVyJ30gPSAnU2tyaW4gc2VsZXBhcyBtZW5jaXB0YSB1cnV0YW5rZXJqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICdDYXJpIFBlcnViYWhhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJ01lbWlsaWggbW9kdWwgYmViZXJhcGEgcGVydWJhaGFuIHBlbmphbmEuICJBdXRvSW5jcmVtZW50IiBtZW5hbWJhaCBub21ib3IgcGVydWJhaGFuLCBTaXN0ZW1JRCBkYW4ga2F1bnRlciBkaWd1bmFrYW4gZGVuZ2FuIGZvcm1hdCBTeXN0ZW1JRC5jb3VudGVyIChjb250b2g6IDEwMDExOCAsIDEwMDExOSApLiBEZW5nYW4gIlRhcmlraCIsIG5vbWJvciBwZXJ1YmFoYW4gYWthbiBkaWphbmEgb2xlaCB0YXJpa2ggZGFuIGthdW50ZXI7IGZvcm1hdCBpbmkga2VsaWhhdGFuIHNlcGVydGkgWWVhci5Nb250aC5EYXkuY291bnRlcjsgY29udG9obnlhIDIwMTAwNjI0MDAwMDEgLCAyMDEwMDYyNDAwMDAyLiBEZW5nYW4gIkRhdGVDaGVja3N1bSIsIGthdW50ZXIgaXR1IGFrYW4gZGl0YW1iYWggc2ViYWdhaSBjaGVja3N1bSBrZXBhZGEgcmVudGV0YW4gVGFyaWtoIGRpdGFtYmFoIElEIFNpc3RlbS4gQ2hlY2tzdW0gaW5pIGFrYW4gYmVycHV0YXIgc2V0aWFwIGhhcmkuIEZvcm1hdCBpbmkga2VsaWhhdGFuIHNlcGVydGkgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgY29udG9obnlhIDIwMTAwNjI0MTAwMDAwMTcgLCAyMDEwMDYyNDEwMDAwMDI2IC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJ1NldCBtaW5pbXVtIHNhaXoga2F1bnRlciBwZXJ1YmFoYW4gKGppa2EgIkF1dG9JbmNyZW1lbnQiIHRlbGFoIGRpcGlsaWggc2ViYWdhaSBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBMYWxhaSBhZGFsYWggNSwgaW5pIGJlcm1ha25hIGthdW50ZXIgYmVybXVsYSBkYXJpIDEwMDAwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJ1NldCB1cCBqZW50ZXJhIGtlcmFqYWFuIHVudHVrIHBlcnViYWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICdTZXQgdXAgamVudGVyYSBrZXJhamFhbiB1bnR1ayBwZXNhbmFuIGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lbnVuanVra2FuIHBhdXRhbiBkYWxhbSBtZW51IHlhbmcgbWVtYm9sZWhrYW4gbWVuZW50dWthbiBwZXJ1YmFoYW4gc2ViYWdhaSB0ZW1wbGF0IGRhbGFtIHBhcGFyYW4genVtIGNoYW5nZSwgZGFsYW0gYW50YXJhIG11a2EgZWplbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBlZGl0aW5nIHRoZSByZXBvcnQgb2YgYSB3b3Jrb3JkZXIsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lbnVuanVra2FuIHBhdXRhbiBkYWxhbSBtZW51IHlhbmcgbWVtYm9sZWhrYW4gbWVuZ2h1YnVuZ2thbiBwZXJ1YmFoYW4gZGVuZ2FuIG9iamVrIGxhaW4gZGFsYW0gcGFuZGFuZ2FuIHBlcnViYWhhbiB6dW0gYmFnaSBhbnRhcmEgbXVrYSBlamVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBwYXV0YW4gZGFsYW0gbWVudSB5YW5nIG1lbWJvbGVoa2FuIHBlcmdlcmFrYW4gc2xvdCBtYXNhIGNoYW5nZSBkYWxhbSBwYXBhcmFuIHp1bSBhbnRhcmEgbXVrYSBlamVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVudW5qdWtrYW4gcGF1dGFuIGRhbGFtIG1lbnUgdW50dWsgbWFzdWsga2Ugc3lhcmF0LXN5YXJhdCBwZXJ1YmFoYW4gZGFsYW0gcGFuZGFuZ2FuIHp1bSBhbnRhcmEgbXVrYSBlamVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBwYXV0YW4gZGFsYW0gbWVudSB1bnR1ayBtYXN1ayBrZSBzZWphcmFoIHBlcnViYWhhbiBkYWxhbSBwYW5kYW5nYW4genVtIGFudGFyYSBtdWthIGVqZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBwYXV0YW4gZGFsYW0gbWVudSB1bnR1ayBtZW1hZGFtIHBlcnViYWhhbiBkYWxhbSBwYW5kYW5nYW4genVtIGFudGFyYSBtdWthIGVqZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBwYXV0YW4gZGFsYW0gbWVudSB1bnR1ayBtZW5nZWRpdCBwZXJ1YmFoYW4gZGFsYW0gcGFuZGFuZ2FuIHp1bSBhbnRhcmEgbXVrYSBlamVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBwYXV0YW4gZGFsYW0gbWVudSB1bnR1ayBrZW1iYWxpIGRhbGFtIHBhbmRhbmdhbiB6dW0gY2hhbmdlIGJhZ2kgYW50YXJhIG11a2EgZWplbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lbnVuanVra2FuIHBhdXRhbiBkYWxhbSBtZW51IHVudHVrIG1lbmNldGFrIHBlcnViYWhhbiBkYWxhbSBwYW5kYW5nYW4genVtIGFudGFyYSBtdWthIGVqZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVudW5qdWtrYW4gcGF1dGFuIGRhbGFtIG1lbnUgdW50dWsgbWVuZXRhcGthbiBzZW11bGEgcGVydWJhaGFuIGRhbiB1cnV0YW5rZXJqYSBkYWxhbSBwYW5kYW5nYW4genVtIGFudGFyYSBtdWthIGVqZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVHVuanVra2FuIHNlamFyYWggY2hhbmdlIChwZXJpbnRhaCBiZXJiYWxpaykgZGFsYW0gYW50YXJhIG11a2EgZWplbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJ0tlYWRhYW4gTWVzaW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ1NpbXBhbiBjaGFuZ2UgZGFuIHVydXRhbmtlcmphIGlkcyBkYW4gaWQgdGVtcGxhdCBzZXBhZGFuLCBzZW1lbnRhcmEgcGVuZ2d1bmEgbWVuZ2VkaXQgdGVtcGxhdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICdBbWJpbCBVcnV0YW5LZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJ0xpaGF0IFNlbXVsYSBUZW1wbGF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICdQZW5nZWNhbSB1bnR1ayBwZXJ1YmFoYW4sIGkuIFBlcnViYWhhbiMgUGVydWJhaGFuIFNheWEjLiBMYWxhaSBhZGFsYWggUGVydWJhaGFuIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJ1BlbmdlY2FtIHVudHVrIG1lbmRhcGF0a2FuIHBlcmludGFoIGtlcmphLCBtaXNhbG55YSBXb3Jrb3JkZXIjIFdvcmtvcmRlciMuIExhbGFpIGFkYWxhaCBQZXJpbnRhaCBLZXJqYSMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICdNb2R1bCBBQ0wgbWVuZ2hhZGthbiBwZW5nZ3VuYWFuIGplbmlzIHRpa2V0IHlhbmcgZGl0YWtyaWZrYW4gZGFsYW0gcGlsaWhhbiBzeXNjb25maWcgXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywga2VwYWRhIHBlbmdndW5hIGRhcmlwYWRhIGt1bXB1bGFuIHNlcGVydGkgeWFuZyBkaXRha3JpZmthbiBkYWxhbSAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6S3VtcHVsYW4iLiBBQ0wgaW5pIGJvbGVoIGJlcnRlbWJ1bmcgZGVuZ2FuIEFjbHMgbGFpbiB5YW5nIGp1Z2EgYmVya2FpdGFuIGRlbmdhbiBqZW5pcyB0aWtldCwgcGlsaWhhbiBzeXNjb25maWcgaW5pIGRpbHVtcHVoa2FuIHNlY2FyYSBsYWxhaSBkYW4gaGFueWEgYm9sZWggZGlha3RpZmthbiBqaWthIGRpcGVybHVrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnSmVuaXMtamVuaXMgdGlrZXQsIGRpIG1hbmEgZGFsYW0gem9vbSB0aWtldCBtZWxpaGF0IHBhdXRhbiB1bnR1ayBtZW5hbWJhaCBwZXJ1YmFoYW4gYWthbiBkaXBhcGFya2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/nb_NO_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bmJfTk9fSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0thdGVnb3JpIDwtPiBPbWZhbmcgPC0+IFByaW9yaXRldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnU2V0dCBvcHAgdmFsZyBhdiBwcmlvcml0ZXQgYmFzZXJ0IHDDpSBLYXRlZ29yaSDihpQgT21mYW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eSBhbGxvY2F0aW9uJ30gPSAnVGlsZGVsaW5nIGF2IHByaW9yaXRldCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlTWFuYWdlbWVudCBOb3RpZmljYXRpb24gTWFuYWdlbWVudCd9ID0gJ0lUU00gRW5kcmluZ2VyIC0gTWVsZGluZ3NvcHBzZXR0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJ0xlZ2cgdGlsIE1lbGRpbmdzcmVnZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnRW4gbWVsZGluZyBtw6UgaGEgZXQgbmF2biEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmFtZSBpcyByZXF1aXJlZC4nfSA9ICdOYXZuIGVyIHDDpWtyZXZkJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTVN0YXRlTWFjaGluZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYSBjYXRhbG9nIGNsYXNzISd9ID0gJ1ZlbGcgZW4ga2F0YWxvZ2tsYXNzZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJ0VuIGthdGFsb2drbGFzc2UgZXIgcMOla3JldmQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdMZWdnIHRpbCBlbiB0aWxzdGFuZHNlbmRyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdLYXRhbG9na2xhc3NlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAnT2JqZWt0ZXRzIG5hdm4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICdPdmVyc2lrdCBvdmVyIHRpbHN0YW5kc2VuZHJpbmdlciBmb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ1NsZXR0IGRlbm5lIHRpbHN0YW5kc2VuZHJpbmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICdOeSB0aWxzdGFuZHNlbmRyaW5nIGZvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgc3RhdGUhJ30gPSAnVmVubmxpZ3N0IHZlbGcgZW4gdGlsc3RhbmQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJ1Zlbm5saWdzdCB2ZWxnIG5lc3RlIHRpbHN0YW5kISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICdSZWRpZ8OpciBlbiB0aWxzdGFuZHNlbmRyaW5nIGZvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnVmlsIGR1IHZpcmtlbGlnIHNsZXR0ZSB0aWxzdGFuZHNlbmRyaW5nZW4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnTGVnZyB0aWwgRW5kcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSd9ID0gJ0VuZHJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSnVzdGlmaWNhdGlvbid9ID0gJ0JlcmV0dGlnZWxzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnB1dCBpbnZhbGlkLid9ID0gJ1VneWxkaWcgdmVyZGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnRm9yZXNwdXJ0IGRhdG8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnVmVsZyBtYWwgZm9yIEVuZHJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAnVGlkc3R5cGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAnVWd5bGRpZyB0aWRzdHlwZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdGltZSd9ID0gJ055IHRpZCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnTGFncmUgRW5kcmluZ3MgQ0FCIHNvbSBtYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICdHw6UgdGlsIGludm9sdmVydGUgcGVyc29uZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnVWd5bGRpZyBuYXZuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJ0ZvcnV0c2V0bmluZ2VyIG9nIEdqw7hyZW3DpWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENvbmRpdGlvbid9ID0gJ1NsZXR0IGZvcnV0c2V0bmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJ0xlZ2cgdGlsIG55IGZvcnV0c2V0bmluZyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbmRpdGlvbid9ID0gJ0VuZHJlIGZvcnV0c2V0bmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGEgdmFsaWQgbmFtZS4nfSA9ICdUcmVuZ2VyIGV0IGd5bGRpZyBuYXZuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnRXQgZ3lsZGlnIG5hdm4ga3JldmVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICdEdXBsaWthdCBuYXZuOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJ0RldHRlIG5hdm5ldCBlciBhbGxlcmVkZSBicnVrdCBww6UgZW4gYW5uZW4gZm9ydXRzZXRuaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJ1NvbSBwYXNzZXIgdGlsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FueSBleHByZXNzaW9uIChPUiknfSA9ICdIdmlsa2V0IHV0cnlrayBzb20gaGVsc3QgKE9SKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICdBbGxlIHV0dHJ5a2sgKEFORCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbnMnfSA9ICdVdHRyeWtrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdG9yJ30gPSAnVmVsZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZXJhdG9yJ30gPSAnT3BlcmF0b3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICdTbGV0dCB1dHRyeWtrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEV4cHJlc3Npb25zIGZvdW5kLid9ID0gJ0luZ2VuIHV0dHJ5a2sgZnVubmV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGV4cHJlc3Npb24nfSA9ICdMZWdnIHRpbCBueXR0IHV0dHJ5a2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEFjdGlvbid9ID0gJ1NsZXR0IGdqw7hyZW3DpWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICdJbmdlbiBnasO4cmVtw6VsIGZ1bm5ldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGFjdGlvbid9ID0gJ0xlZ2cgdGlsIGdqw7hyZW3DpWwnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJ1ZpbCBkdSB2aXJrZWxpZyBzbGV0dGUgZGVubmUgZW5kcmluZ2VuPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICdFbmRyZSAlcyVzJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJ0hpc3Rvcmlra2VuIHDDpSAlcyVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ0hpc3Rvcmlrayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICdBcmJlaWRzb3JkcmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ09wcHJldHRldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICdWaXMgZGV0YWxqZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICdWaXMgYXJiZWlkc29yZHJlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnTW9kaWZpc2VydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbGQgVmFsdWUnfSA9ICdHYW1tZWwgdmVyZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFZhbHVlJ30gPSAnTnkgdmVyZGknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnSW52b2x2ZXJ0ZSBwZXJzb25lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VyJ30gPSAnRW5kcmluZ3NhbnN2YXJsaWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJ1VneWxkaWcgYnJ1a2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICdPcHByZXR0ZXQgYXYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnRW5kcmluZ3Nyw6VkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJ0NBQi1tYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICdCcnVrIG1hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJ055IG1hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnTGFncmUgZGV0dGUgRW5kcmluZ3Nyw6VkIHNvbSBtYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRvIENBQid9ID0gJ0xlZ2cgdGlsIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICdVZ3lsZGlnIGJydWtlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJ07DpXbDpnJlbmRlIENBQic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ0tvbnRla3N0dmFsZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAnRW5kcmluZ2VyIHBlciBzaWRlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUaXRsZSd9ID0gJ0FyYmVpZHNvcmRyZXRpdHRlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGl0bGUnfSA9ICdFbmRyaW5nc3RpdHRlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICdBcmJlaWRzb3JkcmUgc2Frc2JlaGFuZGxlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJ0RlbiBzb20gb3BwcmV0dGV0IEVuZHJpbmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTWFuYWdlcid9ID0gJ0VuZHJpbmdzYW5zdmFybGlnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcnMnfSA9ICdBcmJlaWRzb3JkcmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnRW5kcmluZ3N0aWxzdGFuZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgU3RhdGUnfSA9ICdBcmJlaWRzb3JkcmV0aWxzdGFuZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJ0FyYmVpZHNvcmRyZXR5cGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIFRpbWUnfSA9ICdGb3Jlc3B1cnQgdGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJ1BsYW5sYWd0IHN0YXJ0dGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICdQbGFubGFndCBzbHV0dGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnRmFrdGlzayBzdGFydHRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICdGYWt0aXNrIHNsdXR0aWQnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICdWaWwgZHUgdmlya2VsaWcgcmVzZXR0ZSBkZW5uZSBlbmRyaW5nZW4/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJyhmLmVrcy4gMTAqNTE1NSBlbGxlciA4ODgqKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICdDQUItc2Frc2JlaGFuZGxlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAnZi5la3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJ0NBQi1rdW5kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJ0FyYmVpZHNvcmRyZWlubnN0cnVrcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBSZXBvcnQnfSA9ICdBcmJlaWRzb3JkcmVyYXBwb3J0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAnRW5kcmluZ3Nwcmlvcml0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAnRW5kcmluZ3NvbWZhbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnRW5kcmluZ3NrYXRlZ29yaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyhmw7hyL2V0dGVyKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmV0d2VlbiknfSA9ICcobWVsbG9tKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICdMYWdyZSBFbmRyaW5nIHNvbSBNYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnRW4gbWFsIG3DpSBoYSBldCBuYXZuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICdNYWxuYXZuZXQgZXIgcMOla3JldmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IFN0YXRlcyd9ID0gJ051bGxzdGlsbCB0aWxzdGFuZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJ092ZXJza3JpdiBla3Npc3RlcmVuZGUgbWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICdTbGV0dCBkZW4gb3BwcmlubmVsaWdlIGVuZHJpbmdlbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QnfSA9ICdGbHl0dCB0aWRzcm9tbWV0JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJ0VuZHJpbmdzaW5mbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJ1BsYW5sYWd0IGlubnNhdHMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICdCZW55dHRldCB0aWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ0luaXRpYXRpdnRha2VyKGUpIHRpbCBFbmRyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJ0NBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICdTaXN0IGVuZHJldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICdTaXN0IGVuZHJldCBhdic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnTGFzdCBuZWQgdmVkbGVnZyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnRW5kcmUgQ0FCLW1hbCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJ8OYbnNrZXIgZHUgw6UgZm9ydHNldHRlPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJ0VuZHJlIGlubmhvbGQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGltZSd9ID0gJ0VuZHJpbmdzdGlkc3B1bmt0JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnSW5zdHJ1a3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB3b3Jrb3JkZXIgdHlwZS4nfSA9ICdVZ3lsZGlnIHR5cGUgYXJiZWlkc29yZHJlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnUGxhbmxhZ3Qgc3RhcnR0aWQgbcOlIHbDpnJlIGbDuHIgcGxhbmxhZ3Qgc2x1dHRpZCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAnVWd5bGRpZyBmb3JtYXQuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJ1ZlbGcgbWFsIGZvciBBcmJlaWRzb3JkcmVuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICdWaXJrZWxpZyBzbGV0dGUgZGVubmUgYXJiZWlkc29yZHJlbj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICdEdSBrYW4gaWtrZSBzbGV0dGUgYXJiZWlkc29yZHJlbi4gRGVuIGVyIGkgYnJ1ayBhdiBtaW5zdCDDqW4gZm9ydXRzZXRuaW5nISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnRGVubmUgYXJiZWlkc29yZHJlbiBicnVrZXMgYXYgZsO4bGdlbmRlIEZvcnV0c2V0bmluZyhlciknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICdGbHl0dCBldHRlcmbDuGxnZW5kZSBhcmJlaWRzb3JkcmUgdGlsc3ZhcmVuZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICdFbmRyZSByYXBwb3J0IGZvciAlcyVzLSVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJ1JhcHBvcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnRmFrdGlzayBzdGFydHRpZCBtw6UgdsOmcmUgZsO4ciBmYWt0aXNrIHNsdXR0aWQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJ0h2aXMgc2x1dHRpZGVuIHNldHRlcyBtw6Ugb2dzw6Ugc3RhcnR0aWQgc2V0dGVzISc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnTsOldsOmcmVuZGUgc2Frc2JlaGFuZGxlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICdWaWwgZHUgdmlya2VsaWcgdGEgZGVubmUgYXJiZWlkc29yZHJlbj8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAnTGFncmUgQXJiZWlkc29yZHJlIHNvbSBNYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEluZm9ybWF0aW9uJ30gPSAnQXJiZWlkc29yZHJlLWluZm8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJ092ZXJzaWt0OiBFbmRyaW5nZXInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAnU2FrIG1lZCBUaWNrZXRJRCAlcyBmaW5uZXMgaWtrZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJ0FyYmVpZHNvcmRyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICdBcmJlaWRzb3JkcmUgbnInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICdBcmJlaWRzb3JkcmV0aXR0ZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICdFbmRyaW5nc3RpbHN0YW5kJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICdQbGFubGFndCBpbm5zYXRzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnRm9yZXNwdXJ0IHRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnUGxhbmxhZ3Qgc3RhcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICdQbGFubGFndCBzbHV0dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxTdGFydFRpbWUnfSA9ICdGYWt0aXNrIHN0YXJ0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICdGYWt0aXNrIHNsdXR0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICdFbmRyZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnRW5kcmluZ3NudW1tZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICdBcmJlaWRzb3JkcmV0aWxzdGFuZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlJ30gPSAnVHlwZSBBcmJlaWRzb3JkcmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICdTYWtzYmVoYW5kbGVyIGZvciBhcmJlaWRzb3JkcmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJ0VuZHJpbmdzdGl0dGVsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlcnMnfSA9ICdBcmJlaWRzb3JkcmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJ0VuZHJpbmdzbnVtbWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICdBcmJlaWRzb3JkcmV0aXR0ZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAnRW5kcmluZ3NiZXNrcml2ZWxzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJ0VuZHJpbmdzYmVyZXR0aWdlbHNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJ0FyYmVpZHNvcmRyZWlubnN0cnVrcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnQXJiZWlkc29yZHJlcmFwcG9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHknfSA9ICdFbmRyaW5nc3ByaW9yaXRldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAnRW5kcmluZ3NvbWZhbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJ0VuZHJpbmcgb3BwcmV0dGV0IGF2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJ0FyYmVpZHNvcmRyZXRpbHN0YW5kJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnQXJiZWlkc29yZHJldHlwZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICdBcmJlaWRzb3JkcmUgc2Frc2JlaGFuZGxlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICdmw7hyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICdNaW5lIEVuZHJpbmdzcsOlZCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDaGFuZ2VzJ30gPSAnTWluZSBFbmRyaW5nZXInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICdNaW5lIEFyYmVpZHNvcmRyZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICdhbGxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJ2h2aWxrZW4gc29tIGhlbHN0JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICdGb3Jlc3B1cnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJ0F2dmVudGVyIGdvZGtqZW5uaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAnQXZ2aXN0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAnR29ka2plbnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICdVbmRlciBhcmJlaWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICdBdnZlbnRlciBTbHV0dGV2YWx1ZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJ1ZlbGx5a2tldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICdmZWlsZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICdBdmJydXR0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJ1RydWtrZXQgdGlsYmFrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAnT3BwcmV0dGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnQWtzZXB0ZXJ0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAnS2xhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ0dvZGtqZW5uaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJ0FyYmVpZHNvcmRyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnUGxhbiBmb3IgZ2plbm9wcHJldHRpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICdCZXNsdXRuaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJ1BJUiAoU2x1dHRldmFsdWVyaW5nKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICdlciBpa2tlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnZXIgdG9tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJ2VyIGlra2UgdG9tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJ2VyIHN0w7hycmUgZW5uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJ2VyIG1pbmRyZSBlbm4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnZXIgZsO4cic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJ2VyIGV0dGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAnaW5uZWhvbGRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICdpbm5laG9sZGVyIGlra2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVnaW5zIHdpdGgnfSA9ICdzdGFydGVyIG1lZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICdzbHV0dGVyIG1lZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICdzYXR0JzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnT2snOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICdMaXN0ZSBvdmVyIHNha3NiZWhhbmRsZXJlIHNvbSBoYXIgdGlsZ2FuZyB0aWwgw6UgdGEgYXJiZWlkc29yZHJlLiBJbm5ob2xkZXQgZXIgMCBlbGxlciAxLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJ0xpc3RlIG92ZXIgYXJiZWlkc29yZHJldGlsc3RhbmRlciBzb20gdmlsIHV0bMO4c2UgYXQgZmFrdGlzayBzdGFydHRpZCBibGlyIHNhdHQgKGh2aXMgdG9tIGZyYSBmw7hyKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICdMZWdnIHRpbCBBcmJlaWRvcmRyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJ0xlZ2cgdGlsIGFyYmVpZG9yZHJlIChmcmEgbWFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICdMZWdnIHRpbCBlbiBlbmRyaW5nIGZyYSBtYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICdMZWdnIHRpbCBlbiBlbmRyaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnTGVnZyBlbiBhcmJlaWRzb3JkcmUgKGZyYSBtYWwpIHRpbCBlbmRyaW5nZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJ0xlZ2cgZW4gYXJiZWlkc29yZHJlIHRpbCBlbmRyaW5nZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnTGVnZyB0aWwgZnJhIG1hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICdBZG1pbmlzdHJhc2pvbiBhdiBDSVAtbWF0cmlzZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJ0FkbWluaXN0cmFzam9uIGF2IHRpbHN0YW5kc2VuZHJpbmdlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJ1Nha3NiZWhhbmRsZXJtb2R1bCBzb20gdmlzZXIgYW50YWxsZXQgZW5kcmluZ3Nyw6VkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICdTYWtzYmVoYW5kbGVybW9kdWwgc29tIHZpc2VyIGFudGFsbGV0IGVuZHJpbmdlciBzdHlydCBhdiBicnVrZXJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJ1Nha3NiZWhhbmRsZXJtb2R1bCBzb20gdmlzZXIgYW50YWxsZXQgZW5kcmluZ2VyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICdFbmRyZSB0aWRzcGxhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICdFbmRyZSBGb3J1dHNldG5pbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICdTZXR0ZXIgb3BwIGh2b3Igb2Z0ZSBtZWxkaW5nZXIgYmxpciBzZW5kdCB1dCBuw6VyIHBsYW5sYWd0IHN0YXJ0dGlkIGVsbGVyIGFuZHJlIHRpZHNwdW5rdGVyIG7DpXMgZWxsZXIgcGFzc2VyZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJ09wcHJldHQgRW5kcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJ09wcHJldHQgZW4gZW5kcmluZyAoZnJhIG1hbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIChmcm9tIHRlbXBsYXRlKSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJ09wcHJldHQgZW4gZW5kcmluZyAoZnJhIG1hbCkgZnJhIGRlbm5lIHNha2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICdPcHByZXR0IGVuIEVuZHJpbmcgZnJhIGRlbm5lIHNha2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICdGb3J2YWxndCB0eXBlIGZvciBlbiBhcmJlaWRzb3JkcmUuIERlbm5lIHZlcmRpZW4gbcOlIGZpbm5lcyBpIGdlbmVyZWxsIGthdGFsb2cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICdTZXR0IG9wcCBzaWduYWxlciBmb3IgaHZlciBhcmJlaWRzb3JkcmV0aWxzdGFuZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICdTZXR0ZXIgb3BwIGVuIG92ZXJzaWt0c21vZHVsIHRpbCDDpSB2aXNlICJMaXRlbiIgdmlzbmluZyBhdiBlbmRyaW5nc2xpc3Rlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICdTZXR0ZXIgb3BwIGVuIG92ZXJzaWt0c21vZHVsIHRpbCDDpSB2aXNlICJMaXRlbiIgdmlzbmluZyBhdiBtYWwtbGlzdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAnU3Blc2lmaXNlcmVyIG9tIGRldCBlciBtdWxpZyDDpSBza3JpdmUgdXQga29udGVydCB0aWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAnU3Blc2lmaXNlcmVyIG9tIGRldCBlciBtdWxpZyDDpSBza3JpdmUgdXQgcGxhbmxhZ3QgaW5uc2F0cy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnU3Blc2lmaXNlcmVyIG9tIHRpZHNrb250ZXJpbmcgc2thbCB2aXNlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICdTcGVzaWZpc2VyZXIgb20gZmFrdGlzayBzdGFydC0gb2cgc2x1dHRpZCBiw7hyIHNldHRlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnU3Blc2lmaXNlcmVyIG9tIHBsYW5sYWd0IGlubnNhdHMgc2thbCB2aXNlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJ1NwZXNpZmlzZXJlciBvbSBmb3Jlc3B1cnQgZGF0byBza2FsIGt1bm5lIHNrcml2ZXMgdXQgYXYga3VuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJ1NwZXNpZmlzZXJlciBvbSBmb3Jlc3B1cnQgZGF0byBza2FsIHbDpnJlIHPDuGtiYXIgYXYga3VuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnU3Blc2lmaXNlcmVyIG9tIGZvcmVzcHVydCBkYXRvIHNrYWwga3VubmUgc2V0dGVzIGF2IGt1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJ1NwZXNpZmlzZXJlciBvbSBmb3Jlc3B1cnQgZGF0byBza2FsIHZpc2VzIHRpbCBrdW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnU3Blc2lmaXNlcmVyIG9tIGFyYmVpZHNvcmRyZW5zIHRpbHN0YW5kIHNrYWwgdmlzZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnU3Blc2lmaXNlcmVyIG9tIGFyYmVpZHNvcmRyZW5zIHRpdHRlbCBza2FsIHZpc2VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnU3Blc2lmaXNlcmVyIGF0IGt1biBFbmRyaW5nZXIgc29tIGlubmVob2xkZXIgQXJiZWlkc29yZHJlIHNvbSBlciBrb2JsZXQgdGlsIFRqZW5lc3RlciBzb20ga3VuZGVuIGhhciB0aWxnYW5nIHRpbCDDpSBicnVrZSBza2FsIHZpc2VzLiBBbGxlIGFuZHJlIGVuZHJpbmdlciB2aWwgaWtrZSBibGkgdmlzdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICdTcGVzaWZpc2VyZXIgRW5kcmluZ3N0aWxzdGFuZGVyIHNvbSBrYW4gYnJ1a2VzIHNvbSBmaWx0cmUgaSBvdmVyc2lrdGVuIG92ZXIgRm9ydmVudGV0IFRpbGdqZW5nZWxpZ2hldCAoUFNBKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1NwZXNpZmlzZXJlciBFbmRyaW5nc3RpbHN0YW5kZXIgc29tIGthbiBicnVrZXMgc29tIGZpbHRyZSBpIEVuZHJpbmdzcGxhbi1vdmVyc2lrdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdTcGVzaWZpc2VyZXIgRW5kcmluZ3N0aWxzdGFuZGVyIHNvbSBrYW4gYnJ1a2VzIHNvbSBmaWx0cmUgaSAiTWluZSBFbmRyaW5nc3LDpWQiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnU3Blc2lmaXNlcmVyIEVuZHJpbmdzdGlsc3RhbmRlciBzb20ga2FuIGJydWtlcyBzb20gZmlsdHJlIGkgIk1pbmUgRW5kcmluZ2VyIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnU3Blc2lmaXNlcmVyIEVuZHJpbmdzdGlsc3RhbmRlciBzb20ga2FuIGJydWtlcyBzb20gZmlsdHJlIGkgRW5kcmluZ3NhbnN2YXJsaWctb3ZlcnNpa3Rlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1NwZXNpZmlzZXJlciBFbmRyaW5nc3RpbHN0YW5kZXIgc29tIGthbiBicnVrZXMgc29tIGZpbHRyZSBpIEVuZHJpbmdzb3ZlcnNpa3Rlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1NwZXNpZmlzZXJlciBFbmRyaW5nc3RpbHN0YW5kZXIgc29tIGthbiBicnVrZXMgc29tIGZpbHRyZSBpIGt1bmRlbnMgRW5kcmluZ3NwbGFuLW92ZXJzaWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVyZXIgc3RhbmRhcmQgc29ydGVyaW5nc2tyaXRlcmllciBmb3IgRm9ydmVudGV0IFRpbGdqZW5nZWxpZ2hldCAoUFNBKS1vdmVyc2lrdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcmVyIHN0YW5kYXJkIHNvcnRlcmluZ3Nrcml0ZXJpZXIgZm9yIGVuZHJpbmdzYW5zdmFybGlnLW92ZXJzaWt0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnRGVmaW5lcmVyIHN0YW5kYXJkIHNvcnRlcmluZ3Nrcml0ZXJpZXIgZm9yIEVuZHJpbmdzb3ZlcnNpa3Rlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXJlciBzdGFuZGFyZCBzb3J0ZXJpbmdza3JpdGVyaWVyIGZvciBFbmRyaW5nc3BsYW4tb3ZlcnNpa3Rlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcmVyIHN0YW5kYXJkIHNvcnRlcmluZ3Nrcml0ZXJpZXIgZm9yICJNaW5lIEVuZHJpbmdzcsOlZCInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVyZXIgc3RhbmRhcmQgc29ydGVyaW5nc2tyaXRlcmllciBmb3IgIk1pbmUgRW5kcmluZ2VyIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXJlciBzdGFuZGFyZCBzb3J0ZXJpbmdza3JpdGVyaWVyIGZvciAiTWluZSBBcmJlaWRzb3JkcmUiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcmVyIHN0YW5kYXJkIHNvcnRlcmluZ3Nrcml0ZXJpZXIgZm9yIFNsdXR0ZXZhbHVlcmluZ3NvdmVyc2lrdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcmVyIHN0YW5kYXJkIHNvcnRlcmluZ3Nrcml0ZXJpZXIgZm9yIEVuZHJpbmdzcGxhbi1vdmVyc2lrdGVuIGZvciBrdW5kZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXJlciBzdGFuZGFyZCBzb3J0ZXJpbmdza3JpdGVyaWVyIGZvciBtYWwtb3ZlcnNpa3Rlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJ0RlZmluZXJlciBzdGFuZGFyZCBzb3J0ZXJpbmdzcmVra2Vmw7hsZ2UgZm9yICJNaW5lIEVuZHJpbmdzcsOlZCInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnRGVmaW5lcmVyIHN0YW5kYXJkIHNvcnRlcmluZ3NyZWtrZWbDuGxnZSBmb3IgIk1pbmUgRW5kcmluZ2VyIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXJlciBzdGFuZGFyZCBzb3J0ZXJpbmdzcmVra2Vmw7hsZ2UgZm9yICJNaW5lIEFyYmVpZHNvcmRyZSInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnRGVmaW5lcmVyIHN0YW5kYXJkIHNvcnRlcmluZ3NyZWtrZWbDuGxnZSBmb3IgU2x1dHRldmFsdWVyaW5nLW92ZXJzaWt0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0gJ0RlZmluZXJlciBzdGFuZGFyZCBzb3J0ZXJpbmdzcmVra2Vmw7hsZ2UgZm9yIEZvcnZlbnRldCBUaWxnamVuZ2VsaWdoZXQgKFBTQSktb3ZlcnNpa3Rlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lcmVyIHN0YW5kYXJkIHNvcnRlcmluZ3NyZWtrZWbDuGxnZSBmb3IgRW5kcmluZ3NhbnN2YXJsaWctb3ZlcnNpa3Rlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICdEZWZpbmVyZXIgc3RhbmRhcmQgc29ydGVyaW5nc3Jla2tlZsO4bGdlIGZvciBFbmRyaW5nc292ZXJzaWt0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmVyZXIgc3RhbmRhcmQgc29ydGVyaW5nc3Jla2tlZsO4bGdlIGZvciBFbmRyaW5nc3BsYW4tb3ZlcnNpa3Rlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZXJlciBzdGFuZGFyZCBzb3J0ZXJpbmdzcmVra2Vmw7hsZ2UgZm9yIEVuZHJpbmdzcGxhbi1vdmVyc2lrdGVuIGZvciBrdW5kZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICdEZWZpbmVyZXIgc3RhbmRhcmQgc29ydGVyaW5nc3Jla2tlZsO4bGdlIGZvciBtYWwtb3ZlcnNpa3Rlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnRGVmaW5lcmVyIGZvcnZhbGd0IGthdGVnb3JpIGZvciBlbiBFbmRyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnRGVmaW5lcmVyIGVuIGZvcnZhbGd0IHZlcmRpIGZvciBvbWZhbmdldCB0aWwgZW4gRW5kcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnU2xldHQgZW4gZW5kcmluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSBjaGFuZ2UuJ30gPSAnU2xldHQgZW5kcmluZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICdTbGV0dCBhcmJlaWRzb3JkcmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyBkb25lIGZvciBjb25maWcgaXRlbSBjbGFzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJ1JlZGlnZXIgZW4gZW5kcmluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJ1JlZGlnZXIgZW5kcmluZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnRW5kcmUgZm9ydXRzZXRuaW5nZW5lIGZvciBkZW5uZSBlbmRyaW5nZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICdFbmRyZSBhcmJlaWRzb3JkcmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICdFbmRyaW5nZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnRW5kcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnQXJiZWlkc29yZHJlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICdNb2R1bCBmb3Igw6Ugc2pla2tlIENBQi1tZWRsZW1tZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnTW9kdWwgZm9yIMOlIHNqZWtrZSBzYWtzYmVoYW5kbGVyZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnTW9kdWwgZm9yIMOlIHNqZWtrZSBkZW4gc29tIG9wcHJldHRldCBFbmRyaW5nZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnTW9kdWwgZm9yIMOlIHNqZWtrZSBFbmRyaW5nc2Fuc3ZhcmxpZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnTW9kdWwgZm9yIMOlIHNqZWtrZSBzYWtzYmVoYW5kbGVyIGZvciBlbiBhcmJlaWRzb3JkcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnTW9kdWwgZm9yIMOlIHNqZWtrIG9tIGluZ2VuIHNha3NiZWhhbmRsZXIgZXIgc2F0dCBmb3IgYXJiZWlkc29yZHJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAnTW9kdWwgc29tIHNqZWtrZXIgb20gc2Frc2JlaGFuZGxlcmVuIGJlZmlubmVyIHNlZyBpIGRlbiBrb25maWd1cmVydGUgbGlzdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJ0ZseXR0IHRpZHNyb21tZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgYWxsIHdvcmtvcmRlcnMgaW4gdGltZS4nfSA9ICdGbHl0dCBhbGxlIGFyYmVpZHNvcmRyZSBpIHRpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IChmcm9tIHRlbXBsYXRlKSd9ID0gJ055IChmcmEgbWFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IHVzZXJzIG9mIHRoZXNlIGdyb3VwcyBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdGlja2V0IHR5cGVzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgaWYgdGhlIGZlYXR1cmUgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ0FuZHJlIGlubnN0aWxsaW5nZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICdPdmVyc2lrdCBvdmVyIGFsbGUgZW5kcmluZ2VyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICdQSVIgKFNsdXR0ZXZhbHVlcmluZyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJ1Nrcml2IHV0IGVuZHJpbmdlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICdTa3JpdiB1dCBhcmJlaWRzb3JkcmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICdGb3J2ZW50ZXQgdGplbmVzdGV0aWxnamVuZ2VsaWdoZXQgKFBTQSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnRm9ydmVudGV0IHRqZW5lc3RldGlsZ2plbmdlbGlnaGV0IChQU0EpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJ0ZvcnZlbnRldCB0amVuZXN0ZXRpbGdqZW5nZWxpZ2hldCAoUFNBKSBhdiBlbmRyaW5nZXIuIE92ZXJzaWt0IG92ZXIgZ29ka2plbnRlIGVuZHJpbmdlciBtZWQgdGlsaMO4cmVuZGUgdGplbmVzdGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnUmV0dGlnaGV0ZXIgc29tIGtyZXZlcyBmb3IgYXQgZW4gc2Frc2JlaGFuZGxlciBza2FsIGt1bm5lIHRhIGVuIGFyYmVpZHNvcmRyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLid9ID0gJ1JldHRpZ2hldGVyIHNvbSBrcmV2ZXMgZm9yIMOlIHNlIG92ZXJzaWt0IG92ZXIgYWxsZSBlbmRyaW5nZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJ1JldHRpZ2hldGVyIHNvbSBrcmV2ZXMgZm9yIMOlIG9wcHJldHRlIGVuIGFyYmVpZHNvcmRyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjaGFuZ2UgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBlbmRyZSBzYWtzYmVoYW5kbGVyIHDDpSBlbiBhcmJlaWRzb3JkcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBvcHByZXR0IGVuIG1hbCBmcmEgZW4gZW5kcmluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJ1JldHRpZ2hldGVyIHNvbSBrcmV2ZXMgZm9yIMOlIG9wcHJldHRlIGVuIG1hbCBmcmEgZW4gZW5kcmluZ3MgZW5kcmluZ3Nyw6VkIChDQUIpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnUmV0dGlnaGV0ZXIgc29tIGtyZXZlcyBmb3Igw6Ugb3BwcmV0dCBlbiBtYWwgZnJhIGVuIGFyYmVpZHNvcmRyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBvcHByZXR0ZSBlbmRyaW5nZXIgZnJhIG1hbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBvcHByZXR0ZSBlbmRyaW5nZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnUmV0dGlnaHRlciBzb20ga3JldmVzIGZvciDDpSBzbGV0dGUgZW4gbWFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBzbGV0dGUgZW4gYXJiZWlkc29yZHJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJ1JldHRpZ2hldGVyIHNvbSBrcmV2ZXMgZm9yIMOlIHNsZXR0ZSBlbmRyaW5nZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJ1JldHRpZ2hldGVyIHNvbSBrcmV2ZXMgZm9yIMOlIHJlZGlnZXJlIGVuIG1hbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJ1JldHRpZ2hldGVyIHNvbSBrcmV2ZXMgZm9yIMOlIHJlZGlnZXJlIGVuIGFyYmVpZHNvcmRyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnUmV0dGlnaGV0ZXIgc29tIGtyZXZlcyBmb3Igw6UgcmVkaWdlcmUgZW5kcmluZ2VyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBlbmRyZSBmb3J1dHNldG5pbmdlciBmb3IgZW4gZW5kcmluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnUmV0dGlnaGV0ZXIgc29tIGtyZXZlcyBmb3Igw6UgcmVkaWdlcmUgaW5uaG9sZGV0IGkgZW4gbWFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBlbmRyZSBpbnZvbHZlcnRlIHBlcnNvbmVyIGkgZW4gZW5kcmluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBmbHl0dGUgZW5kcmluZ2VyIGkgdGlkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJ1JldHRpZ2hldGVyIHNvbSBrcmV2ZXMgZm9yIMOlIHNrcml2ZSB1dCBlbiBlbmRyaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJ30gPSAnUmV0dGlnaGV0ZXIgc29tIGtyZXZlcyBmb3Igw6UgdGlsYmFrZXN0aWxsZSBlbmRyaW5nZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBhIHdvcmtvcmRlci4nfSA9ICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBzZSBlbiBhcmJlaWRzb3JkcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJ1JldHRpZ2hldGVyIHNvbSBrcmV2ZXMgZm9yIMOlIHNlIGVuZHJpbmdlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBzZSBsaXN0ZW4gb3ZlciBlbmRyaW5nZXIgZGVyIGJydWtlcmVuIGVyIG1lZGxlbSBhdiBDQUIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0KICAgICAgICAnUmV0dGlnaGV0ZXIgc29tIGtyZXZlcyBmb3Igw6Ugc2UgbGlzdGVuIG92ZXIgZW5kcmluZ2VyIGRlciBicnVrZXJlbiBlciBlbmRyaW5nc2Fuc3ZhcmxpZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBzZSBvdmVyc2lrdGVuIG92ZXIgYWxsZSBtYWxlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnUmV0dGlnaGV0ZXIgc29tIGtyZXZlcyBmb3Igw6Ugc2UgZm9ydXRzZXRuaW5nZW5lIHRpbCBlbmRyaW5nZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBzZSBoaXN0b3Jpa2tlbiB0aWwgZW4gZW5kcmluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJ1JldHRpZ2hldGVyIHNvbSBrcmV2ZXMgZm9yIMOlIHNlIGhpc3Rvcmlra2VuIHRpbCBlbiBhcmJlaWRzb3JkcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJ1JldHRpZ2hldGVyIHNvbSBrcmV2ZXMgZm9yIMOlIHNlIGRldGFsamVydCBoaXN0b3Jpa2sgZm9yIGVuIGVuZHJpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnUmV0dGlnaGV0ZXIgc29tIGtyZXZlcyBmb3Igw6Ugc2UgZGV0YWxqZXJ0IGhpc3RvcmlrayBmb3IgZW4gYXJiZWlkc29yZHJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJ1JldHRpZ2hldGVyIHNvbSBrcmV2ZXMgZm9yIMOlIHNlIGxpc3RlbiBvdmVyIGVuZHJpbmdzcGxhbmVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBzZSBsaXN0ZW4gb3ZlciBlbmRyaW5nZXJzIGZvcnZlbnRlZGUgdGplbmVzdGV0aWxnamVuZ2VsaWdoZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBzZSBsaXN0ZW4gb3ZlciBlbmRyaW5nZXIgbWVkIGtvbW1lbmRlIHNsdXR0ZXZhbHVlcmluZ2VyIChQSVIpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnUmV0dGlnaGV0ZXIgc29tIGtyZXZlcyBmb3Igw6Ugc2UgbGlzdGVuIG92ZXIgZWduZSBlbmRyaW5nZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBzZSBsaXN0ZW4gb3ZlciBlZ25lIGFyYmVpZHNvcmRyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICdSZXR0aWdoZXRlciBzb20ga3JldmVzIGZvciDDpSBza3JpdmUgZW4gcmFwcG9ydCBmb3IgYXJiZWlkc29yZHJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJ1RpbGJha2VzdGlsbCBlbiBlbmRyaW5nIG1lZCB0aWxow7hyZW5kZSBhcmJlaWRzb3JkcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnVGlsYmFrZXN0aWxsIGVuZHJpbmdlbiBtZWQgdGlsaMO4cmVuZGUgYXJiZWlkc29yZHJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnTGFncmUgRW5kcmluZyBzb20gbWFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJ0xhZ3JlIEFyYmVpZHNvcmRyZSBzb20gbWFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJ1RpZHNwbGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJ1PDuGsgaSBFbmRyaW5nZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnU8O4ayBpIEVuZHJpbmdlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnU2V0dGVyIG9wcCB0aWxzdGFuZHNlbmRyaW5nZXIgZm9yIEVuZHJpbmdlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICdTZXR0ZXIgb3BwIHRpbHN0YW5kc2VuZHJpbmdlciBmb3IgQXJiZWlkc29yZHJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIE1hY2hpbmUnfSA9ICdUaWxzdGFuZHNlbmRyaW5nZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlcid9ID0gJ1RhIGFyYmVpZHNvcmRyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICdUYSBhcmJlaWRzb3JkcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICdUYSBhcmJlaWRzb3JkcmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJ01hbG92ZXJzaWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnTWFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICdUaWRzcm9tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZCAoZnJvbSB0ZW1wbGF0ZSkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICdBcmJlaWRzb3JkcmUgc2Frc2JlaGFuZGxlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJ2VuIGdhbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnamV2bmxpZyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/nl_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bmxfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0NhdGVnb3JpZSDihpQgSW1wYWN0IOKGlCBQcmlvcml0ZWl0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgcHJpb3JpdHkgcmVzdWx0IG9mIGNvbWJpbmF0aW5nIENhdGVnb3J5IOKGlCBJbXBhY3QuJ30gPQogICAgICAgICdCZWhlZXIgZGUgcHJpb3JpdGVpdCBvcCBiYXNpcyB2YW4gZGUgQ2F0ZWdvcmllIOKGlCBJbXBhY3QgY29tYmluYXRpZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHkgYWxsb2NhdGlvbid9ID0gJ1ByaW9yaXRlaXRzdG9ld2lqemluZyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlTWFuYWdlbWVudCBOb3RpZmljYXRpb24gTWFuYWdlbWVudCd9ID0gJ0lUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2lhdGllIGJlaGVlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICdOb3RpZmljYXRpZSByZWdlbCB0b2V2b2VnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnR2VlZiBlZW4gbmFhbSB2b29yIGRlIG5vdGlmaWNhdGllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICdCZWhlZXIgc3RhdHVzLW1hY2hpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhIGNhdGFsb2cgY2xhc3MhJ30gPSAnU2VsZWN0ZWVyIGVlbiBjYXRhbG9ndXMta2xhc3NlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0YWxvZyBjbGFzcyBpcyByZXF1aXJlZCEnfSA9ICdFZW4gY2F0YWxvZ3VzLWtsYXNzZSBpcyB2ZXJwbGljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdOaWV1d2Ugc3RhdHVzb3ZlcmdhbmcgdG9ldm9lZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdDYXRhbG9ndXNrbGFzc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICdPYmplY3QtbmFhbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIHN0YXRlIHRyYW5zaXRpb25zIGZvcid9ID0gJ092ZXJ6aWNodCB2YW4gc3RhdHVzb3ZlcmdhbmdlbiB2b29yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnVm9lZyBlZW4gbmlldXdlIHN0YXR1c292ZXJnYW5nIHRvZSB2b29yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICdTZWxlY3RlZXIgZWVuIHN0YXR1cy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIG5leHQgc3RhdGUhJ30gPSAnU2VsZWN0ZWVyIGVlbiB2b2xnZW5kZSBzdGF0dXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ0Jld2Vya2VuIHZhbiBzdGF0dXNvdmVyZ2FuZ2VuIHZvb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ1dpbHQgdSBkZXplIHN0YXR1c292ZXJnYW5nIHZlcndpamRlcmVuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJ0NoYW5nZSB0b2V2b2VnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UnfSA9ICdDaGFuZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSnVzdGlmaWNhdGlvbid9ID0gJ1JlY2h0dmFhcmRpZ2luZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnB1dCBpbnZhbGlkLid9ID0gJ09uZ2VsZGlnZSBpbnZvZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnR2V2cmFhZ2RlIGltcGxlbWVudGF0aWV0aWpkJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJ0NoYW5nZSB0ZW1wbGF0ZSBraWV6ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAnVGlqZC10eXBlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSB0eXBlLid9ID0gJ09uZ2VsZGlnZSB0aWpkc29vcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICdOaWV1dyB0aWpkc3RpcCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnQmV3YWFyIENoYW5nZSBDQUIgYWxzIHNqYWJsb29uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIHRvIGludm9sdmVkIHBlcnNvbnMgc2NyZWVuJ30gPSAnZ2EgbmFhciBiZXRyb2trZW4gcGVyc29uZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnT25nZWxkaWdlIG5hYW0nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnQ29uZGl0aWVzIGVuIGFjdGllcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnVmVyd2lqZGVyIGNvbmRpdGllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgY29uZGl0aW9uJ30gPSAnQ29uZGl0aWUgdG9ldm9lZ2VuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJ0dlZW4gZ2VsZGlnZSBuYWFtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGNvbmRpdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICdNYXRjaGluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnRWVuIHZvb3J3YWFyZGUgKE9SKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICdBbGxlIHZvb3J3YWFyZGVuIChBTkQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb25zJ30gPSAnVm9vcndhYXJkZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0b3InfSA9ICdTZWxlY3RpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJ09wZXJhdG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBFeHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEV4cHJlc3Npb25zIGZvdW5kLid9ID0gJ0dlZW4gZXhwcmVzc2llcyBnZXZvbmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnTmlldXdlIHZvb3J3YWFyZGUgdG9ldm9lZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICdHZWVuIGFjdGllcyBnZXZvbmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICdOaWV1d2UgYWN0aWUgdG9ldm9lZ2VuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJ0dlc2NoaWVkZW5pcyB2YW4gJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICdHZXNjaGllZGVuaXNpbmhvdWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAnV29yayBPcmRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnTWFhayB0aWpkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgZGV0YWlscyd9ID0gJ1Rvb24gZGV0YWlscyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJ1Rvb24gV29yayBPcmRlcic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbGQgVmFsdWUnfSA9ICdPdWRlIHdhYXJkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICdOaWV1d2Ugd2FhcmRlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJbnZvbHZlZCBQZXJzb25zIG9mICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52b2x2ZWQgUGVyc29ucyd9ID0gJ0JldHJva2tlbiBwZXJzb25lbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VyJ30gPSAnQ2hhbmdlIE1hbmFnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJ0dlYnJ1aWtlciBvbmdlbGRpZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcid9ID0gJ0NoYW5nZS1zYW1lbnN0ZWxsZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJ0NBQiBzamFibG9vbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJ0tpZXMgc2phYmxvb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICdOaWV1dyBzamFibG9vbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnQmV3YWFyIGRpdCBDQUIgYWxzIHNqYWJsb29uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICdUb2V2b2VnZW4gYWFuIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICdPbmdlbGRpZ2UgZ2VicnVpa2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnQWN0dWVlbCBDQUInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdDb250ZXh0aW5zdGVsbGluZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICdDaGFuZ2VzIHBlciBwYWdpbmEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICdPcGVyYXRpb25lZWwgQ2hhbmdlIE1hbmFnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICdDaGFuZ2UgTWFuYWdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAnV29ya29yZGVycyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnQWFuZ2V2cmFhZ2QgdGlqZHN0aXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIEVuZCBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJ2JpanZvb3JiZWVsZCAxMCo1MTU1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAnYmlqdm9vcmJlZWxkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDYXRlZ29yeSd9ID0gJ0NoYW5nZSBjYXRlZ29yaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJlZm9yZS9hZnRlciknfSA9ICcodm9vci9uYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnKHR1c3NlbiknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAnQmV3YWFyIENoYW5nZSBhbHMgc2phYmxvb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnR2VlZiBlZW4gbmFhbSBvcCB2b29yIGRpdCBzamFibG9vbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuJ30gPSAnRGUgbmFhbSBpcyBlZW4gdmVycGxpY2h0IHZlbGQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IFN0YXRlcyd9ID0gJ1N0YXR1c3NlbiByZXNldHRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVyd3JpdGUgb3JpZ2luYWwgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIGNoYW5nZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QnfSA9ICdWZXJwbGFhdHMgdGltZXNsb3QnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluZm9ybWF0aW9uJ30gPSAnQ2hhbmdlLWluZm9ybWF0aWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ0NoYW5nZSBpbml0aWF0b3IocyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCJ30gPSAnQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCd9ID0gJ0xhYXRzdCBnZXdpanppZ2QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnTGFhdHN0IGdld2lqemlnZCBkb29yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnT20gbGlua3MgaW4gZGUgdm9sZ2VuZGUgYmVzY2hyaWp2aW5nc2Jsb2trZW4gdGUgb3BlbmVuLCBtb2V0IGplIG1vZ2VsaWprIG9wIEN0cmwgb2YgQ21kIG9mIFNoaWZ0IGRydWtrZW4gdGVyd2lqbCBqZSBvcCBkZSBsaW5rIGtsaWt0IChhZmhhbmtlbGlqayB2YW4gamUgYnJvd3NlciBlbiBiZXN0dXJpbmdzc3lzdGVlbSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICdCaWpsYWdlIGRvd25sb2FkZW4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnSW5zdHJ1Y3RpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJ09uZ2VsZGlnIHdvcmtvcmRlci10eXBlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnRGUgZ2VwYW5kZSBzdGFydHRpamQgbW9ldCBlZXJkZXIgemlqbiBkYW4gZGUgZWluZGRhdHVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdC4nfSA9ICdPbmdlbGRpZyBmb3JtYWF0Lic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICdXb3Jrb3JkZXIgdGVtcGxhdGUga2llemVuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICdXaWx0IHUgZGV6ZSBXb3JrIE9yZGVyIHZlcndpamRlcmVuPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJ0RlemUgV29yayBPcmRlciBrYW4gbmlldCB2ZXJ3aWpkZXJkIHdvcmRlbi4gSGlqIGlzIGluIHRlbm1pbnN0ZSDDqcOpbiBjb25kaXRpZSBnZWJydWlrdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBXb3Jrb3JkZXIgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIENvbmRpdGlvbihzKSd9ID0gJ0RlemUgV29yayBPcmRlciBpcyBnZWJydWlrdCBpbiBkZSB2b2xnZW5kZSBjb25kaXRpZShzKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBmb2xsb3dpbmcgd29ya29yZGVycyBhY2NvcmRpbmdseSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGUgcGxhbm5lZCBlbmQgdGltZSBvZiB0aGlzIHdvcmtvcmRlciBpcyBjaGFuZ2VkLCB0aGUgcGxhbm5lZCBzdGFydCB0aW1lcyBvZiBhbGwgZm9sbG93aW5nIHdvcmtvcmRlcnMgd2lsbCBiZSBjaGFuZ2VkIGFjY29yZGluZ2x5J30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzLSVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnQnfSA9ICdCZXJpY2h0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJ0RlIHdlcmtlbGlqa2Ugc3RhcnR0aWpkIG1vZXQgZWVyZGVyIHppam4gZGFuIGRlIHdlcmtlbGlqa2UgZWluZHRpamQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJ0RlIHdlcmtlbGlqa2Ugc3RhcnR0aWpkIG1vZXQgZ2V2dWxkIHppam4gYWxzIGRlIHdlcmtlbGlqa2UgZWluZHRpamQgZ2V2dWxkIGlzLic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnQWN0dWVsZSBnZWJydWlrZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnRGV6ZSBXb3JrIE9yZGVyIG92ZXJuZW1lbj8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAnV29yayBPcmRlciBvcHNsYWFuIGFscyB0ZW1wbGF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICdXb3JrIE9yZGVyLWluZm9ybWF0aWUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnRXIgd29yZHQgZ2VlbiAlcyBnZWdldmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biBjaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXInfSA9ICdXb3Jrb3JkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyTnVtYmVyJ30gPSAnV29yayBPcmRlci1udW1tZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICdXb3JrIE9yZGVyLXRpdGVsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gd29ya29yZGVyIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlJ30gPSAnQ2hhbmdlLXN0YXR1cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnR2VwbGFuZGUgaW5zcGFubmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJ0dldnJhYWdkZSBpbXBsZW1lbnRhdGlldGlqZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnR2VwbGFuZGUgc3RhcnR0aWpkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnR2VwbGFuZGUgZWluZHRpamQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAnV2Vya2VsaWprZSBzdGFydHRpamQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJ1dlcmtlbGlqa2UgZWluZHRpamQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJ0FhbmdlcGFzdCBvcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICdDaGFuZ2VudW1tZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICdXb3JrIE9yZGVyLXN0YXR1cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlJ30gPSAnV29yayBPcmRlci10eXBlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50J30gPSAnV29yayBPcmRlci1nZWJydWlrZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJ0NoYW5nZS10aXRlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnV29yayBPcmRlcnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJ0dlZW4gY29uZmlndXJhdGllb3B0aWUgZ2V2b25kZW4gdm9vciBkZSB3ZWVyZ2F2ZSAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICdNaWpuIENBQnMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJ01pam4gY2hhbmdlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICdhbGxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJ2Vua2VsZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnQWFuZ2V2cmFhZ2QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJ1dhY2h0IG9wIGdvZWRrZXVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAnQWZnZXdlemVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAnR29lZGdla2V1cmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICdJbiB1aXR2b2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAnV2FjaHQgb3AgUElSJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICdTdWNjZXN2b2wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAnTWlzbHVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJ0dlY2FuY2VsZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICdJbmdldHJva2tlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAnQWFuZ2VtYWFrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJ0dlYWNjZXB0ZWVyZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJ0tsYWFyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAnR29lZGtldXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnV29ya29yZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICdCYWNrb3V0IFBsYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICdCZXNsaXNzaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJ1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJ2lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJ2lzIG5pZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICdpcyBsZWVnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJ2lzIG5pZXQgbGVlZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICdpcyBncm90ZXIgZGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJ2lzIGtsZWluZXIgZGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJ2lzIGVlcmRlciBkYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICdpcyBsYXRlciBkYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICdiZXZhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICdiZXZhdCBuaWV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnYmVnaW50IG1ldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICdlaW5kaWd0IG9wJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJ3BsYWF0cyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJ09rJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnV29ya29yZGVyIHRvZXZvZWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICdCZWhlZXIgdmFuIENJUC1tYXRyaXgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAnQmVoZWVyIHZhbiBzdGF0dXNvdmVyZ2FuZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAnQ2hhbmdlIFNjaGVkdWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJ0NvbnRpdGllcyBiZXdlcmtlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlJ30gPSAnQ2hhbmdlIGFhbm1ha2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnRGVmaW5pZWVyIGFjdGllcyB3YWFyYmlqIGVlbiBpbnN0ZWxsaW5nZW5rbm9wIGJlc2NoaWtiYWFyIGlzIGluIGRlIHdpZGdldCB2b29yIGdla29wcGVsZGUgb2JqZWN0ZW4gKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gSG91ZCBlciByZWtlbmluZyBtZWUgZGF0IGRlemUgYWN0aWVzIGRlIHZvbGdlbmRlIEpTLSBlbiBDU1MtYmVzdGFuZGVuIG1vZXRlbiBoZWJiZW4gZ2VyZWdpc3RyZWVyZDogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgZW4gQ29yZS5BZ2VudCAuTGlua09iamVjdC5qcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2V0IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGF0IG9ubHkgY2hhbmdlcyBjb250YWluaW5nIFdvcmtvcmRlcnMgbGlua2VkIHdpdGggc2VydmljZXMsIHdoaWNoIHRoZSBjdXN0b21lciB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB3aWxsIGJlIHNob3duLiBBbnkgb3RoZXIgY2hhbmdlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHJlcG9ydCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkRhdGUiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFBJUiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2Ugbm90aWZpY2F0aW9uIHJ1bGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlcyd9ID0gJ0NoYW5nZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnQ2hhbmdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01Xb3JrT3JkZXInfSA9ICdXb3JrIE9yZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICdPdmVyaWdlIHZvb3JrZXVyZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJ1pvZWsgQ2hhbmdlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnV29yayBPcmRlciBvdmVybmVtZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICdUZW1wbGF0ZW92ZXJ6aWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgb2YgdGlja2V0cywgd2hlcmUgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgYSBsaW5rIHRvIGFkZCBhIGNoYW5nZSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/pl_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cGxfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0thdGVnb3JpYSDihpQgV3DFgnl3IOKGlCBQcmlvcnl0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBwcmlvcml0eSByZXN1bHQgb2YgY29tYmluYXRpbmcgQ2F0ZWdvcnkg4oaUIEltcGFjdC4nfSA9CiAgICAgICAgJ1phcnrEhWR6YWogcHJpb3J5dGV0YW1pIGLEmWTEhWN5bWkgd3luaWtpZW0ga29tYmluYWNqaSBLYXRlZ29yaWEg4oaUIFdwxYJ5dy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHkgYWxsb2NhdGlvbid9ID0gJ0Fsb2thY2phIHByaW9yeXRldHUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICdaYXJ6xIVkemFuaWUgcG93aWFkb21pZW5pYW1pIHptaWFuIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnRG9kYWogcmVndcWCxJkgcG93aWFkYW1pYW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Egbm90aWZpY2F0aW9uIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdQb3dpYWRvbWllbmUgcG93aW5ubyBtaWXEhyBuYXp3xJkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05hbWUgaXMgcmVxdWlyZWQuJ30gPSAnSW1pxJkgaSBuYXp3aXNrbyBzxIUgd3ltYWdhbmUuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTVN0YXRlTWFjaGluZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gU3RhdGUgTWFjaGluZSd9ID0gJ1phcnrEhWRhaiBtYXN6eW7EhSBzdGFuw7N3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhIGNhdGFsb2cgY2xhc3MhJ30gPSAnWmF6bmFjeiBrbGFzxJkga2F0YWxvZ3UhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0YWxvZyBjbGFzcyBpcyByZXF1aXJlZCEnfSA9ICdLbGFzYSBrYXRhbG9ndSBqZXN0IHd5bWFnYW5hISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnRG9kYWogcHJ6ZWrFm2NpZSBtacSZZHp5IHN0YW5hbWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ0tsYXNhIGthdGFsb2d1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAnTmF6d2Egb2JpZWt0dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIHN0YXRlIHRyYW5zaXRpb25zIGZvcid9ID0gJ1ByemVnbMSFZCBwcnplasWbxIcgc3RhbsOzdyBkbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ1VzdcWEIHRvIHByemVqxZtjaWUgbWnEmWR6eSBzdGFuYW1pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ0RvZGFqIG5vd2UgcHJ6ZWrFm2NpZSBzdGFudSBkbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJ1phem5hY3ogc3RhbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIG5leHQgc3RhdGUhJ30gPSAnWmF6bmFjeiBuYXN0xJlwbnkgc3RhbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnRWR5dHVqIHByemVqxZtjaWUgc3RhbnUgZGxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdDenkgbmEgcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHByemVqxZtjaWUgc3RhbnUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnRG9kYWogem1pYW7EmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSd9ID0gJ1ptaWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKdXN0aWZpY2F0aW9uJ30gPSAnVXphc2FkbmllbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAnTmllcG9wcmF3bmUgZGFuZSB3ZWrFm2Npb3dlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgRGF0ZSd9ID0gJ8W7xIVkYW5hIGRhdGEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnV3liaWVyeiBzemFibG9uIHptaWFueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHR5cGUnfSA9ICdUeXAgY3phc3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAnTmllcG9wcmF3bnkgdHlwIGN6YXN1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdGltZSd9ID0gJ05vd3kgY3phcyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnWmFwaXN6IENBQiB6bWlhbnkgamFrbyBzemFibG9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIHRvIGludm9sdmVkIHBlcnNvbnMgc2NyZWVuJ30gPSAnaWTFuiBkbyBla3JhbnUgeiBvc29iYW1pIHphYW5nYcW8b3dhbnltaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICdOaWVwb3ByYXduYSBuYXp3YSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbnMgYW5kIEFjdGlvbnMnfSA9ICdXYXJ1bmtpIGkgYWtjamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENvbmRpdGlvbid9ID0gJ1VzdcWEIHdhcnVuZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICdEb2RhaiBub3d5IHdhcnVuZWsnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnUG90cnplYmEgcG9wcmF3bmEgbmF6d2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJ1Bhc3VqZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnRG93b2xuZSB3eXJhxbxlbmllIChPUiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAnV3N6eXN0a2llIHd5cmHFvGVuaWEgKEFORCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbnMnfSA9ICdXeXJhxbxlbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdG9yJ30gPSAnU2VsZWt0b3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICdPcGVyYXRvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICdOaWUgem5hbGV6aW9ubyB3eXJhxbxlxYQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJ0RvZGFqIG5vd2Ugd3lyYcW8ZW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEFjdGlvbnMgZm91bmQuJ30gPSAnTmllIHpuYWxlemlvbm8gYWtjamkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAnRG9kYWogbm93xIUgYWtjasSZJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJ0hpc3RvcmlhICVzJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAnWmF3YXJ0b8WbxIcgaGlzdG9yaWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAnWmFkYW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnVXR3b3J6b25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgZGV0YWlscyd9ID0gJ1Bva2HFvCBzemN6ZWfDs8WCeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJ1Bva2HFvCB6YWRhbmllJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJ1N0YXJhIHdhcnRvxZvEhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICdOb3dhIHdhcnRvxZvEhyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICdaYWFuZ2HFvG93YW5lIG9zb2J5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICdNYW5hZ2VyIHptaWFueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnTmllcG9wcmF3bnkgdcW8eXRrb3duaWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICdLb25zdHJ1a3RvciB6bWlhbnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJ1N6YWJsb24gQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnRG9kYWogc3phYmxvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJ05vd3kgc3phYmxvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnWmFwaXN6IHRlbiBDQUIgamFrbyBzemFibG9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICdEb2RhaiBkbyBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnTmllcG9wcmF3bnkgdcW8eXRrb3duaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICdBa3R1YWxueSBDQUInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdVc3Rhd2llbmlhIGtvbnRla3N0dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAnWm1pYW55IG5hIHN0cm9uxJknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICdLb25zdHJ1a3RvciB6bWlhbnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICdNYW5hZ2VyIHptaWFueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAnWmFkYW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnxbvEhWRhbnkgY3phcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoZS5nLiAxMCo1MTU1IG9yIDEwNTY1OCopJ30gPSAnKG5wLiAxMCo1MTU1IG9yIDEwNTY1OCopJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAnbnAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDYXRlZ29yeSd9ID0gJ0thdGVnb3JpYSB6bWlhbnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJlZm9yZS9hZnRlciknfSA9ICcocHJ6ZWQvcG8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyhwb21pxJlkenkpJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBhcyBUZW1wbGF0ZSd9ID0gJ1phcGlzeiB6bWlhbsSZIGpha28gc3phYmxvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBsYXRlIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdTemFibG9uIHBvd2luaWVuIG1pZcSHIG5henfEmSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuJ30gPSAnTmF6d2Egc3phYmxvbnUgamVzdCB3eW1hZ2FuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAnUmVzZXR1aiBzdGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJ1ByemVzdcWEIHByemVkemlhxYIgY3phc3UnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluZm9ybWF0aW9uJ30gPSAnSW5mb3JtYWNqZSBvIHptaWFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ0luaWNqYXRvcnp5IHptaWFueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICdDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAnT3N0YXRuaWEgem1pYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ09zdGF0bmlvIHptaWVuaW9uZSBwcnpleic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJ0FieSBvdHdvcnp5xIcgxYLEhWN6YSwgdyBwb25pxbxzenljaCBibG9rYWNoIG9waXN1LCBuYWxlxbx5IHByenljaXNuxIXEhyBrbGF3aXN6IEN0cmwsIENtZCBsdWIgU2hpZnQgcG9kY3phcyBrbGlrbmnEmWNpYSAodyB6YWxlxbxub8WbY2kgb2QgcHJ6ZWdsxIVkYXJraSBpIHN5c3RlbXUgb3BlcmFjeWpuZWdvKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ1BvYmllcnogemHFgsSFY3puaWsnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJ0VkeXR1aiBzemFibG9uIENBQic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnSW5zdHJ1a2NqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJ05pZXByYXdpZMWCb3d5IHR5cCB6YWRhbmlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgcGxhbm5lZCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBwbGFubmVkIGVuZCB0aW1lISd9ID0gJ1BsYW5vd2FueSBjemFzIHN0YXJ0dSBtdXNpIGJ5xIcgcHJ6ZWQgcGxhbm93YW55bSBjemFzZW0ga2/FhGNhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdC4nfSA9ICdOaWVwcmF3aWTFgm93eSBmb3JtYXQuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJ1dza2HFvCBzemFibG9uIHphZGFuaWEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJ0N6eSBuYSBwZXdubyBjaGNlc3ogdXN1bsSFxIcgdG8gemFkYW5pZT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICdOaWUgbW/FvGVzeiB1c3VuxIXEhyB0ZWdvIHphZGFuaWEuIEplc3Qgb25vIHXFvHl3YW5lIHcgcHJ6eW5ham1uaWVqIGplZG55bSB3YXJ1bmt1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnVG8gemFkYW5pZSBqZXN0IHXFvHl3YW5lIHcgbmFzdMSZcHVqxIVjeWNoIHdhcnVua2FjaCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBmb2xsb3dpbmcgd29ya29yZGVycyBhY2NvcmRpbmdseSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGUgcGxhbm5lZCBlbmQgdGltZSBvZiB0aGlzIHdvcmtvcmRlciBpcyBjaGFuZ2VkLCB0aGUgcGxhbm5lZCBzdGFydCB0aW1lcyBvZiBhbGwgZm9sbG93aW5nIHdvcmtvcmRlcnMgd2lsbCBiZSBjaGFuZ2VkIGFjY29yZGluZ2x5J30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzLSVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnQnfSA9ICdSYXBvcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnUnplY3p5d2lzdHkgY3phcyBzdGFydHUgbXVzaSBiecSHIHByemVkIHJ6ZWN6dHdpc3R5bSBjemFzZW0ga2/FhGNhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICdSemVjenl3aXN0eSBjemFzIHN0YXJ0dSBtdXNpIGJ5xIcgdXN0YXdpb255IGdkeSB1c3Rhd2lvbnkgamVzdCByemVjenl3aXN0eSBjemFzIGtvxYRjYSEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGFrZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBBZ2VudCd9ID0gJ0FrdHVhbG55IGFnZW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byB0YWtlIHRoaXMgd29ya29yZGVyPyd9ID0gJ0N6eSBuYSBwZXdubyBjaGNlc3ogd3ppxIXEhyB0byB6YWRhbmllPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBXb3Jrb3JkZXIgYXMgVGVtcGxhdGUnfSA9ICdaYXBpc3ogemFkYW5pZSBqYWtvIHN6YWJsb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEluZm9ybWF0aW9uJ30gPSAnWmFkYW5pZS1pbmZvcm1hY2plJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBBZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biBub3RpZmljYXRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgbm90aWZpY2F0aW9uLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIFVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBJVFNNIENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJ05pZSB6YWRla2xhcm93YW5vICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJ1ptaWXFhCBoaXN0b3JpxJknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnWmFkYW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICdOdW1lciB6YWRhbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclRpdGxlJ30gPSAnVHl0dcWCIHphZGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICdTdGFuIHptaWFueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnUGxhbm93YW55IHd5c2nFgmVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnxbvEhWRhbnkgY3phcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnUGxhbm93YW55IHN0YXJ0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnUGxhbm93YW55IGtvbmllYyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxTdGFydFRpbWUnfSA9ICdSemVjenl3aXN0eSBzdGFydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnUnplY3p5d2lzdHkga29uaWVjJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICdDemFzIHptaWFueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICdOdW1lciB6bWlhbnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICdTdGFuIHphZGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJ1R5cCB6YWRhbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50J30gPSAnQWdlbnQgemFkYW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAnVHl0dcWCIHptaWFueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnWmFkYW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoIFJlc3VsdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSAlcyBvZiBhbGwgd29ya29yZGVycyBoYXMgdG8gYmUgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB0ZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCB3b3Jrb3JkZXIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSB0aGUgd29ya29yZGVyICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBmaW5kIENoYW5nZSBmb3IgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSBab29tJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uICVzIG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnQnJhayBrb25maWd1cmFjamkgb3BjamkgZGxhIHdpZG9rdSAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICdNb2plIENBQnknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJ01vamUgem1pYW55JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IFdvcmsgT3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgRGVsZXRlZCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICdEb2Rhbm8gbGluayBkbyAlcyhJRD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdVc3VuacSZdG8gbGluayBkbyAlcyhJRD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENvbmRpdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIENvbmRpdGlvbnMgb2YgQ2hhbmdlIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQ29uZGl0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRXhwcmVzc2lvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBFeHByZXNzaW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChFeHByZXNzaW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyhJRD0lcykgRG9kYW5vIGxpbmsgZG8gJXMoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcoSUQ9JXMpIFVzdW5pxJl0byBsaW5rIGRvICVzKElEPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICd3c3p5c3RraWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAnZG93b2xuZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnxbzEhWRhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICdjemVrYSBuYSB6Z29kxJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICdvZHJ6dWNvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICd6YXR3aWVyZHpvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICd3IHRva3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICdjemVrYSBuYSByZWNlbnpqxJkgKFBJUiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJ3pha2/FhGN6b25lIHBvbXnFm2xuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAnemFrb8WEY3pvbmUgbmllcG9tecWbbG5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJ2FudWxvd2FuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICd3eWNvZmFuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAndXR3b3J6b25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnemFha2NlcHRvd2FuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJ2dvdG93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ3phdHdpZXJkemFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnemFkYW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnd3ljb2ZhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnZGVjeXpqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwaXInfSA9ICdyZWNlbnpqYSAoUElSKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICdqZXN0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJ25pZSBqZXN0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAncHVzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAnbmllcHVzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnamVzdCB3acSZa3N6ZSBvZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBsZXNzIHRoYW4nfSA9ICdqZXN0IG1uaWVqc3plIG9kJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJ3ByemVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAncG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICd6YXdpZXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJ25pZSB6YXdpZXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnemFjenluYSBzacSZIG9kJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJ2tvxYRjenkgc2nEmSBuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICd1c3Rhdyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJ09rJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnRG9kYWogemFkYW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICdaYXJ6xIVkemFuaWUgbWFjaWVyesSFIEtXUC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAnWmFyesSFZHphbmllIG1hc3p5bsSFIHN0YW7Ds3cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0xpbWl0IHByemVnbMSFZHUgem1pYW4gIk1hxYJlIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAnSGFybW9ub2dyYW0gem1pYW55JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICdIYXJtb25vZ3JhbSB6bWlhbnkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICdFZHljamEgd2FydW5rdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICdPa3JlxZtsLCBqYWtpIGVrcmFuIHBvd2luaWVuIHd5xZt3aWV0bGnEhyBzacSZIHBvIHV0d29yemVuaXUgbm93ZWdvIHphZGFuaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJ1V0d8Ozcnogem1pYW7EmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnWm1pYW55IElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnWm1pYW5hSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnWmFkYW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnTm93eSAoeiBzemFibG9udSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICdJbm5lIHVzdGF3aWVuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnUElSIChQcnplZ2zEhWQgUG93ZHJvxbxlbmlvd3kpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICdXeWtvbnVqZSB6YXBsYW5vd2FuZSBha2NqZSBkbGEga2HFvGRlZ28gd3lkYcW8ZW5pYSAoamFrbyBXenl3YWrEhWN5KSBkbGEga2HFvGRlaiBza29uZmlndXJvd2FuZWogdXPFgnVnaSBzaWVjaW93ZWouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjaGFuZ2UgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2VzXCcgQ0FCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgaW52b2x2ZWQgcGVyc29ucyBvZiBhIGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIG1vdmUgY2hhbmdlcyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgYSBDQUIgbWVtYmVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBvdmVydmlldyBvdmVyIGFsbCB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHdyaXRlIGEgcmVwb3J0IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1J1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NyZWVuIGFmdGVyIGNyZWF0aW5nIGEgd29ya29yZGVyJ30gPSAnRWtyYW4gcG8gdXR3b3J6ZW5pdSB6YWRhbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnV3lzenVraXdhbmllIHptaWFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkF1dG9JbmNyZW1lbnQiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBEZWZhdWx0IGlzIDUsIHRoaXMgbWVhbnMgdGhlIGNvdW50ZXIgc3RhcnRzIGZyb20gMTAwMDAuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3IgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBjaGVja2JveCBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGlmIHRoZSB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGFsc28gYmUgbW92ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgbW9kaWZpZWQgYW5kIHRoZSBwbGFubmVkIGVuZCB0aW1lIGhhcyBjaGFuZ2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBjaGFuZ2luZyB0aGUgd29ya29yZGVyIGFnZW50LCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBlZGl0aW5nIHRoZSByZXBvcnQgb2YgYSB3b3Jrb3JkZXIsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRha2luZyBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGNvbmRpdGlvbnMgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhZGQgYSB3b3Jrb3JkZXIgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgd29ya29yZGVyIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgd29ya29yZGVyIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnTWFzenluYSBzdGFuw7N3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICdXZcW6IHphZGFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICdQcnplZ2zEhWQgc3phYmxvbnUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICdUeXB5IHpnxYJvc3plxYQsIGRsYSBrdMOzcnljaCBuYSBla3JhbmllIHN6Y3plZ8OzxYLDs3cgemfFgm9zemVuaWEgd3nFm3dpZXRsb255IGLEmWR6aWUgbGluayB0d29yesSFY3kgem1pYW7EmS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZCAoZnJvbSB0ZW1wbGF0ZSkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/pt_BR_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cHRfQlJfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0NhdGVnb3JpYSDihpQgSW1wYWN0byDihpQgUHJpb3JpZGFkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnR2VyZW5jaWUgbyByZXN1bHRhZG8gZGUgcHJpb3JpZGFkZSBkYSBjb21iaW5hw6fDo28gZGUgQ2F0ZWdvcmlhICDihpTCoCBJbXBhY3RvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eSBhbGxvY2F0aW9uJ30gPSAnQXRyaWJ1aXIgcHJpb3JpZGFkZSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlTWFuYWdlbWVudCBOb3RpZmljYXRpb24gTWFuYWdlbWVudCd9ID0gJ0dlcmVuY2lhbWVudG8gZGUgTm90aWZpY2HDp8O1ZXMgZGUgR2Vyw6puY2lhIGRlIE11ZGFuw6dhIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnQWRpY2lvbmFyIFJlZ3JhIGRlIE5vdGlmaWNhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJ0VkaXRhciBSZWdyYSBkZSBOb3RpZmljYcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Egbm90aWZpY2F0aW9uIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdBIG5vdGlmaWNhw6fDo28gcHJlY2lzYSBkZSB1bSBub21lISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJ05vbWUgw6kgb2JyaWdhdMOzcmlvLic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICdHZXJlbmNpYXIgTcOhcXVpbmEgZGUgRXN0YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhIGNhdGFsb2cgY2xhc3MhJ30gPSAnU2VsZWNpb25lIHVtYSBjbGFzc2UgZGUgY2F0w6Fsb2dvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGFsb2cgY2xhc3MgaXMgcmVxdWlyZWQhJ30gPSAnVW1hIGNsYXNzZSBkZSBjYXTDoWxvZ28gw6kgbmVjZXNzw6FyaWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdBZGljaW9uYXIgdW1hIHRyYW5zacOnw6NvIGRlIGVzdGFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnQ2xhc3NlIGRlIENhdMOhbG9nbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPYmplY3QgTmFtZSd9ID0gJ05vbWUgZG8gT2JqZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAnUmV2aXPDo28gZGUgdW1hIHRyYW5zacOnw6NvIGRlIGVzdGFkbyBwYXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdFeGNsdWlyIGVzdGEgdHJhbnNpw6fDo28gZGUgZXN0YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ0FkaWNpb25hciB1bWEgbm92YSB0cmFuc2nDp8OjbyBkZSBlc3RhZG8gcGFyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgc3RhdGUhJ30gPSAnUG9yIGZhdm9yIHNlbGVjaW9uZSB1bSBlc3RhZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJ1BvciBmYXZvciwgZXNjb2xoYSBvIHByw7N4aW1vIGVzdGFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnRWRpdGFyIHVtYSB0cmFuc2nDp8OjbyBkZSBlc3RhZG8gcGFyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnVm9jw6ogcXVlciBtZXNtbyBleGNsdWlyIGVzdGEgdHJhbnNpw6fDo28gZGUgZXN0YWRvPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDaGFuZ2UnfSA9ICdBZGljaW9uYXIgTXVkYW7Dp2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UnfSA9ICdNdWRhbsOnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKdXN0aWZpY2F0aW9uJ30gPSAnSnVzdGlmaWNhdGl2YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnB1dCBpbnZhbGlkLid9ID0gJ0VudHJhZGEgaW52w6FsaWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgRGF0ZSd9ID0gJ0RhdGEgU29saWNpdGFkYSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBDaGFuZ2UgVGVtcGxhdGUnfSA9ICdTZWxlY2lvbmUgbW9kZWxvIGRlIG11ZGFuw6dhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJ1RpcG8gZGUgSG9yw6FyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAnVGlwbyBkZSBob3LDoXJpbyBpbnbDoWxpZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB0aW1lJ30gPSAnTm92byBob3LDoXJpbyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnU2FsdmFyIENDTSBkYSBNdWRhbsOnYSBjb21vIG1vZGVsbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJ2lyIHBhcmEgYSB0ZWxhICJQZXNzb2FzIEVudm9sdmlkYXMiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgTmFtZSd9ID0gJ05vbWUgaW52w6FsaWRvJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJ0NvbmRpw6fDtWVzIGUgQcOnw7Vlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnRXhjbHVpciBDb25kacOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgY29uZGl0aW9uJ30gPSAnQWRpY2lvbmFyIG5vdmEgY29uZGnDp8Ojbyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbmRpdGlvbid9ID0gJ0VkaXRhciBDb25kacOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJ1VtIG5vbWUgdsOhbGlkbyDDqSBuZWNlc3PDoXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBuYW1lIGlzIG5lZWRlZC4nfSA9ICdVbSBub21lIHbDoWxpZG8gw6kgbmVjZXNzw6FyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJ05vbWUgZHVwbGljYWRvOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJ0VzdGUgbm9tZSBqw6Egw6kgdXNhZG8gcG9yIG91dHJhIGNvbmRpw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hdGNoaW5nJ30gPSAnQ29tYmluYcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FueSBleHByZXNzaW9uIChPUiknfSA9ICdRdWFscXVlciBleHByZXNzw6NvIGzDs2dpY2EgKE9VKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICdUb2RhcyBhcyBleHByZXNzw7VlcyBsw7NnaWNhcyAoRSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbnMnfSA9ICdFeHByZXNzw7Vlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJ1NlbGV0b3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICdPcGVyYWRvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJ0V4Y2x1aXIgRXhwcmVzc8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICdOZW5odW1hIGV4cHJlc3PDo28gbMOzZ2ljYSBlbmNvbnRyYWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGV4cHJlc3Npb24nfSA9ICdBZGljaW9uYXIgbm92YSBleHByZXNzw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICdFeGNsdWlyIEHDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBBY3Rpb25zIGZvdW5kLid9ID0gJ05lbmh1bWEgYcOnw6NvIGVuY29udHJhZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAnQWRpY2lvbmFyIG5vdmEgYcOnw6NvJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICdWb2PDqiBxdWVyIHJlYWxtZW50ZSBleGNsdWlyIGVzdGEgbXVkYW7Dp2E/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcyd9ID0gJ0VkaXRhciAlcyVzJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJ0hpc3TDs3JpY28gZGUgJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICdDb250ZcO6ZG8gZG8gSGlzdMOzcmljbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICdPcmRlbSBkZSBTZXJ2acOnbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnSG9yYSBkZSBjcmlhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBkZXRhaWxzJ30gPSAnTW9zdHJhciBkZXRhbGhlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJ01vc3RyYXIgT3JkZW0gZGUgU2VydmnDp28nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICdJbmZvcm1hw6fDtWVzIGRldGFsaGFkYXMgZG8gaGlzdMOzcmljbyBkZSAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJ01vZGlmaWNhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnQW50aWdvIFZhbG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJ05vdm8gdmFsb3InOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJ0VkaXRhciBQZXNzb2FzIEVudm9sdmlkYXMgZGUgJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnUGVzc29hcyBFbnZvbHZpZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICdHZXJlbnRlIGRhIE11ZGFuw6dhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaW52YWxpZC4nfSA9ICdVc3XDoXJpbyBpbnbDoWxpZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcid9ID0gJ0NvbnN0cnV0b3IgZGEgTXVkYW7Dp2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnQ29uc2VsaG8gQ29uc3VsdGl2byBkZSBNdWRhbsOnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgVGVtcGxhdGUnfSA9ICdNb2RlbG8gZGUgQ0NNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnQXBsaWNhciBNb2RlbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICdOb3ZvIG1vZGVsbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnU2FsdmFyIGVzdGUgQ0NNIGNvbW8gbW9kZWxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICdBZGljaW9uYXIgYW8gQ0NNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJ1VzdcOhcmlvIGludsOhbGlkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJ0NDTSBBdHVhbCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ0NvbmZpZ3VyYcOnw7VlcyBkZSBDb250ZXh0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAnTXVkYW7Dp2FzIHBvciBww6FnaW5hJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUaXRsZSd9ID0gJ1TDrXR1bG8gZGEgT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnQWx0ZXJhciBUw610dWxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJ0FnZW50ZSBkZSBPcmRlbSBkZSBUcmFiYWxoby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICdDb25zdHJ1dG9yIGRhIE11ZGFuw6dhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnR2VyZW50ZSBkYSBNdWRhbsOnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAnT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnQWx0ZXJhciBFc3RhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnRXN0YWRvIGRhIE9yZGVtIGRlIFNlcnZpw6dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnVGlwbyBkZSBPcmRlbSBkZSBTZXJ2acOnbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJ0hvcsOhcmlvIHNvbGljaXRhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAnSG9yw6FyaW8gZGUgSW7DrWNpbyBQbGFuZWphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJ0hvcsOhcmlvIGRlIFTDqXJtaW5vIFBsYW5lamFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJ0hvcsOhcmlvIGRlIGluw61jaW8gcmVhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICdIb3LDoXJpbyBkZSB0w6lybWlubyByZWFsJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAnVm9jw6ogcXVlciByZWFsbWVudGUgcmVkZWZpbmlyIGVzdGEgbXVkYW7Dp2E/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJyhleC4gMTAqNTE1NSBvdSAxMDU2NTgqKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICdBZ2VudGUgQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICdleC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnQ2xpZW50ZSBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICdJbnN0cnXDp8OjbyBkZSBPcmRlbSBkZSBTZXJ2acOnbyBJVFNNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJ1JlbGF0w7NyaW8gZGUgT3JkZW0gZGUgU2VydmnDp28gSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJ0FsdGVyYXIgUHJpb3JpZGFkZSBJVFNNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIEltcGFjdCd9ID0gJ0FsdGVyYXIgSW1wYWN0byBJVFNNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDYXRlZ29yeSd9ID0gJ0NhdGVnb3JpYSBkYSBNdWRhbsOnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyhhbnRlcy9kZXBvaXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyhlbnRyZSknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAnU2FsdmFyIEFsdGVyYcOnw6NvIGNvbW8gTW9kZWxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ1VtIG1vZGVsbyBwcmVjaXNhIGRlIHVtIG5vbWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJ08gbm9tZSBkbyBtb2RlbG8gw6kgbmVjZXNzw6FyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IFN0YXRlcyd9ID0gJ1Jlc3RhYmVsZWNlciBFc3RhZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJ1NvYnJlc2NyZXZlciBtb2RlbG8gb3JpZ2luYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIGNoYW5nZSd9ID0gJ0V4Y2x1aXIgbXVkYW7Dp2Egb3JpZ2luYWwnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnRGVzbG9jYXIgSG9yw6FyaW9zJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJ0luZm9ybWHDp8OjbyBkYSBNdWRhbsOnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJ0VzZm9yw6dvIFBsYW5lamFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJ1RlbXBvIENvbnRhYmlsaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ0luaWNpYWRvcihlcykgZGEgTXVkYW7Dp2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCJ30gPSAnQ0NNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCd9ID0gJ8OabHRpbWEgYWx0ZXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnw5psdGltYSBhbHRlcmHDp8OjbyBwb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICdQYXJhIGFicmlyIGxpbmtzIG5vcyBibG9jb3MgZGUgZGVzY3Jpw6fDo28gc2VndWludGVzLCB0YWx2ZXogdm9jw6ogcHJlY2lzZSBwcmVzc2lvbmFyIEN0cmwsIENtZCBvdSBTaGlmdCBlbnF1YW50byBjbGljYSBubyBsaW5rIChkZXBlbmRlbmRvIGRvIHNldSBuYXZlZ2Fkb3Igb3Ugc2lzdGVtYSBvcGVyYWNpb25hbCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICdCYWl4YXIgQW5leG8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJ0VkaXRhciBNb2RlbG8gZGUgQ0FCJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnSXN0byBpcsOhIGNyaWFyIHVtYSBub3ZhIG11ZGFuw6dhIGEgcGFydGlyIGRlc3RlIG1vZGVsbywgYXNzaW0sIHZvY8OqIHBvZGVyw6EgZWRpdMOhLWxhIGUgc2FsdsOhLWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ0Egbm92YSBtdWRhbsOnYSBzZXLDoSBleGNsdcOtZGEgYXV0b21hdGljYW1lbnRlIGFww7NzIHNlciBzYWx2YSBjb21vIG1vZGVsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyB3b3Jrb3JkZXIgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICdJc3RvIGlyw6EgY3JpYXIgdW1hIG5vdmEgb3JkZW0gZGUgc2VydmnDp28gYSBwYXJ0aXIgZGVzdGUgbW9kZWxvLCBhc3NpbSwgdm9jw6ogcG9kZXLDoSBlZGl0w6EtbGEgZSBzYWx2w6EtbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcG9yYXJ5IGNoYW5nZSB3aWxsIGJlIGNyZWF0ZWQgd2hpY2ggY29udGFpbnMgdGhlIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJ1VtYSBtdWRhbsOnYSB0ZW1wb3LDoXJpYSBzZXLDoSBjcmlhZGEgZSBjb250ZXLDoSBhIG9yZGVtIGRlIHNlcnZpw6dvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnQSBtdWRhbsOnYSB0ZW1wb3LDoXJpYSBlIGEgbm92YSBvcmRlbSBkZSBzZXJ2acOnbyBzZXLDo28gZXhjbHXDrWRhcyBhdXRvbWF0aWNhbWVudGUgYXDDs3MgYSBvcmRlbSBzZXIgc2FsdmEgY29tbyBtb2RlbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAnVm9jw6ogcXVlciBwcm9zc2VndWlyPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnSUQgZG8gbW9kZWxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJ0VkaXRhciBDb250ZcO6ZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGJ5J30gPSAnQ3JpYXIgcG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBieSd9ID0gJ0FsdGVyYXIgcG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnQWx0ZXJhciBIb3LDoXJpbyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgdG8gJXMlcyd9ID0gJ0FkaWNpb25hciBPcmRlbSBkZSBTZXJ2acOnbyBwYXJhICVzJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICdJbnN0cnXDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJ1RpcG8gZGUgb3JkZW0gZGUgc2VydmnDp28gaW52w6FsaWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnTyBob3LDoXJpbyBkZSBpbsOtY2lvIHBsYW5lamFkbyBkZXZlIHNlciBhbnRlcmlvciBhbyBob3LDoXJpbyBkZSB0w6lybWlubyBwbGFuZWphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJ0Zvcm1hdG8gaW52w6FsaWRvLic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICdTZWxlY2lvbmUgbW9kZWxvIGRlIG9yZGVtIGRlIHNlcnZpw6dvJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAnRWRpdGFyIEFnZW50ZSBkZSBPcmRlbSBkZSBTZXJ2acOnbyBkZSAlcyVzJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICdWb2PDqiBxdWVyIHJlYWxtZW50ZSBleGNsdWlyIGVzdGEgb3JkZW0gZGUgc2VydmnDp28/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIFdvcmtvcmRlci4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgQ29uZGl0aW9uISd9ID0KICAgICAgICAnVm9jw6ogbsOjbyBwb2RlIGV4Y2x1aXIgZXN0YSBvcmRlbSBkZSBzZXJ2acOnby4gRWxhIGVzdMOhIHNlbmRvIHVzYWRhIHBvciBwZWxvIG1lbm9zIHVtYSBjb25kacOnw6NvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnRXN0YSBvcmRlbSBkZSBzZXJ2acOnbyBlc3TDoSBzZW5kbyB1c2FkYSBwZWxhKHMpIGNvbmRpw6fDo28ow7VlcyknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnRWRpdGFyICVzJXMgLSAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnTW92ZXIgYXMgc2VndWludGVzIG9yZGVucyBkZSBhY29yZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnU2UgbyB0w6lybWlubyBwbGFuZWphZG8gZGVzdGEgb3JkZW0gZGUgc2VydmnDp28gZm9yIGFsdGVyYWRvLCBvIGhvcsOhcmlvIHBsYW5lamFkbyBkZSBpbsOtY2lvIGRlIHRvZGFzIGFzIHNlZ3VpbnRlcyBvcmRlbnMgdGFtYsOpbSBzZXLDo28gYWx0ZXJhZG9zJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJ0hpc3TDs3JpY28gZGUgJXMlcy0lcyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICdFZGl0YXIgUmVsYXTDs3JpbyBkZSAlcyVzLSVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJ1JlbGF0w7NyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnTyBob3LDoXJpbyBkZSBpbsOtY2lvIHJlYWwgZGV2ZSBzZXIgYW50ZXMgZG8gdGVtcG8gZmluYWwgcmVhbCAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJ08gaG9yw6FyaW8gZGUgaW7DrWNpbyByZWFsIGRldmUgc2VyIGRlZmluaWRvLCBxdWFuZG8gbyB0ZW1wbyBkZSB0w6lybWlubyByZWFsIMOpIGNvbmZpZ3VyYWRvISc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnQXRlbmRlbnRlIGF0dWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byB0YWtlIHRoaXMgd29ya29yZGVyPyd9ID0gJ1ZvY8OqIHF1ZXIgcmVhbG1lbnRlIGFzc3VtaXIgZXN0YSBvcmRlbSBkZSBzZXJ2acOnbz8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAnU2FsdmFyIE9yZGVtIGRlIFNlcnZpw6dvIGNvbW8gTW9kZWxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnRXhjbHVpciBhIG9yZGVtIGRlIHNlcnZpw6dvIG9yaWdpbmFsIChlIGEgbXVkYW7Dp2EgY29ycmVzcG9uZGVudGUpJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJ0luZm9ybWHDp8OjbyBkYSBPcmRlbSBkZSBTZXJ2acOnbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnTm90aWZpY2HDp8OjbyBBZGljaW9uYWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICdOb3RpZmljYcOnw6NvIGRlc2NvbmhlY2lkYSAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnT2NvcnJldSB1bSBlcnJvIGFvIGNyaWFyIGEgbm90aWZpY2HDp8Ojby4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJ1RyYW5zacOnw6NvIGRlIEVzdGFkbyBBdHVhbGl6YWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJ1RyYW5zacOnw6NvIGRvIEVzdGFkbyBBZGljaW9uYWRhISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnVmlzw6NvIGdlcmFsOiBBbHRlcmHDp8O1ZXMgZGUgSVRTTSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBhZGljaW9uYXIgYWx0ZXJhw6fDtWVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBjcmlhciBhbHRlcmHDp8O1ZXMgbm8gbW9kZWxvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgYWRpY2lvbmFyIG8gbW9kZWxvLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnQWx0ZXJhw6fDo28gIiVzIiBuw6NvIGVuY29udHJhZGEgbm8gYmFuY28gZGUgZGFkb3MhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGV4Y2x1aXIgQ29uZGl0aW9uSUQgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICdOZW5odW0gJXMgaW5mb3JtYWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGNyaWFyIG5vdmEgY29uZGnDp8OjbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGFkaWNpb25hciBub3ZhIEV4cHJlc3PDo28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgYWRpY2lvbmFyIG5vdmEgQcOnw6NvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISd9ID0gJ0Vycm86IFRpcG8gZGUgY2FtcG8gZGVzY29uaGVjaWRvICIlcyIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJ0FsdGVyYcOnw6NvICIlcyIgbsOjbyB0ZW0gdW0gZXN0YWRvIGRlIG11ZGFuw6dhIHBlcm1pdGlkbyBwYXJhIHNlciBleGNsdcOtZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGF0dWFsaXphciBhIEFsdGVyYcOnw6NvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnQWx0ZXJhw6fDo28gIiVzIiBuw6NvIGVuY29udHJhZGEgbm8gYmFuY28gZGUgZGFkb3MhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJ0FsdGVyYXIgSGlzdMOzcmljbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlICVzISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBhdHVhbGl6YXIgYSBBbHRlcmHDp8OjbyAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJ1Zpc8OjbyBnZXJhbDogTWluaGFzIG11ZGFuw6dhcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnVMOtdHVsbyBkZSBtdWRhbsOnYSBkZXNjb25oZWNpZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXInfSA9ICdPcmRlbSBkZSBTZXJ2acOnbyBJVFNNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJ07Dum1lcm8gZGEgT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICdUw610dWxvIGRhIE9yZGVtIGRlIFNlcnZpw6dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gd29ya29yZGVyIHRpdGxlJ30gPSAnVMOtdHVsbyBkZSBvcmRlbSBkZSBzZXJ2acOnbyBkZXNjb25oZWNpZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICdFc3RhZG8gZGEgTXVkYW7Dp2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJ0VzZm9yw6dvIFBsYW5lamFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnQWdlbnRlcyBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJ0NsaWVudGVzIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnU29saWNpdGFkbyBlbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnSW7DrWNpbyBQbGFuZWphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICdUw6lybWlubyBQbGFuZWphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAnSW7DrWNpbyBSZWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICdUw6lybWlubyBSZWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICdBbHRlcmFkbyBlbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICdOw7ptZXJvIGRhIE11ZGFuw6dhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnRXN0YWRvIGRhIE9yZGVtIGRlIFNlcnZpw6dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICdUaXBvIGRhIE9yZGVtIGRlIFNlcnZpw6dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50J30gPSAnQXRlbmRlbnRlIGRhIE9yZGVtIGRlIFNlcnZpw6dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIE92ZXJ2aWV3ICglcyknfSA9ICdWaXPDo28gR2VyYWwgZGEgT3JkZW0gZGUgU2VydmnDp28gZG8gSVRTTSAoJXMpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnQWx0ZXJhciBQZXNxdWlzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJ1TDrXR1bG8gZGEgTXVkYW7Dp2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ09yZGVucyBkZSBTZXJ2acOnbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoIFJlc3VsdCd9ID0gJ0FsdGVyYXIgUmVzdWx0YWRvIGRhIFBlc3F1aXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICdBbHRlcmFyIE7Dum1lcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJ1TDrXR1bG8gZGEgT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAnQWx0ZXJhciBEZXNjcmnDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJ0FsdGVyYXIgSnVzdGlmaWNhdGl2YSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnSW5zdHJ1w6fDo28gZGEgT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJ1JlbGF0w7NyaW8gZGUgT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnQWx0ZXJhciBQcmlvcmlkYWRlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAnQWx0ZXJhciBJbXBhY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICdDcmlhZG8gUG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJ0VzdGFkbyBkYSBPcmRlbSBkZSBTZXJ2acOnbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJ1RpcG8gZGUgT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnQWdlbnRlIGRlIE9yZGVtIGRlIFRyYWJhbGhvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICdBbnRlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICdBIGFsdGVyYcOnw6NvICIlcyIgbsOjbyBwb2RlIHNlciBzZXJpYWxpemFkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgYXR1YWxpemFyIG8gbW9kZWxvICIlcyIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGVsaW1pbmFyIGEgYWx0ZXJhw6fDo28gIiVzIi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnQSBhbHRlcmHDp8OjbyBuw6NvIHBvZGUgc2VyIG1vdmlkYSwgcG9pcyBuw6NvIHRlbSBvcmRlbnMgZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICdBZGljaW9uZSB1bWEgT3JkZW0gZGUgU2VydmnDp28gcHJpbWVpcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICdOw6NvIMOpIHBvc3PDrXZlbCBtb3ZlciB1bWEgYWx0ZXJhw6fDo28gcXVlIGrDoSBjb21lw6dvdSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJ1BvciBmYXZvciwgbW92YSBhcyBvcmRlbnMgZGUgc2VydmnDp28gaW5kaXZpZHVhaXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJ0EgYXR1YWwgJXMgbsOjbyBwb2RlIHNlciBkZXRlcm1pbmFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnTyAlcyBkZSB0b2RhcyBvcmRlbnMgZGUgc2VydmnDp28gZGV2ZSBzZXIgZGVmaW5pZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJ1ZvY8OqIHByZWNpc2EgJXMgcGVybWlzc8OjbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICdOZW5odW0gSUQgZGUgbW9kZWxvIGluZm9ybWFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICdNb2RlbG8gIiVzIiBuw6NvIGVuY29udHJhZG8gbm8gYmFuY28gZGUgZGFkb3MhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBleGNsdWlyIG8gTW9kZWxvICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBhdHVhbGl6YXIgbyBNb2RlbG8gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgYXR1YWxpemFyIG8gTW9kZWxvICIlcyIhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgY3JpYXIgYWx0ZXJhw6fDo28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICdWaXPDo28gZ2VyYWw6IE1vZGVsbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJ1ZvY8OqIHByZWNpc2EgJXMgcGVybWlzc8O1ZXMgbmEgYWx0ZXJhw6fDo28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJ05lbmh1bSBJRCBkZSBPcmRlbSBkZSBTZXJ2acOnbyBpbmZvcm1hZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnSGlzdMOzcmljbyBkYSBPcmRlbSBkZSBTZXJ2acOnbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJ0VudHJhZGEgZGUgSGlzdMOzcmljbyAiJXMiIG7Do28gZW5jb250cmFkbyBubyBiYW5jbyBkZSBkYWRvcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICdQcmVjaXNhIGRlIG9ww6fDo28gZGUgY29uZmlndXJhw6fDo28gJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICdOw6NvIGZvcmFtIGVuY29udHJhZGFzIG9ww6fDtWVzIGRlIGNvbmZpZ3VyYcOnw6NvIHBhcmEgYSB2aXN1YWxpemHDp8OjbyAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJ1TDrXR1bG86ICVzIHwgVGlwbzogJXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnTWV1cyBDQ01zJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICdNaW5oYXMgTXVkYW7Dp2FzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IFdvcmsgT3JkZXJzJ30gPSAnTWluaGFzIE9yZGVucyBkZSBTZXJ2acOnbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyVzOiVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJ05vdmEgQcOnw6NvIChJRCA9ICVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnQcOnw6NvIChJRD0lcykgZXhjbHXDrWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdUb2RhcyBhcyBhw6fDtWVzIGRhIGNvbmRpw6fDo28gKElEID0gJXMpIGV4Y2x1w61kYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAnQcOnw6NvIChJRCA9ICVzKSBleGVjdXRhZG86ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJXMgKElEIGRhIGHDp8OjbyA9ICVzKTogKG5vdm8gPSAlcywgYW50aWdvID0gJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICdOb3ZhIEFsdGVyYcOnw6NvIChJRCA9IDElKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICdOb3ZvIEFuZXhvOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICdBbmV4byBleGNsdcOtZG8gJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICdDQUIgRXhjbHXDrWRvICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJXM6IChub3ZvPSVzLCBhbnRpZ289JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJ05vdGlmaWNhw6fDo28gZW52aWFkYSBwYXJhICVzIChFdmVudG86ICVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICdOb3ZhIGNvbmRpw6fDo28gKElEID0gJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdDb25kacOnw6NvIChJRD0gJXMpIGV4Y2x1w61kYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJXMgKElEIGRhIGNvbmRpw6fDo28gPSAlcyk6IChub3ZvPSVzLCBhbnRpZ289JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICdOb3ZhIEV4cHJlc3PDo28gKElEPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJ0V4cHJlc3PDo28gKElEPSVzKSBleGNsdcOtZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdUb2RhcyBhcyBFeHByZXNzw7VlcyBkZSBDb25kacOnw6NvIChJRD0lcykgZXhjbHXDrWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICclcyAoSUQgZGEgRXhwcmVzc8OjbyA9ICVzKTogKG5vdm89JXMsIGFudGlnbz0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICd0b2Rhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICdxdWFscXVlcic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICdBbHRlcmFyIEluaWNpYWRvcmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJ1JlcXVlcmlkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAnQXByb3Zhw6fDo28gUGVuZGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICdSZWplaXRhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICdBcHJvdmFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJ0VtIEFuZGFtZW50byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJ1JQSSBQZW5kZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAnU3VjZXNzbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICdGYWxoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJ0NhbmNlbGFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICdSZXRyYXRhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJ0NyaWFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJ0FjZWl0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJ1Byb250YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ0Fwcm92YcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJ09yZGVtIGRlIFNlcnZpw6dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICdQbGFubyBkZSBSZXRvcm5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnRGVjaXPDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnUlBJIChSZXZpc8OjbyBQw7NzLUltcGxlbWVudGHDp8OjbyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnw6knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnbsOjbyDDqSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJ8OpIHZhemlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJ27Do28gZXN0w6EgdmF6aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnw6kgbWFpb3IgcXVlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJ8OpIG1lbm9yIHF1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICfDqSBhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJ8OpIGRlcG9pcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJ2NvbnTDqW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnbsOjbyBjb250w6ltJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnaW5pY2lhIGNvbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICd0ZXJtaW5hIGNvbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICdjb25maWd1cmFyJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnVm9jw6ogcmVhbG1lbnRlIGRlc2VqYSBleGNsdWlyIGVzdGEgZXhwcmVzc8Ojbz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICdWb2PDqiByZWFsbWVudGUgZGVzZWphIGV4Y2x1aXIgZXN0YSBhw6fDo28/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnVm9jw6ogcmVhbG1lbnRlIGRlc2VqYSBleGNsdWlyIGVzdGEgY29uZGnDp8Ojbz8nOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICdPayc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJ1VtYSBsaXN0YSBkb3MgYWdlbnRlcyBxdWUgdMOqbSBwZXJtaXNzw6NvIHBhcmEgdGVyIE9yZGVucyBkZSBTZXJ2acOnby5DaGF2ZSDDqSB1bSBub21lIGRlIGxvZ2luLk8gY29udGXDumRvIMOpIDAgb3UgMSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJ1VtYSBsaXN0YSBkZSBlc3RhZG9zIGRlIE9yZGVtIGRlIFNlcnZpw6dvLCBlbSBxdWUgYSBob3JhIGRlIGluw61jaW8gcmVhbCBkZSB1bWEgT3JkZW0gZGUgU2VydmnDp28gc2Vyw6EgZGVmaW5pZG8gc2UgZWxlIGVzdGF2YSB2YXppbyBuZXN0ZSBtb21lbnRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICdIb3LDoXJpbyBkZSB0w6lybWlubyByZWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnSG9yw6FyaW8gZGUgaW7DrWNpbyByZWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICdBZGljaW9uYXIgT3JkZW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICdBZGljaW9uYXIgb3JkZW0gZGUgc2VydmnDp28gKGRlIG1vZGVsbyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnQWRpY2lvbmUgdW1hIGFsdGVyYcOnw6NvIGRvIG1vZGVsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJ0FkaWNpb25lIHVtYSBhbHRlcmHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJ0FkaWNpb25hciBvcmRlbSBkZSBzZXJ2acOnbyAoZGUgbW9kZWxvKSDDoCBtdWRhbsOnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICdBZGljaW9uYXIgb3JkZW0gZGUgc2VydmnDp28gw6AgbXVkYW7Dp2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICdBZGljaW9uYXIgdXRpbGl6YW5kbyBtb2RlbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnR2VyZW5jaWFyIG1hdHJpeiBDSVAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJ0dlcmVuY2lhciBtw6FxdWluYSBkZSBlc3RhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhw6fDo28gZGEgaW50ZXJmYWNlIGRvIEF0ZW5kZW50ZSBwYXJhIHZlciBvIG7Dum1lcm8gZGUgY29uc2VsaG9zIGNvbnN1bHRpdm9zIGRlIG11ZGFuw6dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhw6fDo28gZGEgaW50ZXJmYWNlIGRvIEF0ZW5kZW50ZSBwYXJhIHZlciBvIG7Dum1lcm8gZGUgbXVkYW7Dp2FzIGdlcmVuY2lhZG8gcGVsbyB1c3XDoXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgbm90aWZpY2HDp8OjbyBkYSBpbnRlcmZhY2UgZG8gQXRlbmRlbnRlIHBhcmEgdmVyIG8gbsO6bWVybyBkZSBhbHRlcmHDp8O1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJ1RlbXBvIGRlIGNhY2hlLCBlbSBtaW51dG9zLCBwYXJhIGFzIGJhcnJhcyBkZSBmZXJyYW1lbnRhcyBkZSBnZXJlbmNpYW1lbnRvIGRlIG11ZGFuw6dhcy4gUGFkcsOjbzogMyBob3JhcyAoMTgwIG1pbnV0b3MpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnVGVtcG8gZGUgY2FjaGUsIGVtIG1pbnV0b3MsIHBhcmEgbyBnZXJlbmNpYW1lbnRvIGRlIG11ZGFuw6dhcy4gUGFkcsOjbzogNSBkaWFzICg3MjAwIG1pbnV0b3MpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICdBbHRlcmFyIEhpc3TDs3JpY28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0xpbWl0ZSBwYXJhIGEgdmlzw6NvIGRlIG11ZGFuw6dhcyAicGVxdWVubyInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJ1Byb2dyYW1hw6fDo28gZGFzIEZ1dHVyYXMgTXVkYW7Dp2FzIChQRk0pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICdBbHRlcmFyIGJ1c2NhIGFwb2lhZGFzIGRvIHJvdGVhZG9yIGRvIGFnZW50ZSBkZSBpbnRlcmZhY2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJ0VkaXRhciBDb25kacOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnQ29uZmlndXJhIGEgZnJlccO8w6puY2lhIGNvbSBxdWUgYXMgbm90aWZpY2HDp8O1ZXMgc8OjbyBlbnZpYWRhcyBxdWFuZG8gbyB0ZW1wbyBwcmV2aXN0byBkZSBpbsOtY2lvIG91IG91dHJvcyB2YWxvcmVzIGRlIHRlbXBvIHRlciBzaWRvIGF0aW5naWRvL3Bhc3NvdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJ0NyaWFyIE11ZGFuw6dhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJ1RpcG8gcGFkcsOjbyBkZSBPcmRlbSBkZSBTZXJ2acOnby5Fc3RhIGVudHJhZGEgZGV2ZSBleGlzdGlyIG5hIGNsYXNzZSBjYXTDoWxvZ28gZ2VyYWwgXCdJVFNNOjpHZXN0w6NvIGRhIE11ZGFuw6dhOjpPcmRlbSBkZSBTZXJ2acOnbzo6VGlwb1wnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnRGVmaW5hIEHDp8O1ZXMgb25kZSB1bSBib3TDo28gZGUgY29uZmlndXJhw6fDtWVzIGVzdMOhIGRpc3BvbsOtdmVsIG5vIHdpZGdldCBkZSBvYmpldG9zIHZpbmN1bGFkb3MgKExpbmtPYmplY3Q6OlZpZXdNb2RlPSJjb21wbGV4IikuIE9ic2VydmUgcXVlIGVzc2FzIGHDp8O1ZXMgZGV2ZW0gdGVyIHJlZ2lzdHJhZG8gb3Mgc2VndWludGVzIGFycXVpdm9zIEpTIGUgQ1NTOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBlIENvcmUuQWdlbnQgLkxpbmtPYmplY3QuanMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAnRGVmaW5pw6fDo28gZG9zIGF2aXNvcyBwYXJhIGNhZGEgZXN0YWRvIGRlIE9yZGVtIGRlIFNlcnZpw6dvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJ0RlZmluZSB1bWEgdmlzw6NvIGdsb2JhbCBkbyBtw7NkdWxvIHBhcmEgbW9zdHJhciB1bWEgcGVxdWVuYSB2aXPDo28gZGEgbGlzdGEgZGUgbXVkYW7Dp2FzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJ0RlZmluZSB1bWEgdmlzw6NvIGdsb2JhbCBkbyBtw7NkdWxvIHBhcmEgbW9zdHJhciB1bWEgcGVxdWVuYSB2aXN0w6NvIGRhIGxpc3RhIGRlIG1vZGVsb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAnRGVmaW5lIHNlIHNlcsOhIHBvc3PDrXZlbCBpbXByaW1pciBvIHRlbXBvIGNvbnRhYmlsaXphZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAnRGVmaW5lIHNlIHNlcsOhIHBvc3PDrXZlbCBpbXByaW1pciBvIGVzZm9yw6dvIHBsYW5lamFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnRGVmaW5lIHNlIGFjZXNzw612ZWwgKGNvbW8gZGVmaW5pZG8gcGVsYSBtw6FxdWluYSBkZSBlc3RhZG9zKSBlc3RhZG9zIGZpbmFpcyBkZSBtdWRhbsOnYXMgZGV2ZSBzZXIgcGVybWl0aWRvIHNlIGEgbXVkYW7Dp2EgZXN0aXZlciBlbSB1bSBlc3RhZG8gYmxvcXVlYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICdEZWZpbmUgc2UgYWNlc3PDrXZlbCAoY29tbyBkZWZpbmlkbyBwZWxhIG3DoXF1aW5hIGRlIGVzdGFkb3MpIGVzdGFkb3MgZmluYWlzIGRlIG9yZGVucyBkZSBzZXJ2acOnbyBkZXZlIHNlciBwZXJtaXRpZG8gc2UgYSBvcmRlbSBlc3RpdmVyIGVtIHVtIGVzdGFkbyBibG9xdWVhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICdEZWZpbmUgc2UgbyB0ZW1wbyBjb250YWJpbGl6YWRvIGRldmUgc2VyIG1vc3RyYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBzaG91bGQgYmUgc2V0Lid9ID0gJ0RlZmluZSBzZSBvIHJlYWwgaW7DrWNpbyBlIGRlIHTDqXJtaW5vIGRldmUgc2VyIGRlZmluaWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICdEZWZpbmUgc2UgYXMgZnVuw6fDtWVzIGRlIGJ1c2NhIGRlIG11ZGFuw6dhIGUgZGUgb3JkZW0gZGUgc2VydmnDp28gcG9kZW0gdXNhciBvIEJEIGVzcGVsaG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnRGVmaW5lIHNlIG8gZXNmb3LDp28gcGxhbmVqYWRvIGRldmUgc2VyIG1vc3RyYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnRGVmaW5lIHNlIGEgZGF0YSBzb2xpY2l0YWRhIGRldmVyw6Egc2VyIGltcHJlc3NhIHBvciBjbGllbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJ0RlZmluZSBzZSBhIGRhdGEgc29saWNpdGFkYSBkZXZlcsOhIHNlciBwZXNxdWlzYWRvIHBlbG8gY2xpZW50ZS4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnRGVmaW5lIHNlIGEgZGF0YSBzb2xpY2l0YWRhIGRldmVyw6Egc2VyIGRlZmluaWRvIHBlbG8gY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJ0RlZmluZSBzZSBhIGRhdGEgc29saWNpdGFkYSBkZXZlIHNlciBpbmRpY2FkYSBwZWxvIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnRGVmaW5lIHNlIG8gZXN0YWRvIGRhIE9yZGVtIGRlIFNlcnZpw6dvIGRldmUgc2VyIG1vc3RyYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLid9ID0gJ0RlZmluZSBzZSBvIHTDrXR1bG8gZGEgT3JkZW0gZGUgU2VydmnDp28gZGV2ZSBzZXIgbW9zdHJhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICdEZWZpbmUgbW9zdHJhZG8gYXRyaWJ1dG9zIGdyw6FmaWNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ0RlZmluZSBxdWUgc29tZW50ZSBtdWRhbsOnYXMgY29udGVuZG8gT3JkZW5zIGRlIFNlcnZpw6dvIHJlbGFjaW9uYWRhcyBjb20gb3Mgc2VydmnDp29zLCBxdWUgbyB1c3XDoXJpbyBjbGllbnRlIHRlbSBwZXJtaXNzw6NvIHBhcmEgdXRpbGl6YXIgc2Vyw6EgbW9zdHJhZG8uIFF1YWlzcXVlciBvdXRyYXMgYWx0ZXJhw6fDtWVzIG7Do28gc2Vyw6NvIGV4aWJpZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICdEZWZpbmUgb3MgZXN0YWRvcyBkZSBtdWRhbsOnYSBxdWUgcG9kZXLDo28gc2VyIGV4Y2x1w61kb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBlc3RhZG9zIGRlIG11ZGFuw6dhIHF1ZSBzZXLDo28gdXRpbGl6YWRvcyBjb21vIGZpbHRyb3MgbmEgdmlzw6NvIGdsb2JhbCBkYSBEUFMgZW0gTXVkYW7Dp2FzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBlc3RhZG9zIGRlIG11ZGFuw6dhIHF1ZSBzZXLDoSB1dGlsaXphZGEgY29tbyBmaWx0cm9zIG5hIG11ZGFuw6dhIHZpc8OjbyBnbG9iYWwgZGUgYWdlbmRhbWVudG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgZXN0YWRvcyBkZSBtdWRhbsOnYSBxdWUgc2Vyw6EgdXRpbGl6YWRhIGNvbW8gZmlsdHJvcyBuYSBtaW5oYSB2aXPDo28gZ2xvYmFsIENDTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgZXN0YWRvcyBkZSBtdWRhbsOnYSBxdWUgc2Vyw6EgdXRpbGl6YWRhIGNvbW8gZmlsdHJvcyBuYSBtaW5oYSB2aXPDo28gZ2xvYmFsIGRlIG11ZGFuw6dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIG9zIGVzdGFkb3MgZGUgbXVkYW7Dp2EgcXVlIHNlcsOhIHV0aWxpemFkYSBjb21vIGZpbHRyb3MgbmEgdmlzw6NvIGdsb2JhbCBkbyBnZXJlbnRlIGRlIG11ZGFuw6dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBlc3RhZG9zIG11ZGFuw6dhIHF1ZSBzZXLDoSB1dGlsaXphZGEgY29tbyBmaWx0cm9zIG5hIHZpc8OjbyBnbG9iYWwgZGUgbXVkYW7Dp2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIG9zIGVzdGFkb3MgZGUgbXVkYW7Dp2EgcXVlIHNlcsOhIHV0aWxpemFkYSBjb21vIGZpbHRyb3MgbmEgdmlzw6NvIGdsb2JhbCBkbyBjbGllbnRlIGFnZW5kYXIgYSBtdWRhbsOnYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnRGVmaW5lIG8gdMOtdHVsbyBwYWRyw6NvIGRlIG11ZGFuw6dhIHBhcmEgdW1hIG11ZGFuw6dhIGZpY3TDrWNpYSBxdWUgw6kgbmVjZXNzw6FyaWEgcGFyYSBlZGl0YXIgdW0gbW9kZWxvIGRlIG9yZGVtIGRlIHNlcnZpw6dvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgY3JpdMOpcmlvcyBkZSBjbGFzc2lmaWNhw6fDo28gcGFkcsOjbyBuYSB2aXPDo28gZ2xvYmFsIGRhIERQUyBlbSBtdWRhbsOnYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgY3JpdMOpcmlvcyBkZSBjbGFzc2lmaWNhw6fDo28gcGFkcsOjbyBuYSB2aXPDo28gZ2xvYmFsIGRhIGdlc3TDo28gZGUgbXVkYW7Dp2FzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICdEZWZpbmUgb3MgY3JpdMOpcmlvcyBkZSBjbGFzc2lmaWNhw6fDo28gcGFkcsOjbyBuYSB2aXPDo28gZ2xvYmFsIGRlIG11ZGFuw6dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBjcml0w6lyaW9zIGRlIGNsYXNzaWZpY2HDp8OjbyBwYWRyw6NvIG5hIHZpc8OjbyBnbG9iYWwgZGUgcHJvZ3JhbWFyIG11ZGFuw6dhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBjcml0w6lyaW9zIGRlIGNsYXNzaWZpY2HDp8OjbyBwYWRyw6NvIGRlIG11ZGFuw6dhcyBuYSB2aXPDo28gZ2xvYmFsIE1ldSBDQ00uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIG9zIGNyaXTDqXJpb3MgZGUgY2xhc3NpZmljYcOnw6NvIHBhZHLDo28gZGUgbXVkYW7Dp2FzIG5hIHZpc8OjbyBnbG9iYWwgTWluaGFTIE11ZGFuw6dhUy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgY3JpdMOpcmlvcyBkZSBjbGFzc2lmaWNhw6fDo28gcGFkcsOjbyBkZSBtdWRhbsOnYXMgbmEgdmlzw6NvIGdsb2JhbCBNaW5oYSBPcmRlbSBkZSBTZXJ2acOnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgY3JpdMOpcmlvcyBkZSBjbGFzc2lmaWNhw6fDo28gcGFkcsOjbyBkZSBtdWRhbsOnYXMgbmEgdmlzw6NvIGdsb2JhbCBSUEkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIG9zIGNyaXTDqXJpb3MgZGUgY2xhc3NpZmljYcOnw6NvIHBhZHLDo28gZGUgbXVkYW7Dp2FzIG5hIHZpc8OjbyBnbG9iYWwgQ2FsZW5kw6FyaW8gZGUgTXVkYW7Dp2FzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIG9zIGNyaXTDqXJpb3MgZGUgY2xhc3NpZmljYcOnw6NvIHBhZHLDo28gZGUgbXVkYW7Dp2FzIG5hIHZpc8OjbyBnbG9iYWwgTW9kZWxvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICdEZWZpbmUgYSBvcmRlbSBkZSBjbGFzc2lmaWNhw6fDo28gcGFkcsOjbyBuYSB2aXPDo28gZ2xvYmFsIGRlIE1ldSBDQ00uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0gJ0RlZmluZSBhIG9yZGVtIGRlIGNsYXNzaWZpY2HDp8OjbyBwYWRyw6NvIG5hIHZpc8OjbyBnbG9iYWwgZGUgTWluaGEgTXVkYW7Dp2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIGEgb3JkZW0gZGUgY2xhc3NpZmljYcOnw6NvIHBhZHLDo28gbmEgdmlzw6NvIGdsb2JhbCBkZSBNaW5oYSBPcmRlbSBkZSBTZXJ2acOnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnRGVmaW5lIGEgb3JkZW0gZGUgY2xhc3NpZmljYcOnw6NvIHBhZHLDo28gbmEgdmlzw6NvIGdsb2JhbCBkZSBSUEkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICdEZWZpbmUgYSBvcmRlbSBkZSBjbGFzc2lmaWNhw6fDo28gcGFkcsOjbyBuYSB2aXPDo28gZ2xvYmFsIGRhIERQUy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBhIG9yZGVtIGRlIGNsYXNzaWZpY2HDp8OjbyBwYWRyw6NvIG5hIHZpc8OjbyBnbG9iYWwgZGEgZ2VzdMOjbyBkZSBtdWRhbsOnYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnRGVmaW5lIGEgb3JkZW0gZGUgY2xhc3NpZmljYcOnw6NvIHBhZHLDo28gbmEgdmlzw6NvIGdsb2JhbCBkZSBtdWRhbsOnYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgYSBvcmRlbSBkZSBjbGFzc2lmaWNhw6fDo28gcGFkcsOjbyBuYSB2aXPDo28gZ2xvYmFsIGRlIHByb2dyYW1hciBhIG11ZGFuw6dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBhIG9yZGVtIGRlIGNsYXNzaWZpY2HDp8OjbyBwYWRyw6NvIG5hIHZpc8OjbyBnbG9iYWwgZG8gY2xpZW50ZSBwcm9ncmFtYXIgYSBtdWRhbsOnYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICdEZWZpbmUgYSBvcmRlbSBkZSBjbGFzc2lmaWNhw6fDo28gcGFkcsOjbyBuYSB2aXPDo28gZ2xvYmFsIGRlIG1vZGVsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJ0RlZmluZSBvIHZhbG9yIHBhZHLDo28gcGFyYSBhIGNhdGVnb3JpYSBkZSB1bWEgbXVkYW7Dp2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnRGVmaW5lIG8gdmFsb3IgcGFkcsOjbyBwYXJhIG8gaW1wYWN0byBkZSB1bWEgbXVkYW7Dp2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciB3b3Jrb3JkZXIgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciBjaGFuZ2Ugb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHdvcmtvcmRlciBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWNjb3VudGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDYXRlZ29yeUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlTWFuYWdlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgRHluYW1pY0ZpZWxkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgSW1wYWN0SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRWZmb3J0IGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFJlcXVlc3RlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJBZ2VudElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGVyaW9kIChpbiB5ZWFycyksIGluIHdoaWNoIHN0YXJ0IGFuZCBlbmQgdGltZXMgY2FuIGJlIHNlbGVjdGVkLid9ID0KICAgICAgICAnRGVmaW5lIG8gcGVyw61vZG8gKGVtIGFub3MpLCBlbSBxdWUgb3MgaG9yw6FyaW9zIGRlIGluw61jaW8gZSBmaW0gcG9kZW0gc2VyIHNlbGVjaW9uYWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBhdHJpYnV0b3MgZXhpYmlkb3MgZGUgdW1hIG9yZGVtIGRlIHNlcnZpw6dvIG5hIGRpY2EgZG8gZ3LDoWZpY28gZGUgdGFyZWZhcyBuYSB0ZWxhIGRlIGRldGFsaGUgZGEgbXVkYW7Dp2EuIFBhcmEgZXhpYmlyIGNhbXBvcyBkaW7Dom1pY29zIGRlIG9yZGVtIGRlIHNlcnZpw6dvIG5hIGRpY2EsIGVsZXMgZGV2ZW0gc2VyIGVzcGVjaWZpY2Fkb3MgY29tbyBEeW5hbWljRmllbGRfTm9tZUNhbXBvT3JkZW0xLCBEeW5hbWljRmllbGRfTm9tZUNhbXBvT3JkZW0yIGV0Yy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZSBhcyBjb2x1bmFzIG1vc3RyYW5kbyBuYSBNdWRhbsOnYSB2aXPDo28gZ2VyYWwgZGEgRFBTLiBFc3RhIG9ww6fDo28gbsOjbyB0ZW0gZWZlaXRvIHNvYnJlIGEgcG9zacOnw6NvIGRhIGNvbHVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGFzIGNvbHVuYXMgbW9zdHJhbmRvIG5hIE11ZGFuw6dhIHZpc8OjbyBnZXJhbCBkYSBBZ2VuZGEuIEVzdGEgb3DDp8OjbyBuw6NvIHRlbSBlZmVpdG8gc29icmUgYSBwb3Npw6fDo28gZGEgY29sdW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZSBhcyBjb2x1bmFzIG1vc3RyYW5kbyBhIHZpc8OjbyBnZXJhbCBkYSBNZXUgQ0NNLiBFc3RhIG9ww6fDo28gbsOjbyB0ZW0gZWZlaXRvIHNvYnJlIGEgcG9zacOnw6NvIGRhIGNvbHVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGFzIGNvbHVuYXMgbW9zdHJhbmRvIGEgdmlzw6NvIGdlcmFsIGRhcyBNaW5oYXMgTXVkYW7Dp2FzLiBFc3RhIG9ww6fDo28gbsOjbyB0ZW0gZWZlaXRvIHNvYnJlIGEgcG9zacOnw6NvIGRhIGNvbHVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGFzIGNvbHVuYXMgbW9zdHJhbmRvIGEgdmlzw6NvIGdlcmFsIGRhcyBNaW5oYXMgT3JkZW5zIGRlIFNlcnZpw6dvLiBFc3RhIG9ww6fDo28gbsOjbyB0ZW0gZWZlaXRvIHNvYnJlIGEgcG9zacOnw6NvIGRhIGNvbHVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGFzIGNvbHVuYXMgbW9zdHJhbmRvIGEgdmlzw6NvIGdlcmFsIGRhIFJQSS4gRXN0YSBvcMOnw6NvIG7Do28gdGVtIGVmZWl0byBzb2JyZSBhIHBvc2nDp8OjbyBkYSBjb2x1bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGFzIGNvbHVuYXMgbW9zdHJhbmRvIGEgdmlzw6NvIGdlcmFsIGRvIGdlcmVudGUgZGUgbXVkYW7Dp2EuIEVzdGEgb3DDp8OjbyBuw6NvIHRlbSBlZmVpdG8gc29icmUgYSBwb3Npw6fDo28gZGEgY29sdW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgYXMgY29sdW5hcyBtb3N0cmFuZG8gYSB2aXPDo28gZ2VyYWwgZGEgbXVkYW7Dp2EuIEVzdGEgb3DDp8OjbyBuw6NvIHRlbSBlZmVpdG8gc29icmUgYSBwb3Npw6fDo28gZGEgY29sdW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGFzIGNvbHVuYXMgbW9zdHJhbmRvIGEgcGVzcXVpc2EgZGEgbXVkYW7Dp2EuIEVzdGEgb3DDp8OjbyBuw6NvIHRlbSBlZmVpdG8gc29icmUgYSBwb3Npw6fDo28gZGEgY29sdW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgYXMgY29sdW5hcyBtb3N0cmFuZG8gYSB2aXPDo28gZ2VyYWwgZG8gY2xpZW50ZSBhZ2VuZGFyIGEgbXVkYW7Dp2EuIEVzdGEgb3DDp8OjbyBuw6NvIHRlbSBlZmVpdG8gc29icmUgYSBwb3Npw6fDo28gZGEgY29sdW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZSBhcyBjb2x1bmFzIG1vc3RyYW5kbyBhIHZpc8OjbyBnZXJhbCBkbyBtb2RlbG8uIEVzdGEgb3DDp8OjbyBuw6NvIHRlbSBlZmVpdG8gc29icmUgYSBwb3Npw6fDo28gZGEgY29sdW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyB0aXBvcyBkZSBtb2RlbG8gcXVlIHNlcsOhIHVzYWRvIGNvbW8gZmlsdHJvcyBuYSB2aXPDo28gZ2xvYmFsIGRlIG1vZGVsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgZXN0YWRvcyBkZSBvcmRlbSBkZSBzZXJ2acOnbyBxdWUgc2Vyw6EgdXNhZG8gY29tbyBmaWx0cm9zIG5hIHZpc8OjbyBnbG9iYWwgZGFzIE1pbmhhcyBPcmRlbnMgZGUgU2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIG9zIGVzdGFkb3MgZGUgb3JkZW0gZGUgc2VydmnDp28gcXVlIHNlcsOhIHVzYWRvIGNvbW8gZmlsdHJvcyBuYSB2aXPDo28gZ2xvYmFsIGRhIFJQSS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyB0aXBvcyBkZSBvcmRlbSBkZSBzZXJ2acOnbyBxdWUgc2Vyw6EgdXNhZG8gY29tbyBmaWx0cm9zIHBhcmEgbW9zdHJhciBuYSB2aXPDo28gZ2xvYmFsIGRhIFJQSS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAnRGVmaW5lIHNlIGFzIG5vdGlmaWNhw6fDtWVzIGRldmVtIHNlciBlbnZpYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzZSB1bSBhdGVuZGVudGUgcG9kZSB0cm9jYXIgbyBlaXhvIFggZGUgdW1hIGVzdGF0w61zdGljYSBzZSBlbGUgZ2VyZSB1bS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyBkb25lIGZvciBjb25maWcgaXRlbSBjbGFzc2VzLid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNlIG8gbcOzZHVsbyBkZSBlc3RhdMOtc3RpY2FzIGNvbXVucyBwb2RlbSBnZXJhciBlc3RhdMOtc3RpY2FzIHNvYnJlIGFzIG11ZGFuw6dhcyBmZWl0YXMgcGFyYSBhcyBjbGFzc2VzIGRlIGl0ZW0gZGUgY29uZmlndXJhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2UgbyBtw7NkdWxvIGRlIGVzdGF0w61zdGljYXMgY29tdW5zIHBvZGVtIGdlcmFyIGVzdGF0w61zdGljYXMgc29icmUgYXMgbXVkYW7Dp2FzIHJlZmVyZW50ZXMgw6BzIGF0dWFsaXphw6fDtWVzIG11ZGFuw6dhIGRlIGVzdGFkbyBkZW50cm8gZGUgdW0gcGVyw61vZG8gZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2UgbyBtw7NkdWxvIGRlIGVzdGF0w61zdGljYXMgY29tdW5zIHBvZGVtIGdlcmFyIGVzdGF0w61zdGljYXMgc29icmUgYXMgbXVkYW7Dp2FzIGEgcmVzcGVpdG8gZGEgcmVsYcOnw6NvIGVudHJlIGFzIG11ZGFuw6dhcyBlIG9zIGNoYW1hZG9zIGRlIGluY2lkZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzZSBvIG3Ds2R1bG8gZGUgZXN0YXTDrXN0aWNhcyBjb211bnMgcG9kZW0gZ2VyYXIgZXN0YXTDrXN0aWNhcyBzb2JyZSBhcyBtdWRhbsOnYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzZSBvIG3Ds2R1bG8gZGUgZXN0YXTDrXN0aWNhcyBjb211bnMgcG9kZW0gZ2VyYXIgZXN0YXTDrXN0aWNhcyBzb2JyZSBvIG7Dum1lcm8gZGUgY2hhbWFkb3MgUkZDIGEgdW0gc29saWNpdGFudGUgY3JpYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgZXZlbnRvIER5bmFtaWNGaWVsZCBwYXJhIGxpZGFyIGNvbSBhdHVhbGl6YcOnw6NvIGRlIGNvbmRpw6fDtWVzIHNlIGNhbXBvcyBkaW7Dom1pY29zIGZvcmVtIGFkaWNpb25hZG9zLCBhdHVhbGl6YWRvcyBvdSBleGNsdcOtZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICdNdWRhbsOnYXMgSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJ03Ds2R1bG8gZGUgZXZlbnRvIElUU00gcXVlIGxpbXBhIGNvbmRpw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnTcOzZHVsbyBkZSBldmVudG8gSVRTTSBwYXJhIGV4Y2x1aXIgbyBjYWNoZSBkZSB1bWEgYmFycmEgZGUgdGFyZWZhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIGV2ZW50byBJVFNNIHF1ZSBjb2luY2lkZSBjb20gYXMgY29uZGnDp8O1ZXMgZSBleGVjdXRhIGFzIGHDp8O1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICdNw7NkdWxvIGRlIGV2ZW50b3MgSVRTTSBxdWUgZW52aWEgbm90aWZpY2HDp8O1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJ03Ds2R1bG8gZGUgZXZlbnRvIElUU00gcXVlIGF0dWFsaXphIG8gaGlzdMOzcmljbyBkZSBtdWRhbsOnYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJ03Ds2R1bG8gZGUgZXZlbnRvIElUU00gcGFyYSByZWNhbGN1bGFyIG9zIG7Dum1lcm9zIGRlIG9yZGVtIGRlIHNlcnZpw6dvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIGV2ZW50byBJVFNNIHBhcmEgZGVmaW5pciBvIHRlbXBvIGluw61jaW8gZSBkZSB0w6lybWlubyBkZSBvcmRlbnMgZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICdNdWRhbsOnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnT3JkZW0gZGUgU2VydmnDp28gSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnTcOzZHVsbyBwYXJhIHZlcmlmaWNhciBzZSBXb3JrT3JkZXJBZGQgb3UgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIGRldmVtIHNlciBwZXJtaXRpZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIENBQiBtZW1iZXJzLid9ID0gJ03Ds2R1bG8gcGFyYSB2ZXJpZmljYXIgb3MgbWVtYnJvcyBkbyBDQ00uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnTcOzZHVsbyBwYXJhIHZlcmlmaWNhciBvIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICdNw7NkdWxvIHBhcmEgdmVyaWZpY2FyIG8gY29uc3RydXRvciBkYSBtdWRhbsOnYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICdNw7NkdWxvIHBhcmEgdmVyaWZpY2FyIG8gZ2VyZW50ZSBkZSBtdWRhbsOnYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnTcOzZHVsbyBwYXJhIHZlcmlmaWNhciBvIGF0ZW5kZW50ZSBkYSBvcmRlbSBkZSBzZXJ2acOnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nfSA9ICdNw7NkdWxvIHBhcmEgdmVyaWZpY2FyIHNlIG7Do28gZXhpc3RlIGF0ZW5kZW50ZSBkZSBvcmRlbSBkZSBzZXJ2acOnbyBkZWZpbmlkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAnTcOzZHVsbyBwYXJhIHZlcmlmaWNhciBzZSBvIGF0ZW5kZW50ZSBlc3TDoSBjb250aWRvIG5hIGxpc3RhIGNvbmZpZ3VyYWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnTcOzZHVsbyBwYXJhIG1vc3RyYXIgdW0gbGluayBwYXJhIGNyaWFyIHVtYSBtdWRhbsOnYSBhIHBhcnRpciBkZXN0ZSBjaGFtYWRvLiBPIGNoYW1hZG8gc2Vyw6EgYXV0b21hdGljYW1lbnRlIGxpZ2FkbyBjb20gYSBub3ZhIG11ZGFuw6dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnTm92YSAodXRpbGl6YW5kbyBtb2RlbG8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnU29tZW50ZSB1c3XDoXJpb3MgZGVzc2VzIGdydXBvcyB0w6ptIHBlcm1pc3PDo28gcGFyYSB1c2FyIG9zIHRpcG9zIGRlIGNoYW1hZG9zLCB0YWwgY29tbyBkZWZpbmlkbyBlbSAiTXVkYW7Dp2FJVFNNOlRpcG9zQ2hhbWFkb3NBZGljaW9uYXJMaW5rTXVkYW7Dp2EiIHNlIG8gcmVjdXJzbyAiQ2hhbWFkbzo6QUNMOjogTcOzZHVsbyMjIzIwMC1DaGFtYWRvOjpBQ0w6Ok3Ds2R1bG8iIMOpIGhhYmlsaXRhZG8uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ091dHJhcyBDb25maWd1cmHDp8O1ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnUlBJIChSZXZpc8OjbyBQw7NzLUltcGxlbWVudGHDp8OjbyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1BhcsOibWV0cm9zIHBhcmEgbyBvYmpldG8gVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG5hIHRlbGEgZGUgcHJlZmVyw6puY2lhcyBkYSBpbnRlcmZhY2UgZGUgYXRlbmRlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcsOibWV0cm9zIHBhcmEgYXMgcMOhZ2luYXMgKGVtIHF1ZSBhcyBtdWRhbsOnYXMgc8OjbyBtb3N0cmFkYXMpIGRhIHBlcXVlbmEgdmlzw6NvIGdsb2JhbCBkZSBtdWRhbsOnYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIHRpbWUnfSA9ICdIb3LDoXJpbyBzb2xpY2l0YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIGEgZmltIGRlIHVtIGFnZW50ZSB0ZXIgdW1hIG9yZGVtIGRlIHNlcnZpw6dvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIGFjZXNzYXIgYSB2aXPDo28gZ2xvYmFsIGRlIHRvZGFzIGFzIGFsdGVyYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIGFkaWNpb25hciB1bWEgb3JkZW0gZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIGFsdGVyYXIgbyBhdGVuZGVudGUgZGUgb3JkZW0gZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgY3JpYXIgdW0gbW9kZWxvIGRlIHVtYSBhbHRlcmHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSBjcmlhciB1bSBtb2RlbG8gZGUgdW1hIG11ZGFuw6dhXCcgQ0NNLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIGNyaWFyIHVtIG1vZGVsbyBkZSB1bWEgb3JkZW0gZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnUHJpdmlsw6lnaW9zIHJlcXVlcmlkb3MgcGFyYSBjcmlhciBtdWRhbsOnYXMgYSBwYXJ0aXIgZGUgbW9kZWxvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgY3JpYXIgbXVkYW7Dp2FzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSBjcmlhciB1bSBtb2RlbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSBjcmlhciB1bWEgb3JkZW0gZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGNoYW5nZXMuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIGV4Y2x1aXIgbXVkYW7Dp2FzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgZWRpdGFyIHVtIG1vZGVsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSBlZGl0YXIgdW1hIG9yZGVtIGRlIHNlcnZpw6dvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgZWRpdGFyIHVtYSBtdWRhbsOnYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIGVkaXRhciB1bWEgY29uZGnDp8OjbyBkZSBtdWRhbsOnYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnUHJpdmlsw6lnaW9zIHJlcXVlcmlkb3MgcGFyYSBlZGl0YXIgbyBjb250ZcO6ZG8gZGUgdW0gbW9kZWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgZWRpdGFyIHBlc3NvYXMgZW52b2x2aWRhcyBuYSBtdWRhbsOnYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgbW92ZXIgYXMgbXVkYW7Dp2FzIG5vIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSBpbXByaW1pciB1bWEgbXVkYW7Dp2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgcmVkZWZpbmlyIG11ZGFuw6dhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSB2aXN1YWxpemFyIHVtYSBvcmRlbSBkZSBzZXJ2acOnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGNoYW5nZXMuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIHZpc3VhbGl6YXIgbXVkYW7Dp2FzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSB2aXN1YWxpemFyIGEgbGlzdGEgZGUgbXVkYW7Dp2FzLCBvbmRlIG8gdXN1w6FyaW8gw6kgbWVtYnJvIGRvIENDTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgdmlzdWFsaXphciBhIGxpc3RhIGRlIG11ZGFuw6dhcywgb25kZSBvIHVzdcOhcmlvIMOpIG8gZ2VyZW50ZSBkYSBtdWRhbsOnYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgdmlzdWFsaXphciBhIHZpc8OjbyBnbG9iYWwgc29icmUgdG9kb3Mgb3MgbW9kZWxvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIHZpc3VhbGl6YXIgYXMgY29uZGnDp8O1ZXMgZGUgbXVkYW7Dp2FzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIHZpc3VhbGl6YXIgbyBoaXN0w7NyaWNvIGRlIHVtYSBtdWRhbsOnYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSB2aXN1YWxpemFyIG8gaGlzdMOzcmljbyBkZSB1bWEgb3JkZW0gZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSB2aXN1YWxpemFyIG8gaGlzdMOzcmljbyBhbXBsaWFkbyBkZSB1bWEgbXVkYW7Dp2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIHZpc3VhbGl6YXIgbyBoaXN0w7NyaWNvIGFtcGxpYWRvIGRlIHVtYSBvcmRlbSBkZSBzZXJ2acOnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgdmlzdWFsaXphciBhIGxpc3RhIGRhIEFnZW5kYSBNdWRhbsOnYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIHZpc3VhbGl6YXIgYSBsaXN0YSBkYSBEUFMgZW0gbXVkYW7Dp2FzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLid9ID0KICAgICAgICAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIHZpc3VhbGl6YXIgYSBsaXN0YSBkZSBtdWRhbsOnYXMgY29tIHVtIHByw7N4aW1vIFJQSSAoUG9zdGFyIFJldmlzw6NvIGRhIEltcGxlbWVudGHDp8OjbykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gY2hhbmdlcy4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgdmlzdWFsaXphciBhIGxpc3RhIGRlIG11ZGFuw6dhcyBwcsOzcHJpYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgdmlzdWFsaXphciBhIGxpc3RhIGRlIG9yZGVtIGRlIHNlcnZpw6dvIHByw7NwcmlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHdyaXRlIGEgcmVwb3J0IGZvciB0aGUgd29ya29yZGVyLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSBlc2NyZXZlciB1bSByZWxhdMOzcmlvIHBhcmEgYSBvcmRlbSBkZSBzZXJ2acOnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJ1RlbGEgQXDDs3MgQ3JpYXIgT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICdQcm9jdXJhciBNdWRhbsOnYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICdTZWxlY2lvbmEgbyBtw7NkdWxvIGdlcmFkb3IgZG8gbsO6bWVybyBkYSBtdWRhbsOnYS4gIkF1dG9JbmNyZW1lbnRvIiBpbmNyZW1lbnRhIG8gbsO6bWVybyBkYSBtdWRhbsOnYTogU3lzdGVtSUQgZSBjb250YWRvciBzw6NvIHVzYWRvcyBubyBmb3JtYXRvIFN5c3RlbUlELkNvbnRhZG9yIChleC4gMTAwMTE4LCAxMDAxMTkpLiBBbyBlc2NvbGhlciAiRGF0YSIsIG9zIG7Dum1lcm9zIGRhcyBtdWRhbsOnYXMgc2Vyw6NvIGdlcmFkb3MgcGVsYSBqdW7Dp8OjbyBkYSBkYXRhIGF0dWFsIGNvbSBvIENvbnRhZG9yOiBvIGZvcm1hdG8gw6kgQW5vLk3DqnMuRGlhLkNvbnRhZG9yIChleC4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMikuIENvbSAiRGF0ZUNoZWNrc3VtIiwgbyBjb250YWRvciBzZXLDoSBhbmV4YWRvIGNvbW8gc29tYSBkZSB2ZXJpZmljYcOnw6NvIHBhcmEgYSBzZXF1w6puY2lhIGRlIGRhdGEgbWFpcyBTeXN0ZW1JRC4gQSBzb21hIGRlIHZlcmlmaWNhw6fDo28gdmFpIHNlciByb2RhZGEgbnVtYSBiYXNlIGRpw6FyaWEuIE8gZm9ybWF0byDDqSBBbm8uTcOqcy5EaWEuU3lzdGVtSUQuQ29udGFkb3IuQ2hlY2tTdW0gKGV4LiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJ0NvbmZpZ3VyYSBvIHRhbWFuaG8gbcOtbmltbyBkbyBjb250YWRvciBkZSBtdWRhbsOnYSAoc2UgIkF1dG9JbmNyZW1lbnRvIiBmb2kgc2VsZWNpb25hZG8gY29tbyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLiBPIHBhZHLDo28gw6kgNSwgbyBxdWUgc2lnbmlmaWNhIHF1ZSBvIGNvbnRhZG9yIGluaWNpYSBlbSAxMDAwMC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3IgY2hhbmdlcy4nfSA9ICdDb25maWd1cmEgYSBtw6FxdWluYSBkbyBlc3RhZG8gcGFyYSBhcyBtdWRhbsOnYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnQ29uZmlndXJhIGEgbcOhcXVpbmEgZG8gZXN0YWRvIHBhcmEgYXMgb3JkZW5zIGRlIHNlcnZpw6dvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1bSBsaW5rIG5vIG1lbnUgcXVlIHBlcm1pdGUgZGVmaW5pciB1bWEgbXVkYW7Dp2EgY29tbyB1bSBtb2RlbG8gbm8gYW1wbGlhciB2aXN1YWxpemHDp8OjbyBkZSBtdWRhbsOnYSwgbmEgaW50ZXJmYWNlIGRvIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBlZGl0aW5nIHRoZSByZXBvcnQgb2YgYSB3b3Jrb3JkZXIsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1bSBsaW5rIG5vIG1lbnUgcXVlIHBlcm1pdGUgbGlnYXIgdW1hIG11ZGFuw6dhIGNvbSBvdXRybyBvYmpldG8gbmEgbXVkYW7Dp2EgYW1wbGlhciB2aXN1YWxpemHDp8OjbyBkbyBhdGVuZGVudGUgZGUgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmEgdW0gbGluayBubyBtZW51IHF1ZSBwZXJtaXRlIG1vdmVyIG8gaW50ZXJ2YWxvIGRlIHRlbXBvIGRlIHVtYSBtdWRhbsOnYSBlbSBzdWEgb3BpbmnDo28sIGFtcGxpYXIgdmlzdWFsaXphw6fDo28gZGEgaW50ZXJmYWNlIGRvIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRha2luZyBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGNvbmRpdGlvbnMgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1bSBsaW5rIG5vIG1lbnUgcGFyYSBhY2Vzc2FyIGFzIGNvbmRpw6fDtWVzIGRlIHVtYSBtdWRhbsOnYSBhbXBsaWFyIHN1YSB2aXN1YWxpemHDp8OjbyBkbyBhdGVuZGVudGUgZGUgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmEgdW0gbGluayBubyBtZW51IHBhcmEgYWNlc3NhciBvIGhpc3TDs3JpY28gZGUgdW1hIG11ZGFuw6dhIGFtcGxpYXIgc3VhIHZpc3VhbGl6YcOnw6NvIGRvIGF0ZW5kZW50ZSBkZSBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmEgdW0gbGluayBubyBtZW51IHBhcmEgZXhjbHVpciBhIG11ZGFuw6dhIGVtIHN1YSB2aXPDo28gZGUgZGV0YWxoZXMgbmEgaW50ZXJmYWNlIGRlIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1bSBsaW5rIG5vIG1lbnUgcGFyYSBlZGl0YXIgdW1hIG11ZGFuw6dhIGFtcGxpYXIgc3VhIHZpc3VhbGl6YcOnw6NvIGRvIGF0ZW5kZW50ZSBkZSBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1bSBsaW5rIG5vIG1lbnUgcGFyYSB2b2x0YXIgYSBtdWRhbsOnYSBlIGFtcGxpYXIgc3VhIHZpc3VhbGl6YcOnw6NvIGRvIGF0ZW5kZW50ZSBkZSBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmEgdW0gbGluayBubyBtZW51IHBhcmEgaW1wcmltaXIgdW1hIG11ZGFuw6dhIGUgYW1wbGlhciBzdWEgdmlzdWFsaXphw6fDo28gZG8gYXRlbmRlbnRlIGRlIGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmEgdW0gbGluayBubyBtZW51IHBhcmEgcmVkZWZpbmlyIGEgbXVkYW7Dp2EgZSBzdWFzIG9yZGVucyBkZSBzZXJ2acOnbyBlbSBzdWEgdmlzw6NvIGRlIGRldGFsaGVzIG5hIGludGVyZmFjZSBkZSBhdGVuZGVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSBvIGhpc3TDs3JpY28gZGUgYWx0ZXJhw6fDtWVzIChvcmRlbmFkb3MgcmV2ZXJzbykgbmEgaW50ZXJmYWNlIGRvIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJ03DoXF1aW5hIGRlIEVzdGFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnQXJtYXplbmEgSURzIGRlIG11ZGFuw6dhIGUgb3JkZW5zIGRlIHNlcnZpw6dvIGUgc3VhcyBjb3JyZXNwb25kZW50ZXMgSURzIGRlIG1vZGVsbywgZW5xdWFudG8gdW0gdXN1w6FyaW8gZXN0w6EgZWRpdGFuZG8gbyBtb2RlbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnQXNzdW1pciBPcmRlbSBkZSBTZXJ2acOnbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICdBc3N1bWlyIE9yZGVtIGRlIFNlcnZpw6dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICdBc3N1bWlyIGEgb3JkZW0gZGUgc2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICdWaXPDo28gR2VyYWwgZGUgTW9kZWxvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAnVGlwbyBkZSBtb2RlbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnTW9kZWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnTyBpZGVudGlmaWNhZG9yIGRlIHVtYSBNdWRhbsOnYSwgcG9yIGV4ZW1wbG8sIE11ZGFuw6dhIyxNaW5oYSBtdWRhbsOnYSMuIE8gcGFkcsOjbyDDqSBNdWRhbsOnYSMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICdPIGlkZW50aWZpY2Fkb3IgZGUgdW1hIE9yZGVtIGRlIFNlcnZpw6dvLCBwb3IgZXhlbXBsbywgT3JkZW0gZGUgU2VydmnDp28jLE1pbmhhIE9yZGVtIGRlIFNlcnZpw6dvIy4gTyBwYWRyw6NvIMOpIGEgT3JkZW0gZGUgU2VydmnDp28jLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnRXN0ZSBtw7NkdWxvIEFDTCByZXN0cmluZ2UgbyB1c28gZG9zIHRpcG9zIGRlIGNoYW1hZG8gZGVmaW5pZG9zIG5hIG9ww6fDo28gc3lzY29uZmlnIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcgcGFyYSB1c3XDoXJpb3MgZG9zIGdydXBvcyBkZWZpbmlkb3MgZW0gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIENvbW8gZXN0YSBBQ0wgcG9kZSBjaG9jYXIgY29tIG91dHJhcyBBQ0xzIHRhbWLDqW0gcmVsYWNpb25hZGFzIGNvbSBvIHRpcG8gZG8gY2hhbWFkbywgZXN0ZSBwYXLDom1ldHJvIGRlIGNvbmZpZ3VyYcOnw6NvIGVzdMOhIGRlc2FiaWxpdGFkbyBwb3IgcGFkcsOjbyBlIGRldmUgc2VyIGF0aXZhZG8gYXBlbmFzIHNlIG5lY2Vzc8OhcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICdEZXNsb2NhciBIb3LDoXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnVGlwb3MgZGUgY2hhbWFkb3MsIG9uZGUgbm8gY2hhbWFkbyBhbXBsaWEgc3VhIHZpc3VhbGl6YcOnw6NvIGRlIHVtIGxpbmsgcGFyYSBhZGljaW9uYXIgdW1hIG11ZGFuw6dhIHNlcsOhIGV4aWJpZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnQnVzY2EgZGUgdXN1w6FyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZCAoZnJvbSB0ZW1wbGF0ZSkuJ30gPSAnQWRpY2lvbmFyIG9yZGVtIGRlIHNlcnZpw6dvIChkZSBtb2RlbG8pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJ0FkaWNpb25hciBPcmRlbSBkZSBTZXJ2acOnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJ0FnZW50ZSBkZSBPcmRlbSBkZSBUcmFiYWxoby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICdBcGFnYXIgT3JkZW0gZGUgU2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJ0VkaXRhciBPcmRlbSBkZSBTZXJ2acOnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICdIaXN0w7NyaWNvIGRhIE9yZGVtIGRlIFNlcnZpw6dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJ0hpc3TDs3JpY28gZGEgT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICdSZWxhdMOzcmlvIGRlIE9yZGVtIGRlIFNlcnZpw6dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJ3VtIHZleic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICdyZWd1bGFybWVudGUnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/pt_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cHRfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0NhdGVnb3JpYSDihpQgSW1wYWN0byDihpQgUHJpb3JpZGFkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnR2VzdMOjbyBkZSBQcmlvcmlkYWRlIGEgcGFydGlyIGRhIGNvbWJpbmHDp8OjbyBkYSBjYXRlZ29yaWEg4oaUIEltcGFjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICdBdHJpYnVpciBQcmlvcmlkYWRlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VNYW5hZ2VtZW50IE5vdGlmaWNhdGlvbiBNYW5hZ2VtZW50J30gPSAnR2VzdMOjbyBkZSBOb3RpZmljYcOnw7VlcyBkZSBnZXN0w6NvIGRlIEFsdGVyYcOnw6NvIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnQWRpY2lvbmFyIFJlZ3JhIGRlIE5vdGlmaWNhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnQSBub3RpZmljYcOnw6NvIHByZWNpc2EgZGUgdW0gbm9tZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmFtZSBpcyByZXF1aXJlZC4nfSA9ICdOb21lIMOpIG9icmlnYXTDs3Jpby4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBTdGF0ZSBNYWNoaW5lJ30gPSAnR2VyaXIgTcOhcXVpbmEgZGUgRXN0YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhIGNhdGFsb2cgY2xhc3MhJ30gPSAnU2VsZWNpb25lIHVtYSBjbGFzc2UgZGUgY2F0w6Fsb2dvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGFsb2cgY2xhc3MgaXMgcmVxdWlyZWQhJ30gPSAnQSBjbGFzc2UgZGUgY2F0w6Fsb2dvIMOpIG5lY2Vzc8OhcmlhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnQWRpY2lvbmFyIHVtYSB0cmFuc2nDp8OjbyBkZSBlc3RhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ0NsYXNzZSBkZSBDYXTDoWxvZ28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICdOb21lIGRvIE9iamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIHN0YXRlIHRyYW5zaXRpb25zIGZvcid9ID0gJ1Jldmlzw6NvIGRhIHRyYW5zacOnw6NvIGRlIGVzdGFkbyBwYXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdFeGNsdWlyIGVzdGEgdHJhbnNpw6fDo28gZGUgZXN0YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ0FkaWNpb25hciB1bWEgbm92YSB0cmFuc2nDp8OjbyBkZSBlc3RhZG8gcGFyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgc3RhdGUhJ30gPSAnUG9yIGZhdm9yIHNlbGVjaW9uZSB1bSBlc3RhZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJ1BvciBmYXZvciwgZXNjb2xoYSBvIHByw7N4aW1vIGVzdGFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnRWRpdGFyIHVtYSB0cmFuc2nDp8OjbyBkZSBlc3RhZG8gcGFyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnVm9jw6ogcXVlciBtZXNtbyBhcGFnYXIgZXN0YSB0cmFuc2nDp8OjbyBkZSBlc3RhZG8/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJ0FkaWNpb25hciBBbHRlcmHDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSd9ID0gJ0FsdGVyYcOnw6NvIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSnVzdGlmaWNhdGlvbid9ID0gJ0p1c3RpZmljYcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAnRW50cmFkYSBpbnbDoWxpZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnRGF0YSBTb2xpY2l0YWRhJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJ1NlbGVjaW9uZSBtb2RlbG8gZGUgQWx0ZXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAnVGlwbyBkZSBIb3LDoXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICdUaXBvIGRlIGhvcsOhcmlvIGludsOhbGlkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICdOb3ZvIGhvcsOhcmlvJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBDQUIgYXMgdGVtcGxhdGUnfSA9ICdHdWFyZGFyIENBQiBkYSBBbHRlcmHDp8OjbyBjb21vIG1vZGVsbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJ2lyIHBhcmEgbyBlY3LDoyAiUGVzc29hcyBFbnZvbHZpZGFzIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICdOb21lIGludsOhbGlkbyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbnMgYW5kIEFjdGlvbnMnfSA9ICdDb25kacOnw7VlcyBlIEHDp8O1ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENvbmRpdGlvbid9ID0gJ0FwYWdhciBDb25kacOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgY29uZGl0aW9uJ30gPSAnQWRpY2lvbmFyIG5vdmEgY29uZGnDp8Ojbyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbmRpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGEgdmFsaWQgbmFtZS4nfSA9ICdVbSBub21lIHbDoWxpZG8gw6kgbmVjZXNzw6FyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJ0NvbWJpbmHDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnUXVhbHF1ZXIgZXhwcmVzc8OjbyBsw7NnaWNhIChPVSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAnVG9kYXMgYXMgZXhwcmVzc8O1ZXMgbMOzZ2ljYXMgKEUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb25zJ30gPSAnRXhwcmVzc8O1ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0b3InfSA9ICdTZWxldG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZXJhdG9yJ30gPSAnT3BlcmFkb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICdFeGNsdWlyIEV4cHJlc3PDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAnTmVuaHVtYSBleHByZXNzw6NvIGzDs2dpY2EgZW5jb250cmFkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnQWRpY2lvbmFyIG5vdmEgZXhwcmVzc8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAnRXhjbHVpciBBw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICdOZW5odW1hIGHDp8OjbyBlbmNvbnRyYWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGFjdGlvbid9ID0gJ0FkaWNpb25hciBub3ZhIGHDp8Ojbyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjaGFuZ2U/J30gPSAnVm9jw6ogcXVlciByZWFsbWVudGUgZXhjbHVpciBlc3RhIG11ZGFuw6dhPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ0hpc3TDs3JpY28gZG8gY29udGXDumRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcid9ID0gJ09yZGVtIGRlIFNlcnZpw6dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICdIb3JhIGRlIGNyaWHDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICdNb3N0cmFyIGRldGFsaGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnTW9zdHJhciBPcmRlbSBkZSBTZXJ2acOnbyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJ01vZGlmaWNhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnQW50aWdvIHZhbG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJ05vdm8gdmFsb3InOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnUGVzc29hcyBFbnZvbHZpZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICdnZXN0b3IgZGEgQWx0ZXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJ1V0aWxpemFkb3IgaW52w6FsaWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICdDb25zdHJ1dG9yIGRhIEFsdGVyYcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBBZHZpc29yeSBCb2FyZCd9ID0gJ0NvbnNlbGhvIENvbnN1bHRpdm8gZGUgQWx0ZXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIFRlbXBsYXRlJ30gPSAnTW9kZWxvIGRlIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJ0FwbGljYXIgTW9kZWxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAnTm92byBtb2RlbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ0d1YXJkYXIgZXN0ZSBDQUIgY29tbyBtb2RlbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRvIENBQid9ID0gJ0FkaWNpb25hciBhbyBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnVXRpbGl6YWRvciBpbnbDoWxpZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICdDQUIgQXR1YWwnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdDb25maWd1cmHDp8O1ZXMgZGUgQ29udGV4dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlcyBwZXIgcGFnZSd9ID0gJ0FsdGVyYcOnw7VlcyBwb3IgcMOhZ2luYSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJ0NvbnN0cnV0b3IgZGEgQWx0ZXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICdHZXN0b3IgZGUgQWx0ZXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJ09yZGVtIGRlIFNlcnZpw6dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIFRpbWUnfSA9ICdIb3LDoXJpbyBzb2xpY2l0YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJ1ZvY8OqIHF1ZXIgcmVhbG1lbnRlIHJlZGVmaW5pciBlc3RhIG11ZGFuw6dhPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcoZXguIDEwKjUxNTUgb3UgMTA1NjU4KiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICdleC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnQ2F0ZWdvcmlhIGRhIEFsdGVyYcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnKGFudGVzL2RlcG9pcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnKGVudHJlKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICdHdWFyZGFyIEFsdGVyYcOnw6NvIGNvbW8gTW9kZWxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ1VtIG1vZGVsbyBwcmVjaXNhIGRlIHVtIG5vbWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJ08gbm9tZSBkbyBtb2RlbG8gw6kgbmVjZXNzw6FyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IFN0YXRlcyd9ID0gJ1Jlc3RhYmVsZWNlciBFc3RhZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJ0Rlc2xvY2FyIEhvcsOhcmlvcyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICdJbmZvcm1hw6fDo28gZGEgQWx0ZXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ0luaWNpYWRvcihlcykgZGEgQWx0ZXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCJ30gPSAnQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCd9ID0gJ8OabHRpbWEgYWx0ZXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnw5psdGltYSBhbHRlcmHDp8OjbyBwb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICdQYXJhIGFicmlyIGFzIGxpZ2HDp8O1ZXMgYWJhaXhvIHBvZGVyw6EgbmVjZXNzaXRhciBkZSBwcmVzc2lvbmFyIGEgdGVjbGEgQ1RSTCAob3UgQ01EKSBvdSBTaGlmdCAoZGVwZW5kZW5kbyBkbyBicm93c2VyIGUgZG8gc2lzdGVtYSBvcGVyYXRpdm8pIHF1YW5kbyBjbGljYXIgc29icmUgYSBsaWdhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICdEZXNjYXJyZWdhciBBbmV4byc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgd29ya29yZGVyIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcG9yYXJ5IGNoYW5nZSB3aWxsIGJlIGNyZWF0ZWQgd2hpY2ggY29udGFpbnMgdGhlIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICdJbnN0cnXDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJ1RpcG8gZGUgb3JkZW0gZGUgc2VydmnDp28gaW52w6FsaWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnTyB0ZW1wbyBkZSBpbsOtY2lvIHBsYW5lYWRvIGRldmUgc2VyIGFudGVyaW9yIGFvIGhvcsOhcmlvIGRlIGZpbSBwbGFuZWFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAnRm9ybWF0byBJbnbDoWxpZG8uJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJ1NlbGVjaW9uZSBtb2RlbG8gZGUgb3JkZW0gZGUgc2VydmnDp28nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJ0Rlc2VqYSBhcGFnYXIgZXN0YSBvcmRlbSBkZSBzZXJ2acOnbz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICdOw6NvIMOpIHBvc3PDrXZlbCBhcGFnYXIgZXN0YSBvcmRlbSBkZSBzZXJ2acOnby4gw4kgdXRpbGl6YWRhIHBlbG8gbWVub3MgbnVtYSBjb25kacOnw6NvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnRXN0YSBvcmRlbSBkZSBzZXJ2acOnbyBlc3TDoSBlbSB1dGlsaXphw6fDo28gbmEocykgY29uZGnDp8OjbyjDtWVzKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBmb2xsb3dpbmcgd29ya29yZGVycyBhY2NvcmRpbmdseSd9ID0gJ01vdmVyIGFzIHNlZ3VpbnRlcyBvcmRlbnMgZGUgYWNvcmRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJ1NlIG8gdMOpcm1pbm8gcGxhbmVqYWRvIGRlc3RhIG9yZGVtIGRlIHNlcnZpw6dvIGZvciBhbHRlcmFkbywgbyBob3LDoXJpbyBwbGFuZWphZG8gZGUgaW7DrWNpbyBkZSB0b2RhcyBhcyBzZWd1aW50ZXMgb3JkZW5zIHRhbWLDqW0gc2Vyw6NvIGFsdGVyYWRvcyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJ1JlbGF0w7NyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnTyB0ZW1wbyBkZSBpbsOtY2lvIHJlYWwgZGV2ZSBzZXIgYW50ZXJpb3IgYW8gdGVtcG8gZmluYWwgcmVhbCAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJ08gdGVtcG8gZGUgaW7DrWNpbyByZWFsIGRldmUgc2VyIGRlZmluaWRvLCBxdWFuZG8gbyB0ZW1wbyBkZSBmaW0gcmVhbCDDqSBjb25maWd1cmFkbyEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGFrZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBBZ2VudCd9ID0gJ2FnZW50ZSBhdHVhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICdEZXNlamEgYXNzdW1pciBlc3RhIG9yZGVtIGRlIHNlcnZpw6dvPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBXb3Jrb3JkZXIgYXMgVGVtcGxhdGUnfSA9ICdHdWFyZGFyIE9yZGVtIGRlIFNlcnZpw6dvIGNvbW8gTW9kZWxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJ0luZm9ybWHDp8OjbyBkYSBPcmRlbSBkZSBTZXJ2acOnbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCBjaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICclcyBlbSBmYWx0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgRXhwcmVzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBkb2VzIG5vdCBoYXZlIGFuIGFsbG93ZWQgY2hhbmdlIHN0YXRlIHRvIGJlIGRlbGV0ZWQhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICdBbHRlcmFyIEhpc3TDs3JpY28nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnT3JkZW0gZGUgU2VydmnDp28gSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICdOw7ptZXJvIGRhIE9yZGVtIGRlIFNlcnZpw6dvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclRpdGxlJ30gPSAnVMOtdHVsbyBkYSBPcmRlbSBkZSBTZXJ2acOnbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJ0VzdGFkbyBkYSBBbHRlcmHDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnRXNmb3LDp28gcGxhbmVhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZFRpbWUnfSA9ICdTb2xpY2l0YWRvIGVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRTdGFydFRpbWUnfSA9ICdJbsOtY2lvIHBsYW5lYWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnZmltIHBsYW5lYWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJ0luw61jaW8gUmVhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnZmltIFJlYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJ0FsdGVyYWRvIGVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU51bWJlcid9ID0gJ07Dum1lcm8gZGEgQWx0ZXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICdFc3RhZG8gZGEgT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJ1RpcG8gZGEgT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICdhZ2VudGUgZGEgT3JkZW0gZGUgU2VydmnDp28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJ1TDrXR1bG8gZGEgQWx0ZXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ09yZGVucyBkZSBTZXJ2acOnbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoIFJlc3VsdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSAlcyBvZiBhbGwgd29ya29yZGVycyBoYXMgdG8gYmUgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB0ZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCB3b3Jrb3JkZXIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSB0aGUgd29ya29yZGVyICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBmaW5kIENoYW5nZSBmb3IgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSBab29tJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uICVzIG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnTsOjbyBmb3JhbSBlbmNvbnRyYWRhcyBvcMOnw7VlcyBkZSBjb25maWd1cmHDp8OjbyBwYXJhIGEgdmlzdWFsaXphw6fDo28gIiVzIiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnT3MgbWV1cyBDQUJzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICdBcyBtaW5oYXMgYWx0ZXJhw6fDtWVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IFdvcmsgT3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgRGVsZXRlZCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENvbmRpdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIENvbmRpdGlvbnMgb2YgQ2hhbmdlIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQ29uZGl0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRXhwcmVzc2lvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBFeHByZXNzaW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChFeHByZXNzaW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSAlczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0lUU01Db25kaXRpb24vT2JqZWN0L0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FsbCd9ID0gJ3RvZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJ3F1YWxxdWVyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICdSZXF1ZXJpZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJ0Fwcm92YcOnw6NvIFBlbmRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAnUmVqZWl0YWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAnQXByb3ZhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICdFbSBjdXJzbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJ1JQSSBQZW5kZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAnU3VjZXNzbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICdGYWxob3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICdDYW5jZWxhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnUmV0cmF0YWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICdDcmlhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICdBY2VpdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICdQcm9udGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICdBcHJvdmHDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICdPcmRlbSBkZSBTZXJ2acOnbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnUGxhbm8gZGUgUmV0b3Jubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJ0RlY2lzw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJ1JQSSAoUmV2aXN0YSBQw7NzLUltcGxlbWVudGHDp8OjbyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnw6knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnbsOjbyDDqSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJ8OpIHZhemlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJ27Do28gZXN0w6EgdmF6aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnw6kgbWFpb3IgcXVlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJ8OpIG1lbm9yIHF1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICdhbnRlcyBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJ2RlcG9pcyBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJ2NvbnTDqW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnbsOjbyBjb250w6ltJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnaW5pY2lhIGNvbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICd0ZXJtaW5hIGNvbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICdjb25maWd1cmFyJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnT2snOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICdMaXN0YSBkb3MgYWdlbnRlcyBxdWUgdMOqbSBwZXJtaXNzw6NvIHBhcmEgdGVyIE9yZGVucyBkZSBTZXJ2acOnby5DaGF2ZSDDqSB1bSBub21lIGRlIGxvZ2luLk8gY29udGXDumRvIMOpIDAgb3UgMSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJ0xpc3RhIGRlIGVzdGFkb3MgZGUgT3JkZW0gZGUgU2VydmnDp28sIGVtIHF1ZSBhIGhvcmEgZGUgaW7DrWNpbyByZWFsIGRlIHVtYSBPcmRlbSBkZSBTZXJ2acOnbyBzZXLDoSBkZWZpbmlkYSBzZSBlc3RpdmVyIHZhemlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJ0FkaWNpb25hciBPcmRlbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJ0FkaWNpb25hciB1dGlsaXphbmRvIG1vZGVsbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICdHZXJpciBtYXRyaXogQ0lQLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICdHZXJpciBtw6FxdWluYSBkZSBlc3RhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhw6fDo28gZGEgaW50ZXJmYWNlIGRvIGFnZW50ZSBwYXJhIHZlciBvIG7Dum1lcm8gZGUgQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhw6fDo28gZGEgaW50ZXJmYWNlIGRvIGFnZW50ZSBwYXJhIHZlciBvIG7Dum1lcm8gZGUgYWx0ZXJhw6fDtWVzIGdlcmlkYXMgcGVsbyB1dGlsaXphZG9yLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSBub3RpZmljYcOnw6NvIGRhIGludGVyZmFjZSBkbyBhZ2VudGUgcGFyYSB2ZXIgbyBuw7ptZXJvIGRlIGFsdGVyYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0xpbWl0ZSBwYXJhIGEgdmlzdGEgZGUgQWx0ZXJhw6fDtWVzICJwZXF1ZW5vIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAnQWdlbmRhIGRhIGFsdGVyYcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICdBbHRlcmFyIHBlc3F1aXNhIGFwb2lhZGEgZG8gcm91dGVyIGRvIGFnZW50ZSBkZSBpbnRlcmZhY2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJ0VkaXRhciBDb25kacOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnQ29uZmlndXJhIGEgZnJlccO8w6puY2lhIGNvbSBxdWUgYXMgbm90aWZpY2HDp8O1ZXMgc8OjbyBlbnZpYWRhcyBxdWFuZG8gbyB0ZW1wbyBwcmV2aXN0byBkZSBpbsOtY2lvIG91IG91dHJvcyB2YWxvcmVzIGRlIHRlbXBvIGZvciBhdGluZ2lkby91bHRycGFzc2Fkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJ0NyaWFyIEFsdGVyYcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJ1RpcG8gcG9yIG9taXNzw6NvIGRlIE9yZGVtIGRlIFNlcnZpw6dvLkVzdGEgZW50cmFkYSBkZXZlIGV4aXN0aXIgbmEgY2xhc3NlIGNhdMOhbG9nbyBnZXJhbCBcJ0lUU006Okdlc3TDo28gZGEgQWx0ZXJhw6fDo286Ok9yZGVtIGRlIFNlcnZpw6dvOjpUaXBvXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICdEZWZpbmlyIEFjw6fDtWVzIG9uZGUgdW0gYm90w6NvIGRlIGNvbmZpZ3VyYcOnw7VlcyBlc3TDoSBkaXNwb27DrXZlbCBuYSB3aWRnZXQgdGhlIG9iamVjdG9zIGxpZ2Fkb3MgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gRXN0YXMgQWPDp8O1ZXMgZGV2ZW0gZXN0YXIgcmVnaXN0YWRhcyBub3Mgc2VndWludGVzIGZpY2hlaXJvcyBKUyBlIENTUzogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICdEZWZpbmnDp8OjbyBkb3MgYXZpc29zIHBhcmEgY2FkYSBlc3RhZG8gZGUgT3JkZW0gZGUgU2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnRGVmaW5lIHVtYSB2aXN0YSBnbG9iYWwgZG8gbcOzZHVsbyBwYXJhIG1vc3RyYXIgdW1hIHBlcXVlbmEgdmlzdGEgZGEgbGlzdGEgZGUgQWx0ZXJhw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJ0RlZmluZSB1bWEgdmlzdGEgZ2xvYmFsIGRvIG3Ds2R1bG8gcGFyYSBtb3N0cmFyIHVtYSBwZXF1ZW5hIHZpc3TDo28gZGEgbGlzdGEgZGUgbW9kZWxvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICdEZWZpbmUgc2Ugc2Vyw6EgcG9zc8OtdmVsIGltcHJpbWlyIG8gdGVtcG8gY29udGFiaWxpemFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICdEZWZpbmUgc2Ugc2Vyw6EgcG9zc8OtdmVsIGltcHJpbWlyIG8gZXNmb3LDp28gcGxhbmVhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSBjaGFuZ2UgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIGNoYW5nZSBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJ0RlZmluZSBzZSBvIHRlbXBvIGNvbnRhYmlsaXphZG8gZGV2ZSBzZXIgbW9zdHJhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnRGVmaW5lIHNlIG8gcmVhbCBpbsOtY2lvIGUgZGUgZmltIGRldmUgc2VyIGRlZmluaWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHN0YXRlIGNhbiBiZSBzZXQgaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHBsYW5uZWQgZWZmb3J0IHNob3VsZCBiZSBzaG93bi4nfSA9ICdEZWZpbmUgc2UgbyBlc2ZvcsOnbyBwbGFuZWFkbyBkZXZlIHNlciBtb3N0cmFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJ0RlZmluZSBzZSBhIGRhdGEgc29saWNpdGFkYSBkZXZlcsOhIHNlciBpbXByZXNzYSBwb3IgY2xpZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2VhcmNoZWQgYnkgY3VzdG9tZXIuJ30gPQogICAgICAgICdEZWZpbmUgc2UgYSBkYXRhIHNvbGljaXRhZGEgZGV2ZXLDoSBzZXIgcGVzcXVpc2FkbyBwZWxvIGNsaWVudGUuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2V0IGJ5IGN1c3RvbWVyLid9ID0gJ0RlZmluZSBzZSBhIGRhdGEgc29saWNpdGFkYSBkZXZlcsOhIHNlciBkZWZpbmlkbyBwZWxvIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICdEZWZpbmUgc2UgYSBkYXRhIHNvbGljaXRhZGEgZGV2ZSBzZXIgaW5kaWNhZGEgcGVsbyBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLid9ID0gJ0RlZmluZSBzZSBvIGVzdGFkbyBkYSBPcmRlbSBkZSBTZXJ2acOnbyBkZXZlIHNlciBtb3N0cmFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICdEZWZpbmUgc2UgbyB0w610dWxvIGRhIE9yZGVtIGRlIFNlcnZpw6dvIGRldmUgc2VyIG1vc3RyYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnRGVmaW5lIG1vc3RyYWRvIGF0cmlidXRvcyBncsOhZmljby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGF0IG9ubHkgY2hhbmdlcyBjb250YWluaW5nIFdvcmtvcmRlcnMgbGlua2VkIHdpdGggc2VydmljZXMsIHdoaWNoIHRoZSBjdXN0b21lciB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB3aWxsIGJlIHNob3duLiBBbnkgb3RoZXIgY2hhbmdlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICdEZWZpbmUgcXVlIHNvbWVudGUgYXMgYWx0ZXJhw6fDtWVzIGNvbnRlbmRvIE9yZGVucyBkZSBTZXJ2acOnbyByZWxhY2lvbmFkYXMgY29tIG9zIHNlcnZpw6dvcywgcXVlIG8gdXRpbGl6YWRvciBjbGllbnRlIHRlbSBwZXJtaXNzw6NvIHBhcmEgdXRpbGl6YXIgc2Vyw6NvIG1vc3RyYWRhcy4gUXVhaXNxdWVyIG91dHJhcyBhbHRlcmHDp8O1ZXMgbsOjbyBzZXLDo28gZXhpYmlkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgZXN0YWRvcyBkZSBhbHRlcmHDp8OjbyBxdWUgc2Vyw6NvIHV0aWxpemFkbyBjb21vIGZpbHRyb3MgbmEgdmlzdGEgZ2xvYmFsIGRlIGFsdGVyYcOnw6NvIFBTQS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgZXN0YWRvcyBkZSBhbHRlcmHDp8OjbyBxdWUgc2Vyw6NvIHV0aWxpemFkb3MgY29tbyBmaWx0cm9zIG5hIHZpc3RhIGdsb2JhbCBkZSBhZ2VuZGFtZW50byBkZSBhbHRlcmHDp8OjbyAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgZXN0YWRvcyBkZSBhbHRlcmHDp8OjbyBxdWUgc2Vyw6NvIHV0aWxpemFkb3MgY29tbyBmaWx0cm9zIG5hIG1pbmhhIHZpc3RhIGdsb2JhbCBDQUIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIG9zIGVzdGFkb3MgZGUgYWx0ZXJhw6fDo28gcXVlIHNlcsOjbyB1dGlsaXphZG9zIGNvbW8gZmlsdHJvcyBuYSBtaW5oYSB2aXN0YSBnbG9iYWwgZGUgQWx0ZXJhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgZXN0YWRvcyBkZSBhbHRlcmHDp8OjbyBxdWUgc2Vyw6NvIHV0aWxpemFkb3MgY29tbyBmaWx0cm9zIG5hIHZpc3RhIGdsb2JhbCBkbyBnZXN0b3IgZGUgYWx0ZXJhw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBlc3RhZG9zIGFsdGVyYcOnw6NvIHF1ZSBzZXLDo28gdXRpbGl6YWRvcyBjb21vIGZpbHRyb3MgbmEgdmlzdGEgZ2xvYmFsIGRlIGFsdGVyYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgZXN0YWRvcyBkZSBhbHRlcmHDp8OjbyBxdWUgc2Vyw6NvIHV0aWxpemFkb3MgY29tbyBmaWx0cm9zIG5hIHZpc3RhIGdsb2JhbCBkbyBjbGllbnRlIGRlIGFnZW5kYW1lbnRvIGRlIGFsdGVyYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBjcml0w6lyaW9zIGRlIGNsYXNzaWZpY2HDp8OjbyBwb3Igb21pc3PDo28gbmEgYWx0ZXJhw6fDo28gZGUgdmlzdGEgZ2xvYmFsIGRhIFBTQS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBjcml0w6lyaW9zIGRlIGNsYXNzaWZpY2HDp8OjbyBwb3Igb21pc3PDo28gbmEgdmlzdGEgZ2xvYmFsIGRhIGdlc3TDo28gZGUgYWx0ZXJhw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICdEZWZpbmUgb3MgY3JpdMOpcmlvcyBkZSBjbGFzc2lmaWNhw6fDo28gcG9yIG9taXNzw6NvIG5hIHZpc3RhIGdsb2JhbCBkZSBhbHRlcmHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgY3JpdMOpcmlvcyBkZSBjbGFzc2lmaWNhw6fDo28gcG9yIG9taXNzw6NvIG5hIHZpc3RhIGdsb2JhbCBkZSBwcm9ncmFtYcOnw6NvIGRlIGFsdGVyYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBjcml0w6lyaW9zIGRlIGNsYXNzaWZpY2HDp8OjbyBwb3Igb21pc3PDo28gbmEgdmlzdGEgZ2xvYmFsIGRlIEFsdGVyYcOnw7VlcyBkbyAiTWV1IENBQiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIG9zIGNyaXTDqXJpb3MgZGUgY2xhc3NpZmljYcOnw6NvIHBvciBvbWlzc8OjbyBuYSB2aXN0YSBnbG9iYWwgZGUgQWx0ZXJhw6fDtWVzIGRhICJNaW5oYSBBbHRlcmHDp8OjbyIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIG9zIGNyaXTDqXJpb3MgZGUgY2xhc3NpZmljYcOnw6NvIHBvciBvbWlzc8OjbyBuYSB2aXN0YSBnbG9iYWwgZGUgYWx0ZXJhw6fDtWVzIGRhICJNaW5oYSBPcmRlbSBkZSBTZXJ2acOnbyIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIG9zIGNyaXTDqXJpb3MgZGUgY2xhc3NpZmljYcOnw6NvIHBvciBvbWlzc8OjbyBuYSB2aXN0YSBnbG9iYWwgZGUgQWx0ZXJhw6fDtWVzIFBJUi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgY3JpdMOpcmlvcyBkZSBjbGFzc2lmaWNhw6fDo28gcG9yIG9taXNzw6NvIG5hIHZpc3RhIGdsb2JhbCBwYXJhIG9zIGNsaWVudGVzIHByb2dyYW1hcmVtIGEgQWx0ZXJhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgY3JpdMOpcmlvcyBkZSBjbGFzc2lmaWNhw6fDo28gcG9yIG9taXNzw6NvIG5hIHZpc3RhIGdsb2JhbCBkbyBtb2RlbG8gZGUgQWx0ZXJhw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJ0RlZmluZSBhIG9yZGVtIGRlIGNsYXNzaWZpY2HDp8OjbyBwb3Igb21pc3PDo28gbmEgdmlzdGEgZ2xvYmFsIGRlICJNZXUgQ0FCIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnRGVmaW5lIGEgb3JkZW0gZGUgY2xhc3NpZmljYcOnw6NvIHBvciBvbWlzc8OjbyBuYSB2aXN0YSBnbG9iYWwgZGUgIk1pbmhhIEFsdGVyYcOnw6NvIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgYSBvcmRlbSBkZSBjbGFzc2lmaWNhw6fDo28gcG9yIG9taXNzw6NvIG5hIHZpc3RhIGdsb2JhbCBkZSAiTWluaGEgT3JkZW0gZGUgU2VydmnDp28iLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICdEZWZpbmUgYSBvcmRlbSBkZSBjbGFzc2lmaWNhw6fDo28gcG9yIG9taXNzw6NvIG5hIHZpc3RhIGdsb2JhbCBkZSBQSVIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICdEZWZpbmUgYSBvcmRlbSBkZSBjbGFzc2lmaWNhw6fDo28gcG9yIG9taXNzw6NvIG5hIHZpc3RhIGdsb2JhbCBkZSBBbHRlcmHDp8OjbyBQU0EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgYSBvcmRlbSBkZSBjbGFzc2lmaWNhw6fDo28gcG9yIG9taXNzw6NvIG5hIHZpc3RhIGdsb2JhbCBkYSBnZXN0w6NvIGRlIEFsdGVyYcOnw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICdEZWZpbmUgYSBvcmRlbSBkZSBjbGFzc2lmaWNhw6fDo28gcG9yIG9taXNzw6NvIG5hIHZpc3RhIGdsb2JhbCBkZSBBbHRlcmHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgYSBvcmRlbSBkZSBjbGFzc2lmaWNhw6fDo28gcG9yIG9taXNzw6NvIG5hIHZpc3RhIGdsb2JhbCBkZSBwcm9ncmFtYXIgYSBBbHRlcmHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgYSBvcmRlbSBkZSBjbGFzc2lmaWNhw6fDo28gcG9yIG9taXNzw6NvIG5hIHZpc3RhIGdsb2JhbCBkbyBjbGllbnRlIHByb2dyYW1hciBhIEFsdGVyYcOnw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJ0RlZmluZSBhIG9yZGVtIGRlIGNsYXNzaWZpY2HDp8OjbyBwb3Igb21pc3PDo28gbmEgdmlzdGEgZ2xvYmFsIGRlIG1vZGVsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJ0RlZmluZSBvIHZhbG9yIHBvciBvbWlzc8OjbyBwYXJhIGEgY2F0ZWdvcmlhIGRlIHVtYSBhbHRlcmHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICdEZWZpbmUgbyB2YWxvciBwb3Igb21pc3PDo28gcGFyYSBvIEltcGFjdG8gZGUgdW1hIGFsdGVyYcOnw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJ0RlZmluZSBvIHBlcsOtb2RvIChlbSBhbm9zKSwgZW0gcXVlIG9zIHRlbXBvcyBkZSBpbsOtY2lvIGUgZmltIHBvZGVtIHNlciBzZWxlY2lvbmFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGF0dHJpYnV0ZXMgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIHRvb2x0aXAgb2YgdGhlIHdvcmtvcmRlciBncmFwaCBpbiB0aGUgY2hhbmdlIHpvb20uIFRvIHNob3cgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGluIHRoZSB0b29sdGlwLCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGxpa2UgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZSBhcyBjb2x1bmFzIHZpc3VhbGl6YWRhcyBuYSB2aXN0YSBnZXJhbCBkYSBQU0EuIEVzdGEgb3DDp8OjbyBuw6NvIHRlbSBlZmVpdG8gc29icmUgYSBwb3Npw6fDo28gZGEgY29sdW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgYXMgY29sdW5hcyB2aXN1YWxpemFkYXMgbmEgdmlzdGEgZ2VyYWwgZGEgQWdlbmRhLiBFc3RhIG9ww6fDo28gbsOjbyB0ZW0gZWZlaXRvIHNvYnJlIGEgcG9zacOnw6NvIGRhIGNvbHVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgYXMgY29sdW5hcyB2aXN1YWxpemFkYXMgbmEgdmlzdGEgZ2VyYWwgZG8gIk1ldSBDQUIiLiBFc3RhIG9ww6fDo28gbsOjbyB0ZW0gZWZlaXRvIHNvYnJlIGEgcG9zacOnw6NvIGRhIGNvbHVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGFzIGNvbHVuYXMgdmlzdWFsaXphZGFzIG5hIHZpc3RhIGdlcmFsIGRhcyBNaW5oYXMgQWx0ZXJhw6fDtWVzLiBFc3RhIG9ww6fDo28gbsOjbyB0ZW0gZWZlaXRvIHNvYnJlIGEgcG9zacOnw6NvIGRhIGNvbHVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGFzIGNvbHVuYXMgdmlzdWFsaXphZGFzIG5hIHZpc3RhIGdlcmFsIGRhcyBNaW5oYXMgT3JkZW5zIGRlIFNlcnZpw6dvLiBFc3RhIG9ww6fDo28gbsOjbyB0ZW0gZWZlaXRvIHNvYnJlIGEgcG9zacOnw6NvIGRhIGNvbHVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGFzIGNvbHVuYXMgdmlzdWFsaXphZGFzIG5hIHZpc3RhIGdlcmFsIGRhIFBJUi4gRXN0YSBvcMOnw6NvIG7Do28gdGVtIGVmZWl0byBzb2JyZSBhIHBvc2nDp8OjbyBkYSBjb2x1bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGFzIGNvbHVuYXMgdmlzdWFsaXphZGFzIG5hIHZpc3RhIGdlcmFsIGRvIGdlc3RvciBkZSBBbHRlcmHDp8Ojby4gRXN0YSBvcMOnw6NvIG7Do28gdGVtIGVmZWl0byBzb2JyZSBhIHBvc2nDp8OjbyBkYSBjb2x1bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZSBhcyBjb2x1bmFzIHZpc3VhbGl6YWRhcyBuYSB2aXN0YSBnZXJhbCBkYSBBbHRlcmHDp8Ojby4gRXN0YSBvcMOnw6NvIG7Do28gdGVtIGVmZWl0byBzb2JyZSBhIHBvc2nDp8OjbyBkYSBjb2x1bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgYXMgY29sdW5hcyB2aXN1YWxpemFkYXMgbmEgcGVzcXVpc2EgZGEgQWx0ZXJhw6fDo28uIEVzdGEgb3DDp8OjbyBuw6NvIHRlbSBlZmVpdG8gc29icmUgYSBwb3Npw6fDo28gZGEgY29sdW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgYXMgY29sdW5hcyB2aXN1YWxpemFkYXMgbmEgdmlzdGEgZ2VyYWwgZGUgQWdlbmRhciBhIEFsdGVyYcOnw6NvLiBFc3RhIG9ww6fDo28gbsOjbyB0ZW0gZWZlaXRvIHNvYnJlIGEgcG9zacOnw6NvIGRhIGNvbHVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgYXMgY29sdW5hcyB2aXN1YWxpemFkYXMgbmEgdmlzdGEgZ2VyYWwgZG8gbW9kZWxvLiBFc3RhIG9ww6fDo28gbsOjbyB0ZW0gZWZlaXRvIHNvYnJlIGEgcG9zacOnw6NvIGRhIGNvbHVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgdGlwb3MgZGUgbW9kZWxvIHF1ZSBzZXLDo28gdXNhZG9zIGNvbW8gZmlsdHJvcyBuYSB2aXN0YSBnbG9iYWwgZGUgbW9kZWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBlc3RhZG9zIGRlIG9yZGVtIGRlIHNlcnZpw6dvIHF1ZSBzZXLDo28gdXNhZG9zIGNvbW8gZmlsdHJvcyBuYSB2aXN0YSBnbG9iYWwgZGFzIE1pbmhhcyBPcmRlbnMgZGUgU2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5lIG9zIGVzdGFkb3MgZGUgb3JkZW0gZGUgc2VydmnDp28gcXVlIHNlcsOjbyB1c2Fkb3MgY29tbyBmaWx0cm9zIG5hIHZpc3RhIGdsb2JhbCBkYSBQSVIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmUgb3MgdGlwb3MgZGUgb3JkZW0gZGUgc2VydmnDp28gcXVlIHNlcsOjbyB1c2Fkb3MgY29tbyBmaWx0cm9zIHBhcmEgbW9zdHJhciBuYSB2aXN0YSBnbG9iYWwgZGEgUElSLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICdEZWZpbmUgc2UgYXMgbm90aWZpY2HDp8O1ZXMgZGV2ZW0gc2VyIGVudmlhZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnRGVmaW5lIHNlIHVtIGFnZW50ZSBwb2RlIHRyb2NhciBvIGVpeG8gWCBkZSB1bWEgZXN0YXTDrXN0aWNhIGdlcmlkYSBwb3Igc2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJ0RlZmluZSBzZSBvIG3Ds2R1bG8gZGUgZXN0YXTDrXN0aWNhcyBjb211bnMgcG9kZSBnZXJhciBlc3RhdMOtc3RpY2FzIHNvYnJlIGFzIEFsdGVyYcOnw7VlcyBmZWl0YXMgcGFyYSBhcyBjbGFzc2VzIGRlIGl0ZW0gZGUgY29uZmlndXJhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICdEZWZpbmUgc2UgbyBtw7NkdWxvIGRlIGVzdGF0w61zdGljYXMgY29tdW5zIHBvZGUgZ2VyYXIgZXN0YXTDrXN0aWNhcyBzb2JyZSBhcyBBbHRlcmHDp8O1ZXMgcmVmZXJlbnRlcyDDoHMgYXR1YWxpemHDp8O1ZXMgQWx0ZXJhw6fDo28gZGUgZXN0YWRvIGRlbnRybyBkZSB1bSBwZXLDrW9kbyBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nfSA9CiAgICAgICAgJ0RlZmluZSBzZSBvIG3Ds2R1bG8gZGUgZXN0YXTDrXN0aWNhcyBjb211bnMgcG9kZSBnZXJhciBlc3RhdMOtc3RpY2FzIHNvYnJlIGFzIEFsdGVyYcOnw7VlcyBhIHJlc3BlaXRvIGRhIHJlbGHDp8OjbyBlbnRyZSBhcyBBbHRlcmHDp8O1ZXMgZSBvcyB0aWNrZXRzIGRlIGluY2lkZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJ0RlZmluZSBzZSBvIG3Ds2R1bG8gZGUgZXN0YXTDrXN0aWNhcyBjb211bnMgcG9kZSBnZXJhciBlc3RhdMOtc3RpY2FzIHNvYnJlIGFzIEFsdGVyYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnRGVmaW5lIHNlIG8gbcOzZHVsbyBkZSBlc3RhdMOtc3RpY2FzIGNvbXVucyBwb2RlIGdlcmFyIGVzdGF0w61zdGljYXMgc29icmUgbyBuw7ptZXJvIGRlIHRpY2tldHMgUkZDIGEgdW0gc29saWNpdGFudGUgY3JpYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICdBbHRlcmHDp8O1ZXMgSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJ03Ds2R1bG8gZGUgZXZlbnRvIElUU00gcXVlIGxpbXBhIGNvbmRpw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgZXZlbnRvIElUU00gcXVlIGNvaW5jaWRlIGNvbSBhcyBjb25kacOnw7VlcyBlIGV4ZWN1dGEgYXMgYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJ03Ds2R1bG8gZGUgZXZlbnRvcyBJVFNNIHF1ZSBlbnZpYSBub3RpZmljYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnTcOzZHVsbyBkZSBldmVudG8gSVRTTSBxdWUgYXR1YWxpemEgbyBoaXN0w7NyaWNvIGRlIEFsdGVyYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnTcOzZHVsbyBkZSBldmVudG8gSVRTTSBwYXJhIHJlY2FsY3VsYXIgb3MgbsO6bWVyb3MgZGUgb3JkZW0gZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgZXZlbnRvIElUU00gcGFyYSBkZWZpbmlyIG8gdGVtcG8gaW7DrWNpbyBlIGRlIGZpbSBkZSBvcmRlbnMgZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICdBbHRlcmHDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnT3JkZW0gZGUgU2VydmnDp28gSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnTcOzZHVsbyBwYXJhIHZlcmlmaWNhciBvcyBtZW1icm9zIGRvIENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICdNw7NkdWxvIHBhcmEgdmVyaWZpY2FyIG8gYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBidWlsZGVyLid9ID0gJ03Ds2R1bG8gcGFyYSB2ZXJpZmljYXIgbyBjb25zdHJ1dG9yIGRhIEFsdGVyYcOnw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0gJ03Ds2R1bG8gcGFyYSB2ZXJpZmljYXIgbyBnZXN0b3IgZGUgQWx0ZXJhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJ03Ds2R1bG8gcGFyYSB2ZXJpZmljYXIgbyBhZ2VudGUgZGEgb3JkZW0gZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnTcOzZHVsbyBwYXJhIHZlcmlmaWNhciBzZSBuw6NvIGV4aXN0ZSBhZ2VudGUgZGUgb3JkZW0gZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJ03Ds2R1bG8gcGFyYSB2ZXJpZmljYXIgc2UgbyBhZ2VudGUgcGVydGVuY2Ugw6AgbGlzdGEgY29uZmlndXJhZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBzaG93IGEgbGluayB0byBjcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4gVGhlIHRpY2tldCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIG5ldyBjaGFuZ2UuJ30gPQogICAgICAgICdNw7NkdWxvIHBhcmEgbW9zdHJhciB1bSBsaW5rIHBhcmEgY3JpYXIgdW1hIEFsdGVyYcOnw6NvIGEgcGFydGlyIGRlc3RlIHRpY2tldC4gTyB0aWNrZXQgc2Vyw6EgYXV0b21hdGljYW1lbnRlIGxpZ2FkbyBjb20gYSBub3ZhIEFsdGVyYcOnw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnTm92YSAodXRpbGl6YW5kbyBtb2RlbG8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnU29tZW50ZSBVdGlsaXphZG9ycyBkb3MgZ3J1cG9zIHTDqm0gcGVybWlzc8OjbyBwYXJhIHV0aWxpemFyIG9zIHRpcG9zIGRlIHRpY2tldHMsIHRhbCBjb21vIGRlZmluaWRvIGVtICJBbHRlcmHDp8Ojb0lUU006VGlwb3N0aWNrZXRzQWRpY2lvbmFyTGlua0FsdGVyYcOnw6NvIiBzZSBvIHJlY3Vyc28gInRpY2tldDo6QUNMOjogTcOzZHVsbyMjIzIwMC10aWNrZXQ6OkFDTDo6TcOzZHVsbyIgZXN0aXZlciBhdGl2by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICdPdXRyYXMgZGVmaW5pw6fDtWVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSd9ID0gJ1JQSSAoUmV2aXPDo28gUMOzcy1JbXBsZW1lbnRhw6fDo28pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICdQYXLDom1ldHJvcyBwYXJhIGFzIHDDoWdpbmFzIChlbSBxdWUgYXMgQWx0ZXJhw6fDtWVzIHPDo28gbW9zdHJhZGFzKSBkYSB2aXN0YSBwZXF1ZW5hIGdsb2JhbCBkZSBBbHRlcmHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSB1bSBhZ2VudGUgdGVyIHVtYSBvcmRlbSBkZSBzZXJ2acOnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSBhY2VkZXIgw6AgdmlzdGEgZ2xvYmFsIGRlIHRvZGFzIGFzIGFsdGVyYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIGFkaWNpb25hciB1bWEgb3JkZW0gZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIGFsdGVyYXIgbyBhZ2VudGUgZGUgb3JkZW0gZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgY3JpYXIgdW0gbW9kZWxvIGRlIHVtYSBhbHRlcmHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSBjcmlhciB1bSBtb2RlbG8gZGUgdW1hIEFsdGVyYcOnw6NvXCcgQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIGNyaWFyIHVtIG1vZGVsbyBkZSB1bWEgb3JkZW0gZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIGNyaWFyIEFsdGVyYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgY3JpYXIgdW0gbW9kZWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgY3JpYXIgdW1hIG9yZGVtIGRlIHNlcnZpw6dvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSBleGNsdWlyIG11ZGFuw6dhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIGVkaXRhciB1bSBtb2RlbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgZWRpdGFyIHVtYSBvcmRlbSBkZSBzZXJ2acOnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIGVkaXRhciB1bWEgQWx0ZXJhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSBlZGl0YXIgdW1hIGNvbmRpw6fDo28gZGUgYWx0ZXJhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgZWRpdGFyIHBlc3NvYXMgZW52b2x2aWRhcyBuYSBhbHRlcmHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgbW92ZXIgYXMgYWx0ZXJhw6fDtWVzIG5vIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHByaW50IGEgY2hhbmdlLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSBpbXByaW1pciB1bWEgYWx0ZXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSByZWRlZmluaXIgbXVkYW7Dp2FzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIHZpc3VhbGl6YXIgdW1hIG9yZGVtIGRlIHNlcnZpw6dvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgdmlzdWFsaXphciBhbHRlcmHDp8O1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgYSBDQUIgbWVtYmVyLid9ID0KICAgICAgICAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIHZpc3VhbGl6YXIgYSBsaXN0YSBkZSBhbHRlcmHDp8O1ZXMsIG9uZGUgbyBVdGlsaXphZG9yIMOpIG1lbWJybyBkbyBDQUIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0KICAgICAgICAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIHZpc3VhbGl6YXIgYSBsaXN0YSBkZSBhbHRlcmHDp8O1ZXMsIG9uZGUgbyB1dGlsaXphZG9yIMOpIG8gZ2VzdG9yIGRhIGFsdGVyYcOnw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSB2aXN1YWxpemFyIGEgdmlzdGEgZ2xvYmFsIGRlIHRvZG9zIG9zIG1vZGVsb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSB2aXN1YWxpemFyIGFzIGNvbmRpw6fDtWVzIGRlIGFsdGVyYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSB2aXN1YWxpemFyIG8gaGlzdMOzcmljbyBkZSB1bWEgYWx0ZXJhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlci4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgdmlzdWFsaXphciBvIGhpc3TDs3JpY28gZGUgdW1hIG9yZGVtIGRlIHNlcnZpw6dvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgdmlzdWFsaXphciBvIGhpc3TDs3JpY28gYW1wbGlhZG8gZGUgdW1hIGFsdGVyYcOnw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSB2aXN1YWxpemFyIG8gaGlzdMOzcmljbyBhbXBsaWFkbyBkZSB1bWEgb3JkZW0gZGUgc2VydmnDp28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIHZpc3VhbGl6YXIgYSBsaXN0YSBkYSBhZ2VuZGEgZGUgYWx0ZXJhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSB2aXN1YWxpemFyIGEgbGlzdGEgZGUgQWx0ZXJhw6fDtWVzIFBTQS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJ1ByaXZpbMOpZ2lvcyBuZWNlc3PDoXJpb3MgcGFyYSB2aXN1YWxpemFyIGEgbGlzdGEgZGUgQWx0ZXJhw6fDtWVzIGNvbSB1bSBQSVIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gY2hhbmdlcy4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgdmlzdWFsaXphciBhIGxpc3RhIGRlIGFsdGVyYcOnw7VlcyBwcsOzcHJpYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICdQcml2aWzDqWdpb3MgbmVjZXNzw6FyaW9zIHBhcmEgdmlzdWFsaXphciBhIGxpc3RhIGRlIG9yZGVucyBkZSBzZXJ2acOnbyBwcsOzcHJpYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnUHJpdmlsw6lnaW9zIG5lY2Vzc8OhcmlvcyBwYXJhIGVzY3JldmVyIHVtIHJlbGF0w7NyaW8gcGFyYSBhIG9yZGVtIGRlIHNlcnZpw6dvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1J1biB0YXNrIHRvIGNoZWNrIGlmIHNwZWNpZmljIHRpbWVzIGhhdmUgYmVlbiByZWFjaGVkIGluIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2NyZWVuIGFmdGVyIGNyZWF0aW5nIGEgd29ya29yZGVyJ30gPSAnVGVsYSBBcMOzcyBDcmlhciBPcmRlbSBkZSBTZXJ2acOnbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJ1Byb2N1cmFyIGFsdGVyYcOnw7Vlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnQ29uZmlndXJhIGEgbcOhcXVpbmEgZGUgZXN0YWRvIHBhcmEgYXMgQWx0ZXJhw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJ0NvbmZpZ3VyYSBhIG3DoXF1aW5hIGRlIGVzdGFkbyBwYXJhIGFzIG9yZGVucyBkZSBzZXJ2acOnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBjaGVja2JveCBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGlmIHRoZSB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGFsc28gYmUgbW92ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgbW9kaWZpZWQgYW5kIHRoZSBwbGFubmVkIGVuZCB0aW1lIGhhcyBjaGFuZ2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBjaGFuZ2luZyB0aGUgd29ya29yZGVyIGFnZW50LCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmEgdW0gbGluayBubyBtZW51IHF1ZSBwZXJtaXRlIGRlZmluaXIgdW1hIEFsdGVyYcOnw6NvIGNvbW8gdW0gbW9kZWxvIG5hIHZpc3RhIGRlIGFsdGVyYcOnw6NvLCBuYSBpbnRlcmZhY2UgZG8gYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9zdHJhIHVtIGxpbmsgbm8gbWVudSBxdWUgcGVybWl0ZSBsaWdhciB1bWEgQWx0ZXJhw6fDo28gY29tIG91dHJvIG9iamV0byBuYSBBbHRlcmHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9zdHJhIHVtIGxpbmsgbm8gbWVudSBxdWUgcGVybWl0ZSBtb3ZlciBvIGludGVydmFsbyBkZSB0ZW1wbyBkZSB1bWEgQWx0ZXJhw6fDo28gbmEgc3VhIG9waW5pw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9zdHJhIHVtIGxpbmsgbm8gbWVudSBwYXJhIGFjZWRlciBhcyBjb25kacOnw7VlcyBkZSB1bWEgQWx0ZXJhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1bSBsaW5rIG5vIG1lbnUgcGFyYSBhY2VkZXIgbyBoaXN0w7NyaWNvIGRlIHVtYSBBbHRlcmHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhZGQgYSB3b3Jrb3JkZXIgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgd29ya29yZGVyIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9zdHJhIHVtIGxpbmsgbm8gbWVudSBwYXJhIGVkaXRhciB1bWEgQWx0ZXJhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1bSBsaW5rIG5vIG1lbnUgcGFyYSB2b2x0YXIgYSBBbHRlcmHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1bSBsaW5rIG5vIG1lbnUgcGFyYSBpbXByaW1pciB1bWEgQWx0ZXJhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSBvIGhpc3TDs3JpY28gZGUgYWx0ZXJhw6fDtWVzIChvcmRlbSBpbnZlcnNhKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJ03DoXF1aW5hIGRlIEVzdGFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnQXNzdW1pciBvcmRlbSBkZSBzZXJ2acOnbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJ0Npc3RhIGRlIE1vZGVsb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJ08gaWRlbnRpZmljYWRvciBkZSB1bWEgQWx0ZXJhw6fDo28sIHBvciBleGVtcGxvLCBBbHRlcmHDp8OjbyMsTWluaGEgQWx0ZXJhw6fDo28jLiBQb3Igb21pc3PDo28gw6kgQWx0ZXJhw6fDo28jLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAnTyBpZGVudGlmaWNhZG9yIGRlIHVtYSBPcmRlbSBkZSBTZXJ2acOnbywgcG9yIGV4ZW1wbG8sIE9yZGVtIGRlIFNlcnZpw6dvIyxNaW5oYSBPcmRlbSBkZSBTZXJ2acOnbyMuIFBvciBvbWlzc8OjbyDDqSBPcmRlbSBkZSBTZXJ2acOnbyMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICdUaXBvcyBkZSB0aWNrZXRzLCBvbmRlIG5vIGRldGFsaGUgZGUgdmlzdWFsaXphw6fDo28gZG8gdGlja2V0IMOpIG1vc3RyYWRvIHVtIGxpbmsgcGFyYSBhZGljaW9uYXIgdW1hIEFsdGVyYcOnw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/ro_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cm9fSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICdBbG9jYXJlIHByaW9yaXRhdGUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnSXN0b3JpYSAlcyVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJ1RpbXBTb2xpY2l0YXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRW5kVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxTdGFydFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIE92ZXJ2aWV3ICglcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVJlc2V0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoIFJlc3VsdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSAlcyBvZiBhbGwgd29ya29yZGVycyBoYXMgdG8gYmUgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB0ZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCB3b3Jrb3JkZXIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSB0aGUgd29ya29yZGVyICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBmaW5kIENoYW5nZSBmb3IgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSBab29tJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uICVzIG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpdGxlOiAlcyB8IFR5cGU6ICVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ0FCcyd9ID0gJ0NBQi11cmlsZSBtZWxlJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICdTY2hpbWLEg3JpbGUgbWVsZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICd0b2F0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9Ob3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3JzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAnYXByb2JhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ2Fwcm9iYXJlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJ2NvbWFuZMSDIGRlIGx1Y3J1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBsZXNzIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnQWRhdWfEgyBvIGNvbWFuZMSDIGRlIGx1Y3J1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICdQbGFuaWZpY2FyZSBzY2hpbWJhcmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgV29ya29yZGVyIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIHdvcmtvcmRlciB0ZW1wbGF0ZXMgZWRpdGVkIGJ5IHRoaXMgdXNlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBudW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBFZGl0J30gPSAnRWRpdGFyZSBjb25kacWjaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJ0NyZWF6xIMgc2NoaW1iYXJlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSBjaGFuZ2UgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIGNoYW5nZSBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBzaG91bGQgYmUgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHN0YXRlIGNhbiBiZSBzZXQgaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHBsYW5uZWQgZWZmb3J0IHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2VhcmNoZWQgYnkgY3VzdG9tZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciB3b3Jrb3JkZXIgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciBjaGFuZ2Ugb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHdvcmtvcmRlciBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWNjb3VudGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDYXRlZ29yeUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlTWFuYWdlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgRHluYW1pY0ZpZWxkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgSW1wYWN0SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRWZmb3J0IGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFJlcXVlc3RlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJBZ2VudElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGVyaW9kIChpbiB5ZWFycyksIGluIHdoaWNoIHN0YXJ0IGFuZCBlbmQgdGltZXMgY2FuIGJlIHNlbGVjdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGF0dHJpYnV0ZXMgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIHRvb2x0aXAgb2YgdGhlIHdvcmtvcmRlciBncmFwaCBpbiB0aGUgY2hhbmdlIHpvb20uIFRvIHNob3cgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGluIHRoZSB0b29sdGlwLCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGxpa2UgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBQSVIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNpZ25hbHMgZm9yIGVhY2ggSVRTTSBjaGFuZ2Ugc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHRlbXBsYXRlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyBkb25lIGZvciBjb25maWcgaXRlbSBjbGFzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICdTY2hpbWLEg3JpIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnU2NoaW1iYXJlIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnQWx0ZSBzZXTEg3JpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSd9ID0gJ1BJUihSZXZpZXcgcG9zdCBpbXBsZW1lbnRhcmUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzIGZyb20gdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICdDYXV0xIMgc2NoaW1ixINyaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/ru_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cnVfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ9Ca0LDRgtC10LPQvtGA0LjRjyDihpQg0JLQu9C40Y/QvdC40LUg4oaUINCf0YDQuNC+0YDQuNGC0LXRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAn0KPQv9GA0LDQstC70LXQvdC40LUg0L/RgNC40L7RgNC40YLQtdGC0L7QvCDQvdCwINC+0YHQvdC+0LLQtSDQutC+0LzQsdC40L3QsNGG0LjQuCDQmtCw0YLQtdCz0L7RgNC40Y8g4oaUINCS0LvQuNGP0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICfQndCw0LfQvdCw0YfQtdC90LjQtSDQv9GA0LjQvtGA0LjRgtC10YLQsCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlTWFuYWdlbWVudCBOb3RpZmljYXRpb24gTWFuYWdlbWVudCd9ID0gJ9Cj0L/RgNCw0LLQu9C10L3QuNC1INGD0LLQtdC00L7QvNC70LXQvdC40Y/QvNC4INCyIElUU00gQ2hhbmdlTWFuYWdlbWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC/0YDQsNCy0LjQu9C+INGD0LLQtdC00L7QvNC70LXQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAn0KPQstC10LTQvtC80LvQtdC90LjQtSDQtNC+0LvQttC90L4g0LjQvNC10YLRjCDQuNC80Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmFtZSBpcyByZXF1aXJlZC4nfSA9ICfQotGA0LXQsdGD0LXRgtGB0Y8g0LjQvNGPJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTVN0YXRlTWFjaGluZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gU3RhdGUgTWFjaGluZSd9ID0gJ9Cj0L/RgNCw0LLQu9C10L3QuNC1INCc0LDRiNC40L3QvtC5INGB0L7RgdGC0L7Rj9C90LjQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYSBjYXRhbG9nIGNsYXNzISd9ID0gJ9CS0YvQsdC10YDQuNGC0LUg0LrQu9Cw0YHRgSDQutCw0YLQsNC70L7Qs9CwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGFsb2cgY2xhc3MgaXMgcmVxdWlyZWQhJ30gPSAn0JrQu9Cw0YHRgSDQutCw0YLQsNC70L7Qs9CwINC+0LHRj9C30LDRgtC10LvQtdC9ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAn0JTQvtCx0LDQstC40YLRjCDRgdC+0YHRgtC+0Y/QvdC40LUg0L/QtdGA0LXRhdC+0LTQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAn0JrQu9Cw0YHRgSDQutCw0YLQsNC70L7Qs9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAn0JjQvNGPINC+0LHRitC10LrRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAn0J7QsdC30L7RgCDRgdC+0YHRgtC+0Y/QvdC40Lkg0L/QtdGA0LXRhdC+0LTQsCDQtNC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ9Cj0LTQsNC70LjRgtGMINGN0YLQviDRgdC+0YHRgtC+0Y/QvdC40LUg0L/QtdGA0LXRhdC+0LTQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC90L7QstC+0LUg0YHQvtGB0YLQvtGP0L3QuNC1INC/0LXRgNC10YXQvtC00LAg0LTQu9GPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICfQktGL0LHQtdGA0LjRgtC1INGB0L7RgdGC0L7Rj9C90LjQtSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIG5leHQgc3RhdGUhJ30gPSAn0JLRi9Cx0LXRgNC40YLQtSDRgdC70LXQtNGD0Y7RidC10LUg0YHQvtGB0YLQvtGP0L3QuNC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRgdC+0YHRgtC+0Y/QvdC40LUg0L/QtdGA0LXRhdC+0LTQsCDQtNC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YXQvtGC0L7RgtC1INGD0LTQsNC70LjRgtGMINGB0L7RgdGC0L7Rj9C90LjQtSDQv9C10YDQtdGF0L7QtNCwJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LjQt9C80LXQvdC10L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAn0JjQt9C80LXQvdC10L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICfQntCx0L7RgdC90L7QstCw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAn0J3QtdCy0LXRgNC90YvQtSDQtNCw0L3QvdGL0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICfQl9Cw0L/RgNC+0YjQtdC90L3QvtC1INCy0YDQtdC80Y8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAn0JLRi9Cx0YDQsNGC0Ywg0YjQsNCx0LvQvtC9INC00LvRjyDQuNC30LzQtdC90LXQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAn0KLQuNC/INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSB0eXBlLid9ID0gJ9C90LXQstC10YDQvdGL0Lkg0YLQuNC/INCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdGltZSd9ID0gJ9C90L7QstC+0LUg0LLRgNC10LzRjyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJ30gPSAn0KHQvtGF0YDQsNGC0LjRjCDRgdC+0YHRgtCw0LIgQ0FCINC60LDQuiDRiNCw0LHQu9C+0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICfQv9C10YDQtdC50YLQuCDQuiDRjdC60YDQsNC90YMg0LLQvtCy0LvQtdGH0LXQvdC90YvRhSDRgdC/0LXRhtC40LDQu9C40YHRgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAn0J3QtdCy0LXRgNC90L7QtSDQuNC80Y8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAn0KPRgdC70L7QstC40Y8g0Lgg0JTQtdC50YHRgtCy0LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAn0KPQtNCw0LvQuNGC0Ywg0YPRgdC70L7QstC40LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC90L7QstC+0LUg0YPRgdC70L7QstC40LUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRgdC+0YHRgtC+0Y/QvdC40LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAn0KLRgNC10LHRg9C10YLRgdGPINC/0YDQsNCy0LjQu9GM0L3QvtC1INC40LzRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJ9Ci0YDQtdCx0YPQtdGC0YHRjyDQv9GA0LDQstC40LvRjNC90L7QtSDQuNC80Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJ9Cj0LbQtSDQuNGB0L/QvtC70YzQt9GD0LXQvNC+0LUg0LjQvNGPOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJ9Ct0YLQviDQuNC80Y8g0YPQttC1INGB0LjQv9C+0LvRjNC30YPQtdGC0YHRjyDQsiDQtNGA0YPQs9C+0Lwg0YPRgdC70L7QstC40LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hdGNoaW5nJ30gPSAn0KHQvtC/0L7RgdGC0LDQstC70LXQvdC40LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJ9Cb0Y7QsdC+0LUg0LLRi9GA0LDQttC10L3QuNC1IChPUiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAn0JLRgdC1INCy0YvRgNCw0LbQtdC90LjRjyAoQU5EKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJ9CS0YvRgNCw0LbQtdC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJ9Cf0LXRgNC10LrQu9GO0YfQsNGC0LXQu9GMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZXJhdG9yJ30gPSAn0J7Qv9C10YDQsNGC0L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJ9Cj0LTQsNC70LjRgtGMINCy0YvRgNCw0LbQtdC90LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICfQktGL0YDQsNC20LXQvdC40LUg0L3QtSDQt9Cw0LTQsNC90L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJ9CU0L7QsdCw0LLQuNGC0YzQvdC+0LLQvtC1INCy0YvRgNCw0LbQtdC90LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAn0KPQtNCw0LvQuNGC0Ywg0LTQtdC50YHRgtCy0LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBBY3Rpb25zIGZvdW5kLid9ID0gJ9CU0LXQudGB0YLQstC40Lkg0L3QtSDQt9Cw0LTQsNC90L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAn0JTQvtCx0LDQstC40YLRjCDQvdC+0LLQvtC1INC00LXQudGB0YLQstC40LUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0LbQtdC70LDQtdGC0LUg0YPQtNCw0LvQuNGC0Ywg0Y3RgtC+INC40LfQvNC10L3QtdC90LjQtT8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0YwgJXMlcyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMnfSA9ICfQmNGB0YLQvtGA0LjRjyDQtNC70Y8gJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICfQodC+0LTQtdGA0LbQuNC80L7QtSDQuNGB0YLQvtGA0LjQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICfQl9Cw0LTQsNGH0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ9CS0YDQtdC80Y8g0YHQvtC30LTQsNC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICfQn9C+0LrQsNC30LDRgtGMINC/0L7QtNGA0L7QsdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICfQn9C+0LrQsNC30LDRgtGMINC30LDQtNCw0YfRgyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiAlcyd9ID0gJ9Cf0L7QtNGA0L7QsdC90LDRjyDQuNC90YTQvtGA0LzQsNGG0LjRjyDQvtCxINC40YHRgtC+0YDQuNC4ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAn0JjQt9C80LXQvdC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbGQgVmFsdWUnfSA9ICfQodGC0LDRgNC+0LUg0LfQvdCw0YfQtdC90LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICfQndC+0LLQvtC1INC30L3QsNGH0LXQvdC40LUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJ9CY0LfQvNC10L3QuNGC0Ywg0LLQvtCy0LvQtdGH0LXQvdC90YvRhSDQu9C40YYgJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAn0JLQvtCy0LvQtdGH0LXQvdC90YvQtSDRgdC+0YLRgNGD0LTQvdC40LrQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VyJ30gPSAn0JzQtdC90LXQtNC20LXRgCDQuNC30LzQtdC90LXQvdC40LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJ9Cd0LXQstC10YDQvdGL0Lkg0LjRgdC/0L7Qu9C90LjRgtC10LvRjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVyJ30gPSAn0KHQvtGB0YLQsNCy0LjRgtC10LvRjCDQuNC30LzQtdC90LXQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnQ0FCIC0g0JrQvtC80LjRgtC10YIg0L/QviDQuNC30LzQtdC90LXQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIFRlbXBsYXRlJ30gPSAn0KjQsNCx0LvQvtC9INC00LvRjyBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICfQn9GA0LjQvNC10L3QuNGC0Ywg0YjQsNCx0LvQvtC9JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAn0J3QvtCy0YvQuSDRiNCw0LHQu9C+0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ9Ch0L7RhdGA0LDQvdC40YLRjCDRgdC+0YHRgtCw0LIgQ0FCINC60LDQuiDRiNCw0LHQu9C+0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRvIENBQid9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LogQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJ9Cd0LXQstC10YDQvdGL0Lkg0YHQvtGC0YDRg9C00L3QuNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAn0KLQtdC60YPRidC40LkgQ0FCJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAn0J/QsNGA0LDQvNC10YLRgNGLINC60L7QvdGC0LXQutGB0YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAn0JjQt9C80LXQvdC10L3QuNC5INC90LAg0YHRgtGA0LDQvdC40YbRgyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICfQl9Cw0LPQvtC70L7QstC+0Log0LfQsNC00LDRh9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJ9CX0LDQs9C+0LvQvtCy0L7QuiDQmNC30LzQtdC90LXQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50J30gPSAn0JDQs9C10L3RgiDQv9C+INC30LDQtNCw0YfQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJ9Ch0L7RgdGC0LDQstC40YLQtdC70Ywg0LjQt9C80LXQvdC10L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAn0JzQtdC90LXQtNC20LXRgCDQuNC30LzQtdC90LXQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJ9CX0LDQtNCw0YfQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICfQodC+0YHRgtC+0Y/QvdC40LUg0JjQt9C80LXQvdC10L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJ9Ch0YLQsNGC0YPRgSDQt9Cw0LTQsNGH0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFR5cGUnfSA9ICfQotC40L8g0LfQsNC00LDRh9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAn0JfQsNC/0YDQvtGI0LXQvdC90L7QtSDQstGA0LXQvNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJ9CX0LDQv9C70LDQvdC40YDQvtCy0LDQvdC90L7QtSDQstGA0LXQvNGPINC90LDRh9Cw0LvQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAn0J/Qu9Cw0L3QuNGA0YPQtdC80L7QtSDQstGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJ9Ck0LDQutGC0LjRh9C10YHQutC+0LUg0LLRgNC10LzRjyDQvdCw0YfQsNC70LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIEVuZCBUaW1lJ30gPSAn0KTQsNC60YLQuNGH0LXRgdC60L7QtSDQstGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0LbQtdC70LDQtdGC0LUg0L7Rh9C40YHRgtC40YLRjCDRjdGC0L4g0LjQt9C80LXQvdC10L3QuNC1Pyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICco0YIu0LUuIDEwKjUxNTUg0LjQu9C4IDEwNTY1OCopJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJ9CQ0LPQtdC90YIsINGH0LvQtdC9IENBQiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS5nLid9ID0gJ9GCLtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXInfSA9ICfQmtC70LjQtdC90YIsINGH0LvQtdC9IENBQiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICfQmNC90YHRgtGA0YPQutGG0LjRjyDQv9C+INC30LDQtNCw0YfQsNC8IElUU00gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJ9Ce0YLRh9C10YIg0L/QviDQt9Cw0LTQsNGH0LDQvCBJVFNNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAn0JjQt9C80LXQvdC40YLRjCDQv9GA0LjQvtGA0LjRgtC10YIgSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICfQmNC30LzQtdC90LjRgtGMINCy0L7Qt9C00LXQudGB0YLQstC40LUgSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICfQmNC30LzQtdC90LjRgtGMINC60LDRgtC10LPQvtGA0LjRjic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJ9C00L4v0L/QvtGB0LvQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmV0d2VlbiknfSA9ICfQvNC10LbQtNGDJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBhcyBUZW1wbGF0ZSd9ID0gJ9Ch0L7RhdGA0LDQvdC40YLRjCDQuNC30LzQtdC90LXQvdC40LUg0LrQsNC6INGI0LDQsdC70L7QvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBsYXRlIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICfQndCw0LTQviDQv9GA0LjRgdCy0L7QuNGC0Ywg0LjQvNGPINGI0LDQsdC70L7QvdGDISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICfQotGA0LXQsdGD0LXRgtGB0Y8g0LjQvNGPINGI0LDQsdC70L7QvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICfQntGH0LjRgdGC0LjRgtGMINGB0L7RgdGC0L7Rj9C90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVyd3JpdGUgb3JpZ2luYWwgdGVtcGxhdGUnfSA9ICfQn9C10YDQtdC30LDQv9C40YHQsNGC0Ywg0LjRgdGF0L7QtNC90YvQuSDRiNCw0LHQu9C+0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIGNoYW5nZSd9ID0gJ9Cj0LTQsNC70LjRgtGMINC40YHRhdC+0LTQvdC+0LUg0LjQt9C80LXQvdC10L3QuNC1JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJ9Ch0LzQtdGB0YLQuNGC0Ywg0LTQuNCw0L/QsNC30L7QvSDQstGA0LXQvNC10L3QuCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICfQmNC90YTQvtGA0LzQsNGG0LjRjyDQvtCxINC40LfQvNC10L3QtdC90LjQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJ9Cf0LvQsNC90LjRgNGD0LXQvNC+0LUg0YPRgdC40LvQuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnRlZCBUaW1lJ30gPSAnINCX0LDRgtGA0LDRh9C10L3QvdC+0LUg0LLRgNC10LzRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAn0JjQvdC40YbQuNCw0YLQvtGAINC40LfQvNC10L3QtdC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICdDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAn0JTQsNGC0LAg0L/QvtGB0LvQtdC00L3QtdCz0L4g0LjQt9C80LXQvdC10LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICfQn9C+0YHQu9C10LTQvdC40Lkg0LjQt9C80LXQvdC40LsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICfQlNC70Y8g0L7RgtC60YDRi9GC0LjRjyDRgdGB0YvQu9C60Lgg0LIg0YHQu9C10LTRg9GO0YnQtdC8INGB0L7QvtCx0YnQtdC90LjQuC/Qt9Cw0LzQtdGC0LrQtSDQvdC10L7QsdGF0L7QtNC40LzQviDQvdCw0LbQsNGC0Ywg0Lgg0YPQtNC10YDQttC40LLQsNGC0Ywg0LrQu9Cw0LLQuNGI0YMgQ3RybCDQuNC70LggQ21kINC40LvQuCBTaGlmdCDQuCDQutC70LjQutC90YPRgtGMINC/0L4g0YHRgdGL0LvQutC1ICjQt9Cw0LLQuNGB0LjRgiDQvtGCINCy0LDRiNC10LPQviDQsdGA0LDRg9C30LXRgNCwINC4INCe0KEpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAn0JfQsNCz0YDRg9C30LjRgtGMINCy0LvQvtC20LXQvdC40LUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGI0LDQsdC70L7QvSBDQUInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFuZ2UgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICfQkdGD0LTQtdGCINGB0L7Qt9C00LDQvdC+INC90L7QstC+0LUg0LjQt9C80LXQvdC10L3QuNC1INC40Lcg0Y3RgtC+0LPQviDRiNCw0LHQu9C+0L3QsCDQuCDQstGLINGB0LzQvtC20LXRgtC1INC10LPQviDRgNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQuCDRgdC+0YXRgNCw0L3QuNGC0YwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAn0J3QvtCy0L7QtSDQuNC30LzQtdC90LXQvdC40LUg0LHRg9C00LXRgiDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDRg9C00LDQu9C10L3QviDQv9C+0YHQu9C1INC10LPQviDRgdC+0YXRgNCw0L3QtdC90LjRjyDQsiDQutCw0YfQtdGB0YLQstC1INGI0LDQsdC70L7QvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ9CR0YPQtNC10YIg0YHQvtC30LTQsNC90LAg0L3QvtCy0LDRjyDQt9Cw0LTQsNGH0LAg0LjQtyDRjdGC0L7Qs9C+INGI0LDQsdC70L7QvdCwINC4INCy0Ysg0YHQvNC+0LbQtdGC0LUg0LXQs9C+INGA0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC4INGB0L7RhdGA0LDQvdC40YLRjC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wb3JhcnkgY2hhbmdlIHdpbGwgYmUgY3JlYXRlZCB3aGljaCBjb250YWlucyB0aGUgd29ya29yZGVyLid9ID0KICAgICAgICAn0JHRg9C00LXRgiDRgdC+0LfQtNCw0L3QviDQstGA0LXQvNC10L3QvdC+0LUg0LjQt9C80LXQvdC10L3QuNC1LCDRgdC+0LTQtdGA0LbQsNGJ0LXQtSDQt9Cw0LTQsNGH0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICfQktGA0LXQvNC10L3QvdC+0LUg0LjQt9C80LXQvdC10L3QuNC1INC4INC90L7QstCw0Y8g0LfQsNC00LDRh9CwINCx0YPQtNC10YIg0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60Lgg0YPQtNCw0LvQtdC90Ysg0L/QvtGB0LvQtSDRgdC+0YXRgNCw0L3QtdC90LjRjyDQt9Cw0LTQsNGH0Lgg0LIg0LrQsNGH0LXRgdGC0LLQtSDRiNCw0LHQu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nfSA9ICfQltC10LvQsNC10YLQtSDQv9GA0L7QtNC+0LvQttC40YLRjD8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJ0lEINGI0LDQsdC70L7QvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGB0L7QtNC10YDQttCw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJ9Ch0L7Qt9C00LDQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBieSd9ID0gJ9CY0LfQvNC10L3QtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICfQktGA0LXQvNGPINC80L7QtNC40YTQuNC60LDRhtC40LgnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC30LDQtNCw0YfRgyDQuiAlcyVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAn0JjQvdGB0YLRgNGD0LrRhtC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB3b3Jrb3JkZXIgdHlwZS4nfSA9ICfQndC10L/RgNCw0LLQuNC70YzQvdGL0Lkg0YLQuNC/INC30LDQtNCw0YfQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICfQktGA0LXQvNGPINC90LDRh9Cw0LvQsCDQtNC+0LvQttC90L4g0L/RgNC10LTRiNC10YHRgtCy0L7QstCw0YLRjCDQstGA0LXQvNC10L3QuCDQvtC60L7QvdGH0LDQvdC40Y8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJ9Cd0LXQstC10YDQvdGL0Lkg0YTQvtGA0LzQsNGCJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJ9CS0YvQsdGA0LDRgtGMINGI0LDQsdC70L7QvSDQtNC70Y8g0LfQsNC00LDRh9C4JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0LDQs9C10L3RgtCwINC/0L4g0LfQsNC00LDRh9C1ICVzJXMnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0LbQtdC70LDQtdGC0LUg0YPQtNCw0LvQuNGC0Ywg0Y3RgtGDINC30LDQtNCw0YfRgz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICfQktGLINC90LUg0LzQvtC20LXRgtC1INGD0LTQsNC70LjRgtGMINGN0YLRgyDQt9Cw0LTQsNGH0YMuINCe0L3QsCDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LrQsNC6INC80LjQvdC40LzRg9C8INCyINC+0LTQvdC+0Lwg0YPRgdC70L7QstC40LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICfQrdGC0LAg0LfQsNC00LDRh9CwINC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQsiDRgdC70LXQtNGD0Y7RidC40YUg0YPRgdC70L7QstC40Y/RhSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCAlcyVzLSVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICfQn9C10YDQtdC80LXRgdGC0LjRgtGML9GB0LTQstC40L3Rg9GC0Ywg0YHQu9C10LTRg9GO0YnQuNC1INC30LDQtNCw0YfQuCDRgdC+0L7RgtCy0LXRgtGB0YLQstC10L3QvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJ9CV0YHQu9C4INC30LDQv9C70LDQvdC40YDQvtCy0LDQvdC90L7QtSDQstGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyDQt9Cw0LTQsNGH0Lgg0LHRg9C00LXRgiDQuNC30LzQtdC90LXQvdC+LCDQt9Cw0L/Qu9Cw0L3QuNGA0L7QstCw0L3QvdC+0LUg0LLRgNC10LzRjyDQvdCw0YfQsNC70LAg0LLRgdC10YUg0L/QvtGB0LvQtdC00YPRjtGJ0LjRhSDQt9Cw0LTQsNGHINCx0YPQtNC10YIg0YHQvtC+0YLQstC10YLRgdGC0LLQtdC90L3QviDQuNC30LzQtdC90LXQvdC+JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJ9CY0YHRgtC+0YDQuNGPICVzJXMtJXMnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L7RgtGH0LXRgiAlcyVzLSVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJ9Ce0YLRh9C10YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAn0JLRgNC10LzRjyDQvdCw0YfQsNC70LAg0LTQvtC70LbQvdC+INC/0YDQtdC00YjQtdGB0YLQstC+0LLQsNGC0Ywg0LLRgNC10LzQtdC90Lgg0L7QutC+0L3Rh9Cw0L3QuNGPISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICfQpNCw0LrRgtC40YfQtdGB0LrQvtC1INCy0YDQtdC80Y8g0L3QsNGH0LDQu9CwINC00L7Qu9C20L3QviDQsdGL0YLRjCDQt9Cw0LTQsNC90L4sINC10YHQu9C4INC30LDQtNCw0L3QviDQstGA0LXQvNGPINGE0LDQutGC0LjRh9C10YHQutC+0LPQviDQvtC60L7QvdGH0LDQvdC40Y8hJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICfQotC10LrRg9GJ0LjQuSDQsNCz0LXQvdGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byB0YWtlIHRoaXMgd29ya29yZGVyPyd9ID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YXQvtGC0LjRgtC1INCy0LfRj9GC0Ywg0Y3RgtGDINC30LDQtNCw0YfRgz8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAn0KHQvtGF0YDQsNC90LjRgtGMINC30LDQtNCw0YfRgyDQutCw0Log0YjQsNCx0LvQvtC9JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAn0KPQtNCw0LvQuNGC0Ywg0LjRgdGF0L7QtNC90YPRjiDQt9Cw0LTQsNGH0YMgICjQuCDQvtC60YDRg9C20LDRjtGJ0LXQtSDQuNC30LzQtdC90LXQvdC40LUpJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJ9CY0L3RhNC+0YDQvNCw0YbQuNGPINC+INC30LDQtNCw0YfQtSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAn0KPQstC10LTQvtC80LvQtdC90LjQtSDQtNC+0LHQsNCy0LvQtdC90L4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJ9Cd0LXQuNC30LLQtdGB0YLQvdC+0LUg0YPQstC10LTQvtC80LvQtdC90LjQtSAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAn0J/RgNC+0LjQt9C+0YjQu9CwINC+0YjQuNCx0LrQsCDQv9GA0Lgg0YHQvtC30LTQsNC90LjQuCDRg9Cy0LXQtNC+0LzQu9C10L3QuNGPLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIFVwZGF0ZWQhJ30gPSAn0J/QtdGA0LXRhdC+0LQg0YHQvtGB0YLQvtGP0L3QuNGPINC+0LHQvdC+0LLQu9C10L0hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAn0JTQvtCx0LDQstC70LXQvSAg0L/QtdGA0LXRhdC+0LQg0YHQvtGB0YLQvtGP0L3QuNGPISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAn0J7QsdC30L7RgDogSVRTTSDQmNC30LzQtdC90LXQvdC40Y8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAn0JfQsNGP0LLQutCwINGBINGC0LDQutC40LwgVGlja2V0SUQgJXMg0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAn0J/RgNC+0L/Rg9GJ0LXQvSDQv9Cw0YDQsNC80LXRgtGAINC60L7QvdGE0LjQs9GD0YDQsNGG0LjQuCAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCBjaGFuZ2UhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQtNC+0LHQsNCy0LjRgtGMINC40LfQvNC10L3QtdC90LjQtSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINGB0L7Qt9C00LDRgtGMINC40LfQvNC10L3QtdC90LjQtSDQuNC3INGI0LDQsdC70L7QvdCwISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ0NoYW5nZUlEINC90LUg0LfQsNC00LDQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nfSA9ICfQndC1INC90LDQudC00LXQvdC+INC40LfQvNC10L3QtdC90LjQuSDQtNC70Y8gQ2hhbmdlSUQgJXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnQ0FCINCY0LfQvNC10L3QtdC90LjRjyAiJXMiINC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDRgNCw0LfQvNC90L7QttC10L3Qvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQtNC+0LHQsNCy0LjRgtGMINGI0LDQsdC70L7QvS4gJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICfQmNC30LzQtdC90LXQvdC40LUgIiVzIiDQvdC1INC90LDQudC00LXQvdC+INCyINCR0JQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAn0J3QtdCy0L7Qt9C80L7QttC90L4g0YPQtNCw0LvQuNGC0YwgQ29uZGl0aW9uSUQgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICclcyDQvdC1INC30LDQtNCw0L0hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINGB0L7Qt9C00LDRgtGMINC90L7QstC+0LUg0YPRgdC70L7QstC40LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQvtCx0L3QvtCy0LjRgtGMIENvbmRpdGlvbklEICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINC+0LHQvdC+0LLQuNGC0YwgRXhwcmVzc2lvbklEICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0YHQvtC30LTQsNGC0Ywg0L3QvtCy0L7QtSDQktGL0YDQsNC20LXQvdC40LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQvtCx0L3QvtCy0LjRgtGMIEFjdGlvbklEICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQtNC+0LHQsNCy0LjRgtGMINC90L7QstC+0LUg0JTQtdC50YHRgtCy0LjQtSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDRg9C00LDQu9C40YLRjCBFeHByZXNzaW9uSUQgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAn0J3QtdCy0L7Qt9C80L7QttC90L4g0YPQtNCw0LvQuNGC0YwgQWN0aW9uSUQgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICfQntGI0LjQsdC60LA6INCd0LXQuNC30LLQtdGB0YLQvdGL0Lkg0YLQuNC/INC/0L7Qu9GPICIlcyIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnQ29uZGl0aW9uSUQgJXMg0L3QtSDQv9GA0LjQvdCw0LTQu9C10LbQuNGCINC30LDQtNCw0L3QvdC+0LzRgyBDaGFuZ2VJRCAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAn0JjQt9C80LXQvdC10L3QuNC1ICIlcyIg0L3QtSDRgdC+0LTQtdGA0LbQuNGCINGA0LDQt9GA0LXRiNC10L3QvdGL0YUg0LTQu9GPINGD0LTQsNC70LXQvdC40Y8g0YHQvtGB0YLQvtGP0L3QuNC5ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINGD0LTQsNC70LjRgtGMIENoYW5nZUlEICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQvtCx0L3QvtCy0LjRgtGMINCY0LfQvNC10L3QtdC90LjQtSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ9Cd0LXQstC+0LfQvNC+0LbQvdC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC40YHRgtC+0YDQuNGOLCDRgtCw0Log0LrQsNC6INC90LUg0LfQsNC00LDQvSBDaGFuZ2VJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICfQmNC30LzQtdC90LXQvdC40LUgIiVzIiDQvdC1INC90LDQudC00LXQvdC+INCyINCR0JQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJ9Ce0LHQvdCw0YDRg9C20LXQvSDQvdC10LjQt9Cy0LXRgdGC0L3Ri9C5INGC0LjQvyAiJSBzIiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICfQmNGB0YLQvtGA0LjRjyDQmNC30LzQtdC90LXQvdC40LknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJ9Cd0LXQstC+0LfQvNC+0LbQvdC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC40YHRgtC+0YDQuNGOLCDQvdC1INC30LDQtNCw0L0gSGlzdG9yeUVudHJ5SUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICdIaXN0b3J5RW50cnkgIiVzIiDQvdC1INC90LDQudC00LXQvdC+INCyINCR0JQhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCAgQ0FCINCY0LfQvNC10L3QtdC90LjRjyDQtNC70Y8g0JjQt9C80LXQvdC10L3QuNGPICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINC+0LHQvdC+0LLQuNGC0Ywg0JjQt9C80LXQvdC10L3QuNC1ICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICfQntCx0LfQvtGAOiDQnNC10L3QtdC00LbQtdGAINC40LfQvNC10L3QtdC90LjQuSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICfQntCx0LfQvtGAOiDQnNC+0LggQ0FCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAn0J7QsdC30L7RgDog0JzQvtC4INCY0LfQvNC10L3QtdC90LjRjyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJ9Ce0LHQt9C+0YA6INCc0L7QuCDQl9Cw0LTQsNGH0LgnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJ9Ce0LHQt9C+0YA6IFBJUic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAn0J7QsdC30L7RgDogUFNBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ9CX0LDQtNCw0YfQsCAiJXMiINC90LUg0L3QsNC50LTQtdC90LAg0LIg0JHQlCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAn0J3QtdCy0L7Qt9C80L7QttC90L4g0YHQvtC30LTQsNGC0Ywg0YDQtdC30YPQu9GM0YLQsNGCLCDRgtCw0Log0LrQsNC6INCX0LDQtNCw0YfQsCDQvdC1INC/0YDQuNC60YDQtdC/0LvQtdC90LAg0Log0JjQt9C80LXQvdC10L3QuNGOISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAn0J3QtdCy0L7Qt9C80L7QttC90L4g0YHQvtC30LTQsNGC0Ywg0YDQtdC30YPQu9GM0YLQsNGCLCDRgtCw0Log0LrQsNC6INC90LUg0LfQsNC00LDQvSBDaGFuZ2VJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biBjaGFuZ2UgdGl0bGUnfSA9ICfQndC10LjQt9Cy0LXRgdGC0L3Ri9C5INC30LDQs9C+0LvQvtCy0L7QuiDQmNC30LzQtdC90LXQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXInfSA9ICfQl9Cw0LTQsNGH0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyTnVtYmVyJ30gPSAnV29ya09yZGVyTnVtYmVyIC0g0J3QvtC80LXRgCDQt9Cw0LTQsNGH0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICdXb3JrT3JkZXJUaXRsZSAtINCX0LDQs9C+0LvQvtCy0L7QuiDQl9Cw0LTQsNGH0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICfQndC10LjQt9Cy0LXRgdGC0L3Ri9C5INC30LDQs9C+0LvQvtCy0L7QuiDQl9Cw0LTQsNGH0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICfQodC+0YHRgtC+0Y/QvdC40LUg0LjQt9C80LXQvdC10L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICfQn9C70LDQvdC40YDRg9C10LzRi9C1INGA0LXRgdGD0YDRgdGLPz8/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnUmVxdWVzdGVkVGltZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAn0JfQsNC/0LvQsNC90LjRgNC+0LLQsNC90L3QvtC1INCy0YDQtdC80Y8g0L3QsNGH0LDQu9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAn0JfQsNC/0LvQsNC90LjRgNC+0LLQsNC90L3QvtC1INCy0YDQtdC80Y8g0L7QutC+0L3Rh9Cw0L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJ9Ck0LDQutGC0LjRh9C10YHQutC+0LUg0LLRgNC10LzRjyDQvdCw0YfQsNC70LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJ9Ck0LDQutGC0LjRh9C10YHQutC+0LUg0LLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJ0NoYW5nZVRpbWUgLSDQktGA0LXQvNGPINC40LfQvNC10L3QtdC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICfQndC+0LzQtdGAINC40LfQvNC10L3QtdC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZSd9ID0gJ1dvcmtPcmRlclN0YXRlIC0g0YHQvtGB0YLQvtGP0L3QuNC1INCX0LDQtNCw0YfQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlJ30gPSAnV29ya09yZGVyVHlwZSAtINCi0LjQvyDQl9Cw0LTQsNGH0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICdXb3JrT3JkZXJBZ2VudCAtINCQ0LPQtdC90YIg0LTQu9GPINC30LDQtNCw0YfQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAn0J7QsdC30L7RgCDQl9Cw0LTQsNGHIElUU00gKCVzKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7Rh9C40YHRgtC40YLRjCDQl9Cw0LTQsNGH0YMgJXMg0JjQt9C80LXQvdC10L3QuNGPICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7Rh9C40YHRgtC40YLRjCDQmNC30LzQtdC90LXQvdC40LUgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJ9Ce0LHQt9C+0YA6INCf0LvQsNC90LjRgNC+0LLRidC40Log0LjQt9C80LXQvdC10L3QuNC5JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICfQn9C+0LjRgdC6INCY0LfQvNC10L3QtdC90LjQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJ9CX0LDQs9C+0LvQvtCy0L7QuiDQuNC30LzQtdC90LXQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ9CX0LDQtNCw0YfQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoIFJlc3VsdCd9ID0gJ9Cg0LXQt9GD0LvRjNGC0LDRgiDQv9C+0LjRgdC60LAg0JjQt9C80LXQvdC10L3QuNC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICfQndC+0LzQtdGAINCY0LfQvNC10L3QtdC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAn0JfQsNCz0L7Qu9C+0LLQvtC6INCX0LDQtNCw0YfQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICfQntC/0LjRgdCw0L3QuNC1INCY0LfQvNC10L3QtdC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJ9Ce0LHQvtGB0L3QvtCy0LDQvdC40LUg0JjQt9C80LXQvdC10L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJ9CY0L3RgdGC0YDRg9C60YbQuNC4INC/0L4g0JfQsNC00LDRh9C1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICfQntGC0YfQtdGCINC/0L4g0JfQsNC00LDRh9C1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSd9ID0gJ9Cf0YDQuNC+0YDQuNGC0LXRgiDQmNC30LzQtdC90LXQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJ9CS0LvQuNGP0L3QuNC1INCY0LfQvNC10L3QtdC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAn0KHQvtC30LTQsNC7JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJ9Ch0L7RgdGC0L7Rj9C90LjQtSDQl9Cw0LTQsNGH0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICfQotC40L8g0JfQsNC00LDRh9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJ9CQ0LPQtdC90YIg0JfQsNC00LDRh9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJ9C00L4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAn0JjQt9C80LXQvdC10L3QuNC1ICIlcyIg0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINGA0LDQt9C80L3QvtC20LXQvdC+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCDRiNCw0LHQu9C+0L0gIiVzIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICfQndC10LLQvtC30LzQvtC20L3QviDRg9C00LDQu9C40YLRjCDQmNC30LzQtdC90LXQvdC40LUgIiVzIi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAn0JjQt9C80LXQvdC10L3QuNC1INC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDQv9C10YDQtdC80LXRidC10L3QviDRgtCw0Log0LrQsNC6INC90LUg0LjQvNC10LXRgiDQl9Cw0LTQsNGHLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAn0KHQvdCw0YfQsNC70LAg0LTQvtCx0LDQstGM0YLQtSDQl9Cw0LTQsNGH0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAn0J3QtdCy0L7Qt9C80L7QttC90L4g0L/QtdGA0LXQvNC10YHRgtC40YLRjCDQmNC30LzQtdC90LXQvdC40LUsINGA0LDQsdC+0YLQsCDQv9C+INC60L7RgtC+0YDQvtC80YMg0YPQttC1INC90LDRh9Cw0YLQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJ9CS0LzQtdGB0YLQviDRjdGC0L7Qs9C+INC/0LXRgNC10LzQtdGB0YLQuNGC0LUg0L7RgtC00LXQu9GM0L3Ri9C1INC30LDQtNCw0YfQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAn0KLQtdC60YPRidC40LkgJXMg0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINC+0L/RgNC10LTQtdC70LXQvS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyVzINCy0YHQtdGFINCX0LDQtNCw0Ycg0LTQvtC70LbQvdGLINCx0YvRgtGMINC30LDQtNCw0L3Riy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QtdGA0LXQvNC10YHRgtC40YLRjCDQstGA0LXQvNC10L3QndC+0Lkg0YHQu9C+0YIg0LTQu9GPINCX0LDQtNCw0YfQuCAjJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICfQktCw0Lwg0L3QtdC+0LHRhdC+0LTQuNC80L4g0LjQvNC10YLRjCAg0L/RgNCw0LLQviAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICfQndC1INC30LDQtNCw0L0gVGVtcGxhdGVJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAn0KjQsNCx0LvQvtC9ICIlcyIg0L3QtSDQvdCw0LnQtNC10L0g0LIg0JHQlCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDRg9C00LDQu9C40YLRjCDRiNCw0LHQu9C+0L0gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQvtCx0L3QvtCy0LjRgtGMINGI0LDQsdC70L7QvSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAiJXMiISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCDRiNCw0LHQu9C+0L0gIiVzIiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0YHQvtC30LTQsNGC0Ywg0LjQt9C80LXQvdC10L3QuNC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0YHQvtC30LTQsNGC0Ywg0JfQsNC00LDRh9GDINC40Lcg0YjQsNCx0LvQvtC90LAhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICfQntCx0LfQvtGAOiDQqNCw0LHQu9C+0L3Riyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJ9CS0LDQvCDQvdC10L7QsdGF0L7QtNC40LzRiyDQv9GA0LDQstCwICVzINC90LAg0JjQt9C80LXQvdC10L3QuNC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINC00L7QsdCw0LLQuNGC0Ywg0JfQsNC00LDRh9GDISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJ1dvcmtPcmRlcklEINC90LUg0LfQsNC00LDQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0YHQsdGA0L7RgdC40YLRjCDQsNCz0LXQvdGC0LAg0LTQu9GPINCX0LDQtNCw0YfQuCAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINC+0LHQvdC+0LLQuNGC0Ywg0JfQsNC00LDRh9GDICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINC90LDQudGC0Lgg0JjQt9C80LXQvdC10L3QuNC1INC00LvRjyDQl9Cw0LTQsNGH0LggJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINGD0LTQsNC70LjRgtGMINCX0LDQtNCw0YfRgyAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCDQl9Cw0LTQsNGH0YMgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICfQndC10LLQvtC30LzQvtC20L3QviDQvtGC0L7QsdGA0LDQt9C40YLRjCDQuNGB0YLQvtGA0LjRjiwg0YLQsNC6INC60LDQuiDQvdC1INC30LDQtNCw0L0gV29ya09yZGVySUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAn0JfQsNC00LDRh9CwICIlcyIg0L3QtSDQvdCw0LnQtNC10L3QsCDQsiDQkdCUISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJ9CY0YHRgtC+0YDQuNGPINCX0LDQtNCw0YfQuCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJ9CX0LDQv9C40YHRjCDQmNGB0YLQvtGA0LjQuCAiJXMiINC90LUg0L3QsNC50LTQtdC90LAg0LIg0JHQlCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJ9CY0YHRgtC+0YDQuNGPINCX0LDQtNCw0YfQuCDQv9C+0LTRgNC+0LHQvdC+JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQl9Cw0LTQsNGH0YMgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJ9CX0LDQtNCw0YfQsCAiJXMiINC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDRgNCw0LfQvNC90L7QttC10L3QsC4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uICVzISd9ID0gJ9Cd0LXQvtCx0YXQvtC00LjQvNCwINC90LDRgdGC0YDQvtC50LrQsCDQutC+0L3RhNC40LPRg9GA0LDRhtC40LggJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICfQntC/0YbQuNGPICVzINC00L7Qu9C20L3QsCDQsdGL0YLRjCDRhdC10Ygt0YHRgdGL0LvQutC+0LkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAn0J3QtSDQvdCw0YHRgtGA0L7QtdC9INC+0LHQt9C+0YAgIiVzIiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICfQl9Cw0LPQvtC70L7QstC+0Lo6ICVzIHwg0KLQuNC/OiAlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICfQnNC+0LggQ0FCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICfQnNC+0Lgg0LjQt9C80LXQvdC10L3QuNGPJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IFdvcmsgT3JkZXJzJ30gPSAn0JzQvtC4INCX0LDQtNCw0YfQuCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICfQstGB0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAn0LvRjtCx0L7QuSjQsNGPKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAn0LfQsNC/0YDQvtGI0LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICfQvtGC0LvQvtC20LXQvdC90L7QtSDRg9GC0LLQtdGA0LbQtNC10L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAn0L7RgtCy0LXRgNCz0L3Rg9GC0L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICfQo9GC0LLQtdGA0LbQtNC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJ9CyINGA0LDQsdC+0YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJ9C+0LbQuNC00LDQtdGCINC+0LTQvtCx0YDQtdC90LjRjyBQSVInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJ9GD0YHQv9C10YjQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJ9C90LUg0YPQtNCw0LvQvtGB0YwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICfQvtGC0LzQtdC90LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJ9C+0YLQutCw0LfQsNC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJ9GB0L7Qt9C00LDQvdC+KNCwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJ9Cf0YDQuNC90Y/RgtC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAn0LPQvtGC0L7QstC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAn0KPRgtCy0LXRgNC20LTQtdC90LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICfQl9Cw0LTQsNGH0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmFja291dCd9ID0gJ9Cf0LvQsNC9INC+0YLQutCw0YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJ9GA0LXRiNC10L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJ1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcv0LDQvdCw0LvQuNC3INC/0L4g0L7QutC+0L3Rh9Cw0L3QuNC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICfQr9Cy0LvRj9C10YLRgdGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJ9C90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICfQv9GD0YHRgtC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJ9C90LUg0L/Rg9GB0YLQvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICfQsdC+0LvRjNGI0LUg0YfQtdC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJ9C80LXQvdGM0YjQtSDRh9C10LwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAn0LTQvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJ9C/0L7RgdC70LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICfRgdC+0LTQtdGA0LbQuNGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJ9C90LUg0YHQvtC00LXRgNC20LjRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJ9C90LDRh9Cw0YLRjCDRgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICfQvtC60L7QvdGH0LjRgtGMINGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJ9GD0YHRgtCw0L3QvtCy0LvQtdC90L4nOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICfQni7Qmi4nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICfQodC/0LjRgdC+0Log0LDQs9C10L3RgtC+0LIsINC40LzQtdGO0YnQuNGFINC/0YDQsNCy0LAg0LLQt9GP0YLRjCDQt9Cw0LTQsNGH0YMg0LIg0YDQsNCx0L7RgtGDLiDQmtC70Y7RhyAtINC70L7Qs9C40L0sINCh0L7QtNC10YDQttCw0L3QuNC1IC0gMCDQuNC70LggMSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJ9Ch0L/QuNGB0L7QuiDRgdC+0YHRgtC+0Y/QvdC40Lkg0LfQsNC00LDRh9C4INCyINC60L7RgtC+0YDRi9GFINGE0LDQutGC0LjRh9C10YHQutC+0LUg0LLRgNC10LzRjyDQvdCw0YfQsNC70LAg0LfQsNC00LDRh9C4INC80L7QttC10YIg0LHRi9GC0Ywg0LfQsNC00LDQvdC+LCDQtdGB0LvQuCDQtdGJ0LUg0L/Rg9GB0YLQviDQuiDRjdGC0L7QvNGDINC80L7QvNC10L3RgtGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LfQsNC00LDRh9GDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAn0JTQvtCx0LDQstC40YLRjCDQt9Cw0LTQsNGH0YMgKNC40Lcg0YjQsNCx0LvQvtC90LApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0JjQt9C80LXQvdC10L3QuNC1INC40Lcg0YjQsNCx0LvQvtC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC40LfQvNC10L3QtdC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAn0JTQvtCx0LDQstC40YLRjCDQt9Cw0LTQsNGH0YMgKNC40Lcg0YjQsNCx0LvQvtC90LApINC90LAg0LjQt9C80LXQvdC10L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LfQsNC00LDRh9GDINC90LAg0LjQt9C80LXQvdC10L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAn0JTQvtCx0LDQstC40YLRjCwg0LjRgdC/0L7Qu9GM0LfRg9GPINGI0LDQsdC70L7QvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICfQo9C/0YDQsNCy0LvQtdC90LjQtSDQvNCw0YLRgNC40YbQtdC5IENJUCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICfQo9C/0YDQsNCy0LvQtdC90LjQtSDQvNCw0YjQuNC90L7QuSDRgdC+0YHRgtC+0Y/QvdC40LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJ9Cc0L7QtNGD0LvRjCDQvtGC0L7QsdGA0LDQttCw0Y7RidC40Lkg0LrQvtC70LjRh9C10YHRgtCy0L4gQ0FCINCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAn0JzQvtC00YPQu9GMINC+0YLQvtCx0YDQsNC20LDRjtGJ0LjQuSDQutC+0LvQuNGH0LXRgdGC0LLQviDQuNC30LzQtdC90LXQvdC40Lkg0YEg0LrQvtGC0L7RgNGL0LzQuCDRgNCw0LHQvtGC0LDQtdGCINCw0LPQtdC90YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJ9Cc0L7QtNGD0LvRjCDQvtGC0L7QsdGA0LDQttCw0Y7RidC40Lkg0LrQvtC70LjRh9C10YHRgtCy0L4g0LjQt9C80LXQvdC10L3QuNC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICfQnNC+0LTRg9C70Ywg0YPQstC10LTQvtC80LvQtdC90LjQuSDQtNC70Y8g0LjQvdGC0LXRgNGE0LXQudGB0LAg0LDQs9C10L3RgtCwINC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAg0JfQsNC00LDRhy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICfQn9C+0LjRgdC6INGH0LvQtdC90L7QsiBDQUIgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICfQktGA0LXQvNGPINC60Y3RiNC40YDQvtCy0LDQvdC40Y8g0LIg0LzQuNC90YPRgtCw0YUg0LTQu9GPINC/0LDQvdC10LvQuCDRg9C/0YDQsNCy0LvQtdC90LjRjyDQuNC30LzQtdC90LXQvdC40Y/QvNC4LiDQn9C+INGD0LzQvtC70YfQsNC90LjRjjogMyDRh9Cw0YHQsCAoMTgwINC80LjQvdGD0YIpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAn0JLRgNC10LzRjyDQutGN0YjQuNGA0L7QstCw0L3QuNGPINCyINC80LjQvdGD0YLQsNGFINC00LvRjyDRg9C/0YDQsNCy0LvQtdC90Lgg0LjQt9C80LXQvdC10L3QuNGP0LzQuC4g0J/QviDRg9C80L7Qu9GH0LDQvdC40Y46IDUg0LTQvdC10LkgKDcyMDAg0LzQuNC90YPRgikuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAn0KjQsNCx0LvQvtC9INC00LvRjyBDQUIg0JjQt9C80LXQvdC10L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJ9CY0YHRgtC+0YDQuNGPINC40LfQvNC10L3QtdC90LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAn0KHQv9C40YHQvtC6INCy0L7QstC70LXRh9C10L3QvdGL0YUg0YPRh9Cw0YHRgtC90LjQutC+0LIg0JjQt9C80LXQvdC10L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ9CY0LfQvNC10L3QuNGC0Ywg0LrQvtC70LjRh9C10YHRgtCy0L4g0YHRgtGA0L7Qui/Qt9Cw0L/QuNGB0LXQuSDQv9GA0Lgg0L/RgNC+0YHQvNC+0YLRgNC1INC40LfQvNC10L3QtdC90LjQuSDQsiDRhNC+0YDQvNCw0YLQtSBTbWFsbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJ9Ce0LHQt9C+0YAg0JjQt9C80LXQvdC10L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICfQn9C10YfQsNGC0Ywg0JjQt9C80LXQvdC10L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICfQoNCw0YHQv9C40YHQsNC90LjQtSDQuNC30LzQtdC90LXQvdC40LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJ9CY0LfQvNC10L3QtdC90LjQtSDRgNCw0YHQv9C40YHQsNC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAn0J/QvtC00YDQvtCx0L3Ri9C5INC/0YDQvtGB0LzQvtGC0YAg0LjQt9C80LXQvdC10L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJ9Cf0L7QtNGA0L7QsdC90YvQuSDQv9GA0L7RgdC80L7RgtGAINCY0LfQvNC10L3QtdC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAn0KjQsNCx0LvQvtC90Ysg0LjQt9C80LXQvdC10L3QuNC5INC4INC30LDQtNCw0YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAn0KjQsNCx0LvQvtC90Ysg0LjQt9C80LXQvdC10L3QuNC5INC4INC30LDQtNCw0YcsINC+0YLRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QvdGL0LUg0Y3RgtC40Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAn0J7QsdC70LDRgdGC0Ywg0JjQt9C80LXQvdC10L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGB0L/QuNGB0L7QuiDRgdC+0YLRgNGD0LTQvdC40LrQvtCyLCDQt9Cw0L3QuNC80LDRjtGJ0LjRhdGB0Y8g0LjQt9C80LXQvdC10L3QuNC10LwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICfQmNC30LzQtdC90LjRgtGMINC70LjQvNC40YIg0L3QsCDRgdGC0YDQsNC90LjRhtGDINC00LvRjyDQntCx0LfQvtGA0LAg0LjQt9C80LXQvdC10L3QuNC5ICgiU21hbGwiKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICfQmNC30LzQtdC90LjRgtGMINC40YHRgtC+0YfQvdC40Log0L/QvtC40YHQutCwIChiYWNrZW5kKSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRg9GB0LvQvtCy0LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICfQntCx0LfQvtGAINCj0YHQu9C+0LLQuNC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAn0J3QsNGB0YLRgNC+0LnRgtC1LCDQutCw0LrQvtC5INGN0LrRgNCw0L0g0YHQu9C10LTRg9C10YIg0L/QvtC60LDQt9GL0LLQsNGC0Ywg0L/QvtGB0LvQtSDRgdC+0LfQtNCw0L3QuNGPINC90L7QstC+0Lkg0LfQsNC00LDRh9C4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGH0LDRgdGC0L7RgtGDINC+0YLQv9GA0LDQstC60Lgg0YPQstC10LTQvtC80LvQtdC90LjQuSwg0LrQvtCz0LTQsCDQt9Cw0L/Qu9Cw0L3QuNGA0L7QstCw0L3QvdC+0LUg0LLRgNC10LzRjyDQvdCw0YfQsNC70LAg0LjQu9C4INC00YDRg9Cz0LjQtSDQstGA0LXQvNC10J3QvdGL0LUg0LfQvdCw0YfQtdC90LjRjyDQtNC+0YHRgtC40LPQvdGD0YLRiy/Qv9GA0L7RiNC70LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICfQodC+0LfQtNCw0YLRjCDQuNC30LzQtdC90LXQvdC40LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSAoZnJvbSBUZW1wbGF0ZSknfSA9ICfQodC+0LfQtNCw0YLRjCDQuNC30LzQtdC90LXQvdC40LUgKNC40Lcg0YjQsNCx0LvQvtC90LApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICfQodC+0LfQtNCw0YLRjCDQuNC30LzQtdC90LXQvdC40LUgKNC40Lcg0YjQsNCx0LvQvtC90LApINC40Lcg0Y3RgtC+0Lkg0LfQsNGP0LLQutC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJ9Ch0L7Qt9C00LDRgtGMINC40LfQvNC10L3QtdC90LjQtSDQuNC3INGN0YLQvtC5INC30LDRj9Cy0LrQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAn0KHQvtC30LTQsNC90LjQtSDQuCDRg9C/0YDQsNCy0LvQtdC90LjQtSDRg9Cy0LXQtNC+0LzQu9C10L3QuNGP0LzQuCDQsiBJVFNNINCj0L/RgNCw0LLQu9C10L3QuNC1INCY0LfQvNC10L3QtdC90LjRj9C80LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICfQotC40L8g0LfQsNC00LDRh9C4INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLiDQntC9INC00L7Qu9C20LXQvSDQsdGL0YLRjCDQvtC/0LjRgdCw0L0g0LIg0LrQsNGH0LXRgdGC0LLQtSDQutC70LDRgdGB0LAg0LIg0J7QsdGJ0LXQvCDQutCw0YLQsNC70L7Qs9C1INCyIElUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINCU0LXQudGB0YLQstC40Y8vQWN0aW9ucyDQutC+0LPQtNCwINC60L3QvtC/0LrQsCDQvdCw0YHRgtGA0L7QudC60Lgg0LTQvtGB0YLRg9C/0L3QsCDQsiDRgdCy0Y/Qt9Cw0L3QvdC+0Lwg0LLQuNC00LbQtdGC0LUgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4g0J7QsdGA0LDRgtC40YLQtSDQstC90LjQvNCw0L3QuNC1LCDRh9GC0L4g0Y3RgtC4INCU0LXQudGB0YLQstC40Y8vQWN0aW9ucyDQtNC+0LvQttC90Ysg0LjQvNC10YLRjCDQt9Cw0YDQtdCz0LjRgdGC0YDQuNGA0L7QstCw0L3QvdGL0LUgSlMg0LjQu9C4IENTUyDRhNCw0LnQu9GLOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyDQuCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAn0JfQsNC00LDQtdGCINC40L3QtNC40LrQsNGC0L7RgNGLINC00LvRjyDQutCw0LbQtNC+0LPQviDRgdC+0YHRgtC+0Y/QvdC40Y8g0LfQsNC00LDRh9C4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJ9Ce0L/RgNC10LTQtdC70LjRgtGMLCDQutCw0LrQuNC1INGB0YLQvtC70LHRhtGLINC+0YLQvtCx0YDQsNC20LDRjtGC0YHRjyDQsiDRgdCy0Y/Qt9Cw0L3QvdC+0Lwg0LLQuNC00LbQtdGC0LUg0JjQt9C80LXQvdC10L3QuNC5IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuINCf0YDQuNC80LXRh9Cw0L3QuNC1OiDQotC+0LvRjNC60L4g0LDRgtGA0LjQsdGD0YLRiyDQmNC30LzQtdC90LXQvdC40Y8g0YDQsNC30YDQtdGI0LXQvdGLINC00LvRjyBEZWZhdWx0Q29sdW1ucy4g0JLQvtC30LzQvtC20L3Ri9C1INC90LDRgdGC0YDQvtC50LrQuDogMCA9INCe0YLQutC70Y7Rh9C10L3QviwgMSA9INCS0LrQu9GO0YfQtdC90L4sIDIgPSDQktC60LvRjtGH0LXQvdC+INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAn0J7Qv9GA0LXQtNC10LvQuNGC0YwsINC60LDQutC40LUg0YHRgtC+0LvQsdGG0Ysg0L7RgtC+0LHRgNCw0LbQsNGO0YLRgdGPINCyINGB0LLRj9C30LDQvdC90L7QvCDQstC40LTQttC10YLQtSDQl9Cw0LTQsNGH0LAgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4g0J/RgNC40LzQtdGH0LDQvdC40LU6INCi0L7Qu9GM0LrQviDQsNGC0YDQuNCx0YPRgtGLINCX0LDQtNCw0YfQuCDRgNCw0LfRgNC10YjQtdC90Ysg0LTQu9GPIERlZmF1bHRDb2x1bW5zLiDQktC+0LfQvNC+0LbQvdGL0LUg0L3QsNGB0YLRgNC+0LnQutC4OiAwID0g0J7RgtC60LvRjtGH0LXQvdC+LCAxID0g0JLQutC70Y7Rh9C10L3QviwgMiA9INCS0LrQu9GO0YfQtdC90L4g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQvNC+0LTRg9C70Ywg0L/RgNC+0YHQvNC+0YLRgNCwINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINGB0L/QuNGB0LrQsCDQuNC30LzQtdC90LXQvdC40Lkg0LIgc21hbGwg0YTQvtGA0LzQsNGC0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINC80L7QtNGD0LvRjCDQv9GA0L7RgdC80L7RgtGA0LAg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0YHQv9C40YHQutCwINC30LDQtNCw0Ycg0LIgc21hbGwg0YTQvtGA0LzQsNGC0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAn0JfQsNC00LDQtdGCINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0L/QtdGH0LDRgtC4INC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICfQl9Cw0LTQsNC10YIg0LLQvtC30LzQvtC20L3QvtGB0YLRjCDQv9C10YfQsNGC0Lgg0L/Qu9Cw0L3QuNGA0YPQtdC80YvRhSDQt9Cw0YLRgNCw0YIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSBjaGFuZ2UgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIGNoYW5nZSBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJ9Ce0L/RgNC10LTQtdC70Y/QtdGCLCDQsdGD0LTRg9GCINC70LggKNC60LDQuiDQt9Cw0LTQsNC90L4g0LzQsNGI0LjQvdC+0Lkg0YHQvtGB0YLQvtGP0L3QuNC5KSDQutC+0L3QtdGH0L3Ri9C1INGB0L7RgdGC0L7Rj9C90LjRjyDQuNC30LzQtdC90LXQvdC40Y8g0YDQsNC30YDQtdGI0LXQvdGLICwg0LXRgdC70Lgg0LjQt9C80LXQvdC10L3QuNC1INCyINGB0L7RgdGC0L7Rj9C90LjQuCDQsdC70L7QutC40YDQvtCy0LrQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAn0J7Qv9GA0LXQtNC10LvRj9C10YIsINCx0YPQtNGD0YIg0LvQuCAo0LrQsNC6INC30LDQtNCw0L3QviDQvNCw0YjQuNC90L7QuSDRgdC+0YHRgtC+0Y/QvdC40LkpINC60L7QvdC10YfQvdGL0LUg0YHQvtGB0YLQvtGP0L3QuNGPINC30LDQtNCw0YfQuCDRgNCw0LfRgNC10YjQtdC90YssINC10YHQu9C4INC30LDQtNCw0YfQsCDQsiDRgdC+0YHRgtC+0Y/QvdC40Lgg0LHQu9C+0LrQuNGA0L7QstC60LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICfQl9Cw0LTQsNC10YIg0LLQvtC30LzQvtC20L3QvtGB0YLRjCDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICfQl9Cw0LTQsNC10YIg0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0Ywg0YPQutCw0LfQsNC90LjRjyDRhNCw0LrRgtC40YfQtdGB0LrQvtCz0L4g0LLRgNC10LzQtdC90Lgg0L3QsNGH0LDQu9CwINC4INC+0LrQvtC90YfQsNC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINCx0YPQtNC10YIg0LvQuCDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YzRgdGPINC30LXRgNC60LDQu9GM0L3QsNGPINCR0JQg0LTQu9GPINC/0L7QuNGB0LrQsCDQuNC30LzQtdC90LXQvdC40Lkg0Lgg0LfQsNC00LDRhy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHN0YXRlIGNhbiBiZSBzZXQgaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHBsYW5uZWQgZWZmb3J0IHNob3VsZCBiZSBzaG93bi4nfSA9ICfQl9Cw0LTQsNC10YIg0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0Ywg0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDQv9C70LDQvdC40YDRg9C10LzRi9GFINC30LDRgtGA0LDRgi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJ9CX0LDQtNCw0LXRgiDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC/0LXRh9Cw0YLQuCDQutC70LjQtdC90YLQvtC8INC30LDQv9GA0L7RiNC10L3QvdC+0Lkg0LTQsNGC0YsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC/0L7QuNGB0LrQsCDQutC70LjQtdC90YLQvtC8INC30LDQv9GA0L7RiNC10L3QvdC+0Lkg0LTQsNGC0YsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAn0JfQsNC00LDQtdGCINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0YPRgdGC0LDQvdC+0LLQutC4INC60LvQuNC10L3RgtC+0Lwg0LfQsNC/0YDQvtGI0LXQvdC90L7QuSDQtNCw0YLRiy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJ9CX0LDQtNCw0LXRgiDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC+0YLQsdGA0LDQttC10L3QuNGPINGDINC60LvQuNC10L3RgtCwINC30LDQv9GA0L7RiNC10L3QvdC+0Lkg0LTQsNGC0YsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAn0JfQsNC00LDQtdGCINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDRgdC+0YHRgtC+0Y/QvdC40Y8g0LfQsNC00LDRh9C4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLid9ID0gJ9CX0LDQtNCw0LXRgiDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LfQsNCz0L7Qu9C+0LLQutCwINC30LDQtNCw0YfQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJ9CX0LDQtNCw0LXRgiDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0LUg0LDRgtGA0LjQsdGD0YLRiyDQtNC40LDQs9GA0LDQvNC80YsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAn0JfQsNC00LXRgiwg0YfRgtC+INGC0L7Qu9GM0LrQviDQuNC30LzQtdC90LXQvdC40Y8g0YHQvtC00LXRgNC20LDRidC40LUg0LfQsNC00LDRh9C4INGB0LLRj9C30LDQvdC90YvQtSDRgSDRgdC10YDQstC40YHQsNC80Lgg0L3QsCDQutC+0YLQvtGA0YvQtSDRgyDQutC70LjQtdC90YLQsCDQtdGB0YLRjCDQv9GA0LDQstCwINCx0YPQtNGD0YIg0L7RgtC+0LHRgNCw0LbQsNGC0YzRgdGPLiDQm9GO0LHRi9C1INC00YDRg9Cz0LjQtSDQuNC30LzQtdC90LXQvdC40Y8g0L3QtSDQvtGC0L7QsdGA0LDQttCw0Y7RgtGB0Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJ9CX0LDQtNCw0LXRgiDRgdC+0YHRgtC+0Y/QvdC40Y8g0LjQt9C80LXQvdC10L3QuNGPINC60L7RgtC+0YDRi9C1INCx0YPQtNC10YIg0YDQsNC30YDQtdGI0LXQvdC+INGD0LTQsNC70LjRgtGMLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YHQvtGB0YLQvtGP0L3QuNGPINC40LfQvNC10L3QtdC90LjQuSDQuNGB0L/QvtC70YzQt9GD0LXQvNGL0LUg0LIg0YTQuNC70YzRgtGA0LDRhSDQsiDQvtCx0LfQvtGA0LUg0LjQt9C80LXQvdC10L3QuNC5IFBTQS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YHQvtGB0YLQvtGP0L3QuNGPINC40LfQvNC10L3QtdC90LjQuSDQuNGB0L/QvtC70YzQt9GD0LXQvNGL0LUg0LIg0YTQuNC70YzRgtGA0LDRhSDQsiDQvtCx0LfQvtGA0LUg0J/Qu9Cw0L3QuNGA0L7QstGJ0LjQutCwINC40LfQvNC10L3QtdC90LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdC+0YHRgtC+0Y/QvdC40Y8g0LjQt9C80LXQvdC10L3QuNC5INC40YHQv9C+0LvRjNC30YPQtdC80YvQtSDQsiDRhNC40LvRjNGC0YDQsNGFINCyINC+0LHQt9C+0YDQtSDQnNC+0LggQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdC+0YHRgtC+0Y/QvdC40Y8g0LjQt9C80LXQvdC10L3QuNC5INC40YHQv9C+0LvRjNC30YPQtdC80YvQtSDQsiDRhNC40LvRjNGC0YDQsNGFINCyINC+0LHQt9C+0YDQtSDQnNC+0Lgg0LjQt9C80LXQvdC10L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0L7RgdGC0L7Rj9C90LjRjyDQuNC30LzQtdC90LXQvdC40Lkg0LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C1INCyINGE0LjQu9GM0YLRgNCw0YUg0LIg0L7QsdC30L7RgNC1INC80LXQvdC10LTQttC10YDQvtCyINC40LfQvNC10L3QtdC90LjQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdC+0YHRgtC+0Y/QvdC40Y8g0LjQt9C80LXQvdC10L3QuNC5INC40YHQv9C+0LvRjNC30YPQtdC80YvQtSDQsiDRhNC40LvRjNGC0YDQsNGFINCyINC+0LHQt9C+0YDQtSDQuNC30LzQtdC90LXQvdC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0L7RgdGC0L7Rj9C90LjRjyDQuNC30LzQtdC90LXQvdC40Lkg0LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C1INCyINGE0LjQu9GM0YLRgNCw0YUg0LIg0L7QsdC30L7RgNC1INC40LfQvNC10L3QtdC90LjQuSDRg9C/0YDQsNCy0LvRj9C10LzRi9GFINC60LvQuNC10L3RgtC+0LwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQuNC80Y8g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINGE0LjQutGC0LjQstC90L7Qs9C+INC40LfQvNC10L3QtdC90LjRjywg0L3QtdC+0LHRhdC+0LTQuNC80L7QtSDQtNC70Y8g0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDRiNCw0LHQu9C+0L3QsCDQt9Cw0LTQsNGH0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdGC0LDQvdC00LDRgNGC0L3Ri9C1INC60YDQuNGC0LXRgNC40Lgg0YHQvtGA0YLQuNGA0L7QstC60Lgg0L/RgNC4INC/0YDQvtGB0LzQvtGC0YDQtSDQuNC30LzQtdC90LXQvdC40LkgUFNBLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0YLQsNC90LTQsNGA0YLQvdGL0LUg0LrRgNC40YLQtdGA0LjQuCDRgdC+0YDRgtC40YDQvtCy0LrQuCDQv9GA0Lgg0L/RgNC+0YHQvNC+0YLRgNC1INC40LfQvNC10L3QtdC90LjQuSDQvNC10L3QtdC00LbQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJ9CX0LDQtNCw0LXRgiDRgdGC0LDQvdC00LDRgNGC0L3Ri9C1INC60YDQuNGC0LXRgNC40Lgg0YHQvtGA0YLQuNGA0L7QstC60Lgg0L/RgNC4INC/0YDQvtGB0LzQvtGC0YDQtSDQuNC30LzQtdC90LXQvdC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0YLQsNC90LTQsNGA0YLQvdGL0LUg0LrRgNC40YLQtdGA0LjQuCDRgdC+0YDRgtC40YDQvtCy0LrQuCDQv9GA0Lgg0L/RgNC+0YHQvNC+0YLRgNC1INC40LfQvNC10L3QtdC90LjQuSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YHRgtCw0L3QtNCw0YDRgtC90YvQtSDQutGA0LjRgtC10YDQuNC4INGB0L7RgNGC0LjRgNC+0LLQutC4INC/0YDQuCDQv9GA0L7RgdC80L7RgtGA0LUg0JzQvtC40YUgQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdGC0LDQvdC00LDRgNGC0L3Ri9C1INC60YDQuNGC0LXRgNC40Lgg0YHQvtGA0YLQuNGA0L7QstC60Lgg0L/RgNC4INC/0YDQvtGB0LzQvtGC0YDQtSDQnNC+0LjRhSDQuNC30LzQtdC90LXQvdC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0YLQsNC90LTQsNGA0YLQvdGL0LUg0LrRgNC40YLQtdGA0LjQuCDRgdC+0YDRgtC40YDQvtCy0LrQuCDQv9GA0Lgg0L/RgNC+0YHQvNC+0YLRgNC1INCc0L7QuNGFINC30LDQtNCw0YcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0YLQsNC90LTQsNGA0YLQvdGL0LUg0LrRgNC40YLQtdGA0LjQuCDRgdC+0YDRgtC40YDQvtCy0LrQuCDQv9GA0Lgg0L/RgNC+0YHQvNC+0YLRgNC1INC40LfQvNC10L3QtdC90LjQuSDQsiDRgdC+0YHRgtC+0Y/QvdC40LggUElSLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdGC0LDQvdC00LDRgNGC0L3Ri9C1INC60YDQuNGC0LXRgNC40Lgg0YHQvtGA0YLQuNGA0L7QstC60Lgg0L/RgNC4INC/0YDQvtGB0LzQvtGC0YDQtSDQuNC30LzQtdC90LXQvdC40Lkg0L/Qu9Cw0L3QuNGA0YPQtdC80YvRhSDQutC70LjQtdC90YLQvtC8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0YLQsNC90LTQsNGA0YLQvdGL0LUg0LrRgNC40YLQtdGA0LjQuCDRgdC+0YDRgtC40YDQvtCy0LrQuCDQv9GA0Lgg0L/RgNC+0YHQvNC+0YLRgNC1INGI0LDQsdC70L7QvdC+0LIg0LjQt9C80LXQvdC10L3QuNC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJ9CX0LDQtNCw0LXRgiDRgdGC0LDQvdC00LDRgNGC0L3Ri9C5INC/0L7RgNGP0LTQvtC6INGB0L7RgNGC0LjRgNC+0LLQutC4INC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAg0JzQvtC4IENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAn0JfQsNC00LDQtdGCINGB0YLQsNC90LTQsNGA0YLQvdGL0Lkg0L/QvtGA0Y/QtNC+0Log0YHQvtGA0YLQuNGA0L7QstC60Lgg0LTQu9GPINC/0YDQvtGB0LzQvtGC0YDQsCDQnNC+0LjRhSDQuNC30LzQtdC90LXQvdC40LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YHRgtCw0L3QtNCw0YDRgtC90YvQuSDQv9C+0YDRj9C00L7QuiDRgdC+0YDRgtC40YDQvtCy0LrQuCDQtNC70Y8g0L/RgNC+0YHQvNC+0YLRgNCwINCc0L7QuNGFINC30LDQtNCw0YcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0gJ9CX0LDQtNCw0LXRgiDRgdGC0LDQvdC00LDRgNGC0L3Ri9C5INC/0L7RgNGP0LTQvtC6INGB0L7RgNGC0LjRgNC+0LLQutC4INC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAg0LjQt9C80LXQvdC10L3QuNC5INCyINGB0L7RgdGC0L7Rj9C90LjQuCBQSVIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICfQl9Cw0LTQsNC10YIg0YHRgtCw0L3QtNCw0YDRgtC90YvQuSDQv9C+0YDRj9C00L7QuiDRgdC+0YDRgtC40YDQvtCy0LrQuCDQtNC70Y8g0L/RgNC+0YHQvNC+0YLRgNCwIFBTQS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdGC0LDQvdC00LDRgNGC0L3Ri9C5INC/0L7RgNGP0LTQvtC6INGB0L7RgNGC0LjRgNC+0LLQutC4INC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAg0LjQt9C80LXQvdC10L3QuNC5INC80LXQvdC10LTQttC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAn0JfQsNC00LDQtdGCINGB0YLQsNC90LTQsNGA0YLQvdGL0Lkg0L/QvtGA0Y/QtNC+0Log0YHQvtGA0YLQuNGA0L7QstC60Lgg0LTQu9GPINC/0YDQvtGB0LzQvtGC0YDQsCDQuNC30LzQtdC90LXQvdC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0YLQsNC90LTQsNGA0YLQvdGL0Lkg0L/QvtGA0Y/QtNC+0Log0YHQvtGA0YLQuNGA0L7QstC60Lgg0LTQu9GPINC/0YDQvtGB0LzQvtGC0YDQsCDQuNC30LzQtdC90LXQvdC40Lkg0LLRi9C/0L7Qu9C90Y/QtdC80YvRhSDQsNCz0LXQvdGC0L7QvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YHRgtCw0L3QtNCw0YDRgtC90YvQuSDQv9C+0YDRj9C00L7QuiDRgdC+0YDRgtC40YDQvtCy0LrQuCDQtNC70Y8g0L/RgNC+0YHQvNC+0YLRgNCwINCy0YvQv9C+0LvQvdGP0LXQvNGL0YUg0LrQu9C40LXQvdGC0L7QvCDQuNC30LzQtdC90LXQvdC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAn0JfQsNC00LDQtdGCINGB0YLQsNC90LTQsNGA0YLQvdGL0Lkg0L/QvtGA0Y/QtNC+0Log0YHQvtGA0YLQuNGA0L7QstC60Lgg0LTQu9GPINC/0YDQvtGB0LzQvtGC0YDQsCDRiNCw0LHQu9C+0L3QvtCyINC40LfQvNC10L3QtdC90LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJ9CX0LDQtNCw0LXRgiDRgdGC0LDQvdC00LDRgNGC0L3QvtC1INC30L3QsNGH0LXQvdC40LUg0LTQu9GPINC60LDRgtC10LPQvtGA0LjQuCDQuNC30LzQtdC90LXQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAn0JfQsNC00LDQtdGCINGB0YLQsNC90LTQsNGA0YLQvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0LLQu9C40Y/QvdC40Y8gKGltcGFjdCkg0LjQt9C80LXQvdC10L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQv9C10YDQuNC+0LQgKNCyINCz0L7QtNCw0YUpLCDQsiDQutC+0YLQvtGA0L7QvCDQstGA0LXQvNGPINC90LDRh9Cw0LvQsCDQuCDQvtC60L7QvdGH0LDQvdC40Y8g0LzQvtCz0YPRgiDQsdGL0YLRjCDQstGL0LHRgNCw0L3Riy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0LUg0LDRgtGA0LjQsdGD0YLRiyDQt9Cw0LTQsNGH0Lgg0LIg0L/QvtC00YHQutCw0LfQutC1INC00LvRjyDQt9Cw0LTQsNGH0Lgg0L3QsCDQs9GA0LDRhNC40LrQtSDQv9GA0Lgg0L/RgNC+0YHQvNC+0YLRgNC1INC40LfQvNC10L3QtdC90LjRjy4g0JTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LTQuNC90LDQvNC40YfQtdGB0LrQuNGFINC/0L7Qu9C10Lkg0LIg0L/QvtC00YHQutCw0LfQutC1LCDQvtC90Lgg0LTQvtC70LbQvdGLINCx0YvRgtGMINGD0LrQsNC30LDQvdGLINC60LDQuiBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsINC4INGCLtC0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0L/QuNGB0L7QuiDQutC+0LvQvtC90L7QuiDQv9GA0Lgg0L/RgNC+0YHQvNC+0YLRgNC1INC40LfQvNC10L3QtdC90LjQuSBQU0EuINCd0LUg0LLQu9C40Y/QtdGCINC90LAg0L/QvtGA0Y/QtNC+0Log0LrQvtC70L7QvdC+0LouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdC/0LjRgdC+0Log0LrQvtC70L7QvdC+0Log0L/RgNC4INC/0YDQvtGB0LzQvtGC0YDQtSBDaGFuZ2UgU2NoZWR1bGUuINCd0LUg0LLQu9C40Y/QtdGCINC90LAg0L/QvtGA0Y/QtNC+0Log0LrQvtC70L7QvdC+0LouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0L/QuNGB0L7QuiDQutC+0LvQvtC90L7QuiDQv9GA0Lgg0L/RgNC+0YHQvNC+0YLRgNC1IE15Q0FCLiDQndC1INCy0LvQuNGP0LXRgiDQvdCwINC/0L7RgNGP0LTQvtC6INC60L7Qu9C+0L3QvtC6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YHQv9C40YHQvtC6INC60L7Qu9C+0L3QvtC6INC/0YDQuCDQv9GA0L7RgdC80L7RgtGA0LUgTXlDaGFuZ2VzLiDQndC1INCy0LvQuNGP0LXRgiDQvdCwINC/0L7RgNGP0LTQvtC6INC60L7Qu9C+0L3QvtC6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YHQv9C40YHQvtC6INC60L7Qu9C+0L3QvtC6INC/0YDQuCDQv9GA0L7RgdC80L7RgtGA0LUgTXlXb3Jrb3JkZXJzLiDQndC1INCy0LvQuNGP0LXRgiDQvdCwINC/0L7RgNGP0LTQvtC6INC60L7Qu9C+0L3QvtC6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBQSVIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YHQv9C40YHQvtC6INC60L7Qu9C+0L3QvtC6INC/0YDQuCDQv9GA0L7RgdC80L7RgtGA0LUgUElSINCd0LUg0LLQu9C40Y/QtdGCINC90LAg0L/QvtGA0Y/QtNC+0Log0LrQvtC70L7QvdC+0LouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0L/QuNGB0L7QuiDQutC+0LvQvtC90L7QuiDQv9GA0Lgg0L/RgNC+0YHQvNC+0YLRgNC1INC40LfQvNC10L3QtdC90LjQuSDQvNC10L3QtdC00LbQtdGA0LAuINCd0LUg0LLQu9C40Y/QtdGCINC90LAg0L/QvtGA0Y/QtNC+0Log0LrQvtC70L7QvdC+0LouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdC/0LjRgdC+0Log0LrQvtC70L7QvdC+0Log0L/RgNC4INC/0YDQvtGB0LzQvtGC0YDQtSDQuNC30LzQtdC90LXQvdC40LkuINCd0LUg0LLQu9C40Y/QtdGCINC90LAg0L/QvtGA0Y/QtNC+0Log0LrQvtC70L7QvdC+0LouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YHQv9C40YHQvtC6INC60L7Qu9C+0L3QvtC6INC/0YDQuCDQv9C+0LjRgdC60LUg0LjQt9C80LXQvdC10L3QuNC5LiDQndC1INCy0LvQuNGP0LXRgiDQvdCwINC/0L7RgNGP0LTQvtC6INC60L7Qu9C+0L3QvtC6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YHQv9C40YHQvtC6INC60L7Qu9C+0L3QvtC6INC/0YDQuCDQv9GA0L7RgdC80L7RgtGA0LUg0LjQt9C80LXQvdC10L3QuNC5INC60LvQuNC10L3RgtCwLiDQndC1INCy0LvQuNGP0LXRgiDQvdCwINC/0L7RgNGP0LTQvtC6INC60L7Qu9C+0L3QvtC6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdC/0LjRgdC+0Log0LrQvtC70L7QvdC+0Log0L/RgNC4INC/0YDQvtGB0LzQvtGC0YDQtSDRiNCw0LHQu9C+0L3QvtCyINC40LfQvNC10L3QtdC90LjQuS4g0J3QtSDQstC70LjRj9C10YIg0L3QsCDQv9C+0YDRj9C00L7QuiDQutC+0LvQvtC90L7Qui4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YLQuNC/0Ysg0YjQsNCx0LvQvtC90L7Qsiwg0LrQvtGC0L7RgNGL0LUg0LHRg9C00YPRgiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YzRgdGPINC60LAg0YTQuNC70YzRgtGA0Ysg0L/RgNC4INC/0YDQvtGB0LzQvtGC0YDQtSDRiNCw0LHQu9C+0L3QvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdC+0YHRgtC+0Y/QvdC40Y8g0LfQsNC00LDRhywg0LrQvtGC0L7RgNGL0LUg0LHRg9C00YPRgiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YzRgdGPINCyINC60LDRh9C10YHRgtCy0LUg0YTQuNC70YzRgtGA0LAg0L/RgNC4INC/0YDQvtGB0LzQvtGC0YDQtSDQnNC+0LjRhSDQt9Cw0LTQsNGHLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdC+0YHRgtC+0Y/QvdC40Y8g0LfQsNC00LDRhywg0LrQvtGC0L7RgNGL0LUg0LHRg9C00YPRgiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YzRgdGPINCyINC60LDRh9C10YHRgtCy0LUg0YTQuNC70YzRgtGA0LAg0L/RgNC4INC/0YDQvtGB0LzQvtGC0YDQtSBQSVIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YLQuNC/0Ysg0LfQsNC00LDRhywg0LrQvtGC0L7RgNGL0LUg0LHRg9C00YPRgiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YzRgdGPINC/0YDQuCDQv9GA0L7RgdC80L7RgtGA0LUgUElSLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICfQl9Cw0LTQsNC10YIsINGB0LvQtdC00YPQtdGCINC70Lgg0L7RgtC/0YDQsNCy0LvRj9GC0Ywg0YPQstC10LTQvtC80LvQtdC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJ9Cj0LTQsNC70LjRgtGMINC40LfQvNC10L3QtdC90LjQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSBjaGFuZ2UuJ30gPSAn0KPQtNCw0LvQuNGC0Ywg0LjQt9C80LXQvdC10L3QuNC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICfQo9C00LDQu9C40YLRjCDQt9Cw0LTQsNGH0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICfQlNC10YLQsNC70Lgg0LfQsNC/0LjRgdC4INCY0YHRgtC+0YDQuNC4INCY0LfQvNC10L3QtdC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINCw0LPQtdC90YLRgyDQv9C+0LzQtdC90Y/RgtGMINC+0YHRjCDQpSDQvdCwINCz0YDQsNGE0LjQutC1INC/0YDQuCDQtdCz0L4g0YHQvtC30LTQsNC90LjQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyBkb25lIGZvciBjb25maWcgaXRlbSBjbGFzc2VzLid9ID0KICAgICAgICAn0J7Qv9GA0LXQtNC10LvRj9C10YIsINC80L7QttC10YIg0LvQuCDQsdCw0LfQvtCy0YvQuSDQvNC+0LTRg9C70Ywg0L7RgtGH0LXRgtC+0LIg0YHRgtGA0L7QuNGC0Ywg0L7RgtGH0LXRgtGLINC+0LEg0LjQt9C80LXQvdC10L3QuNGP0YUg0LLRi9C/0L7Qu9C90LXQvdC90YvRhSDQtNC70Y8g0LrQu9Cw0YHRgdC+0LIg0YPRh9C10YLQvdGL0YUg0Y3Qu9C10LzQtdC90YLQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAn0J7Qv9GA0LXQtNC10LvRj9C10YIsINC80L7QttC10YIg0LvQuCDQsdCw0LfQvtCy0YvQuSDQvNC+0LTRg9C70Ywg0L7RgtGH0LXRgtC+0LIg0YHRgtGA0L7QuNGC0Ywg0L7RgtGH0LXRgtGLINC+0LEg0LjQt9C80LXQvdC10L3QuNGP0YUsINCyINC30LDQstC40YHQuNGB0LzQvtGB0YLQuCDQvtGCINGC0L7Qs9C+LCDQuNC30LzQtdC90Y/Qu9C+0YHRjCDQu9C4INGB0L7RgdGC0L7Rj9C90LjQtSDQuNC30LzQtdC90LXQvdC40Y8g0LfQsCDQv9C10YDQuNC+0LQg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICfQntC/0YDQtdC00LXQu9GP0LXRgiwg0LzQvtC20LXRgiDQu9C4INCx0LDQt9C+0LLRi9C5INC80L7QtNGD0LvRjCDQvtGC0YfQtdGC0L7QsiDRgdGC0YDQvtC40YLRjCDQvtGC0YfQtdGC0Ysg0L7QsSDQuNC30LzQtdC90LXQvdC40Y/RhSwg0LIg0LfQsNCy0LjRgdC40LzQvtGB0YLQuCDQvtGCINC+0YLQvdC+0YjQtdC90LjQuSDQvNC10LbQtNGDINC40LfQvNC10L3QtdC90LjQtdC8INC4INC30LDRj9Cy0LrQvtC5INC+0LEg0LjQvdGG0LjQtNC10L3RgtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAn0J7Qv9GA0LXQtNC10LvRj9C10YIsINC80L7QttC10YIg0LvQuCDQsdCw0LfQvtCy0YvQuSDQvNC+0LTRg9C70Ywg0L7RgtGH0LXRgtC+0LIg0YHRgtGA0L7QuNGC0Ywg0L7RgtGH0LXRgtGLINC+0LEg0LjQt9C80LXQvdC10L3QuNGP0YUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJ9Ce0L/RgNC10LTQtdC70Y/QtdGCLCDQvNC+0LbQtdGCINC70Lgg0LHQsNC30L7QstGL0Lkg0LzQvtC00YPQu9GMINC+0YLRh9C10YLQvtCyINGB0YLRgNC+0LjRgtGMINC+0YLRh9C10YLRiyDQviDQutC+0LvQuNGH0LXRgdGC0LLQtSDRgdC+0LfQtNCw0L3QvdGL0YUg0LfQsNGP0LLQuNGC0LXQu9C10Lwg0LfQsNGP0LLQvtC6INGBINC30LDQv9GA0L7RgdCw0LzQuCDQvdCwINC40LfQvNC10L3QtdC90LjQtSAoUmZjKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC/0L7Qu9GPICjQtNC70Y8g0LjQt9C80LXQvdC10L3QuNC5INC4INC30LDQtNCw0YcpLCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0LUg0L3QsCDRjdC60YDQsNC90LUg0L/QtdGH0LDRgtC4INC40LfQvNC10L3QtdC90LjQuSDQuNC90YLQtdGA0YTQtdC50YHQsCDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC/0L7Qu9GPLCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0LUg0LIg0L7QutC90LUg0LTQvtCx0LDQstC70LXQvdC40Y8g0LjQt9C80LXQvdC10L3QuNGPINCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC/0L7Qu9GPLCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0LUg0LIg0L7QutC90LUg0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDQuNC30LzQtdC90LXQvdC40Lkg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQv9C+0LvRjywg0L7RgtC+0LHRgNCw0LbQsNC10LzRi9C1INCyINC+0LrQvdC1INC/0L7QuNGB0LrQsCDQuNC30LzQtdC90LXQvdC40Lkg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C10YHQutC40LUg0L/QvtC70Y8sINC+0YLQvtCx0YDQsNC20LDQtdC80YvQtSDQsiDQvtC60L3QtSDQv9GA0L7RgdC80L7RgtGA0LAg0LjQt9C80LXQvdC10L3QuNC5INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C10YHQutC40LUg0L/QvtC70Y8sINC+0YLQvtCx0YDQsNC20LDQtdC80YvQtSDQsiDQvtC60L3QtSDQtNC+0LHQsNCy0LvQtdC90LjRjyDQt9Cw0LTQsNGH0Lgg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C10YHQutC40LUg0L/QvtC70Y8sINC+0YLQvtCx0YDQsNC20LDQtdC80YvQtSDQsiDQvtC60L3QtSDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINC30LDQtNCw0YfQuCDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC/0L7Qu9GPLCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0LUg0LIg0L7QutC90LUg0L7RgtGH0LXRgtCwINC/0L4g0LfQsNC00LDRh9Cw0Lwg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C10YHQutC40LUg0L/QvtC70Y8sINC+0YLQvtCx0YDQsNC20LDQtdC80YvQtSDQsiDQvtC60L3QtSDQv9GA0L7RgdC80L7RgtGA0LAg0LfQsNC00LDRh9C4INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAn0JzQvtC00YPQu9GMINGD0L/RgNCw0LLQu9C10L3QuNGPINGB0L7QsdGL0YLQuNGP0LzQuCDQtNC70Y8g0LTQuNC90LDQvNC40YfQtdGB0LrQuNGFINC/0L7Qu9C10Lkg0L/RgNC4INC40LfQvNC10L3QtdC90LjQuCDQo9GB0LvQvtCy0LjQuSwg0LXRgdC70Lgg0LTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC/0L7Qu9GPINC00L7QsdCw0LLQu9GP0Y7RgtGB0Y8sINC40LfQvNC10L3Rj9GO0YLRgdGPINC40LvQuCDRg9C00LDQu9GP0Y7RgtGB0Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0LjQt9C80LXQvdC10L3QuNC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0LjQt9C80LXQvdC10L3QuNC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0YPRgdC70L7QstC40Y8g0LjQt9C80LXQvdC10L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0LfQsNC00LDRh9GDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJ9Cf0LvQsNC90LjRgNC+0LLQsNC90LjQtSDQv9C10YDQtdC80LXRidC10L3QuNGPINCY0LfQvNC10L3QtdC90LjQuS4g0J7QsdC30L7RgCDQv9C+0YDRj9C00LrQsCDRg9GC0LLQtdGA0LbQtNC10L3QuNGPINCY0LfQvNC10L3QtdC90LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAn0JjRgdGC0L7RgNC40Y8g0L/QvtC00YDQvtCx0L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJ9Co0LDQsdC70L7QvdGLINC00LvRjyBJVFNNIENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjQtSDQo9GB0LvQvtCy0LjQuSDQtNC70Y8g0JjQt9C80LXQvdC10L3QuNC5IElUU00uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICfQntCx0LfQvtGAINCj0YHQu9C+0LLQuNC5INC00LvRjyDQmNC30LzQtdC90LXQvdC40LkgSVRTTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICfQntCx0LfQvtGAINCj0L/RgNCw0LLQu9GP0Y7RidC40YUg0JjQt9C80LXQvdC10L3QuNGP0LzQuCDQsiBJVFNNICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFBJUiBPdmVydmlldy4nfSA9ICfQntCx0LfQvtGAIElUU00gQ2hhbmdlIFBJUic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICfQn9GA0LDQstC40LvQsCDQo9Cy0LXQtNC+0LzQu9C10L3QuNGPINCyINCj0L/RgNCw0LLQu9C10L3QuNC4INCY0LfQvNC10L3QtdC90LjRj9C80LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAn0JjQt9C80LXQvdC10L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAn0J7QsdC30L7RgCDQnNC+0LhDQUIgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJ9Ce0LHQt9C+0YAg0JzQvtC40JjQt9C80LXQvdC10L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJ9Ce0LHQt9C+0YAg0JzQvtC40JfQsNC00LDRh9C4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICfQo9C00LDQu9C10L3QuNC1INGI0LDQsdC70L7QvdC+0LIgSVRTTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC1INGI0LDQsdC70L7QvdC+0LIgQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRgdC+0LTQtdGA0LbQuNC80L7QtSDRiNCw0LHQu9C+0L3QvtCyIElUU00uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRiNCw0LHQu9C+0L0gSVRTTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICfQntCx0LfQvtGAINGI0LDQsdC70L7QvdC+0LIg0LIgSVRTTSAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnSVRTTSDQvNC+0LTRg9C70Ywg0L7QsdGA0LDQsdC+0YLQutC4INGB0L7QsdGL0YLQuNC5LCDQvtGH0LjRidCw0Y7RidC40Lkg0YPRgdC70L7QstC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICdJVFNNINC80L7QtNGD0LvRjCDRg9C/0YDQsNCy0LvQtdC90LjRjyDRgdC+0LHRi9GC0LjRj9C80LgsINC60L7RgtC+0YDRi9C5INC+0YfQuNGJ0LDQtdGCINC60Y3RiCDQtNC70Y8g0L/QsNC90LXQu9C4INC40L3RgdGC0YDRg9C80LXQvdGC0L7Qsi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnSVRTTSDQvNC+0LTRg9C70Ywg0L7QsdGA0LDQsdC+0YLQutC4INGB0L7QsdGL0YLQuNC5LCDRg9C00LDQu9GP0Y7RidC40Lkg0LjRgdGC0L7RgNC40Y4g0JjQt9C80LXQvdC10L3QuNC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJ0lUU00g0LzQvtC00YPQu9GMINC+0LHRgNCw0LHQvtGC0LrQuCDRgdC+0LHRi9GC0LjQuSwg0L/RgNC+0LLQtdGA0Y/RjtGJ0LjQuSDRgdC+0L7RgtCy0LXRgtGB0YLQstC40LUg0YPRgdC70L7QstC40Y/QvCDQuCDQstGL0L/QvtC70L3Rj9GO0YnQuNC5INC00LXQudGB0YLQstC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICdJVFNNINC80L7QtNGD0LvRjCDQvtCx0YDQsNCx0L7RgtC60Lgg0YHQvtCx0YvRgtC40LksINC+0YLQv9GA0LDQstC70Y/RjtGJ0LjQuSDRg9Cy0LXQtNC+0LzQu9C10L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICdJVFNNINC80L7QtNGD0LvRjCDQvtCx0YDQsNCx0L7RgtC60Lgg0YHQvtCx0YvRgtC40LksINC+0LHQvdC+0LLQu9GP0Y7RidC40Lkg0LjRgdGC0L7RgNC40Y4g0LjQt9C80LXQvdC10L3QuNC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICdJVFNNINC80L7QtNGD0LvRjCDQvtCx0YDQsNCx0L7RgtC60Lgg0YHQvtCx0YvRgtC40LksINC+0LHQvdC+0LLQu9GP0Y7RidC40Lkg0LjRgdGC0L7RgNC40Y4g0KPRgdC70L7QstC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJ0lUU00g0LzQvtC00YPQu9GMINC+0LHRgNCw0LHQvtGC0LrQuCDRgdC+0LHRi9GC0LjQuSwg0L7QsdC90L7QstC70Y/RjtGJ0LjQuSDQuNGB0YLQvtGA0LjRjiDQl9Cw0LTQsNGHLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnSVRTTSDQvNC+0LTRg9C70Ywg0L7QsdGA0LDQsdC+0YLQutC4INGB0L7QsdGL0YLQuNC5LCDQv9C10YDQtdCy0YvRh9C40YHQu9GP0Y7RidC40Lkg0L3QvtC80LXRgNCwINC30LDQtNCw0YcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJ0lUU00g0LzQvtC00YPQu9GMINC+0LHRgNCw0LHQvtGC0LrQuCDRgdC+0LHRi9GC0LjQuSwg0YPRgdGC0LDQvdCw0LLQu9C40LLQsNGO0YnQuNC5INGE0LDQutGC0LjRh9C10YHQutC+0LUg0LLRgNC10LzRjyDQvdCw0YfQsNC70LAg0Lgg0L7QutC+0L3Rh9Cw0L3QuNGPINC30LDQtNCw0YcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICdJVFNNQ2hhbmdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01Xb3JrT3JkZXInfSA9ICdJVFNNV29ya09yZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAn0JXRgdC70Lgg0YfQsNGB0YLQvtGC0LAg0YPQutCw0LfQsNC90LAg0LrQsNC6ICJyZWd1bGFybHkiINCy0Ysg0LzQvtC20LXRgtC1INC30LDQtNCw0YLRjCDQutCw0Log0YfQsNGB0YLQviDQsdGD0LTRg9GCINC+0YLQv9GA0LDQstC70Y/RgtGM0YHRjyDRg9Cy0LXQtNC+0LzQu9C10L3QuNGPICjQutCw0LbQtNGL0LUg0KUg0YfQsNGB0L7QsikuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICfQodCy0Y/Qt9Cw0YLRjCDQtNGA0YPQs9C+0Lkg0L7QsdGK0LXQutGCINGBINC40LfQvNC10L3QtdC90LjQtdC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICfQodCy0Y/Qt9Cw0YLRjCDQtNGA0YPQs9C+0Lkg0L7QsdGK0LXQutGCINGBINC30LDQtNCw0YfQtdC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIHdvcmtvcmRlciBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAn0KHQv9C40YHQvtC6INGH0LvQtdC90L7QsiBDQUIg0LTQu9GPINCw0LLRgtC+0LfQsNCy0LXRgNGI0LXQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBhZ2VudHMsIHVzZWQgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJ9Ch0L/QuNGB0L7QuiDQsNCz0LXQvdGC0L7QsiDQtNC70Y8g0LDQstGC0L7Qt9Cw0LLQtdGA0YjQtdC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICfQnNC+0LTRg9C70YwsINC/0YDQvtCy0LXRgNGP0Y7RidC40LksINGH0YLQviBXb3JrT3JkZXJBZGQg0LjQu9C4IFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0YDQsNC30YDQtdGI0LXQvdGLLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIENBQiBtZW1iZXJzLid9ID0gJ9Cc0L7QtNGD0LvRjCDQv9GA0L7QstC10YDQutC4INGH0LvQtdC90L4gQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGFnZW50Lid9ID0gJ9Cc0L7QtNGD0LvRjCDQv9GA0L7QstC10YDQutC4INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICfQnNC+0LTRg9C70Ywg0L/RgNC+0LLQtdGA0LrQuCDRgdC+0YHRgtCw0LLQuNGC0LXQu9GPINC40LfQvNC10L3QtdC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICfQnNC+0LTRg9C70Ywg0L/RgNC+0LLQtdGA0LrQuCDQvNC10L3QtdC00LbQtdGA0LAg0LjQt9C80LXQvdC10L3QuNC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICfQnNC+0LTRg9C70Ywg0L/RgNC+0LLQtdGA0LrQuCDQt9Cw0LTQsNGHINCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nfSA9ICfQnNC+0LTRg9C70Ywg0L/RgNC+0LLQtdGA0LrQuCDQvtGC0YHRg9GC0YHRgtCy0LjRjyDQt9Cw0LTQsNGHINGDINCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAn0JzQvtC00YPQu9GMINC/0YDQvtCy0LXRgNC60Lgg0YHQvtC00LXRgNC20LjRgtGB0Y8g0LvQuCDQsNCz0LXQvdGCINCyINGB0L/QuNGB0LrQtSDQutC+0L3RhNC40LPRg9GA0LDRhtC40LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBzaG93IGEgbGluayB0byBjcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4gVGhlIHRpY2tldCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIG5ldyBjaGFuZ2UuJ30gPQogICAgICAgICfQnNC+0LTRg9C70Ywg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Lgg0YHRgdGL0LvQutC4INC90LAg0YHQvtC30LTQsNC90LjQtSDQuNC30LzQtdC90LXQvdC40Y8g0LjQtyDRjdGC0L7QuSDQt9Cw0Y/QstC60LguINCX0LDRj9Cy0LrQsCDQsdGD0LTQtdGCINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INGB0LLRj9C30LDQvdCwINGBINC90L7QstGL0Lwg0LjQt9C80LXQvdC10L3QuNC10LwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJ9Ch0LzQtdGB0YLQuNGC0Ywg0LTQuNCw0L/QsNC30L7QvSDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJ9Cf0LXRgNC10L3QtdGB0YLQuCDQstGB0LUg0LfQsNC00LDRh9C4INC/0L4g0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICfQndC+0LLQvtC1INC40Lcg0YjQsNCx0LvQvtC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Lgg0YLQvtC70YzQutC+INGD0LrQsNC30LDQvdC90YvRhSDQs9GA0YPQv9C/INC40LzQtdGO0YIg0L/RgNCw0LLQsCDQvdCwINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC1INGC0LjQv9C+0LIg0LfQsNGP0LLQvtC6INC30LDQtNCw0L3QvdGL0YUg0LIgIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIsINC10YHQu9C4INC/0LDRgNCw0LzQtdGC0YAgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIg0LLQutC70Y7Rh9C10L0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAn0J/RgNC+0YfQuNC1INC90LDRgdGC0YDQvtC50LrQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJ9Ce0LHQt9C+0YAg0LLRgdC10YUg0JjQt9C80LXQvdC10L3QuNC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICdQSVInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICdQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3L9CQ0L3QsNC70LjQtyDQv9C+0YHQu9C1INCy0YvQv9C+0LvQvdC10L3QuNGPKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQU0EnfSA9ICdQU0EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBvYmplY3QgaW4gdGhlIHByZWZlcmVuY2UgdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J/QsNGA0LDQvNC10YLRgNGLINC00LvRjyDQvtCx0YrQtdC60YLQsCBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgINCyINC/0YDQtdC00LLQsNGA0LjRgtC10LvRjNC90L7QvCDQv9GA0L7RgdC80L7RgtGA0LUg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIGNoYW5nZXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0J/QsNGA0LDQvNC10YLRgNGLINC00LvRjyDRgdGC0YDQsNC90LjRhiAo0L3QsCDQutC+0YLQvtGA0YvRhSDQvtGC0L7QsdGA0LDQttCw0Y7RgtGB0Y8g0LjQt9C80LXQvdC10L3QuNGPKSDQsiDQutGA0LDRgtC60L7QvCAoc21hbGwpINC+0LHQt9C+0YDQtSDQuNC30LzQtdC90LXQvdC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmZvcm1zIHRoZSBjb25maWd1cmVkIGFjdGlvbiBmb3IgZWFjaCBldmVudCAoYXMgYW4gSW52b2tlcikgZm9yIGVhY2ggY29uZmlndXJlZCBXZWJzZXJ2aWNlLid9ID0KICAgICAgICAn0JLRi9C/0L7Qu9C90Y/QtdGCINC30LDQtNCw0L3QvdC+0LUg0LTQtdC50YHRgtCy0LjQtSDQtNC70Y8g0LrQsNC20LTQvtCz0L4g0YHQvtCx0YvRgtC40Y8gKNC60LDQuiBJbnZva2VyKSDQtNC70Y8g0LrQsNC20LTQvtCz0L4g0L3QsNGB0YLRgNC+0LXQvdC90L7Qs9C+IFdlYnNlcnZpY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAn0J/QtdGH0LDRgtGMINC40LfQvNC10L3QtdC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICfQn9C10YfQsNGC0Ywg0LfQsNC00LDRh9C4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICfQn9GA0L7QtdC60YLQuNGA0YPQtdC80LDRjyDQtNC+0YHRgtGD0L/QvdC+0YHRgtGMINGB0LXRgNCy0LjRgdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJ9Cf0YDQvtC10LrRgtC40YDRg9C10LzQsNGPINC00L7RgdGC0YPQv9C90L7RgdGC0Ywg0YHQtdGA0LLQuNGB0LAgKFBTQSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAn0J/RgNC+0LXQutGC0LjRgNGD0LXQvNCw0Y8g0LTQvtGB0YLRg9C/0L3QvtGB0YLRjCDRgdC10YDQstC40YHQsCAoUFNBKSDQtNC70Y8g0JjQt9C80LXQvdC10L3QuNC5LiDQntCx0LfQvtGAINGD0YLQstC10YDQttC00LXQvdC90YvRhSDQmNC30LzQtdC90LXQvdC40Lkg0Lgg0LjRhSDQodC10YDQstC40YHQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAn0J/RgNC40LLQuNC70LXQs9C40LgsINGC0YDQtdCx0YPQtdC80YvQtSDQsNCz0LXQvdGC0YMg0LTQu9GPINC/0YDQuNC90Y/RgtC40Y8g0LfQsNC00LDRh9C4INCyINGA0LDQsdC+0YLRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLid9ID0gJ9Cf0YDQuNCy0LjQu9C10LPQuNC4LCDRgtGA0LXQsdGD0LXQvNGL0LUg0LDQs9C10L3RgtGDINC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAg0LLRgdC10YUg0LjQt9C80LXQvdC10L3QuNC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICfQn9GA0LjQstC40LvQtdCz0LjQuCwg0YLRgNC10LHRg9C10LzRi9C1INCw0LPQtdC90YLRgyDQtNC70Y8g0LTQvtCx0LDQstC70LXQvdC40Y8g0L3QvtCy0L7QuSDQt9Cw0LTQsNGH0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAn0J/RgNC40LLQuNC70LXQs9C40LgsINGC0YDQtdCx0YPQtdC80YvQtSDQsNCz0LXQvdGC0YMg0LTQu9GPINC40LfQvNC10L3QtdC90LjRjyDQsNCz0LXQvdGC0LAg0LfQsNC00LDRh9C4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAn0J/RgNC40LLQuNC70LXQs9C40LgsINGC0YDQtdCx0YPQtdC80YvQtSDQsNCz0LXQvdGC0YMg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0YjQsNCx0LvQvtC90LAg0LjQtyDQuNC30LzQtdC90LXQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICfQn9GA0LjQstC40LvQtdCz0LjQuCwg0YLRgNC10LHRg9C10LzRi9C1INCw0LPQtdC90YLRgyDQtNC70Y8g0YHQvtC30LTQsNC90LjRjyDRiNCw0LHQu9C+0L3QsCDQuNC3INC40LfQvNC10L3QtdC90LjRjyDQuNC70LggQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAn0J/RgNC40LLQuNC70LXQs9C40LgsINGC0YDQtdCx0YPQtdC80YvQtSDQsNCz0LXQvdGC0YMg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0YjQsNCx0LvQvtC90LAg0LjQtyDQt9Cw0LTQsNGH0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAn0J/RgNCw0LLQsCwg0YLRgNC10LHRg9C10LzRi9C1INC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINC40LfQvNC10L3QtdC90LjQuSDRgSDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdC8INGI0LDQsdC70L7QvdC+0LIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAn0J/RgNC40LLQuNC70LXQs9C40LgsINGC0YDQtdCx0YPQtdC80YvQtSDQsNCz0LXQvdGC0YMg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0LjQt9C80LXQvdC10L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJ9Cf0YDQuNCy0LjQu9C10LPQuNC4LCDRgtGA0LXQsdGD0LXQvNGL0LUg0LDQs9C10L3RgtGDINC00LvRjyDRg9C00LDQu9C10L3QuNGPINGI0LDQsdC70L7QvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICfQn9GA0LjQstC40LvQtdCz0LjQuCwg0YLRgNC10LHRg9C10LzRi9C1INCw0LPQtdC90YLRgyDQtNC70Y8g0YPQtNCw0LvQtdC90LjRjyDQt9Cw0LTQsNGH0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGNoYW5nZXMuJ30gPSAn0J/RgNCw0LLQsCwg0YLRgNC10LHRg9C10LzRi9C1INC00LvRjyDRg9C00LDQu9C10L3QuNGPINC40LfQvNC10L3QtdC90LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAn0J/RgNC40LLQuNC70LXQs9C40LgsINGC0YDQtdCx0YPQtdC80YvQtSDQsNCz0LXQvdGC0YMg0LTQu9GPINGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8g0YjQsNCx0LvQvtC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICfQn9GA0LjQstC40LvQtdCz0LjQuCwg0YLRgNC10LHRg9C10LzRi9C1INCw0LPQtdC90YLRgyDQtNC70Y8g0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDQt9Cw0LTQsNGH0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBjaGFuZ2VzLid9ID0gJ9Cf0YDQuNCy0LjQu9C10LPQuNC4LCDRgtGA0LXQsdGD0LXQvNGL0LUg0LDQs9C10L3RgtGDINC00LvRjyDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINC40LfQvNC10L3QtdC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAn0J/RgNC40LLQuNC70LXQs9C40LgsINGC0YDQtdCx0YPQtdC80YvQtSDQsNCz0LXQvdGC0YMg0LTQu9GPINGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8g0YPRgdC70L7QstC40Lkg0LjQt9C80LXQvdC10L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICfQn9GA0LDQstCwLCDQvdC10L7QsdGF0L7QtNC40LzRi9C1INC00LvRjyDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINGB0L7QtNC10YDQttC40LzQvtCz0L4g0YjQsNCx0LvQvtC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgaW52b2x2ZWQgcGVyc29ucyBvZiBhIGNoYW5nZS4nfSA9CiAgICAgICAgJ9Cf0YDQuNCy0LjQu9C10LPQuNC4LCDRgtGA0LXQsdGD0LXQvNGL0LUg0LDQs9C10L3RgtGDINC00LvRjyDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINGB0L/QuNGB0LrQsCDQstC+0LLQu9C10YfQtdC90L3Ri9GFINGB0L7RgtGA0YPQtNC90LjQutC+0LIg0LIg0LjQt9C80LXQvdC10L3QuNC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIG1vdmUgY2hhbmdlcyBpbiB0aW1lLid9ID0gJ9Cf0YDQuNCy0LjQu9C10LPQuNC4LCDRgtGA0LXQsdGD0LXQvNGL0LUg0LDQs9C10L3RgtGDINC00LvRjyDRgdC00LLQuNCz0LAg0LLRgNC10LzQtdC90J3Ri9GFINCz0YDQsNC90LjRhiDQuNC30LzQtdC90LXQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAn0J/RgNC40LLQuNC70LXQs9C40LgsINGC0YDQtdCx0YPQtdC80YvQtSDQsNCz0LXQvdGC0YMg0LTQu9GPINC/0LXRh9Cw0YLQuCDQuNC30LzQtdC90LXQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICfQn9GA0LDQstCwLCDRgtGA0LXQsdGD0LXQvNGL0LUg0LTQu9GPINC+0YfQuNGB0YLQutC4INC40LfQvNC10L3QtdC90LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJ9Cf0YDQuNCy0LjQu9C10LPQuNC4LCDRgtGA0LXQsdGD0LXQvNGL0LUg0LDQs9C10L3RgtGDINC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAg0LfQsNC00LDRh9C4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICfQn9GA0LjQstC40LvQtdCz0LjQuCwg0YLRgNC10LHRg9C10LzRi9C1INCw0LPQtdC90YLRgyDQtNC70Y8g0L/RgNC+0YHQvNC+0YLRgNCwINC40LfQvNC10L3QtdC90LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICfQn9GA0LjQstC40LvQtdCz0LjQuCwg0YLRgNC10LHRg9C10LzRi9C1INCw0LPQtdC90YLRgyDQtNC70Y8g0L/RgNC+0YHQvNC+0YLRgNCwINGB0L/QuNGB0LrQsCDQuNC30LzQtdC90LXQvdC40LksINCyINC60L7RgtC+0YDRi9GFINCw0LPQtdC90YIg0Y/QstC70Y/QtdGC0YHRjyDRh9C70LXQvdC+0LwgQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJ9Cf0YDQuNCy0LjQu9C10LPQuNC4LCDRgtGA0LXQsdGD0LXQvNGL0LUg0LDQs9C10L3RgtGDINC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAg0YHQv9C40YHQutCwINC40LfQvNC10L3QtdC90LjQuSwg0LIg0LrQvtGC0L7RgNGL0YUg0LDQs9C10L3RgiDRj9Cy0LvRj9C10YLRgdGPINC80LXQvdC10LTQttC10YDQvtC8INC40LfQvNC10L3QtdC90LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICfQn9GA0LjQstC40LvQtdCz0LjQuCwg0YLRgNC10LHRg9C10LzRi9C1INCw0LPQtdC90YLRgyDQtNC70Y8g0L/RgNC+0YHQvNC+0YLRgNCwINCy0YHQtdGFINGI0LDQsdC70L7QvdC+0LIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJ9Cf0YDQuNCy0LjQu9C10LPQuNC4LCDRgtGA0LXQsdGD0LXQvNGL0LUg0LDQs9C10L3RgtGDINC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAg0YPRgdC70L7QstC40Lkg0LjQt9C80LXQvdC10L3QuNC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAn0J/RgNC40LLQuNC70LXQs9C40LgsINGC0YDQtdCx0YPQtdC80YvQtSDQsNCz0LXQvdGC0YMg0LTQu9GPINC/0YDQvtGB0LzRgtC+0YDQsCDQuNGB0YLQvtGA0LjQuCDQuNC30LzQtdC90LXQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIHdvcmtvcmRlci4nfSA9ICfQn9GA0LjQstC40LvQtdCz0LjQuCwg0YLRgNC10LHRg9C10LzRi9C1INCw0LPQtdC90YLRgyDQtNC70Y8g0L/RgNC+0YHQvNC+0YLRgNCwINC40YHRgtC+0YDQuNC4INC30LDQtNCw0YfQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJ30gPSAn0J/RgNC40LLQuNC70LXQs9C40LgsINGC0YDQtdCx0YPQtdC80YvQtSDQsNCz0LXQvdGC0YMg0LTQu9GPINC/0YDQvtGB0LzQvtGC0YDQsCDQv9C+0LTRgNC+0LHQvdC+0Lkg0LjRgdGC0L7RgNC40Lgg0LjQt9C80LXQvdC10L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJ9Cf0YDQuNCy0LjQu9C10LPQuNC4LCDRgtGA0LXQsdGD0LXQvNGL0LUg0LDQs9C10L3RgtGDINC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAg0L/QvtC00YDQvtCx0L3QvtC5INC40YHRgtC+0YDQuNC4INC30LDQtNCw0YfQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICfQn9GA0LjQstC40LvQtdCz0LjQuCwg0YLRgNC10LHRg9C10LzRi9C1INCw0LPQtdC90YLRgyDQtNC70Y8g0L/RgNC+0YHQvNC+0YLRgNCwINGB0L/QuNGB0LrQsCDQn9C70LDQvdC40YDQvtCy0YnQuNC60LAg0LjQt9C80LXQvdC10L3QuNC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICfQn9GA0LjQstC40LvQtdCz0LjQuCwg0YLRgNC10LHRg9C10LzRi9C1INCw0LPQtdC90YLRgyDQtNC70Y8g0L/RgNC+0YHQvNC+0YLRgNCwINGB0L/QuNGB0LrQsCBQU0EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICfQn9GA0LjQstC40LvQtdCz0LjQuCwg0YLRgNC10LHRg9C10LzRi9C1INCw0LPQtdC90YLRgyDQtNC70Y8g0L/RgNC+0YHQvNC+0YLRgNCwINGB0L/QuNGB0LrQsCDQuNC30LzQtdC90LXQvdC40Lkg0YEg0L/RgNC10LTRgdGC0L7Rj9GJ0LjQvCBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJ9Cf0YDQuNCy0LjQu9C10LPQuNC4LCDRgtGA0LXQsdGD0LXQvNGL0LUg0LDQs9C10L3RgtGDINC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAg0YHQvtCx0YHRgtCy0LXQvdC90YvRhSDQuNC30LzQtdC90LXQvdC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICfQn9GA0LjQstC40LvQtdCz0LjQuCwg0YLRgNC10LHRg9C10LzRi9C1INCw0LPQtdC90YLRgyDQtNC70Y8g0L/RgNC+0YHQvNC+0YLRgNCwINGB0L/QuNGB0LrQsCDRgdC+0LHRgdGC0LLQtdC90L3Ri9GFINC30LDQtNCw0YcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAn0J/RgNC40LLQuNC70LXQs9C40LgsINGC0YDQtdCx0YPQtdC80YvQtSDQsNCz0LXQvdGC0YMg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0L7RgtGH0LXRgtCwINC/0L4g0LfQsNC00LDRh9Cw0LwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJ9Ce0YfQuNGB0YLQuNGC0Ywg0JjQt9C80LXQvdC10L3QuNC1INC4INC10LPQviDQl9Cw0LTQsNGH0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAn0J7Rh9C40YHRgtC40YLRjCDQuNC30LzQtdC90LXQvdC40LUg0Lgg0LXQs9C+INC30LDQtNCw0YfQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJ9CX0LDQv9GD0YHRgtC40YLRjCDQt9Cw0LTQsNC90LjQtSDQtNC70Y8g0L/RgNC+0LLQtdGA0LrQuCDQtNC+0YHRgtC40LbQuNC80L7RgdGC0Lgg0LfQvdCw0YfQtdC90LjQuSDQstGA0LXQvNC10L3QuCDQsiDQmNC30LzQtdC90LXQvdC40Y/RhSDQuCDQl9Cw0LTQsNGH0LDRhS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZS4nfSA9ICfQodC+0YXRgNCw0L3QuNGC0Ywg0LjQt9C80LXQvdC10L3QuNC1INC60LDQuiDRiNCw0LHQu9C+0L0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAn0KHQvtGF0YDQsNC90LjRgtGMINC30LDQtNCw0YfRgyDQutCw0Log0YjQsNCx0LvQvtC9Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJ9Cg0LDRgdC/0LjRgdCw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJ9Cf0L7QutCw0LfQsNGC0Ywg0Y3RgtC+0YIg0Y3QutGA0LDQvSDQv9C+0YHQu9C1INGB0L7Qt9C00LDQvdC40Y8g0L3QvtCy0L7QuSDQt9Cw0LTQsNGH0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICfQn9C+0LjRgdC6INC40LfQvNC10L3QtdC90LjQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICfQn9C+0LjRgdC6INC40LfQvNC10L3QtdC90LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdC/0L7RgdC+0LEg0LPQtdC90LXRgNCw0YbQuNC4INC90L7QvNC10YDQvtCyINC40LfQvNC10L3QtdC90LjQuS4gICJBdXRvSW5jcmVtZW50IiAtINGD0LLQtdC70LjRh9C40LLQsNC10YIg0L3QvtC80LXRgCDQvdCwIDEsINGE0L7RgNC80LDRgiAtIFN5c3RlbUlELmNvdW50ZXIgKNC90LDQv9GA0LjQvNC10YAsIDEwMDExOCwgMTAwMTE5KS4gICJEYXRlIiAtINC40YHQv9C+0LvRjNC30YPQtdGCINGC0LXQutGD0YnRg9GOINC00LDRgtGDLCBTeXN0ZW1JRCDQuCDRgdGH0LXRgtGH0LjQuiwg0LLQuNC0OiBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5jb3VudGVyIC0gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gIkRhdGVDaGVja3N1bSIgLSDRgdGH0LXRgtGH0LjQuiDQtNC+0L/QvtC70L3Rj9C10YLRgdGPINC60L7QvdGC0YDQvtC70YzQvdC+0Lkg0YHRg9C80LzQvtC5INC6INGB0YLRgNC+0LrQtSDQuNC3INC00LDRgtGLINC4IFN5c3RlbUlELiDQpNC+0YDQvNCw0YIg0YHRgtGA0L7QuNGC0YHRjyDQutCw0LogWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bS4g0JrQvtC90YLRgNC+0LvRjNC90LDRjyDRgdGD0LzQvNCwINC+0LHQvdC+0LLQu9GP0LXRgtGB0Y8g0LXQttC10LTQvdC10LLQvdC+LCDQstC40LQ6IDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAn0J3QsNC30L3QsNGH0LjRgtGMINCw0LPQtdC90YLQsCDQv9C+INC30LDQtNCw0YfQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQvNC40L3QuNC80LDQu9GM0L3QvtC1INC60L7Qu9C40YfQtdGB0YLQstC+INGA0LDQt9GA0Y/QtNC+0LIg0LTQu9GPINGB0YfQtdGC0YfQuNC60LAg0LjQt9C80LXQvdC10L3QuNC5ICjQtdGB0LvQuCDQstGL0LHRgNCw0L0g0YLQuNC/ICAiQXV0b0luY3JlbWVudCIg0LTQu9GPIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuINCf0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIC0gNSwg0YfRgtC+INC+0LfQvdCw0YfQsNC10YIsINGH0YLQviDQvdCw0YfQsNC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDRgdGH0LXRgtGH0LjQutCwINCx0YPQtNC10YIgMTAwMDAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAn0JfQsNC00LDQtdGCIHN0YXRlIG1hY2hpbmUg0LTQu9GPINC40LfQvNC10L3QtdC90LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICfQl9Cw0LTQsNC10YIgc3RhdGUgbWFjaGluZSDQtNC70Y8g0LfQsNC00LDQvdC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7RgtC+0LHRgNCw0LbQsNC10YIg0YHRgdGL0LvQutGDINCyINC80LXQvdGOLCDQutC+0YLQvtGA0LDRjyDQv9C+0LfQstC+0LvRj9C10YIg0L7Qv9GA0LXQtNC10LvQuNGC0Ywg0LjQt9C80LXQvdC10L3QuNGPINC60LDQuiDRiNCw0LHQu9C+0L0g0LIg0LTQtdGC0LDQu9GM0L3QvtC8INC/0YDQvtGB0LzQvtGC0YDQtSDQuNC30LzQtdC90LXQvdC40Y8g0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntGC0L7QsdGA0LDQttCw0LXRgiDRgdGB0YvQu9C60YMg0LIg0LzQtdC90Y4sINC60L7RgtC+0YDQsNGPINC/0L7Qt9Cy0L7Qu9GP0LXRgiDQvtC/0YDQtdC00LXQu9C40YLRjCDQl9Cw0LTQsNGH0YMg0LrQsNC6INGI0LDQsdC70L7QvSDQsiDQtNC10YLQsNC70YzQvdC+0Lwg0L/RgNC+0YHQvNC+0YLRgNC1INCX0LDQtNCw0YfQuCDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBlZGl0aW5nIHRoZSByZXBvcnQgb2YgYSB3b3Jrb3JkZXIsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0YLQvtCx0YDQsNC20LDQtdGCINGB0YHRi9C70LrRgyDQsiDQvNC10L3Rjiwg0LrQvtGC0L7RgNCw0Y8g0L/QvtC30LLQvtC70Y/QtdGCINGD0YHRgtCw0L3QvtCy0LjRgtGMINGB0LLRj9C30Ywg0LjQt9C80LXQvdC10L3QuNGPINGBINC00YDRg9Cz0LjQvCDQvtCx0YrQtdC60YLQvtGA0Lwg0LIg0LTQtdGC0LDQu9GM0L3QvtC8INC/0YDQvtGB0LzQvtGC0YDQtSDQuNC30LzQtdC90LXQvdC40Y8g0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntGC0L7QsdGA0LDQttCw0LXRgiDRgdGB0YvQu9C60YMg0LIg0LzQtdC90Y4g0LrQvtGC0L7RgNCw0Y8g0L/QvtC30LLQvtC70Y/QtdGCINC/0LXRgNC10LzQtdGJ0LDRgtGMINCy0YDQtdC80LXQvdC90L7QuSDQuNC90YLQtdGA0LLQsNC7INC40LfQvNC10L3QtdC90LjRjyDQsiDQtdCz0L4g0LTQtdGC0LDQu9GM0L3QvtC8INC/0YDQvtGB0LzQvtGC0YDQtSDQsiDQsNCz0LXQvdGC0YHQutC+0Lwg0LjQvdGC0LXRgNGE0LXQudGB0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0YLQvtCx0YDQsNC20LDQtdGCINGB0YHRi9C70LrRgyDQutC+0YLQvtGA0LDRjyDQv9C+0LfQstC+0LvRj9C10YIg0L/RgNC40L3Rj9GC0Ywg0LfQsNC00LDRh9GDINCyINGA0LDQsdC+0YLRgyDQv9GA0Lgg0LXRkSDQtNC10YLQsNC70YzQvdC+0Lwg0L/RgNC+0YHQvNC+0YLRgNC1INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7RgtC+0LHRgNCw0LbQsNC10YIg0YHRgdGL0LvQutGDINCyINC80LXQvdGOINC00LvRjyDQtNC+0YHRgtGD0L/QsCDQuiDRg9GB0LvQvtCy0LjRj9C8INC40LfQvNC10L3QtdC90LjRjyDQsiDQtdCz0L4g0LTQtdGC0LDQu9GM0L3QvtC8INC/0YDQvtGB0LzQvtGC0YDQtSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0YLQvtCx0YDQsNC20LDQtdGCINGB0YHRi9C70LrRgyDQsiDQvNC10L3RjyDQtNC70Y8g0LTQvtGB0YLRg9C/0LAg0Log0LjRgdGC0L7RgNC40Lgg0LjQt9C80LXQvdC10L3QuNGPINCyINC10LPQviDQtNC10YLQsNC70YzQvdC+0Lwg0L/RgNC+0YHQvNC+0YLRgNC1INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntGC0L7QsdGA0LDQttCw0LXRgiDRgdGB0YvQu9C60YMg0LIg0LzQtdC90Y4g0LTQu9GPINC00L7RgdGC0YPQv9CwINC6INC40YHRgtC+0YDQuNC4INCX0LDQtNCw0YfQuCDQv9GA0Lgg0LXRkSDQtNC10YLQsNC70YzQvdC+0Lwg0L/RgNC+0YHQvNC+0YLRgNC1INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7RgtC+0LHRgNCw0LbQsNC10YIg0YHRgdGL0LvQutGDINCyINC80LXQvdGOINC00LvRjyDQtNC+0LHQsNCy0LvQtdC90LjRjyDQl9Cw0LTQsNGH0Lgg0LIg0LTQtdGC0LDQu9GM0L3QvtC8INC/0YDQvtGB0LzQvtGC0YDQtSDQmNC30LzQtdC90LXQvdC40Y8g0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cf0L7QutCw0LfRi9Cy0LDQtdGCINC/0YPQvdC60YIg0LzQtdC90Y4g0LTQu9GPINGD0LTQsNC70LXQvdC40Y8g0LjQt9C80LXQvdC10L3QuNGPINC/0YDQuCDQtdCz0L4g0L/QvtC00YDQvtCx0L3QvtC8INC/0YDQvtGB0LzQvtGC0YDQtSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J/QvtC60LDQt9GL0LLQsNC10YIg0L/Rg9C90LrRgiDQvNC10L3RjiDQtNC70Y8g0YPQtNCw0LvQtdC90LjRjyDQt9Cw0LTQsNGH0Lgg0L/RgNC4INC10ZEg0L/QvtC00YDQvtCx0L3QvtC8INC/0YDQvtGB0LzQvtGC0YDQtSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntGC0L7QsdGA0LDQttCw0LXRgiDRgdGB0YvQu9C60YMg0LIg0LzQtdC90Y4g0LTQu9GPINGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8g0LjQt9C80LXQvdC10L3RjyDQsiDQtdCz0L4g0LTQtdGC0LDQu9GM0L3QvtC8INC/0YDQvtGB0LzQvtGC0YDQtSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntGC0L7QsdGA0LDQttCw0LXRgiDRgdGB0YvQu9C60YMg0LIg0LzQtdC90Y4g0LTQu9GPINGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8g0JfQsNC00LDRh9C4INCyINC10ZEg0LTQtdGC0LDQu9GM0L3QvtC8INC/0YDQvtGB0LzQvtGC0YDQtSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntGC0L7QsdGA0LDQttCw0LXRgiDRgdGB0YvQu9C60YMg0LIg0LzQtdC90Y4g0LTQu9GPINCy0L7Qt9Cy0YDQsNGC0LAg0LIg0LTQtdGC0LDQu9GM0L3Ri9C5INC/0YDQvtGB0LzQvtGC0YAg0LjQt9C80LXQvdC10L3QuNGPINCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0YLQvtCx0YDQsNC20LDQtdGCINGB0YHRi9C70LrRgyDQsiDQvNC10L3RjiDQtNC70Y8g0LLQvtC30LLRgNCw0YLQsCDQvdCw0LfQsNC0INCyINC00LXRgtCw0LvRjNC90L7QvCDQv9GA0L7RgdC80L7RgtGA0LUg0JfQsNC00LDRh9C4INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntGC0L7QsdGA0LDQttCw0LXRgiDRgdGB0YvQu9C60YMg0LIg0LzQtdC90Y4g0LTQu9GPINC/0LXRh9Cw0YLQuCDQuNC30LzQtdC90LXQvdC40Y8g0L/RgNC4INC10LPQviDQtNC10YLQsNC70YzQvdC+0Lwg0L/RgNC+0YHQvNC+0YLRgNC1INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntGC0L7QsdGA0LDQttCw0LXRgiDRgdGB0YvQu9C60YMg0LIg0LzQtdC90Y4g0LTQu9GPINC/0LXRh9Cw0YLQuCDQl9Cw0LTQsNGH0Lgg0L/RgNC4INC10LUg0LTQtdGC0LDQu9GM0L3QvtC8INC/0YDQvtGB0LzQvtGC0YDQtSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J/QvtC60LDQt9GL0LLQsNC10YIg0L/Rg9C90LrRgiDQvNC10L3RjiDQtNC70Y8g0L7Rh9C40YHRgtC60Lgg0LjQt9C80LXQvdC10L3QuNGPINC4INC10LPQviDQt9Cw0LTQsNGHINC/0YDQuCDQtdCz0L4g0L/QvtC00YDQvtCx0L3QvtC8INC/0YDQvtGB0LzQvtGC0YDQtSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cf0L7QutCw0LfRi9Cy0LDQtdGCINC40YHRgtC+0YDQuNGOINC40LfQvNC10L3QtdC90LjQuSAo0LIg0L7QsdGA0LDRgtC90L7QvCDQv9C+0YDRj9C00LrQtSkg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAn0KHQvtGB0YLQvtGP0L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuJ30gPQogICAgICAgICfQodC+0YXRgNCw0L3Rj9C10YIg0LjQtNC10L3RgtGE0LjQutCw0YLQvtGA0YsgLSBpZFwncyDQuNC30LzQtdC90LXQvdC40LjRjyDQuCDQt9Cw0LTQsNGH0Lgg0Lgg0LjRhSDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40LUg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRiyDRiNCw0LHQu9C+0L3QvtCyINCy0L4g0LLRgNC10LzRjyDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINC40YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAn0JLQt9GP0YLRjCDQt9Cw0LTQsNGH0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAn0JLQt9GP0YLRjCDQl9Cw0LTQsNGH0YMg0LIg0YDQsNCx0L7RgtGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAn0JLQt9GP0YLRjCDQt9Cw0LTQsNGH0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAn0J7QsdC30L7RgCDRiNCw0LHQu9C+0L3QvtCyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAn0KjQsNCx0LvQvtC9Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAn0JjQvdC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQtNC70Y8g0LjQt9C80LXQvdC10L3QuNGPLCDQvdCw0L/RgNC40LzQtdGAIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJ9CY0L3QtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LTQu9GPINC30LDQtNCw0L3QuNGPLCDQvdCw0L/RgNC40LzQtdGAIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJ9Ct0YLQvtGCIEFDTCDQvNC+0LTRg9C70Ywg0L7Qs9GA0LDQvdC40YfQuNCy0LDQtdGCINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC1INGC0LjQv9C+0LIg0LfQsNGP0LLQvtC6INC30LDQtNCw0L3QvdGL0YUg0LIg0L/QsNGA0LDQvNC10YLRgNC1ICBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCDQtNC70Y8g0LDQs9C10L3RgtC+0LIg0LPRgNGD0L/Qvywg0YPQutCw0LfQsNC90L3Ri9GFINCyICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiDQotCw0Log0LrQsNC6INGN0YLQvtGCIEFDTCDQvNC+0LbQtdGCINC60L7QvdGE0LvQuNC60YLQvtCy0LDRgtGMINGBINC00YDRg9Cz0LjQvNC4IEFDTCwg0YLQsNC60LbQtSDRgdCy0Y/Qt9Cw0L3QvdGL0LzQuCDRgSDRgtC40L/QsNC80Lgg0LfQsNGP0LLQvtC6LCDRjdGC0L7RgiDQv9Cw0YDQsNC80LXRgtGAINC+0YLQutC70Y7Rh9C10L0g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0Lgg0LzQvtC20LXRgiDQsdGL0YLRjCwg0L/RgNC4INC90LXQvtCx0YXQvtC00LjQvNC+0YHRgtC4LCDQsNC60YLQuNCy0LjRgNC+0LLQsNC9INCy0YDRg9GH0L3Rg9GOLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICfQlNC40LDQv9Cw0LfQvtC9INC00LDRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAn0KLQuNC/0Ysg0LfQsNGP0LLQvtC6LCDQsiDQutC+0YLQvtGA0YvRhSDQv9C+0LTRgNC+0LHQvdC+0Lwg0L/RgNC+0YHQvNC+0YLRgNC1INGB0YHRi9C70LrQsCDQtNC70Y8g0LTQvtCx0LDQstC70LXQvdC40Y8g0LjQt9C80LXQvdC10L3QuNGPINCx0YPQtNC10YIg0L/QvtC60LDQt9Cw0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICfQn9C+0LjRgdC6INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICfQlNC+0LHQsNCy0LjRgtGMINCX0LDQtNCw0YfRgyAo0LjRgdC/0L7Qu9GM0LfRg9GPINGI0LDQsdC70L7QvSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICfQlNC+0LHQsNCy0LvQtdC90LjQtSDQl9Cw0LTQsNGH0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICfQkNCz0LXQvdGCINCX0LDQtNCw0YfQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICfQo9C00LDQu9C10L3QuNC1ICDQl9Cw0LTQsNGH0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40LUg0JfQsNC00LDRh9C4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJ9CY0YHRgtC+0YDQuNGPINCX0LDQtNCw0YfQuCDQv9C+0LTRgNC+0LHQvdC+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICfQmNGB0YLQvtGA0LjRjyDQl9Cw0LTQsNGH0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAn0J7RgtGH0LXRgiDQv9C+INCX0LDQtNCw0YfQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICfQn9GA0L7RgdC80L7RgtGAINC30LDQtNCw0YfQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAn0J/RgNC+0YHQvNC+0YLRgCDQl9Cw0LTQsNGH0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICfQvtC00LjQvSDRgNCw0LcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAn0YDQtdCz0YPQu9GP0YDQvdC+JzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/sk_SK_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c2tfU0tfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnSGlzdMOzcmlhIHogJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBkZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBBZHZpc29yeSBCb2FyZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoZS5nLiAxMCo1MTU1IG9yIDEwNTY1OCopJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmV0d2VlbiknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDQUIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFuZ2UgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5ldyBjaGFuZ2Ugd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgaXQgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyB3b3Jrb3JkZXIgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wb3JhcnkgY2hhbmdlIHdpbGwgYmUgY3JlYXRlZCB3aGljaCBjb250YWlucyB0aGUgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbnRlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgdG8gJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgcGxhbm5lZCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBwbGFubmVkIGVuZCB0aW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdC4nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgV29ya29yZGVyIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBXb3Jrb3JkZXIgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIENvbmRpdGlvbihzKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBmb2xsb3dpbmcgd29ya29yZGVycyBhY2NvcmRpbmdseSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGUgcGxhbm5lZCBlbmQgdGltZSBvZiB0aGlzIHdvcmtvcmRlciBpcyBjaGFuZ2VkLCB0aGUgcGxhbm5lZCBzdGFydCB0aW1lcyBvZiBhbGwgZm9sbG93aW5nIHdvcmtvcmRlcnMgd2lsbCBiZSBjaGFuZ2VkIGFjY29yZGluZ2x5J30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzLSVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byB0YWtlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBXb3Jrb3JkZXIgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEluZm9ybWF0aW9uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBBZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biBub3RpZmljYXRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgbm90aWZpY2F0aW9uLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIFVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBJVFNNIENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biBjaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gd29ya29yZGVyIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRW5kVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxTdGFydFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIE92ZXJ2aWV3ICglcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVJlc2V0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoIFJlc3VsdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSAlcyBvZiBhbGwgd29ya29yZGVycyBoYXMgdG8gYmUgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB0ZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCB3b3Jrb3JkZXIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSB0aGUgd29ya29yZGVyICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBmaW5kIENoYW5nZSBmb3IgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSBab29tJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uICVzIG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpdGxlOiAlcyB8IFR5cGU6ICVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ0FCcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IFdvcmsgT3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgRGVsZXRlZCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENvbmRpdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIENvbmRpdGlvbnMgb2YgQ2hhbmdlIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQ29uZGl0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRXhwcmVzc2lvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBFeHByZXNzaW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChFeHByZXNzaW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSAlczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0lUU01Db25kaXRpb24vT2JqZWN0L0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FsbCd9ID0gJ3bFoWV0a28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmFja291dCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICdPc3RhbsOpIG5hc3RhdmVuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzIGZyb20gdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgb2YgdGlja2V0cywgd2hlcmUgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgYSBsaW5rIHRvIGFkZCBhIGNoYW5nZSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/sl_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c2xfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAndnNpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY2FuY2VsZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90IGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBsZXNzIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlIGFkdmlzb3J5IGJvYXJkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgV29ya29yZGVyIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIHdvcmtvcmRlciB0ZW1wbGF0ZXMgZWRpdGVkIGJ5IHRoaXMgdXNlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBudW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBFZGl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIChmcm9tIHRlbXBsYXRlKSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2V0IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciB0aXRsZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGF0IG9ubHkgY2hhbmdlcyBjb250YWluaW5nIFdvcmtvcmRlcnMgbGlua2VkIHdpdGggc2VydmljZXMsIHdoaWNoIHRoZSBjdXN0b21lciB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB3aWxsIGJlIHNob3duLiBBbnkgb3RoZXIgY2hhbmdlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgYWxsb3dlZCB0byBkZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMgb2YgYSBjaGFuZ2UgaGlzdG9yeSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHJlcG9ydCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY29uZGl0aW9ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIG1pbmltYWwgY2hhbmdlIGNvdW50ZXIgc2l6ZSAoaWYgIkRhdGUiIHdhcyBzZWxlY3RlZCBhcyBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFBJUiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2Ugbm90aWZpY2F0aW9uIHJ1bGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnRHJ1Z2UgbmFzdGF2aXR2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/sr_Cyrl_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3JfQ3lybF9JVFNNQ2hhbmdlTWFuYWdlbWVudDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlQ0lQQWxsb2NhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IOKGlCBJbXBhY3Qg4oaUIFByaW9yaXR5J30gPSAn0JrQsNGC0LXQs9C+0YDQuNGY0LAg4oaUINGD0YLQuNGG0LDRmCDihpQg0L/RgNC40L7RgNC40YLQtdGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgcHJpb3JpdHkgcmVzdWx0IG9mIGNvbWJpbmF0aW5nIENhdGVnb3J5IOKGlCBJbXBhY3QuJ30gPQogICAgICAgICfQo9C/0YDQsNCy0ZnQsNGa0LUg0YDQtdC30YPQu9GC0LDRgtC+0Lwg0L/RgNC40L7RgNC40YLQtdGC0LAg0LrQvtC80LHQuNC90LDRhtC40ZjQvtC8INC60LDRgtC10LPQvtGA0LjRmNCwIOKGlCDRg9GC0LjRhtCw0ZguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICfQoNCw0YHQv9C+0LTQtdC70LAg0L/RgNC40L7RgNC40YLQtdGC0LAnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICfQo9C/0YDQsNCy0ZnQsNGa0LUg0L7QsdCw0LLQtdGI0YLQtdGa0LjQvNCwINGDIElUU00g0YPQv9GA0LDQstGZ0LDRmtGDINC/0YDQvtC80LXQvdCw0LzQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICfQlNC+0LTQsNGYINC/0YDQsNCy0LjQu9C+INC+0LHQsNCy0LXRiNGC0LDQstCw0ZrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAn0KPRgNC10LTQuCDQv9GA0LDQstC40LvQviDQvtCx0LDQstC10YjRgtCw0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ9Ce0LHQsNCy0LXRiNGC0LXRmtC1INGC0YDQtdCx0LAg0LTQsCDQuNC80LAg0LjQvNC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJ9CY0LzQtSDRmNC1INC+0LHQsNCy0LXQt9C90L4uJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTVN0YXRlTWFjaGluZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gU3RhdGUgTWFjaGluZSd9ID0gJ9CQ0LTQvNC40L3QuNGB0YLQsNGA0YbQuNGY0LAg0LzQsNGI0LjQvdC1INGB0YLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICfQmNC30LHQvtGAINC60LvQsNGB0LUg0LrQsNGC0LDQu9C+0LPQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJ9Ca0LvQsNGB0LAg0LrQsNGC0LDQu9C+0LPQsCDRmNC1INC+0LHQsNCy0LXQt9C90LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICfQlNC+0LTQsNGYINGC0YDQsNC90LfQuNGG0LjRmNGDINGB0YLQsNGC0YPRgdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICfQmtC70LDRgdCwINC60LDRgtCw0LvQvtCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICfQndCw0LfQuNCyINC+0LHRmNC10LrRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAn0J/RgNC10LPQu9C10LQg0L/RgNC10LrQviDRgtGA0LDQvdC30LjRhtC40ZjQtSDRgdGC0LDRgtGD0YHQsCDQt9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICfQntCx0YDQuNGI0Lgg0L7QstGDINGC0YDQsNC90LfQuNGG0LjRmNGDINGB0YLQsNGC0YPRgdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ9CU0L7QtNCw0Zgg0L3QvtCy0YMg0YLRgNCw0L3Qt9C40YbQuNGY0YMg0YHRgtCw0YLRg9GB0LAg0LfQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgc3RhdGUhJ30gPSAn0JzQvtC70LjQvNC+INC00LAg0L7QtNCw0LHQtdGA0LXRgtC1INGB0YLQsNGa0LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJ9Cc0L7Qu9C40LzQviDQtNCwINC+0LTQsNCx0LXRgNC10YLQtSDRgdC70LXQtNC10ZvQtSDRgdGC0LDRmtC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICfQo9GA0LXQtNC4INGC0YDQsNC90LfQuNGG0LjRmNGDINGB0YLQsNGC0YPRgdCwINC30LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ9CU0LAg0LvQuCDQt9Cw0LjRgdGC0LAg0LbQtdC70LjRgtC1INC00LAg0L7QsdGA0LjRiNC10YLQtSDQvtCy0YMg0YLRgNCw0L3Qt9C40YbQuNGY0YMg0YHRgtCw0YLRg9GB0LA/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJ9CU0L7QtNCw0Zgg0L/RgNC+0LzQtdC90YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UnfSA9ICdJVFNNINC/0YDQvtC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICfQntC/0YDQsNCy0LTQsNGa0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICfQndC10LjRgdC/0YDQsNCy0LDQvSDRg9C90L7RgS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICfQotGA0LDQttC10L3QuCDQtNCw0YLRg9C8JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJ9CY0LfQsNCx0LXRgNC4INGI0LDQsdC70L7QvSDQv9GA0L7QvNC10L3QtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHR5cGUnfSA9ICfQotC40L8g0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAn0J3QtdC40YHQv9GA0LDQstCw0L0g0YLQuNC/INCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdGltZSd9ID0gJ9Cd0L7QstC+INCy0YDQtdC80LUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ9Ch0LDRh9GD0LLQsNGYINC/0YDQvtC80LXQvdGDIENBQiDQutCw0L4g0YjQsNCx0LvQvtC9JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIHRvIGludm9sdmVkIHBlcnNvbnMgc2NyZWVuJ30gPSAn0LjQtNC4INC90LAg0LXQutGA0LDQvSDRg9C60ZnRg9GH0LXQvdC40YUg0L7RgdC+0LHQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICfQn9C+0LPRgNC10YjQvdC+INC40LzQtSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbnMgYW5kIEFjdGlvbnMnfSA9ICfQo9GB0LvQvtCy0Lgg0Lgg0LDQutGG0LjRmNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICfQo9GB0LvQvtCyINCx0YDQuNGB0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgY29uZGl0aW9uJ30gPSAn0JTQvtC00LDRmCDQvdC+0LLQuCDRg9GB0LvQvtCyJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAn0KPRgNC10LTQuCDRg9GB0LvQvtCyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJ9Cf0L7RgtGA0LXQsdC90L4g0ZjQtSDQuNGB0L/RgNCw0LLQvdC+INC40LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBuYW1lIGlzIG5lZWRlZC4nfSA9ICfQndC10L7Qv9GF0L7QtNC90L4g0ZjQtSDQstCw0LbQtdGb0LUg0LjQvNC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICfQlNGD0L/Qu9C40LrQsNGCINC40LzQtdC90LA6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbmFtZSBpcyBhbHJlYWR5IHVzZWQgYnkgYW5vdGhlciBjb25kaXRpb24uJ30gPSAn0L7QstC+INC40LzQtSDRmNC1INCy0LXRmyDRg9C/0L7RgtGA0LXQsdGZ0LXQvdC+INC30LAg0LTRgNGD0LPQuCDRg9GB0LvQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJ9Cf0L7QtNGD0LTQsNGA0LDRmtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FueSBleHByZXNzaW9uIChPUiknfSA9ICfQodCy0LDQutC4INC40LfRgNCw0LcgKE9SKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICfQodCy0Lgg0LjQt9GA0LDQt9C4IChBTkQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb25zJ30gPSAn0JjQt9GA0LDQt9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdG9yJ30gPSAn0JHQuNGA0LDRhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJ9Ce0L/QtdGA0LDRgtC+0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICfQntCx0YDQuNGI0Lgg0LjQt9GA0LDQtyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICfQndC40ZjQtSDQv9GA0L7QvdCw0ZLQtdC9INC90LjRmNC10LTQsNC9INC40LfRgNCw0LcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJ9CU0L7QtNCw0Zgg0L3QvtCyINC40LfRgNCw0LcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEFjdGlvbid9ID0gJ9Ce0LHRgNC40YjQuCDQsNC60YbQuNGY0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICfQndC40ZjQtSDQv9GA0L7QvdCw0ZLQtdC90LAg0L3QuNGY0LXQtNC90LAg0LDQutGG0LjRmNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGFjdGlvbid9ID0gJ9CU0L7QtNCw0Zgg0L3QvtCy0YMg0LDQutGG0LjRmNGDJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICfQlNCwINC70Lgg0LfQsNC40YHRgtCwINC20LXQu9C40YLQtSDQtNCwINC40LfQsdGA0LjRiNC10YLQtSDQvtCy0YMg0L/RgNC+0LzQtdC90YM/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcyd9ID0gJ9Cj0YDQtdC00LggJXMlcyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMnfSA9ICfQmNGB0YLQvtGA0LjRmNCw0YIg0L7QtCAlcyVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ9Ch0LDQtNGA0LbQsNGYINC40YHRgtC+0YDQuNGY0LDRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcid9ID0gJ9Cg0LDQtNC90Lgg0L3QsNC70L7Qsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAn0JLRgNC10LzQtSDQutGA0LXQuNGA0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgZGV0YWlscyd9ID0gJ9Cf0YDQuNC60LDQttC4INC00LXRgtCw0ZnQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJ9Cf0YDQuNC60LDQttC4INGA0LDQtNC90Lgg0L3QsNC70L7Qsyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiAlcyd9ID0gJ9CU0LXRgtCw0ZnQvdC4INC40YHRgtC+0YDQuNGY0LDRgiDQt9CwICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAn0J/RgNC+0LzQtdGa0LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJ9Ch0YLQsNGA0LAg0LLRgNC10LTQvdC+0YHRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICfQndC+0LLQsCDQstGA0LXQtNC90L7RgdGCJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJbnZvbHZlZCBQZXJzb25zIG9mICVzJXMnfSA9ICfQo9GA0LXQtNC4INGD0LrRmdGD0YfQtdC90LUg0L7RgdC+0LHQtSDQt9CwICVzJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52b2x2ZWQgUGVyc29ucyd9ID0gJ9Cj0LrRmdGD0YfQtdC90LUg0L7RgdC+0LHQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VyJ30gPSAn0KPQv9GA0LDQstGZ0LDRhyDQv9GA0L7QvNC10L3QsNC80LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJ9Cd0LXQuNGB0L/RgNCw0LLQsNC9INC60L7RgNC40YHQvdC40LouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICfQk9GA0LDQtNC40YLQtdGZINC/0YDQvtC80LXQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBBZHZpc29yeSBCb2FyZCd9ID0gJ9Ch0LDQstC10YLQvtC00LDQstC90Lgg0L7QtNCx0L7RgCDQt9CwINC/0YDQvtC80LXQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJ0NBQiDRiNCw0LHQu9C+0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICfQn9GA0LjQvNC10L3QuCDRiNCw0LHQu9C+0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICfQndC+0LLQuCDRiNCw0LHQu9C+0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ9Ch0LDRh9GD0LLQsNGYINC+0LLQviDQutCw0L4gQ0FCINGI0LDQsdC70L7QvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAn0JTQvtC00LDRmCDRgyBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAn0J/QvtCz0YDQtdGI0LDQvSDQutC+0YDQuNGB0L3QuNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAn0JDQutGC0YPQtdC70L3QuCBDQUInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICfQn9C+0LTQtdGI0LDQstCw0ZrQtSDQutC+0L3RgtC10LrRgdGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlcyBwZXIgcGFnZSd9ID0gJ9Cf0YDQvtC80LXQvdCwINC/0L4g0YHRgtGA0LDQvdC4JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUaXRsZSd9ID0gJ9Cd0LDRgdC70L7QsiDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJ9Cd0LDRgdC70L7QsiDQv9GA0L7QvNC10L3QtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICfQntC/0LXRgNCw0YLQtdGAINC30LAg0YDQsNC00L3QuCDQvdCw0LvQvtCzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBCdWlsZGVyJ30gPSAn0JPRgNCw0LTQuNGC0LXRmSDQv9GA0L7QvNC10L3QtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTWFuYWdlcid9ID0gJ9Cj0L/RgNCw0LLRmdCw0ZrQtSDQv9GA0L7QvNC10L3QsNC80LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJ9Cg0LDQtNC90Lgg0L3QsNC70L7Qt9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTdGF0ZSd9ID0gJ9Ch0YLQsNGa0LUg0L/RgNC+0LzQtdC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAn0KHRgtCw0ZrQtSDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAn0KLQuNC/INGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIFRpbWUnfSA9ICfQotGA0LDQttC10L3QviDQstGA0LXQvNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJ9Cf0LvQsNC90LjRgNCw0L3QviDQstGA0LXQvNC1INC/0L7Rh9C10YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICfQn9C70LDQvdC40YDQsNC90L4g0LLRgNC10LzQtSDQt9Cw0LLRgNGI0LXRgtC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICfQodGC0LLQsNGA0L3QviDQstGA0LXQvNC1INC/0L7Rh9C10YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJ9Ch0YLQstCw0YDQvdC+INCy0YDQtdC80LUg0LfQsNCy0YDRiNC10YLQutCwJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAn0JTQsCDQu9C4INC30LDQuNGB0YLQsCDQttC10LvQuNGC0LUg0LTQsCDQv9C+0L3QuNGI0YLQuNGC0LUg0L7QstGDINC/0YDQvtC80LXQvdGDPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICco0L3Qv9GAIDEwKjUxNTUg0LjQu9C4IDEwNTY1OCopJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJ9Ce0L/QtdGA0LDRgtC10YAgQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICfQvdC/0YAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJ0NBQiDQutC70LjRmNC10L3Rgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJ9Cj0L/Rg9GC0YHRgtCy0L4gSVRTTSDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJ9CY0LfQstC10YjRgtCw0ZggSVRTTSDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAn0J/RgNC40L7RgNC40YLQtdGCIElUU00g0L/RgNC+0LzQtdC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAn0KPRgtC40YbQsNGYIElUU00g0L/RgNC+0LzQtdC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAn0JrQsNGC0LXQs9C+0YDQuNGY0LAg0L/RgNC+0LzQtdC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJlZm9yZS9hZnRlciknfSA9ICco0L/RgNC1L9C/0L7RgdC70LUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyjQuNC30LzQtdGS0YMpJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBhcyBUZW1wbGF0ZSd9ID0gJ9Ch0LDRh9GD0LLQsNGYINC/0YDQvtC80LXQvdGDINC60LDQviDRiNCw0LHQu9C+0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAn0KjQsNCx0LvQvtC9INGC0YDQtdCx0LAg0LTQsCDQuNC80LAg0LjQvNC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICfQmNC80LUg0YjQsNCx0LvQvtC90LAg0ZjQtSDQvtCx0LDQstC10LfQvdC+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICfQn9C+0L3QuNGI0YLQuCDRgdGC0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJ9Cf0YDQtdC/0LjRiNC4INC/0YDQtdC60L4g0L7RgNC40LPQuNC90LDQu9C90L7QsyDRiNCw0LHQu9C+0L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAn0J7QsdGA0LjRiNC4INC+0YDQuNCz0LjQvdCw0LvQvdGDINC/0YDQvtC80LXQvdGDJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJ9Cf0L7QvNC10YDQuCDQstGA0LXQvNC10L3RgdC60Lgg0YLQtdGA0LzQuNC9JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJ9CY0L3RhNC+0YDQvNCw0YbQuNGY0LAg0L4g0L/RgNC+0LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICfQn9C70LDQvdC40YDQsNC90Lgg0L3QsNC/0L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJ9Ce0LHRgNCw0YfRg9C90LDRgtC+INCy0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ9CY0L3QuNGG0LjRmNCw0YLQvtGAKNC4KSDQv9GA0L7QvNC10L3QtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICdDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAn0JfQsNC00ZrQuCDQv9GD0YIg0L/RgNC+0LzQtdGa0LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ9Cf0YDQvtC80LXQvdC40L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICfQlNCwINCx0LjRgdGC0LUg0L7RgtCy0L7RgNC40LvQuCDQstC10LfQtSDRgyDRgdC70LXQtNC10ZvQuNC8INCx0LvQvtC60L7QstC40LzQsCDQvtC/0LjRgdCwLCDQvNC+0LbQtNCwINGb0LXRgtC1INGC0YDQtdCx0LDRgtC4INC00LAg0L/RgNC40YLQuNGB0L3QtdGC0LUgIkN0cmwiINC40LvQuCAiQ21kIiDQuNC70LggIlNoaWZ0IiDRgtCw0YHRgtC10YAg0LTQvtC6INC40YHRgtC+0LLRgNC10LzQtdC90L4g0LrQu9C40LrQvdC10YLQtSDQvdCwINCy0LXQt9GDICjQt9Cw0LLQuNGB0Lgg0L7QtCDQstCw0YjQtdCzINC+0L/QtdGA0LDRgtC40LLQvdC+0LMg0YHQuNGB0YLQtdC80LAg0Lgg0L/RgNC10YLRgNCw0LbQuNCy0LDRh9CwKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ9Cf0YDQtdGD0LfQvNC4INC/0YDQuNC70L7Qsyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAn0KPRgNC10LTQuCBDQUIg0YjQsNCx0LvQvtC9JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAn0J7QstC+INGb0LUg0LrRgNC10LjRgNCw0YLQuCDQvdC+0LLRgyDQv9GA0L7QvNC10L3RgyDQvtC0INC+0LLQvtCzINGI0LDQsdC70L7QvdCwLCDQv9CwINGY0LUg0LzQvtC20LXRgtC1INC40LfQvNC10L3QuNGC0Lgg0Lgg0YHQsNGH0YPQstCw0YLQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5ldyBjaGFuZ2Ugd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgaXQgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICfQndC+0LLQsCDQv9GA0L7QvNC10L3QsCDRm9C1INCw0YPRgtC+0LzQsNGC0YHQutC4INCx0LjRgtC4INC+0LHRgNC40YHQsNC90LAsINC60LDQtCDQsdGD0LTQtSDRgdCw0YfRg9Cy0LDQvdCwINC60LDQviDRiNCw0LHQu9C+0L0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgd29ya29yZGVyIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAn0J7QstC+INGb0LUg0LrRgNC10LjRgNCw0YLQuCDQvdC+0LIg0YDQsNC00L3QuCDQvdCw0LvQvtCzINC+0LQg0L7QstC+0LMg0YjQsNCx0LvQvtC90LAsINC/0LAg0LPQsCDQvNC+0LbQtdGC0LUg0LjQt9C80LXQvdC40YLQuCDQuCDRgdCw0YfRg9Cy0LDRgtC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICfQkdC40ZvQtSDQutGA0LXQuNGA0LDQvdCwINC/0YDQuNCy0YDQtdC80LXQvdCwINC/0YDQvtC80LXQvdCwINC60L7RmNCwINGB0LDQtNGA0LbQuCDRgNCw0LTQvdC4INC90LDQu9C+0LMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICfQn9GA0LjQstGA0LXQvNCw0L3QsCDQv9GA0L7QvNC10L3QsCDQuCDQvdC+0LLQuCDRgNCw0LTQvdC4INC90LDQu9C+0LMg0ZvQtSDQsNGD0YLQvtC80LDRgtGB0LrQuCDQsdC40YLQuCDQvtCx0YDQuNGB0LDQvdC4LCDQutCw0LQg0YDQsNC00L3QuCDQvdCw0LvQvtCzINCx0YPQtNC1INGB0LDRh9GD0LLQsNC9INC60LDQviDRiNCw0LHQu9C+0L0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAn0JTQsCDQu9C4INC20LXQu9C40YLQtSDQtNCwINC90LDRgdGC0LDQstC40YLQtT8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJ0lEINGI0LDQsdC70L7QvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJ9Cj0YDQtdC00Lgg0YHQsNC00YDQttCw0ZgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGJ5J30gPSAn0JrRgNC10LjRgNCw0L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAn0JjQt9C80LXQvdC40L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICfQktGA0LXQvNC1INC/0YDQvtC80LXQvdC1JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAn0JTQvtC00LDRmCDRgNCw0LTQvdC4INC90LDQu9C+0LMg0YMgJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnN0cnVjdGlvbid9ID0gJ9CY0L3RgdGC0YDRg9C60YbQuNGY0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB3b3Jrb3JkZXIgdHlwZS4nfSA9ICfQndC10LjRgdC/0YDQsNCy0LDQvSDRgtC40L8g0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICfQn9C70LDQvdC40YDQsNC90L4g0LLRgNC10LzQtSDQv9C+0YfQtdGC0LrQsCDQvNC+0YDQsCDQsdC40YLQuCDQv9GA0LUg0L/Qu9Cw0L3QuNGA0LDQvdC+0LMg0LLRgNC10LzQtdC90LAg0LfQsNCy0YDRiNC10YLQutCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdC4nfSA9ICfQndC10LjRgdC/0YDQsNCy0LDQvSDRhNC+0YDQvNCw0YIuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJ9CY0LfQsNCx0LXRgNC4INGI0LDQsdC70L7QvSDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAn0KPRgNC10LTQuCDQutC+0YDQuNGB0L3QuNC60LAg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsCDQt9CwICVzJXMnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJ9CU0LAg0LvQuCDQt9Cw0LjRgdGC0LAg0LbQtdC70LjRgtC1INC00LAg0LjQt9Cx0YDQuNGI0LXRgtC1INC+0LLQsNGYINGA0LDQtNC90Lgg0L3QsNC70L7Qsz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICfQndC1INC80L7QttC10YLQtSDQvtCx0YDQuNGB0LDRgtC4INC+0LLQsNGYINGA0LDQtNC90Lgg0L3QsNC70L7Qsy4g0KPQv9C+0YLRgNC10LHRmdC10L0g0ZjQtSDRgyDQsdCw0YAg0ZjQtdC00L3QvtC8INGD0YHQu9C+0LLRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAn0J7QstCw0Zgg0YDQsNC00L3QuCDQvdCw0LvQvtCzINGY0LUg0YPQv9C+0YLRgNC10LHRmdC10L0g0YMg0YHQu9C10LTQtdGb0LjQvCDRg9GB0LvQvtCy0LjQvNCwJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJ9Cj0YDQtdC00LggJXMlcy0lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAn0J/QvtC80LXRgNC40YLQtSDQsNC00LXQutCy0LDRgtC90L4g0YHQu9C10LTQtdGb0LUg0YDQsNC00L3QtSDQvdCw0LvQvtCz0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAn0J/Qu9Cw0L3QuNGA0LDQvdC+INCy0YDQtdC80LUg0LfQsNCy0YDRiNC10YLQutCwINC+0LLQvtCzINGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAg0ZjQtSDQv9GA0L7QvNC10ZrQtdC90L4sINC/0LvQsNC90LjRgNCw0L3QsCDQstGA0LXQvNC10L3QsCDQv9C+0YfQtdGC0LrQsCDRgdCy0LjRhSDQvdCw0YDQtdC00L3QuNGFINGA0LDQtNC90LjRhSDQvdCw0LvQvtCz0LAg0ZvQtSDQsdC40YLQuCDQsNC00LXQutCy0LDRgtC90L4g0YPRgdC60LvQsNGS0LXQvdCwJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJ9CY0YHRgtC+0YDQuNGY0LDRgiDQt9CwICVzJXMtJXMnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAn0KPRgNC10LTQuCDQuNC30LLQtdGI0YLQsNGYINC30LAgJXMlcy0lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnQnfSA9ICfQmNC30LLQtdGI0YLQsNGYJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJ9CQ0LrRgtGD0LXQu9C90L4g0LLRgNC10LzQtSDQv9C+0YfQtdGC0LrQsCDQvNC+0YDQsCDQsdC40YLQuCDQv9GA0LUg0LDQutGC0YPQtdC70L3QvtCzINCy0YDQtdC80LXQvdCwINC30LDQstGA0YjQtdGC0LrQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAn0JDQutGC0YPQtdC70L3QviDQstGA0LXQvNC1INC/0L7Rh9C10YLQutCwINC80L7RgNCwINCx0LjRgtC4INC/0L7QtNC10YjQtdC90L4g0LrQsNC00LAg0ZjQtSDQv9C+0LTQtdGI0LXQvdC+INC4INCw0LrRgtGD0LXQu9C90L4g0LLRgNC10LzQtSDQt9Cw0LLRgNGI0LXRgtC60LAhJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICfQkNC60YLRg9C10LvQvdC4INC+0L/QtdGA0LDRgtC10YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAn0JTQsCDQu9C4INC30LDQuNGB0YLQsCDQttC10LvQuNGC0LUg0LTQsCDQv9GA0LXRg9C30LzQtdGC0LUg0L7QstCw0Zgg0YDQsNC00L3QuCDQvdCw0LvQvtCzPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBXb3Jrb3JkZXIgYXMgVGVtcGxhdGUnfSA9ICfQodCw0YfRg9Cy0LDRmCDRgNCw0LTQvdC4INC90LDQu9C+0LMg0LrQsNC+INGI0LDQsdC70L7QvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJ9Ce0LHRgNC40YjQuCDQvtGA0LjQs9C40L3QsNC70L3QuCDRgNCw0LTQvdC4INC90LDQu9C+0LMgKNC4INC/0YDQvtC80LXQvdGDINGDINC60L7RmNC+0Zgg0ZjQtSknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEluZm9ybWF0aW9uJ30gPSAn0JjQvdGE0L7RgNC80LDRhtC40ZjQsCDQviDRgNCw0LTQvdC+0Lwg0L3QsNC70L7Qs9GDJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBBZGRlZCEnfSA9ICfQlNC+0LTQsNGC0L4g0L7QsdCw0LLQtdGI0YLQtdGa0LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJ9Cd0LXQv9C+0LfQvdCw0YLQviDQvtCx0LDQstC10YjRgtC10ZrQtSAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAn0JTQvtGI0LvQviDRmNC1INC00L4g0LPRgNC10YjQutC1INC/0YDQuNC70LjQutC+0Lwg0LrRgNC10LjRgNCw0ZrQsCDQvtCx0LDQstC10YjRgtC10ZrQsC4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJ9CQ0LbRg9GA0LjRgNCw0L3QviDRgtGA0LDQvdC30LjRhtC40L7QvdC+INGB0YLQsNGa0LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAn0JTQvtC00LDRgtC+INGC0YDQsNC90LfQuNGG0LjQvtC90L4g0YHRgtCw0ZrQtSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJ9Cf0YDQtdCz0LvQtdC0OiBJVFNNINC/0YDQvtC80LXQvdC1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISd9ID0gJ9Ci0LjQutC10YIg0YHQsCBUaWNrZXRJRCAlcyDQvdC1INC/0L7RgdGC0L7RmNC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICfQndC10LTQvtGB0YLQsNGY0LUg0L7Qv9GG0LjRmNCwINGB0LjRgdGC0LXQvNGB0LrQtSDQutC+0L3RhNC40LPRg9GA0LDRhtC40ZjQtSAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCBjaGFuZ2UhJ30gPSAn0J3QuNGY0LUg0LHQuNC70L4g0LzQvtCz0YPRm9C1INC00L7QtNCw0YLQuCDQv9GA0L7QvNC10L3RgyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICfQndC40ZjQtSDQsdC40LvQviDQvNC+0LPRg9Gb0LUg0LrRgNC10LjRgNCw0YLQuCDQv9GA0L7QvNC10L3RgyDQuNC3INGI0LDQsdC70L7QvdCwISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ9Cd0LjRmNC1INC00LDRgiBDaGFuZ2VJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nfSA9ICfQndC40ZjQtSDQv9GA0L7QvdCw0ZLQtdC90LAg0L/RgNC+0LzQtdC90LAg0LfQsCBDaGFuZ2VJRCAlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICdDQUIg0L/RgNC+0LzQtdC90LUgJXMg0YHQtSDQvdC1INC80L7QttC1INGB0LXRgNC40ZjQsNC70LjQt9C+0LLQsNGC0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJ9Cd0LjRmNC1INC80L7Qs9GD0ZvQtSDQtNC+0LTQsNGC0Lgg0YjQsNCx0LvQvtC9Lic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAn0J/RgNC+0LzQtdC90LAgIiVzIiDQvdC40ZjQtSDQvdCw0ZLQtdC90LAg0YMg0LHQsNC30Lgg0L/QvtC00LDRgtCw0LrQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICfQndC40ZjQtSDQvNC+0LPRg9Gb0LUg0L7QsdGA0LjRgdCw0YLQuCBDb25kaXRpb25JRCAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJ9Cd0LjRmNC1INC00LDRgiAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJ9Cd0LjRmNC1INC80L7Qs9GD0ZvQtSDQutGA0LXQuNGA0LDRgtC4INC90L7QstC4INGD0YHQu9C+0LIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAn0J3QuNGY0LUg0LzQvtCz0YPRm9C1INCw0LbRg9GA0LjRgNCw0YLQuCBDb25kaXRpb25JRCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAn0J3QuNGY0LUg0LzQvtCz0YPRm9C1INCw0LbRg9GA0LjRgNCw0YLQuCBFeHByZXNzaW9uSUQgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAn0J3QuNGY0LUg0LzQvtCz0YPRm9C1INC00L7QtNCw0YLQuCDQvdC+0LLQuCBFeHByZXNzaW9uISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJ9Cd0LjRmNC1INC80L7Qs9GD0ZvQtSDQsNC20YPRgNC40YDQsNGC0LggQWN0aW9uSUQgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICfQndC40ZjQtSDQvNC+0LPRg9Gb0LUg0LTQvtC00LDRgtC4INC90L7QstC4IEFjdGlvbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAn0J3QuNGY0LUg0LzQvtCz0YPRm9C1INC+0LHRgNC40YHQsNGC0LggRXhwcmVzc2lvbklEICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJ9Cd0LjRmNC1INC80L7Qs9GD0ZvQtSDQvtCx0YDQuNGB0LDRgtC4IEFjdGlvbklEICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAn0JPRgNC10YjQutCwOiDQndC10L/QvtC30L3QsNGCINGC0LjQvyDQv9C+0ZnQsCAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJ0NvbmRpdGlvbklEICVzINC90LUg0L/RgNC40L/QsNC00LAg0LTQsNGC0L7QvCBDaGFuZ2VJRCAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAn0J/RgNC+0LzQtdC90LAgIiVzIiDQvdC40ZjQtSDRgyDQtNC+0LfQstC+0ZnQtdC90L7QvCDRgdGC0LDRmtGDINC00LAg0LHQuCDQsdC40LvQsCDQvtCx0YDQuNGB0LDQvdCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICfQndC40ZjQtSDQsdC40LvQviDQvNC+0LPRg9Gb0LUg0L7QsdGA0LjRgdCw0YLQuCBDaGFuZ2VJRCAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJ9Cd0LjRmNC1INCx0LjQu9C+INC80L7Qs9GD0ZvQtSDQsNC20YPRgNC40YDQsNGC0Lgg0L/RgNC+0LzQtdC90YMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICfQndC1INC80L7QttC1INGB0LUg0L/RgNC40LrQsNC30LDRgtC4INC40YHRgtC+0YDQuNGY0LDRgiwg0ZjQtdGAINC90LjRmNC1INC00LDRgiBDaGFuZ2VJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICfQn9GA0L7QvNC10L3QsCAiJXMiINC90LjRmNC1INC90LDRktC10L3QsCDRgyDQsdCw0LfQuCDQv9C+0LTQsNGC0LDQutCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICfQndC10L/QvtC30L3QsNGCINGC0LjQvyAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJ9CY0YHRgtC+0YDQuNGY0LDRgiDQv9GA0L7QvNC10L3QtSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAn0J3QtSDQvNC+0LPRgyDRgdC1INC/0YDQuNC60LDQt9Cw0YLQuCDQtNC10YLQsNGZ0Lgg0LjRgdGC0L7RgNC40ZjQsNGC0LAg0ZjQtdGAINC90LjRmNC1INC00LDRgiBIaXN0b3J5RW50cnlJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ9Ch0YLQsNCy0LrQsCDQuNGB0YLQvtGA0LjRmNCw0YLQsCAiJXMiINC90LjRmNC1INC90LDRktC10L3QsCDRgyDQsdCw0LfQuCDQv9C+0LTQsNGC0LDQutCwISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICfQndC40ZjQtSDQsdC40LvQviDQvNC+0LPRg9Gb0LUg0LDQttGD0YDQuNGA0LDRgtC4IENBQiDQv9GA0L7QvNC10L0g0LfQsCDQv9GA0L7QvNC10L3RgyAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAn0J3QuNGY0LUg0LHQuNC70L4g0LzQvtCz0YPRm9C1INCw0LbRg9GA0LjRgNCw0YLQuCDQv9GA0L7QvNC10L3RgyAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAn0J/RgNC10LPQu9C10LQ6INCj0L/RgNCw0LLRmdCw0Ycg0L/RgNC+0LzQtdC90LDQvNCwJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJ9Cf0YDQtdCz0LvQtdC0OiDQnNC+0ZggQ0FCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAn0J/RgNC10LPQu9C10LQ6INCc0L7RmNC1INC/0YDQvtC80LXQvdC1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAn0J/RgNC10LPQu9C10LQ6INCc0L7RmNC4INGA0LDQtNC90Lgg0L3QsNC70L7Qt9C4JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICfQn9GA0LXQs9C70LXQtDogUElSJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICfQn9GA0LXQs9C70LXQtDogUFNBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ9Cg0LDQtNC90Lgg0L3QsNC70L7QsyAiJXMiINC90LjRmNC1INC90LDRktC10L0g0YMg0LHQsNC30Lgg0L/QvtC00LDRgtCw0LrQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAn0J3QtSDQvNC+0LbQtSDRgdC1INC60YDQuNGA0LDRgtC4INC40LfQu9Cw0Lcg0ZjQtdGAINGA0LDQtNC90Lgg0L3QsNC70L7QsyDQvdC40ZjQtSDQv9GA0LjQtNC+0LTQsNGCINC/0YDQvtC80LXQvdC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAn0J3QtSDQvNC+0LbQtSDRgdC1INC60YDQuNGA0LDRgtC4INC40LfQu9Cw0Lcg0ZjQtdGAINC90LjRmNC1INC00LDRgiBDaGFuZ2VJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biBjaGFuZ2UgdGl0bGUnfSA9ICfQvdC10L/QvtC30L3QsNGCINC90LDRgdC70L7QsiDQv9GA0L7QvNC10L3QtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJ0lUU00g0YDQsNC00L3QuCDQvdCw0LvQvtCzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJ9CR0YDQvtGYINGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICfQoNCw0LTQvdC4INC90LDQu9C+0LMgLSDQvdCw0YHQu9C+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICfQvdC10L/QvtC30L3QsNGCINC90LDRgdC70L7QsiDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlJ30gPSAn0J/RgNC+0LzQtdC90LAgLSDRgdGC0LDRgtGD0YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJ9Cf0LvQsNC90LjRgNCw0L3QuCDQvdCw0L/QvtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudHMnfSA9ICfQntC/0LXRgNCw0YLQtdGA0LggQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICdDQUIg0LrQu9C40ZjQtdC90YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAn0KLRgNCw0LbQtdC90L4g0LLRgNC10LzQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAn0J/Qu9Cw0L3QuNGA0LDQvdC+INCy0YDQtdC80LUg0L/QvtGH0LXRgtC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICfQn9C70LDQvdC40YDQsNC90L4g0LLRgNC10LzQtSDQt9Cw0LLRgNGI0LXRgtC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAn0KHRgtCy0LDRgNC90L4g0LLRgNC10LzQtSDQv9C+0YfQtdGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAn0KHRgtCy0LDRgNC90L4g0LLRgNC10LzQtSDQt9Cw0LLRgNGI0LXRgtC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJ9CS0YDQtdC80LUg0L/RgNC+0LzQtdC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAn0JHRgNC+0Zgg0L/RgNC+0LzQtdC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICfQoNCw0LTQvdC4INC90LDQu9C+0LMgLSDRgdGC0LDRgtGD0YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJ9Cg0LDQtNC90Lgg0L3QsNC70L7QsyAtINGC0LjQvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudCd9ID0gJ9Cg0LDQtNC90Lgg0L3QsNC70L7QsyAtINC+0L/QtdGA0LDRgtC10YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJ9Cf0YDQtdCz0LvQtdC0IElUU00g0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsCAoJXMpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAn0J3QuNGY0LUg0LHQuNC70L4g0LzQvtCz0YPRm9C1INC/0L7QvdC40YjRgtC40YLQuCDRgNCw0LTQvdC4INC90LDQu9C+0LMgJXMg0LfQsCDQv9GA0L7QvNC10L3RgyAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IENoYW5nZSAlcyEnfSA9ICfQndC40ZjQtSDQsdC40LvQviDQvNC+0LPRg9Gb0LUg0L/QvtC90LjRiNGC0LjRgtC4INC/0YDQvtC80LXQvdGDICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICfQn9GA0LXQs9C70LXQtDog0J/Qu9Cw0L3QtdGAINC/0YDQvtC80LXQvdCwJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICfQn9GA0LXRgtGA0LDQs9CwINC/0YDQvtC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAn0J/RgNC+0LzQtdC90LAgLSDQvdCw0YHQu9C+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ9Cg0LDQtNC90Lgg0L3QsNC70L7Qt9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAn0KDQtdC30YPQu9GC0LDRgiDQv9GA0LXRgtGA0LDQs9C1INC/0YDQvtC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICfQkdGA0L7RmCDQv9GA0L7QvNC10L3QtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAn0J3QsNGB0LvQvtCyINGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAn0J7Qv9C40YEg0L/RgNC+0LzQtdC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICfQntC/0YDQsNCy0LTQsNC90L7RgdGCINC/0YDQvtC80LXQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJ9Cj0L/Rg9GC0YHQstC+INC30LAg0YDQsNC00L3QuCDQvdCw0LvQvtCzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICfQmNC30LLQtdGI0YLQsNGYINGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAn0J/RgNC40L7RgNC40YLQtdGCINC/0YDQvtC80LXQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICfQo9GC0LjRhtCw0Zgg0L/RgNC+0LzQtdC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJ9Ca0YDQtdC40YDQsNC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJ9Ch0YLQsNGa0LUg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJ9Ci0LjQvyDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJ9Ce0L/QtdGA0LDRgtC10YAg0LfQsCDRgNCw0LTQvdC4INC90LDQu9C+0LMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAn0L/RgNC1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJ9Cf0YDQvtC80LXQvdCwICVzINGB0LUg0L3QtSDQvNC+0LbQtSDRgdC10YDQuNGY0LDQu9C40LfQvtCy0LDRgtC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJ9Cd0LjRmNC1INC80L7Qs9GD0ZvQtSDQsNC20YPRgNC40YDQsNGC0Lgg0YjQsNCx0LvQvtC9ICIlcyIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAn0J3QuNGY0LUg0LzQvtCz0YPRm9C1INC+0LHRgNC40YHQsNGC0Lgg0L/RgNC+0LzQtdC90YMgIiVzIi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAn0J/RgNC+0LzQtdC90LAg0YHQtSDQvdC1INC80L7QttC1INC/0L7QvNC10YDQuNGC0Lgg0ZjQtdGAINC90LXQvNCwINGA0LDQtNC90LUg0L3QsNC70L7Qs9C1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAn0J/RgNCy0L4g0LTQvtC00LDRmCDRgNCw0LTQvdC4INC90LDQu9C+0LMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAn0J/RgNC+0LzQtdC90LAg0LrQvtGY0LAg0ZjQtSDQstC10Zsg0L/QvtC60YDQtdC90YPRgtCwINGB0LUg0L3QtSDQvNC+0LbQtSDQv9C+0LzQtdGA0LDRgtC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAn0JzQvtC70LjQvNC+INC00LAg0YPQvNC10YHRgtC+INGC0L7Qs9CwINC/0L7QvNC10YDQuNGC0LUg0L/QvtGY0LXQtNC40L3QtSDRgNCw0LTQvdC1INC90LDQu9C+0LPQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAn0JDQutGC0YPQtdC70L3QsCAlcyDRgdC1INC90LUg0LzQvtC20LUg0L7QtNGA0LXQtNC40YLQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyVzINGB0LLQuNGFINGA0LDQtNC90LjRhSDQvdCw0LvQvtCz0LAg0YLRgNC10LHQsCDQtNCwINCx0YPQtNC1INC00LXRhNC40L3QuNGB0LDQvS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJ9Cd0LjRmNC1INCx0LjQu9C+INC80L7Qs9GD0ZvQtSDQv9GA0LXQvNC10YHRgtC40YLQuCDRgtC10YDQvNC40L0g0LfQsCDRgNCw0LTQvdC4INC90LDQu9C+0LMgIyVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAn0J/QvtGC0YDQtdCx0L3QsCDQstCw0Lwg0ZjQtSAlcyDQtNC+0LfQstC+0LvQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICfQndC40ZjQtSDQtNCw0YIgVGVtcGxhdGVJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAn0KjQsNCx0LvQvtC9ICIlcyIg0L3QuNGY0LUg0L3QsNGS0LXQvSDRgyDQsdCw0LfQuCDQv9C+0LTQsNGC0LDQutCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB0ZW1wbGF0ZSAlcyEnfSA9ICfQndC40ZjQtSDQsdC40LvQviDQvNC+0LPRg9Gb0LUg0L7QsdGA0LjRgdCw0YLQuCDRiNCw0LHQu9C+0L0gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAn0J3QuNGY0LUg0LHQuNC70L4g0LzQvtCz0YPRm9C1INCw0LbRg9GA0LjRgNCw0YLQuCDRiNCw0LHQu9C+0L0gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICfQndC40ZjQtSDQsdC40LvQviDQvNC+0LPRg9Gb0LUg0LDQttGD0YDQuNGA0LDRgtC4INGI0LDQsdC70L7QvSAiJXMiISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UhJ30gPSAn0J3QuNGY0LUg0LHQuNC70L4g0LzQvtCz0YPRm9C1INC60YDQtdC40YDQsNGC0Lgg0L/RgNC+0LzQtdC90YMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJ30gPSAn0J3QuNGY0LUg0LHQuNC70L4g0LzQvtCz0YPRm9C1INC60YDQtdC40YDQsNGC0Lgg0YDQsNC00L3QuCDQvdCw0LvQvtCzINC40Lcg0L/RgNC+0LzQtdC90LUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICfQn9GA0LXQs9C70LXQtDog0KjQsNCx0LvQvtC9JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAn0J/QvtGC0YDQtdCx0L3QtSDRgdGDINCy0LDQvCAlcyDQtNC+0LfQstC+0LvQtSDQt9CwINC/0YDQvtC80LXQvdGDISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICfQndC40ZjQtSDQsdC40LvQviDQvNC+0LPRg9Gb0LUg0LTQvtC00LDRgtC4INGA0LDQtNC90Lgg0L3QsNC70L7QsyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICfQndC40ZjQtSDQtNCw0YIgV29ya09yZGVySUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJ30gPQogICAgICAgICfQndC40ZjQtSDQsdC40LvQviDQvNC+0LPRg9Gb0LUg0L/QvtC00LXRgdC40YLQuCDRgNCw0LTQvdC4INC90LDQu9C+0LMgIiVzIiDQsdC10Lcg0L7Qv9C10YDQsNGC0LXRgNCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICfQndC40ZjQtSDQsdC40LvQviDQvNC+0LPRg9Gb0LUg0LDQttGD0YDQuNGA0LDRgtC4INGA0LDQtNC90Lgg0L3QsNC70L7QsyAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICfQndC40ZjQtSDQvNC+0LPRg9Gb0LUg0L/RgNC+0L3QsNGb0Lgg0L/RgNC+0LzQtdC90YMg0LfQsCDRgNCw0LTQvdC4INC90LDQu9C+0LMgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICfQndC40ZjQtSDQsdC40LvQviDQvNC+0LPRg9Gb0LUg0L7QsdGA0LjRgdCw0YLQuCDRgNCw0LTQvdC4INC90LDQu9C+0LMgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFdvcmtPcmRlciAlcyEnfSA9ICfQndC40ZjQtSDQsdC40LvQviDQvNC+0LPRg9Gb0LUg0LDQttGD0YDQuNGA0LDRgtC4INGA0LDQtNC90Lgg0L3QsNC70L7QsyAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJ9Cd0LUg0LzQvtC20LUg0YHQtSDQv9GA0LjQutCw0LfQsNGC0Lgg0LjRgdGC0L7RgNC40ZjQsNGCINGY0LXRgCDQvdC40ZjQtSDQtNCw0YIgV29ya09yZGVySUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAn0KDQsNC00L3QuCDQvdCw0LvQvtCzICIlcyIg0L3QuNGY0LUg0L3QsNGS0LXQvSDRgyDQsdCw0LfQuCDQv9C+0LTQsNGC0LDQutCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJ9CY0YHRgtC+0YDQuNGY0LDRgiDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAn0KHRgtCw0LLQutCwINC40YHRgtC+0YDQuNGY0LDRgtCwICIlcyIg0L3QuNGY0LUg0L3QsNGS0LXQvdCwINGDINCx0LDQt9C4INC/0L7QtNCw0YLQsNC60LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICfQlNC10YLQsNGZ0Lgg0LjRgdGC0L7RgNC40ZjQsNGC0LAg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICfQndC40ZjQtSDQsdC40LvQviDQvNC+0LPRg9Gb0LUg0L/RgNC10YPQt9C10YLQuCDRgNCw0LTQvdC4INC90LDQu9C+0LMgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJ9Cg0LDQtNC90Lgg0L3QsNC70L7QsyAiJXMiINGB0LUg0L3QtSDQvNC+0LbQtSDRgdC10YDQuNGY0LDQu9C40LfQvtCy0LDRgtC4Lic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAn0J/QvtGC0YDQtdCx0L3QsCDQutC+0L3RhNC40LPRg9GA0LDRhtC40L7QvdCwINC+0L/RhtC40ZjQsCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJ9Ca0L7QvdGE0LjQs9GD0YDQsNGG0LjQvtC90LAg0L7Qv9GG0LjRmNCwICVzINC80L7RgNCwINCx0LjRgtC4IEhBU0gg0YDQtdGE0LXRgNC10L3RhtCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJ9Cd0LjRmNC1INC/0YDQvtC90LDRktC10L3QsCDQutC+0L3RhNC40LPRg9GA0LDRhtC40L7QvdCwINGB0YLQsNCy0LrQsCDQt9CwINC/0YDQtdCz0LvQtdC0ICIlcyIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpdGxlOiAlcyB8IFR5cGU6ICVzJ30gPSAn0J3QsNGB0LvQvtCyOiAlcyB8INCi0LjQvzogJXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAn0JzQvtGY0LggQ0FCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICfQnNC+0ZjQtSDQv9GA0L7QvNC10L3QtSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJ9Cc0L7RmNC4INGA0LDQtNC90Lgg0L3QsNC70L7Qt9C4JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJXM6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJ9Cd0L7QstCwINCw0LrRhtC40ZjQsCAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICfQntCx0YDQuNGB0LDQvdCwINCw0LrRhtC40ZjQsCAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICfQntCx0YDQuNGB0LDQvdC1INGB0LLQtSDQsNC60YbQuNGY0LUg0YPRgdC70L7QstCwIChJRD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAn0JjQt9Cy0YDRiNC10L3QsCDQsNC60YbQuNGY0LAgKElEPSVzKTogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICclcyAo0LDQutGG0LjRmNCwIElEPSVzKTogKNC90L7QstC+PSVzLCDRgdGC0LDRgNC+PSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICfQn9GA0L7QvNC10L3QsCAoSUQ9JXMpINGY0LUg0LTQvtGB0YLQuNCz0LvQsCDRgdGC0LLQsNGA0L3QviDQstGA0LXQvNC1INC30LDQstGA0YjQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICfQn9GA0L7QvNC10L3QsCAoSUQ9JXMpINGY0LUg0LTQvtGB0YLQuNCz0LvQsCDRgdGC0LLQsNGA0L3QviDQstGA0LXQvNC1INC/0L7Rh9C10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICfQndC+0LLQsCDQv9GA0L7QvNC10L3QsCAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJ9Cd0L7QsiDQv9GA0LjQu9C+0LM6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCAlcyd9ID0gJ9Ce0LHRgNC40YHQsNC9INC/0YDQuNC70L7QsyAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgRGVsZXRlZCAlcyd9ID0gJ9Ce0LHRgNC40YHQsNC9IENBQiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyVzOiAo0L3QvtCy0L49JXMsINGB0YLQsNGA0L49JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJ9Cf0L7QstC10LfQsNC90L4g0YHQsCAlcyAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAn0J7QsdGA0LjRgdCw0L3QsCDQstC10LfQsCDRgdCwICVzIChJRD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICfQn9C+0YHQu9Cw0YLQviDQvtCx0LDQstC10YjRgtC10ZrQtSAlcyAo0LTQvtCz0LDRktCw0Zg6ICVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAn0J/RgNC+0LzQtdC90LAgKElEPSVzKSDRmNC1INC00L7RgdGC0LjQs9C70LAg0L/Qu9Cw0L3QuNGA0LDQvdC+INCy0YDQtdC80LUg0LfQsNCy0YDRiNC10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICfQn9GA0L7QvNC10L3QsCAoSUQ9JXMpINGY0LUg0LTQvtGB0YLQuNCz0LvQsCDQv9C70LDQvdC40YDQsNC90L4g0LLRgNC10LzQtSDQv9C+0YfQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICfQn9GA0L7QvNC10L3QsCAoSUQ9JXMpINGY0LUg0LTQvtGB0YLQuNCz0LvQsCDRgtGA0LDQttC10L3QviDQstGA0LXQvNC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICfQndC+0LIg0YPRgdC70L7QsiAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICfQntCx0YDQuNGB0LDQvSDRg9GB0LvQvtCyIChJRD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIENvbmRpdGlvbnMgb2YgQ2hhbmdlIChJRD0lcykgZGVsZXRlZCd9ID0gJ9Ce0LHRgNC40YHQsNC90Lgg0YHQstC4INGD0YHQu9C+0LLQuCDQv9GA0L7QvNC10L3QtSAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJXMgKNGD0YHQu9C+0LIgSUQ9JXMpOiAo0L3QvtCy0L49JXMsINGB0YLQsNGA0L49JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICfQndC+0LIg0LjQt9GA0LDQtyAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb24gKElEPSVzKSBkZWxldGVkJ30gPSAn0J7QsdGA0LjRgdCw0L0g0LjQt9GA0LDQtyAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBFeHByZXNzaW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAn0J7QsdGA0LjRgdCw0L3QuCDRgdCy0Lgg0LjQt9GA0LDQt9C4INGD0YHQu9C+0LLQsCAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChFeHByZXNzaW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyVzICjQuNC30YDQsNC3IElEPSVzKTogKNC90L7QstC+PSVzLCDRgdGC0LDRgNC+PSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICfQoNCw0LTQvdC4INC90LDQu9C+0LMgKElEPSVzKSDRmNC1INC00L7RgdGC0LjQs9Cw0L4g0YHRgtCy0LDRgNC90L4g0LLRgNC10LzQtSDQt9Cw0LLRgNGI0LXRgtC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAn0KDQsNC00L3QuCDQvdCw0LvQvtCzIChJRD0lcykg0ZjQtSDQtNC+0YHRgtC40LPQsNC+INGB0YLQstCw0YDQvdC+INCy0YDQtdC80LUg0L/QvtGH0LXRgtC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJ9Cd0L7QstC4INGA0LDQtNC90Lgg0L3QsNC70L7QsyAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAn0J3QvtCyINC/0YDQuNC70L7QsyDQt9CwINGA0LDQtNC90Lgg0L3QsNC70L7QszogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyhJRD0lcykg0J3QvtCyINC/0YDQuNC70L7QsyDQt9CwINGA0LDQtNC90Lgg0L3QsNC70L7QszogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJ9Ce0LHRgNC40YHQsNC9INC/0YDQuNC70L7QsyDQt9CwINGA0LDQtNC90Lgg0L3QsNC70L7QszogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnKElEPSVzKSDQntCx0YDQuNGB0LDQvSDQv9GA0LjQu9C+0LMg0LfQsCDRgNCw0LTQvdC4INC90LDQu9C+0LM6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJ9Cd0L7QsiDQv9GA0LjQu9C+0LMg0LjQt9Cy0LXRiNGC0LDRmNCwINC30LAg0YDQsNC00L3QuCDQvdCw0LvQvtCzOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyhJRD0lcykg0J3QvtCyINC/0YDQuNC70L7QsyDQuNC30LLQtdGI0YLQsNGY0LAg0LfQsCDRgNCw0LTQvdC4INC90LDQu9C+0LM6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAn0J7QsdGA0LjRgdCw0L0g0L/RgNC40LvQvtCzINC40LfQstC10YjRgtCw0ZjQsCDQt9CwINGA0LDQtNC90Lgg0L3QsNC70L7QszogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyhJRD0lcykg0J7QsdGA0LjRgdCw0L0g0L/RgNC40LvQvtCzINC40LfQstC10YjRgtCw0ZjQsCDQt9CwINGA0LDQtNC90Lgg0L3QsNC70L7QszogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJ9Ce0LHRgNC40YHQsNC9INGA0LDQtNC90Lgg0L3QsNC70L7QsyAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnKElEPSVzKSDQn9C+0LLQtdC30LDQvdC+INGB0LAgJXMgKElEPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnKElEPSVzKSDQntCx0YDQuNGB0LDQvdCwINCy0LXQt9CwINGB0LAgJXMgKElEPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnKElEPSVzKSDQn9C+0YHQu9Cw0YLQviDQvtCx0LDQstC10YjRgtC10ZrQtSAlcyAo0LTQvtCz0LDRktCw0Zg6ICVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAn0KDQsNC00L3QuCDQvdCw0LvQvtCzIChJRD0lcykg0ZjQtSDQtNC+0YHRgtC40LPQsNC+INC/0LvQsNC90LjRgNCw0L3QviDQstGA0LXQvNC1INC30LDQstGA0YjQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAn0KDQsNC00L3QuCDQvdCw0LvQvtCzIChJRD0lcykg0ZjQtSDQtNC+0YHRgtC40LPQsNC+INC/0LvQsNC90LjRgNCw0L3QviDQstGA0LXQvNC1INC/0L7Rh9C10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnKElEPSVzKSAlczogKNC90L7QstC+PSVzLCDRgdGC0LDRgNC+PSVzKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0lUU01Db25kaXRpb24vT2JqZWN0L0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FsbCd9ID0gJ3N2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICfRgdCy0LDQutC4JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJ9Cf0YDQtdGC0YXQvtC00L3QuCDQs9GA0LDQtNC40YLQtdGZINC/0YDQvtC80LXQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAn0J/RgNC10YLRhdC+0LTQvdC4INGD0L/RgNCw0LLQvdC40YUg0L/RgNC+0LzQtdC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJ9Ce0L/QtdGA0LDRgtC10YDQuCDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJ9Cf0YDQtdGC0YXQvtC00L3QuCDQvtC/0LXRgNCw0YLQtdGAINGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICfQmNC90LjRhtC40ZjQsNGC0L7RgNC4INC/0YDQvtC80LXQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICfQk9GA0YPQv9CwIElUU01DaGFuZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICfQk9GA0YPQv9CwIElUU01DaGFuZ2VCdWlsZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAn0JPRgNGD0L/QsCBJVFNNQ2hhbmdlTWFuYWdlcic7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAn0LfQsNGF0YLQtdCy0LDQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICfQvtC00L7QsdGA0LXRmtC1INC90LAg0YfQtdC60LDRmtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAn0L7QtNCx0LjRmNC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJ9C+0LTQvtCx0YDQtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICfRgyDRgtC+0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJ1BJUiDQvdCwINGH0LXQutCw0ZrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAn0YPRgdC/0LXRiNC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAn0L3QtdGD0YHQv9C10YjQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAn0L7RgtC60LDQt9Cw0L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICfQv9C+0LLRg9GH0LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICfQutGA0LXQuNGA0LDQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAn0L/RgNC40YXQstCw0ZvQtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVhZHknfSA9ICfRgdC/0YDQtdC80L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ9C+0LTQvtCx0YDQtdGa0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAn0YDQsNC00L3QuCDQvdCw0LvQvtCzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JhY2tvdXQnfSA9ICfQvtC00YPRgdGC0LDQvdCw0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZGVjaXNpb24nfSA9ICfQvtC00LvRg9C60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnUElSJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlSUQnfSA9ICdDaGFuZ2VTdGF0ZUlEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICfQmNCUINCa0LDRgtC10LPQvtGA0LjRmNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAn0JjQlCDRg9GC0LjRhtCw0ZjQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eUlEJ30gPSAn0JjQlCDQv9GA0LjQvtGA0LjRgtC10YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICdDaGFuZ2VNYW5hZ2VySUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnQ2hhbmdlQnVpbGRlcklEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICdXb3JrT3JkZXJTdGF0ZUlEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJ1dvcmtPcmRlclR5cGVJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnV29ya09yZGVyQWdlbnRJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyd9ID0gJ9GY0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAn0L3QuNGY0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICfRmNC1INC/0YDQsNC30L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICfQvdC40ZjQtSDQv9GA0LDQt9C90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAn0ZjQtSDQstC10ZvQtSDQvtC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJ9GY0LUg0LzQsNGa0LUg0L7QtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICfRmNC1INC/0YDQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJ9GY0LUg0L/QvtGB0LvQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJ9GB0LDQtNGA0LbQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICfQvdC1INGB0LDQtNGA0LbQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJ9C/0L7Rh9C40ZrQtSDRgdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJ9C30LDQstGA0YjQsNCy0LAg0YHQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICfQv9C+0LTQtdGB0LgnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICfQlNCwINC70Lgg0YHRgtCy0LDRgNC90L4g0LbQtdC70LjRgtC1INC00LAg0L7QsdGA0LjRiNC10YLQtSDQvtCy0LDRmCDQuNC30YDQsNC3Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJ9CU0LAg0LvQuCDRgdGC0LLQsNGA0L3QviDQttC10LvQuNGC0LUg0LTQsCDQvtCx0YDQuNGI0LXRgtC1INC+0LLRgyDQsNC60YbQuNGY0YM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAn0JTQsCDQu9C4INC30LDQuNGB0YLQsCDQttC10LvQuNGC0LUg0LTQsCDQvtCx0YDQuNGI0LXRgtC1INC+0LLQsNGYINGD0YHQu9C+0LI/JzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAn0KMg0YDQtdC00YMnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICfQm9C40YHRgtCwINC+0L/QtdGA0LDRgtC10YDQsCDQutC+0ZjQuCDQuNC80LDRmNGDINC00L7Qt9Cy0L7Qu9GDINC/0YDQtdGD0LfQuNC80LDRmtCwINGA0LDQtNC90LjRhSDQvdCw0LvQvtCz0LAuINCa0ZnRg9GHINGY0LUg0LrQvtGA0LjRgdC90LjRh9C60L4g0LjQvNC1LiDQodCw0LTRgNC20LDRmCDRmNC1IDAg0LjQu9C4IDEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAn0JvQuNGB0YLQsCDRgdGC0LDRgtGD0YHQsCDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwLCDQv9GA0Lgg0LrQvtGY0LjQvNCwINGb0LUg0LDQutGC0YPQtdC70L3QviDQstGA0LXQvNC1INC/0L7Rh9C10YLQutCwINGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAsINCx0LjRgtC4INC/0L7RgdGC0LDQstGZ0LXQvdC+INCw0LrQviDRmNC1INC/0YDQsNC30L3QviDRgyDQvtCy0L7QvCDQvNC+0LzQtdC90YLRgy4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJ9Ch0YLQstCw0YDQvdC+INCy0YDQtdC80LUg0LfQsNCy0YDRiNC10YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAn0KHRgtCy0LDRgNC90L4g0LLRgNC10LzQtSDQv9C+0YfQtdGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAn0JTQvtC00LDRmCDRgNCw0LTQvdC4INC90LDQu9C+0LMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICfQlNC+0LTQsNGYINGA0LDQtNC90Lgg0L3QsNC70L7QsyAo0L7QtCDRiNCw0LHQu9C+0L3QsCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAn0JTQvtC00LDRmCDQv9GA0L7QvNC10L3RgyDQuNC3INGI0LDQsdC70L7QvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAn0JTQvtC00LDRmCDQv9GA0L7QvNC10L3Rgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJ9CU0L7QtNCw0Zgg0YDQsNC00L3QuCDQvdCw0LvQvtCzINC/0YDQvtC80LXQvdC4ICjQvtC0INGI0LDQsdC70L7QvdCwKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAn0JTQvtC00LDRmCDRgNCw0LTQvdC4INC90LDQu9C+0LMg0L/RgNC+0LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAn0JTQvtC00LDRmCDQuNC3INGI0LDQsdC70L7QvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJ9CQ0LTQvNC40L3QuNGB0YLRgNCw0YbQuNGY0LAgQ0lQINC80LDRgtGA0LjRhtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICfQkNC00LzQuNC90LjRgdGC0YDQsNGG0LjRmNCwINC80LDRiNC40L3QtSDRgdGC0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICfQnNC+0LTRg9C7INC40L3RgtC10YDRhNC10ZjRgdCwINC+0L/QtdGA0LDRgtC10YDQsCDQt9CwINC+0LHQsNCy0LXRiNGC0LDQstCw0ZrQtSwg0L/RgNC10LPQu9C10LQg0LHRgNC+0ZjQsCDQodCw0LLQtdGC0L7QtNCw0LLQvdC40YUg0J7QtNCx0L7RgNCwINC30LAg0J/RgNC+0LzQtdC90LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJ9Cc0L7QtNGD0Lsg0LjQvdGC0LXRgNGE0LXRmNGB0LAg0L7Qv9C10YDQsNGC0LXRgNCwINC30LAg0L7QsdCw0LLQtdGI0YLQsNCy0LDRmtC1LCDQv9GA0LXQs9C70LXQtCDQsdGA0L7RmNCwINC/0YDQvtC80LXQvdCwINC60L7RmNC40LzQsCDRg9C/0YDQsNCy0ZnQsCDQutC+0YDQuNGB0L3QuNC6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAn0JzQvtC00YPQuyDQuNC90YLQtdGA0YTQtdGY0YHQsCDQvtC/0LXRgNCw0YLQtdGA0LAg0LfQsCDQvtCx0LDQstC10YjRgtCw0LLQsNGa0LUsINC/0YDQtdCz0LvQtdC0INCx0YDQvtGY0LAg0L/RgNC+0LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICfQnNC+0LTRg9C7INC+0LHQsNCy0LXRiNGC0LDQstCw0ZrQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAg0LfQsCDQv9GA0LjQutCw0Lcg0LHRgNC+0ZjQsCDRgNCw0LTQvdC40YUg0L3QsNC70L7Qs9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJ9Cf0YDQtdGC0YDQsNCz0LAg0YfQu9Cw0L3QvtCy0LAgQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICfQktGA0LXQvNC1INC60LXRiNC40YDQsNGa0LAg0YMg0LzQuNC90YPRgtCw0LzQsCDQt9CwINCw0LvQsNGC0L3QtSDRgtGA0LDQutC1INGD0L/RgNCw0LLRmdCw0YfQsCDQv9GA0L7QvNC10L3QsNC80LAuINCf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+IDMg0YHQsNGC0LAgKDE4MCDQvNC40L3Rg9GC0LApLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAn0JLRgNC10LzQtSDQutC10YjQuNGA0LDRmtCwINGDINC80LjQvdGD0YLQuNC80LAg0LfQsCDRg9C/0YDQsNCy0ZnQsNGa0LUg0L/RgNC+0LzQtdC90LDQvNCwLiDQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QvjogNSDQtNCw0L3QsCAoNzIwMCDQvNC40L3Rg9GC0LApLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJ9Co0LDQsdC70L7QvdC4INC/0YDQvtC80LXQvdCwIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICfQmNGB0YLQvtGA0LjRmNCw0YIg0L/RgNC+0LzQtdC90LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJ9Ce0YHQvtCx0LUg0YPQutGZ0YPRh9C10L3QtSDRgyDQv9GA0L7QvNC10L3Rgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICfQntCz0YDQsNC90LjRh9C10ZrQtSDQv9GA0LXQs9C70LXQtNCwINC/0YDQvtC80LXQvdCwINC80LDQu9C+0LMg0YTQvtGA0LzQsNGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJ9Cf0YDQtdCz0LvQtdC0INC/0YDQvtC80LXQvdC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAn0KjRgtCw0LzQv9CwINC/0YDQvtC80LXQvdC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICfQn9C70LDQvdC10YAg0L/RgNC+0LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJ9Cf0LvQsNC90LXRgCDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAn0J/RgNC+0LzQtdC90Lgg0L/QvtC00LXRiNCw0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICfQlNC10YLQsNGZ0Lgg0L/RgNC+0LzQtdC90LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJ9CU0LXRgtCw0ZnQuCDQv9GA0L7QvNC10L3QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAn0JjQt9C80LXQvdC4INGI0LDQsdC70L7QvdC1INGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAn0KjQsNCx0LvQvtC90Lgg0L/RgNC+0LzQtdC90LAg0Lgg0YDQsNC00L3QuNGFINC90LDQu9C+0LPQsCDQutC+0ZjQtSDRmNC1INC80LXRmtCw0L4g0L7QstCw0Zgg0LrQvtGA0LjRgdC90LjQui4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAn0J/RgNC+0YHRgtC+0YAg0L/RgNC+0LzQtdC90LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAn0JjQt9C80LXQvdC4INC+0YHQvtCx0LUg0YPQutGZ0YPRh9C10L3QtSDRgyDQvtCy0YMg0L/RgNC+0LzQtdC90YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAn0J7Qs9GA0LDQvdC40YfQtdGa0LUg0LHRgNC+0ZjQsCDQv9GA0L7QvNC10L3QsCDQv9C+INGB0YLRgNCw0L3QuNGG0Lgg0LfQsCDQv9GA0LXQs9C70LXQtCDQvNCw0LvQvtCzINGE0L7RgNC80LDRgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAn0JHRgNC+0Zgg0L/RgNC+0LzQtdC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ9Cf0L7Qt9Cw0LTQuNC90YHQutC4INC80L7QtNGD0Lsg0L/RgNC10YLRgNCw0LPQtSDQt9CwINC/0YDQvtC80LXQvdC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICfQodGC0LDRmtC1INC/0YDQvtC80LXQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAn0JLRgNC10LzQtSDQv9GA0L7QvNC10L3QtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICfQndCw0YHQu9C+0LIg0L/RgNC+0LzQtdC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICfQo9GA0LXQtNC4INGD0YHQu9C+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAn0J/RgNC10LPQu9C10LQg0YPRgdC70L7QstCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAn0JrQvtC90YTQuNCz0YPRgNC40YjQtSDQutC+0ZjQuCDQtdC60YDQsNC9INCx0Lgg0YLRgNC10LHQsNC70L4g0L/RgNC40LrQsNC30LDRgtC4INC90LDQutC+0L0g0LrRgNC10LjRgNCw0ZrQsCDQvdC+0LLQvtCzINGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICfQlNC10YTQuNC90LjRiNC1INC60L7Qu9C40LrQviDRh9C10YHRgtC+INGB0LUg0YjQsNGZ0YMg0L7QsdCw0LLQtdGI0YLQtdGa0LAg0LrQsNC00LAg0YHRgyDQv9C70LDQvdC40YDQsNC90LAg0LLRgNC10LzQtdC90LAg0L/QvtGH0LXRgtC60LAg0LjQu9C4INC00YDRg9Cz0LUg0LLRgNC10LzQtdC90YHQutC1INCy0YDQtdC00L3QvtGB0YLQuCDQtNC+0YHRgtC40LPQvdGD0YLQsC/Qv9GA0L7RiNC70LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICfQndCw0L/RgNCw0LLQuCDQv9GA0L7QvNC10L3Rgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJ9Cd0LDQv9GA0LDQstC4INC/0YDQvtC80LXQvdGDICjQvtC0INGI0LDQsdC70L7QvdCwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAn0J3QsNC/0YDQsNCy0Lgg0L/RgNC+0LzQtdC90YMgKNC+0LQg0YjQsNCx0LvQvtC90LApINC40Lcg0L7QstC+0LMg0YLQuNC60LXRgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICfQndCw0L/RgNCw0LLQuCDQv9GA0L7QvNC10L3RgyDQuNC3INC+0LLQvtCzINGC0LjQutC10YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBub3RpZmljYXRpb25zLid9ID0gJ9Ca0YDQtdC40YDQsNGa0LUg0Lgg0YPQv9GA0LDQstGZ0LDRmtC1INC+0LHQsNCy0LXRiNGC0LXRmtC40LzQsCBJVFNNINGD0L/RgNCw0LLRmdCw0ZrQtdC8INC/0YDQvtC80LXQvdCw0LzQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAn0JrRgNC10LjRgNCw0ZrQtSDQuCDRg9C/0YDQsNCy0ZnQsNGa0LUg0L7QsdCw0LLQtdGI0YLQtdGa0LjQvNCwINC+INC/0YDQvtC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICfQn9C+0LTRgNCw0LfRg9C80LXQstC10L3QuCDRgtC40L8g0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsC4g0J7QstCw0Zgg0YPQvdC+0YEg0LzQvtGA0LAg0LTQsCDQv9C+0YHRgtC+0ZjQuCDRgyDQutC70LDRgdC4INC+0L/RiNGC0LXQsyDQutCw0YLQsNC70L7Qs9CwIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICfQlNC10YTQuNC90LjRiNC1INCw0LrRhtC40ZjQtSDQs9C00LUg0ZjQtSDQtNGD0LPQvNC1INC/0L7RgdGC0LDQstC60Lgg0LTQvtGB0YLRg9C/0L3QviDRgyDQv9C+0LLQtdC30LDQvdC+0Lwg0LPRgNCw0YTQuNGH0LrQvtC8INC10LvQtdC80LXQvdGC0YMg0L7QsdGY0LXQutGC0LAgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4g0JzQvtC70LjQvNC+INC00LAg0LjQvNCw0YLQtSDQvdCwINGD0LzRgyDQtNCwINC+0LLQtSDQkNC60YbQuNGY0LUg0LzQvtGA0LDRmNGDINC00LAg0LHRg9C00YMg0YDQtdCz0LjRgdGC0YDQvtCy0LDQvdC1INGDINGB0LvQtdC00LXRm9C40LwgSlMg0LggQ1NTINC00LDRgtC+0YLQtdC60LDQvNCwOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyDQuCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAn0JTQtdGE0LjQvdC40YjQtSDRgdC40LPQvdCw0LvQtSDQt9CwINGB0LLQsNC60Lgg0YHRgtCw0YLRg9GBINGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAn0JTQtdGE0LjQvdC40YjQtSDQutC+0ZjQtSDQutC+0LvQvtC90LUg0YHRgyDQv9GA0LjQutCw0LfQsNC90LUg0YMg0L/QvtCy0LXQt9Cw0L3QvtC8INCz0YDQsNGE0LjRh9C60L7QvCDQtdC70LXQvNC10L3RgtGDINC/0YDQvtC80LXQvdCwIChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuINCd0LDQv9C+0LzQtdC90LA6INCh0LDQvNC+INCw0YLRgNC40LHRg9GC0Lgg0L/RgNC+0LzQtdC90LUg0YHRgyDQtNC+0LfQstC+0ZnQtdC90Lgg0LfQsCDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QtSDQutC+0LvQvtC90LUuINCc0L7Qs9GD0ZvQtSDQv9C+0YHRgtCw0LLQutC1OiAwID0g0L7QvdC10LzQvtCz0YPRm9C10L3QviwgMSA9INC00L7RgdGC0YPQv9C90L4sIDIgPSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQsNC60YLQuNCy0LjRgNCw0L3Qvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0LrQvtGY0LUg0LrQvtC70L7QvdC1INGB0YMg0L/RgNC40LrQsNC30LDQvdC1INGDINC/0L7QstC10LfQsNC90L7QvCDQs9GA0LDRhNC40YfQutC+0Lwg0LXQu9C10LzQtdC90YLRgyDQoNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwIChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuINCd0LDQv9C+0LzQtdC90LA6INCh0LDQvNC+INCw0YLRgNC40LHRg9GC0Lgg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsCDRgdGDINC00L7Qt9Cy0L7RmdC10L3QuCDQt9CwINC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC1INC60L7Qu9C+0L3QtS4g0JzQvtCz0YPRm9C1INC/0L7RgdGC0LDQstC60LU6IDAgPSDQvtC90LXQvNC+0LPRg9Gb0LXQvdC+LCAxID0g0LTQvtGB0YLRg9C/0L3QviwgMiA9INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INCw0LrRgtC40LLQuNGA0LDQvdC+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC80L7QtNGD0Lsg0L/RgNC10LPQu9C10LTQsCDQt9CwINC80LDQu9C4INC/0YDQuNC60LDQtyDQu9C40YHRgtC1INC/0YDQvtC80LXQvdCwLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHRlbXBsYXRlIGxpc3QuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC80L7QtNGD0Lsg0L/RgNC10LPQu9C10LTQsCDQt9CwINC80LDQu9C4INC/0YDQuNC60LDQtyDQu9C40YHRgtC1INGI0LDQsdC70L7QvdCwLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICfQlNC10YTQuNC90LjRiNC1INC00LAg0LvQuCDRmNC10LzQvtCz0YPRm9C1INGI0YLQsNC80L/QsNGa0LUg0L7QsdGA0LDRh9GD0L3QsNGC0L7QsyDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICfQntC00YDQtdGS0YPRmNC1INC00LAg0LvQuCDRm9C1INCx0LjRgtC4INC80L7Qs9GD0ZvQtSDRiNGC0LDQvNC/0LDRmtC1INC/0LvQsNC90LjRgNCw0L3QuNGFINC90LDQv9C+0YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQtNCwINC70Lgg0LTQvtGB0YLRg9C/0L3QtSAo0LrQsNC+INGI0YLQviDRmNC1INC+0LTRgNC10ZLQtdC90L4g0YMg0LzQsNGI0LjQvdC4INGB0YLQsNGa0LApINC/0YDQvtC80LXQvdC1INC4INGB0YLQsNGC0YPRgdC4INGC0YDQtdCx0LAg0LTQsCDQsdGD0LTRgyDQtNC+0LfQstC+0ZnQtdC90Lgg0LDQutC+INGY0LUg0L/RgNC+0LzQtdC90LAg0YMg0LfQsNC60ZnRg9GH0LDQvdC+0Lwg0YHRgtCw0YLRg9GB0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LTQsCDQu9C4INC00L7RgdGC0YPQv9C90LggKNC60LDQviDRiNGC0L4g0ZjQtSDQvtC00YDQtdGS0LXQvdC+INGDINC80LDRiNC40L3QuCDRgdGC0LDRmtCwKSDRgNCw0LTQvdC4INC90LDQu9C+0LfQuCDQuCDRgdGC0LDRgtGD0YHQuCDRgtGA0LXQsdCwINC00LAg0LHRg9C00YMg0LTQvtC30LLQvtGZ0LXQvdC4INCw0LrQviDRmNC1INGA0LDQtNC90Lgg0L3QsNC70L7QsyDRgyDQt9Cw0LrRmdGD0YfQsNC90L7QvCDRgdGC0LDRgtGD0YHRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJ9CU0LXRhNC40L3QuNGI0LUg0LTQsCDQu9C4INC+0LHRgNCw0YfRg9C90LDRgtC+INCy0YDQtdC80LUg0YLRgNC10LHQsCDQtNCwINCx0YPQtNC1INC/0YDQuNC60LDQt9Cw0L3Qvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICfQlNC10YTQuNC90LjRiNC1INC00LAg0LvQuCDQsNC60YLRg9C10LvQvdCwINCy0YDQtdC80LXQvdCwINC/0L7Rh9C10YLQutCwINC4INC30LDQstGA0YjQtdGC0LrQsCDRgtGA0LXQsdCwINC00LAg0YHQtSDQv9C+0LTQtdGB0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LTQsCDQu9C4INGE0YPQvdC60YbQuNGY0LUg0L/RgNC10YLRgNCw0LPQtSDQv9GA0L7QvNC10L3QsCDQuCDQv9GA0LXRgtGA0LDQs9C1INGA0LDQtNC90LjRhSDQvdCw0LvQvtCz0LAg0LzQvtCz0YMg0LTQsCDQutC+0YDQuNGB0YLQtSDQv9GA0LXRgdC70LjQutCw0L3RgyDQsdCw0LfRgyDQv9C+0LTQsNGC0LDQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC10YTQuNC90LjRiNC1INC00LAg0LvQuCDRgdGC0LDRmtC1INC/0YDQvtC80LXQvdC1INC80L7QttC1INCx0LjRgtC4INC/0L7RgdGC0LDQstGZ0LXQvdGDINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAn0J7QtNGA0LXRktGD0ZjQtSDQtNCwINC70Lgg0L/Qu9Cw0L3QuNGA0LDQvdC4INC90LDQv9C+0YAg0YLRgNC10LHQsCDQtNCwINCx0YPQtNC1INC/0YDQuNC60LDQt9Cw0L0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICfQlNC10YTQuNC90LjRiNC1INC00LAg0LvQuCDQutC70LjRmNC10L3RgiDRgtGA0LXQsdCwINC00LAg0YjRgtCw0LzQv9CwINGC0YDQsNC20LXQvdC4INC00LDRgtGD0LwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0LTQsCDQu9C4INC60LvQuNGY0LXQvdGCINC80L7QttC1INC00LAg0L/RgNC10YLRgNCw0LbRg9GY0LUg0YLRgNCw0LbQtdC90Lgg0LTQsNGC0YPQvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci4nfSA9ICfQlNC10YTQuNC90LjRiNC1INC00LAg0LvQuCDQutC70LjRmNC10L3RgiDQvNC+0LbQtSDQtNCwINC/0L7QtNC10YHQuCDRgtGA0LDQttC10L3QuCDQtNCw0YLRg9C8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2hvd24gYnkgY3VzdG9tZXIuJ30gPSAn0JTQtdGE0LjQvdC40YjQtSDQtNCwINC70Lgg0LrQu9C40ZjQtdC90YIg0LzQvtC20LUg0LTQsCDQv9GA0LjQutCw0LbQtSDRgtGA0LDQttC10L3QuCDQtNCw0YLRg9C8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLid9ID0gJ9CU0LXRhNC40L3QuNGI0LUg0LTQsCDQu9C4INGb0LUg0YHRgtCw0YLRg9GBINGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAg0LHQuNGC0Lgg0L/RgNC40LrQsNC30LDQvS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICfQlNC10YTQuNC90LjRiNC1INC00LAg0LvQuCDRm9C1INC90LDRgdC70L7QsiDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwINCx0LjRgtC4INC/0YDQuNC60LDQt9Cw0L0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICfQlNC10YTQuNC90LjRiNC1INCw0YLRgNC40LHRg9GC0LUg0L/RgNC40LrQsNC30LDQvdC+0LMg0LPRgNCw0YTQuNC60L7QvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0LTQsCDRm9C1INCx0LjRgtC4INC/0YDQuNC60LDQt9Cw0L3QtSDRgdCw0LzQviDQv9GA0L7QvNC10L3QtSDQutC+0ZjQtSDRgdCw0LTRgNC20LUg0YDQsNC00L3QtSDQvdCw0LvQvtCz0LUg0L/QvtCy0LXQt9Cw0L3QtSDRgdCwINGB0LXRgNCy0LjRgdC40LzQsCwg0LfQsCDQutC+0ZjQtSDQutC70LjRmNC10L3RgiDQutC+0YDQuNGB0L3QuNC6INC40LzQsCDQtNC+0LfQstC+0LvRgyDRg9C/0L7RgtGA0LXQsdC1LiDQodCy0LUg0LTRgNGD0LPQtSDQv9GA0L7QvNC10L3QtSDQvdC10ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJ9CU0LXRhNC40L3QuNGI0LUg0YHRgtCw0ZrQsCDQv9GA0L7QvNC10L3QsCDQutC+0ZjQsCDRmNC1INC00L7Qt9Cy0L7RmdC10L3QviDQtNCwINGB0LUg0L7QsdGA0LjRiNGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICfQlNC10YTQuNC90LjRiNC1INGB0YLQsNGC0YPRgdC1INC/0YDQvtC80LXQvdCwINC60L7RmNC4INGb0LUg0LHQuNGC0Lgg0LrQvtGA0LjRiNGC0LXQvdC4INC60LDQviDRhNC40LvRgtC10YDQuCDRgyDQn9CU0KEg0L/RgNC10LPQu9C10LTRgyDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INGB0YLQsNGC0YPRgdC1INC/0YDQvtC80LXQvdCwINC60L7RmNC1INGb0LUg0LHQuNGC0Lgg0LrQvtGA0LjRiNGC0LXQvdC1INC60LDQviDRhNC40LvRgtC10YDQuCDRgyDQv9GA0LXQs9C70LXQtNGDINC/0LvQsNC90LXRgNCwINC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0JTQtdGE0LjQvdC40YjQtSDRgdGC0LDRgtGD0YHQtSDQv9GA0L7QvNC10L3QsCDQutC+0ZjQuCDRm9C1INCx0LjRgtC4INC60L7RgNC40YjRgtC10L3QuCDQutCw0L4g0YTQuNC70YLQtdGA0Lgg0YMg0L/RgNC10LPQu9C10LTRgyDQvNC+0ZjQuNGFINC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0YHRgtCw0YLRg9GB0LUg0L/RgNC+0LzQtdC90LAg0LrQvtGY0LUg0ZvQtSDQsdC40YLQuCDQutC+0YDQuNGI0YLQtdC90LUg0LrQsNC+INGE0LjQu9GC0LXRgNC4INGDINC/0YDQtdCz0LvQtdC00YMg0LzQvtGY0LjRhSDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0YHRgtCw0YLRg9GB0LUg0L/RgNC+0LzQtdC90LAg0LrQvtGY0LUg0ZvQtSDQsdC40YLQuCDQutC+0YDQuNGI0YLQtdC90LUg0LrQsNC+INGE0LjQu9GC0LXRgNC4INGDINC/0YDQtdCz0LvQtdC00YMg0YPQv9GA0LDQstGZ0LDRh9CwINC/0YDQvtC80LXQvdCw0LzQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INGB0YLQsNGC0YPRgdC1INC/0YDQvtC80LXQvdCwINC60L7RmNC1INGb0LUg0LHQuNGC0Lgg0LrQvtGA0LjRiNGC0LXQvdC1INC60LDQviDRhNC40LvRgtC10YDQuCDRgyDQv9GA0LXQs9C70LXQtNGDINC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0YHRgtCw0YLRg9GB0LUg0L/RgNC+0LzQtdC90LAg0LrQvtGY0LUg0ZvQtSDQsdC40YLQuCDQutC+0YDQuNGI0YLQtdC90LUg0LrQsNC+INGE0LjQu9GC0LXRgNC4INGDINC/0YDQtdCz0LvQtdC00YMg0LrQu9C40ZjQtdC90YLRgdC60L7QsyDQv9C70LDQvdC10YDQsCDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDQvdCw0YHQu9C+0LIg0L/RgNCw0LfQvdC1INC/0YDQvtC80LXQvdC1INC60L7RmNCwINGY0LUg0L/QvtGC0YDQtdCx0L3QsCDQt9CwINC40LfQvNC10L3RgyDRiNCw0LHQu9C+0L3QsCDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICfQlNC10YTQuNC90LjRiNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INC60YDQuNGC0LXRgNC40ZjRg9C8INGB0L7RgNGC0LjRgNCw0ZrQsCDRgyBQU0Eg0L/RgNC10LPQu9C10LTRgyDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90LUg0YPRgdC70L7QstC1INGB0L7RgNGC0LjRgNCw0ZrQsCDRgyDQv9GA0LXQs9C70LXQtNGDINGD0L/RgNCw0LLRmdCw0YfQsCDQv9GA0L7QvNC10L3QsNC80LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJ9CU0LXRhNC40L3QuNGI0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0LrRgNC40YLQtdGA0LjRmNGD0Lwg0YHQvtGA0YLQuNGA0LDRmtCwINGDINC/0YDQtdCz0LvQtdC00YMg0L/RgNC+0LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0JTQtdGE0LjQvdC40YjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDQutGA0LjRgtC10YDQuNGY0YPQvCDRgdC+0YDRgtC40YDQsNGa0LAg0YMg0L/RgNC10LPQu9C10LTRgyDQv9C70LDQvdC10YDQsCDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0LrRgNC40YLQtdGA0LjRmNGD0Lwg0YHQvtGA0YLQuNGA0LDRmtCwINGDINC/0YDQtdCz0LvQtdC00YMg0L/RgNC+0LzQtdC90LAg0LzQvtGY0LjRhSBDQUIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QtSDRg9GB0LvQvtCy0LUg0YHQvtGA0YLQuNGA0LDRmtCwINC/0YDQvtC80LXQvdCwINGDINC/0YDQtdCz0LvQtdC00YMg0LzQvtGY0LjRhSDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC1INGD0YHQu9C+0LLQtSDRgdC+0YDRgtC40YDQsNGa0LAg0L/RgNC+0LzQtdC90LAg0YMg0L/RgNC10LPQu9C10LTRgyDQvNC+0ZjQuNGFINGA0LDQtNC90LjRhSDQvdCw0LvQvtCz0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0JTQtdGE0LjQvdC40YjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDQutGA0LjRgtC10YDQuNGY0YPQvCDRgdC+0YDRgtC40YDQsNGa0LAg0YMg0L/RgNC10LPQu9C10LTRgyBQSVIg0L/RgNC+0LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QtSDRg9GB0LvQvtCy0LUg0YHQvtGA0YLQuNGA0LDRmtCwINC/0YDQvtC80LXQvdCwINGDINC/0YDQtdCz0LvQtdC00YMg0LrQu9C40ZjQtdC90YLRgdC60L7QsyDQv9C70LDQvdC10YDQsCDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0LrRgNC40YLQtdGA0LjRmNGD0Lwg0YHQvtGA0YLQuNGA0LDRmtCwINC/0YDQvtC80LXQvdCwINGDINC/0YDQtdCz0LvQtdC00YMg0YjQsNCx0LvQvtC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAn0JTQtdGE0LjQvdC40YjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDQutGA0LjRgtC10YDQuNGY0YPQvCDRgdC+0YDRgtC40YDQsNGa0LAg0YMg0L/RgNC10LPQu9C10LTRgyDQvNC+0ZjQuNGFIENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAn0J7QtNGA0LXRktGD0ZjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QtSDRg9GB0LvQvtCy0LUg0YHQvtGA0YLQuNGA0LDRmtCwINGDINC/0YDQtdCz0LvQtdC00YMg0LzQvtGY0LjRhSDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC1INGD0YHQu9C+0LLQtSDRgdC+0YDRgtC40YDQsNGa0LAg0YMg0L/RgNC10LPQu9C10LTRgyDQvNC+0ZjQuNGFINGA0LDQtNC90LjRhSDQvdCw0LvQvtCz0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0gJ9CU0LXRhNC40L3QuNGI0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0LrRgNC40YLQtdGA0LjRmNGD0Lwg0YHQvtGA0YLQuNGA0LDRmtCwINGDINC/0YDQtdCz0LvQtdC00YMgUElSLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAn0JTQtdGE0LjQvdC40YjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDQutGA0LjRgtC10YDQuNGY0YPQvCDRgdC+0YDRgtC40YDQsNGa0LAg0YMg0L/RgNC10LPQu9C10LTRgyBQU0Eg0L/RgNC+0LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC1INGD0YHQu9C+0LLQtSDRgdC+0YDRgtC40YDQsNGa0LAg0YMg0L/RgNC10LPQu9C10LTRgyDRg9C/0YDQsNCy0ZnQsNGH0LAg0L/RgNC+0LzQtdC90LDQvNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICfQlNC10YTQuNC90LjRiNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INGA0LXQtNC+0YHQu9C10LQg0YMg0L/RgNC10LPQu9C10LTRgyDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQlNC10YTQuNC90LjRiNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INGA0LXQtNC+0YHQu9C10LQg0YMg0L/RgNC10LPQu9C10LTRgyDQv9C70LDQvdC10YDQsCDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC1INGD0YHQu9C+0LLQtSDRgdC+0YDRgtC40YDQsNGa0LAg0YMg0L/RgNC10LPQu9C10LTRgyDQutC70LjRmNC10L3RgtGB0LrQvtCzINC/0LvQsNC90LXRgNCwINC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJ9CU0LXRhNC40L3QuNGI0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0YDQtdC00L7RgdC70LXQtCDRgyDQv9GA0LXQs9C70LXQtNGDINGI0LDQsdC70L7QvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAn0JTQtdGE0LjQvdC40YjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3RgyDQstGA0LXQtNC90L7RgdGCINC30LAg0LrQsNGC0LXQs9C+0YDQuNGY0YMg0L/RgNC+0LzQtdC90LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAn0JTQtdGE0LjQvdC40YjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3RgyDQstGA0LXQtNC90L7RgdGCINC30LAg0YPRgtC40YbQsNGYINC/0YDQvtC80LXQvdC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAn0JTQtdGE0LjQvdC40YjQtSDRgtC40L8g0L/QvtGZ0LAg0LfQsCBDb21wYXJlVmFsdWUg0LDRgtGA0LjQsdGD0YLQtSDQv9GA0L7QvNC10L3QsCDRgyDQtdC60YDQsNC90YMg0LjQt9C80LXQvdCwINGD0YHQu9C+0LLQsCDQv9GA0L7QvNC10L3QsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuINCY0YHQv9GA0LDQstC90LUg0LLRgNC10LTQvdC+0YHRgtC4INGB0YMgU2VsZWN0aW9uLCBUZXh0INC4IERhdGUuINCj0LrQvtC70LjQutC+INGC0LjQvyDQvdC40ZjQtSDQtNC10YTQuNC90LjRgdCw0L0sINC/0L7RmdC1INC90LXRm9C1INCx0LjRgtC4INC/0YDQuNC60LDQt9Cw0L3Qvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciB3b3Jrb3JkZXIgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0YLQuNC/INC/0L7RmdCwINC30LAgQ29tcGFyZVZhbHVlINCw0YLRgNC40LHRg9GC0LUg0YDQsNC00L3QuNGFINC90LDQu9C+0LPQsCDRgyDQtdC60YDQsNC90YMg0LjQt9C80LXQvdCwINGD0YHQu9C+0LLQsCDQv9GA0L7QvNC10L3QsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuINCY0YHQv9GA0LDQstC90LUg0LLRgNC10LTQvdC+0YHRgtC4INGB0YMgU2VsZWN0aW9uLCBUZXh0INC4IERhdGUuINCj0LrQvtC70LjQutC+INGC0LjQvyDQvdC40ZjQtSDQtNC10YTQuNC90LjRgdCw0L0sINC/0L7RmdC1INC90LXRm9C1INCx0LjRgtC4INC/0YDQuNC60LDQt9Cw0L3Qvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LrQvtGY0LUg0LDRgtGA0LjQsdGD0YLQtSDQvtCx0ZjQtdC60YLQsCDRmNC1INC80L7Qs9GD0ZvQtSDQuNC30LDQsdGA0LDRgtC4INC30LAg0L7QsdGY0LXQutCw0YIg0L/RgNC+0LzQtdC90LUg0YMg0LXQutGA0LDQvdGDINC40LfQvNC10L3QsCDRg9GB0LvQvtCy0LAg0L/RgNC+0LzQtdC90LUg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQutC+0ZjQtSDQsNGC0YDQuNCx0YPRgtC1INC+0LHRmNC10LrRgtCwINGY0LUg0LzQvtCz0YPRm9C1INC40LfQsNCx0YDQsNGC0Lgg0LfQsCDQvtCx0ZjQtdC60LDRgiDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YPRgdC70L7QstCwINC/0YDQvtC80LXQvdC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWNjb3VudGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQutC+0ZjQtSDQvtC/0LXRgNCw0YLQvtGA0LUg0ZjQtSDQvNC+0LPRg9Gb0LUg0LjQt9Cw0LHRgNCw0YLQuCDQt9CwINCw0YLRgNC40LHRg9GCIEFjY291bnRlZFRpbWUg0YMg0LXQutGA0LDQvdGDINC40LfQvNC10L3QsCDRg9GB0LvQvtCy0LAg0L/RgNC+0LzQtdC90LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC60L7RmNC1INC+0L/QtdGA0LDRgtC+0YDQtSDRmNC1INC80L7Qs9GD0ZvQtSDQuNC30LDQsdGA0LDRgtC4INC30LAg0LDRgtGA0LjQsdGD0YIgQWN0dWFsRW5kVGltZSDRgyDQtdC60YDQsNC90YMg0LjQt9C80LXQvdCwINGD0YHQu9C+0LLQsCDQv9GA0L7QvNC10L3QtSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQutC+0ZjQtSDQvtC/0LXRgNCw0YLQvtGA0LUg0ZjQtSDQvNC+0LPRg9Gb0LUg0LjQt9Cw0LHRgNCw0YLQuCDQt9CwINCw0YLRgNC40LHRg9GCIEFjdHVhbFN0YXJ0VGltZSDRgyDQtdC60YDQsNC90YMg0LjQt9C80LXQvdCwINGD0YHQu9C+0LLQsCDQv9GA0L7QvNC10L3QtSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LrQvtGY0LUg0L7Qv9C10YDQsNGC0L7RgNC1INGY0LUg0LzQvtCz0YPRm9C1INC40LfQsNCx0YDQsNGC0Lgg0LfQsCDQsNGC0YDQuNCx0YPRgiBDYXRlZ29yeUlEINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YPRgdC70L7QstCwINC/0YDQvtC80LXQvdC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC60L7RmNC1INC+0L/QtdGA0LDRgtC+0YDQtSDRmNC1INC80L7Qs9GD0ZvQtSDQuNC30LDQsdGA0LDRgtC4INC30LAg0LDRgtGA0LjQsdGD0YIgQ2hhbmdlQnVpbGRlcklEINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YPRgdC70L7QstCwINC/0YDQvtC80LXQvdC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlTWFuYWdlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC60L7RmNC1INC+0L/QtdGA0LDRgtC+0YDQtSDRmNC1INC80L7Qs9GD0ZvQtSDQuNC30LDQsdGA0LDRgtC4INC30LAg0LDRgtGA0LjQsdGD0YIgQ2hhbmdlTWFuYWdlcklEINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YPRgdC70L7QstCwINC/0YDQvtC80LXQvdC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQutC+0ZjQtSDQvtC/0LXRgNCw0YLQvtGA0LUg0ZjQtSDQvNC+0LPRg9Gb0LUg0LjQt9Cw0LHRgNCw0YLQuCDQt9CwINCw0YLRgNC40LHRg9GCIENoYW5nZVN0YXRlSUQg0YMg0LXQutGA0LDQvdGDINC40LfQvNC10L3QsCDRg9GB0LvQvtCy0LAg0L/RgNC+0LzQtdC90LUg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQutC+0ZjQtSDQvtC/0LXRgNCw0YLQvtGA0LUg0ZjQtSDQvNC+0LPRg9Gb0LUg0LjQt9Cw0LHRgNCw0YLQuCDQt9CwINCw0YLRgNC40LHRg9GCIENoYW5nZVRpdGxlINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YPRgdC70L7QstCwINC/0YDQvtC80LXQvdC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgRHluYW1pY0ZpZWxkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC60L7RmNC1INC+0L/QtdGA0LDRgtC+0YDQtSDRmNC1INC80L7Qs9GD0ZvQtSDQuNC30LDQsdGA0LDRgtC4INC30LAg0LDRgtGA0LjQsdGD0YIgRHluYW1pY0ZpZWxkINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YPRgdC70L7QstCwINC/0YDQvtC80LXQvdC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgSW1wYWN0SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LrQvtGY0LUg0L7Qv9C10YDQsNGC0L7RgNC1INGY0LUg0LzQvtCz0YPRm9C1INC40LfQsNCx0YDQsNGC0Lgg0LfQsCDQsNGC0YDQuNCx0YPRgiBJbXBhY3RJRCDRgyDQtdC60YDQsNC90YMg0LjQt9C80LXQvdCwINGD0YHQu9C+0LLQsCDQv9GA0L7QvNC10L3QtSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LrQvtGY0LUg0L7Qv9C10YDQsNGC0L7RgNC1INGY0LUg0LzQvtCz0YPRm9C1INC40LfQsNCx0YDQsNGC0Lgg0LfQsCDQsNGC0YDQuNCx0YPRgiBQbGFubmVkRWZmb3J0INGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YPRgdC70L7QstCwINC/0YDQvtC80LXQvdC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LrQvtGY0LUg0L7Qv9C10YDQsNGC0L7RgNC1INGY0LUg0LzQvtCz0YPRm9C1INC40LfQsNCx0YDQsNGC0Lgg0LfQsCDQsNGC0YDQuNCx0YPRgiBQbGFubmVkRW5kVGltZSDRgyDQtdC60YDQsNC90YMg0LjQt9C80LXQvdCwINGD0YHQu9C+0LLQsCDQv9GA0L7QvNC10L3QtSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LrQvtGY0LUg0L7Qv9C10YDQsNGC0L7RgNC1INGY0LUg0LzQvtCz0YPRm9C1INC40LfQsNCx0YDQsNGC0Lgg0LfQsCDQsNGC0YDQuNCx0YPRgiBQbGFubmVkU3RhcnRUaW1lINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YPRgdC70L7QstCwINC/0YDQvtC80LXQvdC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQutC+0ZjQtSDQvtC/0LXRgNCw0YLQvtGA0LUg0ZjQtSDQvNC+0LPRg9Gb0LUg0LjQt9Cw0LHRgNCw0YLQuCDQt9CwINCw0YLRgNC40LHRg9GCIFByaW9yaXR5SUQg0YMg0LXQutGA0LDQvdGDINC40LfQvNC10L3QsCDRg9GB0LvQvtCy0LAg0L/RgNC+0LzQtdC90LUg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC60L7RmNC1INC+0L/QtdGA0LDRgtC+0YDQtSDRmNC1INC80L7Qs9GD0ZvQtSDQuNC30LDQsdGA0LDRgtC4INC30LAg0LDRgtGA0LjQsdGD0YIgUmVxdWVzdGVkVGltZSDRgyDQtdC60YDQsNC90YMg0LjQt9C80LXQvdCwINGD0YHQu9C+0LLQsCDQv9GA0L7QvNC10L3QtSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LrQvtGY0LUg0L7Qv9C10YDQsNGC0L7RgNC1INGY0LUg0LzQvtCz0YPRm9C1INC40LfQsNCx0YDQsNGC0Lgg0LfQsCDQsNGC0YDQuNCx0YPRgiBXb3JrT3JkZXJBZ2VudElEINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YPRgdC70L7QstCwINC/0YDQvtC80LXQvdC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC60L7RmNC1INC+0L/QtdGA0LDRgtC+0YDQtSDRmNC1INC80L7Qs9GD0ZvQtSDQuNC30LDQsdGA0LDRgtC4INC30LAg0LDRgtGA0LjQsdGD0YIgV29ya09yZGVyTnVtYmVyINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YPRgdC70L7QstCwINC/0YDQvtC80LXQvdC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQutC+0ZjQtSDQvtC/0LXRgNCw0YLQvtGA0LUg0ZjQtSDQvNC+0LPRg9Gb0LUg0LjQt9Cw0LHRgNCw0YLQuCDQt9CwINCw0YLRgNC40LHRg9GCIFdvcmtPcmRlclN0YXRlSUQg0YMg0LXQutGA0LDQvdGDINC40LfQvNC10L3QsCDRg9GB0LvQvtCy0LAg0L/RgNC+0LzQtdC90LUg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQutC+0ZjQtSDQvtC/0LXRgNCw0YLQvtGA0LUg0ZjQtSDQvNC+0LPRg9Gb0LUg0LjQt9Cw0LHRgNCw0YLQuCDQt9CwINCw0YLRgNC40LHRg9GCIFdvcmtPcmRlclRpdGxlINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YPRgdC70L7QstCwINC/0YDQvtC80LXQvdC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC60L7RmNC1INC+0L/QtdGA0LDRgtC+0YDQtSDRmNC1INC80L7Qs9GD0ZvQtSDQuNC30LDQsdGA0LDRgtC4INC30LAg0LDRgtGA0LjQsdGD0YIgV29ya09yZGVyVHlwZUlEINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YPRgdC70L7QstCwINC/0YDQvtC80LXQvdC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGVyaW9kIChpbiB5ZWFycyksIGluIHdoaWNoIHN0YXJ0IGFuZCBlbmQgdGltZXMgY2FuIGJlIHNlbGVjdGVkLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQv9C10YDQuNC+0LQgKNGDINCz0L7QtNC40L3QsNC80LApLCDRg9C90YPRgtCw0YAg0LrQvtCzINGY0LUg0LzQvtCz0YPRm9C1INC40LfQsNCx0YDQsNGC0Lgg0LLRgNC10LzQtdC90LAg0L/QvtGH0LXRgtC60LAg0Lgg0LfQsNCy0YDRiNC10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAn0JTQtdGE0LjQvdC40YjQtSDQv9GA0LjQutCw0LfQsNC90LUg0LDRgtGA0LjQsdGD0YLQtSDRgyDQv9C+0YDRg9C60LDQvNCwINC90LAg0LPRgNCw0YTQuNC60YMg0YDQsNC00L3QuNGFINC90LDQu9C+0LPQsCDRgyDQtNC10YLQsNGZ0L3QvtC8INC10LrRgNCw0L3RgyDQv9GA0L7QvNC10L3QsC4g0JfQsCDQv9GA0LjQutCw0Lcg0LTQuNC90LDQvNC40YfQutC40YUg0L/QvtGZ0LAg0YDQsNC00L3QuNGFINC90LDQu9C+0LPQsCDRgyDQv9C+0YDRg9C60LDQvNCwLCDQvNC+0YDQsNGY0YMg0LHQuNGC0Lgg0LTQtdGE0LjQvdC40YHQsNC90Lgg0LrQsNC+IER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwg0LjRgtC0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQutC+0LvQvtC90LUg0L/RgNC40LrQsNC30LDQvdC1INGDINC/0YDQtdCz0LvQtdC00YMgUFNBINC/0YDQvtC80LXQvdCwLiDQntCy0LAg0L7Qv9GG0LjRmNCwINC90LXQvNCwINGD0YLQuNGG0LDRmCDQvdCwINC/0L7Qt9C40YbQuNGY0LUg0LrQvtC70L7QvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC60L7Qu9C+0L3QtSDQv9GA0LjQutCw0LfQsNC90LUg0YMg0L/RgNC10LPQu9C10LTRgyDQv9C70LDQvdC10YDQsCDQv9GA0L7QvNC10L3QsC4g0J7QstCwINC+0L/RhtC40ZjQsCDQvdC10LzQsCDRg9GC0LjRhtCw0Zgg0L3QsCDQv9C+0LfQuNGG0LjRmNC1INC60L7Qu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC60L7Qu9C+0L3QtSDQv9GA0LjQutCw0LfQsNC90LUg0YMg0L/RgNC10LPQu9C10LTRgyDQvNC+0ZjQuNGFIENBQi4g0J7QstCwINC+0L/RhtC40ZjQsCDQvdC10LzQsCDRg9GC0LjRhtCw0Zgg0L3QsCDQv9C+0LfQuNGG0LjRmNC1INC60L7Qu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQutC+0LvQvtC90LUg0L/RgNC40LrQsNC30LDQvdC1INGDINC/0YDQtdCz0LvQtdC00YMg0LzQvtGY0LjRhSDQv9GA0L7QvNC10L3QsC4g0J7QstCwINC+0L/RhtC40ZjQsCDQvdC10LzQsCDRg9GC0LjRhtCw0Zgg0L3QsCDQv9C+0LfQuNGG0LjRmNC1INC60L7Qu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQutC+0LvQvtC90LUg0L/RgNC40LrQsNC30LDQvdC1INGDINC/0YDQtdCz0LvQtdC00YMg0LzQvtGY0LjRhSDRgNCw0LTQvdC40YUg0L3QsNC70L7Qs9CwLiDQntCy0LAg0L7Qv9GG0LjRmNCwINC90LXQvNCwINGD0YLQuNGG0LDRmCDQvdCwINC/0L7Qt9C40YbQuNGY0LUg0LrQvtC70L7QvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBQSVIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfQlNC10YTQuNC90LjRiNC1INC/0YDQuNC60LDQt9Cw0L3QtSDQutC+0LvQvtC90LUg0YMg0L/RgNC10LPQu9C10LTRgyBQSVIuINCe0LLQsCDQvtC/0YbQuNGY0LUg0L3QtdC80LAg0YPRgtC40YbQsNGYINC90LAg0L/QvtC30LjRhtC40ZjQtSDQutC+0LvQvtC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQv9GA0LjQutCw0LfQsNC90LUg0LrQvtC70L7QvdC1INGDINC/0YDQtdCz0LvQtdC00YMg0YPQv9GA0LDQstGZ0LDRh9CwINC/0YDQvtC80LXQvdCw0LzQsC4g0J7QstCwINC+0L/RhtC40ZjQtSDQvdC10LzQsCDRg9GC0LjRhtCw0Zgg0L3QsCDQv9C+0LfQuNGG0LjRmNC1INC60L7Qu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQv9GA0LjQutCw0LfQsNC90LUg0LrQvtC70L7QvdC1INGDINC/0YDQtdCz0LvQtdC00YMg0L/RgNC+0LzQtdC90LAuINCe0LLQsCDQvtC/0YbQuNGY0LUg0L3QtdC80LAg0YPRgtC40YbQsNGYINC90LAg0L/QvtC30LjRhtC40ZjQtSDQutC+0LvQvtC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC/0YDQuNC60LDQt9Cw0L3QtSDQutC+0LvQvtC90LUg0YMg0L/RgNC10YLRgNCw0LfQuCDQv9GA0L7QvNC10L3QsC4g0J7QstCwINC+0L/RhtC40ZjQtSDQvdC10LzQsCDRg9GC0LjRhtCw0Zgg0L3QsCDQv9C+0LfQuNGG0LjRmNC1INC60L7Qu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQv9GA0LjQutCw0LfQsNC90LUg0LrQvtC70L7QvdC1INGDINC/0YDQtdCz0LvQtdC00YMg0LrQu9C40ZjQtdC90YLRgdC60L7QsyDQv9C70LDQvdC10YDQsCDQv9GA0L7QvNC10L3QsC4g0J7QstCwINC+0L/RhtC40ZjQtSDQvdC10LzQsCDRg9GC0LjRhtCw0Zgg0L3QsCDQv9C+0LfQuNGG0LjRmNC1INC60L7Qu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC/0YDQuNC60LDQt9Cw0L3QtSDQutC+0LvQvtC90LUg0YMg0L/RgNC10LPQu9C10LTRgyDRiNCw0LHQu9C+0L3QsC4g0J7QstCwINC+0L/RhtC40ZjQtSDQvdC10LzQsCDRg9GC0LjRhtCw0Zgg0L3QsCDQv9C+0LfQuNGG0LjRmNC1INC60L7Qu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICfQntC00YDQtdGS0YPRmNC1INGB0LjQs9C90LDQu9C1INC30LAg0YHQstCw0LrQuCDRgdGC0LDRgtGD0YEgSVRTTSDQv9GA0L7QvNC10L3QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INGC0LjQv9C+0LLQtSDRiNCw0LHQu9C+0L3QsCDQutC+0ZjQuCDRm9C1INCx0LjRgtC4INC60L7RgNC40YjRgtC10L3QuCDQutCw0L4g0YTQuNC70YLQtdGA0Lgg0YMg0L/RgNC10LPQu9C10LTRgyDRiNCw0LHQu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INGB0YLQsNGC0YPRgdC1INGA0LDQtNC90LjRhSDQvdCw0LvQvtCz0LAg0LrQvtGY0Lgg0ZvQtSDQsdC40YLQuCDQutC+0YDQuNGI0YLQtdC90Lgg0LrQsNC+INGE0LjQu9GC0LXRgNC4INGDINC/0YDQtdCz0LvQtdC00YMg0LzQvtGY0LjRhSDRgNCw0LTQvdC40YUg0L3QsNC70L7Qs9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0YHRgtCw0YLRg9GB0LUg0YDQsNC00L3QuNGFINC90LDQu9C+0LPQsCDQutC+0ZjQuCDRm9C1INGB0LUg0LrQvtGA0LjRgdGC0LjRgtC4INC60LDQviDRhNC40LvRgtC10YDQuCDRgyDQv9GA0LXQs9C70LXQtNGDIFBJUi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0YLQuNC/0L7QstC1INGA0LDQtNC90LjRhSDQvdCw0LvQvtCz0LAg0LrQvtGY0Lgg0ZvQtSDRgdC1INC60L7RgNC40YHRgtC40YLQuCDQt9CwINC/0YDQuNC60LDQtyBQSVIg0L/RgNC10LPQu9C10LTQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAn0J7QtNGA0LXRktGD0ZjQtSDQtNCwINC70Lgg0ZvQtSDQvtCx0LDQstC10YjRgtC10ZrQsCDQsdC40YLQuCDQv9C+0YHQu9Cw0YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIGEgY2hhbmdlLid9ID0gJ9Ce0LHRgNC40YjQuCDQv9GA0L7QvNC10L3Rgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSBjaGFuZ2UuJ30gPSAn0J7QsdGA0LjRiNC4INC/0YDQvtC80LXQvdGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICfQntCx0YDQuNGI0Lgg0YDQsNC00L3QuCDQvdCw0LvQvtCzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJ30gPSAn0JTQtdGC0LDRmdC4INGB0YLQsNCy0LrQtSDQuNGB0YLQvtGA0LjRmNCw0YLQsCDQv9GA0L7QvNC10L3QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJ9Cj0YLQstGA0ZLRg9GY0LUg0LTQsCDQu9C4INC+0L/QtdGA0LDRgtC10YAg0LzQvtC20LUg0LTQsCDQt9Cw0LzQtdC90LggWCDQvtGB0YMg0YHRgtCw0YLQuNGB0YLQuNC60LUg0LDQutC+INGY0LUg0LPQtdC90LXRgNC40YjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIGRvbmUgZm9yIGNvbmZpZyBpdGVtIGNsYXNzZXMuJ30gPQogICAgICAgICfQo9GC0LLRgNGS0YPRmNC1INC00LAg0LvQuCDQt9Cw0ZjQtdC00L3QuNGH0LrQuCDQvNC+0LTRg9C7INGB0YLQsNGC0LjRgdGC0LjQutC1INC80L7QttC1INC00LAg0LPQtdC90LXRgNC40YjQtSDRgdGC0LDRgtC40YHRgtC40LrRgyDQv9GA0L7QvNC10L3QsCDRg9GA0LDRktC10L3QuNGFINC30LAg0LrQvtC90YTQuNCz0YPRgNCw0YbQuNC+0L3QtSDRgdGC0LDQstC60LUg0LrQu9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJ9Cj0YLQstGA0ZLRg9GY0LUg0LTQsCDQu9C4INC30LDRmNC10LTQvdC40YfQutC4INC80L7QtNGD0Lsg0YHRgtCw0YLQuNGB0YLQuNC60LUg0LzQvtC20LUg0LTQsCDQs9C10L3QtdGA0LjRiNC1INGB0YLQsNGC0LjRgdGC0LjQutGDINC/0YDQvtC80LXQvdCwINC/0YDQtdC80LAg0LDQttGD0YDQuNGA0LDRmtGDINC/0YDQvtC80LXQvdCwINGB0YLQsNGa0LAg0YMg0LLRgNC10LzQtdC90YHQutC+0Lwg0L/QtdGA0LjQvtC00YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICfQo9GC0LLRgNGS0YPRmNC1INC00LAg0LvQuCDQt9Cw0ZjQtdC00L3QuNGH0LrQuCDQvNC+0LTRg9C7INGB0YLQsNGC0LjRgdGC0LjQutC1INC80L7QttC1INC00LAg0LPQtdC90LXRgNC40YjQtSDRgdGC0LDRgtC40YHRgtC40LrRgyDQv9GA0L7QvNC10L3QsCDQv9GA0LXQvNCwINCy0LXQt9C4INC40LfQvNC10ZLRgyDQv9GA0L7QvNC10L3QsCDQuCDRgtC40LrQtdGC0LAg0LjQvdGG0LjQtNC10L3QsNGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICfQo9GC0LLRgNGS0YPRmNC1INC00LAg0LvQuCDQt9Cw0ZjQtdC00L3QuNGH0LrQuCDQvNC+0LTRg9C7INGB0YLQsNGC0LjRgdGC0LjQutC1INC80L7QttC1INC00LAg0LPQtdC90LXRgNC40YjQtSDRgdGC0LDRgtC40YHRgtC40LrRgyDQviDQv9GA0L7QvNC10L3QsNC80LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJ9Cj0YLQstGA0ZLRg9GY0LUg0LTQsCDQu9C4INC30LDRmNC10LTQvdC40YfQutC4INC80L7QtNGD0Lsg0YHRgtCw0YLQuNGB0YLQuNC60LUg0LzQvtC20LUg0LTQsCDQs9C10L3QtdGA0LjRiNC1INGB0YLQsNGC0LjRgdGC0LjQutGDINC+INCx0YDQvtGY0YMgUmZjINGC0LjQutC10YLQsCDQutC+0ZjQtSDRmNC1INC60YDQtdC40YDQsNC+INGC0YDQsNC20LjQu9Cw0YYuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LjQvdCw0LzQuNGH0LrQsCDQv9C+0ZnQsCAo0LfQsCDQv9GA0L7QvNC10L3QtSDQuCDRgNCw0LTQvdC1INC90LDQu9C+0LPQtSkg0L/RgNC40LrQsNC30LDQvdCwINGDINC10LrRgNCw0L3RgyDRiNGC0LDQvNC/0LUg0L/RgNC+0LzQtdC90LUg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LjQvdCw0LzQuNGH0LrQsCDQv9C+0ZnQsCDQv9GA0LjQutCw0LfQsNC90LAg0YMg0LXQutGA0LDQvdGDINC00L7QtNCw0LLQsNGa0LAg0L/RgNC+0LzQtdC90LUg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C60LAg0L/QvtGZ0LAg0L/RgNC40LrQsNC30LDQvdCwINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LUg0L/RgNC+0LzQtdC90LUg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LjQvdCw0LzQuNGH0LrQsCDQv9C+0ZnQsCDQv9GA0LjQutCw0LfQsNC90LAg0YMg0LXQutGA0LDQvdGDINC/0YDQtdGC0YDQsNCz0LUg0L/RgNC+0LzQtdC90LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C60LAg0L/QvtGZ0LAg0L/RgNC40LrQsNC30LDQvdCwINGDINC00LXRgtCw0ZnQvdC+0Lwg0L/RgNC10LPQu9C10LTRgyDQv9GA0L7QvNC10L3QtSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQutCwINC/0L7RmdCwINC/0YDQuNC60LDQt9Cw0L3QsCDRgyDQtdC60YDQsNC90YMg0LTQvtC00LDQstCw0ZrQsCDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQutCwINC/0L7RmdCwINC/0YDQuNC60LDQt9Cw0L3QsCDRgyDQtdC60YDQsNC90YMg0LjQt9C80LXQvdC1INGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHJlcG9ydCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LjQvdCw0LzQuNGH0LrQsCDQv9C+0ZnQsCDQv9GA0LjQutCw0LfQsNC90LAg0YMg0LXQutGA0LDQvdGDINC40LfQstC10YjRgtCw0ZjQsCDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQutCwINC/0L7RmdCwINC/0YDQuNC60LDQt9Cw0L3QsCDRgyDQtNC10YLQsNGZ0L3QvtC8INC/0YDQtdCz0LvQtdC00YMg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJ9Cc0L7QtNGD0Lsg0LTQvtCz0LDRktCw0ZjQsCDQtNC40L3QsNC80LjRh9C60LjRhSDQv9C+0ZnQsCDQt9CwINCx0LDRgNCw0YLQsNGa0LUg0YHQsCDQsNC20YPRgNC40YDQsNGa0LXQvCDRg9GB0LvQvtCy0LAg0LDQutC+INGB0LUg0LTQuNC90LDQvNC40YfQutCwINC/0L7RmdCwINC00L7QtNCw0ZjRgywg0LDQttGD0YDQuNGA0LDRmNGDINC40LvQuCDQsdGA0LjRiNGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJ9Cj0YDQtdC00Lgg0L/RgNC+0LzQtdC90YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICfQo9GA0LXQtNC4INC/0YDQvtC80LXQvdGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAn0KPRgNC10LTQuCDRg9GB0LvQvtCy0LUg0LfQsCDQv9GA0L7QvNC10L3Rgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJ9Cj0YDQtdC00Lgg0YDQsNC00L3QuCDQvdCw0LvQvtCzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJ9CQ0LrRgtC40LLQuNGA0LAg0LzQuNC90LjQvNCw0LvQvdGDINCy0LXQu9C40YfQuNC90YMg0LHRgNC+0ZjQsNGH0LAg0L/RgNC+0LzQtdC90LAgKNCw0LrQviDRmNC1INC40LfQsNCx0YDQsNC9INC00LDRgtGD0Lwg0LfQsCBJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3IpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJ9Cf0YDQvtGB0LvQtdC00Lgg0YDQsNGB0L/QvtGA0LXQtCDQv9GA0L7QvNC10L3QsC4g0J/RgNC10LPQu9C10LQg0L7QtNC+0LHRgNC10L3QuNGFINC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICfQlNC10YLQsNGZ0Lgg0LjRgdGC0L7RgNC40ZjQsNGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICdJVFNNINGI0LDQsdC70L7QvdC4INC/0YDQvtC80LXQvdCwIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICdJVFNNINGD0YDQtdGS0LjQstCw0ZrQtSDRg9GB0LvQvtCy0LAg0L/RgNC+0LzQtdC90LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICdJVFNNINC/0YDQtdCz0LvQtdC0INGD0YHQu9C+0LLQsCDQv9GA0L7QvNC10L3QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICdJVFNNINC/0YDQtdCz0LvQtdC0INC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAn0J7QsdCw0LLQtdGI0YLQtdGa0LAgbyBJVFNNINC/0YDQvtC80LXQvdCw0LzQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnSVRTTSDQv9GA0LXQs9C70LXQtCBQSVIg0L/RgNC+0LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJ0lUU00g0L/RgNCw0LLQuNC70LAg0L7QsdCw0LLQtdGI0YLQsNCy0LDRmtCwINC+INC/0YDQvtC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICdJVFNNINC/0YDQvtC80LXQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnSVRTTSDQv9GA0LXQs9C70LXQtCDQvNC+0ZjQuNGFIENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnSVRTTSDQv9GA0LXQs9C70LXQtCDQvNC+0ZjQuNGFINC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICdJVFNNINC/0YDQtdCz0LvQtdC0INC80L7RmNC40YUg0YDQsNC00L3QuNGFINC90LDQu9C+0LPQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnSVRTTSDQsdGA0LjRgdCw0ZrQtSDRiNCw0LHQu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICdJVFNNINGD0YDQtdGS0LjQstCw0ZrQtSBDQUIg0YjQsNCx0LvQvtC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJ0lUU00g0YHQsNC00YDQttCw0Zgg0YPRgNC10ZLQuNCy0LDRmtCwINGI0LDQsdC70L7QvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnSVRTTSDRg9GA0LXRktC40LLQsNGa0LUg0YjQsNCx0LvQvtC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAn0J/RgNC10LPQu9C10LQgSVRTTSDRiNCw0LHQu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICdJVFNNINC80L7QtNGD0Lsg0LTQvtCz0LDRktCw0ZjQsCDQutC+0ZjQuCDRh9C40YHRgtC4INGD0YHQu9C+0LLQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJ0lUU00g0LzQvtC00YPQuyDQtNC+0LPQsNGS0LDRmNCwINC60L7RmNC4INCx0YDQuNGI0LUg0LrQtdGIINCw0LvQsNGC0L3QtSDRgtGA0LDQutC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICdJVFNNINC80L7QtNGD0Lsg0LTQvtCz0LDRktCw0ZjQsCDQutC+0ZjQuCDQsdGA0LjRiNC1INC40YHRgtC+0YDQuNGY0LDRgiDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICdJVFNNINC80L7QtNGD0Lsg0LTQvtCz0LDRktCw0ZjQsCDQutC+0ZjQuCDRg9C/0LDRgNGD0ZjQtSDRg9GB0LvQvtCy0LUg0Lgg0LjQt9Cy0YDRiNCw0LLQsCDQsNC60YbQuNGY0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICdJVFNNINC80L7QtNGD0Lsg0LTQvtCz0LDRktCw0ZjQsCDQutC+0ZjQuCDRiNCw0ZnQtSDQvtCx0LDQstC10YjRgtC10ZrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnSVRTTSDQvNC+0LTRg9C7INC00L7Qs9Cw0ZLQsNGY0LAg0LrQvtGY0Lgg0LDQttGD0YDQuNGA0LAg0LjRgdGC0L7RgNC40ZjQsNGCINC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICdJVFNNINC80L7QtNGD0Lsg0LTQvtCz0LDRktCw0ZjQsCDQsNC20YPRgNC40YDQsCDQuNGB0YLQvtGA0LjRmNCw0YIg0YPRgdC70L7QstCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICdJVFNNINC80L7QtNGD0Lsg0LTQvtCz0LDRktCw0ZjQsCDQsNC20YPRgNC40YDQsCDQuNGB0YLQvtGA0LjRmNCw0YIg0YDQsNC00L3QuNGFINC90LDQu9C+0LPQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJ0lUU00g0LzQvtC00YPQuyDQtNC+0LPQsNGS0LDRmNCwINC60L7RmNC4INC/0YDQtdGA0LDRh9GD0L3QsNCy0LAg0LHRgNC+0ZjQtdCy0LUg0YDQsNC00L3QuNGFINC90LDQu9C+0LPQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnSVRTTSDQvNC+0LTRg9C7INC00L7Qs9Cw0ZLQsNGY0LAg0LrQvtGY0Lgg0L/QvtC00LXRiNCw0LLQsCDQsNC60YLRg9C10LvQvdCwINCy0YDQtdC80LXQvdCwINC/0L7Rh9C10YLQutCwINC4INC30LDQstGA0YjQtdGC0LrQsCDRgNCw0LTQvdC40YUg0L3QsNC70L7Qs9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnSVRTTSDQv9GA0L7QvNC10L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnSVRTTSDRgNCw0LTQvdC4INC90LDQu9C+0LMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZnJlcXVlbmN5IGlzIFwncmVndWxhcmx5XCcsIHlvdSBjYW4gY29uZmlndXJlIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCAoZXZlcnkgWCBob3VycykuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDRg9GH0LXRgdGC0LDQu9C+0YHRgiBcJ9GA0LXQtNC+0LLQvdC+XCcsINC80L7QttC10YLQtSDQv9C+0LTQtdGB0LjRgtC4INC60L7Qu9C40LrQviDRh9C10YHRgtC+INGB0LUg0YjQsNGZ0YMg0L7QsdCw0LLQtdGI0YLQtdGa0LAgKNC90LAg0YHQstCw0LrQuNGFIFgg0YHQsNGC0LgpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAn0J/QvtCy0LXQttC4INC00YDRg9Cz0Lgg0L7QsdGY0LXQutCw0YIg0YHQsCDQv9GA0L7QvNC10L3QvtC8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSB3b3Jrb3JkZXIuJ30gPSAn0J/QvtCy0LXQttC4INC00YDRg9Cz0Lgg0L7QsdGY0LXQutCw0YIg0YHQsCDRgNCw0LTQvdC40Lwg0L3QsNC70L7Qs9C+0LwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAn0JvQuNGB0YLQsCDRgdCy0LjRhSDQtNC+0LPQsNGS0LDRmNCwINC90LAg0L/RgNC+0LzQtdC90LDQvNCwINC60L7RmNCwINGb0LUg0LHQuNGC0Lgg0L/RgNC40LrQsNC30LDQvdCwINGDINCz0YDQsNGE0LjRh9C60L7QvCDQuNC90YLQtdGA0YTQtdGY0YHRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICfQm9C40YHRgtCwINGB0LLQuNGFINC00L7Qs9Cw0ZLQsNGY0LAg0L3QsCDRgNCw0LTQvdC40Lwg0L3QsNC70L7Qt9C40LzQsCDQutC+0ZjQsCDRm9C1INCx0LjRgtC4INC/0YDQuNC60LDQt9Cw0L3QsCDRgyDQs9GA0LDRhNC40YfQutC+0Lwg0LjQvdGC0LXRgNGE0LXRmNGB0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAn0J/QvtGC0YDQsNC20Lgg0YfQu9Cw0L3QvtCy0LUgQ0FCINGA0LDQtNC4INCw0YPRgtC+0LzQsNGC0YHQutC+0LMg0LTQvtCy0YDRiNCw0LLQsNGa0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBhZ2VudHMsIHVzZWQgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJ9Cf0L7RgtGA0LDQttC4INC+0L/QtdGA0LDRgtC10YDQtSwg0YPQv9C+0YLRgNC10LHRmdC10L3QtSDQt9CwINCw0YPRgtC+0LzQsNGC0YHQutC+INC00L7QstGA0YjQsNCy0LDRmtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLid9ID0gJ9Cj0YDQtdGS0LjQstCw0ZrQtSDQvNCw0YjQuNC90LUg0YHRgtCw0ZrQsCBJVFNNINGD0L/RgNCw0LLRmdCw0ZrQsCDQv9GA0L7QvNC10L3QsNC80LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJ9Cj0L/RgNCw0LLRmdCw0ZrQtSDQvNCw0YLRgNC40YbQvtC8INCa0LDRgtC10LPQvtGA0LjRmNCwIC0g0KPRgtC40YbQsNGYIC0g0J/RgNC40L7RgNC40YLQtdGCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAn0JzQvtC00YPQuyDQt9CwINC/0YDQvtCy0LXRgNGDINC00LAg0LvQuCDQtNC+0LTQsNCy0LDRmtC1INGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAg0LjQu9C4INC00L7QtNCw0LLQsNGa0LUg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsCDQuNC3INGI0LDQsdC70L7QvdCwINGC0YDQtdCx0LAg0LTQsCDQsdGD0LTQtSDQtNC+0LfQstC+0ZnQtdC90L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAn0JzQvtC00YPQuyDQt9CwINC/0YDQvtCy0LXRgNGDINGH0LvQsNC90L7QstCwIENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICfQnNC+0LTRg9C7INC30LAg0L/RgNC+0LLQtdGA0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBidWlsZGVyLid9ID0gJ9Cc0L7QtNGD0Lsg0LfQsCDQv9GA0L7QstC10YDRgyDQs9GA0LDQtNC40YLQtdGZ0LAg0L/RgNC+0LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAn0JzQvtC00YPQuyDQt9CwINC/0YDQvtCy0LXRgNGDINGD0L/RgNCw0LLRmdCw0YfQsCDQv9GA0L7QvNC10L3QsNC80LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJ9Cc0L7QtNGD0Lsg0LfQsCDQv9GA0L7QstC10YDRgyDQvtC/0LXRgNCw0YLQtdGA0LAg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nfSA9ICfQnNC+0LTRg9C7INC30LAg0L/RgNC+0LLQtdGA0YMg0LTQsCDQu9C4INGY0LUg0L7QtNGA0LXRktC10L0g0L7Qv9C10YDQsNGC0LXRgCDQt9CwINGA0LDQtNC90Lgg0L3QsNC70L7Qsy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAn0JzQvtC00YPQuyDQt9CwINC/0YDQvtCy0LXRgNGDINC00LAg0LvQuCDRgdC1INC+0L/QtdGA0LDRgtC10YAg0L3QsNC70LDQt9C4INGDINC60L7QvdGE0LjQs9GD0YDQuNGB0LDQvdC+0Zgg0LvQuNGB0YLQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJ9Cc0L7QtNGD0Lsg0LfQsCDQv9GA0LjQutCw0Lcg0LLQtdC30LUg0LfQsCDQutGA0LXQuNGA0LDRmtC1INC/0YDQvtC80LXQvdC1INC40Lcg0L7QstC+0LMg0YLQuNC60LXRgtCwLiDQotC40LrQtdGCINGb0LUg0LDRg9GC0L7QvNCw0YLRgdC60Lgg0LHQuNGC0Lgg0L/QvtCy0LXQt9Cw0L0g0YHQsCDQvdC+0LLQvtC8INC/0YDQvtC80LXQvdC+0LwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJ9Cf0L7QvNC10YDQuCDQstGA0LXQvNC10L3RgdC60Lgg0YLQtdGA0LzQuNC9Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAn0J/QvtC80LXRgNC4INGB0LLQtSDRgNCw0LTQvdC1INC90LDQu9C+0LPQtSDRgyDQstGA0LXQvNC10L3Rgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IChmcm9tIHRlbXBsYXRlKSd9ID0gJ9Cd0L7QstC+ICjQvtC0INGI0LDQsdC70L7QvdCwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IHVzZXJzIG9mIHRoZXNlIGdyb3VwcyBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdGlja2V0IHR5cGVzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgaWYgdGhlIGZlYXR1cmUgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ9Ch0LDQvNC+INC60L7RgNC40YHQvdC40YbQuCDQvtCy0LjRhSDQs9GA0YPQv9CwINC40LzQsNGb0LUg0LTQvtC30LLQvtC70YMg0LfQsCDQutC+0YDQuNGI0ZvQtdGa0LUg0YLQuNC/0L7QstCwINGC0LjQutC10YLQsCDQtNC10YTQuNC90LjRgdCw0L3QuNGFINGDICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiINGD0LrQvtC70LjQutC+INGY0LUg0YTRg9C90LrRhtC40ZjQsCAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiDQvtC80L7Qs9GD0ZvQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAn0JTRgNGD0LPQsCDQv9C+0LTQtdGI0LDQstCw0ZrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJ9Cf0YDQtdCz0LvQtdC0INGB0LLQuNGFINC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICdQSVInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICdQSVIgKNGA0LXRhtC10L3Qt9C40ZjQsCDQv9C+0YHQu9C1INGB0L/RgNC+0LLQvtGS0LXRmtCwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQU0EnfSA9ICdQU0EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIFVzZXJDcmVhdGVXb3JrT3JkZXJOZXh0TWFzayBvYmplY3QgaW4gdGhlIHByZWZlcmVuY2UgdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J/QsNGA0LDQvNC10YLRgNC4INC30LAgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrINC+0LHRmNC10LrQsNGCINGDINC/0YDQuNC60LDQt9GDINC/0L7QtNC10YjQsNCy0LDRmtCwINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICfQn9Cw0YDQsNC80LXRgtGA0Lgg0YHRgtGA0LDQvdC40YbQsCAo0L3QsCDQutC+0ZjQuNC80LAg0YHRgyDQv9GA0L7QvNC10L3QtSDQstC40LTRmdC40LLQtSkg0YHQvNCw0ZrQtdC90L7QsyDQv9GA0LXQs9C70LXQtNCwINGC0LjQutC10YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICfQmNC30LLRgNGI0LDQstCwINC/0L7QtNC10YjQtdC90YMg0LDQutGG0LjRmNGDINC30LAg0YHQstCw0LrQuCDQtNC+0LPQsNGS0LDRmCAo0LrQsNC+INC/0L7Qt9C40LLQsNC70LDRhikg0LfQsCDRgdCy0LDQutC4INC60L7QvdGE0LjQs9GD0YDQuNGB0LDQvSDQstC10LEg0YHQtdGA0LLQuNGBLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAn0J/Qu9Cw0L3QuNGA0LDQvdC+INCy0YDQtdC80LUg0LfQsNCy0YDRiNC10YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJ9Cf0LvQsNC90LjRgNCw0L3QviDQstGA0LXQvNC1INC/0L7Rh9C10YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAn0J7QtNGI0YLQsNC80L/QsNGYINC/0YDQvtC80LXQvdGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJ9Ce0LTRiNGC0LDQvNC/0LDRmCDRgNCw0LTQvdC4INC90LDQu9C+0LMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJ9Cf0YDQvtGY0LXQutGC0L7QstCw0L3QsCDQtNC+0YHRgtGD0L/QvdC+0YHRgiDRgdC10YDQstC40YHQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknfSA9ICfQn9GA0L7RmNC10LrRgtC+0LLQsNC90LAg0LTQvtGB0YLRg9C/0L3QvtGB0YIg0YHQtdGA0LLQuNGB0LAgKFBTQSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAn0J/RgNC+0ZjQtdC60YLQvtCy0LDQvdCwINC00L7RgdGC0YPQv9C90L7RgdGCINGB0LXRgNCy0LjRgdCwIChQU0EpINC/0YDQvtC80LXQvdCwLiDQn9GA0LXQs9C70LXQtCDQvtC00L7QsdGA0LXQvdC40YUg0L/RgNC+0LzQtdC90LAg0Lgg0ZnQuNGF0L7QstC40YUg0YHQtdGA0LLQuNGB0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAn0KLRgNCw0LbQtdC90L4g0LLRgNC10LzQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAn0J/QvtGC0YDQtdCx0L3QsCDQv9GA0LDQstCwINC30LAg0LTQvtC00LDQstCw0ZrQtSDRgNC10LTQvtGB0LvQtdC00LAg0YDQsNC00LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICfQn9C+0YLRgNC10LHQvdCwINC/0YDQsNCy0LAg0LfQsCDQv9GA0LjRgdGC0YPQvyDQv9GA0LXQs9C70LXQtNGDINGB0LLQuNGFINC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICfQn9C+0YLRgNC10LHQvdCwINC/0YDQsNCy0LAg0LfQsCDQtNC+0LTQsNCy0LDRmtC1INGA0LDQtNC90LjRhSDQvdCw0LvQvtCz0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAn0J/QvtGC0YDQtdCx0L3QsCDQv9GA0LDQstCwINC30LAg0LjQt9C80LXQvdGDINC+0L/QtdGA0LDRgtC10YDQsCDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAn0J/QvtGC0YDQtdCx0L3QsCDQv9GA0LDQstCwINC30LAg0LrRgNC10LjRgNCw0ZrQtSDRiNCw0LHQu9C+0L3QsCDQvtC0INC/0YDQvtC80LXQvdC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2VzXCcgQ0FCLid9ID0KICAgICAgICAn0J/QvtGC0YDQtdCx0L3QsCDQv9GA0LDQstCwINC30LAg0LrRgNC10LjRgNCw0ZrQtSDRiNCw0LHQu9C+0L3QsCDQvtC0INC/0YDQvtC80LXQvdC1IENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJ9Cf0L7RgtGA0LXQsdC90LAg0L/RgNCw0LLQsCDQt9CwINC60YDQtdC40YDQsNGa0LUg0YjQsNCx0LvQvtC90LAg0L7QtCDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzIGZyb20gdGVtcGxhdGVzLid9ID0gJ9Cf0L7RgtGA0LXQsdC90LAg0L/RgNCw0LLQsCDQt9CwINC60YDQtdC40YDQsNGa0LUg0L/RgNC+0LzQtdC90LAg0L7QtCDRiNCw0LHQu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICfQn9C+0YLRgNC10LHQvdCwINC/0YDQsNCy0LAg0LfQsCDQutGA0LXQuNGA0LDRmtC1INC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJ9Cf0L7RgtGA0LXQsdC90LAg0L/RgNCw0LLQsCDQt9CwINCx0YDQuNGB0LDRmtC1INGI0LDQsdC70L7QvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICfQn9C+0YLRgNC10LHQvdCwINC/0YDQsNCy0LAg0LfQsCDQsdGA0LjRgdCw0ZrQtSDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJ9Cf0L7RgtGA0LXQsdC90LAg0L/RgNCw0LLQsCDQt9CwINCx0YDQuNGB0LDRmtC1INC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICfQn9C+0YLRgNC10LHQvdCwINC/0YDQsNCy0LAg0LfQsCDRg9GA0LXRktC10ZrQtSDRiNCw0LHQu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJ9Cf0L7RgtGA0LXQsdC90LAg0L/RgNCw0LLQsCDQt9CwINGD0YDQtdGS0LXRmtC1INGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBjaGFuZ2VzLid9ID0gJ9Cf0L7RgtGA0LXQsdC90LAg0L/RgNCw0LLQsCDQt9CwINGD0YDQtdGS0LXRmtC1INC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICfQn9C+0YLRgNC10LHQvdCwINC/0YDQsNCy0LAg0LfQsCDRg9GA0LXRktC10ZrQtSDRg9GB0LvQvtCy0LAg0LfQsCDQv9GA0L7QvNC10L3QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAn0J/QvtGC0YDQtdCx0L3QsCDQv9GA0LDQstCwINC30LAg0YPRgNC10ZLQtdGa0LUg0YHQsNC00YDQttCw0ZjQsCDRiNCw0LHQu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAn0J/QvtGC0YDQtdCx0L3QsCDQv9GA0LDQstCwINC30LAg0YPRgNC10ZLQtdGa0LUg0L7RgdC+0LHQsCDRg9C60ZnRg9GH0LXQvdC40YUg0YMg0L/RgNC+0LzQtdC90YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAn0J/QvtGC0YDQtdCx0L3QsCDQv9GA0LDQstCwINC30LAg0L/QvtC80LXRgNCw0ZrQtSDQv9GA0L7QvNC10L3QsCDRgyDQstGA0LXQvNC10L3Rgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICfQn9C+0YLRgNC10LHQvdCwINC/0YDQsNCy0LAg0LfQsCDRiNGC0LDQvNC/0YMg0L/RgNC+0LzQtdC90LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICfQn9C+0YLRgNC10LHQvdCwINC/0YDQsNCy0LAg0LfQsCDQv9C+0L3QuNGI0YLQtdGa0LUg0L/RgNC+0LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBhIHdvcmtvcmRlci4nfSA9ICfQn9C+0YLRgNC10LHQvdCwINC/0YDQsNCy0LAg0LfQsCDQv9GA0LjQutCw0Lcg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGNoYW5nZXMuJ30gPSAn0J/QvtGC0YDQtdCx0L3QsCDQv9GA0LDQstCwINC30LAg0L/RgNC40LrQsNC3INC/0YDQvtC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJ9Cf0L7RgtGA0LXQsdC90LAg0L/RgNCw0LLQsCDQt9CwINC/0YDQuNC60LDQtyDQu9C40YHRgtC1INC/0YDQvtC80LXQvdCwINCz0LTQtSDRmNC1INC60L7RgNC40YHQvdC40Log0YfQu9Cw0L0gQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJ9Cf0L7RgtGA0LXQsdC90LAg0L/RgNCw0LLQsCDQt9CwINC/0YDQuNC60LDQtyDQu9C40YHRgtC1INC/0YDQvtC80LXQvdCwINCz0LTQtSDQutC+0YDQuNGB0L3QuNC6INGD0L/RgNCw0LLRmdCwINC/0YDQvtC80LXQvdC+0LwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBvdmVydmlldyBvdmVyIGFsbCB0ZW1wbGF0ZXMuJ30gPSAn0J/QvtGC0YDQtdCx0L3QsCDQv9GA0LDQstCwINC30LAg0L/RgNC40LrQsNC3INC/0YDQtdCz0LvQtdC00LAg0YHQstC40YUg0YjQsNCx0LvQvtC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJ9Cf0L7RgtGA0LXQsdC90LAg0L/RgNCw0LLQsCDQt9CwINC/0YDQuNC60LDQtyDRg9GB0LvQvtCy0LAg0LfQsCDQv9GA0L7QvNC10L3QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJ9Cf0L7RgtGA0LXQsdC90LAg0L/RgNCw0LLQsCDQt9CwINC/0YDQuNC60LDQtyDQuNGB0YLQvtGA0LjRmNCw0YLQsCDQv9GA0L7QvNC10L3QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJ9Cf0L7RgtGA0LXQsdC90LAg0L/RgNCw0LLQsCDQt9CwINC/0YDQuNC60LDQtyDQuNGB0YLQvtGA0LjRmNCw0YLQsCDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICfQn9C+0YLRgNC10LHQvdCwINC/0YDQsNCy0LAg0LfQsCDQtNC10YLQsNGZ0LDQvSDQv9GA0LjQutCw0Lcg0LjRgdGC0L7RgNC40ZjQsNGC0LAg0L/RgNC+0LzQtdC90LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAn0J/QvtGC0YDQtdCx0L3QsCDQv9GA0LDQstCwINC30LAg0LTQtdGC0LDRmdCw0L0g0L/RgNC40LrQsNC3INC40YHRgtC+0YDQuNGY0LDRgtCwINGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICfQn9C+0YLRgNC10LHQvdCwINC/0YDQsNCy0LAg0LfQsCDQv9GA0LjQutCw0Lcg0LvQuNGB0YLQtSDQn9C70LDQvdC10YDQsCDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAn0J/QvtGC0YDQtdCx0L3QsCDQv9GA0LDQstCwINC30LAg0L/RgNC40LrQsNC3INC70LjRgdGC0LUg0L/RgNC+0LzQtdC90LAgUFNBLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLid9ID0KICAgICAgICAn0J/QvtGC0YDQtdCx0L3QsCDQv9GA0LDQstCwINC30LAg0L/RgNC40LrQsNC3INC70LjRgdGC0LUg0L/RgNC+0LzQtdC90LAg0YHQsCDQv9GA0LXQtNGB0YLQvtGY0LXRm9C40LwgUElSICjRgNC10YbQtdC90LfQuNGY0LAg0L/QvtGB0LvQtSDRgdC/0YDQvtCy0L7RktC10ZrQsCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gY2hhbmdlcy4nfSA9ICfQn9C+0YLRgNC10LHQvdCwINC/0YDQsNCy0LAg0LfQsCDQv9GA0LjQutCw0Lcg0LvQuNGB0YLQtSDRgdC+0L/RgdGC0LLQtdC90LjRhSDQv9GA0L7QvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biB3b3Jrb3JkZXJzLid9ID0gJ9Cf0L7RgtGA0LXQsdC90LAg0L/RgNCw0LLQsCDQt9CwINC/0YDQuNC60LDQtyDQu9C40YHRgtC1INGB0L7Qv9GB0YLQstC10L3QuNGFINGA0LDQtNC90LjRhSDQvdCw0LvQvtCz0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAn0J/QvtGC0YDQtdCx0L3QsCDQv9GA0LDQstCwINC30LAg0L/QuNGB0ZrQtSDQuNC30LLQtdGI0YLQsNGY0LAg0LfQsCDRgNCw0LTQvdC4INC90LDQu9C+0LMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICfQoNC10YHQtdGCINC/0YDQvtC80LXQvdC1INC4INGa0LXQvdC40YUg0YDQsNC00L3QuNGFINC90LDQu9C+0LPQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICfQoNC10YHQtdGCINC/0YDQvtC80LXQvdC1INC4INGa0LXQvdC40YUg0YDQsNC00L3QuNGFINC90LDQu9C+0LPQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJ9Cf0L7QutGA0LXQvdC4INC30LDQtNCw0YLQsNC6INGA0LDQtNC4INC/0YDQvtCy0LXRgNC1INC00LAg0LvQuCDRgdGDINGDINC/0YDQvtC80LXQvdCw0LzQsCDQuCDRgNCw0LTQvdC40Lwg0L3QsNC70L7Qt9C40LzQsCDQtNC+0YHRgtC40LPQvdGD0YLQsCDQvtC00YDQtdGS0LXQvdCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJ9Ch0LDRh9GD0LLQsNGYINC/0YDQvtC80LXQvdGDINC60LDQviDRiNCw0LHQu9C+0L0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAn0KHQsNGH0YPQstCw0Zgg0YDQsNC00L3QuCDQvdCw0LvQvtCzINC60LDQviDRiNCw0LHQu9C+0L0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAn0KDQsNGB0L/QvtGA0LXQtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICfQldC60YDQsNC9INC/0L7RgdC70LUg0LrRgNC10LjRgNCw0ZrQsCDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAn0J/RgNC10YLRgNCw0LbQuCDQv9GA0L7QvNC10L3QtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICfQn9GA0LXRgtGA0LDQttC4INC/0YDQvtC80LXQvdC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lid9ID0KICAgICAgICAn0JHQuNGA0LAg0LzQvtC00YPQuyDQt9CwINCz0LXQvdC10YDQuNGB0LDRmtC1INCx0YDQvtGY0LAg0L/RgNC+0LzQtdC90LAuICJBdXRvSW5jcmVtZW50IiDRg9Cy0LXRm9Cw0LLQsCDQsdGA0L7RmCDQv9GA0L7QvNC10L3QsCwgU3lzdGVtSUQg0Lgg0LHRgNC+0ZjQsNGHINGB0LUg0LrQvtGA0LjRgdGC0LUg0YMgU3lzdGVtSUQu0LHRgNC+0ZjQsNGHINGE0L7RgNC80LDRgtGDICjQvdC/0YAuIDEwMDExOCwgMTAwMTE5KS4g0KHQsCAiRGF0ZSIg0LHRgNC+0ZjQtdCy0Lgg0L/RgNC+0LzQtdC90LAg0ZvQtSDQsdC40YLQuCDQs9C10L3QtdGA0LjRgdCw0L3QuCDQv9GA0LXQutC+INGC0YDQtdC90YPRgtC90L7QsyDQtNCw0YLRg9C80LAg0Lgg0LHRgNC+0ZjQsNGH0LAuINCk0L7RgNC80LDRgiDRm9C1INC40LfQs9C70LXQtNCw0YLQuCDQutCw0L4g0LPQvtC00LjQvdCwLtC80LXRgdC10YYu0LTQsNC9LtCx0YDQvtGY0LDRhyAo0L3Qv9GALiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyKS4g0KHQsCAiRGF0ZUNoZWNrc3VtIiDQsdGA0L7RmNCw0Ycg0ZvQtSDQsdC40YLQuCDQtNC+0LTQsNGCINC60LDQviDQutC+0L3RgtGA0L7Qu9C90Lgg0LfQsdC40YAg0L3QuNC30YMg0YHQsNGH0LjRmtC10L3QvtC8INC+0LQg0LTQsNGC0YPQvNCwINC4IFN5c3RlbUlELiDQmtC+0L3RgtGA0L7Qu9C90Lgg0LfQsdC40YAg0ZvQtSDRgdC1INGB0LzQtdGa0LjQstCw0YLQuCDQvdCwINC00L3QtdCy0L3QvtC8INC90LjQstC+0YMuINCk0L7RgNC80LDRgiDQuNC30LPQu9C10LTQsCDQvtCy0LDQutC+OiDQs9C+0LTQuNC90LAu0LzQtdGB0LXRhi7QtNCw0L0uU3lzdGVtSUQu0LHRgNC+0ZjQsNGHLtC60L7QvdGC0YDQvtC70L3QuF/Qt9Cx0LjRgCwg0L3Qv9GALiAyMDEwMDYyNDEwMDAwMDE3LCAyMDAyMDcwMTEwMTAxNTM1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJ9Ce0LTRgNC10LTQuCDQvtC/0LXRgNCw0YLQtdGA0LAg0LfQsCDRgNCw0LTQvdC4INC90LDQu9C+0LMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQtdGE0LjQvdC40YjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3RgyDQstC40YHQuNC90YMg0YDQtdC00LAgKNGDINC/0LjQutGB0LXQu9C40LzQsCkgSFRNTCDQv9C+0ZnQsCDRgyDQtdC60YDQsNC90YMg0LTQtdGC0LDRmdCwINC/0YDQvtC80LXQvdC1INC4INGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0LzQsNC60YHQuNC80LDQu9C90YMg0LLQuNGB0LjQvdGDINGA0LXQtNCwICjRgyDQv9C40LrRgdC10LvQuNC80LApIEhUTUwg0L/QvtGZ0LAg0YMg0LXQutGA0LDQvdGDINC00LXRgtCw0ZnQsCDQv9GA0L7QvNC10L3QtSDQuCDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJ9Cf0L7QtNC10YjQsNCy0LAg0LzQuNC90LjQvNCw0LvQvdGDINCy0LXQu9C40YfQuNC90YMg0LHRgNC+0ZjQsNGH0LAg0L/RgNC+0LzQtdC90LAgKNCw0LrQviDRmNC1INC40LfQsNCx0YDQsNC9ICJBdXRvSW5jcmVtZW50IiDQt9CwIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuINCf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INGY0LUgNSwg0YjRgtC+INC30L3QsNGH0Lgg0LTQsCDQsdGA0L7RmNCw0Ycg0L/QvtGH0LjRmtC1INC+0LQgMTAwMDAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAn0J/QvtC00LXRgdC4INC80LDRiNC40L3RgyDRgdGC0LDRmtCwINC30LAg0L/RgNC+0LzQtdC90LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAn0J/QvtC00LXRgdC4INC80LDRiNC40L3RgyDRgdGC0LDRmtCwINC30LAg0YDQsNC00L3QtSDQvdCw0LvQvtCz0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJ9Cf0YDQuNC60LDQt9GD0ZjQtSDQv9C+0ZnQtSDQt9CwINC/0L7RgtCy0YDQtNGDINGDINC10LrRgNCw0L3RgyDQuNC30LzQtdC90LAg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAg0LrQvtGY0LUg0LTQtdGE0LjQvdC40YjQtSDQtNCwINC70Lgg0ZvQtSDRgdC70LXQtNC10ZvQuCDRgNCw0LTQvdC4INC90LDQu9C+0LfQuCDRgtCw0LrQvtGS0LUg0LHQuNGC0Lgg0L/RgNC10LzQtdGI0YLQtdC90Lgg0YPQutC+0LvQuNC60L4g0ZjQtSDRgNCw0LTQvdC4INC90LDQu9C+0LMg0LjQt9C80LXRmtC10L0g0Lgg0L/Qu9Cw0L3QuNGA0LDQvdC+INCy0YDQtdC80LUg0LfQsNCy0YDRiNC10YLQutCwINC/0YDQvtC80LXRmtC10L3Qvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KMg0LzQtdC90LjRmNGDINC/0YDQuNC60LDQt9GD0ZjQtSDQstC10LfRgyDQutC+0ZjQsCDQvtC80L7Qs9GD0ZvQsNCy0LAg0LjQt9C80LXQvdGDINC+0L/QtdGA0LDRgtC10YDQsCDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwLCDRgyDQtNC10YLQsNGZ0L3QvtC8INC/0YDQuNC60LDQt9GDINGC0L7QsyDQvdCw0LvQvtCz0LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQoyDQvNC10L3QuNGY0YMg0L/RgNC40LrQsNC30YPRmNC1INCy0LXQt9GDINC60L7RmNCwINC+0LzQvtCz0YPRm9Cw0LLQsCDQtNC10YTQuNC90LjRgdCw0ZrQtSDQv9GA0L7QvNC10L3QtSDQutCw0L4g0YjQsNCx0LvQvtC90LAg0L3QsCDQtNC10YLQsNGZ0L3QvtC8INC/0YDQuNC60LDQt9GDINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KMg0LzQtdC90LjRmNGDINC/0YDQuNC60LDQt9GD0ZjQtSDQstC10LfRgyDQutC+0ZjQsCDQvtC80L7Qs9GD0ZvQsNCy0LAg0LTQtdGE0LjQvdC40YHQsNGa0LUg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsCDQutCw0L4g0YjQsNCx0LvQvtC90LAg0L3QsCDQtNC10YLQsNGZ0L3QvtC8INC/0YDQuNC60LDQt9GDINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQoyDQvNC10L3QuNGY0YMg0L/RgNC40LrQsNC30YPRmNC1INCy0LXQt9GDINC60L7RmNCwINC+0LzQvtCz0YPRm9Cw0LLQsCDQuNC30LzQtdC90YMg0LjQt9Cy0LXRiNGC0LDRmNCwINGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAsINGDINC00LXRgtCw0ZnQvdC+0Lwg0L/RgNC40LrQsNC30YMg0YLQvtCzINC90LDQu9C+0LPQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgY2hhbmdlIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIGNoYW5nZSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CjINC80LXQvdC40ZjRgyDQv9GA0LjQutCw0LfRg9GY0LUg0LLQtdC30YMg0LrQvtGY0LAg0L7QvNC+0LPRg9Gb0LDQstCw0L/QvtCy0LXQt9C40LLQsNGa0LUg0L/RgNC+0LzQtdC90LUg0YHQsCDQtNGA0YPQs9C40Lwg0L7QsdGY0LXQutGC0L7QvCDQvdCwINC00LXRgtCw0ZnQvdC+0Lwg0L/RgNC40LrQsNC30YMg0L/RgNC+0LzQtdC90LUg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KMg0LzQtdC90LjRmNGDINC/0YDQuNC60LDQt9GD0ZjQtSDQstC10LfRgyDQutC+0ZjQsCDQvtC80L7Qs9GD0ZvQsNCy0LAg0L/QvtCy0LXQt9C40LLQsNGa0LUg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsCDRgdCwINC00YDRg9Cz0LjQvCDQvtCx0ZjQtdC60YLQvtC8INGDINC00LXRgtCw0ZnQvdC+0Lwg0L/RgNC40LrQsNC30YMg0YLQvtCzINC90LDQu9C+0LPQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBtb3ZpbmcgdGhlIHRpbWUgc2xvdCBvZiBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQoyDQvNC10L3QuNGY0YMg0L/RgNC40LrQsNC30YPRmNC1INCy0LXQt9GDINC60L7RmNCwINC+0LzQvtCz0YPRm9Cw0LLQsCDQv9C+0LzQtdGA0LDRmtC1INCy0YDQtdC80LXQvdGB0LrQvtCzINGC0LXRgNC80LjQvdCwINC/0YDQvtC80LXQvdC1INC90LAg0LTQtdGC0LDRmdC90L7QvCDQv9GA0LjQutCw0LfRgyDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CjINC80LXQvdC40ZjRgyDQv9GA0LjQutCw0LfRg9GY0LUg0LLQtdC30YMg0LrQvtGY0LAg0L7QvNC+0LPRg9Gb0LDQstCwINC/0YDQtdGD0LfQuNC80LDRmtC1INGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAg0L3QsCDQtNC10YLQsNGZ0L3QvtC8INC/0YDQuNC60LDQt9GDINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KMg0LzQtdC90LjRmNGDINC/0YDQuNC60LDQt9GD0ZjQtSDQstC10LfRgyDQutC+0ZjQsCDQvtC80L7Qs9GD0ZvQsNCy0LAg0L/RgNC40YHRgtGD0L8g0YPRgdC70L7QstC40LzQsCDQv9GA0L7QvNC10L3QtSDQvdCwINC00LXRgtCw0ZnQvdC+0Lwg0L/RgNC40LrQsNC30YMg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQoyDQvNC10L3QuNGY0YMg0L/RgNC40LrQsNC30YPRmNC1INCy0LXQt9GDINC60L7RmNCwINC+0LzQvtCz0YPRm9Cw0LLQsCDQv9GA0LjRgdGC0YPQvyDQuNGB0YLQvtGA0LjRmNCw0YLRgyDQv9GA0L7QvNC10L3QtSDQvdCwINC00LXRgtCw0ZnQvdC+0Lwg0L/RgNC40LrQsNC30YMg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQoyDQvNC10L3QuNGY0YMg0L/RgNC40LrQsNC30YPRmNC1INCy0LXQt9GDINC30LAg0L/RgNC40YHRgtGD0L8g0LjRgdGC0L7RgNC40ZjQsNGC0YMg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsCDQvdCwINC00LXRgtCw0ZnQvdC+0Lwg0L/RgNC40LrQsNC30YMg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQoyDQvNC10L3QuNGY0YMg0L/RgNC40LrQsNC30YPRmNC1INCy0LXQt9GDINC30LAg0LTQvtC00LDQstCw0ZrQtSDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwINC90LAg0LTQtdGC0LDRmdC90L7QvCDQv9GA0LjQutCw0LfRgyDQv9GA0L7QvNC10L3QtSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KMg0LzQtdC90LjRmNGDINC/0YDQuNC60LDQt9GD0ZjQtSDQstC10LfRgyDQt9CwINCx0YDQuNGB0LDRmtC1INC/0YDQvtC80LXQvdC1INC90LAg0LTQtdGC0LDRmdC90L7QvCDQv9GA0LjQutCw0LfRgyDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KMg0LzQtdC90LjRmNGDINC/0YDQuNC60LDQt9GD0ZjQtSDQstC10LfRgyDQt9CwINCx0YDQuNGB0LDRmtC1INGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAg0L3QsCDQtNC10YLQsNGZ0L3QvtC8INC/0YDQuNC60LDQt9GDINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CjINC80LXQvdC40ZjRgyDQv9GA0LjQutCw0LfRg9GY0LUg0LLQtdC30YMg0LfQsCDQuNC30LzQtdC90YMg0L/RgNC+0LzQtdC90LUg0L3QsCDQtNC10YLQsNGZ0L3QvtC8INC/0YDQuNC60LDQt9GDINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CjINC80LXQvdC40ZjRgyDQv9GA0LjQutCw0LfRg9GY0LUg0LLQtdC30YMg0LfQsCDQuNC30LzQtdC90YMg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsCDQvdCwINC00LXRgtCw0ZnQvdC+0Lwg0L/RgNC40LrQsNC30YMg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KMg0LzQtdC90LjRmNGDINC/0YDQuNC60LDQt9GD0ZjQtSDQstC10LfRgyDQt9CwINC/0L7QstGA0LDRgtCw0Log0L3QsCDQtNC10YLQsNGZ0L3QuCDQv9GA0LjQutCw0Lcg0L/RgNC+0LzQtdC90LUg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgd29ya29yZGVyIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KMg0LzQtdC90LjRmNGDINC/0YDQuNC60LDQt9GD0ZjQtSDQstC10LfRgyDQt9CwINC/0L7QstGA0LDRgtCw0Log0L3QsCDQtNC10YLQsNGZ0L3QuCDQv9GA0LjQutCw0Lcg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KMg0LzQtdC90LjRmNGDINC/0YDQuNC60LDQt9GD0ZjQtSDQstC10LfRgyDQt9CwINGI0YLQsNC80L/QsNGa0LUg0L/RgNC+0LzQtdC90LUg0L3QsCDQtNC10YLQsNGZ0L3QvtC8INC/0YDQuNC60LDQt9GDINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQoyDQvNC10L3QuNGY0YMg0L/RgNC40LrQsNC30YPRmNC1INCy0LXQt9GDINC30LAg0YjRgtCw0LzQv9Cw0ZrQtSDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwINC90LAg0LTQtdGC0LDRmdC90L7QvCDQv9GA0LjQutCw0LfRgyDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KMg0LzQtdC90LjRmNGDINC/0YDQuNC60LDQt9GD0ZjQtSDQstC10LfRgyDQt9CwINC/0L7QvdC40YjRgtCw0LLQsNGa0LUg0L/RgNC+0LzQtdC90LUg0Lgg0L/RgNC40L/QsNC00LDRmNGD0ZvQuNGFINGA0LDQtNC90LjRhSDQvdCw0LvQvtCz0LAg0L3QsCDQtNC10YLQsNGZ0L3QvtC8INC/0YDQuNC60LDQt9GDINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KMg0LzQtdC90LjRmNGDINC/0YDQuNC60LDQt9GD0ZjQtSDQstC10LfRgyDQutC+0ZjQsCDQvtC80L7Qs9GD0ZvQsNCy0LAg0L/RgNC40LrQsNC3INC+0YHQvtCx0LAg0YPQutGZ0YPRh9C10L3QuNGFINGDINC/0YDQvtC80LXQvdGDINGDINC00LXRgtCw0ZnQvdC+0Lwg0L/RgNC40LrQsNC30YMg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cf0YDQuNC60LDQt9GD0ZjQtSDQuNGB0YLQvtGA0LjRmNCw0YIg0YLQuNC60LXRgtCwICjQvtCx0YDQvdGD0YIg0YDQtdC00L7RgdC70LXQtCkg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAn0JzQsNGI0LjQvdCwINGB0YLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ9Cn0YPQstCwINC40LTQtdC90YLQuNGE0LjQutCw0YbQuNGY0LUg0L/RgNC+0LzQtdC90LAg0Lgg0YDQsNC00L3QuNGFINC90LDQu9C+0LPQsCDQuCDQv9GA0LjQv9Cw0LTQsNGY0YPRm9C1INC40LTQtdC90YLQuNGE0LjQutCw0YbQuNGY0LUg0YjQsNCx0LvQvtC90LAsINC30LAg0LLRgNC10LzQtSDQtNC+0Log0LrQvtGA0LjRgdC90LjQuiDRg9GA0LXRktGD0ZjQtSDRiNCw0LHQu9C+0L0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAn0J/RgNC10YPQt9C80Lgg0YDQsNC00L3QuCDQvdCw0LvQvtCzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJ9Cf0YDQtdGD0LfQvNC4INGA0LDQtNC90Lgg0L3QsNC70L7Qsy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSB0aGUgd29ya29yZGVyLid9ID0gJ9Cf0YDQtdGD0LfQvNC4INGA0LDQtNC90Lgg0L3QsNC70L7Qsy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICfQn9GA0LXQs9C70LXQtCDRiNCw0LHQu9C+0L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAn0KLQuNC/INGI0LDQsdC70L7QvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlLid9ID0gJ9Co0LDQsdC70L7QvS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJ9CY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC30LAg0L/RgNC+0LzQtdC90YMsINC90L/RgC4gQ2hhbmdlIywgTXlDaGFuZ2UjLiDQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDRmNC1IENoYW5nZSMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICfQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQt9CwINGA0LDQtNC90Lgg0L3QsNC70L7Qsywg0L3Qv9GALiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuINCf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INGY0LUgV29ya29yZGVyIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJ9Ce0LLQsNGYIEFDTCDQvNC+0LTRg9C7INC+0LPRgNCw0L3QuNGH0LDQstCwINC80L7Qs9GD0ZvQvdC+0YHRgiDQutC+0YDQuNGI0ZvQtdGa0LAg0YLQuNC/0L7QstCwINGC0LjQutC10YLQsCDQutC+0ZjQuCDRgdGDINC00LXRhNC40L3QuNGB0LDQvdC4INGDINC/0L7QtNC10YjQsNCy0LDRmtGDIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsINC4INGC0L4g0LrQvtGA0LjRgdC90LjRhtC40LzQsCDQs9GA0YPQv9CwINC00LXRhNC40L3QuNGB0LDQvdC40Lwg0YMgIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuINCa0LDQutC+INC+0LLQsNGYIEFDTCDQvNC+0LbQtSDQtNCwINGB0LUg0YHRg9C60L7QsdC4INGB0LAg0LTRgNGD0LPQuNC8IEFDTC3QvtCy0LjQvNCwINC60L7RmNC4INGB0LUg0LjRgdGC0L4g0L7QtNC90L7RgdC1INC90LAg0YLQuNC/INGC0LjQutC10YLQsCwg0L/QvtC00LXRiNCw0LLQsNGa0LUg0ZjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQuNGB0LrRmdGD0YfQtdC90L4g0Lgg0YLRgNC10LHQsCDQs9CwINCw0LrRgtC40LLQuNGA0LDRgtC4INGB0LDQvNC+INGD0LrQvtC70LjQutC+INGY0LUg0L3QtdC+0L/RhdC+0LTQvdC+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICfQktGA0LXQvNC10L3RgdC60Lgg0YLQtdGA0LzQuNC9JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICfQotC40L/QvtCy0Lgg0YLQuNC60LXRgtCwLCDQutC+0LQg0LrQvtGY0LjRhSDRm9C1INGDINC00LXRgtCw0ZnQvdC+0Lwg0L/RgNC40LrQsNC30YMg0LHQuNGC0Lgg0LLQuNC00ZnQuNCy0LAg0LLQtdC30LAg0LfQsCDQtNC+0LTQsNCy0LDRmtC1INC/0YDQvtC80LXQvdC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJ9Cf0YDQtdGC0YDQsNCz0LAg0LrQvtGA0LjRgdC90LjQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJ9CU0L7QtNCw0Zgg0YDQsNC00L3QuCDQvdCw0LvQvtCzICjQuNC3INGI0LDQsdC70L7QvdCwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJ9CU0L7QtNCw0Zgg0YDQsNC00L3QuCDQvdCw0LvQvtCzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAn0J7Qv9C10YDQsNGC0LXRgCDQt9CwINGA0LDQtNC90Lgg0L3QsNC70L7Qsy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICfQkdGA0LjRgdCw0ZrQtSDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICfQo9GA0LXRktC10ZrQtSDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJ9CU0LXRgtCw0ZnQuCDQuNGB0YLQvtGA0LjRmNCw0YLQsCDRgNCw0LTQvdC+0LMg0L3QsNC70L7Qs9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICfQmNGB0YLQvtGA0LjRmNCw0YIg0YDQsNC00L3QvtCzINC90LDQu9C+0LPQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICfQmNC30LLQtdGI0YLQsNGYINGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAn0JTQtdGC0LDRmdC4INGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAn0JTQtdGC0LDRmdC4INGA0LDQtNC90L7QsyDQvdCw0LvQvtCz0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICfRmNC10LTQvdC+0LwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAn0YDQtdC00L7QstC90L4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/sr_Latn_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3JfTGF0bl9JVFNNQ2hhbmdlTWFuYWdlbWVudDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlQ0lQQWxsb2NhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IOKGlCBJbXBhY3Qg4oaUIFByaW9yaXR5J30gPSAnS2F0ZWdvcmlqYSDihpQgdXRpY2FqIOKGlCBwcmlvcml0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBwcmlvcml0eSByZXN1bHQgb2YgY29tYmluYXRpbmcgQ2F0ZWdvcnkg4oaUIEltcGFjdC4nfSA9CiAgICAgICAgJ1VwcmF2bGphbmplIHJlenVsdGF0b20gcHJpb3JpdGV0YSBrb21iaW5hY2lqb20ga2F0ZWdvcmlqYSDihpQgdXRpY2FqLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eSBhbGxvY2F0aW9uJ30gPSAnUmFzcG9kZWxhIHByaW9yaXRldGEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICdVcHJhdmxqYW5qZSBvYmF2ZcWhdGVuamltYSB1IElUU00gdXByYXZsamFuanUgcHJvbWVuYW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJ0RvZGFqIHByYXZpbG8gb2JhdmXFoXRhdmFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJ1VyZWRpIHByYXZpbG8gb2JhdmXFoXRhdmFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ09iYXZlxaF0ZW5qZSB0cmViYSBkYSBpbWEgaW1lISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJ0ltZSBqZSBvYmF2ZXpuby4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBTdGF0ZSBNYWNoaW5lJ30gPSAnQWRtaW5pc3RhcmNpamEgbWHFoWluZSBzdGFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICdJemJvciBrbGFzZSBrYXRhbG9nYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJ0tsYXNhIGthdGFsb2dhIGplIG9iYXZlem5hISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnRG9kYWogdHJhbnppY2lqdSBzdGF0dXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdLbGFzYSBrYXRhbG9nYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPYmplY3QgTmFtZSd9ID0gJ05heml2IG9iamVrdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICdQcmVnbGVkIHByZWtvIHRyYW56aWNpamUgc3RhdHVzYSB6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnT2JyacWhaSBvdnUgdHJhbnppY2lqdSBzdGF0dXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ0RvZGFqIG5vdnUgdHJhbnppY2lqdSBzdGF0dXNhIHphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICdNb2xpbW8gZGEgb2RhYmVyZXRlIHN0YW5qZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIG5leHQgc3RhdGUhJ30gPSAnTW9saW1vIGRhIG9kYWJlcmV0ZSBzbGVkZcSHZSBzdGFuamUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ1VyZWRpIHRyYW56aWNpanUgc3RhdHVzYSB6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnRGEgbGkgemFpc3RhIMW+ZWxpdGUgZGEgb2JyacWhZXRlIG92dSB0cmFuemljaWp1IHN0YXR1c2E/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJ0RvZGFqIHByb21lbnUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UnfSA9ICdJVFNNIHByb21lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSnVzdGlmaWNhdGlvbid9ID0gJ09wcmF2ZGFuamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICdOZWlzcHJhdmFuIHVub3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnVHJhxb5lbmkgZGF0dW0nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnSXphYmVyaSDFoWFibG9uIHByb21lbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAnVGlwIHZyZW1lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAnTmVpc3ByYXZhbiB0aXAgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICdOb3ZvIHZyZW1lJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBDQUIgYXMgdGVtcGxhdGUnfSA9ICdTYcSNdXZhaiBwcm9tZW51IENBQiBrYW8gxaFhYmxvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJ2lkaSBuYSBla3JhbiB1a2xqdcSNZW5paCBvc29iYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICdQb2dyZcWhbm8gaW1lJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJ1VzbG92aSBpIGFrY2lqZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnVXNsb3YgYnJpc2FuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICdEb2RhaiBub3ZpIHVzbG92JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAnVXJlZGkgdXNsb3YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnUG90cmVibm8gamUgaXNwcmF2bm8gaW1lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJ05lb3Bob2RubyBqZSB2YcW+ZcSHZSBpbWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJ0R1cGxpa2F0IGltZW5hOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJ292byBpbWUgamUgdmXEhyB1cG90cmVibGplbm8gemEgZHJ1Z2kgdXNsb3YuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hdGNoaW5nJ30gPSAnUG9kdWRhcmFuamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJ1N2YWtpIGl6cmF6IChPUiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAnU3ZpIGl6cmF6aSAoQU5EKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJ0l6cmF6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJ0JpcmHEjSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJ09wZXJhdG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBFeHByZXNzaW9uJ30gPSAnT2JyacWhaSBpenJheic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICdOaWplIHByb25hxJFlbiBuaWplZGFuIGl6cmF6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGV4cHJlc3Npb24nfSA9ICdEb2RhaiBub3YgaXpyYXonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEFjdGlvbid9ID0gJ09icmnFoWkgYWtjaWp1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEFjdGlvbnMgZm91bmQuJ30gPSAnTmlqZSBwcm9uYcSRZW5hIG5pamVkbmEgYWtjaWphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGFjdGlvbid9ID0gJ0RvZGFqIG5vdnUgYWtjaWp1JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICdEYSBsaSB6YWlzdGEgxb5lbGl0ZSBkYSBpemJyacWhZXRlIG92dSBwcm9tZW51Pyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICdVcmVkaSAlcyVzJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJ0lzdG9yaWphdCBvZCAlcyVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ1NhZHLFvmFqIGlzdG9yaWphdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAnUmFkbmkgbmFsb2cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ1ZyZW1lIGtyZWlyYW5qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICdQcmlrYcW+aSBkZXRhbGplJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnUHJpa2HFvmkgcmFkbmkgbmFsb2cnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICdEZXRhbGpuaSBpc3RvcmlqYXQgemEgJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICdQcm9tZW5qZW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJ1N0YXJhIHZyZWRub3N0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJ05vdmEgdnJlZG5vc3QnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJ1VyZWRpIHVrbGp1xI1lbmUgb3NvYmUgemEgJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnVWtsanXEjWVuZSBvc29iZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VyJ30gPSAnVXByYXZsamHEjSBwcm9tZW5hbWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJ05laXNwcmF2YW4ga29yaXNuaWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICdHcmFkaXRlbGogcHJvbWVuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQWR2aXNvcnkgQm9hcmQnfSA9ICdTYXZldG9kYXZuaSBvZGJvciB6YSBwcm9tZW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJ0NBQiDFoWFibG9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnUHJpbWVuaSDFoWFibG9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAnTm92aSDFoWFibG9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgdGhpcyBDQUIgYXMgdGVtcGxhdGUnfSA9ICdTYcSNdXZhaiBvdm8ga2FvIENBQiDFoWFibG9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICdEb2RhaiB1IENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICdQb2dyZcWhYW4ga29yaXNuaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICdBa3R1ZWxuaSBDQUInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdQb2RlxaFhdmFuamUga29udGVrc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICdQcm9tZW5hIHBvIHN0cmFuaSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICdOYXNsb3YgcmFkbm9nIG5hbG9nYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGl0bGUnfSA9ICdOYXNsb3YgcHJvbWVuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICdPcGVyYXRlciB6YSByYWRuaSBuYWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJ0dyYWRpdGVsaiBwcm9tZW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnVXByYXZsamFuamUgcHJvbWVuYW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcnMnfSA9ICdSYWRuaSBuYWxvemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnU3RhbmplIHByb21lbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnU3RhbmplIHJhZG5vZyBuYWxvZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFR5cGUnfSA9ICdUaXAgcmFkbm9nIG5hbG9nYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJ1RyYcW+ZW5vIHZyZW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJ1BsYW5pcmFubyB2cmVtZSBwb8SNZXRrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnUGxhbmlyYW5vIHZyZW1lIHphdnLFoWV0a2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICdTdHZhcm5vIHZyZW1lIHBvxI1ldGthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJ1N0dmFybm8gdnJlbWUgemF2csWhZXRrYSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJ0RhIGxpIHphaXN0YSDFvmVsaXRlIGRhIHBvbmnFoXRpdGUgb3Z1IHByb21lbnU/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJyhucHIgMTAqNTE1NSBpbGkgMTA1NjU4KiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnT3BlcmF0ZXIgQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICducHIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJ0NBQiBrbGlqZW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnVXB1dHN0dm8gSVRTTSByYWRub2cgbmFsb2dhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJ0l6dmXFoXRhaiBJVFNNIHJhZG5vZyBuYWxvZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUHJpb3JpdHknfSA9ICdQcmlvcml0ZXQgSVRTTSBwcm9tZW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIEltcGFjdCd9ID0gJ1V0aWNhaiBJVFNNIHByb21lbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnS2F0ZWdvcmlqYSBwcm9tZW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnKHByZS9wb3NsZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnKGl6bWXEkXUpJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBhcyBUZW1wbGF0ZSd9ID0gJ1NhxI11dmFqIHByb21lbnUga2FvIMWhYWJsb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnxaBhYmxvbiB0cmViYSBkYSBpbWEgaW1lISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICdJbWUgxaFhYmxvbmEgamUgb2JhdmV6bm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IFN0YXRlcyd9ID0gJ1BvbmnFoXRpIHN0YW5qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVyd3JpdGUgb3JpZ2luYWwgdGVtcGxhdGUnfSA9ICdQcmVwacWhaSBwcmVrbyBvcmlnaW5hbG5vZyDFoWFibG9uYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnT2JyacWhaSBvcmlnaW5hbG51IHByb21lbnUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnUG9tZXJpIHZyZW1lbnNraSB0ZXJtaW4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluZm9ybWF0aW9uJ30gPSAnSW5mb3JtYWNpamEgbyBwcm9tZW5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRWZmb3J0J30gPSAnUGxhbmlyYW5pIG5hcG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnRlZCBUaW1lJ30gPSAnT2JyYcSNdW5hdG8gdnJlbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ0luaWNpamF0b3IoaSkgcHJvbWVuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICdDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAnWmFkbmppIHB1dCBwcm9tZW5qZW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ1Byb21lbmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnRGEgYmlzdGUgb3R2b3JpbGkgdmV6ZSB1IHNsZWRlxIdpbSBibG9rb3ZpbWEgb3Bpc2EsIG1vxb5kYSDEh2V0ZSB0cmViYXRpIGRhIHByaXRpc25ldGUgIkN0cmwiIGlsaSAiQ21kIiBpbGkgIlNoaWZ0IiB0YXN0ZXIgZG9rIGlzdG92cmVtZW5vIGtsaWtuZXRlIG5hIHZlenUgKHphdmlzaSBvZCB2YcWhZWcgb3BlcmF0aXZub2cgc2lzdGVtYSBpIHByZXRyYcW+aXZhxI1hKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ1ByZXV6bWkgcHJpbG9nJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDQUIgVGVtcGxhdGUnfSA9ICdVcmVkaSBDQUIgxaFhYmxvbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ092byDEh2Uga3JlaXJhdGkgbm92dSBwcm9tZW51IG9kIG92b2cgxaFhYmxvbmEsIHBhIGplIG1vxb5ldGUgaXptZW5pdGkgaSBzYcSNdXZhdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnTm92YSBwcm9tZW5hIMSHZSBhdXRvbWF0c2tpIGJpdGkgb2JyaXNhbmEsIGthZCBidWRlIHNhxI11dmFuYSBrYW8gxaFhYmxvbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyB3b3Jrb3JkZXIgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICdPdm8gxIdlIGtyZWlyYXRpIG5vdiByYWRuaSBuYWxvZyBvZCBvdm9nIMWhYWJsb25hLCBwYSBnYSBtb8W+ZXRlIGl6bWVuaXRpIGkgc2HEjXV2YXRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdCacSHZSBrcmVpcmFuYSBwcml2cmVtZW5hIHByb21lbmEga29qYSBzYWRyxb5pIHJhZG5pIG5hbG9nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnUHJpdnJlbWFuYSBwcm9tZW5hIGkgbm92aSByYWRuaSBuYWxvZyDEh2UgYXV0b21hdHNraSBiaXRpIG9icmlzYW5pLCBrYWQgcmFkbmkgbmFsb2cgYnVkZSBzYcSNdXZhbiBrYW8gxaFhYmxvbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nfSA9ICdEYSBsaSDFvmVsaXRlIGRhIG5hc3Rhdml0ZT8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJ0lEIMWhYWJsb25hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJ1VyZWRpIHNhZHLFvmFqJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJ0tyZWlyYW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnSXptZW5pbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGltZSd9ID0gJ1ZyZW1lIHByb21lbmUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICdEb2RhaiByYWRuaSBuYWxvZyB1ICVzJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICdJbnN0cnVrY2lqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJ05laXNwcmF2YW4gdGlwIHJhZG5vZyBuYWxvZ2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnUGxhbmlyYW5vIHZyZW1lIHBvxI1ldGthIG1vcmEgYml0aSBwcmUgcGxhbmlyYW5vZyB2cmVtZW5hIHphdnLFoWV0a2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJ05laXNwcmF2YW4gZm9ybWF0Lic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICdJemFiZXJpIMWhYWJsb24gcmFkbm9nIG5hbG9nYSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJ1VyZWRpIGtvcmlzbmlrYSByYWRub2cgbmFsb2dhIHphICVzJXMnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJ0RhIGxpIHphaXN0YSDFvmVsaXRlIGRhIGl6YnJpxaFldGUgb3ZhaiByYWRuaSBuYWxvZz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICdOZSBtb8W+ZXRlIG9icmlzYXRpIG92YWogcmFkbmkgbmFsb2cuIFVwb3RyZWJsamVuIGplIHUgYmFyIGplZG5vbSB1c2xvdnUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBXb3Jrb3JkZXIgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIENvbmRpdGlvbihzKSd9ID0gJ092YWogcmFkbmkgbmFsb2cgamUgdXBvdHJlYmxqZW4gdSBzbGVkZcSHaW0gdXNsb3ZpbWEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnVXJlZGkgJXMlcy0lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnUG9tZXJpdGUgYWRla3ZhdG5vIHNsZWRlxIdlIHJhZG5lIG5hbG9nZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGUgcGxhbm5lZCBlbmQgdGltZSBvZiB0aGlzIHdvcmtvcmRlciBpcyBjaGFuZ2VkLCB0aGUgcGxhbm5lZCBzdGFydCB0aW1lcyBvZiBhbGwgZm9sbG93aW5nIHdvcmtvcmRlcnMgd2lsbCBiZSBjaGFuZ2VkIGFjY29yZGluZ2x5J30gPQogICAgICAgICdQbGFuaXJhbm8gdnJlbWUgemF2csWhZXRrYSBvdm9nIHJhZG5vZyBuYWxvZ2EgamUgcHJvbWVuamVubywgcGxhbmlyYW5hIHZyZW1lbmEgcG/EjWV0a2Egc3ZpaCBuYXJlZG5paCByYWRuaWggbmFsb2dhIMSHZSBiaXRpIGFkZWt2YXRubyB1c2tsYcSRZW5hJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJ0lzdG9yaWphdCB6YSAlcyVzLSVzJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJ1VyZWRpIGl6dmXFoXRhaiB6YSAlcyVzLSVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJ0l6dmXFoXRhaic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICdBa3R1ZWxubyB2cmVtZSBwb8SNZXRrYSBtb3JhIGJpdGkgcHJlIGFrdHVlbG5vZyB2cmVtZW5hIHphdnLFoWV0a2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJ0FrdHVlbG5vIHZyZW1lIHBvxI1ldGthIG1vcmEgYml0aSBwb2RlxaFlbm8ga2FkYSBqZSBwb2RlxaFlbm8gaSBha3R1ZWxubyB2cmVtZSB6YXZyxaFldGthISc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnQWt0dWVsbmkgb3BlcmF0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnRGEgbGkgemFpc3RhIMW+ZWxpdGUgZGEgcHJldXptZXRlIG92YWogcmFkbmkgbmFsb2c/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJ1NhxI11dmFqIHJhZG5pIG5hbG9nIGthbyDFoWFibG9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnT2JyacWhaSBvcmlnaW5hbG5pIHJhZG5pIG5hbG9nIChpIHByb21lbnUgdSBrb2pvaiBqZSknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEluZm9ybWF0aW9uJ30gPSAnSW5mb3JtYWNpamEgbyByYWRub20gbmFsb2d1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBBZGRlZCEnfSA9ICdEb2RhdG8gb2JhdmXFoXRlbmplISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICdOZXBvem5hdG8gb2JhdmXFoXRlbmplICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICdEb8WhbG8gamUgZG8gZ3JlxaFrZSBwcmlsaWtvbSBrcmVpcmFuamEgb2JhdmXFoXRlbmphLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIFVwZGF0ZWQhJ30gPSAnQcW+dXJpcmFubyB0cmFuemljaW9ubyBzdGFuamUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAnRG9kYXRvIHRyYW56aWNpb25vIHN0YW5qZSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJ1ByZWdsZWQ6IElUU00gcHJvbWVuZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICdUaWtldCBzYSBUaWNrZXRJRCAlcyBuZSBwb3N0b2ppISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICdOZWRvc3RhamUgb3BjaWphIHNpc3RlbXNrZSBrb25maWd1cmFjaWplICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICdOaWplIGJpbG8gbW9ndcSHZSBkb2RhdGkgcHJvbWVudSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICdOaWplIGJpbG8gbW9ndcSHZSBrcmVpcmF0aSBwcm9tZW51IGl6IMWhYWJsb25hISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ05pamUgZGF0IENoYW5nZUlEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJ05pamUgcHJvbmHEkWVuYSBwcm9tZW5hIHphIENoYW5nZUlEICVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJ0NBQiBwcm9tZW5lICVzIHNlIG5lIG1vxb5lIHNlcmlqYWxpem92YXRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICdOaWplIG1vZ3XEh2UgZG9kYXRpIMWhYWJsb24uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICdQcm9tZW5hICIlcyIgbmlqZSBuYcSRZW5hIHUgYmF6aSBwb2RhdGFrYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICdOaWplIG1vZ3XEh2Ugb2JyaXNhdGkgQ29uZGl0aW9uSUQgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICdOaWplIGRhdCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJ05pamUgbW9ndcSHZSBrcmVpcmF0aSBub3ZpIHVzbG92ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJ05pamUgbW9ndcSHZSBhxb51cmlyYXRpIENvbmRpdGlvbklEICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICdOaWplIG1vZ3XEh2UgYcW+dXJpcmF0aSBFeHByZXNzaW9uSUQgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnTmlqZSBtb2d1xIdlIGRvZGF0aSBub3ZpIEV4cHJlc3Npb24hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnTmlqZSBtb2d1xIdlIGHFvnVyaXJhdGkgQWN0aW9uSUQgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICdOaWplIG1vZ3XEh2UgZG9kYXRpIG5vdmkgQWN0aW9uISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICdOaWplIG1vZ3XEh2Ugb2JyaXNhdGkgRXhwcmVzc2lvbklEICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJ05pamUgbW9ndcSHZSBvYnJpc2F0aSBBY3Rpb25JRCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISd9ID0gJ0dyZcWha2E6IE5lcG96bmF0IHRpcCBwb2xqYSAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJ0NvbmRpdGlvbklEICVzIG5lIHByaXBhZGEgZGF0b20gQ2hhbmdlSUQgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJ1Byb21lbmEgIiVzIiBuaWplIHUgZG96dm9samVub20gc3Rhbmp1IGRhIGJpIGJpbGEgb2JyaXNhbmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJ05pamUgYmlsbyBtb2d1xIdlIG9icmlzYXRpIENoYW5nZUlEICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnTmlqZSBiaWxvIG1vZ3XEh2UgYcW+dXJpcmF0aSBwcm9tZW51ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnTmUgbW/FvmUgc2UgcHJpa2F6YXRpIGlzdG9yaWphdCwgamVyIG5pamUgZGF0IENoYW5nZUlEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJ1Byb21lbmEgIiVzIiBuaWplIG5hxJFlbmEgdSBiYXppIHBvZGF0YWthISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICdOZXBvem5hdCB0aXAgIiVzIiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICdJc3RvcmlqYXQgcHJvbWVuZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnTmUgbW9ndSBzZSBwcmlrYXphdGkgZGV0YWxqaSBpc3RvcmlqYXRhIGplciBuaWplIGRhdCBIaXN0b3J5RW50cnlJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ1N0YXZrYSBpc3RvcmlqYXRhICIlcyIgbmlqZSBuYcSRZW5hIHUgYmF6aSBwb2RhdGFrYSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnTmlqZSBiaWxvIG1vZ3XEh2UgYcW+dXJpcmF0aSBDQUIgcHJvbWVuIHphIHByb21lbnUgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlICVzISd9ID0gJ05pamUgYmlsbyBtb2d1xIdlIGHFvnVyaXJhdGkgcHJvbWVudSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnUHJlZ2xlZDogVXByYXZsamHEjSBwcm9tZW5hbWEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnUHJlZ2xlZDogTW9qIENBQic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJ1ByZWdsZWQ6IE1vamUgcHJvbWVuZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJ1ByZWdsZWQ6IE1vamkgcmFkbmkgbmFsb3ppJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICdQcmVnbGVkOiBQSVInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJ1ByZWdsZWQ6IFBTQSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICdSYWRuaSBuYWxvZyAiJXMiIG5pamUgbmHEkWVuIHUgYmF6aSBwb2RhdGFrYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnTmUgbW/FvmUgc2Uga3JpcmF0aSBpemxheiBqZXIgcmFkbmkgbmFsb2cgbmlqZSBwcmlkb2RhdCBwcm9tZW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnTmUgbW/FvmUgc2Uga3JpcmF0aSBpemxheiBqZXIgbmlqZSBkYXQgQ2hhbmdlSUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnbmVwb3puYXQgbmFzbG92IHByb21lbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXInfSA9ICdJVFNNIHJhZG5pIG5hbG9nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJ0Jyb2ogcmFkbm9nIG5hbG9nYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUaXRsZSd9ID0gJ1JhZG5pIG5hbG9nIC0gbmFzbG92JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gd29ya29yZGVyIHRpdGxlJ30gPSAnbmVwb3puYXQgbmFzbG92IHJhZG5vZyBuYWxvZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICdQcm9tZW5hIC0gc3RhdHVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICdQbGFuaXJhbmkgbmFwb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50cyd9ID0gJ09wZXJhdGVyaSBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJ0NBQiBrbGlqZW50aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnVHJhxb5lbm8gdnJlbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZFN0YXJ0VGltZSd9ID0gJ1BsYW5pcmFubyB2cmVtZSBwb8SNZXRrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRW5kVGltZSd9ID0gJ1BsYW5pcmFubyB2cmVtZSB6YXZyxaFldGthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJ1N0dmFybm8gdnJlbWUgcG/EjWV0a2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJ1N0dmFybm8gdnJlbWUgemF2csWhZXRrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaW1lJ30gPSAnVnJlbWUgcHJvbWVuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICdCcm9qIHByb21lbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICdSYWRuaSBuYWxvZyAtIHN0YXR1cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlJ30gPSAnUmFkbmkgbmFsb2cgLSB0aXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICdSYWRuaSBuYWxvZyAtIG9wZXJhdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIE92ZXJ2aWV3ICglcyknfSA9ICdQcmVnbGVkIElUU00gcmFkbm9nIG5hbG9nYSAoJXMpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAnTmlqZSBiaWxvIG1vZ3XEh2UgcG9uacWhdGl0aSByYWRuaSBuYWxvZyAlcyB6YSBwcm9tZW51ICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJ05pamUgYmlsbyBtb2d1xIdlIHBvbmnFoXRpdGkgcHJvbWVudSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAnUHJlZ2xlZDogUGxhbmVyIHByb21lbmEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJ1ByZXRyYWdhIHByb21lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICdQcm9tZW5hIC0gbmFzbG92JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlcnMnfSA9ICdSYWRuaSBuYWxvemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICdSZXp1bHRhdCBwcmV0cmFnZSBwcm9tZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICdCcm9qIHByb21lbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJ05hc2xvdiByYWRub2cgbmFsb2dhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJ09waXMgcHJvbWVuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJ09wcmF2ZGFub3N0IHByb21lbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnVXB1dHN2byB6YSByYWRuaSBuYWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnSXp2ZcWhdGFqIHJhZG5vZyBuYWxvZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnUHJpb3JpdGV0IHByb21lbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJ1V0aWNhaiBwcm9tZW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICdLcmVpcmFvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJ1N0YW5qZSByYWRub2cgbmFsb2dhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnVGlwIHJhZG5vZyBuYWxvZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnT3BlcmF0ZXIgemEgcmFkbmkgbmFsb2cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAncHJlJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJ1Byb21lbmEgJXMgc2UgbmUgbW/FvmUgc2VyaWphbGl6b3ZhdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJ30gPSAnTmlqZSBtb2d1xIdlIGHFvnVyaXJhdGkgxaFhYmxvbiAiJXMiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJ05pamUgbW9ndcSHZSBvYnJpc2F0aSBwcm9tZW51ICIlcyIuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJ1Byb21lbmEgc2UgbmUgbW/FvmUgcG9tZXJpdGkgamVyIG5lbWEgcmFkbmUgbmFsb2dlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnUHJ2byBkb2RhaiByYWRuaSBuYWxvZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICdQcm9tZW5hIGtvamEgamUgdmXEhyBwb2tyZW51dGEgc2UgbmUgbW/FvmUgcG9tZXJhdGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICdNb2xpbW8gZGEgdW1lc3RvIHRvZ2EgcG9tZXJpdGUgcG9qZWRpbmUgcmFkbmUgbmFsb2dlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICdBa3R1ZWxuYSAlcyBzZSBuZSBtb8W+ZSBvZHJlZGl0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyVzIHN2aWggcmFkbmloIG5hbG9nYSB0cmViYSBkYSBidWRlIGRlZmluaXNhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJ05pamUgYmlsbyBtb2d1xIdlIHByZW1lc3RpdGkgdGVybWluIHphIHJhZG5pIG5hbG9nICMlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJ1BvdHJlYm5hIHZhbSBqZSAlcyBkb3p2b2xhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJ05pamUgZGF0IFRlbXBsYXRlSUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ8WgYWJsb24gIiVzIiBuaWplIG5hxJFlbiB1IGJhemkgcG9kYXRha2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJ05pamUgYmlsbyBtb2d1xIdlIG9icmlzYXRpIMWhYWJsb24gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnTmlqZSBiaWxvIG1vZ3XEh2UgYcW+dXJpcmF0aSDFoWFibG9uICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnTmlqZSBiaWxvIG1vZ3XEh2UgYcW+dXJpcmF0aSDFoWFibG9uICIlcyIhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICdOaWplIGJpbG8gbW9ndcSHZSBrcmVpcmF0aSBwcm9tZW51ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJ05pamUgYmlsbyBtb2d1xIdlIGtyZWlyYXRpIHJhZG5pIG5hbG9nIGl6IHByb21lbmUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICdQcmVnbGVkOiDFoGFibG9uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnUG90cmVibmUgc3UgdmFtICVzIGRvenZvbGUgemEgcHJvbWVudSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCB3b3Jrb3JkZXIhJ30gPSAnTmlqZSBiaWxvIG1vZ3XEh2UgZG9kYXRpIHJhZG5pIG5hbG9nISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJ05pamUgZGF0IFdvcmtPcmRlcklEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnTmlqZSBiaWxvIG1vZ3XEh2UgcG9kZXNpdGkgcmFkbmkgbmFsb2cgIiVzIiBiZXogb3BlcmF0ZXJhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICdOaWplIGJpbG8gbW9ndcSHZSBhxb51cmlyYXRpIHJhZG5pIG5hbG9nICIlcyIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBmaW5kIENoYW5nZSBmb3IgV29ya09yZGVyICVzISd9ID0gJ05pamUgbW9ndcSHZSBwcm9uYcSHaSBwcm9tZW51IHphIHJhZG5pIG5hbG9nICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnTmlqZSBiaWxvIG1vZ3XEh2Ugb2JyaXNhdGkgcmFkbmkgbmFsb2cgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFdvcmtPcmRlciAlcyEnfSA9ICdOaWplIGJpbG8gbW9ndcSHZSBhxb51cmlyYXRpIHJhZG5pIG5hbG9nICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnTmUgbW/FvmUgc2UgcHJpa2F6YXRpIGlzdG9yaWphdCBqZXIgbmlqZSBkYXQgV29ya09yZGVySUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnUmFkbmkgbmFsb2cgIiVzIiBuaWplIG5hxJFlbiB1IGJhemkgcG9kYXRha2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnSXN0b3JpamF0IHJhZG5vZyBuYWxvZ2EnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICdTdGF2a2EgaXN0b3JpamF0YSAiJXMiIG5pamUgbmHEkWVuYSB1IGJhemkgcG9kYXRha2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICdEZXRhbGppIGlzdG9yaWphdGEgcmFkbm9nIG5hbG9nYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICdOaWplIGJpbG8gbW9ndcSHZSBwcmV1emV0aSByYWRuaSBuYWxvZyAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnUmFkbmkgbmFsb2cgIiVzIiBzZSBuZSBtb8W+ZSBzZXJpamFsaXpvdmF0aS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uICVzISd9ID0gJ1BvdHJlYm5hIGtvbmZpZ3VyYWNpb25hIG9wY2lqYSAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJ0tvbmZpZ3VyYWNpb25hIG9wY2lqYSAlcyBtb3JhIGJpdGkgSEFTSCByZWZlcmVuY2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnTmlqZSBwcm9uYcSRZW5hIGtvbmZpZ3VyYWNpb25hIHN0YXZrYSB6YSBwcmVnbGVkICIlcyIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpdGxlOiAlcyB8IFR5cGU6ICVzJ30gPSAnTmFzbG92OiAlcyB8IFRpcDogJXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnTW9qaSBDQUInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJ01vamUgcHJvbWVuZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJ01vamkgcmFkbmkgbmFsb3ppJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJXM6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJ05vdmEgYWtjaWphIChJRD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJ09icmlzYW5hIGFrY2lqYSAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdPYnJpc2FuZSBzdmUgYWtjaWplIHVzbG92YSAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJ0l6dnLFoWVuYSBha2NpamEgKElEPSVzKTogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICclcyAoYWtjaWphIElEPSVzKTogKG5vdm89JXMsIHN0YXJvPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICdQcm9tZW5hIChJRD0lcykgamUgZG9zdGlnbGEgc3R2YXJubyB2cmVtZSB6YXZyxaFldGthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJ1Byb21lbmEgKElEPSVzKSBqZSBkb3N0aWdsYSBzdHZhcm5vIHZyZW1lIHBvxI1ldGthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICdOb3ZhIHByb21lbmEgKElEPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICdOb3YgcHJpbG9nOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICdPYnJpc2FuIHByaWxvZyAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgRGVsZXRlZCAlcyd9ID0gJ09icmlzYW4gQ0FCICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJXM6IChub3ZvPSVzLCBzdGFybz0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnUG92ZXphbm8gc2EgJXMgKElEPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJ09icmlzYW5hIHZlemEgc2EgJXMgKElEPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJ1Bvc2xhdG8gb2JhdmXFoXRlbmplICVzIChkb2dhxJFhajogJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICdQcm9tZW5hIChJRD0lcykgamUgZG9zdGlnbGEgcGxhbmlyYW5vIHZyZW1lIHphdnLFoWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJ1Byb21lbmEgKElEPSVzKSBqZSBkb3N0aWdsYSBwbGFuaXJhbm8gdnJlbWUgcG/EjWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnUHJvbWVuYSAoSUQ9JXMpIGplIGRvc3RpZ2xhIHRyYcW+ZW5vIHZyZW1lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICdOb3YgdXNsb3YgKElEPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnT2JyaXNhbiB1c2xvdiAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICdPYnJpc2FuaSBzdmkgdXNsb3ZpIHByb21lbmUgKElEPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQ29uZGl0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyVzICh1c2xvdiBJRD0lcyk6IChub3ZvPSVzLCBzdGFybz0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJ05vdiBpenJheiAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb24gKElEPSVzKSBkZWxldGVkJ30gPSAnT2JyaXNhbiBpenJheiAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBFeHByZXNzaW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnT2JyaXNhbmkgc3ZpIGl6cmF6aSB1c2xvdmEgKElEPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICclcyAoaXpyYXogSUQ9JXMpOiAobm92bz0lcywgc3Rhcm89JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJ1JhZG5pIG5hbG9nIChJRD0lcykgamUgZG9zdGlnYW8gc3R2YXJubyB2cmVtZSB6YXZyxaFldGthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJ1JhZG5pIG5hbG9nIChJRD0lcykgamUgZG9zdGlnYW8gc3R2YXJubyB2cmVtZSBwb8SNZXRrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJ30gPSAnTm92aSByYWRuaSBuYWxvZyAoSUQ9JXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnTm92IHByaWxvZyB6YSByYWRuaSBuYWxvZzogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyhJRD0lcykgTm92IHByaWxvZyB6YSByYWRuaSBuYWxvZzogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJ09icmlzYW4gcHJpbG9nIHphIHJhZG5pIG5hbG9nOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcoSUQ9JXMpIE9icmlzYW4gcHJpbG9nIHphIHJhZG5pIG5hbG9nOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICdOb3YgcHJpbG9nIGl6dmXFoXRhamEgemEgcmFkbmkgbmFsb2c6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnKElEPSVzKSBOb3YgcHJpbG9nIGl6dmXFoXRhamEgemEgcmFkbmkgbmFsb2c6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnT2JyaXNhbiBwcmlsb2cgaXp2ZcWhdGFqYSB6YSByYWRuaSBuYWxvZzogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyhJRD0lcykgT2JyaXNhbiBwcmlsb2cgaXp2ZcWhdGFqYSB6YSByYWRuaSBuYWxvZzogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJ09icmlzYW4gcmFkbmkgbmFsb2cgKElEPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyhJRD0lcykgUG92ZXphbm8gc2EgJXMgKElEPSVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnKElEPSVzKSBPYnJpc2FuYSB2ZXphIHNhICVzIChJRD0lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyhJRD0lcykgUG9zbGF0byBvYmF2ZcWhdGVuamUgJXMgKGRvZ2HEkWFqOiAlcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJ1JhZG5pIG5hbG9nIChJRD0lcykgamUgZG9zdGlnYW8gcGxhbmlyYW5vIHZyZW1lIHphdnLFoWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJ1JhZG5pIG5hbG9nIChJRD0lcykgamUgZG9zdGlnYW8gcGxhbmlyYW5vIHZyZW1lIHBvxI1ldGthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnKElEPSVzKSAlczogKG5vdm89JXMsIHN0YXJvPSVzKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0lUU01Db25kaXRpb24vT2JqZWN0L0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FsbCd9ID0gJ3N2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICdzdmFraSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICdQcmV0aG9kbmkgZ3JhZGl0ZWxqIHByb21lbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICdQcmV0aG9kbmkgdXByYXZuaWggcHJvbWVuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnT3BlcmF0ZXJpIHJhZG5vZyBuYWxvZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnUHJldGhvZG5pIG9wZXJhdGVyIHJhZG5vZyBuYWxvZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICdJbmljaWphdG9yaSBwcm9tZW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICdHcnVwYSBJVFNNQ2hhbmdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnR3J1cGEgSVRTTUNoYW5nZUJ1aWxkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICdHcnVwYSBJVFNNQ2hhbmdlTWFuYWdlcic7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAnemFodGV2YW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICdvZG9icmVuamUgbmEgxI1la2FuanUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICdvZGJpamVubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJ29kb2JyZW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAndSB0b2t1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAnUElSIG5hIMSNZWthbmp1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICd1c3BlxaFubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICduZXVzcGXFoW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnb3RrYXphbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAncG92dcSNZW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NyZWF0ZWQnfSA9ICdrcmVpcmFubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJ3ByaWh2YcSHZW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAnc3ByZW1ubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ29kb2JyZW5qZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICdyYWRuaSBuYWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnb2R1c3RhbmFrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnb2RsdWthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJ1BJUic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnQ2hhbmdlU3RhdGVJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnSUQgS2F0ZWdvcmlqZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJ0lEIHV0aWNhamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJ0lEIHByaW9yaXRldGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnQ2hhbmdlTWFuYWdlcklEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJ0NoYW5nZUJ1aWxkZXJJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnV29ya09yZGVyU3RhdGVJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlSUQnfSA9ICdXb3JrT3JkZXJUeXBlSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJ1dvcmtPcmRlckFnZW50SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICdqZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICduaWplJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnamUgcHJhem5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJ25pamUgcHJhem5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGdyZWF0ZXIgdGhhbid9ID0gJ2plIHZlxIdlIG9kJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJ2plIG1hbmplIG9kJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJ2plIHByZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJ2plIHBvc2xlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAnc2FkcsW+aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICduZSBzYWRyxb5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAncG/EjWluamUgc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZW5kcyB3aXRoJ30gPSAnemF2csWhYXZhIHNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJ3BvZGVzaSc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJ0RhIGxpIHN0dmFybm8gxb5lbGl0ZSBkYSBvYnJpxaFldGUgb3ZhaiBpenJhej8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICdEYSBsaSBzdHZhcm5vIMW+ZWxpdGUgZGEgb2JyacWhZXRlIG92dSBha2NpanU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnRGEgbGkgemFpc3RhIMW+ZWxpdGUgZGEgb2JyacWhZXRlIG92YWogdXNsb3Y/JzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnVSByZWR1JzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnTGlzdGEgb3BlcmF0ZXJhIGtvamkgaW1hanUgZG96dm9sdSBwcmV1emltYW5qYSByYWRuaWggbmFsb2dhLiBLbGp1xI0gamUga29yaXNuacSNa28gaW1lLiBTYWRyxb5haiBqZSAwIGlsaSAxLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJ0xpc3RhIHN0YXR1c2EgcmFkbm9nIG5hbG9nYSwgcHJpIGtvamltYSDEh2UgYWt0dWVsbm8gdnJlbWUgcG/EjWV0a2EgcmFkbm9nIG5hbG9nYSwgYml0aSBwb3N0YXZsamVubyBha28gamUgcHJhem5vIHUgb3ZvbSBtb21lbnR1LiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnU3R2YXJubyB2cmVtZSB6YXZyxaFldGthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnU3R2YXJubyB2cmVtZSBwb8SNZXRrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnRG9kYWogcmFkbmkgbmFsb2cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICdEb2RhaiByYWRuaSBuYWxvZyAob2QgxaFhYmxvbmEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJ0RvZGFqIHByb21lbnUgaXogxaFhYmxvbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICdEb2RhaiBwcm9tZW51Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnRG9kYWogcmFkbmkgbmFsb2cgcHJvbWVuaSAob2QgxaFhYmxvbmEpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICdEb2RhaiByYWRuaSBuYWxvZyBwcm9tZW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJ0RvZGFqIGl6IMWhYWJsb25hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBDSVAgbWF0cml4Lid9ID0gJ0FkbWluaXN0cmFjaWphIENJUCBtYXRyaWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgc3RhdGUgbWFjaGluZS4nfSA9ICdBZG1pbmlzdHJhY2lqYSBtYcWhaW5lIHN0YW5qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnTW9kdWwgaW50ZXJmZWpzYSBvcGVyYXRlcmEgemEgb2JhdmXFoXRhdmFuamUsIHByZWdsZWQgYnJvamEgU2F2ZXRvZGF2bmloIE9kYm9yYSB6YSBQcm9tZW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzIG1hbmFnZWQgYnkgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bCBpbnRlcmZlanNhIG9wZXJhdGVyYSB6YSBvYmF2ZcWhdGF2YW5qZSwgcHJlZ2xlZCBicm9qYSBwcm9tZW5hIGtvamltYSB1cHJhdmxqYSBrb3Jpc25pay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcy4nfSA9CiAgICAgICAgJ01vZHVsIGludGVyZmVqc2Egb3BlcmF0ZXJhIHphIG9iYXZlxaF0YXZhbmplLCBwcmVnbGVkIGJyb2phIHByb21lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICdNb2R1bCBvYmF2ZcWhdGF2YW5qYSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhIHphIHByaWtheiBicm9qYSByYWRuaWggbmFsb2dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJ1ByZXRyYWdhIMSNbGFub3ZhIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnVnJlbWUga2XFoWlyYW5qYSB1IG1pbnV0YW1hIHphIGFsYXRuZSB0cmFrZSB1cHJhdmxqYcSNYSBwcm9tZW5hbWEuIFBvZHJhenVtZXZhbm8gMyBzYXRhICgxODAgbWludXRhKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQuIERlZmF1bHQ6IDUgZGF5cyAoNzIwMCBtaW51dGVzKS4nfSA9CiAgICAgICAgJ1ZyZW1lIGtlxaFpcmFuamEgdSBtaW51dGltYSB6YSB1cHJhdmxqYW5qZSBwcm9tZW5hbWEuIFBvZHJhenVtZXZhbm86IDUgZGFuYSAoNzIwMCBtaW51dGEpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJ8WgYWJsb25pIHByb21lbmEgQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJ0lzdG9yaWphdCBwcm9tZW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nfSA9ICdPc29iZSB1a2xqdcSNZW5lIHUgcHJvbWVudS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdPZ3JhbmnEjWVuamUgcHJlZ2xlZGEgcHJvbWVuYSBtYWxvZyBmb3JtYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICdQcmVnbGVkIHByb21lbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICfFoHRhbXBhIHByb21lbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJ1BsYW5lciBwcm9tZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICdQbGFuZXIgcHJvbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnUHJvbWVuaSBwb2RlxaFhdmFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICdEZXRhbGppIHByb21lbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJ0RldGFsamkgcHJvbWVuZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnSXptZW5pIMWhYWJsb25lIHJhZG5vZyBuYWxvZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnxaBhYmxvbmkgcHJvbWVuYSBpIHJhZG5paCBuYWxvZ2Ega29qZSBqZSBtZW5qYW8gb3ZhaiBrb3Jpc25pay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAnUHJvc3RvciBwcm9tZW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJ0l6bWVuaSBvc29iZSB1a2xqdcSNZW5lIHUgb3Z1IHByb21lbnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnT2dyYW5pxI1lbmplIGJyb2phIHByb21lbmEgcG8gc3RyYW5pY2kgemEgcHJlZ2xlZCBtYWxvZyBmb3JtYXRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnQnJvaiBwcm9tZW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICdQb3phZGluc2tpIG1vZHVsIHByZXRyYWdlIHphIHByb21lbmUgdSBpbnRlcmZlanN1IG9wZXJhdGVyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc3RhdGUnfSA9ICdTdGFuamUgcHJvbWVuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJ1ZyZW1lIHByb21lbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRpdGxlJ30gPSAnTmFzbG92IHByb21lbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICdVcmVkaSB1c2xvdic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICdQcmVnbGVkIHVzbG92YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJ0tvbmZpZ3VyacWhZSBrb2ppIGVrcmFuIGJpIHRyZWJhbG8gcHJpa2F6YXRpIG5ha29uIGtyZWlyYW5qYSBub3ZvZyByYWRub2cgbmFsb2dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnRGVmaW5pxaFlIGtvbGlrbyDEjWVzdG8gc2UgxaFhbGp1IG9iYXZlxaF0ZW5qYSBrYWRhIHN1IHBsYW5pcmFuYSB2cmVtZW5hIHBvxI1ldGthIGlsaSBkcnVnZSB2cmVtZW5za2UgdnJlZG5vc3RpIGRvc3RpZ251dGEvcHJvxaFsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJ05hcHJhdmkgcHJvbWVudSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJ05hcHJhdmkgcHJvbWVudSAob2QgxaFhYmxvbmEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICdOYXByYXZpIHByb21lbnUgKG9kIMWhYWJsb25hKSBpeiBvdm9nIHRpa2V0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnTmFwcmF2aSBwcm9tZW51IGl6IG92b2cgdGlrZXRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnS3JlaXJhbmplIGkgdXByYXZsamFuamUgb2JhdmXFoXRlbmppbWEgSVRTTSB1cHJhdmxqYW5qZW0gcHJvbWVuYW1hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4nfSA9ICdLcmVpcmFuamUgaSB1cHJhdmxqYW5qZSBvYmF2ZcWhdGVuamltYSBvIHByb21lbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJ1BvZHJhenVtZXZlbmkgdGlwIHJhZG5vZyBuYWxvZ2EuIE92YWogdW5vcyBtb3JhIGRhIHBvc3RvamkgdSBrbGFzaSBvcMWhdGVnIGthdGFsb2dhIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICdEZWZpbmnFoWUgYWtjaWplIGdkZSBqZSBkdWdtZSBwb3N0YXZraSBkb3N0dXBubyB1IHBvdmV6YW5vbSBncmFmacSNa29tIGVsZW1lbnR1IG9iamVrdGEgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTW9saW1vIGRhIGltYXRlIG5hIHVtdSBkYSBvdmUgQWtjaWplIG1vcmFqdSBkYSBidWR1IHJlZ2lzdHJvdmFuZSB1IHNsZWRlxIdpbSBKUyBpIENTUyBkYXRvdGVrYW1hOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBpIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICdEZWZpbmnFoWUgc2lnbmFsZSB6YSBzdmFraSBzdGF0dXMgcmFkbm9nIG5hbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICdEZWZpbmnFoWUga29qZSBrb2xvbmUgc3UgcHJpa2F6YW5lIHUgcG92ZXphbm9tIGdyYWZpxI1rb20gZWxlbWVudHUgcHJvbWVuYSAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOYXBvbWVuYTogU2FtbyBhdHJpYnV0aSBwcm9tZW5lIHN1IGRvenZvbGplbmkgemEgcG9kcmF6dW1ldmFuZSBrb2xvbmUuIE1vZ3XEh2UgcG9zdGF2a2U6IDAgPSBvbmVtb2d1xIdlbm8sIDEgPSBkb3N0dXBubywgMiA9IHBvZHJhenVtZXZhbm8gYWt0aXZpcmFuby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgV29ya29yZGVyIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IFdvcmtvcmRlciBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBrb2plIGtvbG9uZSBzdSBwcmlrYXphbmUgdSBwb3ZlemFub20gZ3JhZmnEjWtvbSBlbGVtZW50dSBSYWRub2cgbmFsb2dhIChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5hcG9tZW5hOiBTYW1vIGF0cmlidXRpIHJhZG5vZyBuYWxvZ2Egc3UgZG96dm9samVuaSB6YSBwb2RyYXp1bWV2YW5lIGtvbG9uZS4gTW9ndcSHZSBwb3N0YXZrZTogMCA9IG9uZW1vZ3XEh2VubywgMSA9IGRvc3R1cG5vLCAyID0gcG9kcmF6dW1ldmFubyBha3RpdmlyYW5vLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgY2hhbmdlIGxpc3QuJ30gPQogICAgICAgICdPZHJlxJF1amUgbW9kdWwgcHJlZ2xlZGEgemEgbWFsaSBwcmlrYXogbGlzdGUgcHJvbWVuYS4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAnT2RyZcSRdWplIG1vZHVsIHByZWdsZWRhIHphIG1hbGkgcHJpa2F6IGxpc3RlIMWhYWJsb25hLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICdEZWZpbmnFoWUgZGEgbGkgamVtb2d1xIdlIMWhdGFtcGFuamUgb2JyYcSNdW5hdG9nIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAnT2RyZcSRdWplIGRhIGxpIMSHZSBiaXRpIG1vZ3XEh2UgxaF0YW1wYW5qZSBwbGFuaXJhbmloIG5hcG9yYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIGNoYW5nZSBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgY2hhbmdlIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnT2RyZcSRdWplIGRhIGxpIGRvc3R1cG5lIChrYW8gxaF0byBqZSBvZHJlxJFlbm8gdSBtYcWhaW5pIHN0YW5qYSkgcHJvbWVuZSBpIHN0YXR1c2kgdHJlYmEgZGEgYnVkdSBkb3p2b2xqZW5pIGFrbyBqZSBwcm9tZW5hIHUgemFrbGp1xI1hbm9tIHN0YXR1c3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBkYSBsaSBkb3N0dXBuaSAoa2FvIMWhdG8gamUgb2RyZcSRZW5vIHUgbWHFoWluaSBzdGFuamEpIHJhZG5pIG5hbG96aSBpIHN0YXR1c2kgdHJlYmEgZGEgYnVkdSBkb3p2b2xqZW5pIGFrbyBqZSByYWRuaSBuYWxvZyB1IHpha2xqdcSNYW5vbSBzdGF0dXN1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnRGVmaW5pxaFlIGRhIGxpIG9icmHEjXVuYXRvIHZyZW1lIHRyZWJhIGRhIGJ1ZGUgcHJpa2F6YW5vLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBzaG91bGQgYmUgc2V0Lid9ID0gJ0RlZmluacWhZSBkYSBsaSBha3R1ZWxuYSB2cmVtZW5hIHBvxI1ldGthIGkgemF2csWhZXRrYSB0cmViYSBkYSBzZSBwb2Rlc2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBkYSBsaSBmdW5rY2lqZSBwcmV0cmFnZSBwcm9tZW5hIGkgcHJldHJhZ2UgcmFkbmloIG5hbG9nYSBtb2d1IGRhIGtvcmlzdGUgcHJlc2xpa2FudSBiYXp1IHBvZGF0YWthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmnFoWUgZGEgbGkgc3RhbmplIHByb21lbmUgbW/FvmUgYml0aSBwb3N0YXZsamVudSB1IGVrcmFudSBpem1lbmEgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJ09kcmXEkXVqZSBkYSBsaSBwbGFuaXJhbmkgbmFwb3IgdHJlYmEgZGEgYnVkZSBwcmlrYXphbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJ0RlZmluacWhZSBkYSBsaSBrbGlqZW50IHRyZWJhIGRhIMWhdGFtcGEgdHJhxb5lbmkgZGF0dW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBkYSBsaSBrbGlqZW50IG1vxb5lIGRhIHByZXRyYcW+dWplIHRyYcW+ZW5pIGRhdHVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2V0IGJ5IGN1c3RvbWVyLid9ID0gJ0RlZmluacWhZSBkYSBsaSBrbGlqZW50IG1vxb5lIGRhIHBvZGVzaSB0cmHFvmVuaSBkYXR1bS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJ0RlZmluacWhZSBkYSBsaSBrbGlqZW50IG1vxb5lIGRhIHByaWthxb5lIHRyYcW+ZW5pIGRhdHVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLid9ID0gJ0RlZmluacWhZSBkYSBsaSDEh2Ugc3RhdHVzIHJhZG5vZyBuYWxvZ2EgYml0aSBwcmlrYXphbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICdEZWZpbmnFoWUgZGEgbGkgxIdlIG5hc2xvdiByYWRub2cgbmFsb2dhIGJpdGkgcHJpa2F6YW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgc2hvd24gZ3JhcGggYXR0cmlidXRlcy4nfSA9ICdEZWZpbmnFoWUgYXRyaWJ1dGUgcHJpa2F6YW5vZyBncmFmaWtvbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnRGVmaW5pxaFlIGRhIMSHZSBiaXRpIHByaWthemFuZSBzYW1vIHByb21lbmUga29qZSBzYWRyxb5lIHJhZG5lIG5hbG9nZSBwb3ZlemFuZSBzYSBzZXJ2aXNpbWEsIHphIGtvamUga2xpamVudCBrb3Jpc25payBpbWEgZG96dm9sdSB1cG90cmViZS4gU3ZlIGRydWdlIHByb21lbmUgbmXEh2UgYml0aSBwcmlrYXphbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJ0RlZmluacWhZSBzdGFuamEgcHJvbWVuYSBrb2phIGplIGRvenZvbGplbm8gZGEgc2Ugb2JyacWhdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnRGVmaW5pxaFlIHN0YXR1c2UgcHJvbWVuYSBrb2ppIMSHZSBiaXRpIGtvcmnFoXRlbmkga2FvIGZpbHRlcmkgdSBQRFMgcHJlZ2xlZHUgcHJvbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdPZHJlxJF1amUgc3RhdHVzZSBwcm9tZW5hIGtvamUgxIdlIGJpdGkga29yacWhdGVuZSBrYW8gZmlsdGVyaSB1IHByZWdsZWR1IHBsYW5lcmEgcHJvbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBzdGF0dXNlIHByb21lbmEga29qaSDEh2UgYml0aSBrb3JpxaF0ZW5pIGthbyBmaWx0ZXJpIHUgcHJlZ2xlZHUgbW9qaWggcHJvbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdPZHJlxJF1amUgc3RhdHVzZSBwcm9tZW5hIGtvamUgxIdlIGJpdGkga29yacWhdGVuZSBrYW8gZmlsdGVyaSB1IHByZWdsZWR1IG1vamloIHByb21lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdPZHJlxJF1amUgc3RhdHVzZSBwcm9tZW5hIGtvamUgxIdlIGJpdGkga29yacWhdGVuZSBrYW8gZmlsdGVyaSB1IHByZWdsZWR1IHVwcmF2bGphxI1hIHByb21lbmFtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICdPZHJlxJF1amUgc3RhdHVzZSBwcm9tZW5hIGtvamUgxIdlIGJpdGkga29yacWhdGVuZSBrYW8gZmlsdGVyaSB1IHByZWdsZWR1IHByb21lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnT2RyZcSRdWplIHN0YXR1c2UgcHJvbWVuYSBrb2plIMSHZSBiaXRpIGtvcmnFoXRlbmUga2FvIGZpbHRlcmkgdSBwcmVnbGVkdSBrbGlqZW50c2tvZyBwbGFuZXJhIHByb21lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBwb2RyYXp1bWV2YW5pIG5hc2xvdiBwcmF6bmUgcHJvbWVuZSBrb2phIGplIHBvdHJlYm5hIHphIGl6bWVudSDFoWFibG9uYSByYWRub2cgbmFsb2dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmnFoWUgcG9kcmF6dW1ldmFuaSBrcml0ZXJpanVtIHNvcnRpcmFuamEgdSBQU0EgcHJlZ2xlZHUgcHJvbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBwb2RyYXp1bWV2YW5lIHVzbG92ZSBzb3J0aXJhbmphIHUgcHJlZ2xlZHUgdXByYXZsamHEjWEgcHJvbWVuYW1hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICdEZWZpbmnFoWUgcG9kcmF6dW1ldmFuaSBrcml0ZXJpanVtIHNvcnRpcmFuamEgdSBwcmVnbGVkdSBwcm9tZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBwb2RyYXp1bWV2YW5pIGtyaXRlcmlqdW0gc29ydGlyYW5qYSB1IHByZWdsZWR1IHBsYW5lcmEgcHJvbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBwb2RyYXp1bWV2YW5pIGtyaXRlcmlqdW0gc29ydGlyYW5qYSB1IHByZWdsZWR1IHByb21lbmEgbW9qaWggQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBwb2RyYXp1bWV2YW5lIHVzbG92ZSBzb3J0aXJhbmphIHByb21lbmEgdSBwcmVnbGVkdSBtb2ppaCBwcm9tZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBwb2RyYXp1bWV2YW5lIHVzbG92ZSBzb3J0aXJhbmphIHByb21lbmEgdSBwcmVnbGVkdSBtb2ppaCByYWRuaWggbmFsb2dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBwb2RyYXp1bWV2YW5pIGtyaXRlcmlqdW0gc29ydGlyYW5qYSB1IHByZWdsZWR1IFBJUiBwcm9tZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBwb2RyYXp1bWV2YW5lIHVzbG92ZSBzb3J0aXJhbmphIHByb21lbmEgdSBwcmVnbGVkdSBrbGlqZW50c2tvZyBwbGFuZXJhIHByb21lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdEZWZpbmnFoWUgcG9kcmF6dW1ldmFuaSBrcml0ZXJpanVtIHNvcnRpcmFuamEgcHJvbWVuYSB1IHByZWdsZWR1IMWhYWJsb25hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJ0RlZmluacWhZSBwb2RyYXp1bWV2YW5pIGtyaXRlcmlqdW0gc29ydGlyYW5qYSB1IHByZWdsZWR1IG1vamloIENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPSAnT2RyZcSRdWplIHBvZHJhenVtZXZhbmUgdXNsb3ZlIHNvcnRpcmFuamEgdSBwcmVnbGVkdSBtb2ppaCBwcm9tZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBwb2RyYXp1bWV2YW5lIHVzbG92ZSBzb3J0aXJhbmphIHUgcHJlZ2xlZHUgbW9qaWggcmFkbmloIG5hbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnRGVmaW5pxaFlIHBvZHJhenVtZXZhbmkga3JpdGVyaWp1bSBzb3J0aXJhbmphIHUgcHJlZ2xlZHUgUElSLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnRGVmaW5pxaFlIHBvZHJhenVtZXZhbmkga3JpdGVyaWp1bSBzb3J0aXJhbmphIHUgcHJlZ2xlZHUgUFNBIHByb21lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdPZHJlxJF1amUgcG9kcmF6dW1ldmFuZSB1c2xvdmUgc29ydGlyYW5qYSB1IHByZWdsZWR1IHVwcmF2bGphxI1hIHByb21lbmFtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnRGVmaW5pxaFlIHBvZHJhenVtZXZhbmkgcmVkb3NsZWQgdSBwcmVnbGVkdSBwcm9tZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBwb2RyYXp1bWV2YW5pIHJlZG9zbGVkIHUgcHJlZ2xlZHUgcGxhbmVyYSBwcm9tZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBwb2RyYXp1bWV2YW5lIHVzbG92ZSBzb3J0aXJhbmphIHUgcHJlZ2xlZHUga2xpamVudHNrb2cgcGxhbmVyYSBwcm9tZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJ0RlZmluacWhZSBwb2RyYXp1bWV2YW5pIHJlZG9zbGVkIHUgcHJlZ2xlZHUgxaFhYmxvbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICdEZWZpbmnFoWUgcG9kcmF6dW1ldmFudSB2cmVkbm9zdCB6YSBrYXRlZ29yaWp1IHByb21lbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnRGVmaW5pxaFlIHBvZHJhenVtZXZhbnUgdnJlZG5vc3QgemEgdXRpY2FqIHByb21lbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICdEZWZpbmnFoWUgdGlwIHBvbGphIHphIENvbXBhcmVWYWx1ZSBhdHJpYnV0ZSBwcm9tZW5hIHUgZWtyYW51IGl6bWVuYSB1c2xvdmEgcHJvbWVuYSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLiBJc3ByYXZuZSB2cmVkbm9zdGkgc3UgU2VsZWN0aW9uLCBUZXh0IGkgRGF0ZS4gVWtvbGlrbyB0aXAgbmlqZSBkZWZpbmlzYW4sIHBvbGplIG5lxIdlIGJpdGkgcHJpa2F6YW5vLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnRGVmaW5pxaFlIHRpcCBwb2xqYSB6YSBDb21wYXJlVmFsdWUgYXRyaWJ1dGUgcmFkbmloIG5hbG9nYSB1IGVrcmFudSBpem1lbmEgdXNsb3ZhIHByb21lbmEgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4gSXNwcmF2bmUgdnJlZG5vc3RpIHN1IFNlbGVjdGlvbiwgVGV4dCBpIERhdGUuIFVrb2xpa28gdGlwIG5pamUgZGVmaW5pc2FuLCBwb2xqZSBuZcSHZSBiaXRpIHByaWthemFuby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBrb2plIGF0cmlidXRlIG9iamVrdGEgamUgbW9ndcSHZSBpemFicmF0aSB6YSBvYmpla2F0IHByb21lbmUgdSBla3JhbnUgaXptZW5hIHVzbG92YSBwcm9tZW5lIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHdvcmtvcmRlciBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPZHJlxJF1amUga29qZSBhdHJpYnV0ZSBvYmpla3RhIGplIG1vZ3XEh2UgaXphYnJhdGkgemEgb2JqZWthdCByYWRub2cgbmFsb2dhIHUgZWtyYW51IGl6bWVuYSB1c2xvdmEgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPZHJlxJF1amUga29qZSBvcGVyYXRvcmUgamUgbW9ndcSHZSBpemFicmF0aSB6YSBhdHJpYnV0IEFjY291bnRlZFRpbWUgdSBla3JhbnUgaXptZW5hIHVzbG92YSBwcm9tZW5hIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBrb2plIG9wZXJhdG9yZSBqZSBtb2d1xIdlIGl6YWJyYXRpIHphIGF0cmlidXQgQWN0dWFsRW5kVGltZSB1IGVrcmFudSBpem1lbmEgdXNsb3ZhIHByb21lbmUgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPZHJlxJF1amUga29qZSBvcGVyYXRvcmUgamUgbW9ndcSHZSBpemFicmF0aSB6YSBhdHJpYnV0IEFjdHVhbFN0YXJ0VGltZSB1IGVrcmFudSBpem1lbmEgdXNsb3ZhIHByb21lbmUgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnT2RyZcSRdWplIGtvamUgb3BlcmF0b3JlIGplIG1vZ3XEh2UgaXphYnJhdGkgemEgYXRyaWJ1dCBDYXRlZ29yeUlEIHUgZWtyYW51IGl6bWVuYSB1c2xvdmEgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBrb2plIG9wZXJhdG9yZSBqZSBtb2d1xIdlIGl6YWJyYXRpIHphIGF0cmlidXQgQ2hhbmdlQnVpbGRlcklEIHUgZWtyYW51IGl6bWVuYSB1c2xvdmEgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBrb2plIG9wZXJhdG9yZSBqZSBtb2d1xIdlIGl6YWJyYXRpIHphIGF0cmlidXQgQ2hhbmdlTWFuYWdlcklEIHUgZWtyYW51IGl6bWVuYSB1c2xvdmEgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPZHJlxJF1amUga29qZSBvcGVyYXRvcmUgamUgbW9ndcSHZSBpemFicmF0aSB6YSBhdHJpYnV0IENoYW5nZVN0YXRlSUQgdSBla3JhbnUgaXptZW5hIHVzbG92YSBwcm9tZW5lIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPZHJlxJF1amUga29qZSBvcGVyYXRvcmUgamUgbW9ndcSHZSBpemFicmF0aSB6YSBhdHJpYnV0IENoYW5nZVRpdGxlIHUgZWtyYW51IGl6bWVuYSB1c2xvdmEgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBrb2plIG9wZXJhdG9yZSBqZSBtb2d1xIdlIGl6YWJyYXRpIHphIGF0cmlidXQgRHluYW1pY0ZpZWxkIHUgZWtyYW51IGl6bWVuYSB1c2xvdmEgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnT2RyZcSRdWplIGtvamUgb3BlcmF0b3JlIGplIG1vZ3XEh2UgaXphYnJhdGkgemEgYXRyaWJ1dCBJbXBhY3RJRCB1IGVrcmFudSBpem1lbmEgdXNsb3ZhIHByb21lbmUgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnT2RyZcSRdWplIGtvamUgb3BlcmF0b3JlIGplIG1vZ3XEh2UgaXphYnJhdGkgemEgYXRyaWJ1dCBQbGFubmVkRWZmb3J0IHUgZWtyYW51IGl6bWVuYSB1c2xvdmEgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnT2RyZcSRdWplIGtvamUgb3BlcmF0b3JlIGplIG1vZ3XEh2UgaXphYnJhdGkgemEgYXRyaWJ1dCBQbGFubmVkRW5kVGltZSB1IGVrcmFudSBpem1lbmEgdXNsb3ZhIHByb21lbmUgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnT2RyZcSRdWplIGtvamUgb3BlcmF0b3JlIGplIG1vZ3XEh2UgaXphYnJhdGkgemEgYXRyaWJ1dCBQbGFubmVkU3RhcnRUaW1lIHUgZWtyYW51IGl6bWVuYSB1c2xvdmEgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPZHJlxJF1amUga29qZSBvcGVyYXRvcmUgamUgbW9ndcSHZSBpemFicmF0aSB6YSBhdHJpYnV0IFByaW9yaXR5SUQgdSBla3JhbnUgaXptZW5hIHVzbG92YSBwcm9tZW5lIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFJlcXVlc3RlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBrb2plIG9wZXJhdG9yZSBqZSBtb2d1xIdlIGl6YWJyYXRpIHphIGF0cmlidXQgUmVxdWVzdGVkVGltZSB1IGVrcmFudSBpem1lbmEgdXNsb3ZhIHByb21lbmUgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnT2RyZcSRdWplIGtvamUgb3BlcmF0b3JlIGplIG1vZ3XEh2UgaXphYnJhdGkgemEgYXRyaWJ1dCBXb3JrT3JkZXJBZ2VudElEIHUgZWtyYW51IGl6bWVuYSB1c2xvdmEgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBrb2plIG9wZXJhdG9yZSBqZSBtb2d1xIdlIGl6YWJyYXRpIHphIGF0cmlidXQgV29ya09yZGVyTnVtYmVyIHUgZWtyYW51IGl6bWVuYSB1c2xvdmEgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPZHJlxJF1amUga29qZSBvcGVyYXRvcmUgamUgbW9ndcSHZSBpemFicmF0aSB6YSBhdHJpYnV0IFdvcmtPcmRlclN0YXRlSUQgdSBla3JhbnUgaXptZW5hIHVzbG92YSBwcm9tZW5lIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPZHJlxJF1amUga29qZSBvcGVyYXRvcmUgamUgbW9ndcSHZSBpemFicmF0aSB6YSBhdHJpYnV0IFdvcmtPcmRlclRpdGxlIHUgZWtyYW51IGl6bWVuYSB1c2xvdmEgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBrb2plIG9wZXJhdG9yZSBqZSBtb2d1xIdlIGl6YWJyYXRpIHphIGF0cmlidXQgV29ya09yZGVyVHlwZUlEIHUgZWtyYW51IGl6bWVuYSB1c2xvdmEgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICdPZHJlxJF1amUgcGVyaW9kICh1IGdvZGluYW1hKSwgdW51dGFyIGtvZyBqZSBtb2d1xIdlIGl6YWJyYXRpIHZyZW1lbmEgcG/EjWV0a2EgaSB6YXZyxaFldGthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnRGVmaW5pxaFlIHByaWthemFuZSBhdHJpYnV0ZSB1IHBvcnVrYW1hIG5hIGdyYWZpa3UgcmFkbmloIG5hbG9nYSB1IGRldGFsam5vbSBla3JhbnUgcHJvbWVuYS4gWmEgcHJpa2F6IGRpbmFtacSNa2loIHBvbGphIHJhZG5paCBuYWxvZ2EgdSBwb3J1a2FtYSwgbW9yYWp1IGJpdGkgZGVmaW5pc2FuaSBrYW8gRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBpdGQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdPZHJlxJF1amUga29sb25lIHByaWthemFuZSB1IHByZWdsZWR1IFBTQSBwcm9tZW5hLiBPdmEgb3BjaWphIG5lbWEgdXRpY2FqIG5hIHBvemljaWplIGtvbG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnT2RyZcSRdWplIGtvbG9uZSBwcmlrYXphbmUgdSBwcmVnbGVkdSBwbGFuZXJhIHByb21lbmEuIE92YSBvcGNpamEgbmVtYSB1dGljYWogbmEgcG96aWNpamUga29sb25hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBrb2xvbmUgcHJpa2F6YW5lIHUgcHJlZ2xlZHUgbW9qaWggQ0FCLiBPdmEgb3BjaWphIG5lbWEgdXRpY2FqIG5hIHBvemljaWplIGtvbG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnT2RyZcSRdWplIGtvbG9uZSBwcmlrYXphbmUgdSBwcmVnbGVkdSBtb2ppaCBwcm9tZW5hLiBPdmEgb3BjaWphIG5lbWEgdXRpY2FqIG5hIHBvemljaWplIGtvbG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnT2RyZcSRdWplIGtvbG9uZSBwcmlrYXphbmUgdSBwcmVnbGVkdSBtb2ppaCByYWRuaWggbmFsb2dhLiBPdmEgb3BjaWphIG5lbWEgdXRpY2FqIG5hIHBvemljaWplIGtvbG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5pxaFlIHByaWthemFuZSBrb2xvbmUgdSBwcmVnbGVkdSBQSVIuIE92YSBvcGNpamUgbmVtYSB1dGljYWogbmEgcG96aWNpamUga29sb25hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBwcmlrYXphbmUga29sb25lIHUgcHJlZ2xlZHUgdXByYXZsamHEjWEgcHJvbWVuYW1hLiBPdmEgb3BjaWplIG5lbWEgdXRpY2FqIG5hIHBvemljaWplIGtvbG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnT2RyZcSRdWplIHByaWthemFuZSBrb2xvbmUgdSBwcmVnbGVkdSBwcm9tZW5hLiBPdmEgb3BjaWplIG5lbWEgdXRpY2FqIG5hIHBvemljaWplIGtvbG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBwcmlrYXphbmUga29sb25lIHUgcHJldHJhemkgcHJvbWVuYS4gT3ZhIG9wY2lqZSBuZW1hIHV0aWNhaiBuYSBwb3ppY2lqZSBrb2xvbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBwcmlrYXphbmUga29sb25lIHUgcHJlZ2xlZHUga2xpamVudHNrb2cgcGxhbmVyYSBwcm9tZW5hLiBPdmEgb3BjaWplIG5lbWEgdXRpY2FqIG5hIHBvemljaWplIGtvbG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdPZHJlxJF1amUgcHJpa2F6YW5lIGtvbG9uZSB1IHByZWdsZWR1IMWhYWJsb25hLiBPdmEgb3BjaWplIG5lbWEgdXRpY2FqIG5hIHBvemljaWplIGtvbG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICdPZHJlxJF1amUgc2lnbmFsZSB6YSBzdmFraSBzdGF0dXMgSVRTTSBwcm9tZW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSB0aXBvdmUgxaFhYmxvbmEga29qaSDEh2UgYml0aSBrb3JpxaF0ZW5pIGthbyBmaWx0ZXJpIHUgcHJlZ2xlZHUgxaFhYmxvbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnT2RyZcSRdWplIHN0YXR1c2UgcmFkbmloIG5hbG9nYSBrb2ppIMSHZSBiaXRpIGtvcmnFoXRlbmkga2FvIGZpbHRlcmkgdSBwcmVnbGVkdSBtb2ppaCByYWRuaWggbmFsb2dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBzdGF0dXNlIHJhZG5paCBuYWxvZ2Ega29qaSDEh2Ugc2Uga29yaXN0aXRpIGthbyBmaWx0ZXJpIHUgcHJlZ2xlZHUgUElSLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnT2RyZcSRdWplIHRpcG92ZSByYWRuaWggbmFsb2dhIGtvamkgxIdlIHNlIGtvcmlzdGl0aSB6YSBwcmlrYXogUElSIHByZWdsZWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudC4nfSA9ICdPZHJlxJF1amUgZGEgbGkgxIdlIG9iYXZlxaF0ZW5qYSBiaXRpIHBvc2xhdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBhIGNoYW5nZS4nfSA9ICdPYnJpxaFpIHByb21lbnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJ09icmnFoWkgcHJvbWVudS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnT2JyacWhaSByYWRuaSBuYWxvZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJ0RldGFsamkgc3RhdmtlIGlzdG9yaWphdGEgcHJvbWVuZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiBhbiBhZ2VudCBjYW4gZXhjaGFuZ2UgdGhlIFgtYXhpcyBvZiBhIHN0YXQgaWYgaGUgZ2VuZXJhdGVzIG9uZS4nfSA9CiAgICAgICAgJ1V0dnLEkXVqZSBkYSBsaSBvcGVyYXRlciBtb8W+ZSBkYSB6YW1lbmkgWCBvc3Ugc3RhdGlzdGlrZSBha28gamUgZ2VuZXJpxaFlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJ1V0dnLEkXVqZSBkYSBsaSB6YWplZG5pxI1raSBtb2R1bCBzdGF0aXN0aWtlIG1vxb5lIGRhIGdlbmVyacWhZSBzdGF0aXN0aWt1IHByb21lbmEgdXJhxJFlbmloIHphIGtvbmZpZ3VyYWNpb25lIHN0YXZrZSBrbGFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgY2hhbmdlIHN0YXRlIHVwZGF0ZXMgd2l0aGluIGEgdGltZXBlcmlvZC4nfSA9CiAgICAgICAgJ1V0dnLEkXVqZSBkYSBsaSB6YWplZG5pxI1raSBtb2R1bCBzdGF0aXN0aWtlIG1vxb5lIGRhIGdlbmVyacWhZSBzdGF0aXN0aWt1IHByb21lbmEgcHJlbWEgYcW+dXJpcmFuanUgcHJvbWVuYSBzdGFuamEgdSB2cmVtZW5za29tIHBlcmlvZHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICdVdHZyxJF1amUgZGEgbGkgemFqZWRuacSNa2kgbW9kdWwgc3RhdGlzdGlrZSBtb8W+ZSBkYSBnZW5lcmnFoWUgc3RhdGlzdGlrdSBwcm9tZW5hIHByZW1hIHZlemkgaXptZcSRdSBwcm9tZW5hIGkgdGlrZXRhIGluY2lkZW5hdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMuJ30gPQogICAgICAgICdVdHZyxJF1amUgZGEgbGkgemFqZWRuacSNa2kgbW9kdWwgc3RhdGlzdGlrZSBtb8W+ZSBkYSBnZW5lcmnFoWUgc3RhdGlzdGlrdSBvIHByb21lbmFtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnVXR2csSRdWplIGRhIGxpIHphamVkbmnEjWtpIG1vZHVsIHN0YXRpc3Rpa2UgbW/FvmUgZGEgZ2VuZXJpxaFlIHN0YXRpc3Rpa3UgbyBicm9qdSBSZmMgdGlrZXRhIGtvamUgamUga3JlaXJhbyB0cmHFvmlsYWMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RpbmFtacSNa2EgcG9samEgKHphIHByb21lbmUgaSByYWRuZSBuYWxvZ2UpIHByaWthemFuYSB1IGVrcmFudSDFoXRhbXBlIHByb21lbmUgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEaW5hbWnEjWthIHBvbGphIHByaWthemFuYSB1IGVrcmFudSBkb2RhdmFuamEgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEaW5hbWnEjWthIHBvbGphIHByaWthemFuYSB1IGVrcmFudSBpem1lbmUgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RpbmFtacSNa2EgcG9samEgcHJpa2F6YW5hIHUgZWtyYW51IHByZXRyYWdlIHByb21lbmEgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGluYW1pxI1rYSBwb2xqYSBwcmlrYXphbmEgdSBkZXRhbGpub20gcHJlZ2xlZHUgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RpbmFtacSNa2EgcG9samEgcHJpa2F6YW5hIHUgZWtyYW51IGRvZGF2YW5qYSByYWRub2cgbmFsb2dhIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RpbmFtacSNa2EgcG9samEgcHJpa2F6YW5hIHUgZWtyYW51IGl6bWVuZSByYWRub2cgbmFsb2dhIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGluYW1pxI1rYSBwb2xqYSBwcmlrYXphbmEgdSBla3JhbnUgaXp2ZcWhdGFqYSByYWRub2cgbmFsb2dhIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RpbmFtacSNa2EgcG9samEgcHJpa2F6YW5hIHUgZGV0YWxqbm9tIHByZWdsZWR1IHJhZG5vZyBuYWxvZ2EgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnTW9kdWwgZG9nYcSRYWphIGRpbmFtacSNa2loIHBvbGphIHphIGJhcmF0YW5qZSBzYSBhxb51cmlyYW5qZW0gdXNsb3ZhIGFrbyBzZSBkaW5hbWnEjWthIHBvbGphIGRvZGFqdSwgYcW+dXJpcmFqdSBpbGkgYnJpxaF1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJ1VyZWRpIHByb21lbnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNoYW5nZS4nfSA9ICdVcmVkaSBwcm9tZW51Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnVXJlZGkgdXNsb3ZlIHphIHByb21lbnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICdVcmVkaSByYWRuaSBuYWxvZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICdBa3RpdmlyYSBtaW5pbWFsbnUgdmVsacSNaW51IGJyb2phxI1hIHByb21lbmEgKGFrbyBqZSBpemFicmFuIGRhdHVtIHphIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAnUHJvc2xlZGkgcmFzcG9yZWQgcHJvbWVuYS4gUHJlZ2xlZCBvZG9icmVuaWggcHJvbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnRGV0YWxqaSBpc3RvcmlqYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnSVRTTSDFoWFibG9uaSBwcm9tZW5hIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICdJVFNNIHVyZcSRaXZhbmplIHVzbG92YSBwcm9tZW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnSVRTTSBwcmVnbGVkIHVzbG92YSBwcm9tZW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJ0lUU00gcHJlZ2xlZCBwcm9tZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnT2JhdmXFoXRlbmphIG8gSVRTTSBwcm9tZW5hbWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJ0lUU00gcHJlZ2xlZCBQSVIgcHJvbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2Ugbm90aWZpY2F0aW9uIHJ1bGVzJ30gPSAnSVRTTSBwcmF2aWxhIG9iYXZlxaF0YXZhbmphIG8gcHJvbWVuaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnSVRTTSBwcm9tZW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnSVRTTSBwcmVnbGVkIG1vamloIENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnSVRTTSBwcmVnbGVkIG1vamloIHByb21lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJ0lUU00gcHJlZ2xlZCBtb2ppaCByYWRuaWggbmFsb2dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICdJVFNNIGJyaXNhbmplIMWhYWJsb25hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJ0lUU00gdXJlxJFpdmFuamUgQ0FCIMWhYWJsb25hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICdJVFNNIHNhZHLFvmFqIHVyZcSRaXZhbmphIMWhYWJsb25hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnSVRTTSB1cmXEkWl2YW5qZSDFoWFibG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICdQcmVnbGVkIElUU00gxaFhYmxvbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnSVRTTSBtb2R1bCBkb2dhxJFhamEga29qaSDEjWlzdGkgdXNsb3ZlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnSVRTTSBtb2R1bCBkb2dhxJFhamEga29qaSBicmnFoWUga2XFoSBhbGF0bmUgdHJha2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJ0lUU00gbW9kdWwgZG9nYcSRYWphIGtvamkgYnJpxaFlIGlzdG9yaWphdCBwcm9tZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJ0lUU00gbW9kdWwgZG9nYcSRYWphIGtvamkgdXBhcnVqZSB1c2xvdmUgaSBpenZyxaFhdmEgYWtjaWplLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnSVRTTSBtb2R1bCBkb2dhxJFhamEga29qaSDFoWFsamUgb2JhdmXFoXRlbmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICdJVFNNIG1vZHVsIGRvZ2HEkWFqYSBrb2ppIGHFvnVyaXJhIGlzdG9yaWphdCBwcm9tZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICdJVFNNIG1vZHVsIGRvZ2HEkWFqYSBhxb51cmlyYSBpc3RvcmlqYXQgdXNsb3ZhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICdJVFNNIG1vZHVsIGRvZ2HEkWFqYSBhxb51cmlyYSBpc3RvcmlqYXQgcmFkbmloIG5hbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJ0lUU00gbW9kdWwgZG9nYcSRYWphIGtvamkgcHJlcmHEjXVuYXZhIGJyb2pldmUgcmFkbmloIG5hbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnSVRTTSBtb2R1bCBkb2dhxJFhamEga29qaSBwb2RlxaFhdmEgYWt0dWVsbmEgdnJlbWVuYSBwb8SNZXRrYSBpIHphdnLFoWV0a2EgcmFkbmloIG5hbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJ0lUU00gcHJvbWVuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnSVRTTSByYWRuaSBuYWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJ0FrbyBqZSB1xI1lc3RhbG9zdCBcJ3JlZG92bm9cJywgbW/FvmV0ZSBwb2Rlc2l0aSBrb2xpa28gxI1lc3RvIHNlIMWhYWxqdSBvYmF2ZcWhdGVuamEgKG5hIHN2YWtpaCBYIHNhdGkpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnUG92ZcW+aSBkcnVnaSBvYmpla2F0IHNhIHByb21lbm9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSB3b3Jrb3JkZXIuJ30gPSAnUG92ZcW+aSBkcnVnaSBvYmpla2F0IHNhIHJhZG5pbSBuYWxvZ29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJ0xpc3RhIHN2aWggZG9nYcSRYWphIG5hIHByb21lbmFtYSBrb2phIMSHZSBiaXRpIHByaWthemFuYSB1IGdyYWZpxI1rb20gaW50ZXJmZWpzdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICdMaXN0YSBzdmloIGRvZ2HEkWFqYSBuYSByYWRuaW0gbmFsb3ppbWEga29qYSDEh2UgYml0aSBwcmlrYXphbmEgdSBncmFmacSNa29tIGludGVyZmVqc3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnUG90cmHFvmkgxI1sYW5vdmUgQ0FCIHJhZGkgYXV0b21hdHNrb2cgZG92csWhYXZhbmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICdQb3RyYcW+aSBvcGVyYXRlcmUsIHVwb3RyZWJsamVuZSB6YSBhdXRvbWF0c2tvIGRvdnLFoWF2YW5qZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICdVcmXEkWl2YW5qZSBtYcWhaW5lIHN0YW5qYSBJVFNNIHVwcmF2bGphbmphIHByb21lbmFtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnVXByYXZsamFuamUgbWF0cmljb20gS2F0ZWdvcmlqYSAtIFV0aWNhaiAtIFByaW9yaXRldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIGlmIFdvcmtPcmRlckFkZCBvciBXb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUgc2hvdWxkIGJlIHBlcm1pdHRlZC4nfSA9CiAgICAgICAgJ01vZHVsIHphIHByb3ZlcnUgZGEgbGkgZG9kYXZhbmplIHJhZG5vZyBuYWxvZ2EgaWxpIGRvZGF2YW5qZSByYWRub2cgbmFsb2dhIGl6IMWhYWJsb25hIHRyZWJhIGRhIGJ1ZGUgZG96dm9samVuby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICdNb2R1bCB6YSBwcm92ZXJ1IMSNbGFub3ZhIENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICdNb2R1bCB6YSBwcm92ZXJ1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICdNb2R1bCB6YSBwcm92ZXJ1IGdyYWRpdGVsamEgcHJvbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICdNb2R1bCB6YSBwcm92ZXJ1IHVwcmF2bGphxI1hIHByb21lbmFtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnTW9kdWwgemEgcHJvdmVydSBvcGVyYXRlcmEgcmFkbm9nIG5hbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nfSA9ICdNb2R1bCB6YSBwcm92ZXJ1IGRhIGxpIGplIG9kcmXEkWVuIG9wZXJhdGVyIHphIHJhZG5pIG5hbG9nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICdNb2R1bCB6YSBwcm92ZXJ1IGRhIGxpIHNlIG9wZXJhdGVyIG5hbGF6aSB1IGtvbmZpZ3VyaXNhbm9qIGxpc3RpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnTW9kdWwgemEgcHJpa2F6IHZlemUgemEga3JlaXJhbmplIHByb21lbmUgaXogb3ZvZyB0aWtldGEuIFRpa2V0IMSHZSBhdXRvbWF0c2tpIGJpdGkgcG92ZXphbiBzYSBub3ZvbSBwcm9tZW5vbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QuJ30gPSAnUG9tZXJpIHZyZW1lbnNraSB0ZXJtaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgYWxsIHdvcmtvcmRlcnMgaW4gdGltZS4nfSA9ICdQb21lcmkgc3ZlIHJhZG5lIG5hbG9nZSB1IHZyZW1lbnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICdOb3ZvIChvZCDFoWFibG9uYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTYW1vIGtvcmlzbmljaSBvdmloIGdydXBhIGltYcSHZSBkb3p2b2x1IHphIGtvcmnFocSHZW5qZSB0aXBvdmEgdGlrZXRhIGRlZmluaXNhbmloIHUgIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgdWtvbGlrbyBqZSBmdW5rY2lqYSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBvbW9ndcSHZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ0RydWdhIHBvZGXFoWF2YW5qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJ1ByZWdsZWQgc3ZpaCBwcm9tZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICdQSVInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICdQSVIgKHJlY2VuemlqYSBwb3NsZSBzcHJvdm/EkWVuamEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJ1BTQSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdQYXJhbWV0cmkgemEgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVrYXQgdSBwcmlrYXp1IHBvZGXFoWF2YW5qYSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcmFtZXRyaSBzdHJhbmljYSAobmEga29qaW1hIHN1IHByb21lbmUgdmlkbGppdmUpIHNtYW5qZW5vZyBwcmVnbGVkYSB0aWtldGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmZvcm1zIHRoZSBjb25maWd1cmVkIGFjdGlvbiBmb3IgZWFjaCBldmVudCAoYXMgYW4gSW52b2tlcikgZm9yIGVhY2ggY29uZmlndXJlZCBXZWJzZXJ2aWNlLid9ID0KICAgICAgICAnSXp2csWhYXZhIHBvZGXFoWVudSBha2NpanUgemEgc3Zha2kgZG9nYcSRYWogKGthbyBwb3ppdmFsYWMpIHphIHN2YWtpIGtvbmZpZ3VyaXNhbiB2ZWIgc2VydmlzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnUGxhbmlyYW5vIHZyZW1lIHphdnLFoWV0a2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnUGxhbmlyYW5vIHZyZW1lIHBvxI1ldGthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAnT2TFoXRhbXBhaiBwcm9tZW51Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJ09kxaF0YW1wYWogcmFkbmkgbmFsb2cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJ1Byb2pla3RvdmFuYSBkb3N0dXBub3N0IHNlcnZpc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnUHJvamVrdG92YW5hIGRvc3R1cG5vc3Qgc2VydmlzYSAoUFNBKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICdQcm9qZWt0b3ZhbmEgZG9zdHVwbm9zdCBzZXJ2aXNhIChQU0EpIHByb21lbmEuIFByZWdsZWQgb2RvYnJlbmloIHByb21lbmEgaSBsamlob3ZpaCBzZXJ2aXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJ1RyYcW+ZW5vIHZyZW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdQb3RyZWJuYSBwcmF2YSB6YSBkb2RhdmFuamUgcmVkb3NsZWRhIHJhZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICdQb3RyZWJuYSBwcmF2YSB6YSBwcmlzdHVwIHByZWdsZWR1IHN2aWggcHJvbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnUG90cmVibmEgcHJhdmEgemEgZG9kYXZhbmplIHJhZG5paCBuYWxvZ2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnUG90cmVibmEgcHJhdmEgemEgaXptZW51IG9wZXJhdGVyYSByYWRub2cgbmFsb2dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAnUG90cmVibmEgcHJhdmEgemEga3JlaXJhbmplIMWhYWJsb25hIG9kIHByb21lbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICdQb3RyZWJuYSBwcmF2YSB6YSBrcmVpcmFuamUgxaFhYmxvbmEgb2QgcHJvbWVuZSBDQUIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIHdvcmtvcmRlci4nfSA9ICdQb3RyZWJuYSBwcmF2YSB6YSBrcmVpcmFuamUgxaFhYmxvbmEgb2QgcmFkbm9nIG5hbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcyBmcm9tIHRlbXBsYXRlcy4nfSA9ICdQb3RyZWJuYSBwcmF2YSB6YSBrcmVpcmFuamUgcHJvbWVuYSBvZCDFoWFibG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgY2hhbmdlcy4nfSA9ICdQb3RyZWJuYSBwcmF2YSB6YSBrcmVpcmFuamUgcHJvbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB0ZW1wbGF0ZS4nfSA9ICdQb3RyZWJuYSBwcmF2YSB6YSBicmlzYW5qZSDFoWFibG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB3b3Jrb3JkZXIuJ30gPSAnUG90cmVibmEgcHJhdmEgemEgYnJpc2FuamUgcmFkbm9nIG5hbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICdQb3RyZWJuYSBwcmF2YSB6YSBicmlzYW5qZSBwcm9tZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICdQb3RyZWJuYSBwcmF2YSB6YSB1cmXEkWVuamUgxaFhYmxvbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICdQb3RyZWJuYSBwcmF2YSB6YSB1cmXEkWVuamUgcmFkbm9nIG5hbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnUG90cmVibmEgcHJhdmEgemEgdXJlxJFlbmplIHByb21lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJ1BvdHJlYm5hIHByYXZhIHphIHVyZcSRZW5qZSB1c2xvdmEgemEgcHJvbWVuZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb250ZW50IG9mIGEgdGVtcGxhdGUuJ30gPSAnUG90cmVibmEgcHJhdmEgemEgdXJlxJFlbmplIHNhZHLFvmFqYSDFoWFibG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAnUG90cmVibmEgcHJhdmEgemEgdXJlxJFlbmplIG9zb2JhIHVrbGp1xI1lbmloIHUgcHJvbWVudS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICdQb3RyZWJuYSBwcmF2YSB6YSBwb21lcmFuamUgcHJvbWVuYSB1IHZyZW1lbnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAnUG90cmVibmEgcHJhdmEgemEgxaF0YW1wdSBwcm9tZW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHJlc2V0IGNoYW5nZXMuJ30gPSAnUG90cmVibmEgcHJhdmEgemEgcG9uacWhdGVuamUgcHJvbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJ1BvdHJlYm5hIHByYXZhIHphIHByaWtheiByYWRub2cgbmFsb2dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICdQb3RyZWJuYSBwcmF2YSB6YSBwcmlrYXogcHJvbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICdQb3RyZWJuYSBwcmF2YSB6YSBwcmlrYXogbGlzdGUgcHJvbWVuYSBnZGUgamUga29yaXNuaWsgxI1sYW4gQ0FCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJ1BvdHJlYm5hIHByYXZhIHphIHByaWtheiBsaXN0ZSBwcm9tZW5hIGdkZSBrb3Jpc25payB1cHJhdmxqYSBwcm9tZW5vbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICdQb3RyZWJuYSBwcmF2YSB6YSBwcmlrYXogcHJlZ2xlZGEgc3ZpaCDFoWFibG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnUG90cmVibmEgcHJhdmEgemEgcHJpa2F6IHVzbG92YSB6YSBwcm9tZW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnUG90cmVibmEgcHJhdmEgemEgcHJpa2F6IGlzdG9yaWphdGEgcHJvbWVuZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJ1BvdHJlYm5hIHByYXZhIHphIHByaWtheiBpc3RvcmlqYXRhIHJhZG5vZyBuYWxvZ2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJ1BvdHJlYm5hIHByYXZhIHphIGRldGFsamFuIHByaWtheiBpc3RvcmlqYXRhIHByb21lbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnUG90cmVibmEgcHJhdmEgemEgZGV0YWxqYW4gcHJpa2F6IGlzdG9yaWphdGEgcmFkbm9nIG5hbG9nYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJ1BvdHJlYm5hIHByYXZhIHphIHByaWtheiBsaXN0ZSBQbGFuZXJhIHByb21lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJ1BvdHJlYm5hIHByYXZhIHphIHByaWtheiBsaXN0ZSBwcm9tZW5hIFBTQS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJ1BvdHJlYm5hIHByYXZhIHphIHByaWtheiBsaXN0ZSBwcm9tZW5hIHNhIHByZWRzdG9qZcSHaW0gUElSIChyZWNlbnppamEgcG9zbGUgc3Byb3ZvxJFlbmphKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJ1BvdHJlYm5hIHByYXZhIHphIHByaWtheiBsaXN0ZSBzb3BzdHZlbmloIHByb21lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICdQb3RyZWJuYSBwcmF2YSB6YSBwcmlrYXogbGlzdGUgc29wc3R2ZW5paCByYWRuaWggbmFsb2dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHdyaXRlIGEgcmVwb3J0IGZvciB0aGUgd29ya29yZGVyLid9ID0gJ1BvdHJlYm5hIHByYXZhIHphIHBpc25qZSBpenZlxaF0YWphIHphIHJhZG5pIG5hbG9nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMuJ30gPSAnUmVzZXQgcHJvbWVuZSBpIG5qZW5paCByYWRuaWggbmFsb2dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJ1Jlc2V0IHByb21lbmUgaSBuamVuaWggcmFkbmloIG5hbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJ1Bva3JlbmkgemFkYXRhayByYWRpIHByb3ZlcmUgZGEgbGkgc3UgdSBwcm9tZW5hbWEgaSByYWRuaW0gbmFsb3ppbWEgZG9zdGlnbnV0YSBvZHJlxJFlbmEgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBjaGFuZ2UgYXMgYSB0ZW1wbGF0ZS4nfSA9ICdTYcSNdXZhaiBwcm9tZW51IGthbyDFoWFibG9uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJ1NhxI11dmFqIHJhZG5pIG5hbG9nIGthbyDFoWFibG9uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJ1Jhc3BvcmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJ0VrcmFuIHBvc2xlIGtyZWlyYW5qYSByYWRub2cgbmFsb2dhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnUHJldHJhxb5pIHByb21lbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnUHJldHJhxb5pIHByb21lbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICdCaXJhIG1vZHVsIHphIGdlbmVyaXNhbmplIGJyb2phIHByb21lbmEuICJBdXRvSW5jcmVtZW50IiB1dmXEh2F2YSBicm9qIHByb21lbmEsIFN5c3RlbUlEIGkgYnJvamHEjSBzZSBrb3Jpc3RlIHUgU3lzdGVtSUQuYnJvamHEjSBmb3JtYXR1IChucHIuIDEwMDExOCwgMTAwMTE5KS4gU2EgIkRhdGUiIGJyb2pldmkgcHJvbWVuYSDEh2UgYml0aSBnZW5lcmlzYW5pIHByZWtvIHRyZW51dG5vZyBkYXR1bWEgaSBicm9qYcSNYS4gRm9ybWF0IMSHZSBpemdsZWRhdGkga2FvIGdvZGluYS5tZXNlYy5kYW4uYnJvamHEjSAobnByLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyKS4gU2EgIkRhdGVDaGVja3N1bSIgYnJvamHEjSDEh2UgYml0aSBkb2RhdCBrYW8ga29udHJvbG5pIHpiaXIgbml6dSBzYcSNaW5qZW5vbSBvZCBkYXR1bWEgaSBTeXN0ZW1JRC4gS29udHJvbG5pIHpiaXIgxIdlIHNlIHNtZW5qaXZhdGkgbmEgZG5ldm5vbSBuaXZvdS4gRm9ybWF0IGl6Z2xlZGEgb3Zha286IGdvZGluYS5tZXNlYy5kYW4uU3lzdGVtSUQuYnJvamHEjS5rb250cm9sbmlfemJpciwgbnByLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDAyMDcwMTEwMTAxNTM1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJ09kcmVkaSBvcGVyYXRlcmEgemEgcmFkbmkgbmFsb2cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5pxaFlIHBvZHJhenVtZXZhbnUgdmlzaW51IHJlZGEgKHUgcGlrc2VsaW1hKSBIVE1MIHBvbGphIHUgZWtyYW51IGRldGFsamEgcHJvbWVuZSBpIHJhZG5vZyBuYWxvZ2EgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmnFoWUgbWFrc2ltYWxudSB2aXNpbnUgcmVkYSAodSBwaWtzZWxpbWEpIEhUTUwgcG9samEgdSBla3JhbnUgZGV0YWxqYSBwcm9tZW5lIGkgcmFkbm9nIG5hbG9nYSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnUG9kZcWhYXZhIG1pbmltYWxudSB2ZWxpxI1pbnUgYnJvamHEjWEgcHJvbWVuYSAoYWtvIGplIGl6YWJyYW4gIkF1dG9JbmNyZW1lbnQiIHphIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIFBvZHJhenVtZXZhbm8gamUgNSwgxaF0byB6bmHEjWkgZGEgYnJvamHEjSBwb8SNaW5qZSBvZCAxMDAwMC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3IgY2hhbmdlcy4nfSA9ICdQb2Rlc2kgbWHFoWludSBzdGFuamEgemEgcHJvbWVuZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICdQb2Rlc2kgbWHFoWludSBzdGFuamEgemEgcmFkbmUgbmFsb2dlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICdQcmlrYXp1amUgcG9samUgemEgcG90dnJkdSB1IGVrcmFudSBpem1lbmEgcmFkbm9nIG5hbG9nYSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhIGtvamUgZGVmaW5pxaFlIGRhIGxpIMSHZSBzbGVkZcSHaSByYWRuaSBuYWxvemkgdGFrb8SRZSBiaXRpIHByZW1lxaF0ZW5pIHVrb2xpa28gamUgcmFkbmkgbmFsb2cgaXptZW5qZW4gaSBwbGFuaXJhbm8gdnJlbWUgemF2csWhZXRrYSBwcm9tZW5qZW5vLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVIG1lbmlqdSBwcmlrYXp1amUgdmV6dSBrb2phIG9tb2d1xIdhdmEgaXptZW51IG9wZXJhdGVyYSByYWRub2cgbmFsb2dhLCB1IGRldGFsam5vbSBwcmlrYXp1IHRvZyBuYWxvZ2EgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVSBtZW5panUgcHJpa2F6dWplIHZlenUga29qYSBvbW9ndcSHYXZhIGRlZmluaXNhbmplIHByb21lbmUga2FvIMWhYWJsb25hIG5hIGRldGFsam5vbSBwcmlrYXp1IHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1UgbWVuaWp1IHByaWthenVqZSB2ZXp1IGtvamEgb21vZ3XEh2F2YSBkZWZpbmlzYW5qZSByYWRub2cgbmFsb2dhIGthbyDFoWFibG9uYSBuYSBkZXRhbGpub20gcHJpa2F6dSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1UgbWVuaWp1IHByaWthenVqZSB2ZXp1IGtvamEgb21vZ3XEh2F2YSBpem1lbnUgaXp2ZcWhdGFqYSByYWRub2cgbmFsb2dhLCB1IGRldGFsam5vbSBwcmlrYXp1IHRvZyBuYWxvZ2EgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVSBtZW5panUgcHJpa2F6dWplIHZlenUga29qYSBvbW9ndcSHYXZhcG92ZXppdmFuamUgcHJvbWVuZSBzYSBkcnVnaW0gb2JqZWt0b20gbmEgZGV0YWxqbm9tIHByaWthenUgcHJvbWVuZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIHdvcmtvcmRlciB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVSBtZW5panUgcHJpa2F6dWplIHZlenUga29qYSBvbW9ndcSHYXZhIHBvdmV6aXZhbmplIHJhZG5vZyBuYWxvZ2Egc2EgZHJ1Z2ltIG9iamVrdG9tIHUgZGV0YWxqbm9tIHByaWthenUgdG9nIG5hbG9nYSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVSBtZW5panUgcHJpa2F6dWplIHZlenUga29qYSBvbW9ndcSHYXZhIHBvbWVyYW5qZSB2cmVtZW5za29nIHRlcm1pbmEgcHJvbWVuZSBuYSBkZXRhbGpub20gcHJpa2F6dSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVIG1lbmlqdSBwcmlrYXp1amUgdmV6dSBrb2phIG9tb2d1xIdhdmEgcHJldXppbWFuamUgcmFkbm9nIG5hbG9nYSBuYSBkZXRhbGpub20gcHJpa2F6dSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVIG1lbmlqdSBwcmlrYXp1amUgdmV6dSBrb2phIG9tb2d1xIdhdmEgcHJpc3R1cCB1c2xvdmltYSBwcm9tZW5lIG5hIGRldGFsam5vbSBwcmlrYXp1IHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1UgbWVuaWp1IHByaWthenVqZSB2ZXp1IGtvamEgb21vZ3XEh2F2YSBwcmlzdHVwIGlzdG9yaWphdHUgcHJvbWVuZSBuYSBkZXRhbGpub20gcHJpa2F6dSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVIG1lbmlqdSBwcmlrYXp1amUgdmV6dSB6YSBwcmlzdHVwIGlzdG9yaWphdHUgcmFkbm9nIG5hbG9nYSBuYSBkZXRhbGpub20gcHJpa2F6dSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVIG1lbmlqdSBwcmlrYXp1amUgdmV6dSB6YSBkb2RhdmFuamUgcmFkbm9nIG5hbG9nYSBuYSBkZXRhbGpub20gcHJpa2F6dSBwcm9tZW5lIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVSBtZW5panUgcHJpa2F6dWplIHZlenUgemEgYnJpc2FuamUgcHJvbWVuZSBuYSBkZXRhbGpub20gcHJpa2F6dSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgd29ya29yZGVyIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1UgbWVuaWp1IHByaWthenVqZSB2ZXp1IHphIGJyaXNhbmplIHJhZG5vZyBuYWxvZ2EgbmEgZGV0YWxqbm9tIHByaWthenUgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1UgbWVuaWp1IHByaWthenVqZSB2ZXp1IHphIGl6bWVudSBwcm9tZW5lIG5hIGRldGFsam5vbSBwcmlrYXp1IHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVIG1lbmlqdSBwcmlrYXp1amUgdmV6dSB6YSBpem1lbnUgcmFkbm9nIG5hbG9nYSBuYSBkZXRhbGpub20gcHJpa2F6dSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVSBtZW5panUgcHJpa2F6dWplIHZlenUgemEgcG92cmF0YWsgbmEgZGV0YWxqbmkgcHJpa2F6IHByb21lbmUgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1UgbWVuaWp1IHByaWthenVqZSB2ZXp1IHphIHBvdnJhdGFrIG5hIGRldGFsam5pIHByaWtheiByYWRub2cgbmFsb2dhIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVSBtZW5panUgcHJpa2F6dWplIHZlenUgemEgxaF0YW1wYW5qZSBwcm9tZW5lIG5hIGRldGFsam5vbSBwcmlrYXp1IHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVSBtZW5panUgcHJpa2F6dWplIHZlenUgemEgxaF0YW1wYW5qZSByYWRub2cgbmFsb2dhIG5hIGRldGFsam5vbSBwcmlrYXp1IHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byByZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVSBtZW5panUgcHJpa2F6dWplIHZlenUgemEgcG9uacWhdGF2YW5qZSBwcm9tZW5lIGkgcHJpcGFkYWp1xIdpaCByYWRuaWggbmFsb2dhIG5hIGRldGFsam5vbSBwcmlrYXp1IHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1UgbWVuaWp1IHByaWthenVqZSB2ZXp1IGtvamEgb21vZ3XEh2F2YSBwcmlrYXogb3NvYmEgdWtsanXEjWVuaWggdSBwcm9tZW51IHUgZGV0YWxqbm9tIHByaWthenUgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdQcmlrYXp1amUgaXN0b3JpamF0IHRpa2V0YSAob2JybnV0IHJlZG9zbGVkKSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnTWHFoWluYSBzdGFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ8SMdXZhIGlkZW50aWZpa2FjaWplIHByb21lbmEgaSByYWRuaWggbmFsb2dhIGkgcHJpcGFkYWp1xIdlIGlkZW50aWZpa2FjaWplIMWhYWJsb25hLCB6YSB2cmVtZSBkb2sga29yaXNuaWsgdXJlxJF1amUgxaFhYmxvbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICdQcmV1em1pIHJhZG5pIG5hbG9nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJ1ByZXV6bWkgcmFkbmkgbmFsb2cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICdQcmV1em1pIHJhZG5pIG5hbG9nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJ1ByZWdsZWQgxaFhYmxvbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJ1RpcCDFoWFibG9uYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICfFoGFibG9uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnSWRlbnRpZmlrYXRvciB6YSBwcm9tZW51LCBucHIuIENoYW5nZSMsIE15Q2hhbmdlIy4gUG9kcmF6dW1ldmFubyBqZSBDaGFuZ2UjLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAnSWRlbnRpZmlrYXRvciB6YSByYWRuaSBuYWxvZywgbnByLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFBvZHJhenVtZXZhbm8gamUgV29ya29yZGVyIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJ092YWogQUNMIG1vZHVsIG9ncmFuacSNYXZhIG1vZ3XEh25vc3Qga29yacWhxIdlbmphIHRpcG92YSB0aWtldGEga29qaSBzdSBkZWZpbmlzYW5pIHUgcG9kZcWhYXZhbmp1IFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIGkgdG8ga29yaXNuaWNpbWEgZ3J1cGEgZGVmaW5pc2FuaW0gdSAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gS2FrbyBvdmFqIEFDTCBtb8W+ZSBkYSBzZSBzdWtvYmkgc2EgZHJ1Z2ltIEFDTC1vdmltYSBrb2ppIHNlIGlzdG8gb2Rub3NlIG5hIHRpcCB0aWtldGEsIHBvZGXFoWF2YW5qZSBqZSBwb2RyYXp1bWV2YW5vIGlza2xqdcSNZW5vIGkgdHJlYmEgZ2EgYWt0aXZpcmF0aSBzYW1vIHVrb2xpa28gamUgbmVvcGhvZG5vLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICdWcmVtZW5za2kgdGVybWluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICdUaXBvdmkgdGlrZXRhLCBrb2Qga29qaWggxIdlIHUgZGV0YWxqbm9tIHByaWthenUgYml0aSB2aWRsaml2YSB2ZXphIHphIGRvZGF2YW5qZSBwcm9tZW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJ1ByZXRyYWdhIGtvcmlzbmlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICdEb2RhaiByYWRuaSBuYWxvZyAoaXogxaFhYmxvbmEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAnRG9kYWogcmFkbmkgbmFsb2cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICdPcGVyYXRlciB6YSByYWRuaSBuYWxvZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICdCcmlzYW5qZSByYWRub2cgbmFsb2dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICdVcmXEkWVuamUgcmFkbm9nIG5hbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICdEZXRhbGppIGlzdG9yaWphdGEgcmFkbm9nIG5hbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnSXN0b3JpamF0IHJhZG5vZyBuYWxvZ2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnSXp2ZcWhdGFqIHJhZG5vZyBuYWxvZ2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnRGV0YWxqaSByYWRub2cgbmFsb2dhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJ0RldGFsamkgcmFkbm9nIG5hbG9nYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJ2plZG5vbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICdyZWRvdm5vJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/sv_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3ZfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnTMOkZ2cgdGlsbCBhdmlzZXJpbmdzcmVnZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnRW4gYXZpc2VyaW5nIGJvcmRlIGhhIGV0dCBuYW1uISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJ05hbW4ga3LDpHZzLic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICdWw6RsaiBlbiBrYXRhbG9na2xhc3MhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0YWxvZyBjbGFzcyBpcyByZXF1aXJlZCEnfSA9ICdFbiBrYXRhbG9na2xhc3Mga3LDpHZzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdLYXRhbG9na2xhc3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICdOYW1uIHDDpSBvYmpla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJ1bDpG5saWdlbiB2w6RsaiBlbiBzdGF0dXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJ1bDpG5saWdlbiB2w6RsaiBuw6RzdGEgc3RhdHVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDaGFuZ2UnfSA9ICdMw6RnZyB0aWxsIMOkbmRyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICdSw6R0dGbDpHJkaWdhbmRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAnT2dpbHRpZyBpbm1hdG5pbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAnT2dpbHRpZyB0aWRzdHlwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdGltZSd9ID0gJ055IHRpZCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIHRvIGludm9sdmVkIHBlcnNvbnMgc2NyZWVuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgTmFtZSd9ID0gJ09naWx0aWd0IG5hbW4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnVGlsbHN0w6VuZCBvY2ggw4V0Z8OkcmRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnUmFkZXJhIHRpbGxzdMOlbmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICdMw6RnZyB0aWxsIG55dHQgdGlsbHN0w6VuZCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbmRpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGEgdmFsaWQgbmFtZS4nfSA9ICdCZWjDtnZlciBldHQgZ2lsdGlndCBuYW1uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICdEdWJsZXR0bmFtbjonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGNvbmRpdGlvbi4nfSA9ICdEZXQgaMOkciBuYW1uZXQgYW52w6RuZHMgcmVkYW4gYXYgZXR0IGFubmF0IHRpbGxzdMOlbmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hdGNoaW5nJ30gPSAnTWF0Y2hhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnTsOlZ290IHV0dHJ5Y2sgKEVMTEVSKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICdBbGxhIHV0dHJ5Y2sgKE9DSCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbnMnfSA9ICdVdHRyeWNrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdG9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZXJhdG9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBFeHByZXNzaW9uJ30gPSAnUmFkZXJhIHV0dHJ5Y2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAnSGl0dGFkZSBpbmdhIHV0dHJ5Y2suJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJ0zDpGdnIHRpbGwgbnl0dCB1dHRyeWNrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICdSYWRlcmEgw6V0Z8OkcmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICdIaXR0YWRlIGluZ2Egw6V0Z8OkcmRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICdMw6RnZyB0aWxsIG55IMOldGfDpHJkJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICdWaWxsIGR1IHZlcmtsaWdlbiByYWRlcmEgZGVuIGjDpHIgw6RuZHJpbmdlbj8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJ0hpc3RvcmlrIGbDtnIgJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAnQXJiZXRzb3JkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICdWaXNhIGRldGFsamVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnVmlzYSBhcmJldHNvcmRlcic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJ01vZGlmaWVyYWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnR2FtbWFsdCB2w6RyZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFZhbHVlJ30gPSAnTnl0dCB2w6RyZGUnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnSW5ibGFuZGFkZSBwZXJzb25lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaW52YWxpZC4nfSA9ICdPZ2lsdGlnIGFudsOkbmRhcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJ0NBQi1tYWxsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnVmVya3N0w6RsbCBtYWxsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAnTnltYWxsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgdGhpcyBDQUIgYXMgdGVtcGxhdGUnfSA9ICdTcGFyYSBkZW4gaMOkciBDQUJcJ2VuIHNvbSBtYWxsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICdMw6RnZyB0aWxsIGkgQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJ09naWx0aWcgYW52w6RuZGFyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJ051dmFyYW5kZSBDQUInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlcyBwZXIgcGFnZSd9ID0gJ8OEbmRyaW5nYXIgcGVyIHNpZGEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICfDhG5kcmEgYnlnZ2FyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTWFuYWdlcid9ID0gJ8OEbmRyYSBjaGVmJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcnMnfSA9ICdBcmJldHNvcmRyYXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICdWaWxsIGR1IHZlcmtsaWdlbiDDpXRlcnN0w6RsbGEgZGVuIGjDpHIgw6RuZHJpbmdlbj8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoZS5nLiAxMCo1MTU1IG9yIDEwNTY1OCopJ30gPSAnKHQuZXguIDEwKjUxNTUgZWxsZXIgMTA1NjU4KiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICd0LmV4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICfDhG5kcmEgbWFwcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyhmw7ZyZS9lZnRlciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnKG1lbGxhbiknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAnU3BhcmEgw6RuZHJpbmcgc29tIG1hbGwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnRW4gbWFsbCBib3JkZSBoYSBldHQgbmFtbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuJ30gPSAnTmFtbiBww6UgbWFsbGVuIGtyw6R2cy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAnw4V0ZXJzdMOkbGwgc3RhdHVzYXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnU2tyaXYgw7Z2ZXIgb3JkaW5hcmllIG1hbGxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnUmFkZXJhIG9yZGluYXJpZSDDpG5kcmluZyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluZm9ybWF0aW9uJ30gPSAnw4RuZHJhIGluZm9ybWF0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnRlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3IocyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCJ30gPSAnQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCd9ID0gJ1NlbmFzdCDDpG5kcmFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDQUIgVGVtcGxhdGUnfSA9ICdSZWRpZ2VyYSBDQUItbWFsbCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ0RldCBow6RyIGtvbW1lciBhdHQgc2thcGEgZW4gbnkgw6RuZHJpbmcgZnLDpW4gZGVuIGjDpHIgbWFsbGVuIHPDpSBhdHQgZHUga2FuIHJlZGlnZXJhIG9jaCBzcGFyYSBkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnRGVuIG55YSDDpG5kcmluZ2VuIGtvbW1lciBhdHQgcmFkZXJhcyBhdXRvbWF0aXNrdCBlZnRlciBhdHQgZGVuIGhhciBibGl2aXQgc3BhcmFkIHNvbSBtYWxsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ0RldCBow6RyIGtvbW1lciBhdHQgc2thcGEgZW4gbnkgYXJiZXRzb3JkZXIgZnLDpW4gbWFsbGVuIHPDpSBhdHQgZHUga2FuIHJlZGlnZXJhIG9jaCBzcGFyYSBkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcG9yYXJ5IGNoYW5nZSB3aWxsIGJlIGNyZWF0ZWQgd2hpY2ggY29udGFpbnMgdGhlIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJ0VuIHRpbGxmw6RsbGlnIMOkbmRyaW5nIHNvbSBpbm5laMOlbGxlciBhcmJldHNvcmRlcm4ga29tbWVyIGF0dCBza2FwYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nfSA9ICdWaWxsIGR1IGZvcnRzw6R0dGE/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAnUmVkaWdlcmEgaW5uZWjDpWxsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICdJbnN0cnVrdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJ09naWx0aWcgYXJiZXRzb3JkZXJ0eXAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJ09naWx0aWd0IGZvcm1hdC4nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgV29ya29yZGVyIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBXb3Jrb3JkZXIgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIENvbmRpdGlvbihzKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBmb2xsb3dpbmcgd29ya29yZGVycyBhY2NvcmRpbmdseSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGUgcGxhbm5lZCBlbmQgdGltZSBvZiB0aGlzIHdvcmtvcmRlciBpcyBjaGFuZ2VkLCB0aGUgcGxhbm5lZCBzdGFydCB0aW1lcyBvZiBhbGwgZm9sbG93aW5nIHdvcmtvcmRlcnMgd2lsbCBiZSBjaGFuZ2VkIGFjY29yZGluZ2x5J30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzLSVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byB0YWtlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBXb3Jrb3JkZXIgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEluZm9ybWF0aW9uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBBZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biBub3RpZmljYXRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgbm90aWZpY2F0aW9uLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIFVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBJVFNNIENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biBjaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gd29ya29yZGVyIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRW5kVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxTdGFydFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIE92ZXJ2aWV3ICglcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVJlc2V0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoIFJlc3VsdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSAlcyBvZiBhbGwgd29ya29yZGVycyBoYXMgdG8gYmUgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB0ZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCB3b3Jrb3JkZXIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSB0aGUgd29ya29yZGVyICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBmaW5kIENoYW5nZSBmb3IgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSBab29tJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uICVzIG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpdGxlOiAlcyB8IFR5cGU6ICVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ0FCcyd9ID0gJ01pbmEgQ0FCXCdhcic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDaGFuZ2VzJ30gPSAnTWluYSDDpG5kcmluZ2FyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IFdvcmsgT3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgRGVsZXRlZCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENvbmRpdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIENvbmRpdGlvbnMgb2YgQ2hhbmdlIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQ29uZGl0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRXhwcmVzc2lvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBFeHByZXNzaW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChFeHByZXNzaW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSAlczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0lUU01Db25kaXRpb24vT2JqZWN0L0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FsbCd9ID0gJ2FsbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAnbsOlZ29uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICdlZnRlcmZyw6VnYWRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAnaW52w6RudGFyIGdvZGvDpG5uYW5kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJ25la2FkZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICdnb2Rrw6RuZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJ3DDpWfDpXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJ2x5Y2tvc2FtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJ21pc3NseWNrYWRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJ2F2YnJ1dGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAnc2thcGFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnYWNjZXB0ZXJhZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJ3JlZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92YWwnfSA9ICdnb2Rrw6RubmFuZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnd29ya29yZGVyJ30gPSAncHJvZHVrdGlvbnNvcmRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnYmVzbHV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICfDpHInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnw6RyIGludGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICfDpHIgdG9tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJ8OkciBpbnRlIHRvbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICfDpHIgc3TDtnJyZSDDpG4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnw6RyIG1pbmRyZSDDpG4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnw6RyIGbDtnJlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGFmdGVyJ30gPSAnw6RyIGVmdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAnaW5uZWjDpWxsZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnaW5uZWjDpWxsZXIgaW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJ2LDtnJqYXIgbWVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJ3NsdXRhciBtZWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAnc3TDpGxsIGluJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB3b3Jrb3JkZXIgc3RhdGVzLCBhdCB3aGljaCB0aGUgQWN0dWFsU3RhcnRUaW1lIG9mIGEgd29ya29yZGVyIHdpbGwgYmUgc2V0IGlmIGl0IHdhcyBlbXB0eSBhdCB0aGlzIHBvaW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnTMOkZ2cgdGlsbCBhcmJldHNvcmRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJ0zDpGdnIHRpbGwgZnLDpW4gbWFsbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAnw4RuZHJhIHNjaGVtYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJ1NrYXBhIGbDtnLDpG5kcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnSVRTTS1mw7Zyw6RuZHJpbmdhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q0FCIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15Q2hhbmdlcyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeVdvcmtvcmRlcnMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ0FCLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQgQ29udGVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGNsZWFucyB1cCBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGNhY2hlIGZvciBhIHRvb2xiYXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IG1hdGNoZXMgY29uZGl0aW9ucyBhbmQgZXhlY3V0ZXMgYWN0aW9ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIGJ1aWxkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBhbGwgd29ya29yZGVycyBpbiB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgKGZyb20gdGVtcGxhdGUpJ30gPSAnTnkgKGZyw6VuIG1hbGwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnw5Z2cmlnYSBpbnN0w6RsbG5pbmdhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJ1PDtmsgZWZ0ZXIgw6RuZHJpbmdhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnVGEgYXJiZXRzb3JkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgQUNMIG1vZHVsZSByZXN0cmljdHMgdGhlIHVzdWFnZSBvZiB0aGUgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHN5c2NvbmZpZyBvcHRpb24gXCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJywgdG8gdXNlcnMgb2YgdGhlIGdyb3VwcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpSZXN0cmljdFRpY2tldFR5cGVzOjpHcm91cHMiLiBBcyB0aGlzIEFDTCBjb3VsZCBjb2xsaWRlIHdpdGggb3RoZXIgQUNMcyB3aGljaCBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSB0aWNrZXQgdHlwZSwgdGhpcyBzeXNjb25maWcgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCBpZiBuZWVkZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZCAoZnJvbSB0ZW1wbGF0ZSkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/sw_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3dfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ0thdGVnb3JpYeKGlCBBdGhhcmnihpQgS2lwYXVtYmVsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnU2ltYW1pYSBtYXRva2VvIHlhIGtpcGF1bWJlbGUgY2hhIEthdGVnb3JpYSB6aW5hem9jaGFuZ2FueXdhIOKGlCBBdGhhcmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICdVdGVuZ2FqaSB3YSBraXBhdW1iZWxlJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VNYW5hZ2VtZW50IE5vdGlmaWNhdGlvbiBNYW5hZ2VtZW50J30gPSAnVXNpbWFtaXppIHdhIFRhYXJpZmEgemEgSVRTTSBVc2ltYW1pemlNYWJhZGlsaWtvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJ09uZ2V6YSBTaGVyaWEgeWEgVGFhcmlmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Egbm90aWZpY2F0aW9uIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdUYWFyaWZhIGxhemltYSBpd2UgbmEgamluYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmFtZSBpcyByZXF1aXJlZC4nfSA9ICdKaW5hIGxpbmF0YWtpd2EuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTVN0YXRlTWFjaGluZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gU3RhdGUgTWFjaGluZSd9ID0gJ01hc2hpbmUgeWEgSGFsaSB5YSBNc2ltYW1pemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICdDaGFndWEgdGFiYWthIGxhIGthdGFsb2dpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGFsb2cgY2xhc3MgaXMgcmVxdWlyZWQhJ30gPSAnVGFiYWthIGxhIGthdGFsb2dpIGxpbmF0YWtpd2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICdPbmdlemEgbXBpdG8gd2EgaGFsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAnVGFiYWthIEthdGFsb2dpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAnSmluYSBsYSBLaXR1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAnTWFwaXRpbyB5YSBtYXBpdG8geWEgaGFsaSB5YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnRnV0YSBoYWxpIGhpaSB5YSBtcGl0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICdPbmdlemEgaGFsaSBtcHlhIHlhIG1waXRvIHlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICdUYWZhZGhhbGkgY2hhZ3VhIGhhbGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJ1RhZmFkaGFsaSBjaGFndWEgaGFsaSBpbmF5b2Z1YXRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICdIYXJpcmkgaGFsaSB5YSBtcGl0byB5YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnS3dlbGkgdW5hdGFrYSBrdWZ1dGEgaGFsaSB5YSBtcGl0byc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDaGFuZ2UnfSA9ICdPbmdlemEgTWFiYWRpbGlrbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSd9ID0gJ01hYmFkaWxpa28geWEgSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKdXN0aWZpY2F0aW9uJ30gPSAnVWhhbGFsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnB1dCBpbnZhbGlkLid9ID0gJ0luZ2l6byBiYXRpbGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnVGFyZWhlIElsaXlvb21id2EnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnQ2hhZ3VhIEJhZGlsaSBLaW9sZXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJ0FpbmEgeWEgbXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICdBaW5hIGJhdGlsaSB5YSBtdWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdGltZSd9ID0gJ01kYSBtcHlhJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBDQUIgYXMgdGVtcGxhdGUnfSA9ICdIaWZhZGhpIE1hYmFkaWxpa28geWEgQ0FCIGthbWEga2lvbGV6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJ25lbmRhIGt3ZW55ZSBza3JpbmkgeWEgd2F0dSB3YW5hb2h1c2lrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICdKaW5hIEJhdGlsaSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbnMgYW5kIEFjdGlvbnMnfSA9ICdNYXNoYXJ0aSBuYSBWaXRlbmRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICdGdXRhIFNoYXJ0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJ09uZ2V6YSBzaGFydGkgamlweWEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnSW5haGl0YWppIGppbmEgaGFsYWxpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICdKaW5hIGxpbWVqaXJ1ZGlhOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJ0hpbGkgamluYSB0YXlhcmkgbGltZXR1bWlrYSBuYSBzaGFydGkgamluZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICdMaW5nYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FueSBleHByZXNzaW9uIChPUiknfSA9ICdVc2VtaSB3b3dvdGUgKEFVKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICdTbWkgem90ZSAoTkEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb25zJ30gPSAnU2VtaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJ0tpdGV1emknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICdPcGVyZXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBFeHByZXNzaW9uJ30gPSAnRnV0YSBVc2VtaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICdIYWt1bmEgU2VtaSB6aWxpem9wYXRpa2FuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnT25nZXphIHVzZW1pIG1weWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEFjdGlvbid9ID0gJ0Z1dGEgS2l0ZW5kbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBBY3Rpb25zIGZvdW5kLid9ID0gJ0hha3VuYSB2aXRlbmRvIHZpbGl2eW9wYXRpa2FuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICdPbmdlemEga2l0ZW5kbyBraXB5YSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjaGFuZ2U/J30gPSAnS3dlbGkgdW5hdGFrYSBrdWZ1dGEgbWFiYWRpbGlrbyBoYXlhPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ01hdWRodWkgeWEgaGlzdG9yaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAnT2RhIHlhIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ011ZGEgd2Ega3V0ZW5nZW5lemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBkZXRhaWxzJ30gPSAnT255ZXNoYSB1bmRhbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICdPbnllc2hhIG9kYSB5YSBrYXppJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnUmVrZWJpc2h3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbGQgVmFsdWUnfSA9ICdUaGFtYW5pIHlhIFphbWFuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICdUaGFtYW5pIE1weWEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnV2F0dSB3YWxpb2h1c2lrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VyJ30gPSAnTWVuZWphTWFiYWRpbGlrbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnTXR1bWlhamkgYmF0aWxpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVyJ30gPSAnTWplbnppTWFiYWRpbGlrbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQWR2aXNvcnkgQm9hcmQnfSA9ICdCb2RpIHlhIFVzaGF1cmkgeWEgTWFiYWRpbGlrbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgVGVtcGxhdGUnfSA9ICdLaW9sZXpvIGNoYSBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICdPbWJhIEtpb2xlem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICdLaW9sZXpvIEtpcHlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgdGhpcyBDQUIgYXMgdGVtcGxhdGUnfSA9ICdIaWZhZGhpIGhpaSBDQUIga2FtYSBraW9sZXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICdPbmdlemEga3dhIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICdNdHVtaWFqaSBCYXRpbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICdDQUIgeWEgc2FzYSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ01pcGFuZ2lsaW8geWEgTXVrdGFkaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlcyBwZXIgcGFnZSd9ID0gJ01hYmFkaWxpa28ga3dhIGt1cmFzYSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJ01lbmVqYSBNamVuemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICdNZW5lamEgTWFiYWRpbGlrbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAnT2RhIHphIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJ011ZGEgVWxpb29tYndhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJ0t3ZWxpIHVuYXRha2Ega3V3ZWthIHVweWEgbWFiYWRpbGlrbyBoYXlhPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcobWYuIDEwKjUxNTUgYXUgMTA1NjU4KiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICdtZi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnQmFkaWxpIEthdGVnb3JpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyhrYWJsYS9iYWFkYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnKGthdGlrYXRpKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICdIaWZhZGhpIE1hYmFkaWxpa28ga2FtYSBLaW9sZXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ0tpb2xlem8gbGF6aW1hIGtpd2UgbmEgamluYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuJ30gPSAnSmluYSBsYSBraW9sZXpvIGxpbmFoaXRhamlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAnU2V0aSBVcHlhIEhhbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnQW5kaWthIGp1dSB5YSBraW9sZXpvIGhhbGlzaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnRnV0YSBtYWJhZGlsaWtvIGhhbGlzaSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QnfSA9ICdTb2dlemEgS2lwZW5nZWxlIGNoYSBNdWRhJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJ0JhZGlsaSBUYWFyaWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnRlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3IocyknfSA9ICdCYWRpbGkgVmlhbnppc2hpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJ0NBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICdNYXJhIHlhIG13aXNobyBpbWViYWRpbGlzaHdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ01hcmEgeWEgbXdpc2hvIGltZWJhZGlsaXNod2EgbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ1Bha3VhIEtpYW1iYXRhbmlzaG8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJ0hhcmlyaSBraW9sZXpvIGNoYSBDQUInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFuZ2UgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICdIaWkgaXRhdGVuZ2VuZXphIG1hYmFkaWxpa28gbWFweWEga3V0b2thIGt3ZW55ZSBoaWtpIGtpb2xlem8sIGlsaSB1d2V6ZSBrdWhhcmlyaSBuYSBrdWhpZmFkaGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnTWFiYWRpbGlrbyBtYXB5YSB5YXRhZnV0d2Ega2lvdG9tYXRpa2kgYmFhZGEgeWEga3VoaWZhZGhpd2Ega2FtYSBraW9sZXpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ0hpaSBpdGF0ZW5nZW5lemEgb2RhIG1weWEgeWEga2F6aSBrdXRva2Ega3dlbnllIGtpb2xlem8gaGlraSwgaWxpIHV3ZXplIGt1aWhhcmlyaSBuYSBrdWloaWZhZGhpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdNYWJhZGlsaWtvIHlhIG11ZGEgeWF0YXRlbmdlbmV6d2EgeWVueWUgb2RhIHlhIGthemkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICdNYWJhZGlsaWtvIHlhIG11ZGEgbmEgb2RhIHlhIGthemkgbXB5YSB5YXRhZnV0d2Ega2lvdG9tYXRpa2kgYmFhZGEgeWEgb2RhIHlhIGthemkga3VoaWZhZGhpd2Ega2FtYSBraW9sZXpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJ1VuYXRha2Ega3VlbmRlbGVhPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJ0hhcmlyaSBNYXVkaHVpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICdNZWxla2V6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJ0FpbmEgYmF0aWxpIHlhIG9kYSB5YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnTXVkYSB1bGlvcGFuZ3dhIHdhIGt1YW56YSB1bmF0YWtpd2Ega3V3YSBrYWJsYSB5YSBtdWRhIHVsaW9wYW5nd2Egd2Ega3VtYWxpemEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJ1VtYml6byBiYXRpbGkuJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJ0NoYWd1YSBLaW9sZXpvIGNoYSBPZGEgeWEga2F6aSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/J30gPSAnS3dlbGkgdW5hdGFrYSBrdWZ1dGEgb2RhIGhpaSB5YSBrYXppPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJ0h1d2V6aSBrdWZ1dGEgb2RhIGhpaSB5YSBrYXppLiBJbmF0dW1pa2EgamFwbyBrd2VueWUgc2hhcnRpIG1vamEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICdIaWkgb2RhIHlhIGthemkgaW5hdHVtaWthIGt3ZW55ZSBNYXNoYXJ0aSB5YWZ1YXRheW8uJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnSGFtaXNoYSBvZGEgemEga2F6aSB6aWZ1YXRhem8gaXBhc2F2eW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnS2FtYSBtdWRhIHdhIGt1bWFsaXphIHdhIG9kYSB5YSBrYXppIGhpaSB1bWViYWRpbGlzaHdhLCBtdWRhIHdhIGt1YW56YSB3YSBvZGEgemEga2F6aSB6b3RlIHppbmF6b2Z1YXRhIHppdGFiYWRpbGlrYSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJ1JpcG90aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICdNdWRhIGhhbGlzaSB3YSBrdWFuemEgbGF6aW1hIHV3ZSBrYWJsYSB5YSBtdWRhIGhhbGlzaSB3YSBrdW1hbGl6YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnTXVkYSBoYWxpc2kgd2Ega3VhbnphIGxhemltYSB1c2V0aXdlLCBwYWxlIG11ZGEgd2Ega3VtYWxpemEgdW1lc2V0aXdhISc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnV2FrYWxhIHdhIHNhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnS3dlbGkgdW5hdGFrYSBrdWNodWt1YSBvZGEgaGlpIHlhIGthemk/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJ0hpZmFkaGkgT2RhIHlhIGthemkga2FtYSBLaW9sZXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnRnV0YSBvZGEgaGFsaXNpIHlhIGthemkgKG5hIG1hYmFkaWxpa28geWFuYXlvaXp1bmd1a2EpJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJ1RhYXJpZmEgeWEgT2RhIHlhIGthemknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJ09kYSB5YSBrYXppIHlhIElUU00nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyTnVtYmVyJ30gPSAnTmFtYmFyaVlhT2RhWWFLYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclRpdGxlJ30gPSAnS2ljaHdhIGNoYSBoYWJhcmkgY2hhIE9kYSB5YSBLYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gd29ya29yZGVyIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlJ30gPSAnQmFkaWxpSGFsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnSnVodWRpSWxpeW9wYW5nd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZFRpbWUnfSA9ICdNdWRhVWxpb29tYndhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRTdGFydFRpbWUnfSA9ICdNdWRhS3VhbnphVWxpb3Bhbmd3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRW5kVGltZSd9ID0gJ011ZGFLdWlzaGFVbGlvcGFuZ3dhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJ011ZGFIYWxpc2lLdWFuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJ011ZGFIYWxpc2lLdW1hbGl6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaW1lJ30gPSAnQmFkaWxpc2hhTXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICdCYWRpbGlOYW1iYXJpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnSGFsaVlhT2RhWWFLYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICdBaW5hWWFPZGFZYUthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICdXYWthbGFXYU9kYVlhS2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAnQmFkaWxpIEtpY2hhIGNoYSBIYWJhcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ09kYSB6YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnQ0FCIHphbmd1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICdNYWJhZGlsaWtvIFlhbmd1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IFdvcmsgT3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgRGVsZXRlZCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENvbmRpdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIENvbmRpdGlvbnMgb2YgQ2hhbmdlIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQ29uZGl0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRXhwcmVzc2lvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBFeHByZXNzaW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChFeHByZXNzaW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSAlczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0lUU01Db25kaXRpb24vT2JqZWN0L0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FsbCd9ID0gJ3lvdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAneW95b3RlJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICdvbWJ3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAna2liYWxpIGtpbmFzdWJpcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICdrYXRhbGl3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJ2t1YmFsaXdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAna3dlbnllIG1hZW5kZWxlbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJ3BpciBpbmFzdWJpcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc3VjY2Vzc2Z1bCd9ID0gJ21hZmFuaWtpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydmYWlsZWQnfSA9ICdTaGluZHdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnc2l0aXNod2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmV0cmFjdGVkJ30gPSAnb25kb2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJ3RlbmdlbmV6d2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWNjZXB0ZWQnfSA9ICdrdWJhbGl3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJ3RheWFyaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ2tpYmFsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICdvZGEgeWEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAna3VqaXRvYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJ21hYW11emknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGlyJ30gPSAnYmFhZGEgeWEgdXRla2VsZXphamkgd2EgbWFwaXRpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICduaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QnfSA9ICdzaXlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnbmkgdHVwdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICdzaXlvIHR1cHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnbmkga3Vid2EgemFpZGkgeWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnbmkgbmRvZ28gemFpZGkgeWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYmVmb3JlJ30gPSAnbmkga2FibGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICduaSBiYWFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJ3Z5ZW55ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICdoYWluYSBraXR1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnaW5hYW56YSBuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICdpbmFpc2hpYSBuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICdzZXRpJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAnU2F3YSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJ09yb2RoYSB5YSBtYXdha2FsYSB3ZW55ZSBydWh1c2EgeWEga3VjaHVrdWEgb2RhIHphIGthemkuIE11aGltdSBuaSBqaW5hIGxhIGt1aW5naWEuIElsaXlvbW8gbmkgMCBhdSAxLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJ09yb2RoYSB5YSBoYWxpIHphIG9kYSB5YSBrYXppLCBhbWJhcG8gTXVkYUhhbGlzaUt1YW56YSB3YSBvZGEgeWEga2F6aSB1dGFzZXRpd2Ega2FtYSB1bGlrdXdhIHdhemkga2F0aWthIHBvaW50aSBoaWkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyJ30gPSAnT25nZXphIE9kYSB5YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZSBmcm9tIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciAoZnJvbSB0ZW1wbGF0ZSkgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBmcm9tIHRlbXBsYXRlJ30gPSAnT25nZXphIGt1dG9rYSBrd2VueWUga2lvbGV6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICdNc2ltYW1pemkgd2EgbWF0cmlraSB5YSBDSVAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJ01zaW1hbWl6aSB3YSBtYXNoaW5lIHlhIGhhbGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICdNb2R1bGkgdGFhcmlmYSB5YSBraW9sZXN1cmEgY2hhIHdha2FsYSBrdW9ueWVzaGEgaWRhZGkgeWEgYm9kaSB6YSB1c2hhdXJpIHdhIG1hYmFkaWxpa28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsaSB0YWFyaWZhIHlhIGtpb2xlc3VyYSBjaGEgd2FrYWxhIGt1b25hIGlkYWRpIHlhIG1hYmFkaWxpa28geWFuYXlvc2ltYW1pd2EgbmEgbXR1bWlhamkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICdNb2R1bGkgdGFhcmlmYSB5YSBraW9sZXN1cmEgY2hhIHdha2FsYSBrdW9uYSBpZGFkaSB5YSBtYWJhZGlsaWtvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBNZW1iZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50IHRvb2xiYXJzLiBEZWZhdWx0OiAzIGhvdXJzICgxODAgbWludXRlcykuJ30gPQogICAgICAgICdNdWRhIHdhIGhpZmFkaGkgbXVkYSBrd2EgZGFraWthIGt3YSBhamlsaSB5YSBtd2FtYmFhIHphbmEgemEgdXNpbWFtaXppIHdhIG1hYmFkaWxpa28uIENoYWd1by1tc2luZ2k6IE1hc2FhIDMgKERha2lrYSAxODApLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnTXVkYSB3YSBoaWZhZGhpIG11ZGEga3dhIGRha2lrYSBrd2EgYWppbGkgeWEgdXNpbWFtaXppIHdhIG1hYmFkaWxpa28uIENoYWd1by1tc2luZ2k6IFNpa3UgNSAoRGFraWthIDcyMDApLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnTWFwaXRpbyB5YSBNYWJhZGlsaWtvIEtpa29tbyAiY2hhIGNoaW5pIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAnQmFkaWxpIFJhdGliYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnS2lwYW5nYSBuamlhIGNoYSBtYXppbmdpcmEgeWEgbnl1bWEgeWEga2lvbGVzdXJhIGNoYSB3YWthbGEgY2hhIGt1dGFmdXRhIG1hYmFkaWxpa28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICdTaGFydGkgSGFyaXJpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmUgd2hpY2ggc2NyZWVuIHNob3VsZCBiZSBzaG93biBhZnRlciBhIG5ldyB3b3Jrb3JkZXIgaGFzIGJlZW4gY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWd1cmVzIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB3aGVuIHBsYW5uZWQgdGhlIHN0YXJ0IHRpbWUgb3Igb3RoZXIgdGltZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWNoZWQvcGFzc2VkLid9ID0KICAgICAgICAnSW5hIHNhbmlkaSBuaSBrd2EgbWFyYSBuZ2FwaSB0YWFyaWZhIHppbmF0dW13YSBwYWxlIG11ZGEgdWxpb3Bhbmd3YSB3YSBrdWFuemEgYXUgbWlkYSBtaW5naW5lIGluYXBvZmlraXdhL2t1cGl0d2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICdUZW5nZW5lemEgTWFiYWRpbGlrbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICdDaGFndW8tbXNpbmdpIGxhIGFpbmEgeWEgb2RhIHlhIGthemkuIEhpbGkgaW5naXpvIGxhemltYSBsaXdlcG8ga2F0aWthIHRhYmFrYSBsYSBrYXRhbG9naSBsYSB1anVtbGEgXCdJVFNNOjpVc2ltYW1pemlNYWJhZGlsaWtvOjpPZGEgeWEgS2F6aTo6QWluYVwnIC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJ0ZhZmFudWEgaXNoYXJhIGt3YSBraWxhIGhhbGkgeWEgb2RhIHlhIGthemkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnSW5hZmFmYW51YSBtb2R1bGkgeWEgbWFwaXRpbyBrdW9ueWVzaGEgbXVvbmVrYW5vIG1kb2dvIHdhIG9yb2RoYSB5YSBtYWJhZGlsaWtvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgbW9kdWxpIHlhIG1hcGl0aW8ga3Vvbnllc2hhIG11b25la2FubyBtZG9nbyB3YSBvcm9kaGEgeWEga2lvbGV6by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICdJbmFmYWZhbnVhIGthbWEgaXRhd2V6ZWthbmEga3VmYWZhbnVhIG11ZGEgd2EgdWhhc2lidS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBwbGFubmVkIGVmZm9ydC4nfSA9ICdJbmFmYWZhbnVhIGthbWEgaXRhd2V6ZWthbmEga3VjaGFwaXNoYSBqdWh1ZGkgemlsaXpvcGFuZ3dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICdJbmFmYWZhbnVhIGthbWEgaGFsaSB6YSBtd2lzaG8gemEgbWFiYWRpbGlrbyB6aW5hem9wYXRpa2FuYSAoa2FtYSBpbGl2eW9mYWZhbnVsaXdhIG5hIG1hc2hpbmUgeWEgaGFsaSkgemlydWh1c2l3ZSBrYW1hIG1hYmFkaWxpa28geWFrbyBrd2VueWUgaGFsaSBpbGl5b2Z1bmd3YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnSW5hZmFmYW51YSBrYW1hIGhhbGkgemEgbXdpc2hvIHphIG9kYSB6YSBrYXppIHppbmF6b3BhdGlrYW5hIChrYW1hIGlsaXZ5b2ZhZmFudWxpd2EgbmEgbWFzaGluZSB5YSBoYWxpKSB6aXJ1aHVzaXdlIGthbWEgb2RhIHlhIGthemkgaWtvIGt3ZW55ZSBoYWxpIGlsaXlvZnVuZ3dhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY2NvdW50ZWQgdGltZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnSW5hZmFmYW51YSBrYW1hIG11ZGEgdWxpb2hlc2FiaXdhIHVvbnllc2h3ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICdJbmFmYWZhbnVhIGthbWEgbXVkYSBoYWxpc2kgd2Ega3VhbnphIG5hIGt1bWFsaXphIHVzZXRpd2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzZWFyY2ggYW5kIHRoZSB3b3Jrb3JkZXIgc2VhcmNoIGZ1bmN0aW9ucyBjb3VsZCB1c2UgdGhlIG1pcnJvciBEQi4nfSA9CiAgICAgICAgJ0FtZWZhZmFudWEga2FtYSBDaGFuZ2UgdXRhZnV0YWppIG5hIFdvcmtvcmRlciB0YWZ1dGEga2F6aSBpbmF3ZXphIGt1dHVtaWEga2lvbyBEQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHN0YXRlIGNhbiBiZSBzZXQgaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHBsYW5uZWQgZWZmb3J0IHNob3VsZCBiZSBzaG93bi4nfSA9ICdJbmFmYWZhbnVhIGthbWEganVodWRpIHppbGl6b3Bhbmd3YSB6aW9ueWVzaHdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgcHJpbnQgYnkgY3VzdG9tZXIuJ30gPSAnSW5hZmFmYW51YSBrYW1hIHRhcmVoZSBpbGl5b29tYndhIGljaGFwaXNod2UgbmEgbXRlamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZWFyY2hlZCBieSBjdXN0b21lci4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEga2FtYSB0YXJlaGUgaWxpeW9vbWJ3YSBpdGFmdXR3ZSBuYSBtdGVqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci4nfSA9ICdJbmFmYWZhbnVhIGthbWEgdGFyZWhlIGlsaXlvb21id2EgaXNldGl3ZSBuYSBtdGVqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJ0luYWZhZmFudWEga2FtYSB0YXJlaGUgaWxpeW9vbWJ3YSBpb255ZXNod2UgbmEgbXRlamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaG91bGQgYmUgc2hvd24uJ30gPSAnSW5hZmFmYW51YSBrYW1hIGhhbGkgeWEgb2RhIHlhIGthemkgaW9ueWVzaHdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLid9ID0gJ0luYWZhZmFudWEga2FtYSBraWNod2EgY2hhIGhhYmFyaSBjaGEgb2RhIHlhIGthemkga2lvbnllc2h3ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJ0luYWZhZmFudWEgc2lmYSB6YSBqZWR3YWxpIGxpbGlsb29ueWVzaHdhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEga3dhbWJhIG1hYmFkaWxpa28geWVueWUgb2RhIHphIGthemkgemlsaXpvdW5nYW5pc2h3YSBuYSBodWR1bWEsIGFtYmF6byBtdGVqYSBhbmEgcnVodXNhIHlhIGt1dHVtaWEgeml0YW9ueWVzaHdhLiBNYWJhZGlsaWtvIG1lbmdpbmUgeW95b3RlIGhheWF0YW9ueWVzaHdhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICdJbmFmYWZhbnVhIGhhbGkgemEgbWFiYWRpbGlrbyB6aW5hem9ydWh1c2l3YSBrdWZ1dGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgaGFsaSB6YSBtYWJhZGlsaWtvIGFtYmF6byB6aXRhdHVtaWthIGthbWEgdmljaHVqaW8ga2F0aWthIE1hcGl0aW8geWEgTWFiYWRpbGlrbyB5YSBQU0EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnSW5hZmFmYW51YSBoYWxpIHphIG1hYmFkaWxpa28gYW1iYXpvIHppdGF0dW1pa2Ega2FtYSB2aWNodWppbyBrYXRpa2EgbWFwaXRpbyB5YSBSYXRpYmEgemEgTWFiYWRpbGlrby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgaGFsaSB6YSBtYWJhZGlsaWtvIGFtYmF6byB6aXRhdHVtaWthIGthbWEgdmljaHVqaW8ga2F0aWthIG1hcGl0aW8geWEgTXlDQUIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnSW5hZmFmYW51YSBoYWxpIHphIG1hYmFkaWxpa28gYW1iYXpvIHppdGF0dW1pa2Ega2FtYSB2aWNodWppbyBrYXRpa2EgbWFwaXRpbyB5YSBNYWJhZGlsaWtvWWFuZ3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICdJbmFmYWZhbnVhIGhhbGkgemEgbWFiYWRpbGlrbyBhbWJhem8geml0YXR1bWlrYSBrYW1hIHZpY2h1amlvIGthdGlrYSBtYXBpdGlvIHlhIG1lbmVqYSBtYWJhZGlsaWtvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgaGFsaSB6YSBtYWJhZGlsaWtvIGFtYmF6byB6aXRhdHVtaWthIGthbWEgdmljaHVqaW8ga2F0aWthIG1hcGl0aW8geWEgbWFiYWRpbGlrby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdJbmFmYWZhbnVhIGhhbGkgemEgbWFiYWRpbGlrbyBhbWJhem8geml0YXR1bWlrYSBrYW1hIHZpY2h1amlvIGthdGlrYSBtYXBpdGlvIHlhIHJhdGliYSB6YSBtYWJhZGlsaWtvIHlhIG10ZWphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICdJbmFmYWZhbnVhIGNoYWd1by1tc2luZ2kgbGEga2ljaHdhIGNoYSBoYWJhcmkgY2hhIG1hYmFkaWxpa28ga3dhIGFqaWxpIHlhIG1hYmFkaWxpa28geWEgbWZhbm8gYW1iYXlvIHlhbmFoaXRhamlrYSBrdWhhcmlyaSBraW9sZXpvIGNoYSBvZGEgeWEga2F6aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnSW5hZmFmYW51YSBjaGFndW8tbXNpbmdpIGxhIHZpZ2V6byB2eWEga3VwYW5nYSBrYXRpa2EgbWFwaXRpbyB5YSBtYWJhZGlsaWtvIHlhIFBTQS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgY2hhZ3VvLW1zaW5naSBsYSB2aWdlem8gdnlhIGt1cGFuZ2Ega2F0aWthIG1hcGl0aW8geWEgbWVuZWphIG1hYmFkaWxpa28uICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICdJbmFmYWZhbnVhIGNoYWd1by1tc2luZ2kgbGEgdmlnZXpvIHZ5YSBrdXBhbmdhIGthdGlrYSBtYXBpdGlvIHlhIG1hYmFkaWxpa28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnSW5hZmFmYW51YSBjaGFndW8tbXNpbmdpIGxhIHZpZ2V6byB2eWEga3VwYW5nYSBrYXRpa2EgbWFwaXRpbyB5YSBtYWJhZGlsaWtvIHlhIHJhdGliYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgY2hhZ3VvLW1zaW5naSBsYSB2aWdlem8gdnlhIGt1cGFuZ2Ega2F0aWthIG1hcGl0aW8geWEgbWFiYWRpbGlrbyB5YSBDQUJZYW5ndS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICdJbmFmYWZhbnVhIGNoYWd1by1tc2luZ2kgbGEgdmlnZXpvIHZ5YSBrdXBhbmdhIGthdGlrYSBtYXBpdGlvIHlhIG1hYmFkaWxpa28geWEgTWFiYWRpbGlrb1lhbmd1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgY2hhZ3VvLW1zaW5naSBsYSB2aWdlem8gdnlhIGt1cGFuZ2Ega2F0aWthIG1hcGl0aW8geWEgbWFiYWRpbGlrbyB5YSBPZGFaYW5ndXp6YUthemkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnSW5hZmFmYW51YSBjaGFndW8tbXNpbmdpIGxhIHZpZ2V6byB2eWEga3VwYW5nYSBrYXRpa2EgbWFwaXRpbyB5YSBtYWJhZGlsaWtvIHlhIFBJUi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdJbmFmYWZhbnVhIGNoYWd1by1tc2luZ2kgbGEgdmlnZXpvIHZ5YSBrdXBhbmdhIGthdGlrYSBtYXBpdGlvIHlhIG1hYmFkaWxpa28geWEgcmF0aWJhIHlhIG1hYmFkaWxpa28geWEgbXRlamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdJbmFmYWZhbnVhIGNoYWd1by1tc2luZ2kgbGEgdmlnZXpvIHZ5YSBrdXBhbmdhIGthdGlrYSBtYXBpdGlvIHlhIG1hYmFkaWxpa28geWEga2lvbGV6by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9ICdJbmFmYWZhbnVhIGNoYWd1by1tc2luZ2kgbGEgdXRhcmF0aWJ1IHdhIGt1cGFuZ2Ega2F0aWthIG1hcGl0aW8geWEgQ0FCWWFuZ3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0gJ0luYWZhZmFudWEgY2hhZ3VvLW1zaW5naSBsYSB1dGFyYXRpYnUgd2Ega3VwYW5nYSBrYXRpa2EgbWFwaXRpbyB5YSBNYWJhZGlsaWtvWWFuZ3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnSW5hZmFmYW51YSBjaGFndW8tbXNpbmdpIGxhIHV0YXJhdGlidSB3YSBrdXBhbmdhIGthdGlrYSBtYXBpdGlvIHlhIE9kYVphbmd1emFLYXppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICdJbmFmYWZhbnVhIGNoYWd1by1tc2luZ2kgbGEgdXRhcmF0aWJ1IHdhIGt1cGFuZ2Ega2F0aWthIG1hcGl0aW8geWEgUElSLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPSAnSW5hZmFmYW51YSBjaGFndW8tbXNpbmdpIGxhIHV0YXJhdGlidSB3YSBrdXBhbmdhIGthdGlrYSBtYXBpdGlvIHlhIG1hYmFkaWxpa28geWEgUFNBLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnSW5hZmFmYW51YSBjaGFndW8tbXNpbmdpIGxhIHV0YXJhdGlidSB3YSBrdXBhbmdhIGthdGlrYSBtYXBpdGlvIHlhIG1hYmFkaWxpa28geWEgbWVuZWphLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnSW5hZmFmYW51YSBjaGFndW8tbXNpbmdpIGxhIHV0YXJhdGlidSB3YSBrdXBhbmdhIGthdGlrYSBtYXBpdGlvIHlhIG1hYmFkaWxpa28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnSW5hZmFmYW51YSBjaGFndW8tbXNpbmdpIGxhIHV0YXJhdGlidSB3YSBrdXBhbmdhIGthdGlrYSBtYXBpdGlvIHlhIG1hYmFkaWxpa28geWEgcmF0aWJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgY2hhZ3VvLW1zaW5naSBsYSB1dGFyYXRpYnUgd2Ega3VwYW5nYSBrYXRpa2EgbWFwaXRpbyB5YSBtYWJhZGlsaWtvIHlhIHJhdGliYSB5YSBtdGVqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICdJbmFmYWZhbnVhIGNoYWd1by1tc2luZ2kgbGEgdXRhcmF0aWJ1IHdhIGt1cGFuZ2Ega2F0aWthIG1hcGl0aW8geWEga2lvbGV6by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJ0luYWZhZmFudWEgdGhhbWFuaSB5YSBjaGFndW8tbXNpbmdpIGxhIGthdGVnb3JpYSB5YSBtYWJhZGlsaWtvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJ0luYWZhZmFudWEgdGhhbWFuaSB5YSBjaGFndW8tbXNpbmdpIGxhIGF0aGFyaSB5YSBtYWJhZGlsaWtvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEga2lwaW5kaSAoa3dhIG1pYWthKSwgYW1iYXBvIG11ZGEgd2Ega3VhbnphIG5hIGt1bWFsaXphIGluYXdlemEga3VjaGFndWxpd2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGF0dHJpYnV0ZXMgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIHRvb2x0aXAgb2YgdGhlIHdvcmtvcmRlciBncmFwaCBpbiB0aGUgY2hhbmdlIHpvb20uIFRvIHNob3cgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGluIHRoZSB0b29sdGlwLCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGxpa2UgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJ30gPQogICAgICAgICdJbmFmYWZhbnVhIHNpZmEgemlsaXpvb255ZXNod2EgemEgb2RhIHlhIGthemkga2F0aWthIGtpZG9rZXpvemFuYSBjaGEgamVkd2FsaSBsYSBvZGEgemEga2F6aSBrYXRpa2Ega3V6YSBtYWJhZGlsaWtvLiBLdW9ueWVzaGEgc2VoZW11IHppbmF6b2JhZGlsaWthIHphIG9kYSB5YSBrYXppIGt3ZW55ZSBraWRva2V6b3phbmEsIGxhemltYSB6aXdla3dlIGJheWFuYSBtZmFubyBTZWhlbXVJbmF5b2JhZGlsaWthX09kYVlhS2F6aUppbmFTZWhlbXUxLCBTZWhlbXVJbmF5b2JhZGlsaWthX09kYVlhS2F6aUppbmFTZWhlbXUyLCBuYSBrYWRoLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnSW5hZmFmYW51YSBzYWZ1d2ltYSB6aWxpem9vbnllc2h3YSBrYXRpa2EgbWFwaXRpbyB5YSBNYWJhZGlsaWtvIHlhIFBTQS4gSGlsaSBjaGFndW8gaGFsaW5hIGF0aGFyaSBrd2EgbmFmYXNpIHlhIHNhZnV3aW1hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdJbmFmYWZhbnVhIHNhZnV3aW1hIHppbGl6b29ueWVzaHdhIGthdGlrYSBtYXBpdGlvIHlhIE1hYmFkaWxpa28geWEgUmF0aWJhLiBIaWxpIGNoYWd1byBoYWxpbmEgYXRoYXJpIGt3YSBuYWZhc2kgeWEgc2FmdXdpbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnSW5hZmFmYW51YSBzYWZ1d2ltYSB6aWxpem9vbnllc2h3YSBrYXRpa2EgbWFwaXRpbyB5YSBDQUJaYW5ndS4gSGlsaSBjaGFndW8gaGFsaW5hIGF0aGFyaSBrd2EgbmFmYXNpIHlhIHNhZnV3aW1hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdJbmFmYWZhbnVhIHNhZnV3aW1hIHppbGl6b29ueWVzaHdhIGthdGlrYSBtYXBpdGlvIHlhIE1hYmFkaWxpa29ZYW5ndS4gSGlsaSBjaGFndW8gaGFsaW5hIGF0aGFyaSBrd2EgbmFmYXNpIHlhIHNhZnV3aW1hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdJbmFmYWZhbnVhIHNhZnV3aW1hIHppbGl6b29ueWVzaHdhIGthdGlrYSBtYXBpdGlvIHlhIE9kYVphbmd1WmFLYXppLiBIaWxpIGNoYWd1byBoYWxpbmEgYXRoYXJpIGt3YSBuYWZhc2kgeWEgc2FmdXdpbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgc2FmdXdpbWEgemlsaXpvb255ZXNod2Ega2F0aWthIG1hcGl0aW8geWEgUElSLiBIaWxpIGNoYWd1byBoYWxpbmEgYXRoYXJpIGt3YSBuYWZhc2kgeWEgc2FmdXdpbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnSW5hZmFmYW51YSBzYWZ1d2ltYSB6aWxpem9vbnllc2h3YSBrYXRpa2EgbWFwaXRpbyB5YSBtZW5lamEgbWFiYWRpbGlrby4gSGlsaSBjaGFndW8gaGFsaW5hIGF0aGFyaSBrd2EgbmFmYXNpIHlhIHNhZnV3aW1hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdJbmFmYWZhbnVhIHNhZnV3aW1hIHppbGl6b29ueWVzaHdhIGthdGlrYSBtYXBpdGlvIHlhIG1hYmFkaWxpa28uIEhpbGkgY2hhZ3VvIGhhbGluYSBhdGhhcmkga3dhIG5hZmFzaSB5YSBzYWZ1d2ltYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgc2FmdXdpbWEgemlsaXpvb255ZXNod2Ega2F0aWthIG1hYmFkaWxpa28geWEgdXRhZnV0YWppLiBIaWxpIGNoYWd1byBoYWxpbmEgYXRoYXJpIGt3ZW55ZSBuYWZhc2kgeWEgc2FmdXdpbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgc2FmdXdpbWEgemlsaXpvb255ZXNod2Ega2F0aWthIG1hcGl0aW8geWEgcmF0aWJhIHlhIG1hYmFkaWxpa28geWEgbXRlamEuIEhpbGkgY2hhZ3VvIGhhbGluYSBhdGhhcmkga3dlbnllIG5hZmFzaSB5YSBzYWZ1d2ltYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdJbmFmYWZhbnVhIHNhZnV3aW1hIHppbGl6b29ueWVzaHdhIGthdGlrYSBtYXBpdGlvIHlhIGtpb2xlem8uIEhpbGkgY2hhZ3VvIGhhbGluYSBhdGhhcmkga3dlbnllIG5hZmFzaSB5YSBzYWZ1d2ltYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2lnbmFscyBmb3IgZWFjaCBJVFNNIGNoYW5nZSBzdGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgdGVtcGxhdGUgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICdJbmFmYWZhbnVhIGFpbmEgeWEgdmlvbGV6byBhbWJhdnlvIHZpdGF0dW1pa2Ega2FtYSB2aWNodWppbyBrYXRpa2EgbWFwaXRpbyB5YSBraW9sZXpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgaGFsaSB6YSBvZGEgeWEga2F6aSBhbWJhem8geml0YXR1bWlrYSBrYW1hIHZpY2h1amlvIGthdGlrYSBtYXBpdGlvIHlhIE9kYSB6YW5ndSB6YSBrYXppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgaGFsaSB5YSBvZGEgemEga2F6aSBhbWJhem8geml0YXR1bWlrYSBrYW1hIHZpY2h1amlvIGthdGlrYSBtYXBpdGlvIHlhIFBJUi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgYWluYSB6YSBvZGEgemEga2F6aSBhbWJhem8geml0YXR1bWlrYSBrdW9ueWVzaGEgbWFwaXRpbyB5YSBQSVIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJ0luYWZhZmFudWEga2FtYSB0YWFyaWZhIHppdHVtd2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICdJbmFhbXVhIGthbWEgd2FrYWxhIGFuYXdlemEga3ViYWRpbGlzaGEgamlyYS1YIGxhIHRha3dpbXUga2FtYSBha2l0ZW5nZW5lemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJ0luYWFtdWEga2FtYSBtb2R1bGkgeWEga2F3YWlkYSB5YSB0YWt3aW11IGluYXdlemEga3V0ZW5nZW5lemEgdGFrd2ltdSBrdWh1c3UgbWFiYWRpbGlrbyB5YWxpeW9mYW55d2Ega3dlbnllIG1hdGFiYWthIHlhIHZpcGVuZ2VuZWxlIHZ5YSB1c2FuaWRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnSW5hYW11YSBrYW1hIG1vZHVsaSB5YSB0YWt3aW11IHlhIGthd2FpZGEgaW5hd2V6YSBrdXphbGlzaGEgdGFrd2ltdSBrdWh1c3UgbWFiYWRpbGlrbyBrd2Ega3VhbmdhbGlhIGtpc2FzaXNobyBjaGEgbWFiYWRpbGlrbyB5YSBoYWxpIGt3YSBraXBpbmRpIGNoYSBtdWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyB0aGUgcmVsYXRpb24gYmV0d2VlbiBjaGFuZ2VzIGFuZCBpbmNpZGVudCB0aWNrZXRzLid9ID0KICAgICAgICAnSW5hYW11YSBrYW1hIG1vZHVsaSB5YSB0YWt3aW11IHlhIGthd2FpZGEgaW5hd2V6YSBrdXphbGlzaGEgdGFrd2ltdSBrdWh1c3UgbWFiYWRpbGlrbyBrd2Ega3VhbmdhbGlhIHVodXNpYW5vIGthdGkgeWEgbWFiYWRpbGlrbyBuYSB0aWtldGkgemEgbWF0dWtpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJ0luYWFtdWEga2FtYSBtb2R1bGkgeWEgdGFrd2ltdSB6YSBrYXdhaWRhIGluYXdlemEga3V0ZW5nZW5lemEgdGFrd2ltdSBrdWh1c3UgbWFiYWRpbGlrby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgdGhlIG51bWJlciBvZiBSZmMgdGlja2V0cyBhIHJlcXVlc3RlciBjcmVhdGVkLid9ID0KICAgICAgICAnSW5hYW11YSBrYW1hIG1vZHVsaSB5YSB0YWt3aW11IHphIGthd2FpZGEgaW5hd2V6YSBrdXRlbmdlbmV6YSB0YWt3aW11IGt1aHVzdSBpZGFkaSB5YSB0aWtldGkgemEgUmZjIHppbGl6b3RlbmdlbmV6d2EgbmEgbXVvbWJhamkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIChmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycykgc2hvd24gaW4gdGhlIGNoYW5nZSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHJlcG9ydCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pY0ZpZWxkIGV2ZW50IG1vZHVsZSB0byBoYW5kbGUgdGhlIHVwZGF0ZSBvZiBjb25kaXRpb25zIGlmIGR5bmFtaWMgZmllbGRzIGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLid9ID0KICAgICAgICAnTW9kdWxpIHlhIG1hdHVraW8geWEgU2VoZW11WmluYXpvYmFkaWxpa2Ega3VzaHVnaHVsaWtpYSB1c2FzaXNoYWppIHdhIG1hc2hhcnRpIGthbWEgc2VoZW11IHppbmF6b2JhZGlsaWthIHppbWVvbmdlendhLCB6aW1lc2FzaXNod2EgYXUga3VmdXR3YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnTWFiYWRpbGlrbyB5YSBJVFNNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnTW9kdWxpIHlhIG1hdHVraW8geWEgSVRTTSBpbmFvbmRvYSBtYXNoYXJ0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJ01vZHVsaSB5YSBtYXR1a2lvIHlhIElUU00gaW5hZnV0YSBoaWZhZGhpIG11ZGEgeWEgbXdhbWJhYSB6YW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICdNb2R1bGkgeWEgbWF0dWtpbyB5YSBJVFNNIGluYXlvbGFuZGFuaXNoYSBtYXNoYXJ0aSBuYSBrdXRla2VsZXphIHZpdGVuZG8uICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHNlbmRzIG5vdGlmaWNhdGlvbnMuJ30gPSAnTW9kdWxpIHlhIG1hdHVraW8geWEgSVRTTSBpbmF5b3R1bWEgdGFhcmlmYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnTW9kdWxpIHlhIG1hdHVraW8geWEgSVRTTSBpbmF5b3Nhc2lzaGEgaGlzdG9yaWEgeWEgbWFiYWRpbGlrby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnTW9kdWxpIHlhIG1hdHVraW8geWEgSVRTTSBpbmF5b3BpZ2EgdXB5YSBoZXNhYnUgeWEgbmFtYmFyaSB5YSBvZGEgemEga2F6aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gc2V0IHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBvZiB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnTW9kdWxpIHlhIG1hdHVraW8geWEgSVRTTSBpbmF5b3NldGkgbXVkYSBoYWxpc2kgd2Ega3VhbnphIG5hIGt1bWFsaXphIG9kYSB6YSBrYXppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnQmFkaWxpSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnSVRTTU9kYVlhS2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAnTW9kdWxpIHlhIGt1a2FndWEga2FtYSBPbmdlemFPZGFZYUthemkgYXUgT25nZXphT2RhWWFLYXppS3V0b2thS3dlbnllS2lvbGV6byBpcnVodXNpd2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgQ0FCIG1lbWJlcnMuJ30gPSAnTW9kdWxpIHlhIGt1a2FndWEgd2FzaGlyaWtpIHdhIENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICdNb2R1bGkgeWEga3VrYWd1YSB3YWthbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICdNb2R1bGkgeWEga3VrYWd1YSBtamVuemkgd2EgbWFiYWRpbGlrby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICdNb2R1bGkgeWEga3VrYWd1YSBtZW5lamEgbWFiYWRpbGlrby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnTW9kdWxpIHlhIGt1a2FndWEgd2FrYWxhIHdhIG9kYSB6YSBrYXppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciBubyB3b3Jrb3JkZXIgYWdlbnQgaXMgc2V0Lid9ID0gJ01vZHVsaSB5YSBrdWthZ3VhIGthbWEgaGFrdW5hIHdha2FsYSB3YSBvZGEgeWEga3ppIGFsaXllc2V0aXdhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuJ30gPQogICAgICAgICdNb2R1bGkgeWEga3VrYWd1YSBrYW1hIHdha2FsYSB5dW1vIGt3ZW55ZSBvcm9kaGEgeWEgdXNhbmlkaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIHNob3cgYSBsaW5rIHRvIGNyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0LiBUaGUgdGlja2V0IHdpbGwgYmUgYXV0b21hdGljYWxseSBsaW5rZWQgd2l0aCB0aGUgbmV3IGNoYW5nZS4nfSA9CiAgICAgICAgJ01vZHVsaSB5YSBrdW9ueWVzaGEga2l1bmdvIGNoYSBrdXRlbmdlbmV6YSBtYWJhZGlsaWtvIGt1dG9rYSBrd2VueWUgaGlpIHRpa2V0aS4gVGlrZXRpIGl0YXVuZ2FuaXNod2Ega2lvdG9tYXRpa2kgbmEgbWFiYWRpbGlrbyBtYXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgYWxsIHdvcmtvcmRlcnMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IChmcm9tIHRlbXBsYXRlKSd9ID0gJ01weWEgKGt1dG9rYSBrd2VueWUga2lvbGV6byknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdXYXR1bWlhamkgd2EgbWFrdW5kaSBoYXlhIHR1IHdhbmEgcnVodXNhIHlhIGt1dHVtaWEgYWluYSBoaWkgeWEgdGlrZXRpIGthbWEgaWxpdnlvZmFmYW51bGl3YSBrYXRpa2EgIkJhZGlsaWtvIGxhIElUU006Ok9uZ2V6YSBhaW5hIHphIHRpa2V0aSB6YSBraXVuZ28gY2hhIGJhZGlsaWtvIiBrYW1hIGtpcGVuZ2VsZSAiVGlrZXRpOjpBY2w6Ok1vZHVsaSMjIzIwMC1UaWtldGk6OkFjbDo6TW9kdWxpIiBraW1ld2V6ZXNod2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J090aGVyIFNldHRpbmdzJ30gPSAnTWlwYW5naWxpbyBtaW5naW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgYWxsIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KSd9ID0gJ0JhYWRhIHlhIHV0ZWtlbGV6YWppIHdhIG1hcGl0aW8gKFBJUiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1ZpZ2V6byBrd2EgYWppbGkgeWEga2lwZW5nZWxlIEJhcmFrb2EgaWpheW8geWEgbXBhbmdpbGlvIGthemkgd2Ega3V0ZW5nZW5lendhIG5hIG10dW1pYWppIGthdGlrYSBtYW5kaGFyaSB5YSBtYXBlbmRlbGVvIHlhIGtpb2xlc3VyYSBjaGEgd2FrYWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1ZpZ2V6byBrd2EgYWppbGkgdnlhIGt1cmFzYShhbWJhcG8gdGlrZXRpIHppbmFvbnllc2h3YSkgemEgbWFwaXRpbyB5YSBtYWJhZGlsaWtvIG1hZG9nby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICdGYW55YSBraXRlY25kbyBjaGEgdXNhbmlkaXNod2FqaSBrd2Ega2lsYSB0dWtpbyAoa2FtYSBLaWNob2NoZXppKSBrd2Ega2lsYSBodWR1bWEgeWEgd2F2dXRpIGlsaXlvc2FuaWRpd2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICdVcGVuZGVsZW8gdW5hb3Rha2l3YSBpbGkgd2FrYWxhIGFjaHVrdWUgb2RhIHlhIGthemkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICdVcGVuZGVsZW8gdW5hb3Rha2l3YSBpbGkga3VmaWtpYSBtYXBpdGlvIHlhIG1hYmFkaWxpa28geW90ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnVXBlbmRlbGVvIHVuYW90YWtpd2EgaWxpIGt1b25nZXphIG9kYSB5YSBrYXppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdWJhZGlsaSB3YWthbGEgd2Egb2RhIHlhIGthemkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICdVcGVuZGVsZW8gdW5hb3Rha2l3YSBpbGkga3V0ZW5nZW5lemEga2lvbGV6byBrdXRva2Ega3dlbnllIG1hYmFkaWxpa28uICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2VzXCcgQ0FCLid9ID0KICAgICAgICAnVXBlbmRlbGVvIHVuYW90YWtpd2EgaWxpIGt1dGVuZ2VuZXphIGtpb2xlem8ga3V0b2thIGt3ZW55ZSBDQUIgeWEgbWFiYWRpbGlrby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdXRlbmdlbmV6YSBraW9sZXpvIGt1dG9rYSBrd2VueWUgb2RhIHlhIGthemkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnVXBlbmRlbGVvIHVuYW90YWtpd2EgaWxpIGt1dGVuZ2VuZXphIG1hYmFkaWxpa28ga3V0b2thIGt3ZW55ZSB2aW9sZXpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdXRlbmdlbmV6YSBtYWJhZGlsaWtvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdWZ1dGEga2lvbGV6by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgYSB3b3Jrb3JkZXIuJ30gPSAnVXBlbmRlbGVvIHVuYW90YWtpd2EgaWxpIGt1ZnV0YSBvZGEgeWEga2F6aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICdVcGVuZGVsZW8gdW5hb3Rha2l3YSBpbGkga3VmdXRhIG1hYmFkaWxpa28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHRlbXBsYXRlLid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdWhhcmlyaSBraW9sZXpvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB3b3Jrb3JkZXIuJ30gPSAnVXBlbmRlbGVvIHVuYW90YWtpd2EgaWxpIGt1aGFyaXJpIG9kYSB5YSBrYXppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICdVcGVuZGVsZW8gdW5hb3Rha2l3YSBpbGkga3VoYXJpcmkgbWFiYWRpbGlrby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnVXBlbmRlbGVvIHVuYW90YWtpd2EgaWxpIGt1aGFyaXJpIG1hc2hhcnRpIHlhIG1hYmFkaWxpa28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdWhhcmlyaSBtYXVkaHVpIHlhIGtpb2xlem8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgaW52b2x2ZWQgcGVyc29ucyBvZiBhIGNoYW5nZS4nfSA9CiAgICAgICAgJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdWhhcmlyaXJpIHdhdHUgd2FuYW9odXNpa2EgbmEgbWFiYWRpbGlrby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICdVcGVuZGVsZW8gdW5hb3Rha2l3YSBpbGkga3VoYW1pc2hhIG1hYmFkaWxpa28ga3dhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAnVXBlbmRlbGVvIHVuYW90YWtpd2EgaWxpIGt1Y2hhcGlzaGEgbWFiYWRpbGlrby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdXdla2EgdXB5YSBtYWJhZGlsaWtvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnVXBlbmRlbGVvIHVuYW90YWtpd2EgaWxpIGt1b25hIG9kYSB5YSBrYXppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICdVcGVuZGVsZW8gdW5hb3Rha2l3YSBpbGkga3VvbmEgbWFiYWRpbGlrby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICdVcGVuZGVsZW8gdW5hb3Rha2l3YSBpbGkga3VvbmEgb3JvZGhhIHlhIG1hYmFkaWxpa28gYW1iYXBvIG10dW1pYWppIG5pIG1zaGlyaWthIHdhIENBQi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICdVcGVuZGVsZW8gdW5hb3Rha2l3YSBpbGkga3VvbmEgb3JvZGhhIHlhIG1hYmFkaWxpa28gYW1iYXBvIG10dW1pYWppIG5pIG1lbmVqYSBtYWJhZGlsaWtvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdW9uYSBtYXBpdGlvIHlhIHZpb2xlem8gdnlvdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdW9uYSBtYXNoYXJ0aSB5YSBtYWJhZGlsaWtvIHlvdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICdVcGVuZGVsZW8gdW5hb3Rha2l3YSBpbGkga3VvbmEgaGlzdG9yaWEgeWEgbWFiYWRpbGlrby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdW9uYSBoaXN0b3JpYSB5YSBvZGEgeWEga2F6aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSBjaGFuZ2UuJ30gPSAnVXBlbmRlbGVvIHVuYW90YWtpd2EgaWxpIGt1b25hIGhpc3RvcmlhIGlsaXlva3V6d2EgIHlhIG1hYmFkaWxpa28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnVXBlbmRlbGVvIHVuYW90YWtpd2EgaWxpIGt1b25hIGhpc3RvcmlhIGlsaXlva3V6d2EgeWEgb2RhIHlhIGthemkuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdW9uYSBvcm9kaGEgeWEgUmF0aWJhIHlhIE1hYmFkaWxpa28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2UgUFNBLid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdW9uYSBvcm9kaGEgeWEgbWFiYWRpbGlrbyB5YSBQU0EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICdVcGVuZGVsZW8gdW5hb3Rha2l3YSBpbGkga3VvbmEgb3JvZGhhIHlhIG1hYmFkaWxpa28gdmlvbGV6byB2eW90ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdW9uYSBvcm9kaGEgeWEgbWFiYWRpbGlrbyB5YWtvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnVXBlbmRlbGVvIHVuYW90YWtpd2EgaWxpIGt1b25hIG9yb2RoYSB5YSBvZGEgemFrbyB6YSBrYXppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHdyaXRlIGEgcmVwb3J0IGZvciB0aGUgd29ya29yZGVyLid9ID0gJ1VwZW5kZWxlbyB1bmFvdGFraXdhIGlsaSBrdWFuZGlrYSByaXBvdGkgeWEgb2RhIHlhIGthemkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICdTa3JpbmkgYmFhZGEgeWEga3V0ZW5nZW5lemEgb2RhIHlhIGthemkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzJ30gPSAnVGFmdXRhIE1hYmFkaWxpa28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICdDaGFndWEgbW9kdWxlIHlhIGt1dGVuZ2VuZXphIG5hbWJhIHlhIGJhZGlsaWtvLiAiS3VvbmdlemVrYSBrd2Egb3RvbWF0aWtpIiBpbmFvbmdlemEgbmFtYmEgeWEgYmFkaWxpa28sIGtpdGFtYnVsaXNobyBjaGEgbWZ1bW8gbmEga2loZXNhYnVqaSB6aW5hdHVtaWthIG5hIGtpdGFtYnVsaXNobyBjaGEgbWZ1bW8udW1iaXpvIGxhIGtpaGVzYWJ1amkgKG1mYW5vIDEwMDExOCwgMTAwMTE5KS4gTmEgIlRhcmVoZSIgbmFtYmEgemEgbWFiYWRpbGlrbyB6aXRhdGVuZ2VuZXp3YSBuYSB0YXJlaGUgeWEgc2FzYSBuYSBraWhlc2FidWppOyBVbWJpem8gbGluYWZhbmFuYSBrYW1hIGhpdmkgTXdha2EuTXdlemkuU2lrdS5LaXRhbWJ1bGlzaG8gY2hhIG1mdW1vLktpaGVzYWJ1amkgbWZhbm8gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gTmEgIkt1YW5nYWxpYSBqdW1sYSBrd2EgdGFyZWhlIiAga2loZXNhYnVqaSBraXRhYW1iYXRhbmlzaHdhIGthbWEga2lhbmdhbGlhamkganVtbGEga3dlbnllIHR1bmdvIHlhIHRhcmVoZSBuYSBraXRhbWJ1bGlzaG8uIEtpYW5nYWxpYSBqdW1sYSBraXRhenVuZ3VzaHdhIGt3YSBtaXNoaW5naSB5YSBraWxhIHNpa3UuIFVtYml6byBsaXRhZmFuYW5hIGthbWEgaGl2aSBNd2FrYS5Nd2V6aS5TaWt1LktpdGFtYnVsaXNobyBjaGEgbWZ1bW8uS2loZXNhYnVqaSBtZmFubyAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnSW5hd2VrYSB1cGVvIHdhIGNoaW5pIHdhIHVrdWJ3YSB3YSBraWhlc2FidWppIHRpa2V0aSAoS2FtYSAiSW5hb25nZXpla2Egb3RvbWF0aWtpIiBpbWVjaGFndWxpd2Ega2FtYSBCYWRpbGlrbyBsYSBJVFNNOjpLaXRlbmdlbmV6YSBuYW1hYmEgemEgdGlrZXRpKS4gQ2hhZ3VvLW1zaW5naSBuaSA1LCBoaWkgaW5hbWFhbmlzaGEga2loZXNhYnVqaSBraW5hYW56aWEgMTAwMDAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3IgY2hhbmdlcy4nfSA9ICdJbmFzZXRpIGhhbGkgeWEgbWFzaGluZSBrd2EgbWFiYWRpbGlrby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB1cCB0aGUgc3RhdGUgbWFjaGluZSBmb3Igd29ya29yZGVycy4nfSA9ICdJbmFzZXRpIGhhbGkgeWEgbWFzaGluZSBrd2Egb2RhIHphIGthemkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSW5hb255ZXNoYSBraXVuZ28ga3dlbnllIG1lbnl1IGtpbmFjaG9ydWh1c3Uga3VmYWZhbnVhIG1hYmFkaWxpa28ga2FtYSBraW9sZXpvIGthdGlrYSBtdW9uZWthbm8gdWxpb2t1endhIHdhIG1hYmFkaWxpa28sIGthdGlrYSBraW9sZXN1cmEgY2hhIHdha2FsYS4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdJbmFvbnllc2hhIGtpdW5nbyBrd2VueWUgbWVueXUgIGtpbmFjaG9ydWh1c3Uga3V1bmdhbmlzaGEgbWFiYWRpbGlrbyBuYSBraXR1IGtpbmdpbmUga2F0aWthIG11b25la2FubyB1bGlva3V6d2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0luYW9ueWVzaGEga2l1bmdvIGt3ZW55ZSBtZW55dSAga2luYWNob3J1aHVzdSBrdWhhbWlzaGEga2lwZW5nZWxlIGNoYSBtdWRhIHdhIG1hYmFkaWxpa28ga2F0aWthIG11b25la2FubyB1bGlva3V6d2Egd2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdJbmFvbnllc2hhIGtpdW5nbyBrd2VueWUgbWVueXUgaWxpIGt1ZmlraWEgbWFzaGFydGkgeWEgbWFiYWRpbGlrbyBrYXRpa2EgbXVvbmVrYW5vIHdha2UgdWxpb2t1endhIHdhIGtpb2xlc3VyYSBjaGEgd2FrYWxhLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSW5hb255ZXNoYSBraXVuZ28ga3dlbnllIG1lbnl1IGlsaSBrdWZpa2lhIG1hc2hhcnRpIHlhIGhpc3RvcmlhIHlhIG1hYmFkaWxpa28ga2F0aWthIG11b25la2FubyB3YWtlIHVsaW9rdXp3YSB3YSBraW9sZXN1cmEgY2hhIHdha2FsYS4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdJbmFvbnllc2hhIGtpdW5nbyBrd2VueWUgbWVueXUgaWxpIGt1ZnV0YSBtYWJhZGlsaWtvIGthdGlrYSBtdW9uZWthbm8gd2FrZSB1bGlva3V6d2Egd2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZGVsZXRlIGEgd29ya29yZGVyIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSW5hb255ZXNoYSBraXVuZ28ga3dlbnllIG1lbnl1IGlsaSBrdWhhcmlyaSBtYWJhZGlsaWtvIGthdGlrYSBtdW9uZWthbm8gd2FrZSB1bGlva3V6d2Egd2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdJbmFvbnllc2hhIGtpdW5nbyBrd2VueWUgbWVueXUgaWxpIGt1cnVkaSBueXVtYSBrd2VueWUgbXVvbmVrYW5vIHdhIG1hYmFkaWxpa28gdWxpb2t1endhIHdhIGtpb2xlc3VyYSBjaGEgd2FrYWxhLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0luYW9ueWVzaGEga2l1bmdvIGt3ZW55ZSBtZW55dSBpbGkga3VjaGFwaXNoYSBtYWJhZGlsaWtvIGt3ZW55ZSBtdW9uZWthbm8gd2FrZSB1bGlva3V6d2Egd2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0luYW9ueWVzaGEga2l1bmdvIGt3ZW55ZSBtZW55dSBpbGkga3dla2EgdXB5YSBtYWJhZGlsaWtvIG5hIG9kYSB6YWtlIHphIGthemkga2F0aWthIG11b25la2FubyB3YWtlIHVsaW9rdXp3YSB3YSBraW9sZXN1cmEgY2hhIHdha2FsYS4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBzaG93IHRoZSBpbnZvbHZlZCBwZXJzb25zIGluIGEgY2hhbmdlLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgY2hhbmdlIGhpc3RvcnkgKHJldmVyc2Ugb3JkZXJlZCkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0luYW9ueWVzaGEgYmFkaWxpIGhpc3RvcmlhICh1dGFyYXRpYnUgdWxpb2dldXp3YSkga2F0aWthIGtpb2xlc3VyYSBjaGEgd2FrYWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAnTWFzaGluZSB5YSBIYWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuJ30gPQogICAgICAgICdJbmFoaWZhZGhpIHZpdGFtYnVsaXNobyB2eWEgbWFiYWRpbGlrbyBuYSBvZGEgemEga2F6aSBzYW1iYW1iYSBuYSBraXRhbWJ1bGlzaG8gY2hhIGtpb2xlem8sIHdha2F0aSBtdHVtaWFqaSBhbmFoYXJpcmkga2lvbGV6by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICdDaHVrdWEgT2RhIHlhIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICdNYXBpdGlvIHlhIEtpb2xlem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJ0tpdGFtYnVsaXNobyBjaGEgbWFiYWRpbGlrbywgbWYuIE1hYmFkaWxpa28jLCBNYWJhZGlsaWtvWWFuZ3UjLiBDaGFndW8tbXNpbmdpIG5pIE1hYmFkaWxpa28jLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAnS2l0YW1idWxpc2hvIGNoYSBvZGEgeWEga2F6aSwgbWYuIE9kYVlha2F6aSMsIE9kYVlhbmd1WWFLYXppIy4gQ2hhZ3VvLW1zaW5naSBuaSBPZGFZYWthemkjLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnQWluYSBoaWkgeWEgQUNMIGluYXp1aWEgbWF0dW1pemkgeWEgYWluYSB6YSB0aWtldGkgYW1iYXpvIHppbWVmYWZhbnVsaXdhIGthdGlrYSBjaGFndW8gbGEgc3lzY29uZmlnIFwnTWFiYWRpbGlrb0lUU006Ok9uZ2V6YUtpdW5nb01hYmFkaWxpa29BaW5hVGlrZXRpXCcsIGt3YSB3YXR1bWlhamkgd2EgbWFrdW5kaSBrYW1hIGlsaXZ5b2ZhZmFudWxpd2Ega3dlbnllICJNYWJhZGlsaWtvSVRTTTo6WnVpYUFpbmFUaWtldGk6Ok1ha3VuZGkiLiBIaWkgQUNMIGluYXdlemEga3VpbmdpbGlhbmEgbmEgIEFDTCBueWluZ2luZSBhbWJhem8gcGlhIHppbmEgdWh1c2lhbm8gbmEgYWluYSB5YSB0aWtldGksIGhpbGkgY2hhZ3VvIGxhIHN5c2NvbmZpZyBsaW1lIGxlbWF6d2Ega3dhIGthd2FpZGEgbmEgbGluYXdlemEga3VhbWlsaXNod2Ega2FtYSBpdGFoaXRhamlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICdBaW5hIHphIHRpa2V0aSwgYW1iYXpvIGt3ZW55ZSBtdW9uZWthbm8gdWxpb2t1endhIHdhIHRpa2V0aSBraXVuZ28gY2hhIGt1b25nZXphIG1hYmFkaWxpa28ga2l0YW9ueWVzaHdhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/th_TH_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6dGhfVEhfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ+C4q+C4oeC4p+C4lOC4q+C4oeC4ueC5iOKGlCDguJzguKXguIHguKPguLDguJfguJog4oaUIOC4peC4s+C4lOC4seC4muC4hOC4p+C4suC4oeC4quC4s+C4hOC4seC4jSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAn4LiB4Liy4Lij4LiI4Lix4LiU4LiB4Liy4Lij4Lil4Liz4LiU4Lix4Lia4LiE4Lin4Liy4Lih4Liq4Liz4LiE4Lix4LiN4LiC4Lit4LiH4Lic4Lil4LiB4Liy4Lij4Lic4Liq4Lih4Lic4Liq4Liy4LiZ4Lin4Li04LiB4Lik4LiV4oaUIOC4nOC4peC4geC4o+C4sOC4l+C4mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmlvcml0eSBhbGxvY2F0aW9uJ30gPSAn4LiB4Liy4Lij4LiI4Lix4LiU4Liq4Lij4Lij4Lil4Liz4LiU4Lix4Lia4LiE4Lin4Liy4Lih4Liq4Liz4LiE4Lix4LiNJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VNYW5hZ2VtZW50IE5vdGlmaWNhdGlvbiBNYW5hZ2VtZW50J30gPSAn4LiB4Liy4Lij4LiI4Lix4LiU4LiB4Liy4Lij4LiB4Liy4Lij4LmB4LiI4LmJ4LiH4LmA4LiV4Li34Lit4LiZIElUU00gQ2hhbmdlTWFuYWdlbWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICfguYDguJ7guLTguYjguKHguIHguLLguKPguYHguIjguYnguIfguYDguJXguLfguK3guJnguJrguJfguJrguLLguJfguKvguJnguYnguLLguJfguLXguYgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAn4LiB4Liy4Lij4LmB4LiI4LmJ4LiH4LmA4LiV4Li34Lit4LiZ4LiV4LmJ4Lit4LiH4Lih4Li14LiK4Li34LmI4LitISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJ+C4leC5ieC4reC4h+C4o+C4sOC4muC4uOC4iuC4t+C5iOC4rSEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBTdGF0ZSBNYWNoaW5lJ30gPSAn4Lic4Li54LmJ4LiU4Li54LmB4Lil4Liq4LiW4Liy4LiZ4Liw4LiB4Lil4LmE4LiBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhIGNhdGFsb2cgY2xhc3MhJ30gPSAn4LmA4Lil4Li34Lit4LiB4LiE4Lil4Liy4Liq4LmB4LiE4LiV4LiV4Liy4Lil4LmH4Lit4LiBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0YWxvZyBjbGFzcyBpcyByZXF1aXJlZCEnfSA9ICfguJXguYnguK3guIfguKPguLDguJrguLjguITguKXguLLguKrguKvguKHguKfguJTguKvguKHguLnguYgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ+C5gOC4nuC4tOC5iOC4oeC4quC4luC4suC4meC4oOC4suC4nuC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRhbG9nIENsYXNzJ30gPSAn4Lir4LmJ4Lit4LiH4LmB4LiE4LmH4LiV4LiV4Liy4Lil4LmH4Lit4LiBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAn4LiK4Li34LmI4Lit4Lit4Lit4Lia4LmA4LiI4LiB4LiV4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAn4Lig4Liy4Lie4Lij4Lin4Lih4LiC4Lit4LiH4Liq4LiW4Liy4LiZ4Lig4Liy4Lie4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4Liq4Liz4Lir4Lij4Lix4LiaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICfguKXguJrguKrguJbguLLguJnguKDguLLguJ7guIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguJnguLXguYknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAn4LmA4Lie4Li04LmI4Lih4Liq4LiW4Liy4LiZ4Lig4Liy4Lie4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4Liq4Liz4Lir4Lij4Lix4LiaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICfguIHguKPguLjguJPguLLguYDguKXguLfguK3guIHguKrguJbguLLguJnguKDguLLguJ4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIG5leHQgc3RhdGUhJ30gPSAn4LiB4Lij4Li44LiT4Liy4LmA4Lil4Li34Lit4LiB4Liq4LiW4Liy4LiZ4Lig4Liy4Lie4LiW4Lix4LiU4LmE4LibJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ+C5geC4geC5ieC5hOC4guC4quC4luC4suC4meC4oOC4suC4nuC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4quC4s+C4q+C4o+C4seC4mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAn4LiE4Li44LiT4LmB4LiZ4LmI4LmD4LiI4Lir4Lij4Li34Lit4LmE4Lih4LmI4Lin4LmI4Liy4LiV4LmJ4Lit4LiH4LiB4Liy4Lij4Lil4Lia4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4Liq4LiW4Liy4LiZ4Lig4Liy4Lie4LiZ4Li14LmJJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJ+C5gOC4nuC4tOC5iOC4oUNoYW5nZSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UnfSA9ICdJVFNNIENoYW5nZSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSnVzdGlmaWNhdGlvbid9ID0gJ+C5geC4quC4lOC4h+C5gOC4q+C4leC4uOC4nOC4pSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnB1dCBpbnZhbGlkLid9ID0gJ2lucHV0IOC5hOC4oeC5iOC4luC4ueC4geC4leC5ieC4reC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgRGF0ZSd9ID0gJ+C5gOC4p+C4peC4suC4l+C4teC5iOC4o+C5ieC4reC4h+C4guC4rSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBDaGFuZ2UgVGVtcGxhdGUnfSA9ICfguYDguKXguLfguK3guIHguYHguKHguYjguYHguJrguJrguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAn4Lib4Lij4Liw4LmA4Lig4LiX4LmA4Lin4Lil4LiyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSB0eXBlLid9ID0gJ+C4m+C4o+C4sOC5gOC4oOC4l+C5gOC4p+C4peC4suC5hOC4oeC5iOC4luC4ueC4geC4leC5ieC4reC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdGltZSd9ID0gJ+C5gOC4p+C4peC4suC5g+C4q+C4oeC5iCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJ30gPSAn4Lia4Lix4LiZ4LiX4Li24LiBQ2hhbmdlIENBQiDguYDguJvguYfguJnguYHguKHguYjguYHguJrguJonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICfguYTguJvguJfguLXguYjguKrguIHguKPguLXguJnguILguK3guIfguJrguLjguITguITguKXguJfguLXguYjguYDguIHguLXguYjguKLguKfguILguYnguK3guIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAn4LiK4Li34LmI4Lit4LmE4Lih4LmI4LiW4Li54LiB4LiV4LmJ4Lit4LiHJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJ+C5gOC4h+C4t+C5iOC4reC4meC5hOC4guC5geC4peC4sOC4geC4suC4o+C4l+C4s+C4h+C4suC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAn4Lil4Lia4LmA4LiH4Li34LmI4Lit4LiZ4LmE4LiCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgY29uZGl0aW9uJ30gPSAn4LmA4Lie4Li04LmI4Lih4LmA4LiH4Li34LmI4Lit4LiZ4LmE4LiC4LmD4Lir4Lih4LmIJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJ+C4leC5ieC4reC4h+C4geC4suC4o+C4iuC4t+C5iOC4reC4l+C4teC5iOC4luC4ueC4geC4leC5ieC4reC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICfguIrguLfguYjguK3guIvguYnguLMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGNvbmRpdGlvbi4nfSA9ICfguIrguLfguYjguK3guJnguLXguYnguYTguJTguYnguJbguLnguIHguYPguIrguYnguIfguLLguJnguYLguJTguKLguYDguIfguLfguYjguK3guJnguYTguILguK3guLfguYjguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICfguJXguKPguIfguIHguLHguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJ+C4geC4suC4o+C5geC4quC4lOC4h+C4nOC4peC5g+C4lOC5hiAoT1IpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJ+C4geC4suC4o+C5geC4quC4lOC4h+C4nOC4peC4l+C4seC5ieC4h+C4q+C4oeC4lCAoQU5EKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJ+C4geC4suC4o+C5geC4quC4lOC4h+C4nOC4pSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJ+C4nOC4ueC5ieC5gOC4peC4t+C4reC4gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJ+C4nOC4ueC5ieC4lOC4s+C5gOC4meC4tOC4meC4geC4suC4oyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJ+C4peC4muC4geC4suC4o+C5geC4quC4lOC4h+C4nOC4pSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICfguYTguKHguYjguJ7guJrguIHguLLguKPguYHguKrguJTguIfguJzguKUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAn4LmA4Lie4Li04LmI4Lih4LiB4Liy4Lij4LmB4Liq4LiU4LiH4Lic4LilJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICfguKXguJrguIHguLLguKPguJfguLPguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICfguYTguKHguYjguJ7guJrguIHguLLguKPguJfguLPguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICfguYDguJ7guLTguYjguKHguIHguLLguKPguJfguLPguIfguLLguJnguYPguKvguKHguYgnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJ+C4hOC4uOC4k+C4leC5ieC4reC4h+C4geC4suC4o+C4peC4mkNoYW5nZSDguJnguLXguYnguKvguKPguLfguK3guYTguKHguYg/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMnfSA9ICfguJvguKPguLDguKfguLHguJXguLTguILguK3guIcgJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICfguYDguJnguLfguYnguK3guKvguLLguJvguKPguLDguKfguLHguJXguLQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAn4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICfguYDguKfguKXguLLguJfguLXguYjguKrguKPguYnguLLguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBkZXRhaWxzJ30gPSAn4LmB4Liq4LiU4LiH4LmA4LiZ4Li34LmJ4Lit4Lir4LiyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAn4LmB4Liq4LiU4LiH4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAn4LiB4Liy4Lij4Lib4Lij4Lix4Lia4LmA4Lib4Lil4Li14LmI4Lii4LiZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJ+C4hOC5iOC4suC5gOC4lOC4tOC4oSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICfguITguYjguLLguYPguKvguKHguYgnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAn4Lia4Li44LiE4LiE4Lil4LiX4Li14LmI4LmA4LiB4Li14LmI4Lii4Lin4LiC4LmJ4Lit4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICfguJzguLnguYnguIjguLHguJTguIHguLLguKPguILguK3guIdDaGFuZ2UgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaW52YWxpZC4nfSA9ICfguJzguLnguYnguYPguIrguYnguYTguKHguYjguJbguLnguIHguJXguYnguK3guIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcid9ID0gJ+C4nOC4ueC5ieC4quC4o+C5ieC4suC4h0NoYW5nZSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAn4LiE4LiT4Liw4LiB4Lij4Lij4Lih4LiB4Liy4Lij4LiX4Li14LmI4Lib4Lij4Li24LiB4Lip4LiyIENoYW5nZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgVGVtcGxhdGUnfSA9ICfguYHguKHguYjguYHguJrguJogQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAn4LmD4LiK4LmJ4LmB4Lih4LmI4LmB4Lia4LiaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAn4LmB4Lih4LmI4LmB4Lia4Lia4LmD4Lir4Lih4LmIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgdGhpcyBDQUIgYXMgdGVtcGxhdGUnfSA9ICfguJrguLHguJnguJfguLbguIEgQ0FCIOC4meC4teC5ieC5gOC4m+C5h+C4meC5geC4oeC5iOC5geC4muC4mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAn4LmA4Lie4Li04LmI4Lih4LmE4Lib4Lii4Lix4LiHIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICfguJzguLnguYnguYPguIrguYnguYTguKHguYjguJbguLnguIHguJXguYnguK3guIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICdDQUIg4Lib4Lix4LiI4LiI4Li44Lia4Lix4LiZJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAn4LiB4Liy4Lij4LiV4Lix4LmJ4LiH4LiE4LmI4Liy4LiC4LmJ4Lit4LiE4Lin4Liy4LihJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICdDaGFuZ2VzIOC5g+C4meC5geC4leC5iOC4peC4sOC4q+C4meC5ieC4sic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJ+C4nOC4ueC5ieC4quC4o+C5ieC4suC4hyBDaGFuZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICfguJzguLnguYnguIjguLHguJTguIHguLLguKMgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcnMnfSA9ICfguYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJ+C5gOC4p+C4peC4suC4l+C4teC5iOC4o+C5ieC4reC4h+C4guC4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICfguITguLjguJPguJXguYnguK3guIfguIHguLLguKPguKPguLXguYDguIvguJXguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguJnguLXguYnguKvguKPguLfguK3guYTguKHguYg/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJyjguYDguIrguYjguJkgMTAqNTE1NSDguKvguKPguLfguK0gMTA1NjU4KiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICfguYDguIrguYjguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAn4Lir4Lih4Lin4LiU4Lir4Lih4Li54LmI4LiC4Lit4LiHQ2hhbmdlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyjguIHguYjguK3guJkv4Lir4Lil4Lix4LiHKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmV0d2VlbiknfSA9ICco4Lij4Liw4Lir4Lin4LmI4Liy4LiHKSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICfguJrguLHguJnguJfguLbguIFDaGFuZ2Ug4LmA4Lib4LmH4LiZ4LmB4Lih4LmI4LmB4Lia4LiaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ+C4hOC4p+C4o+C4o+C4sOC4muC4uOC4iuC4t+C5iOC4reC5geC4oeC5iOC5geC4muC4miEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuJ30gPSAn4LiV4LmJ4Lit4LiH4Lij4Liw4Lia4Li44LiK4Li34LmI4Lit4LiC4Lit4LiH4LmB4Lih4LmI4LmB4Lia4LiaISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICfguKPguLXguYDguIvguJXguKrguJbguLLguJnguKDguLLguJ4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAn4LmA4LiC4Li14Lii4LiZ4LiX4Lix4Lia4LmB4Lih4LmI4LmB4Lia4Lia4LmA4LiU4Li04LihJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICfguKXguJpDaGFuZ2Ug4LmA4LiU4Li04LihJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJ+C4ouC5ieC4suC4oiBUaW1lIFNsb3QnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluZm9ybWF0aW9uJ30gPSAn4LiC4LmJ4Lit4Lih4Li54Lil4LiC4Lit4LiHQ2hhbmdlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAn4Lic4Li54LmJ4Lij4Li04LmA4Lij4Li04LmI4LihKHMpIENoYW5nZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICdDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAn4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4Lil4LmI4Liy4Liq4Li44LiUJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4peC5iOC4suC4quC4uOC4lOC5guC4lOC4oic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJ+C5g+C4meC4geC4suC4o+C5gOC4m+C4tOC4lOC4geC4suC4o+C4peC4tOC5ieC4h+C5g+C4meC4muC4peC5h+C4reC4geC4hOC4s+C4reC4mOC4tOC4muC4suC4ouC4leC5iOC4reC5hOC4m+C4meC4teC5iSDguITguLjguJPguK3guLLguIjguIjguLDguJXguYnguK3guIfguIHguJTguJvguLjguYjguKEgQ3RybCDguKvguKPguLfguK0gQ21kIOC4q+C4o+C4t+C4rSBTaGlmdCDguYPguJnguILguJPguLDguJfguLXguYjguIHguJTguKXguLTguYnguIcgKOC4guC4tuC5ieC4meC4reC4ouC4uOC5iOC4geC4seC4muC5gOC4muC4o+C4suC5gOC4i+C4reC4o+C5jOC5geC4peC4sOC4o+C4sOC4muC4muC4m+C4juC4tOC4muC4seC4leC4tOC4geC4suC4o+C4guC4reC4h+C4hOC4uOC4kyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ+C4lOC4suC4p+C4meC5jOC5guC4q+C4peC4lOC4quC4tOC5iOC4h+C4l+C4teC5iOC5geC4meC4muC4oeC4sic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAn4LmB4LiB4LmJ4LmE4LiC4LmB4Lih4LmI4LmB4Lia4LiaIENBQic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ+C4meC4teC5iOC4iOC4sOC4quC4o+C5ieC4suC4h0NoYW5nZSDguYPguKvguKHguYjguIjguLLguIHguYHguKHguYjguYHguJrguJrguJnguLXguYkg4LiU4Lix4LiH4LiZ4Lix4LmJ4LiZ4LiE4Li44LiT4LiI4Li24LiH4Liq4Liy4Lih4Liy4Lij4LiW4LmB4LiB4LmJ4LmE4LiC4LmB4Lil4Liw4Lia4Lix4LiZ4LiX4Li24LiB4LmE4Lin4LmJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnQ2hhbmdlIOC5g+C4q+C4oeC5iOC4iOC4sOC4luC4ueC4geC4peC4muC5guC4lOC4ouC4reC4seC4leC5guC4meC4oeC4seC4leC4tOC4q+C4peC4seC4h+C4iOC4suC4geC4l+C4teC5iOC4oeC4seC4meC5hOC4lOC5ieC4o+C4seC4muC4geC4suC4o+C4muC4seC4meC4l+C4tuC4geC5gOC4m+C5h+C4meC5geC4oeC5iOC5geC4muC4mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ+C4meC4teC5iOC4iOC4sOC4quC4o+C5ieC4suC4h+C5g+C4muC4quC4seC5iOC4h+C4h+C4suC4meC5g+C4q+C4oeC5iOC4iOC4suC4geC5geC4oeC5iOC5geC4muC4muC4meC4teC5iSDguJTguLHguIfguJnguLHguYnguJnguITguLjguJPguIjguLbguIfguKrguLLguKHguLLguKPguJbguYHguIHguYnguYTguILguYHguKXguLDguJrguLHguJnguJfguLbguIHguYTguKfguYknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wb3JhcnkgY2hhbmdlIHdpbGwgYmUgY3JlYXRlZCB3aGljaCBjb250YWlucyB0aGUgd29ya29yZGVyLid9ID0KICAgICAgICAnQ2hhbmdlIOC4iuC4seC5iOC4p+C4hOC4o+C4suC4p+C4iOC4sOC4luC4ueC4geC4quC4o+C5ieC4suC4h+C4guC4tuC5ieC4meC4i+C4tuC5iOC4h+C4m+C4o+C4sOC4geC4reC4muC4lOC5ieC4p+C4ouC5g+C4muC4quC4seC5iOC4h+C4h+C4suC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnQ2hhbmdlIOC4iuC4seC5iOC4p+C4hOC4o+C4suC4p+C5geC4peC4sOC5g+C4muC4quC4seC5iOC4h+C4h+C4suC4meC5g+C4q+C4oeC5iOC4iOC4sOC4luC4ueC4geC4peC4muC5guC4lOC4ouC4reC4seC4leC5guC4meC4oeC4seC4leC4tOC4q+C4peC4seC4h+C4iOC4suC4geC4l+C4teC5iOC4oeC4seC4meC5hOC4lOC5ieC4o+C4seC4muC4geC4suC4o+C4muC4seC4meC4l+C4tuC4geC5gOC4m+C5h+C4meC5geC4oeC5iOC5geC4muC4mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJ+C4hOC4uOC4k+C4leC5ieC4reC4h+C4geC4suC4o+C4lOC4s+C5gOC4meC4tOC4meC4geC4suC4o+C4leC5iOC4reC5hOC4m+C4q+C4o+C4t+C4reC5hOC4oeC5iD8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbnRlbnQnfSA9ICfguYHguIHguYnguYTguILguYnguYDguJnguLfguYnguK3guKvguLInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgdG8gJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnN0cnVjdGlvbid9ID0gJ+C4geC4suC4o+C4quC4o+C5ieC4suC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJ+C4m+C4o+C4sOC5gOC4oOC4l+C5g+C4muC4quC4seC5iOC4h+C4h+C4suC4meC5hOC4oeC5iOC4luC4ueC4geC4leC5ieC4reC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgcGxhbm5lZCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBwbGFubmVkIGVuZCB0aW1lISd9ID0gJ+C5gOC4p+C4peC4suC5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC4l+C4teC5iOC4p+C4suC4h+C5geC4nOC4meC4iOC4sOC4leC5ieC4reC4h+C5gOC4o+C4tOC5iOC4oeC4geC5iOC4reC4meC5gOC4p+C4peC4suC4quC4tOC5ieC4meC4quC4uOC4lOC4l+C4teC5iOC4p+C4suC4h+C5geC4nOC4meC5hOC4p+C5iSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAn4Lij4Li54Lib4LmB4Lia4Lia4LmE4Lih4LmI4LiW4Li54LiB4LiV4LmJ4Lit4LiHJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJ+C5gOC4peC4t+C4reC4geC5geC4oeC5iOC5geC4muC4muC5g+C4muC4quC4seC5iOC4h+C4h+C4suC4mSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/J30gPSAn4LiE4Li44LiT4LmB4LiZ4LmI4LmD4LiI4Lir4Lij4Li34Lit4LmE4Lih4LmI4LiX4Li14LmI4LiI4Liw4Lil4Lia4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZ4LiZ4Li14LmJPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJ+C4hOC4uOC4k+C5hOC4oeC5iOC4quC4suC4oeC4o+C4luC4peC4muC5g+C4muC4quC4seC5iOC4h+C4h+C4suC4meC4meC4teC5iSDguYDguJnguLfguYjguK3guIfguIjguLLguIHguYTguJTguYnguYPguIrguYnguIfguLLguJnguK3guKLguYjguLLguIfguJnguYnguK3guKLguKvguJnguLbguYjguIfguYDguIfguLfguYjguK3guJnguYTguIIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICfguYPguJrguKrguLHguYjguIfguIfguLLguJnguJnguLXguYnguIjguLDguYPguIrguYnguYPguJnguYDguIfguLfguYjguK3guJnguYTguILguJTguLHguIfguJXguYjguK3guYTguJvguJnguLXguYkgKHMpJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAn4Lii4LmJ4Liy4LiiIHdvcmtvcmRlcnMg4LiV4LmI4Lit4LmE4Lib4LiZ4Li14LmJ4LiV4Liy4Lih4Lil4Liz4LiU4Lix4LiaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJ+C4q+C4suC4geC5gOC4p+C4peC4suC4quC4tOC5ieC4meC4quC4uOC4lOC4l+C4teC5iOC4p+C4suC4h+C5geC4nOC4meC5hOC4p+C5ieC4guC4reC4hyB3b3Jrb3JkZXIg4LiZ4Li14LmJ4Lih4Li14LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHIOC4lOC4seC4h+C4meC4seC5ieC4meC5gOC4p+C4peC4suC5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC4l+C4teC5iOC4p+C4suC4h+C5geC4nOC4meC5hOC4p+C5iSDguILguK3guIcgd29ya29yZGVycyDguJXguYjguK3guYTguJvguJnguLXguYnguIjguLDguKHguLXguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguJXguLLguKHguITguKfguLLguKHguYDguKvguKHguLLguLDguKrguKEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzLSVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnQnfSA9ICfguKPguLLguKLguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAn4LmA4Lin4Lil4Liy4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LiX4Li14LmI4LmA4LiB4Li04LiU4LiC4Li24LmJ4LiZ4LiI4Lij4Li04LiH4LiI4Liw4LiV4LmJ4Lit4LiH4LmA4Lij4Li04LmI4Lih4LiB4LmI4Lit4LiZ4LmA4Lin4Lil4Liy4Liq4Li04LmJ4LiZ4Liq4Li44LiU4LiX4Li14LmI4LmA4LiB4Li04LiU4LiC4Li24LmJ4LiZ4LiI4Lij4Li04LiHISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICfguYDguKfguKXguLLguYDguKPguLTguYjguKHguJXguYnguJnguJfguLXguYjguYDguIHguLTguJTguILguLbguYnguJnguIjguKPguLTguIfguIjguLDguJXguYnguK3guIfguJXguLHguYnguIfguITguYjguLLguYDguKHguLfguYjguK3guYDguKfguKXguLLguKrguLTguYnguJnguKrguLjguJTguJfguLXguYjguYDguIHguLTguJTguILguLbguYnguJnguIjguKPguLTguIfguKHguLXguIHguLLguKPguJXguLHguYnguIfguITguYjguLIhJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICfguYDguK3guYDguKLguYjguJnguJXguYzguJvguLHguIjguIjguLjguJrguLHguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAn4LiE4Li44LiT4LmB4LiZ4LmI4LmD4LiI4Lir4Lij4Li34Lit4LmE4Lih4LmI4LiX4Li14LmI4LiI4Liw4Lil4Lia4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZ4LiZ4Li14LmJPyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBXb3Jrb3JkZXIgYXMgVGVtcGxhdGUnfSA9ICfguJrguLHguJnguJfguLbguIHguYPguJrguKrguLHguYjguIfguIfguLLguJnguYDguJvguYfguJnguYHguKHguYjguYHguJrguJonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknfSA9ICfguKXguJp3b3Jrb3JkZXIg4LmA4LiU4Li04LihKOC5geC4peC4sOC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C5g+C4geC4peC5ieC5gOC4hOC4teC4ouC4hyknOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEluZm9ybWF0aW9uJ30gPSAn4LiC4LmJ4Lit4Lih4Li54Lil4LiC4Lit4LiH4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBBZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biBub3RpZmljYXRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgbm90aWZpY2F0aW9uLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIFVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBJVFNNIENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biBjaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXInfSA9ICfguYPguJrguKrguLHguYjguIfguIfguLLguJkgSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICfguYPguJrguKrguLHguYjguIfguIfguLLguJnguJfguLXguYgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICfguKvguLHguKfguILguYnguK3guYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICfguKrguJbguLLguJnguKDguLLguJ7guILguK3guIdDaGFuZ2UgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICfguITguKfguLLguKHguJ7guKLguLLguKLguLLguKHguJfguLXguYjguKfguLLguIfguYHguJzguJnguYTguKfguYknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZFRpbWUnfSA9ICfguYDguKfguKXguLLguJfguLXguYjguKPguYnguK3guIfguILguK0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZFN0YXJ0VGltZSd9ID0gJ+C5gOC4p+C4peC4suC5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC4l+C4teC5iOC4p+C4suC4h+C5geC4nOC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRW5kVGltZSd9ID0gJ+C5gOC4p+C4peC4suC4quC4tOC5ieC4meC4quC4uOC4lOC4l+C4teC5iOC4p+C4suC4h+C5geC4nOC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxTdGFydFRpbWUnfSA9ICfguYDguKfguKXguLLguYDguKPguLTguYjguKHguJXguYnguJnguJfguLXguYjguYDguIHguLTguJTguILguLbguYnguJnguIjguKPguLTguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJ+C5gOC4p+C4peC4suC4quC4tOC5ieC4meC4quC4uOC4lOC4l+C4teC5iOC5gOC4geC4tOC4lOC4guC4tuC5ieC4meC4iOC4o+C4tOC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaW1lJ30gPSAn4LmA4Lin4Lil4Liy4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU51bWJlcid9ID0gJ+C4peC4s+C4lOC4seC4muC4guC4reC4h0NoYW5nZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZSd9ID0gJ+C4quC4luC4suC4meC4oOC4suC4nuC4guC4reC4h+C5g+C4muC4quC4seC5iOC4h+C4h+C4suC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlJ30gPSAn4Lib4Lij4Liw4LmA4Lig4LiX4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50J30gPSAn4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmM4LiC4Lit4LiH4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIE92ZXJ2aWV3ICglcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVJlc2V0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICfguKvguLHguKfguILguYnguK1DaGFuZ2UgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlcnMnfSA9ICfguYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICdDQUIg4LiC4Lit4LiH4LiJ4Lix4LiZJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICdjaGFuZ2XguILguK3guIfguInguLHguJknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAn4LiX4Lix4LmJ4LiH4Lir4Lih4LiUJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FueSd9ID0gJ+C5g+C4lOC5hic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL05vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBYTUwgRGVmaW5pdGlvbjogSVRTTUNoYW5nZU1hbmFnZW1lbnQuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVxdWVzdGVkJ30gPSAn4Lij4LmJ4Lit4LiH4LiC4LitJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgYXBwcm92YWwnfSA9ICfguIHguLLguKPguK3guJnguLjguKHguLHguJXguLTguJfguLXguYjguITguYnguLLguIfguK3guKLguLnguYgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVqZWN0ZWQnfSA9ICfguJbguLnguIHguJvguI/guLTguYDguKrguJgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYXBwcm92ZWQnfSA9ICfguK3guJnguLjguKHguLHguJXguLTguYHguKXguYnguKcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW4gcHJvZ3Jlc3MnfSA9ICfguK3guKLguLnguYjguYPguJnguILguYjguKfguIfguJTguLPguYDguJnguLTguJnguIHguLLguKMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBwaXInfSA9ICdQSVIg4LiX4Li14LmI4LiE4LmJ4Liy4LiH4Lit4Lii4Li54LmIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICfguKrguLPguYDguKPguYfguIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAn4Lil4LmJ4Lih4LmA4Lir4Lil4LinJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAn4Lii4LiB4LmA4Lil4Li04LiBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJ+C4luC4reC4ouC4geC4peC4seC4mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAn4Liq4Lij4LmJ4Liy4LiH4LmB4Lil4LmJ4LinJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAn4Lii4Lit4Lih4Lij4Lix4Lia4LmB4Lil4LmJ4LinJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAn4LmA4Lij4Li14Lii4Lia4Lij4LmJ4Lit4LiiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAn4LiB4Liy4Lij4Lit4LiZ4Li44Lih4Lix4LiV4Li0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJ+C5g+C4muC4quC4seC5iOC4h+C4h+C4suC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnYmFja291dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJ+C4geC4suC4o+C4leC4seC4lOC4quC4tOC4meC5g+C4iCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwaXInfSA9ICdwaXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAn4LiE4Li34LitJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJ+C4hOC4t+C4rSDguYTguKHguYgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZW1wdHknfSA9ICfguITguLfguK0g4Lin4LmI4Liy4LiH4LmA4Lib4Lil4LmI4LiyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJ+C4hOC4t+C4rSDguYTguKHguYjguKfguYjguLLguIfguYDguJvguKXguYjguLInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAn4LiE4Li34LitIOC4oeC4suC4geC4geC4p+C5iOC4sic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBsZXNzIHRoYW4nfSA9ICfguITguLfguK0g4LiZ4LmJ4Lit4Lii4LiB4Lin4LmI4LiyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJ+C4hOC4t+C4rSDguIHguYjguK3guJnguKvguJnguYnguLInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICfguITguLfguK0g4Lir4Lil4Lix4LiH4LiI4Liy4LiBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NvbnRhaW5zJ30gPSAn4Lia4Lij4Lij4LiI4Li4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBjb250YWlucyd9ID0gJ+C5hOC4oeC5iOC4muC4o+C4o+C4iOC4uCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWdpbnMgd2l0aCd9ID0gJ+C5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC4lOC5ieC4p+C4oic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlbmRzIHdpdGgnfSA9ICfguKXguIfguJfguYnguLLguKLguJTguYnguKfguKInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnc2V0J30gPSAn4LiV4Lix4LmJ4LiH4LiE4LmI4LiyJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbi5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/J30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IHZhci9odHRwZC9odGRvY3MvanMvSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cuanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09rJ30gPSAn4LmC4Lit4LmA4LiEJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHRoZSBhZ2VudHMgd2hvIGhhdmUgcGVybWlzc2lvbiB0byB0YWtlIHdvcmtvcmRlcnMuIEtleSBpcyBhIGxvZ2luIG5hbWUuIENvbnRlbnQgaXMgMCBvciAxLid9ID0KICAgICAgICAn4Lij4Liy4Lii4LiK4Li34LmI4Lit4LiC4Lit4LiH4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmM4LiX4Li14LmI4LmE4LiU4LmJ4Lij4Lix4Lia4Lit4LiZ4Li44LiN4Liy4LiV4LmD4Lir4LmJ4LmD4LiK4LmJ4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZIOC4hOC4teC4ouC5jOC4quC4s+C4hOC4seC4jeC4hOC4t+C4reC4iuC4t+C5iOC4reC4peC5iuC4reC4geC4reC4tOC4mSDguYDguJnguLfguYnguK3guKvguLLguYDguJvguYfguJkgMCDguKvguKPguLfguK0gMSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJ+C4o+C4suC4ouC4geC4suC4o+C4quC4luC4suC4meC4oOC4suC4nuC4guC4reC4h+C5g+C4muC4quC4seC5iOC4h+C4h+C4suC4meC4l+C4teC5iCBBY3R1YWxTdGFydFRpbWUg4LiC4Lit4LiHIHdvcmtvcmRlciDguIjguLDguJbguLnguIHguJXguLHguYnguIfguITguYjguLLguJbguYnguLLguKvguLLguIHguIjguLjguJTguJnguLXguYnguYDguJvguYfguJnguJfguLXguYjguKfguYjguLLguIfguYDguJvguKXguYjguLInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICfguYDguJ7guLTguYjguKHguYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICfguYDguJ7guLTguYjguKHguIjguLLguIHguYHguKHguYjguYHguJrguJonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAn4Lic4Li54LmJ4LiU4Li54LmB4Lil4Lij4Liw4Lia4Lia4LiC4Lit4LiHIENJUCBtYXRyaXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJ+C4nOC4ueC5ieC4lOC4ueC5geC4peC4guC4reC4h+C4quC4luC4suC4meC4sOC4geC4peC5hOC4gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAn4LmC4Lih4LiU4Li54Lil4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LiB4Liy4Lij4LmB4LiI4LmJ4LiH4LmA4LiV4Li34Lit4LiZ4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmM4LmD4LiZ4LiB4Liy4Lij4LiU4Li54LiI4Liz4LiZ4Lin4LiZ4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiC4Lit4LiHIGFkdmlzb3J5IGJvYXJkcyAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAn4LmC4Lih4LiU4Li54Lil4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LiB4Liy4Lij4LmB4LiI4LmJ4LiH4LmA4LiV4Li34Lit4LiZ4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmM4LmD4LiZ4LiB4Liy4Lij4LiU4Li54LiI4Liz4LiZ4Lin4LiZ4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiB4Liy4Lij4LiE4Lin4Lia4LiE4Li44Lih4LmC4LiU4Lii4Lil4Li54LiB4LiE4LmJ4LiyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICfguYLguKHguJTguLnguKXguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguIHguLLguKPguYHguIjguYnguIfguYDguJXguLfguK3guJnguJXguLHguKfguILguK3guIfguYDguK3guYDguKLguYjguJnguJXguYzguYPguJnguIHguLLguKPguJTguLnguIjguLPguJnguKfguJnguILguK3guIfguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAn4LmA4Lin4Lil4LiyIENhY2hlIOC4leC5iOC4reC4meC4suC4l+C4teC4quC4s+C4q+C4o+C4seC4muC4geC4suC4o+C4iOC4seC4lOC4geC4suC4o+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAn4LmB4LiE4LiK4LmA4Lin4Lil4Liy4LmA4Lib4LmH4LiZ4LiZ4Liy4LiX4Li14Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4LiI4Lix4LiU4LiB4Liy4Lij4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHIOC5gOC4o+C4tOC5iOC4oeC4leC5ieC4mTogNSDguKfguLHguJkgKDcyMDAg4LiZ4Liy4LiX4Li1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ0FCIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEludm9sdmVkIFBlcnNvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAn4Lig4Liy4Lie4Lij4Lin4Lih4LiC4Lit4LiHQ2hhbmdlICLguILguJnguLLguJTguYDguKXguYfguIEiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUnfSA9ICfguJXguLLguKPguLLguIdjaGFuZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgV29ya29yZGVyIFRlbXBsYXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIHdvcmtvcmRlciB0ZW1wbGF0ZXMgZWRpdGVkIGJ5IHRoaXMgdXNlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBpbnZvbHZlZCBwZXJzb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBsaW1pdCBwZXIgcGFnZSBmb3IgQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBudW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ+C5gOC4m+C4peC4teC5iOC4ouC4meC4geC4suC4o+C4hOC5ieC4meC4q+C4siAgYmFja2VuZCByb3V0ZXIg4LiC4Lit4LiH4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICfguYHguIHguYnguYTguILguYDguIfguLfguYjguK3guJnguYTguIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguITguYjguLLguIHguLLguKPguYHguIjguYnguIfguYDguJXguLfguK3guJnguIjguLDguJbguLnguIHguKrguYjguIfguJrguYjguK3guKLguYHguITguYjguYPguKvguJnguYDguKHguLfguYjguK3guKHguLXguIHguLLguKPguKfguLLguIfguYHguJzguJnguYDguKfguKXguLLguYDguKPguLTguYjguKHguJXguYnguJnguKvguKPguLfguK3guITguYjguLLguYDguKfguKXguLLguK3guLfguYjguJkg4LmGIOC5hOC4lOC5ieC4oeC4suC4luC4tuC4hyAv4Lic4LmI4Liy4LiZ4LmE4LibJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UnfSA9ICfguKrguKPguYnguLLguIdDaGFuZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIChmcm9tIHRlbXBsYXRlKSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAn4Lib4Lij4Liw4LmA4Lig4LiX4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4Liq4Lix4LmI4LiH4LiH4Liy4LiZIOC4o+C4suC4ouC4geC4suC4o+C4m+C5ieC4reC4meC4meC4teC5ieC4leC5ieC4reC4h+C4oeC4teC4reC4ouC4ueC5iOC5g+C4meC4hOC4peC4suC4quC5geC4hOC4leC4leC4suC4peC5h+C4reC4geC4l+C4seC5iOC4p+C5hOC4myBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAn4LiB4Liz4Lir4LiZ4LiU4Liq4Lix4LiN4LiN4Liy4LiT4Liq4Liz4Lir4Lij4Lix4Lia4LmB4LiV4LmI4Lil4Liw4Liq4LiW4Liy4LiZ4Lig4Liy4Lie4LiC4Lit4LiH4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LmC4Lih4LiU4Li54Lil4Lig4Liy4Lie4Lij4Lin4Lih4LiX4Li14LmI4LiI4Liw4LmB4Liq4LiU4LiH4Lih4Li44Lih4Lih4Lit4LiH4LmA4Lil4LmH4LiB4LmG4LiC4Lit4LiH4Lij4Liy4Lii4LiB4Liy4Lij4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LmC4Lih4LiU4Li54Lil4Lig4Liy4Lie4Lij4Lin4Lih4LiX4Li14LmI4LiI4Liw4LmB4Liq4LiU4LiH4Lih4Li44Lih4Lih4Lit4LiH4LmA4Lil4LmH4LiBIOC5hiDguILguK3guIfguKPguLLguKLguIHguLLguKPguYHguKHguYjguYHguJrguJonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBpdCB3aWxsIGJlIHBvc3NpYmxlIHRvIHByaW50IHRoZSBhY2NvdW50ZWQgdGltZS4nfSA9ICfguIHguLPguKvguJnguJTguITguYjguLLguJbguYnguLLguKvguLLguIHguYDguJvguYfguJnguYTguJvguYTguJTguYnguYPguJnguIHguLLguKPguJfguLXguYjguIjguLDguJ7guLTguKHguJ7guYwgdGhlIGFjY291bnRlZCB0aW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAn4LiB4Liz4Lir4LiZ4LiU4LiE4LmI4Liy4LiW4LmJ4Liy4Lir4Liy4LiB4LmA4Lib4LmH4LiZ4LmE4Lib4LmE4Lih4LmE4LiU4LmJ4LmD4LiZ4LiB4Liy4Lij4LiX4Li14LmI4LiI4Liw4Lie4Li04Lih4Lie4LmMIHRoZSBwbGFubmVkIGVmZm9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguKvguLLguIHguKrguLLguKHguLLguKPguJbguYDguILguYnguLLguJbguLbguIcgKOC4leC4suC4oeC4l+C4teC5iOC4geC4s+C4q+C4meC4lOC5guC4lOC4ouC5gOC4hOC4o+C4t+C5iOC4reC4h+C4quC4luC4suC4meC4sCkg4Liq4LiW4Liy4LiZ4Liw4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiX4Li14LmI4Liq4Li04LmJ4LiZ4Liq4Li44LiU4LiE4Lin4Lij4LmE4LiU4LmJ4Lij4Lix4Lia4Lit4LiZ4Li44LiN4Liy4LiV4Lir4Liy4LiB4Lih4Li14LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiX4Li14LmI4Lit4Lii4Li54LmI4LmD4LiZ4Liq4LiW4Liy4LiZ4Liw4LiX4Li14LmI4LiW4Li54LiB4Lil4LmH4Lit4LiBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSB3b3Jrb3JkZXIgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIHdvcmtvcmRlciBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4q+C4suC4geC4quC4suC4oeC4suC4o+C4luC5gOC4guC5ieC4suC4luC4tuC4hyAo4LiV4Liy4Lih4LiX4Li14LmI4LiB4Liz4Lir4LiZ4LiU4LmC4LiU4Lii4LmA4LiE4Lij4Li34LmI4Lit4LiH4Liq4LiW4Liy4LiZ4LiwKSDguKrguJbguLLguJnguLDguYPguJrguKrguLHguYjguIfguIfguLLguJnguJfguLXguYjguKrguLTguYnguJnguKrguLjguJTguITguKfguKPguYTguJTguYnguKPguLHguJrguK3guJnguLjguI3guLLguJXguKvguLLguIHguKHguLXguYPguJrguKrguLHguYjguIfguIfguLLguJnguK3guKLguLnguYjguYPguJnguKrguJbguLLguJnguLDguJfguLXguYjguJbguLnguIHguKXguYfguK3guIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJ+C4geC4s+C4q+C4meC4lOC4luC5ieC4suC4q+C4suC4gSB0aGUgYWNjb3VudGVkIHRpbWUg4LiI4Liw4LiV4LmJ4Lit4LiH4LmB4Liq4LiU4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIHNob3VsZCBiZSBzZXQuJ30gPSAn4LiB4Liz4Lir4LiZ4LiU4LiW4LmJ4Liy4Lir4Liy4LiBIHRoZSBhY3R1YWwgc3RhcnQgdGltZSDguYHguKXguLAgdGhlIGVuZCB0aW1lIOC4iOC4sOC4leC5ieC4reC4h+C4muC4seC4meC4l+C4tuC4gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguKvguLLguIHguIHguLLguKPguITguYnguJnguKvguLLguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguYHguKXguLDguJ/guLHguIfguIHguYzguIrguLHguYjguJnguIHguLLguKPguITguYnguJnguKvguLIgd29ya29yZGVyIOC4quC4suC4oeC4suC4o+C4luC5g+C4iuC5ieC4kOC4suC4meC4guC5ieC4reC4oeC4ueC4peC4quC4sOC4l+C5ieC4reC4meC4geC4peC4seC4mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc3RhdGUgY2FuIGJlIHNldCBpbiB0aGUgY2hhbmdlIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcGxhbm5lZCBlZmZvcnQgc2hvdWxkIGJlIHNob3duLid9ID0gJ+C4geC4s+C4q+C4meC4lOC4hOC5iOC4suC4luC5ieC4suC4q+C4suC4gSB0aGUgcGxhbm5lZCBlZmZvcnQg4LiI4Liw4LiV4LmJ4Lit4LiH4LmB4Liq4LiU4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICfguIHguLPguKvguJnguJTguITguYjguLLguJbguYnguLLguKvguLLguIHguKXguLnguIHguITguYnguLLguJXguYnguK3guIfguIHguLLguKPguJ7guLTguKHguJ7guYwgdGhlIHJlcXVlc3RlZCBkYXRlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2VhcmNoZWQgYnkgY3VzdG9tZXIuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguITguYjguLLguJbguYnguLLguKvguLLguIHguKXguLnguIHguITguYnguLLguIjguLDguJXguYnguK3guIfguITguYnguJnguKvguLIgdGhlIHJlcXVlc3RlZCBkYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAn4LiB4Liz4Lir4LiZ4LiU4LiE4LmI4Liy4LiW4LmJ4Liy4Lir4Liy4LiB4Lil4Li54LiB4LiE4LmJ4Liy4LiV4LmJ4Lit4LiH4LiB4Liy4Lij4LmA4LiL4LiV4Lin4Lix4LiZ4LiX4Li14LmI4LiX4Li14LmI4LmA4Lij4Li14Lii4LiB4Lij4LmJ4Lit4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICfguIHguLPguKvguJnguJTguITguYjguLLguJbguYnguLLguKvguLLguIHguKXguLnguIHguITguYnguLLguJXguYnguK3guIfguIHguLLguKPguYHguKrguJTguIfguKfguLHguJnguJfguLXguYjguJfguLXguYjguYDguKPguLXguKLguIHguKPguYnguK3guIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICfguIHguLPguKvguJnguJTguITguYjguLLguJbguYnguLLguKvguLLguIHguIjguLDguJXguYnguK3guIfguYHguKrguJTguIfguKrguJbguLLguJnguKDguLLguJ7guILguK3guIfguYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICfguIHguLPguKvguJnguJTguITguYjguLLguJbguYnguLLguKvguLLguIHguJXguYnguK3guIfguYHguKrguJTguIfguKvguLHguKfguILguYnguK3guYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJ+C4geC4s+C4q+C4meC4lOC4hOC5iOC4suC4geC4o+C4suC4n+C5geC4reC4leC4l+C4o+C4tOC4muC4tOC4p+C4leC5jOC4l+C4teC5iOC4iOC4sOC5geC4quC4lOC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4p+C5iOC4suC4oeC4teC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C5gOC4l+C5iOC4suC4meC4seC5ieC4meC4l+C4teC5iOC4m+C4o+C4sOC4geC4reC4muC4lOC5ieC4p+C4ouC4geC4suC4o+C5gOC4iuC4t+C5iOC4reC4oeC5guC4ouC4h+C5g+C4muC4quC4seC5iOC4h+C4h+C4suC4meC4lOC5ieC4p+C4ouC4geC4suC4o+C4muC4o+C4tOC4geC4suC4o+C4l+C4teC5iOC4iOC4sOC5geC4quC4lOC4h+C4peC4ueC4geC4hOC5ieC4suC4nOC4ueC5ieC5g+C4iuC5ieC4oeC4teC4quC4tOC4l+C4mOC4tOC5jOC5g+C4meC4geC4suC4o+C5g+C4iuC5iSDguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguK3guLfguYjguJkg4LmGIOC4iOC4sOC5hOC4oeC5iOC4quC4suC4oeC4suC4o+C4luC5geC4quC4lOC4h+C5hOC4lOC5iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICfguIHguLPguKvguJnguJTguKrguJbguLLguJnguLDguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguJfguLXguYjguIjguLDguYTguJTguYnguKPguLHguJrguK3guJnguLjguI3guLLguJXguYPguKvguYnguKXguJonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4Liq4LiW4Liy4LiZ4Liw4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiX4Li14LmI4LiI4Liw4LmD4LiK4LmJ4LmA4Lib4LmH4LiZ4LiV4Lix4Lin4LiB4Lij4Lit4LiH4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4LihIENoYW5nZSBQU0EgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4Liq4LiW4Liy4LiZ4Liw4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiX4Li14LmI4LiI4Liw4LmD4LiK4LmJ4LmA4Lib4LmH4LiZ4LiV4Lix4Lin4LiB4Lij4Lit4LiH4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4LihIENoYW5nZSBTY2hlZHVsZSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4quC4luC4suC4meC4sOC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4l+C4teC5iOC4iOC4sOC5g+C4iuC5ieC5gOC4m+C5h+C4meC4leC4seC4p+C4geC4o+C4reC4h+C5g+C4meC4oOC4suC4nuC4o+C4p+C4oSBNeUNBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4quC4luC4suC4meC4sOC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4l+C4teC5iOC4iOC4sOC5g+C4iuC5ieC5gOC4m+C5h+C4meC4leC4seC4p+C4geC4o+C4reC4h+C5g+C4meC4oOC4suC4nuC4o+C4p+C4oSBNeUNoYW5nZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4quC4luC4suC4meC4sOC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4l+C4teC5iOC4iOC4sOC5g+C4iuC5ieC5gOC4m+C5h+C4meC4leC4seC4p+C4geC4o+C4reC4h+C5g+C4meC4oOC4suC4nuC4o+C4p+C4oeC4leC4seC4p+C4iOC4seC4lOC4geC4suC4o+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4quC4luC4suC4meC4sOC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4l+C4teC5iOC4iOC4sOC5g+C4iuC5ieC5gOC4m+C5h+C4meC4leC4seC4p+C4geC4o+C4reC4h+C5g+C4meC4oOC4suC4nuC4o+C4p+C4oeC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4quC4luC4suC4meC4sOC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4l+C4teC5iOC4iOC4sOC5g+C4iuC5ieC5gOC4m+C5h+C4meC4leC4seC4p+C4geC4o+C4reC4h+C5g+C4meC4oOC4suC4nuC4o+C4p+C4oeC4leC4suC4o+C4suC4h+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4peC4ueC4geC4hOC5ieC4sic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguIrguLfguYjguK3guIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguYDguKPguLTguYjguKHguJXguYnguJnguKrguLPguKvguKPguLHguJrguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguIjguLPguKXguK3guIfguIvguLbguYjguIfguIjguLPguYDguJvguYfguJnguYDguJ7guLfguYjguK3guYHguIHguYnguYTguILguYHguKHguYjguYHguJrguJrguYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LmA4LiB4LiT4LiR4LmM4LiB4Liy4Lij4LiI4Lix4LiU4LmA4Lij4Li14Lii4LiH4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4Lih4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHIFBTQSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LmA4LiB4LiT4LiR4LmM4LiB4Liy4Lij4LiI4Lix4LiU4LmA4Lij4Li14Lii4LiH4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4Lih4LiV4Lix4LmL4Lin4LiI4Lix4LiU4LiB4Liy4Lij4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJ+C4geC4s+C4q+C4meC4lOC5gOC4geC4k+C4keC5jOC4geC4suC4o+C4iOC4seC4lOC5gOC4o+C4teC4ouC4h+C5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC5g+C4meC4oOC4suC4nuC4o+C4p+C4oeC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC5gOC4geC4k+C4keC5jOC4geC4suC4o+C4iOC4seC4lOC5gOC4o+C4teC4ouC4h+C5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC5g+C4meC4oOC4suC4nuC4o+C4p+C4oeC4leC4suC4o+C4suC4h+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LmA4LiB4LiT4LiR4LmM4LiB4Liy4Lij4LiI4Lix4LiU4LmA4Lij4Li14Lii4LiH4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4LihIE15Q0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LmA4LiB4LiT4LiR4LmM4LiB4Liy4Lij4LiI4Lix4LiU4LmA4Lij4Li14Lii4LiH4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4LihIE15Q2hhbmdlcyAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguYDguIHguJPguJHguYzguIHguLLguKPguIjguLHguJTguYDguKPguLXguKLguIfguYDguKPguLTguYjguKHguJXguYnguJnguILguK3guIfguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguYPguJnguKDguLLguJ7guKPguKfguKEgTXlXb3Jrb3JkZXJzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LmA4LiB4LiT4LiR4LmM4LiB4Liy4Lij4LiI4Lix4LiU4LmA4Lij4Li14Lii4LiH4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4LihIFBJUic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC5gOC4geC4k+C4keC5jOC4geC4suC4o+C4iOC4seC4lOC5gOC4o+C4teC4ouC4h+C5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC4guC4reC4h+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C5g+C4meC4oOC4suC4nuC4o+C4p+C4oeC4leC4suC4o+C4suC4h+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4peC4ueC4geC4hOC5ieC4sic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LmA4LiB4LiT4LiR4LmM4LiB4Liy4Lij4LiI4Lix4LiU4LmA4Lij4Li14Lii4LiH4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4Lih4Lij4Li54Lib4LmB4Lia4LiaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAn4LiB4Liz4Lir4LiZ4LiU4LmA4LiB4LiT4LiR4LmM4LiB4Liy4Lij4LiI4Lix4LiU4LmA4Lij4Li14Lii4LiH4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4LihIE15Q0FCICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICfguIHguLPguKvguJnguJTguYDguIHguJPguJHguYzguIHguLLguKPguIjguLHguJTguYDguKPguLXguKLguIfguYDguKPguLTguYjguKHguJXguYnguJnguYPguJnguKDguLLguJ7guKPguKfguKEgTXlDaGFuZ2VzICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC5gOC4geC4k+C4keC5jOC4geC4suC4o+C4iOC4seC4lOC5gOC4o+C4teC4ouC4h+C5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC5g+C4meC4oOC4suC4nuC4o+C4p+C4oSBNeVdvcmtvcmRlcnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAn4LiB4Liz4Lir4LiZ4LiU4LmA4LiB4LiT4LiR4LmM4LiB4Liy4Lij4LiI4Lix4LiU4LmA4Lij4Li14Lii4LiH4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4LihIFBJUiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0gJ+C4geC4s+C4q+C4meC4lOC5gOC4geC4k+C4keC5jOC4geC4suC4o+C4iOC4seC4lOC5gOC4o+C4teC4ouC4h+C5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC5g+C4meC4oOC4suC4nuC4o+C4p+C4oeC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyBQU0EgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguYDguIHguJPguJHguYzguIHguLLguKPguIjguLHguJTguYDguKPguLXguKLguIfguYDguKPguLTguYjguKHguJXguYnguJnguYPguJnguKDguLLguJ7guKPguKfguKHguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguJXguLHguKfguIHguLLguKPguIjguLHguJTguIHguLLguKMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAn4LiB4Liz4Lir4LiZ4LiU4LmA4LiB4LiT4LiR4LmM4LiB4Liy4Lij4LiI4Lix4LiU4LmA4Lij4Li14Lii4LiH4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4Lih4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LmA4LiB4LiT4LiR4LmM4LiB4Liy4Lij4LiI4Lix4LiU4LmA4Lij4Li14Lii4LiH4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4Lih4LiV4Liy4Lij4Liy4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LmA4LiB4LiT4LiR4LmM4LiB4Liy4Lij4LiI4Lix4LiU4LmA4Lij4Li14Lii4LiH4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4Lih4LiV4Liy4Lij4Liy4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4Lil4Li54LiB4LiE4LmJ4LiyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAn4LiB4Liz4Lir4LiZ4LiU4LmA4LiB4LiT4LiR4LmM4LiB4Liy4Lij4LiI4Lix4LiU4LmA4Lij4Li14Lii4LiH4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4Lih4Lij4Li54Lib4LmB4Lia4LiaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICfguIHguLPguKvguJnguJTguJvguKPguLDguYDguKDguJfguYDguKPguLTguYjguKHguJXguYnguJnguKrguLPguKvguKPguLHguJrguJvguKPguLDguYDguKDguJfguILguK3guIfguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICfguIHguLPguKvguJnguJTguJvguKPguLDguYDguKDguJfguYDguKPguLTguYjguKHguJXguYnguJnguKrguLPguKvguKPguLHguJrguJzguKXguIHguKPguLDguJfguJrguILguK3guIfguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VCdWlsZGVySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VNYW5hZ2VySUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBEeW5hbWljRmllbGQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBJbXBhY3RJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFZmZvcnQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQcmlvcml0eUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJOdW1iZXIgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVGl0bGUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUeXBlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguKPguLDguKLguLDguYDguKfguKXguLIgKOC5g+C4meC4m+C4teC4l+C4teC5iOC4nOC5iOC4suC4meC4oeC4sikg4LiL4Li24LmI4LiH4Lin4Lix4LiZ4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LmB4Lil4Liw4Lin4Lix4LiZ4Liq4Li04LmJ4LiZ4Liq4Li44LiU4Liq4Liy4Lih4Liy4Lij4LiW4LmA4Lil4Li34Lit4LiB4LmE4LiU4LmJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGF0dHJpYnV0ZXMgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIHRvb2x0aXAgb2YgdGhlIHdvcmtvcmRlciBncmFwaCBpbiB0aGUgY2hhbmdlIHpvb20uIFRvIHNob3cgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGluIHRoZSB0b29sdGlwLCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGxpa2UgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguITguLjguJPguKXguLHguIHguKnguJPguLDguILguK3guIfguYPguJrguKrguLHguYjguIfguIfguLLguJnguJfguLXguYjguIjguLDguYHguKrguJTguIfguYPguJnguITguLPguYHguJnguLDguJnguLPguILguK3guIfguIHguKPguLLguJ/guYPguJrguKrguLHguYjguIfguIfguLLguJnguYPguJnguIHguLLguKPguIvguLnguKHguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcg4LmA4Lie4Li34LmI4Lit4LmB4Liq4LiU4LiH4Lif4Li04Lil4LiU4LmM4LmB4Lia4Lia4LmE4LiU4LiZ4Liy4Lih4Li04LiB4LiC4Lit4LiH4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZ4LmD4LiZ4LiE4Liz4LmB4LiZ4Liw4LiZ4Liz4LiX4Li14LmI4Lie4Lin4LiB4LmA4LiC4Liy4LiI4Liw4LiV4LmJ4Lit4LiH4Lij4Liw4Lia4Li44LmA4LiK4LmI4LiZIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiDguK/guKXguK8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4hOC4reC4peC4seC4oeC4meC5jOC4l+C4teC5iOC4iOC4sOC5geC4quC4lOC4h+C5g+C4meC4oOC4suC4nuC4o+C4p+C4oeC4guC4reC4h+C4oOC4suC4nuC4o+C4p+C4oeC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyBQU0Eg4LiV4Lix4Lin4LmA4Lil4Li34Lit4LiB4LiZ4Li14LmJ4LiI4Liw4LmE4Lih4LmI4Lih4Li14Lic4Lil4LiV4LmI4Lit4LiV4Liz4LmB4Lir4LiZ4LmI4LiH4LiC4Lit4LiH4LiE4Lit4Lil4Lix4Lih4LiZ4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4hOC4reC4peC4seC4oeC4meC5jOC4l+C4teC5iOC4iOC4sOC5geC4quC4lOC4h+C5g+C4meC4oOC4suC4nuC4o+C4p+C4oeC4leC4suC4o+C4suC4h+C5gOC4p+C4peC4suC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyDguJXguLHguKfguYDguKXguLfguK3guIHguJnguLXguYnguIjguLDguYTguKHguYjguKHguLXguJzguKXguJXguYjguK3guJXguLPguYHguKvguJnguYjguIfguILguK3guIfguITguK3guKXguLHguKHguJnguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguITguK3guKXguLHguKHguJnguYzguJfguLXguYjguIjguLDguYHguKrguJTguIfguYPguJnguKDguLLguJ7guKPguKfguKEgTXlDQUIgIOC4leC4seC4p+C5gOC4peC4t+C4reC4geC4meC4teC5ieC4iOC4sOC5hOC4oeC5iOC4oeC4teC4nOC4peC4leC5iOC4reC4leC4s+C5geC4q+C4meC5iOC4h+C4guC4reC4h+C4hOC4reC4peC4seC4oeC4meC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguITguK3guKXguLHguKHguJnguYzguJfguLXguYjguIjguLDguYHguKrguJTguIfguYPguJnguKDguLLguJ7guKPguKfguKEgTXlDaGFuZ2VzICDguJXguLHguKfguYDguKXguLfguK3guIHguJnguLXguYnguIjguLDguYTguKHguYjguKHguLXguJzguKXguJXguYjguK3guJXguLPguYHguKvguJnguYjguIfguILguK3guIfguITguK3guKXguLHguKHguJnguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LiE4Lit4Lil4Lix4Lih4LiZ4LmM4LiX4Li14LmI4LiI4Liw4LmB4Liq4LiU4LiH4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4LihIE15V29ya29yZGVycyAg4LiV4Lix4Lin4LmA4Lil4Li34Lit4LiB4LiZ4Li14LmJ4LiI4Liw4LmE4Lih4LmI4Lih4Li14Lic4Lil4LiV4LmI4Lit4LiV4Liz4LmB4Lir4LiZ4LmI4LiH4LiC4Lit4LiH4LiE4Lit4Lil4Lix4Lih4LiZ4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4hOC4reC4peC4seC4oeC4meC5jOC4l+C4teC5iOC4iOC4sOC5geC4quC4lOC4h+C5g+C4meC4oOC4suC4nuC4o+C4p+C4oSBQSVIg4LiV4Lix4Lin4LmA4Lil4Li34Lit4LiB4LiZ4Li14LmJ4LiI4Liw4LmE4Lih4LmI4Lih4Li14Lic4Lil4LiV4LmI4Lit4LiV4Liz4LmB4Lir4LiZ4LmI4LiH4LiC4Lit4LiH4LiE4Lit4Lil4Lix4Lih4LiZ4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LiE4Lit4Lil4Lix4Lih4LiZ4LmM4LiX4Li14LmI4LiI4Liw4LmB4Liq4LiU4LiH4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4Lih4LiV4Lix4Lin4LiI4Lix4LiU4LiB4Liy4Lij4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHIOC4leC4seC4p+C5gOC4peC4t+C4reC4geC4meC4teC5ieC4iOC4sOC5hOC4oeC5iOC4oeC4teC4nOC4peC4leC5iOC4reC4leC4s+C5geC4q+C4meC5iOC4h+C4guC4reC4h+C4hOC4reC4peC4seC4oeC4meC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguITguK3guKXguLHguKHguJnguYzguJfguLXguYjguIjguLDguYHguKrguJTguIfguYPguJnguKDguLLguJ7guKPguKfguKHguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcg4LiV4Lix4Lin4LmA4Lil4Li34Lit4LiB4LiZ4Li14LmJ4LiI4Liw4LmE4Lih4LmI4Lih4Li14Lic4Lil4LiV4LmI4Lit4LiV4Liz4LmB4Lir4LiZ4LmI4LiH4LiC4Lit4LiH4LiE4Lit4Lil4Lix4Lih4LiZ4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguITguK3guKXguLHguKHguJnguYzguJfguLXguYjguIjguLDguYHguKrguJTguIfguYPguJnguITguYnguJnguKvguLLguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcg4LiV4Lix4Lin4LmA4Lil4Li34Lit4LiB4LiZ4Li14LmJ4LiI4Liw4LmE4Lih4LmI4Lih4Li14Lic4Lil4LiV4LmI4Lit4LiV4Liz4LmB4Lir4LiZ4LmI4LiH4LiC4Lit4LiH4LiE4Lit4Lil4Lix4Lih4LiZ4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4hOC4reC4peC4seC4oeC4meC5jOC4l+C4teC5iOC4iOC4sOC5geC4quC4lOC4h+C5g+C4meC4oOC4suC4nuC4o+C4p+C4oeC4leC4suC4o+C4suC4h+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4peC4ueC4geC4hOC5ieC4siDguJXguLHguKfguYDguKXguLfguK3guIHguJnguLXguYnguIjguLDguYTguKHguYjguKHguLXguJzguKXguJXguYjguK3guJXguLPguYHguKvguJnguYjguIfguILguK3guIfguITguK3guKXguLHguKHguJnguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguITguK3guKXguLHguKHguJnguYzguJfguLXguYjguIjguLDguYHguKrguJTguIfguYPguJnguKDguLLguJ7guKPguKfguKHguKPguLnguYHguJvguJrguJog4LiV4Lix4Lin4LmA4Lil4Li34Lit4LiB4LiZ4Li14LmJ4LiI4Liw4LmE4Lih4LmI4Lih4Li14Lic4Lil4LiV4LmI4Lit4LiV4Liz4LmB4Lir4LiZ4LmI4LiH4LiC4Lit4LiH4LiE4Lit4Lil4Lix4Lih4LiZ4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNpZ25hbHMgZm9yIGVhY2ggSVRTTSBjaGFuZ2Ugc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHRlbXBsYXRlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4Lib4Lij4Liw4LmA4Lig4LiX4LmB4Lih4LmI4LmB4Lia4Lia4LiX4Li14LmI4LiI4Liw4LiZ4Liz4Lih4Liy4LmD4LiK4LmJ4LmA4Lib4LmH4LiZ4LiV4Lix4Lin4LiB4Lij4Lit4LiH4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4Lih4LmB4Lih4LmI4LmB4Lia4LiaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4Liq4LiW4Liy4LiZ4Liw4LiC4Lit4LiH4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZ4LiX4Li14LmI4LiI4Liw4LiZ4Liz4Lih4Liy4LmD4LiK4LmJ4LmA4Lib4LmH4LiZ4LiV4Lix4Lin4LiB4Lij4Lit4LiH4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4LihIE15V29ya29yZGVycyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4quC4luC4suC4meC4sOC4guC4reC4h+C5g+C4muC4quC4seC5iOC4h+C4h+C4suC4meC4l+C4teC5iOC4iOC4sOC4meC4s+C4oeC4suC5g+C4iuC5ieC5gOC4m+C5h+C4meC4leC4seC4p+C4geC4o+C4reC4h+C5g+C4meC4oOC4suC4nuC4o+C4p+C4oVBJUic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4Lib4Lij4Liw4LmA4Lig4LiX4LiC4Lit4LiH4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZ4LiX4Li14LmI4LiI4Liw4LiZ4Liz4Lih4Liy4LmB4Liq4LiU4LiH4LmD4LiZ4Lig4Liy4Lie4Lij4Lin4LihUElSJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJ+C4geC4s+C4q+C4meC4lOC4p+C5iOC4suC4geC4suC4o+C5geC4iOC5ieC4h+C5gOC4leC4t+C4reC4meC4hOC4p+C4o+C4luC4ueC4geC4quC5iOC4h+C4reC4reC4geC5hOC4m+C4q+C4o+C4t+C4reC5hOC4oeC5iCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LiW4LmJ4Liy4Lir4Liy4LiB4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmM4Liq4Liy4Lih4Liy4Lij4LiW4LmB4Lil4LiB4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4LiB4LiZIFgg4LiC4Lit4LiH4Liq4LiW4Li04LiV4Li04LiW4LmJ4Liy4LmA4LiC4Liy4Liq4Lij4LmJ4Liy4LiH4LmB4LiE4LmI4Lir4LiZ4Li24LmI4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4q+C4suC4geC5guC4oeC4lOC4ueC4peC4quC4luC4tOC4leC4tOC4l+C4teC5iOC4nuC4muC4muC5iOC4reC4ouC4reC4suC4iOC4quC4o+C5ieC4suC4h+C4quC4luC4tOC4leC4tOC5gOC4geC4teC5iOC4ouC4p+C4geC4seC4muC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4quC4s+C4q+C4o+C4seC4muC4hOC4peC4suC4quC4o+C4suC4ouC4geC4suC4o+C4geC4suC4o+C4leC4seC5ieC4h+C4hOC5iOC4sic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LiW4LmJ4Liy4Lir4Liy4LiB4LmC4Lih4LiU4Li54Lil4Liq4LiW4Li04LiV4Li04LiX4Li14LmI4Lie4Lia4Lia4LmI4Lit4Lii4Lit4Liy4LiI4Liq4Lij4LmJ4Liy4LiH4Liq4LiW4Li04LiV4Li04LmA4LiB4Li14LmI4Lii4Lin4LiB4Lix4Lia4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LmD4LiZ4LiB4Liy4Lij4Lit4Lix4Lie4LmA4LiU4LiV4Liq4LiW4Liy4LiZ4Liw4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4Lig4Liy4Lii4LmD4LiZ4Lij4Liw4Lii4Liw4LmA4Lin4Lil4Liy4LiX4Li14LmI4LiB4Liz4Lir4LiZ4LiUJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguJbguYnguLLguKvguLLguIHguYLguKHguJTguLnguKXguKrguJbguLTguJXguLTguJfguLXguYjguJ7guJrguJrguYjguK3guKLguK3guLLguIjguKrguKPguYnguLLguIfguKrguJbguLTguJXguLTguYDguIHguLXguYjguKLguKfguIHguLHguJrguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguYPguJnguITguKfguLLguKHguKrguLHguKHguJ7guLHguJnguJjguYzguKPguLDguKvguKfguYjguLLguIfguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguYHguKXguLDguJXguLHguYvguKfguJfguLXguYjguYDguIHguLTguJTguILguLbguYnguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4q+C4suC4geC5guC4oeC4lOC4ueC4peC4quC4luC4tOC4leC4tOC4l+C4teC5iOC4nuC4muC4muC5iOC4reC4ouC4reC4suC4iOC4quC4o+C5ieC4suC4h+C4quC4luC4tOC4leC4tOC5gOC4geC4teC5iOC4ouC4p+C4geC4seC4muC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguKvguLLguIHguYLguKHguJTguLnguKXguKrguJbguLTguJXguLTguJfguLXguYjguJ7guJrguJrguYjguK3guKLguK3guLLguIjguKrguKPguYnguLLguIfguKrguJbguLTguJXguLTguYDguIHguLXguYjguKLguKfguIHguLHguJrguIjguLPguJnguKfguJnguILguK3guIfguJXguLHguYvguKcgUkZDIOC4nOC4ueC5ieC4o+C5ieC4reC4h+C4guC4reC4l+C4teC5iOC4quC4o+C5ieC4suC4h+C4guC4tuC5ieC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJ+C5guC4oeC4lOC4ueC4peC4iOC4seC4lOC4geC4tOC4iOC4geC4o+C4o+C4oSBEeW5hbWljRmllbGQg4LmA4Lie4Li34LmI4Lit4LiI4Lix4LiU4LiB4Liy4Lij4LiB4Lix4Lia4LiB4Liy4Lij4Lit4Lix4Lie4LmA4LiU4LiV4LmA4LiH4Li34LmI4Lit4LiZ4LmE4LiC4LiW4LmJ4Liy4Lif4Li04Lil4LiU4LmM4LmB4Lia4Lia4LmE4LiU4LiZ4Liy4Lih4Li04LiB4LiX4Li14LmI4Lih4Li14LiB4Liy4Lij4LmA4Lie4Li04LmI4LihIOC4geC4suC4o+C4m+C4o+C4seC4muC4m+C4o+C4uOC4h+C4q+C4o+C4t+C4reC4peC4mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICdJVFNNIENoYW5nZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICfguYLguKHguJTguLnguKXguYDguKvguJXguLjguIHguLLguKPguJPguYwgSVRTTSDguJfguLXguYjguIjguLDguKXguJrguYDguIfguLfguYjguK3guJnguYTguIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJ+C5guC4oeC4lOC4ueC4peC5gOC4q+C4leC4uOC4geC4suC4o+C4k+C5jCBJVFNNIOC4l+C4teC5iOC4iOC4sOC4peC4muC4geC4suC4o+C5geC4hOC4iuC4quC4s+C4q+C4o+C4seC4muC5geC4luC4muC5gOC4hOC4o+C4t+C5iOC4reC4h+C4oeC4t+C4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICfguYLguKHguJTguLnguKXguYDguKvguJXguLjguIHguLLguKPguJPguYwgSVRTTSDguJfguLXguYjguIjguLHguJrguITguLnguYjguYDguIfguLfguYjguK3guJnguYTguILguYHguKXguLDguJTguLPguYDguJnguLTguJnguIHguLLguKPguIHguLLguKPguIHguKPguLDguJfguLMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJ+C5guC4oeC4lOC4ueC4peC5gOC4q+C4leC4uOC4geC4suC4o+C4k+C5jCBJVFNNIOC4l+C4teC5iOC4quC5iOC4h+C4geC4suC4o+C5geC4iOC5ieC4h+C5gOC4leC4t+C4reC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICfguYLguKHguJTguLnguKXguYDguKvguJXguLjguIHguLLguKPguJPguYwgSVRTTSDguJfguLXguYjguK3guLHguJvguYDguJTguJXguJvguKPguLDguKfguLHguJXguLTguILguK3guIfguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAn4LmC4Lih4LiU4Li54Lil4LmA4Lir4LiV4Li44LiB4Liy4Lij4LiT4LmMIElUU00g4LiX4Li14LmI4LiE4Liz4LiZ4Lin4LiT4LiI4Liz4LiZ4Lin4LiZ4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZ4LmD4Lir4Lih4LmIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJ+C5guC4oeC4lOC4ueC4peC5gOC4q+C4leC4uOC4geC4suC4o+C4k+C5jCBJVFNNIOC5gOC4nuC4t+C5iOC4reC4leC4seC5ieC4h+C4hOC5iOC4suC5gOC4p+C4peC4suC5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC5geC4peC4sOC5gOC4p+C4peC4suC4quC4tOC5ieC4meC4quC4uOC4lOC4l+C4teC5iOC5gOC4geC4tOC4lOC4guC4tuC5ieC4meC4iOC4o+C4tOC4h+C4guC4reC4h+C5g+C4muC4quC4seC5iOC4h+C4h+C4suC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnSVRTTUNoYW5nZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAn4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZ4LiC4Lit4LiHSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgY2hhbmdlIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBhbGwgd29ya29yZGVyIGV2ZW50cyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEdVSS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIENBQiBtZW1iZXJzIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9va3VwIG9mIGFnZW50cywgdXNlZCBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSB0aGUgY2F0ZWdvcnkg4oaUIGltcGFjdCDihpQgcHJpb3JpdHkgbWF0cml4Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgaWYgV29ya09yZGVyQWRkIG9yIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBzaG91bGQgYmUgcGVybWl0dGVkLid9ID0KICAgICAgICAn4LmC4Lih4LiU4Li54Lil4LmA4Lie4Li34LmI4Lit4LiV4Lij4Lin4LiI4Liq4Lit4Lia4Lin4LmI4LiyIFdvcmtPcmRlckFkZCDguKvguKPguLfguK0gV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIOC4hOC4p+C4o+C5hOC4lOC5ieC4o+C4seC4muC4geC4suC4o+C4reC4meC4uOC4jeC4suC4lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIENBQiBtZW1iZXJzLid9ID0gJ+C5guC4oeC4lOC4ueC4peC5g+C4meC4geC4suC4o+C4leC4o+C4p+C4iOC4quC4reC4muC4quC4oeC4suC4iuC4tOC4gSBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICfguYLguKHguJTguLnguKXguYPguJnguIHguLLguKPguJXguKPguKfguIjguKrguK3guJrguYDguK3guYDguKLguYjguJnguJXguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICfguYLguKHguJTguLnguKXguYPguJnguIHguLLguKPguJXguKPguKfguIjguKrguK3guJrguJzguLnguYnguKrguKPguYnguLLguIdDaGFuZ2UgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPSAn4LmC4Lih4LiU4Li54Lil4LiB4Liy4Lij4LiV4Lij4Lin4LiI4Liq4Lit4Lia4Lic4Li54LmJ4LiI4Lix4LiU4LiB4Liy4LijQ2hhbmdlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICfguYLguKHguJTguLnguKXguYPguJnguIHguLLguKPguJXguKPguKfguIjguKrguK3guJrguYDguK3guYDguKLguYjguJnguJXguYzguYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nfSA9ICfguYLguKHguJTguLnguKXguYPguJnguIHguLLguKPguJXguKPguKfguIjguKrguK3guJrguKfguYjguLLguYDguIvguJXguYPguJrguKrguLHguYjguIfguIfguLLguJnguKvguKPguLfguK3guYTguKHguYgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAn4LmC4Lih4LiU4Li54Lil4LmD4LiZ4LiB4Liy4Lij4LiV4Lij4Lin4LiI4Liq4Lit4Lia4Lin4LmI4Liy4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmM4Lia4Lij4Lij4LiI4Li44Lit4Lii4Li54LmI4LmD4LiZ4Lij4Liy4Lii4LiB4Liy4Lij4LiC4Lit4LiH4LiB4Liy4Lij4LiB4Liz4Lir4LiZ4LiU4LiE4LmI4Liy4Lir4Lij4Li34Lit4LmE4Lih4LmIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBzaG93IGEgbGluayB0byBjcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4gVGhlIHRpY2tldCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIG5ldyBjaGFuZ2UuJ30gPQogICAgICAgICfguYLguKHguJTguLnguKXguYPguJnguIHguLLguKPguYHguKrguJTguIfguKXguLTguIfguITguYzguYDguJ7guLfguYjguK3guKrguKPguYnguLLguIfguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguIjguLLguIHguJXguLHguYvguKfguJnguLXguYkg4LiV4Lix4LmL4Lin4LiZ4Li14LmJ4LiI4Liw4Lil4Li04LiH4LiE4LmM4LiB4Lix4Lia4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LmD4Lir4Lih4LmI4LmC4LiU4Lii4Lit4Lix4LiV4LmC4LiZ4Lih4Lix4LiV4Li0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICfguYPguKvguKHguYggKOC4iOC4suC4gSDguYHguKHguYjguYHguJrguJopJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgdXNlcnMgb2YgdGhlc2UgZ3JvdXBzIGhhdmUgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0aWNrZXQgdHlwZXMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiBpZiB0aGUgZmVhdHVyZSAiVGlja2V0OjpBY2w6Ok1vZHVsZSMjIzIwMC1UaWNrZXQ6OkFjbDo6TW9kdWxlIiBpcyBlbmFibGVkLid9ID0KICAgICAgICAn4LmA4LiJ4Lie4Liy4Liw4Lic4Li54LmJ4LmD4LiK4LmJ4LiC4Lit4LiH4LiB4Lil4Li44LmI4Lih4LmA4Lir4Lil4LmI4Liy4LiZ4Li14LmJ4LmA4LiX4LmI4Liy4LiZ4Lix4LmJ4LiZ4LiX4Li14LmI4LmE4LiU4LmJ4Lij4Lix4Lia4Lit4LiZ4Li44LiN4Liy4LiV4LmD4Lir4LmJ4LmD4LiK4LmJ4Lij4Li54Lib4LmB4Lia4Lia4LiV4Lix4LmL4Lin4LiV4Liy4Lih4LiX4Li14LmI4LiB4Liz4Lir4LiZ4LiU4LmD4LiZICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIOC4luC5ieC4suC4hOC4uOC4k+C4peC4seC4geC4qeC4k+C4sOC5geC4muC4muC4lOC4seC4h+C4geC4peC5iOC4suC4pyAiVGlrZXQ6OkFjbDo6TW9kdWwjIyMyMDAtVGlrZXQ6OkFjbDo6TW9kdWwiIOC5gOC4m+C4tOC4lOC5g+C4iuC5ieC4h+C4suC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ+C4geC4suC4o+C4leC4seC5ieC4h+C4hOC5iOC4suC4reC4t+C5iOC4meC5hic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICdQSVIgKOC4hOC4p+C4suC4oeC4hOC4tOC4lOC5gOC4q+C5h+C4meC4q+C4peC4seC4h+C4geC4suC4o+C4lOC4s+C5gOC4meC4tOC4meC4geC4suC4oyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C4nuC4suC4o+C4suC4oeC4tOC5gOC4leC4reC4o+C5jOC4quC4s+C4q+C4o+C4seC4muC4reC4reC4muC5gOC4iOC4hCBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sg4LmD4LiZ4Lih4Li44Lih4Lih4Lit4LiH4LiC4Lit4LiH4LiB4Liy4Lij4LiV4Lix4LmJ4LiH4LiE4LmI4Liy4LiC4Lit4LiH4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIGNoYW5nZXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4Lie4Liy4Lij4Liy4Lih4Li04LmA4LiV4Lit4Lij4LmM4Liq4Liz4Lir4Lij4Lix4Lia4LmB4LiV4LmI4Lil4Liw4Lir4LiZ4LmJ4LiyKOC4i+C4tuC5iOC4h+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4iOC4sOC5geC4quC4lOC4hykg4LiC4Lit4LiH4Lig4Liy4Lie4Lij4Lin4Lih4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiC4LiZ4Liy4LiU4LmA4Lil4LmH4LiBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmZvcm1zIHRoZSBjb25maWd1cmVkIGFjdGlvbiBmb3IgZWFjaCBldmVudCAoYXMgYW4gSW52b2tlcikgZm9yIGVhY2ggY29uZmlndXJlZCBXZWJzZXJ2aWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG9mIGFwcHJvdmVkIGNoYW5nZXMgYW5kIHRoZWlyIHNlcnZpY2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgaW4gb3JkZXIgZm9yIGFuIGFnZW50IHRvIHRha2UgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguJXguYnguK3guIfguYPguIrguYnguYDguJ7guLfguYjguK3guYPguKvguYnguYDguK3guYDguKLguYjguJnguJXguYzguJfguLXguYjguIjguLDguKPguLHguJrguYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VzLid9ID0gJ+C4quC4tOC4l+C4mOC4tOC4nuC4tOC5gOC4qOC4qeC4l+C4teC5iOC4iOC4s+C5gOC4m+C5h+C4meC5g+C4meC4geC4suC4o+C5gOC4guC5ieC4suC4luC4tuC4h+C4oOC4suC4nuC4o+C4p+C4oeC4guC4reC4h+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4l+C4seC5ieC4h+C4q+C4oeC4lCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFkZCBhIHdvcmtvcmRlci4nfSA9ICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguYPguJnguIHguLLguKPguYDguJ7guLTguYjguKHguYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjaGFuZ2UgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguYPguJnguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguYDguK3guYDguKLguYjguJnguJXguYzguILguK3guIfguYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlLid9ID0gJ+C4quC4tOC4l+C4mOC4tOC4nuC4tOC5gOC4qOC4qeC4l+C4teC5iOC4iOC4s+C5gOC4m+C5h+C4meC5g+C4meC4geC4suC4o+C4quC4o+C5ieC4suC4h+C5geC4oeC5iOC5geC4muC4muC4iOC4suC4geC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2VzXCcgQ0FCLid9ID0KICAgICAgICAn4Liq4Li04LiX4LiY4Li04Lie4Li04LmA4Lio4Lip4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4LmD4LiZ4LiB4Liy4Lij4Liq4Lij4LmJ4Liy4LiH4LmB4Lih4LmI4LmB4Lia4Lia4LiI4Liy4LiB4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHIENBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAn4Liq4Li04LiX4LiY4Li04Lie4Li04LmA4Lio4Lip4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4LmD4LiZ4LiB4Liy4Lij4Liq4Lij4LmJ4Liy4LiH4LmB4Lih4LmI4LmB4Lia4Lia4LiI4Liy4LiB4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAn4Liq4Li04LiX4LiY4Li04Lie4Li04LmA4Lio4Lip4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4LmD4LiZ4LiB4Liy4Lij4Liq4Lij4LmJ4Liy4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiI4Liy4LiB4LmB4Lih4LmI4LmB4Lia4LiaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAn4Liq4Li04LiX4LiY4Li04Lie4Li04LmA4Lio4Lip4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4LmD4LiZ4LiB4Liy4Lij4Liq4Lij4LmJ4Liy4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAn4Liq4Li04LiX4LiY4Li04Lie4Li04LmA4Lio4Lip4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4LmD4LiZ4LiB4Liy4Lij4Lil4Lia4LmB4Lih4LmI4LmB4Lia4LiaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJ+C4quC4tOC4l+C4mOC4tOC4nuC4tOC5gOC4qOC4qeC4l+C4teC5iOC4iOC4s+C5gOC4m+C5h+C4meC5g+C4meC4geC4suC4o+C4peC4muC5g+C4muC4quC4seC5iOC4h+C4h+C4suC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJ+C4quC4tOC4l+C4mOC4tOC4nuC4tOC5gOC4qOC4qeC4l+C4teC5iOC4iOC4s+C5gOC4m+C5h+C4meC5g+C4meC4geC4suC4o+C4peC4muC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguYPguJnguIHguLLguKPguYHguIHguYnguYTguILguYHguKHguYjguYHguJrguJonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJ+C4quC4tOC4l+C4mOC4tOC4nuC4tOC5gOC4qOC4qeC4l+C4teC5iOC4iOC4s+C5gOC4m+C5h+C4meC5g+C4meC4geC4suC4o+C5geC4geC5ieC5hOC4guC5g+C4muC4quC4seC5iOC4h+C4h+C4suC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguYPguJnguIHguLLguKPguYHguIHguYnguYTguILguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAn4Liq4Li04LiX4LiY4Li04Lie4Li04LmA4Lio4Lip4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4LmD4LiZ4LiB4Liy4Lij4LmB4LiB4LmJ4LmE4LiC4LmA4LiH4Li34LmI4Lit4LiZ4LmE4LiC4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJ+C4quC4tOC4l+C4mOC4tOC4nuC4tOC5gOC4qOC4qeC4l+C4teC5iOC4iOC4s+C5gOC4m+C5h+C4meC5g+C4meC4geC4suC4o+C5geC4geC5ieC5hOC4guC5gOC4meC4t+C5ieC4reC4q+C4suC4guC4reC4h+C5geC4oeC5iOC5geC4muC4mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguYPguJnguIHguLLguKPguYHguIHguYnguYTguILguJzguLnguYnguJfguLXguYjguYDguIHguLXguYjguKLguKfguILguYnguK3guIfguILguK3guIfguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguYPguJnguIHguLLguKPguKLguYnguLLguKLguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguJXguLLguKHguYDguKfguKXguLInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguYPguJnguIHguLLguKPguJ7guLTguKHguJ7guYzguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJ+C4quC4tOC4l+C4mOC4tOC4nuC4tOC5gOC4qOC4qeC4l+C4teC5iOC4iOC4s+C5gOC4m+C5h+C4meC5g+C4meC4geC4suC4o+C4geC4suC4o+C4o+C4teC5gOC4i+C5h+C4leC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAn4Liq4Li04LiX4LiY4Li04Lie4Li04LmA4Lio4Lip4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4LmD4LiZ4LiB4Liy4Lij4LiU4Li54LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJ+C4quC4tOC4l+C4mOC4tOC4nuC4tOC5gOC4qOC4qeC4l+C4teC5iOC4iOC4s+C5gOC4m+C5h+C4meC5g+C4meC4geC4suC4o+C4lOC4ueC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJ+C4quC4tOC4l+C4mOC4tOC4nuC4tOC5gOC4qOC4qeC4l+C4teC5iOC4iOC4s+C5gOC4m+C5h+C4meC5g+C4meC4geC4suC4o+C4lOC4ueC4o+C4suC4ouC4geC4suC4o+C4guC4reC4h+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4l+C4teC5iOC4nOC4ueC5ieC5g+C4iuC5ieC4l+C4teC5iOC5gOC4m+C5h+C4meC4quC4oeC4suC4iuC4tOC4gSBDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguYPguJnguIHguLLguKPguJTguLnguKPguLLguKLguIHguLLguKPguILguK3guIfguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguJfguLXguYjguJzguLnguYnguYPguIrguYnguYDguJvguYfguJnguJzguLnguYnguIjguLHguJTguIHguLLguKPguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguYPguJnguIHguLLguKPguJTguLnguKDguLLguJ7guKPguKfguKHguYHguKHguYjguYHguJrguJrguJfguLHguYnguIfguKvguKHguJQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAn4Liq4Li04LiX4LiY4Li04Lie4Li04LmA4Lio4Lip4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4LmD4LiZ4LiB4Liy4Lij4LiU4Li54LmA4LiH4Li34LmI4Lit4LiZ4LmE4LiC4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguYPguJnguIHguLLguKPguJTguLnguJvguKPguLDguKfguLHguJXguLTguIHguLLguKPguILguK3guIfguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJ+C4quC4tOC4l+C4mOC4tOC4nuC4tOC5gOC4qOC4qeC4l+C4teC5iOC4iOC4s+C5gOC4m+C5h+C4meC5g+C4meC4geC4suC4o+C4lOC4ueC4m+C4o+C4sOC4p+C4seC4leC4tOC4guC4reC4h+C5g+C4muC4quC4seC5iOC4h+C4h+C4suC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguYPguJnguIHguLLguKPguIvguLnguKHguJTguLnguJvguKPguLDguKfguLHguJXguLTguILguK3guIfguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguYPguJnguIHguLLguKPguIvguLnguKHguJTguLnguJvguKPguLDguKfguLHguJXguLTguILguK3guIfguYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICfguKrguLTguJfguJjguLTguJ7guLTguYDguKjguKnguJfguLXguYjguIjguLPguYDguJvguYfguJnguYPguJnguIHguLLguKPguJTguLnguKPguLLguKLguIHguLLguKPguILguK3guIfguIHguLLguKPguIHguLPguKvguJnguJTguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAn4Liq4Li04LiX4LiY4Li04Lie4Li04LmA4Lio4Lip4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4LmD4LiZ4LiB4Liy4Lij4LiU4Li54Lij4Liy4Lii4LiB4Liy4Lij4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHIFBTQSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlcyB3aXRoIGFuIHVwY29taW5nIFBJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpLid9ID0KICAgICAgICAn4Liq4Li04LiX4LiY4Li04Lie4Li04LmA4Lio4Lip4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4LmD4LiZ4LiB4Liy4Lij4LiU4Li54Lij4Liy4Lii4LiB4Liy4Lij4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiU4LmJ4Lin4LiiIFBJUiDguJfguLXguYjguIjguLDguKHguLLguJbguLbguIcgKOC4o+C4teC4p+C4tOC4p+C4q+C4peC4seC4h+C4geC4suC4o+C4lOC4s+C5gOC4meC4tOC4meC4h+C4suC4mSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJ+C4quC4tOC4l+C4mOC4tOC4nuC4tOC5gOC4qOC4qeC4l+C4teC5iOC4iOC4s+C5gOC4m+C5h+C4meC5g+C4meC4geC4suC4o+C4lOC4ueC4o+C4suC4ouC4geC4suC4o+C4guC4reC4h+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4guC4reC4h+C4leC4seC4p+C5gOC4reC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAn4Liq4Li04LiX4LiY4Li04Lie4Li04LmA4Lio4Lip4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4LmD4LiZ4LiB4Liy4Lij4LiU4Li54Lij4Liy4Lii4LiB4Liy4Lij4LiC4Lit4LiH4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZ4LiC4Lit4LiH4LiV4Lix4Lin4LmA4Lit4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAn4Liq4Li04LiX4LiY4Li04Lie4Li04LmA4Lio4Lip4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4LmD4LiZ4LiB4Liy4Lij4LmA4LiC4Li14Lii4LiZ4Lij4Liy4Lii4LiH4Liy4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICfguKvguJnguYnguLLguIjguK3guKvguKXguLHguIfguIjguLLguIHguJfguLXguYjguKrguKPguYnguLLguIfguYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICfguITguYnguJnguKvguLJDaGFuZ2UgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3RzIHRoZSBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGUuICJBdXRvSW5jcmVtZW50IiBpbmNyZW1lbnRzIHRoZSBjaGFuZ2UgbnVtYmVyLCB0aGUgU3lzdGVtSUQgYW5kIHRoZSBjb3VudGVyIGFyZSB1c2VkIHdpdGggU3lzdGVtSUQuY291bnRlciBmb3JtYXQgKGUuZy4gMTAwMTE4LCAxMDAxMTkpLiBXaXRoICJEYXRlIiwgdGhlIGNoYW5nZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjdXJyZW50IGRhdGUgYW5kIGEgY291bnRlcjsgdGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5jb3VudGVyLCBlLmcuIDIwMTAwNjI0MDAwMDEsIDIwMTAwNjI0MDAwMDIuIFdpdGggIkRhdGVDaGVja3N1bSIsIHRoZSBjb3VudGVyIHdpbGwgYmUgYXBwZW5kZWQgYXMgY2hlY2tzdW0gdG8gdGhlIHN0cmluZyBvZiBkYXRlIHBsdXMgdGhlIFN5c3RlbUlELiBUaGUgY2hlY2tzdW0gd2lsbCBiZSByb3RhdGVkIG9uIGEgZGFpbHkgYmFzaXMuIFRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSwgZS5nLiAyMDEwMDYyNDEwMDAwMDE3LCAyMDEwMDYyNDEwMDAwMDI2Lid9ID0KICAgICAgICAn4LmA4Lil4Li34Lit4LiB4LmC4Lih4LiU4Li54Lil4LiV4Lix4Lin4Liq4Lij4LmJ4Liy4LiH4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHICJBdXRvSW5jcmVtZW50IiDguYDguJ7guLTguYjguKHguIjguLPguJnguKfguJnguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcgU3lzdGVtSUQg4LmB4Lil4Liw4LiV4Lix4Lin4LiZ4Lix4Lia4LiI4Liw4LmD4LiK4LmJ4LiB4Lix4LiaIFN5c3RlbUlEIOC4o+C4ueC4m+C5geC4muC4muC4leC4seC4p+C4meC4seC4miAo4LmA4LiK4LmI4LiZIDEwMDExOCwgMTAwMTE5KSDguIHguLHguJogIuC4p+C4seC4meC4l+C4teC5iCIg4LiL4Li24LmI4LiH4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiI4Liw4LiW4Li54LiB4Liq4Lij4LmJ4Liy4LiH4LiC4Li24LmJ4LiZ4LmC4LiU4Lii4Lin4Lix4LiZ4LiX4Li14LmI4Lib4Lix4LiI4LiI4Li44Lia4Lix4LiZ4LmB4Lil4Liw4LiV4Lix4Lin4LiZ4Lix4LiaOyDguKPguLnguJvguYHguJrguJrguJnguLXguYnguKHguLXguKXguLHguIHguKnguJPguLDguYDguIrguYjguJkgWWVhci5Nb250aC5EYXkuY291bnRlciDguYDguIrguYjguJkgMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4g4LiB4Lix4LiaICJEYXRlQ2hlY2tzdW0iIOC4leC4seC4p+C4meC4seC4muC4iOC4sOC4luC4ueC4geC4nOC4meC4p+C4geC5gOC4m+C5h+C4meC4geC4suC4o+C4leC4o+C4p+C4iOC4quC4reC4muC5hOC4m+C4ouC4seC4h+C4quC4leC4o+C4tOC4h+C4p+C4seC4meC4muC4p+C4geC4lOC5ieC4p+C4oiBTeXN0ZW1JRCDguJfguLXguYjguIHguLLguKPguJXguKPguKfguIjguKrguK3guJrguIjguLDguKHguLXguIHguLLguKPguKvguKHguLjguJnguYPguJnguYHguJXguYjguKXguLDguKfguLHguJkg4Lij4Li54Lib4LmB4Lia4Lia4LiZ4Li14LmJ4Lih4Li14Lil4Lix4LiB4Lip4LiT4Liw4LmA4LiK4LmI4LiZWWVhci5Nb250aC5EYXkuU3lzdGVtSUQuQ291bnRlci5DaGVja1N1bSDguYDguIrguYjguJkgMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAn4LiV4Lix4LmJ4LiH4LiE4LmI4Liy4LiC4LiZ4Liy4LiU4LiV4Lix4Lin4LiZ4Lix4Lia4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiZ4LmJ4Lit4Lii4LiX4Li14LmI4Liq4Li44LiUICjguJbguYnguLIgIkF1dG9JbmNyZW1lbnQiIOC5hOC4lOC5ieC4o+C4seC4muC5gOC4peC4t+C4reC4geC5gOC4m+C5h+C4mSBJVFNNQ2hhbmdlIDo6IE51bWJlckdlbmVyYXRvcikg4LiE4LmI4Liy4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LiE4Li34LitIDUg4LiL4Li24LmI4LiH4Lir4Lih4Liy4Lii4LiE4Lin4Liy4Lih4Lin4LmI4Liy4LiV4Lix4Lin4LiZ4Lix4Lia4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LiI4Liy4LiBIDEwMDAwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAn4LiV4Lix4LmJ4LiH4LiE4LmI4Liy4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiC4Lit4LiH4Liq4LiW4Liy4LiZ4Liw4Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAn4LiV4Lix4LmJ4LiH4LiE4LmI4Liy4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiC4Lit4LiH4Liq4LiW4Liy4LiZ4Liw4Liq4Liz4Lir4Lij4Lix4Lia4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LmB4Liq4LiU4LiH4LiB4Liy4Lij4LmA4LiK4Li34LmI4Lit4Lih4LmC4Lii4LiH4LmD4LiZ4LmA4Lih4LiZ4Li54LiX4Li14LmI4Lit4LiZ4Li44LiN4Liy4LiV4Li04LmD4Lir4LmJ4LiB4Liz4Lir4LiZ4LiUCuC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C5gOC4m+C5h+C4meC5geC4oeC5iOC5geC4muC4muC5g+C4meC4oeC4uOC4oeC4oeC4reC4h+C4geC4suC4o+C4i+C4ueC4oeC4guC4reC4h+C5g+C4muC4quC4seC5iOC4h+C4h+C4suC4meC4lOC4seC4h+C4geC4peC5iOC4suC4p+C4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C5gOC4reC5gOC4ouC5iOC4meC4leC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LmB4Liq4LiU4LiH4LiB4Liy4Lij4LmA4LiK4Li34LmI4Lit4Lih4LmC4Lii4LiH4LmD4LiZ4LmA4Lih4LiZ4Li54LiX4Li14LmI4Lit4LiZ4Li44LiN4Liy4LiV4Li04LmD4Lir4LmJ4LmA4LiK4Li34LmI4Lit4Lih4LmC4Lii4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiB4Lix4Lia4Lit4Lit4Lia4LmA4LiI4LiE4Lit4Li34LmI4LiZ4LmD4LiZ4Lih4Li44Lih4Lih4Lit4LiH4LiB4Liy4Lij4LiL4Li54Lih4LiC4Lit4LiH4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZ4LiU4Lix4LiH4LiB4Lil4LmI4Liy4Lin4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C5geC4quC4lOC4h+C4geC4suC4o+C5gOC4iuC4t+C5iOC4reC4oeC5guC4ouC4h+C5g+C4meC5gOC4oeC4meC4ueC4l+C4teC5iOC4reC4meC4uOC4jeC4suC4leC4tOC5g+C4q+C5ieC4ouC5ieC4suC4ouC4iuC5iOC4p+C4h+C5gOC4p+C4peC4suC4guC4reC4h+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C5g+C4meC4oeC4uOC4oeC4oeC4reC4h+C4geC4suC4o+C4i+C4ueC4oeC4guC4reC4h+C4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C5gOC4reC5gOC4ouC5iOC4meC4leC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LmB4Liq4LiU4LiH4Lil4Li04LiH4LiE4LmM4LmD4LiZ4LmA4Lih4LiZ4Li54LmA4Lie4Li34LmI4Lit4LiX4Li14LmI4LmA4LiC4LmJ4Liy4LiU4Li54LmA4LiH4Li34LmI4Lit4LiZ4LmE4LiC4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LmD4LiZ4Lih4Li44Lih4Lih4Lit4LiH4LiB4Liy4Lij4LiL4Li54Lih4LiC4Lit4LiH4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C5geC4quC4lOC4h+C4peC4tOC4h+C4hOC5jOC5g+C4meC5gOC4oeC4meC4ueC5gOC4nuC4t+C5iOC4reC4l+C4teC5iOC5gOC4guC5ieC4suC4iuC4oeC4m+C4o+C4sOC4p+C4seC4leC4tOC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C5g+C4meC4oeC4uOC4oeC4oeC4reC4h+C4geC4suC4o+C4i+C4ueC4oeC4guC4reC4h+C4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C5gOC4reC5gOC4ouC5iOC4meC4leC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LmB4Liq4LiU4LiH4Lil4Li04LiH4LiE4LmM4LmD4LiZ4LmA4Lih4LiZ4Li54LmA4Lie4Li34LmI4Lit4LiX4Li14LmI4LiI4Liw4Lil4Lia4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LmD4LiZ4Lih4Li44Lih4Lih4Lit4LiH4LiB4Liy4Lij4LiL4Li54Lih4LiC4Lit4LiH4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguYHguKrguJTguIfguKXguLTguIfguITguYzguYPguJnguYDguKHguJnguLnguYDguJ7guLfguYjguK3guYHguIHguYnguYTguILguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguYPguJnguKHguLjguKHguKHguK3guIfguIHguLLguKPguIvguLnguKHguILguK3guIfguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguYDguK3guYDguKLguYjguJnguJXguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LmB4Liq4LiU4LiH4Lil4Li04LiH4LiE4LmM4LmD4LiZ4LmA4Lih4LiZ4Li54LmA4Lie4Li34LmI4Lit4LiB4Lil4Lix4Lia4LmE4Lib4Lii4Lix4LiH4Lih4Li44Lih4Lih4Lit4LiH4LiB4Liy4Lij4LiL4Li54Lih4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiC4Lit4LiH4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguYHguKrguJTguIfguKXguLTguIfguITguYzguYPguJnguYDguKHguJnguLnguYDguJ7guLfguYjguK3guJ7guLTguKHguJ7guYzguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguYPguJnguKHguLjguKHguKHguK3guIfguIHguLLguKPguIvguLnguKHguILguK3guIfguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguYDguK3guYDguKLguYjguJnguJXguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguYHguKrguJTguIfguIHguLLguKPguYDguIrguLfguYjguK3guKHguYLguKLguIfguYPguJnguYDguKHguJnguLnguYDguJ7guLfguYjguK3guKPguLXguYDguIvguYfguJXguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguYHguKXguLDguYPguJrguKrguLHguYjguIfguIfguLLguJnguYPguJnguKHguLjguKHguKHguK3guIfguIHguLLguKPguIvguLnguKHguILguK3guIfguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguYDguK3guYDguKLguYjguJnguJXguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LmB4Liq4LiU4LiH4Lib4Lij4Liw4Lin4Lix4LiV4Li04LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHICjguKXguLPguJTguLHguJrguKLguYnguK3guJnguIHguKXguLHguJopIOC5g+C4meC4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C5gOC4reC5gOC4ouC5iOC4meC4leC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBNYWNoaW5lJ30gPSAn4Liq4LiW4Liy4LiZ4Liw4LiB4Lil4LmE4LiBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0b3JlcyBjaGFuZ2UgYW5kIHdvcmtvcmRlciBpZHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgaWQsIHdoaWxlIGEgdXNlciBpcyBlZGl0aW5nIGEgdGVtcGxhdGUuJ30gPQogICAgICAgICfguIjguLHguJTguYDguIHguYfguJrguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguYHguKXguLDguYTguK3guJTguLXguYPguJrguKrguLHguYjguIfguIfguLLguJnguYHguKXguLDguYTguK3guJTguLXguYHguKHguYjguYHguJrguJrguJfguLXguYjguKrguK3guJTguITguKXguYnguK3guIfguIHguLHguJnguILguK3guIfguJ7guKfguIHguYDguILguLLguYPguJnguILguJPguLDguJfguLXguYjguJzguLnguYnguYPguIrguYnguYHguIHguYnguYTguILguYHguKHguYjguYHguJrguJonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICfguKPguLHguJrguYPguJrguKrguLHguYjguIfguIfguLLguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICfguKHguLjguKHguKHguK3guIfguYHguKHguYjguYHguJrguJonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJ+C4leC4seC4p+C4muC5iOC4h+C4iuC4teC5ieC4quC4s+C4q+C4o+C4seC4muC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyDguYDguIrguYjguJkg4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHIyAg4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiC4Lit4LiH4LiJ4Lix4LiZIyDguITguYjguLLguYDguKPguLTguYjguKHguJXguYnguJnguITguLfguK0g4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHIyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSB3b3Jrb3JkZXIsIGUuZy4gV29ya29yZGVyIywgTXlXb3Jrb3JkZXIjLiBUaGUgZGVmYXVsdCBpcyBXb3Jrb3JkZXIjLid9ID0KICAgICAgICAn4LiV4Lix4Lin4Lia4LmI4LiH4LiK4Li14LmJ4Liq4Liz4Lir4Lij4Lix4Lia4LmD4Lia4Liq4Lix4LmI4LiH4LiH4Liy4LiZIOC5gOC4iuC5iOC4mSDguYPguJrguKrguLHguYjguIfguIfguLLguJkjICDguYPguJrguKrguLHguYjguIfguIfguLLguJnguILguK3guIfguInguLHguJkjIOC4hOC5iOC4suC5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC4hOC4t+C4rSDguYPguJrguKrguLHguYjguIfguIfguLLguJkjLlwnOyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAn4LmC4Lih4LiU4Li54LilIEFDTCDguJnguLXguYnguIjguLPguIHguLHguJTguIHguLLguKPguYPguIrguYnguIfguLLguJnguILguK3guIfguJvguKPguLDguYDguKDguJfguJXguLHguYvguKfguJfguLXguYjguIHguLPguKvguJnguJTguYTguKfguYnguYPguJnguJXguLHguKfguYDguKXguLfguK3guIHguJfguLXguYggc3lzY29uZmlnIFwnSVRTTUNoYW5nZSA6OiBBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJyDguYPguKvguYnguIHguLHguJrguJzguLnguYnguYPguIrguYnguILguK3guIfguIHguKXguLjguYjguKHguJnguLHguYnguJnguYbguJXguLLguKHguJfguLXguYjguIHguLPguKvguJnguJTguYPguJkgIklUU01DaGFuZ2UgOjogUmVzdHJpY3RUaWNrZXRUeXBlcyA6OiBHcm91cHMiCuC5g+C4meC4kOC4suC4meC4sOC4l+C4teC5iOC5gOC4m+C5h+C4mSBBQ0wg4LiZ4Li14LmJ4Lit4Liy4LiI4LiC4Lix4LiU4LmB4Lii4LmJ4LiH4LiB4Lix4LiaIEFDTHMg4Lit4Li34LmI4LiZIOC5hiDguJfguLXguYjguKLguLHguIfguYDguIHguLXguYjguKLguKfguILguYnguK3guIfguIHguLHguJrguJvguKPguLDguYDguKDguJfguJXguLHguYvguKcg4LiV4Lix4Lin4LmA4Lil4Li34Lit4LiBIHN5c2NvbmZpZyDguJnguLXguYnguJbguLnguIHguJvguLTguJTguYPguIrguYnguIfguLLguJnguYLguJTguKLguITguYjguLLguYDguKPguLTguYjguKHguJXguYnguJnguYHguKXguLDguITguKfguKPguIjguLDguYDguJvguLTguJTguYPguIrguYnguIfguLLguJnguYPguJnguIHguKPguJPguLXguJfguLXguYjguIjguLPguYDguJvguYfguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTbG90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGVzIG9mIHRpY2tldHMsIHdoZXJlIGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IGEgbGluayB0byBhZGQgYSBjaGFuZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICfguJvguKPguLDguYDguKDguJfguILguK3guIfguJXguLHguYvguKfguJfguLXguYjguIvguLnguKHguJXguLHguYvguKfguJTguLnguIHguLLguKPguKXguLTguIfguITguYzguJfguLXguYjguIjguLDguYDguJ7guLTguYjguKHguIHguLLguKPguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguIjguLDguJvguKPguLLguIHguI8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZCAoZnJvbSB0ZW1wbGF0ZSkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5IFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgUmVwb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb25jZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWd1bGFybHknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjb25kaXRpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24gbGFuZ3VhZ2U/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uPycsCiAgICAnTm8nLAogICAgJ09rJywKICAgICdQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmcuJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/tr_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6dHJfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICdLYXRhbG9nIFPEsW7EsWbEsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPYmplY3QgTmFtZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIHN0YXRlIHRyYW5zaXRpb25zIGZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgc3RhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnB1dCBpbnZhbGlkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgRGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBDaGFuZ2UgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSB0eXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSB0eXBlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIHRvIGludm9sdmVkIHBlcnNvbnMgc2NyZWVuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgTmFtZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbnMgYW5kIEFjdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENvbmRpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGNvbmRpdGlvbid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbmRpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGEgdmFsaWQgbmFtZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBuYW1lIGlzIG5lZWRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHVwbGljYXRlIG5hbWU6J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbmFtZSBpcyBhbHJlYWR5IHVzZWQgYnkgYW5vdGhlciBjb25kaXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hdGNoaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FueSBleHByZXNzaW9uIChPUiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdG9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZXJhdG9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBFeHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEV4cHJlc3Npb25zIGZvdW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGV4cHJlc3Npb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEFjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBBY3Rpb25zIGZvdW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbmV3IGFjdGlvbid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjaGFuZ2U/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgZGV0YWlscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbGQgVmFsdWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFZhbHVlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJbnZvbHZlZCBQZXJzb25zIG9mICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52b2x2ZWQgUGVyc29ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQWR2aXNvcnkgQm9hcmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgdGhpcyBDQUIgYXMgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRvIENBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlcyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIEVuZCBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJldHdlZW4pJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBsYXRlIHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IFN0YXRlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVyd3JpdGUgb3JpZ2luYWwgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIGNoYW5nZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluZm9ybWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnRlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3IocyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ0FCIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY2hhbmdlIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgd2lsbCBjcmVhdGUgYSBuZXcgd29ya29yZGVyIGZyb20gdGhpcyB0ZW1wbGF0ZSwgc28geW91IGNhbiBlZGl0IGFuZCBzYXZlIGl0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcG9yYXJ5IGNoYW5nZSB3aWxsIGJlIGNyZWF0ZWQgd2hpY2ggY29udGFpbnMgdGhlIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcG9yYXJ5IGNoYW5nZSBhbmQgbmV3IHdvcmtvcmRlciB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciB0aGUgd29ya29yZGVyIGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB3b3Jrb3JkZXIgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIFdvcmtvcmRlci4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgQ29uZGl0aW9uISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhJ30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGFrZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdGFrZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCBjaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGNyZWF0ZSBuZXcgY29uZGl0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgRXhwcmVzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEV4cHJlc3Npb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3I6IFVua25vd24gZmllbGQgdHlwZSAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBkb2VzIG5vdCBoYXZlIGFuIGFsbG93ZWQgY2hhbmdlIHN0YXRlIHRvIGJlIGRlbGV0ZWQhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5IHpvb20sIG5vIEhpc3RvcnlFbnRyeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlIENBQiBmb3IgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyB0aGUgd29ya29yZGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhIGNoYW5nZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRTdGFydFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VSZXNldC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IFdvcmtPcmRlciAlcyBvZiBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTY2hlZHVsZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrIE9yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSnVzdGlmaWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSW5zdHJ1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEltcGFjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVmb3JlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIGZpcnN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbW92ZSBhIGNoYW5nZSB3aGljaCBhbHJlYWR5IGhhcyBzdGFydGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgbW92ZSB0aGUgaW5kaXZpZHVhbCB3b3Jrb3JkZXJzIGluc3RlYWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUZW1wbGF0ZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgdGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gc2V0IHRoZSB3b3Jrb3JkZXIgYWdlbnQgb2YgdGhlIHdvcmtvcmRlciAiJXMiIHRvIGVtcHR5ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0lUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaXRsZTogJXMgfCBUeXBlOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENBQnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBXb3JrIE9yZGVycyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0hpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQWN0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGV4ZWN1dGVkOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENoYW5nZSAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50OiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIERlbGV0ZWQgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcmVxdWVzdGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDb25kaXRpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEV4cHJlc3Npb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRXhwcmVzc2lvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBXb3Jrb3JkZXIgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgJXM6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICd0w7xtw7wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2VNYW5hZ2VyJ30gPSAnJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmFja291dCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICdEacSfZXIgQXlhcmxhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/uk_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6dWtfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGlmaWNhdGlvbiBSdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBub3RpZmljYXRpb24gc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01TdGF0ZU1hY2hpbmUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIFN0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGEgY2F0YWxvZyBjbGFzcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRhbG9nIGNsYXNzIGlzIHJlcXVpcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGFsb2cgQ2xhc3MnfSA9ICfQmtC70LDRgSDQutCw0YLQsNC70L7Qs9GDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09iamVjdCBOYW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3IG92ZXIgc3RhdGUgdHJhbnNpdGlvbnMgZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgbmV3IHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIG5leHQgc3RhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lucHV0IGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBEYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB0aW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIENoYW5nZSBDQUIgYXMgdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gdG8gaW52b2x2ZWQgcGVyc29ucyBzY3JlZW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBOYW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgY29uZGl0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29uZGl0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgYSB2YWxpZCBuYW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEdXBsaWNhdGUgbmFtZTonfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGNvbmRpdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF0Y2hpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW55IGV4cHJlc3Npb24gKE9SKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgZXhwcmVzc2lvbnMgKEFORCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0b3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEFjdGlvbnMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBkZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZGlmaWVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09sZCBWYWx1ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVmFsdWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEludm9sdmVkIFBlcnNvbnMgb2YgJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBBZHZpc29yeSBCb2FyZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIFN0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoZS5nLiAxMCo1MTU1IG9yIDEwNTY1OCopJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUHJpb3JpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoYmV0d2VlbiknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDQUIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFuZ2UgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5ldyBjaGFuZ2Ugd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgaXQgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyB3b3Jrb3JkZXIgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wb3JhcnkgY2hhbmdlIHdpbGwgYmUgY3JlYXRlZCB3aGljaCBjb250YWlucyB0aGUgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbnRlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgdG8gJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgcGxhbm5lZCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBwbGFubmVkIGVuZCB0aW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdC4nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgV29ya29yZGVyIFRlbXBsYXRlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdvcmtvcmRlcj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBXb3Jrb3JkZXIgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIENvbmRpdGlvbihzKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBmb2xsb3dpbmcgd29ya29yZGVycyBhY2NvcmRpbmdseSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGUgcGxhbm5lZCBlbmQgdGltZSBvZiB0aGlzIHdvcmtvcmRlciBpcyBjaGFuZ2VkLCB0aGUgcGxhbm5lZCBzdGFydCB0aW1lcyBvZiBhbGwgZm9sbG93aW5nIHdvcmtvcmRlcnMgd2lsbCBiZSBjaGFuZ2VkIGFjY29yZGluZ2x5J30gPQogICAgICAgICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzLSVzJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBhY3R1YWwgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIHNldCwgd2hlbiB0aGUgYWN0dWFsIGVuZCB0aW1lIGlzIHNldCEnfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byB0YWtlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBXb3Jrb3JkZXIgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIG9yaWdpbmFsIHdvcmtvcmRlciAoYW5kIHN1cnJvdW5kaW5nIGNoYW5nZSknfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyWm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEluZm9ybWF0aW9uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBBZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biBub3RpZmljYXRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgbm90aWZpY2F0aW9uLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIFVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBJVFNNIENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biBjaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gd29ya29yZGVyIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRW5kVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxTdGFydFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIE92ZXJ2aWV3ICglcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVJlc2V0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoIFJlc3VsdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSAlcyBvZiBhbGwgd29ya29yZGVycyBoYXMgdG8gYmUgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB0ZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCB3b3Jrb3JkZXIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSB0aGUgd29ya29yZGVyICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBmaW5kIENoYW5nZSBmb3IgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSBab29tJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uICVzIG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpdGxlOiAlcyB8IFR5cGU6ICVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ0FCcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IFdvcmsgT3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgRGVsZXRlZCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENvbmRpdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIENvbmRpdGlvbnMgb2YgQ2hhbmdlIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQ29uZGl0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRXhwcmVzc2lvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBFeHByZXNzaW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChFeHByZXNzaW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSAlczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0lUU01Db25kaXRpb24vT2JqZWN0L0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FsbCd9ID0gJ9GD0YHRlic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9Ob3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3JzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJ9C90LDRgNGP0LQg0L3QsCDRgNC+0LHQvtGC0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmFja291dCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwaXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ltcGFjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXJJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGVJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBsaXN0IG9mIHdvcmtvcmRlciBzdGF0ZXMsIGF0IHdoaWNoIHRoZSBBY3R1YWxTdGFydFRpbWUgb2YgYSB3b3Jrb3JkZXIgd2lsbCBiZSBzZXQgaWYgaXQgd2FzIGVtcHR5IGF0IHRoaXMgcG9pbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBzdGFydCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciAoZnJvbSBUZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlIGZyb20gdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgd29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGZyb20gdGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIENJUCBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkbWluIG9mIHRoZSBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2UgYWR2aXNvcnkgYm9hcmRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgbWFuYWdlZCBieSB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIE1lbWJlciBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgY2hhbmdlIG1hbmFnZW1lbnQgdG9vbGJhcnMuIERlZmF1bHQ6IDMgaG91cnMgKDE4MCBtaW51dGVzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBDQUIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW52b2x2ZWQgUGVyc29ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2NoZWR1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgVGVtcGxhdGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhbmQgd29ya29yZGVyIHRlbXBsYXRlcyBlZGl0ZWQgYnkgdGhpcyB1c2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGludm9sdmVkIHBlcnNvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGxpbWl0IHBlciBwYWdlIGZvciBDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIG51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2Ugc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZSB3aGljaCBzY3JlZW4gc2hvdWxkIGJlIHNob3duIGFmdGVyIGEgbmV3IHdvcmtvcmRlciBoYXMgYmVlbiBjcmVhdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZ3VyZXMgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IHdoZW4gcGxhbm5lZCB0aGUgc3RhcnQgdGltZSBvciBvdGhlciB0aW1lIHZhbHVlcyBoYXZlIGJlZW4gcmVhY2hlZC9wYXNzZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIGNoYW5nZSBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgZm9yIGEgd29ya29yZGVyLiBUaGlzIGVudHJ5IG11c3QgZXhpc3QgaW4gZ2VuZXJhbCBjYXRhbG9nIGNsYXNzIFwnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlXCcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgdGhlIHNpZ25hbHMgZm9yIGVhY2ggd29ya29yZGVyIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBDaGFuZ2VzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IENoYW5nZSBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEF2YWlsYWJsZSwgMiA9IEVuYWJsZWQgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBjaGFuZ2UgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgdGVtcGxhdGUgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIGFjY291bnRlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcHJpbnQgdGhlIHBsYW5uZWQgZWZmb3J0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgY2hhbmdlIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSBjaGFuZ2UgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiByZWFjaGFibGUgKGFzIGRlZmluZWQgYnkgdGhlIHN0YXRlIG1hY2hpbmUpIHdvcmtvcmRlciBlbmQgc3RhdGVzIHNob3VsZCBiZSBhbGxvd2VkIGlmIGEgd29ya29yZGVyIGlzIGluIGEgbG9ja2VkIHN0YXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGFjY291bnRlZCB0aW1lIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgc2hvdWxkIGJlIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGNoYW5nZSB0aXRsZSBmb3IgYSBkdW1teSBjaGFuZ2Ugd2hpY2ggaXMgbmVlZGVkIHRvIGVkaXQgYSB3b3Jrb3JkZXIgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBQSVIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNhdGVnb3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wYWN0IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIGNoYW5nZSBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3Igd29ya29yZGVyIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgY2hhbmdlIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB3b3Jrb3JkZXIgb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjY291bnRlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2F0ZWdvcnlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZU1hbmFnZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVmZm9ydCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFBsYW5uZWRFbmRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFByaW9yaXR5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBSZXF1ZXN0ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyQWdlbnRJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclR5cGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBlcmlvZCAoaW4geWVhcnMpLCBpbiB3aGljaCBzdGFydCBhbmQgZW5kIHRpbWVzIGNhbiBiZSBzZWxlY3RlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBhdHRyaWJ1dGVzIG9mIGEgd29ya29yZGVyIGluIHRoZSB0b29sdGlwIG9mIHRoZSB3b3Jrb3JkZXIgZ3JhcGggaW4gdGhlIGNoYW5nZSB6b29tLiBUbyBzaG93IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBpbiB0aGUgdG9vbHRpcCwgdGhleSBtdXN0IGJlIHNwZWNpZmllZCBsaWtlIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUxLCBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMiwgZXRjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q0FCIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgUElSIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjaGFuZ2Ugc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaWduYWxzIGZvciBlYWNoIElUU00gY2hhbmdlIHN0YXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSB0ZW1wbGF0ZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgdHlwZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hldGhlciBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyBvZiBhIGNoYW5nZSBoaXN0b3J5IGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIGFuIGFnZW50IGNhbiBleGNoYW5nZSB0aGUgWC1heGlzIG9mIGEgc3RhdCBpZiBoZSBnZW5lcmF0ZXMgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yd2FyZCBzY2hlZHVsZSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvdmVyIGFwcHJvdmVkIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENBQiBUZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE1hbmFnZXIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIE5vdGlmaWNhdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgUElSIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBub3RpZmljYXRpb24gcnVsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2VzJ30gPSAn0JfQvNGW0L3QuCBJVFNNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDQUIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlDaGFuZ2VzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIE15V29ya29yZGVycyBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDQUIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdCBDb250ZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgY2xlYW5zIHVwIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgbWF0Y2hlcyBjb25kaXRpb25zIGFuZCBleGVjdXRlcyBhY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjb25kaXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdG8gcmVjYWxjdWxhdGUgdGhlIHdvcmtvcmRlciBudW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byBzZXQgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIG9mIHdvcmtvcmRlcnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTUNoYW5nZSd9ID0gJ9CX0LzRltC90LAgSVRTTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNV29ya09yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICfQhtC90YjRliDQvdCw0LvQsNGI0YLRg9Cy0LDQvdC90Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzIGZyb20gdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgY2hhbmdlIG1hbmFnZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IG92ZXJ2aWV3IG92ZXIgYWxsIHRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IHpvb20gb2YgYSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIENoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZSBQU0EuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBjaGFuZ2VzIHdpdGggYW4gdXBjb21pbmcgUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIG93biBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gd3JpdGUgYSByZXBvcnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUnVuIHRhc2sgdG8gY2hlY2sgaWYgc3BlY2lmaWMgdGltZXMgaGF2ZSBiZWVuIHJlYWNoZWQgaW4gY2hhbmdlcyBhbmQgd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIGNoYW5nZSBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY2hlZHVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTY3JlZW4gYWZ0ZXIgY3JlYXRpbmcgYSB3b3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIENoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdHMgdGhlIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZS4gIkF1dG9JbmNyZW1lbnQiIGluY3JlbWVudHMgdGhlIGNoYW5nZSBudW1iZXIsIHRoZSBTeXN0ZW1JRCBhbmQgdGhlIGNvdW50ZXIgYXJlIHVzZWQgd2l0aCBTeXN0ZW1JRC5jb3VudGVyIGZvcm1hdCAoZS5nLiAxMDAxMTgsIDEwMDExOSkuIFdpdGggIkRhdGUiLCB0aGUgY2hhbmdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgYSBjb3VudGVyOyB0aGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LmNvdW50ZXIsIGUuZy4gMjAxMDA2MjQwMDAwMSwgMjAxMDA2MjQwMDAwMi4gV2l0aCAiRGF0ZUNoZWNrc3VtIiwgdGhlIGNvdW50ZXIgd2lsbCBiZSBhcHBlbmRlZCBhcyBjaGVja3N1bSB0byB0aGUgc3RyaW5nIG9mIGRhdGUgcGx1cyB0aGUgU3lzdGVtSUQuIFRoZSBjaGVja3N1bSB3aWxsIGJlIHJvdGF0ZWQgb24gYSBkYWlseSBiYXNpcy4gVGhpcyBmb3JtYXQgbG9va3MgbGlrZSBZZWFyLk1vbnRoLkRheS5TeXN0ZW1JRC5Db3VudGVyLkNoZWNrU3VtLCBlLmcuIDIwMTAwNjI0MTAwMDAwMTcsIDIwMTAwNjI0MTAwMDAwMjYuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBhZ2VudCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gdGhlIGNoYW5nZSB6b29tIHNjcmVlbiBhbmQgd29ya29yZGVyIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIE1hY2hpbmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIFdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSB0eXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBjaGFuZ2UsIGUuZy4gQ2hhbmdlIywgTXlDaGFuZ2UjLiBUaGUgZGVmYXVsdCBpcyBDaGFuZ2UjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBBQ0wgbW9kdWxlIHJlc3RyaWN0cyB0aGUgdXN1YWdlIG9mIHRoZSB0aWNrZXQgdHlwZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3lzY29uZmlnIG9wdGlvbiBcJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc1wnLCB0byB1c2VycyBvZiB0aGUgZ3JvdXBzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcyIuIEFzIHRoaXMgQUNMIGNvdWxkIGNvbGxpZGUgd2l0aCBvdGhlciBBQ0xzIHdoaWNoIGFyZSBhbHNvIHJlbGF0ZWQgdG8gdGhlIHRpY2tldCB0eXBlLCB0aGlzIHN5c2NvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIGlmIG5lZWRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgb2YgdGlja2V0cywgd2hlcmUgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgYSBsaW5rIHRvIGFkZCBhIGNoYW5nZSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/vi_VN_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6dmlfVk5fSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5IGFsbG9jYXRpb24nfSA9ICdQaMOibiBi4buVIMawdSB0acOqbic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlTWFuYWdlbWVudCBOb3RpZmljYXRpb24gTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05hbWUgaXMgcmVxdWlyZWQuJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTVN0YXRlTWFjaGluZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYSBjYXRhbG9nIGNsYXNzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGFsb2cgY2xhc3MgaXMgcmVxdWlyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ0zhu5twIGRhbmggbeG7pWMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2JqZWN0IE5hbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBzdGF0ZSB0cmFuc2l0aW9ucyBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgc3RhdGUgdHJhbnNpdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhIHN0YXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBleHByZXNzaW9ucyAoQU5EKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHByZXNzaW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3Rvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVyYXRvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgRXhwcmVzc2lvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBFeHByZXNzaW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBleHByZXNzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBBY3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQWN0aW9ucyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBhY3Rpb24nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VFZGl0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0ICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGRldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB3b3Jrb3JkZXInfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludm9sdmVkIFBlcnNvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTWFuYWdlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGludmFsaWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEFkdmlzb3J5IEJvYXJkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHBseSBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXdUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0byBDQUInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQ0FCJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3TmF2QmFyLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE1hbmFnZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbCBFbmQgVGltZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VSZXNldC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHJlc2V0IHRoaXMgY2hhbmdlPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VTZWFyY2gudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhlLmcuIDEwKjUxNTUgb3IgMTA1NjU4KiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBTdGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCBjaGFuZ2UnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlVGltZVNsb3QudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50ZWQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9yKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQnfSA9ICdUaGF5IMSR4buVaSBs4bqnbiBjdeG7kWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ29udGVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlciB0byAlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0Lid9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBXb3Jrb3JkZXIuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIENvbmRpdGlvbiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcy0lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFJlcG9ydCBvZiAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRha2UudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnQgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/J30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTYXZlIFdvcmtvcmRlciBhcyBUZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSW5mb3JtYXRpb24nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2FzIGFuIGVycm9yIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24uJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZG1pbklUU01TdGF0ZU1hY2hpbmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBBZGRlZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgY2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ0FCIG9mIGNoYW5nZSAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEFjdGlvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uSUQgJXMgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBnaXZlbiBDaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNoYW5nZUlEICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeUVudHJ5ICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNYW5hZ2VyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlTWFuYWdlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDQUInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IFdvcmtvcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBJUi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBJUid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUFNBLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUFNBJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIGNoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVmZm9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkU3RhcnRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbFN0YXJ0VGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxFbmRUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgT3ZlcnZpZXcgKCVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUmVzZXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBXb3JrT3JkZXIgJXMgb2YgQ2hhbmdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2UgU2NoZWR1bGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2ggUmVzdWx0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29yayBPcmRlciBUaXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEp1c3RpZmljYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBSZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZm9yZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSB0aGUgdGVtcGxhdGUgIiVzIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlIGNhblwndCBiZSBtb3ZlZCwgYXMgaXQgaGFzIG5vIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIG1vdmUgdGhlIGluZGl2aWR1YWwgd29ya29yZGVycyBpbnN0ZWFkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY3VycmVudCAlcyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gbW92ZSB0aW1lIHNsb3QgZm9yIHdvcmtvcmRlciAjJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIHdvcmtvcmRlciEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFnZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIHRoZSB3b3Jrb3JkZXIgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBlbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBIaXN0b3J5IFpvb20nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRha2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB0YWtlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHdvcmtvcmRlciAiJXMiIGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gJXMgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDQUJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IENoYW5nZXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL015V29ya09yZGVycy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgV29yayBPcmRlcnMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9IaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEFjdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEFjdGlvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBleGVjdXRlZDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEFjdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBDaGFuZ2UgKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBEZWxldGVkICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHJlcXVlc3RlZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQ29uZGl0aW9ucyBvZiBDaGFuZ2UgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBFeHByZXNzaW9uIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgUmVwb3J0IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBEZWxldGVkIFJlcG9ydCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgcGxhbm5lZCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpICVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSVRTTUNvbmRpdGlvbi9PYmplY3QvSVRTTVdvcmtPcmRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYWxsJ30gPSAndOG6pXQgY+G6oyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9Ob3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3JzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmVnaW5zIHdpdGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZW5kcyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3NldCd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24uanMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiB2YXIvaHR0cGQvaHRkb2NzL2pzL0lUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPayd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSBjaGFuZ2UgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIGNoYW5nZSBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBzaG91bGQgYmUgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHN0YXRlIGNhbiBiZSBzZXQgaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHBsYW5uZWQgZWZmb3J0IHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2VhcmNoZWQgYnkgY3VzdG9tZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciB3b3Jrb3JkZXIgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciBjaGFuZ2Ugb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHdvcmtvcmRlciBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWNjb3VudGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDYXRlZ29yeUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlTWFuYWdlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgRHluYW1pY0ZpZWxkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgSW1wYWN0SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRWZmb3J0IGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFJlcXVlc3RlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJBZ2VudElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGVyaW9kIChpbiB5ZWFycyksIGluIHdoaWNoIHN0YXJ0IGFuZCBlbmQgdGltZXMgY2FuIGJlIHNlbGVjdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGF0dHJpYnV0ZXMgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIHRvb2x0aXAgb2YgdGhlIHdvcmtvcmRlciBncmFwaCBpbiB0aGUgY2hhbmdlIHpvb20uIFRvIHNob3cgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGluIHRoZSB0b29sdGlwLCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGxpa2UgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBQSVIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNpZ25hbHMgZm9yIGVhY2ggSVRTTSBjaGFuZ2Ugc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHRlbXBsYXRlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyBkb25lIGZvciBjb25maWcgaXRlbSBjbGFzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01Xb3JrT3JkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZnJlcXVlbmN5IGlzIFwncmVndWxhcmx5XCcsIHlvdSBjYW4gY29uZmlndXJlIGhvdyBvZnRlbiB0aGUgbm90aWZpY2F0aW9ucyBhcmUgc2VudCAoZXZlcnkgWCBob3VycykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIHdvcmtvcmRlciBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBhZ2VudHMsIHVzZWQgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgdGhlIGNhdGVnb3J5IOKGlCBpbXBhY3Qg4oaUIHByaW9yaXR5IG1hdHJpeC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIGlmIFdvcmtPcmRlckFkZCBvciBXb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUgc2hvdWxkIGJlIHBlcm1pdHRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIENBQiBtZW1iZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGFnZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBidWlsZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gY2hlY2sgdGhlIHdvcmtvcmRlciBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgbm8gd29ya29yZGVyIGFnZW50IGlzIHNldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGFnZW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgY29uZmlndXJlZCBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBzaG93IGEgbGluayB0byBjcmVhdGUgYSBjaGFuZ2UgZnJvbSB0aGlzIHRpY2tldC4gVGhlIHRpY2tldCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIG5ldyBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW92ZSBUaW1lIFNsb3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgYWxsIHdvcmtvcmRlcnMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IChmcm9tIHRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IHVzZXJzIG9mIHRoZXNlIGdyb3VwcyBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdGlja2V0IHR5cGVzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgaWYgdGhlIGZlYXR1cmUgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ0PDoGkgxJHhurd0IGtow6FjICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/zh_CN_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6emhfQ05fSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ+mjjumZqeexu+WIqyDihpQg5b2x5ZONIOKGlCDkvJjlhYjnuqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBwcmlvcml0eSByZXN1bHQgb2YgY29tYmluYXRpbmcgQ2F0ZWdvcnkg4oaUIEltcGFjdC4nfSA9CiAgICAgICAgJ+euoeeQhiLpo47pmannsbvliKsg4oaUIOW9seWTjSLnu4TlkIjlhrPlrprnmoTkvJjlhYjnuqfnu5PmnpzjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHkgYWxsb2NhdGlvbid9ID0gJ+S8mOWFiOe6p+WIhumFjSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlTWFuYWdlbWVudCBOb3RpZmljYXRpb24gTWFuYWdlbWVudCd9ID0gJ+euoeeQhuWPmOabtOmAmuefpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICfmt7vliqDpgJrnn6Xop4TliJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJ+e8lui+kemAmuefpeinhOWImSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAn6YCa55+l5b+F6aG75pyJ5ZCN56ew77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05hbWUgaXMgcmVxdWlyZWQuJ30gPSAn5ZCN56ew5piv5b+F6ZyA55qE44CCJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTVN0YXRlTWFjaGluZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gU3RhdGUgTWFjaGluZSd9ID0gJ+euoeeQhueKtuaAgeaooeW8j+i9rOaNoic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYSBjYXRhbG9nIGNsYXNzISd9ID0gJ+mAieaLqeS4gOS4quebruW9leexu++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGFsb2cgY2xhc3MgaXMgcmVxdWlyZWQhJ30gPSAn55uu5b2V57G75piv5b+F6ZyA55qE77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICfmt7vliqDkuIDkuKrnirbmgIHovazmjaInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ+ebruW9leexuyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPYmplY3QgTmFtZSd9ID0gJ+WvueixoeWQjeensCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIHN0YXRlIHRyYW5zaXRpb25zIGZvcid9ID0gJ+eKtuaAgei9rOaNouamguWGtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAn5Yig6Zmk6L+Z5Liq54q25oCB6L2s5o2iJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ+a3u+WKoOS4gOS4quaWsOeahOeKtuaAgei9rOaNoic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgc3RhdGUhJ30gPSAn6K+36YCJ5oup5LiA5Liq54q25oCB77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJ+ivt+mAieaLqeS4gOS4qlwn5LiL5LiA54q25oCBXCfvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yJ30gPSAn57yW6L6R54q25oCB6L2s5o2iJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24nfSA9ICfmgqjnnJ/nmoTmg7PopoHliKDpmaTov5nkuKrnirbmgIHovazmjaInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAn5Yib5bu65Y+Y5pu0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAn5Y+Y5pu0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICfnkIbnlLEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICfovpPlhaXml6DmlYjjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICfor7fmsYLml6XmnJ8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAn6YCJ5oup5Y+Y5pu05qih5p2/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJ+aXtumXtOexu+Weiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICfml6DmlYjnmoTml7bpl7TnsbvlnovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICfmlrDnmoTml7bpl7QnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ+S/neWtmOWPmOabtENBQuS4uuaooeadvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJ+i9rOWQkeebuOWFs+S6uuWRmOeql+WPoyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICfml6DmlYjnmoTlkI3np7AnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAn5p2h5Lu25ZKM5pON5L2cJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICfliKDpmaTmnaHku7YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICfmt7vliqDmlrDnmoTmnaHku7YnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICfnvJbovpHmnaHku7YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAn6ZyA6KaB5LiA5Liq5pyJ5pWI55qE5ZCN56ew44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAn6ZyA6KaB5LiA5Liq5pyJ5pWI55qE5ZCN56ew44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJ+mHjeWkjeeahOWQjeensO+8mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJ+WPpuS4gOS4quadoeS7tuW3suiiq+S9v+eUqOi/h+ivpeWQjeensOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJ+WMuemFjSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAn5Lu75oSP6KGo6L6+5byPKOaIliknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAn5omA5pyJ6KGo6L6+5byPKOS4jiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbnMnfSA9ICfooajovr7lvI8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0b3InfSA9ICfpgInmi6nlmagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICfmk43kvZznrKYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICfliKDpmaTooajovr7lvI8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAn5rKh5pyJ5om+5Yiw6KGo6L6+5byP44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJ+a3u+WKoOaWsOeahOihqOi+vuW8jyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAn5Yig6Zmk5pON5L2cJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEFjdGlvbnMgZm91bmQuJ30gPSAn5rKh5pyJ5om+5Yiw5pON5L2c44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAn5re75Yqg5paw55qE5pON5L2cJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICfmgqjnnJ/nmoTmg7PopoHliKDpmaTov5nkuKrlj5jmm7TlkJc/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcyd9ID0gJ+e8lui+kSVzJXMnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiAlcyVzJ30gPSAn5bel5Y2VJXMlc+eahOWOhuWPsuS/oeaBryc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICfljoblj7LlgLwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyJ30gPSAn5bel5L2c5oyH5LukJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICfliJvlu7rml7bpl7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBkZXRhaWxzJ30gPSAn5pi+56S66K+m5oOFJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgd29ya29yZGVyJ30gPSAn5pi+56S65bel5L2c5oyH5LukJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzJ30gPSAnJXPnmoTor6bnu4bljoblj7Lkv6Hmga8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kaWZpZWQnfSA9ICflt7Lkv67mlLknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2xkIFZhbHVlJ30gPSAn5pen5YC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBWYWx1ZSd9ID0gJ+aWsOWAvCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnMudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzJ30gPSAn57yW6L6RJXMlc+eahOebuOWFs+S6uuWRmCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZvbHZlZCBQZXJzb25zJ30gPSAn55u45YWz5Lq65ZGYJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU1hbmFnZXInfSA9ICflj5jmm7Tnu4/nkIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpbnZhbGlkLid9ID0gJ+eUqOaIt+aXoOaViOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVyJ30gPSAn5Y+Y5pu05Yib5bu65Lq6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBBZHZpc29yeSBCb2FyZCd9ID0gJ+WPmOabtOWSqOivouWnlOWRmOS8mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgVGVtcGxhdGUnfSA9ICdDQULmqKHmnb8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwbHkgVGVtcGxhdGUnfSA9ICflupTnlKjmqKHmnb8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3VGVtcGxhdGUnfSA9ICfmlrDlu7rmqKHmnb8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSB0aGlzIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ+S/neWtmOi/meS4qkNBQuS4uuaooeadvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdG8gQ0FCJ30gPSAn5re75Yqg5YiwQ0FCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgVXNlcid9ID0gJ+aXoOaViOeahOeUqOaItyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IENBQid9ID0gJ+W9k+WJjUNBQic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ+S4iuS4i+aWh+iuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VzIHBlciBwYWdlJ30gPSAn5q+P6aG15pi+56S655qE5Y+Y5pu05Liq5pWwJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBUaXRsZSd9ID0gJ+W3peS9nOaMh+S7pOagh+mimCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGl0bGUnfSA9ICflj5jmm7TmoIfpopgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50J30gPSAn5bel5L2c5oyH5Luk5pyN5Yqh5Lq65ZGYJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBCdWlsZGVyJ30gPSAn5Y+Y5pu05Yib5bu65Lq6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBNYW5hZ2VyJ30gPSAn5Y+Y5pu057uP55CGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcnMnfSA9ICflt6XkvZzmjIfku6QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXRlJ30gPSAn5Y+Y5pu054q25oCBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBTdGF0ZSd9ID0gJ+W3peS9nOaMh+S7pOeKtuaAgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVHlwZSd9ID0gJ+W3peS9nOaMh+S7pOexu+Weiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgVGltZSd9ID0gJ+ivt+axguaXtumXtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIFN0YXJ0IFRpbWUnfSA9ICforqHliJLnmoTlvIDlp4vml7bpl7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFbmQgVGltZSd9ID0gJ+iuoeWIkue7k+adn+aXtumXtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgU3RhcnQgVGltZSd9ID0gJ+WunumZheW8gOWni+aXtumXtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgRW5kIFRpbWUnfSA9ICflrp7pmYXnu5PmnZ/ml7bpl7QnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlUmVzZXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8nfSA9ICfmgqjnnJ/nmoTmg7PopoHph43nva7ov5nkuKrlj5jmm7TlkJfvvJ8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoZS5nLiAxMCo1MTU1IG9yIDEwNTY1OCopJ30gPSAn5L6L5aaC77yaMTAqNTE1NSBvciAxMDU2NTgqJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudCd9ID0gJ0NBQuacjeWKoeS6uuWRmOaIkOWRmCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLmcuJ30gPSAn5L6L5aaC77yaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBDdXN0b21lcid9ID0gJ0NBQuWuouaIt+aIkOWRmCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbid9ID0gJ0lUU03lt6XkvZzmjIfku6Tor7TmmI4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXIgUmVwb3J0J30gPSAnSVRTTeW3peS9nOaMh+S7pOaKpeWRiic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJ0lUU03lj5jmm7TkvJjlhYjnuqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgSW1wYWN0J30gPSAnSVRTTeWPmOabtOW9seWTjSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQ2F0ZWdvcnknfSA9ICflj5jmm7Tpo47pmannsbvliKsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGJlZm9yZS9hZnRlciknfSA9ICfvvIjkuYvliY0v5LmL5ZCO77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJ++8iOWcqC4uLuS5i+mXtO+8iSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICfkv53lrZjlj5jmm7TkuLrmqKHmnb8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAn5qih5p2/5bqU6K+l5pyJ5LiA5Liq5ZCN56ewISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICfmqKHmnb/lkI3np7DmmK/lv4XpnIDnmoTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAn6YeN572u54q25oCBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJ+imhuebluWOn+Wni+aooeadvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAn5Yig6Zmk5Y6f5aeL5Y+Y5pu0JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJ+enu+WKqOaXtumXtOi9tCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICflj5jmm7Tkv6Hmga8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICforqHliJLnlKjml7YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICfmiYDnlKjlt6Xml7YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ+WPmOabtOWPkei1t+S6uic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICdDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAn5pyA5ZCO5L+u5pS5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ+S4iuasoeS/ruaUueS6uic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJ+imgeaJk+W8gOS4i+mdouaPj+i/sOS4reeahOmTvuaOpe+8jOS9oOWPr+iDvemcgOimgeWcqOWNleWHu+mTvuaOpeeahOWQjOaXtuaMieS9jyBDdHJsIOaIliBDbWQg5oiWIFNoaWZ0IOmUriDvvIjlj5blhrPkuo7mgqjnmoTmtY/op4jlmajlkozmk43kvZzns7vnu58g77yJ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICfkuIvovb3pmYTku7YnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENBQiBUZW1wbGF0ZSd9ID0gJ+e8lui+kUNBQuaooeadvyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ+i/meWwhuS7jui/meS4quaooeadv+WIm+W7uuS4gOS4quaWsOeahOWPmOabtO+8jOi/meagt+aCqOiDveWkn+e8lui+keWSjOS/neWtmOWug+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ+aWsOWPmOabtOS/neWtmOS4uuaooeadv+WQju+8jOWwhuiiq+iHquWKqOWIoOmZpOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IHdvcmtvcmRlciBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4nfSA9CiAgICAgICAgJ+i/meWwhuS7jui/meS4quaooeadv+WIm+W7uuS4gOS4quaWsOeahOW3peS9nOaMh+S7pO+8jOi/meagt+aCqOiDveWkn+e8lui+keWSjOS/neWtmOWug+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHRlbXBvcmFyeSBjaGFuZ2Ugd2lsbCBiZSBjcmVhdGVkIHdoaWNoIGNvbnRhaW5zIHRoZSB3b3Jrb3JkZXIuJ30gPQogICAgICAgICflsIbliJvlu7rkuIDkuKrljIXlkKvov5nkuKrlt6XkvZzmjIfku6TnmoTkuLTml7blj5jmm7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRlbXBvcmFyeSBjaGFuZ2UgYW5kIG5ldyB3b3Jrb3JkZXIgd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHdvcmtvcmRlciBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ+aWsOeahOW3peS9nOaMh+S7pOS/neWtmOS4uuaooeadv+WQju+8jOS4tOaXtuWPmOabtOWSjOaWsOeahOW3peS9nOaMh+S7pOmDveWwhuiiq+iHquWKqOWIoOmZpOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3Ugd2FudCB0byBwcm9jZWVkPyd9ID0gJ+aCqOimgee7p+e7rei/m+ihjOWQl++8nyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3U21hbGwudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIElEJ30gPSAn5qih5p2/SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb250ZW50J30gPSAn57yW6L6R5YaF5a65JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBieSd9ID0gJ+WIm+W7uuS6uic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYnknfSA9ICfkv67mlLnkuronOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpbWUnfSA9ICfkv67mlLnml7bpl7QnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIHRvICVzJXMnfSA9ICflsIblt6XkvZzmjIfku6Tmt7vliqDliLAlcyVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc3RydWN0aW9uJ30gPSAn5oyH5LukJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgd29ya29yZGVyIHR5cGUuJ30gPSAn5peg5pWI55qE5bel5L2c5oyH5Luk57G75Z6L44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhJ30gPSAn6K6h5YiS5byA5aeL5pe26Ze05b+F6aG75Zyo6K6h5YiS57uT5p2f5pe26Ze05LmL5YmNISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdC4nfSA9ICfml6DmlYjnmoTmoLzlvI8uJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IFdvcmtvcmRlciBUZW1wbGF0ZSd9ID0gJ+mAieaLqeW3peS9nOaMh+S7pOaooeadvyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyd9ID0gJ+e8lui+keW3peS9nOaMh+S7pCVzJXPnmoTmnI3liqHkurrlkZgnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJ+aCqOecn+eahOaDs+imgeWIoOmZpOi/meS4quW3peS9nOaMh+S7pOWQlz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICfkvaDml6Dms5XliKDpmaTov5nkuKrlt6XkvZzljZXjgILoh7PlsJHmnInkuIDkuKrmnaHku7bnlKjliLDkuoblroMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICfmraTlt6XkvZzmjIfku6Tlh7rnjrDlnKjkuIvliJfmnaHku7bkuK0nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAn57yW6L6RJXMlcy0lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIGFjY29yZGluZ2x5J30gPSAn55u45bqU55qE56e75Yqo5bel5L2c5oyH5LukJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoZSBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyIGlzIGNoYW5nZWQsIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWVzIG9mIGFsbCBmb2xsb3dpbmcgd29ya29yZGVycyB3aWxsIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHknfSA9CiAgICAgICAgJ+WmguaenOivpeW3peS9nOaMh+S7pOeahOiuoeWIkue7k+adn+aXtumXtOaUueWPmOS6hu+8jOaJgOacieWQjue7reW3peS9nOaMh+S7pOeahOiuoeWIkuW8gOWni+aXtumXtOWwhuebuOW6lOeahOaUueWPmCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMtJXMnfSA9ICclcyVzLSVz5Y6G5Y+yJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyd9ID0gJ+e8lui+kSVzJXMtJXPnmoTmiqXlkYonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0J30gPSAn5oql5ZGKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJ+WunumZheW8gOWni+aXtumXtOW/hemhu+WcqOWunumZhee7k+adn+aXtumXtOS5i+WJjSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAn6K6+572u5a6e6ZmF57uT5p2f5pe26Ze05ZCO5b+F6aG76K6+572u5a6e6ZmF5byA5aeL5pe26Ze0ISc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAn5b2T5YmN55qE5pyN5Yqh5Lq65ZGYJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byB0YWtlIHRoaXMgd29ya29yZGVyPyd9ID0gJ+aCqOecn+eahOaDs+imgeWIoOmZpOi/meS4quW3peS9nOaMh+S7pOWQlz8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAn5L+d5a2Y5bel5L2c5oyH5Luk5Li65qih5p2/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAn5Yig6Zmk5Y6f5aeL5bel5L2c5oyH5Luk77yI5ZKM55u45YWz55qE5Y+Y5pu077yJJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJ+W3peS9nOaMh+S7pOS/oeaBryc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAn6YCa55+l5bey5re75Yqg77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJ+acquefpeeahOmAmuefpSVz77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgbm90aWZpY2F0aW9uLid9ID0gJ+WIm+W7uumAmuefpeaXtuWHuueOsOS4gOS4qumUmeivr+OAgic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNU3RhdGVNYWNoaW5lLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIFVwZGF0ZWQhJ30gPSAn54q25oCB6L2s5o2i5bey5pu05paw77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJ30gPSAn54q25oCB6L2s5o2i5bey5re75Yqg77yBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBJVFNNIENoYW5nZXMnfSA9ICfmpoLop4jvvJrlj5jmm7QnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAnVGlja2V0SUTkuLolc+eahOW3peWNleS4jeWtmOWcqO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNaXNzaW5nIHN5c2NvbmZpZyBvcHRpb24gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIhJ30gPQogICAgICAgICfns7vnu5/phY3nva7pgInpobkiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIue8uuWkse+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICfkuI3og73mt7vliqDlj5jmm7TvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICfkuI3og73ku47mqKHmnb/liJvlu7rlj5jmm7TvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICfmsqHmnInmjIflrppDaGFuZ2VJRO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjaGFuZ2UgZm91bmQgZm9yIGNoYW5nZUlEICVzLid9ID0gJ+ayoeacieaJvuWIsENoYW5nZUlE5Li6JXPnmoTlj5jmm7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICfkuI3og73luo/liJfljJblj5jmm7TnmoRDQUIiJXMi44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgdGhlIHRlbXBsYXRlLid9ID0gJ+S4jeiDvea3u+WKoOaooeadv+OAgic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAn5pWw5o2u5bqT5Lit5rKh5pyJ5om+5Yiw5Y+Y5pu0IiVzIu+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIENvbmRpdGlvbklEICVzISd9ID0gJ+S4jeiDveWIoOmZpENvbmRpdGlvbklE5Li6JXPnmoTmnaHku7bvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJ+ayoeacieaMh+WumiVz77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnfSA9ICfkuI3og73liJvlu7rmlrDnmoTmnaHku7bvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IHVwZGF0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICfkuI3og73mm7TmlrBDb25kaXRpb25JROS4uiVz55qE5p2h5Lu277yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJ+S4jeiDveabtOaWsEV4cHJlc3Npb25JROS4uiVz55qE6KGo6L6+5byP77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBhZGQgbmV3IEV4cHJlc3Npb24hJ30gPSAn5LiN6IO95re75Yqg5paw55qE6KGo6L6+5byP77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJ30gPSAn5LiN6IO95pu05pawQWN0aW9uSUTkuLolc+eahOaTjeS9nO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAn5LiN6IO95re75Yqg5paw55qE5pON5L2c77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJ+S4jeiDveWIoOmZpEV4cHJlc3Npb25JROS4uiVz55qE6KGo6L6+5byP77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgQWN0aW9uSUQgJXMhJ30gPSAn5LiN6IO95Yig6ZmkQWN0aW9uSUTkuLolc+eahOaTjeS9nO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAn6ZSZ6K+v77ya5pyq55+l55qE5a2X5q6157G75Z6LIiVzIu+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25JRCAlcyBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIGdpdmVuIENoYW5nZUlEICVzISd9ID0gJ0V4cHJlc3Npb25JROS4uiVz55qE6KGo6L6+5byP5LiN5bGe5LqO5oyH5a6a55qE5Y+Y5pu0SUQgJXPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkISd9ID0KICAgICAgICAn5Y+Y5pu0IiVzIuayoeacieWcqOS4gOS4quWFgeiuuOWIoOmZpOeahOWPmOabtOeKtuaAge+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICfkuI3og73liKDpmaTlj5jmm7RJROS4uiVz55qE5Y+Y5pu077yBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnfSA9ICfkuI3og73mm7TmlrDlj5jmm7TvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ+S4jeiDveaYvuekuuWOhuWPsu+8jOWboOS4uuayoeacieaMh+WumuWPmOabtElE77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAn5pWw5o2u5bqT5Lit5rKh5pyJ5om+5Yiw5Y+Y5pu0IiVzIu+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnfSA9ICfpgYfliLDkuobmnKrnn6XnmoTnsbvlnosiJXMi77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBIaXN0b3J5J30gPSAn5Y+Y5pu05Y6G5Y+yJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnfSA9ICfkuI3og73mmL7npLrljoblj7Lor6bmg4XvvIzlm6DkuLrmsqHmnInmjIflrppIaXN0b3J5RW50cnlJRO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAn5pWw5o2u5bqT5Lit5rKh5pyJ5om+5Yiw5Y6G5Y+y5p2h55uuICIlcyLvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAn5LiN6IO95pu05paw5Y+Y5pu0JXPnmoTlj5jmm7RDQULvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgJXMhJ30gPSAn5LiN6IO95pu05paw5Y+Y5pu0JXPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU1hbmFnZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJ30gPSAn5qaC6KeI77ya5Y+Y5pu057uP55CGJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IE15IENBQid9ID0gJ+amguiniO+8muaIkeeahENBQic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ2hhbmdlcyd9ID0gJ+amguiniO+8muaIkeeahOWPmOabtCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgV29ya29yZGVycyd9ID0gJ+amguiniO+8muaIkeeahOW3peS9nOaMh+Wumic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUElSLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogUElSJ30gPSAn5qaC6KeI77yaUElS77yI5a6e5pa95ZCO6K+E5a6h77yJJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQU0EucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQU0EnfSA9ICfmpoLop4jvvJpQU0HvvIjorqHliJLmnI3liqHlj6/nlKjmgKfvvIknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAn5pWw5o2u5bqT5Lit5rKh5pyJ5om+5Yiw5bel5L2c5oyH5LukIiVzIu+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIG91dHB1dCwgYXMgdGhlIHdvcmtvcmRlciBpcyBub3QgYXR0YWNoZWQgdG8gYSBjaGFuZ2UhJ30gPQogICAgICAgICfkuI3og73liJvlu7rovpPlh7rvvIzlm6DkuLrov5nkuKrlt6XkvZzmjIfku6TmsqHmnInpmYTliqDliLDkuIDkuKrlj5jmm7TkuIrvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIG5vIENoYW5nZUlEIGlzIGdpdmVuISd9ID0gJ+S4jeiDveWIm+W7uui+k+WHuu+8jOWboOS4uuayoeacieaMh+WumuWPmOabtElE77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gY2hhbmdlIHRpdGxlJ30gPSAn5pyq55+l55qE5Y+Y5pu05qCH6aKYJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyJ30gPSAn5bel5L2c5oyH5LukJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlck51bWJlcid9ID0gJ+W3peS9nOaMh+S7pOe8luWPtyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUaXRsZSd9ID0gJ+W3peS9nOaMh+S7pOagh+mimCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd1bmtub3duIHdvcmtvcmRlciB0aXRsZSd9ID0gJ+acquefpeeahOW3peS9nOaMh+S7pOagh+mimCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZSd9ID0gJ+WPmOabtOeKtuaAgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRWZmb3J0J30gPSAn6K6h5YiS5bel5L2c6YePJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NBQiBBZ2VudHMnfSA9ICfmnI3liqHkurrlkZhDQULmiJDlkZgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVycyd9ID0gJ+WuouaIt0NBQuaIkOWRmCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWRUaW1lJ30gPSAn6K+35rGC5pe26Ze0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRTdGFydFRpbWUnfSA9ICforqHliJLlvIDlp4vml7bpl7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZEVuZFRpbWUnfSA9ICforqHliJLnu5PmnZ/ml7bpl7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsU3RhcnRUaW1lJ30gPSAn5a6e6ZmF5byA5aeL5pe26Ze0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdHVhbEVuZFRpbWUnfSA9ICflrp7pmYXnu5PmnZ/ml7bpl7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGltZSd9ID0gJ+S/ruaUueaXtumXtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VOdW1iZXInfSA9ICflj5jmm7TnvJblj7cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyU3RhdGUnfSA9ICflt6XkvZzmjIfku6TnirbmgIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZSd9ID0gJ+W3peS9nOaMh+S7pOexu+Weiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJBZ2VudCd9ID0gJ+W3peS9nOaMh+S7pOacjeWKoeS6uuWRmCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJ30gPSAn5bel5L2c5oyH5Luk5qaC6KeI77yIJXPvvIknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVJlc2V0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnfSA9ICfkuI3og73ph43nva7lt6XkvZzmjIfku6Qlc++8iOWxnuS6juWPmOabtCVz77yJ77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byByZXNldCBDaGFuZ2UgJXMhJ30gPSAn5LiN6IO96YeN572u5Y+Y5pu0JXPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAn5qaC6KeI77ya5Y+Y5pu06K6h5YiSJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICflj5jmm7TmkJzntKInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICflj5jmm7TmoIfpopgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ+W3peS9nOaMh+S7pCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoIFJlc3VsdCd9ID0gJ+WPmOabtOaQnOe0oue7k+aenCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTnVtYmVyJ30gPSAn5Y+Y5pu057yW5Y+3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICflt6XkvZzmjIfku6TmoIfpopgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAn5Y+Y5pu05o+P6L+wJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAn5Y+Y5pu055CG55SxJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJ+W3peS9nOaMh+S7pOivtOaYjic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAn5bel5L2c5oyH5Luk5oql5ZGKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSd9ID0gJ+WPmOabtOS8mOWFiOe6pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAn5Y+Y5pu05b2x5ZONJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICfliJvlu7rkuronOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFN0YXRlJ30gPSAn5bel5L2c5oyH5Luk54q25oCBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAn5bel5L2c5oyH5Luk57G75Z6LJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJ+W3peS9nOaMh+S7pOacjeWKoeS6uuWRmCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICflnKguLi7kuYvliY0nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAn5LiN6IO95bqP5YiX5YyW5Y+Y5pu0IiVzIuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLid9ID0gJ+S4jeiDveabtOaWsOaooeadvyIlcyLjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBjaGFuZ2UgIiVzIi4nfSA9ICfkuI3og73liKDpmaTlj5jmm7QiJXMi44CCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJ+S4jeiDveenu+WKqOWPmOabtO+8jOWboOS4uuWug+ayoeacieW3peS9nOaMh+S7pOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAn6aaW5YWI5re75Yqg5LiA5p2h5bel5L2c5oyH5Luk44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAn5LiN6IO956e75Yqo5LiA5Liq5bey57uP5byA5aeL55qE5Y+Y5pu077yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICfor7fnlKjnp7vliqjljZXni6znmoTlt6XkvZzmjIfku6TmnaXku6Pmm7/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAn5LiN6IO956Gu5a6a5b2T5YmN55qEJXPjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlICVzIG9mIGFsbCB3b3Jrb3JkZXJzIGhhcyB0byBiZSBkZWZpbmVkLid9ID0gJyVz55qE5omA5pyJ5bel5L2c5oyH5Luk5b+F6aG76KKr5a6a5LmJ5aW944CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyICMlcyEnfSA9ICfkuI3og73np7vliqjlt6XkvZzmjIfku6QjJXPnmoTml7bpl7TovbTvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9uISd9ID0gJ+S9oOmcgOimgSVz5p2D6ZmQ77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAn5rKh5pyJ5oyH5a6a5qih5p2/SUTvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJ30gPSAn5pWw5o2u5bqT5Lit5rKh5pyJ5om+5Yiw5qih5p2/IiVzIu+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB0ZW1wbGF0ZSAlcyEnfSA9ICfkuI3og73liKDpmaTmqKHmnb8lc++8gSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFRlbXBsYXRlICVzISd9ID0gJ+S4jeiDveabtOaWsOaooeadvyVz77yBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnfSA9ICfkuI3og73mm7TmlrDmqKHmnb8iJXMi77yBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZUVkaXRDb250ZW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gY3JlYXRlIGNoYW5nZSEnfSA9ICfkuI3og73liJvlu7rlj5jmm7TvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZSEnfSA9ICfkuI3og73ku47mqKHmnb/liJvlu7rlt6XkvZzmjIfku6TvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBUZW1wbGF0ZSd9ID0gJ+amguiniO+8muaooeadvyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlISd9ID0gJ+S9oOmcgOimgeacieWPmOabtOeahCVz5p2D6ZmQ77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBhZGQgd29ya29yZGVyISd9ID0gJ+S4jeiDvea3u+WKoOW3peS9nOaMh+S7pO+8gSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJ+ayoeacieaMh+WumuW3peS9nOaMh+S7pElE77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJ30gPQogICAgICAgICfkuI3og73orr7nva7lt6XkvZzmjIfku6QiJXMi55qE5pyN5Yqh5Lq65ZGY5Li656m677yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiISd9ID0gJ+S4jeiDveabtOaWsOW3peS9nOaMh+S7pCIlcyLvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJ30gPSAn5om+5LiN5Yiw5bel5L2c5oyH5LukICVz55qE5Y+Y5pu077yBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICfkuI3og73liKDpmaTlt6XkvZzmjIfku6Qlc++8gSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJ30gPSAn5LiN6IO95pu05paw5bel5L2c5oyH5LukJXPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJ+S4jeiDveaYvuekuuWOhuWPsu+8jOWboOS4uuayoeacieaMh+WumuW3peS9nOaMh+S7pElE77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAn5pWw5o2u5bqT5Lit5rKh5pyJ5om+5Yiw5bel5L2c5oyH5LukIiVzIu+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJ+W3peS9nOaMh+S7pOWOhuWPsic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJ+aVsOaNruW6k+S4reayoeacieaJvuWIsOWOhuWPsuadoeebriIlcyLvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIEhpc3RvcnkgWm9vbSd9ID0gJ+W3peS9nOaMh+S7pOWOhuWPsuivpuaDhSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGFrZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHRha2UgdGhlIHdvcmtvcmRlciAlcyEnfSA9ICfkuI3og73miafooYzlt6XkvZzmjIfku6QgJXPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgd29ya29yZGVyICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAn5LiN6IO95bqP5YiX5YyW5bel5L2c5oyH5LukIiVzIuOAgic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9JVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gJXMhJ30gPSAn6ZyA6KaB6YWN572uJXPpgInpobnvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0gJ+mFjee9rumAiemhuSVz6ZyA6KaB5piv5LiA5Liq5ZOI5biM5byV55So77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAn5rKh5pyJ5om+5Yiw6KeG5Zu+4oCcJXPigJ3nmoTphY3nva7pgInpobnvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGl0bGU6ICVzIHwgVHlwZTogJXMnfSA9ICfmoIfpopjvvJolcyB8IOexu+Wei++8miVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ0FCcyd9ID0gJ+aIkeeahENBQic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDaGFuZ2VzJ30gPSAn5oiR55qE5Y+Y5pu0JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IFdvcmsgT3JkZXJzJ30gPSAn5oiR55qE5bel5L2c5oyH5LukJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJXM6ICVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJ+aWsOW7uuaTjeS9nO+8iElEPSVz77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICfmk43kvZzvvIhJRD0lc++8ieW3suWIoOmZpCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgQWN0aW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAn5p2h5Lu277yISUQ9JXPvvInnmoTmiYDmnInmk43kvZzlt7LliKDpmaQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAn5pON5L2c77yISUQ9JXPvvInlt7LmiafooYzvvJolcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQWN0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyVz77yI5pON5L2cSUQ9JXPvvInvvJrvvIjmlrA9JXPvvIzml6c9JXPvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAn5Y+Y5pu077yISUQ9JXPvvInlt7LliLDovr7lrp7pmYXnu5PmnZ/ml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICflj5jmm7TvvIhJRD0lc++8ieW3suWIsOi+vuWunumZheW8gOWni+aXtumXtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICfmlrDlu7rlj5jmm7TvvIhJRD0lc++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudDogJXMnfSA9ICfmlrDnmoTpmYTku7bvvJolcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGVkIEF0dGFjaG1lbnQgJXMnfSA9ICflt7LliKDpmaTnmoTpmYTku7Ylcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgRGVsZXRlZCAlcyd9ID0gJ0NBQuWIoOmZpOeahCVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJXPvvJrvvIjmlrA9JXPvvIzml6c9JXPvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGFkZGVkJ30gPSAn5YiwJXPnmoTpk77mjqXvvIhJRD0lc++8ieW3sua3u+WKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJ+WIsCVz55qE6ZO+5o6l77yISUQ9JXPvvInlt7LliKDpmaQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICfpgJrnn6Xlt7Llj5HpgIHnu5kgJXPvvIjkuovku7bvvJolc++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAn5Y+Y5pu077yISUQ9JXPvvInlt7LliLDovr7orqHliJLnu5PmnZ/ml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAn5Y+Y5pu077yISUQ9JXPvvInlt7LliLDovr7orqHliJLlvIDlp4vml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICflj5jmm7TvvIhJRD0lc++8ieW3suWIsOi+vuivt+axgueahOaXtumXtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ29uZGl0aW9uIChJRD0lcyknfSA9ICfmlrDlu7rmnaHku7bvvIhJRD0lc++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAn5p2h5Lu277yISUQ9JXPvvInlt7LliKDpmaQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIENvbmRpdGlvbnMgb2YgQ2hhbmdlIChJRD0lcykgZGVsZXRlZCd9ID0gJ+WPmOabtO+8iElEPSVz77yJ55qE5omA5pyJ5p2h5Lu25bey5Yig6ZmkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChDb25kaXRpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJXPvvIjmnaHku7ZJRD0lc++8ie+8mu+8iOaWsD0lc++8jOaXpz0lc++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRXhwcmVzc2lvbiAoSUQ9JXMpJ30gPSAn5paw5bu66KGo6L6+5byP77yISUQ9JXPvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICfooajovr7lvI/vvIhJRD0lc++8ieW3suWIoOmZpCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgRXhwcmVzc2lvbnMgb2YgQ29uZGl0aW9uIChJRD0lcykgZGVsZXRlZCd9ID0gJ+adoeS7tu+8iElEPSVz77yJ55qE5omA5pyJ6KGo6L6+5byP5bey5Yig6ZmkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChFeHByZXNzaW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyVz77yI5pON6KGo6L6+5byPSUQ9JXPvvInvvJrvvIjmlrA9JXPvvIzml6c9JXPvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgZW5kIHRpbWUuJ30gPSAn5bel5L2c5oyH5Luk77yISUQ9JXPvvInlt7LliLDovr7lrp7pmYXnu5PmnZ/ml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICflt6XkvZzmjIfku6TvvIhJRD0lc++8ieW3suWIsOi+vuWunumZheW8gOWni+aXtumXtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgV29ya29yZGVyIChJRD0lcyknfSA9ICfmlrDlu7rlt6XkvZzmjIfku6TvvIhJRD0lc++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJ+W3peS9nOaMh+S7pOaWsOWinumZhOS7tu+8miVzwqAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBOZXcgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJ++8iElEPSVz77yJ5bel5L2c5oyH5Luk5paw5aKe6ZmE5Lu277yaJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJ+W3peS9nOaMh+S7pOW3suWIoOmZpOeahOmZhOS7tu+8miVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJ++8iElEPSVz77yJ5bel5L2c5oyH5Luk5bey5Yig6Zmk6ZmE5Lu277yaJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAn5bel5L2c5oyH5Luk5paw5aKe5oql5ZGK6ZmE5Lu277yaJXPCoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcyd9ID0gJ++8iElEPSVz77yJ5bel5L2c5oyH5Luk5paw5aKe5oql5ZGK6ZmE5Lu277yaJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICflt6XkvZzmjIfku6Tlt7LliKDpmaTnmoTmiqXlkYrpmYTku7bvvJolcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAn77yISUQ9JXPvvInlt6XkvZzmjIfku6Tlt7LliKDpmaTnmoTmiqXlkYrpmYTku7bvvJolcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSBkZWxldGVkJ30gPSAn5bel5L2c5oyH5Luk77yISUQ9JXPvvInlt7LliKDpmaQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICfvvIhJRD0lc++8ieWIsCVz55qE6ZO+5o6l77yISUQ9JXPvvInlt7Lmt7vliqAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCd9ID0gJ++8iElEPSVz77yJ5YiwJXPnmoTpk77mjqXvvIhJRD0lc++8ieW3suWIoOmZpCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIE5vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJ30gPSAn77yISUQ9JXPvvInpgJrnn6Xlt7Llj5HpgIHnu5kgJXPvvIjkuovku7bvvJolc++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgZW5kIHRpbWUuJ30gPSAn5bel5L2c5oyH5Luk77yISUQ9JXPvvInlt7LliLDovr7orqHliJLnu5PmnZ/ml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJ30gPSAn5bel5L2c5oyH5Luk77yISUQ9JXPvvInlt7LliLDovr7orqHliJLlvIDlp4vml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSAlczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJ++8iElEPSVz77yJJXPvvJrvvIjmlrA9JXPvvIzml6c9JXPvvIknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9JVFNNQ29uZGl0aW9uL09iamVjdC9JVFNNV29ya09yZGVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbGwnfSA9ICflhajpg6gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW55J30gPSAn5Lu75L2VJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgQnVpbGRlcid9ID0gJ+WJjeS7u+WPmOabtOWIm+W7uuS6uic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBDaGFuZ2UgTWFuYWdlcid9ID0gJ+WJjeS7u+WPmOabtOe7j+eQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnRzJ30gPSAn5bel5L2c5oyH5Luk5pyN5Yqh5Lq65ZGYJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIFdvcmtvcmRlciBBZ2VudCd9ID0gJ+WJjeS7u+W3peS9nOaMh+S7pOacjeWKoeS6uuWRmCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5pdGlhdG9ycyd9ID0gJ+WPmOabtOWPkei1t+S6uic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlJ30gPSAnSVRTTeWPmOabtOe7hCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcid9ID0gJ0lUU03lj5jmm7TliJvlu7rkurrnu4QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICdJVFNN5Y+Y5pu057uP55CG57uEJzsKCiAgICAjIFhNTCBEZWZpbml0aW9uOiBJVFNNQ2hhbmdlTWFuYWdlbWVudC5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXF1ZXN0ZWQnfSA9ICflt7Lor7fmsYInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncGVuZGluZyBhcHByb3ZhbCd9ID0gJ+W+heWuoeaJuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWplY3RlZCd9ID0gJ+iiq+aLkue7nSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZlZCd9ID0gJ+mAmui/h+WuoeaJuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbiBwcm9ncmVzcyd9ID0gJ+WkhOeQhuS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIHBpcid9ID0gJ+etieW+heWunuaWveWQjuivhOWuoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzdWNjZXNzZnVsJ30gPSAn5oiQ5YqfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ZhaWxlZCd9ID0gJ+Wksei0pSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjYW5jZWxlZCd9ID0gJ+WPlua2iCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZXRyYWN0ZWQnfSA9ICfmkqTlm54nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY3JlYXRlZCd9ID0gJ+W3suWIm+W7uic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhY2NlcHRlZCd9ID0gJ+W3suaOpeWPlyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydyZWFkeSd9ID0gJ+Wwsee7qic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhcHByb3ZhbCd9ID0gJ+WuoeaJuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd3b3Jrb3JkZXInfSA9ICflt6XkvZzmjIfku6QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYmFja291dCd9ID0gJ+WbnumAgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydkZWNpc2lvbid9ID0gJ+WGs+Wumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwaXInfSA9ICdQSVIgKOWunuaWveWQjuivhOWuoSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlU3RhdGVJRCd9ID0gJ+WPmOabtOeKtuaAgUlEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICfnsbvliKtJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbXBhY3RJRCd9ID0gJ+W9seWTjUlEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW9yaXR5SUQnfSA9ICfkvJjlhYjnuqdJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICflj5jmm7Tnu4/nkIZJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VCdWlsZGVySUQnfSA9ICflj5jmm7TliJvlu7rkurpJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZUlEJ30gPSAn5bel5L2c5oyH5Luk54q25oCBSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAn5bel5L2c5oyH5Luk57G75Z6LSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyQWdlbnRJRCd9ID0gJ+W3peS9nOaMh+S7pOacjeWKoeS6uuWRmElEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzJ30gPSAn5pivJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCd9ID0gJ+S4jeaYryc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBlbXB0eSd9ID0gJ+S4uuepuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBub3QgZW1wdHknfSA9ICfkuI3kuLrnqbonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgZ3JlYXRlciB0aGFuJ30gPSAn5aSn5LqOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGxlc3MgdGhhbid9ID0gJ+Wwj+S6jic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBiZWZvcmUnfSA9ICfmmK/lnKguLi7kuYvliY0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgYWZ0ZXInfSA9ICfmmK/lnKguLi7kuYvlkI4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnY29udGFpbnMnfSA9ICfljIXlkKsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGNvbnRhaW5zJ30gPSAn5LiN5YyF5ZCrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAn5LulLi4u5byA5aeLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJ+S7pS4uLue7k+adnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICforr7nva4nOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICfkvaDnoa7lrpropoHliKDpmaTov5nkuKrooajovr7lvI/lkJfvvJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICfkvaDnoa7lrpropoHliKDpmaTov5nkuKrmk43kvZzlkJfvvJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICfkvaDnoa7lrpropoHliKDpmaTov5nkuKrmnaHku7blkJfvvJ8nOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICfnoa7lrponOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2YgdGhlIGFnZW50cyB3aG8gaGF2ZSBwZXJtaXNzaW9uIHRvIHRha2Ugd29ya29yZGVycy4gS2V5IGlzIGEgbG9naW4gbmFtZS4gQ29udGVudCBpcyAwIG9yIDEuJ30gPQogICAgICAgICfmnInmnYPpmZDmjqXmiYvlt6XkvZzmjIfku6TnmoTmnI3liqHkurrlkZjliJfooajjgILigJzplK7igJ3mmK/nmbvlvZXlkI3vvIzigJzlgLzigJ3mmK8w5oiWMeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJ+W3peS9nOaMh+S7pOeKtuaAgeWIl+ihqO+8jOW3peS9nOaMh+S7pOeahEFjdHVhbFN0YXJ0VGltZe+8iOWunumZheW8gOWni+aXtumXtO+8ieWwhuiiq+iuvue9ru+8iOWmguaenOi/meaXtuWAmei/mOayoeacieiuvue9rueahOivne+8ieOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICflrp7pmYXnu5PmnZ/ml7bpl7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICflrp7pmYXlvIDlp4vml7bpl7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJ+a3u+WKoOW3peS9nOaMh+S7pCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJ+S7juaooeadv+a3u+WKoOW3peS9nOaMh+S7pCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICfku47mqKHmnb/mt7vliqDkuIDkuKrlj5jmm7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJ+a3u+WKoOS4gOS4quWPmOabtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAn5LuO5qih5p2/5re75Yqg5Y+Y5pu055qE5bel5L2c5oyH5Luk44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJ+a3u+WKoOWPmOabtOeahOW3peS9nOaMh+S7pOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJ+S7juaooeadv+a3u+WKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICfnrqHnkIZDSVDnn6npmLXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAn566h55CG54q25oCB5qih5byP6L2s5o2i44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICfmn6XnnItDQULmlbDph4/nmoTmnI3liqHkurrlkZjnlYzpnaLpgJrnn6XmqKHlnZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAn5p+l55yL5Y+Y5pu057uP55CG566h55CG55qE5Y+Y5pu05pWw55qE5pyN5Yqh5Lq65ZGY55WM6Z2i6YCa55+l5qih5Z2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICfmn6XnnIvlj5jmm7TmlbDph4/nmoTmnI3liqHkurrlkZjnlYzpnaLpgJrnn6XmqKHlnZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJ+afpeeci+W3peS9nOaMh+S7pOaVsOmHj+eahOacjeWKoeS6uuWRmOeVjOmdoumAmuefpeaooeWdl+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJ0NBQuaIkOWRmOaQnOe0oic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAn5Y+Y5pu0566h55CG5bel5YW35qCP55qE57yT5a2Y5pe26Ze077yI5Y2V5L2N77ya5YiG6ZKf77yJ44CC6buY6K6k77yaM+Wwj+aXtu+8iDE4MOWIhumSn++8ieOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudC4gRGVmYXVsdDogNSBkYXlzICg3MjAwIG1pbnV0ZXMpLid9ID0KICAgICAgICAn5Y+Y5pu0566h55CG55qE57yT5a2Y5pe26Ze077yI5Y2V5L2N77ya5YiG6ZKf77yJ44CC6buY6K6k77yaNeWkqe+8iDcyMDDliIbpkp/vvInjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICflj5jmm7RDQULmqKHmnb8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAn5Y+Y5pu05Y6G5Y+y44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJ+WPmOabtOa2ieWPiueahOS6uuWRmOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ+WPmOabtOamguiniOeugOa0geaooeW8j+mZkOWItic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAn5Y+Y5pu05qaC6KeI44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICfmiZPljbDlj5jmm7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAn5Y+Y5pu06K6h5YiSJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICflj5jmm7TorqHliJLooajjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAn5Y+Y5pu06K6+572uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAn5Y+Y5pu06K+m5oOFJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJ+WPmOabtOivpuaDheOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICflj5jmm7Tlkozlt6XkvZzmjIfku6TmqKHmnb8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAn5pys55So5oi357yW6L6R55qE5Y+Y5pu05qih5p2/5ZKM5bel5L2c5oyH5Luk5qih5p2/44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJ+WPmOabtOWMuuWfn+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJ+abtOaNouWPmOabtOa2ieWPiueahOebuOWFs+S6uuWRmOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJ+WPmOabtOamguiniOeugOa0geaooeW8j+avj+mhteWPmOabtOaVsOmZkOWItuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAn5Y+Y5pu057yW5Y+3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICfmnI3liqHkurrlkZjnlYzpnaLlj5jmm7TmkJzntKLlkI7nq6/ot6/nlLHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAn5Y+Y5pu054q25oCBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAn5Y+Y5pu05pe26Ze0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJ+WPmOabtOagh+mimCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJ+adoeS7tue8lui+kSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICfmnaHku7bmpoLop4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICfphY3nva7liJvlu7rmlrDlt6XkvZzmjIfku6TlkI7mmL7npLrnmoTnlYzpnaLjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJ+mFjee9ruiuoeWIkuW8gOWni+aXtumXtOaIluWFtuWug+aXtumXtOWIsOi+vi/ov4fljrvml7blj5HpgIHpgJrnn6XnmoTpopHnjofjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIENoYW5nZSd9ID0gJ+WIm+W7uuWPmOabtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlIChmcm9tIFRlbXBsYXRlKSd9ID0gJ+S7juaooeadv+WIm+W7uuWPmOabtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYSBjaGFuZ2UgKGZyb20gdGVtcGxhdGUpIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAn5LuO6L+Z5Liq5bel5Y2V5Yib5bu65LiA5Liq5Y+Y5pu077yI5Y2z5LuO5qih5p2/55qE5pa55byP77yJ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSBmcm9tIHRoaXMgdGlja2V0Lid9ID0gJ+S7jui/meS4quW3peWNleWIm+W7uuWPmOabtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBJVFNNIENoYW5nZSBNYW5hZ2VtZW50IG5vdGlmaWNhdGlvbnMuJ30gPSAn5Yib5bu65ZKM566h55CGSVRTTeWPmOabtOeuoeeQhumAmuefpeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgYW5kIG1hbmFnZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4nfSA9ICfliJvlu7rlkoznrqHnkIblj5jmm7TpgJrnn6XjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIGZvciBhIHdvcmtvcmRlci4gVGhpcyBlbnRyeSBtdXN0IGV4aXN0IGluIGdlbmVyYWwgY2F0YWxvZyBjbGFzcyBcJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZVwnLid9ID0KICAgICAgICAn5bel5L2c5oyH5Luk55qE6buY6K6k57G75Z6L44CC6L+Z5Liq5p2h55uu5b+F6aG75Zyo55uu5b2V57G7XCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJ+S4reWtmOWcqOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAn5a6a5LmJ6ZO+5o6l5a+56LGh5bCP6YOo5Lu2KExpbmtPYmplY3Q6OlZpZXdNb2RlID0gXCJjb21wbGV4XCIp6K6+572u5oyJ6ZKu5Lit55qE5pON5L2c44CC6K+35rOo5oSP77yM6L+Z5Lqb5pON5L2c5b+F6aG75bey57uP5Zyo5Lul5LiLSlPlkoxDU1Pmlofku7bkuK3ms6jlhozvvJpDb3JlLkFsbG9jYXRpb25MaXN0LmNzc+OAgUNvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanPjgIEgQ29yZS5VSS5UYWJsZS5Tb3J0Lmpz44CBQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanPlkoxDb3JlLkFnZW50LkxpbmtPYmplY3QuanPjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHRoZSBzaWduYWxzIGZvciBlYWNoIHdvcmtvcmRlciBzdGF0ZS4nfSA9ICflrprkuYnmr4/kuKrlt6XkvZzmjIfku6TnirbmgIHnmoTmoIflv5fkv6Hlj7fjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgQ2hhbmdlcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBDaGFuZ2UgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICflrprkuYnpk77mjqXnmoTlj5jmm7TlsI/pg6jku7YoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIp6KaB5pi+56S655qE5YiX44CC5rOo5oSP77ya5Y+q5pyJ5Y+Y5pu05bGe5oCn5omN6IO95L2c5Li66buY6K6k5YiX77yM5Y+v55So55qE6K6+572u5YC85Li677yaMCA9IOemgeeUqO+8jDEgPSDlj6/nlKjvvIwgMiA9IOm7mOiupOWQr+eUqOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBXb3Jrb3JkZXIgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgV29ya29yZGVyIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAn5a6a5LmJ6ZO+5o6l55qE5bel5L2c5oyH5Luk5bCP6YOo5Lu2KExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKeimgeaYvuekuueahOWIl+OAguazqOaEj++8muWPquacieW3peS9nOaMh+S7pOWxnuaAp+aJjeiDveS9nOS4uum7mOiupOWIl++8jOWPr+eUqOeahOiuvue9ruWAvOS4uu+8mjAgPSDnpoHnlKjvvIwxID0g5Y+v55So77yMIDIgPSDpu5jorqTlkK/nlKjjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAn5a6a5LmJ5LiA5Liq5qaC6KeI5qih5Z2X77yM5Lul5pi+56S65Y+Y5pu05YiX6KGo55qE566A5rSB6KeG5Zu+44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAn5a6a5LmJ5LiA5Liq5qaC6KeI5qih5Z2X77yM5Lul5pi+56S65qih5p2/5YiX6KGo55qE566A5rSB6KeG5Zu+44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAn5a6a5LmJ5piv5ZCm5Y+v5Lul5omT5Y2w6K6w5biQ5pe26Ze044CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAn5a6a5LmJ5piv5ZCm5Y+v5Lul5omT5Y2w6K6h5YiS55So5pe244CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSBjaGFuZ2UgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIGNoYW5nZSBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJ+WumuS5ieaYr+WQpuWFgeiuuOS4gOS4qumUgeWumueKtuaAgeeahOWPmOabtOWPr+i+vuWIsOe7k+adn+eKtuaAge+8iOWcqOeKtuaAgeaooeW8j+i9rOaNouS4reWumuS5ie+8ieOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICflrprkuYnmmK/lkKblhYHorrjkuIDkuKrplIHlrprnirbmgIHnmoTlt6XkvZzmjIfku6Tlj6/ovr7liLDnu5PmnZ/nirbmgIHvvIjlnKjnirbmgIHmqKHlvI/ovazmjaLkuK3lrprkuYnvvInjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJ+WumuS5ieaYr+WQpuaYvuekuuiusOW4kOaXtumXtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBzaG91bGQgYmUgc2V0Lid9ID0gJ+WumuS5ie+8iOW3peS9nOaMh+S7pOaKpeWRiuS4re+8ieaYr+WQpuimgeiuvue9ruWunumZheW8gOWniy/nu5PmnZ/ml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHNlYXJjaCBhbmQgdGhlIHdvcmtvcmRlciBzZWFyY2ggZnVuY3Rpb25zIGNvdWxkIHVzZSB0aGUgbWlycm9yIERCLid9ID0KICAgICAgICAn5a6a5LmJ5Y+Y5pu05pCc57Si5ZKM5bel5L2c5oyH5Luk5pCc57Si5Yqf6IO95piv5ZCm6IO95aSf5L2/55So6ZWc5YOP5pWw5o2u5bqT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIGNoYW5nZSBzdGF0ZSBjYW4gYmUgc2V0IGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WumuS5ieacjeWKoeS6uuWRmOeVjOmdouWcqOWPmOabtOe8lui+keWxj+W5leiDveWQpuiuvue9ruWPmOabtOeKtuaAgeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBwbGFubmVkIGVmZm9ydCBzaG91bGQgYmUgc2hvd24uJ30gPSAn5a6a5LmJ5piv5ZCm5pi+56S66K6h5YiS55So5pe244CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBwcmludCBieSBjdXN0b21lci4nfSA9ICflrprkuYnlrqLmiLfmmK/lkKblj6/ku6XmiZPljbDor7fmsYLml6XmnJ/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNlYXJjaGVkIGJ5IGN1c3RvbWVyLid9ID0KICAgICAgICAn5a6a5LmJ5a6i5oi35piv5ZCm5Y+v5Lul5pCc57Si6K+35rGC5pel5pyf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzZXQgYnkgY3VzdG9tZXIuJ30gPSAn5a6a5LmJ5a6i5oi35piv5ZCm5Y+v5Lul6K6+572u6K+35rGC5pel5pyf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHJlcXVlc3RlZCBkYXRlIHNob3VsZCBiZSBzaG93biBieSBjdXN0b21lci4nfSA9ICflrprkuYnlrqLmiLfmmK/lkKblj6/ku6XmmL7npLror7fmsYLnmoTml6XmnJ/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHN0YXRlIHNob3VsZCBiZSBzaG93bi4nfSA9ICflrprkuYnmmK/lkKbmmL7npLrlt6XkvZzmjIfku6TnirbmgIHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgd29ya29yZGVyIHRpdGxlIHNob3VsZCBiZSBzaG93bi4nfSA9ICflrprkuYnmmK/lkKbmmL7npLrlt6XkvZzmjIfku6TmoIfpopjjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBzaG93biBncmFwaCBhdHRyaWJ1dGVzLid9ID0gJ+WumuS5ie+8iOWPmOabtOivpuaDheeql+WPo+W3peS9nOaMh+S7pOWbvu+8ieaYvuekuueahOWbvuW9oueahOWxnuaAp+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoYXQgb25seSBjaGFuZ2VzIGNvbnRhaW5pbmcgV29ya29yZGVycyBsaW5rZWQgd2l0aCBzZXJ2aWNlcywgd2hpY2ggdGhlIGN1c3RvbWVyIHVzZXIgaGFzIHBlcm1pc3Npb24gdG8gdXNlIHdpbGwgYmUgc2hvd24uIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgbm90IGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ+WumuS5ieS7heaYvuekuuWPmOabtOS4reWMheWQq+eahOW3peS9nOaMh+S7pOS4reaciSDliLDlrqLmiLfogZTns7vkurrmnInmnYPpmZDkvb/nlKjnmoTmnI3liqEg55qE6ZO+5o6lIOeahOWPmOabtO+8jOS7u+S9leWFtuWug+WPmOabtOmDveS4jeS8muaYvuekuuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSBhbGxvd2VkIHRvIGRlbGV0ZS4nfSA9ICflrprkuYnlhYHorrjliKDpmaTlj5jmm7TnmoTlj5jmm7TnirbmgIHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn5a6a5LmJXCflj5jmm7RQU0FcJ+amguiniOS4reiDveeUqOS6jui/h+a7pOWZqOeahOWPmOabtOeKtuaAgeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBTY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ+WumuS5iVwn5Y+Y5pu06K6h5YiSXCfmpoLop4jkuK3og73nlKjkuo7ov4fmu6TlmajnmoTlj5jmm7TnirbmgIHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJ+WumuS5iVwn5oiR55qEQ0FCXCfmpoLop4jkuK3og73nlKjkuo7ov4fmu6TlmajnmoTlj5jmm7TnirbmgIHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICflrprkuYlcJ+aIkeeahOWPmOabtFwn5qaC6KeI5Lit6IO955So5LqO6L+H5ruk5Zmo55qE5Y+Y5pu054q25oCB44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICflrprkuYlcJ+WPmOabtOe7j+eQhlwn5qaC6KeI5Lit6IO955So5LqO6L+H5ruk5Zmo55qE5Y+Y5pu054q25oCB44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn5a6a5LmJXCflj5jmm7RcJ+amguiniOS4reiDveeUqOS6jui/h+a7pOWZqOeahOWPmOabtOeKtuaAgeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ+WumuS5ieWuouaIt1wn5Y+Y5pu06K6h5YiSXCfmpoLop4jkuK3og73nlKjkuo7ov4fmu6TlmajnmoTlj5jmm7TnirbmgIHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBjaGFuZ2UgdGl0bGUgZm9yIGEgZHVtbXkgY2hhbmdlIHdoaWNoIGlzIG5lZWRlZCB0byBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlLid9ID0KICAgICAgICAn5a6a5LmJ57yW6L6R5bel5L2c5oyH5Luk5pe25Yib5bu655qE5Li05pe25Y+Y5pu055qE6buY6K6k5qCH6aKY44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9CiAgICAgICAgJ+WumuS5iVwn5Y+Y5pu0UFNBXCfmpoLop4jkuK3pu5jorqTnmoTmjpLluo/mnaHku7bjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJ+WumuS5iVwn5Y+Y5pu057uP55CGXCfmpoLop4jkuK3pu5jorqTnmoTmjpLluo/mnaHku7bjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPSAn5a6a5LmJXCflj5jmm7RcJ+amguiniOS4rem7mOiupOeahOaOkuW6j+adoeS7tuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ+WumuS5iVwn5Y+Y5pu06K6h5YiSXCfmpoLop4jkuK3pu5jorqTnmoTmjpLluo/mnaHku7bjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJ+WumuS5iVwn5oiR55qEQ0FCXCfmpoLop4jkuK3pu5jorqTnmoTlj5jmm7TmjpLluo/mnaHku7bjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNoYW5nZXMgb3ZlcnZpZXcuJ30gPQogICAgICAgICflrprkuYlcJ+aIkeeahOWPmOabtFwn5qaC6KeI5Lit6buY6K6k55qE5Y+Y5pu05o6S5bqP5p2h5Lu244CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn5a6a5LmJXCfmiJHnmoTlt6XkvZzmjIfku6RcJ+amguiniOS4rem7mOiupOeahOWPmOabtOaOkuW6j+adoeS7tuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ+WumuS5iVwnUElS77yI5a6e5pa95ZCO6K+E5a6h77yJXCfmpoLop4jkuK3pu5jorqTnmoTlj5jmm7TmjpLluo/mnaHku7bjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICflrprkuYnlrqLmiLdcJ+WPmOabtOiuoeWIklwn5qaC6KeI5Lit6buY6K6k55qE5Y+Y5pu05o6S5bqP5p2h5Lu244CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBjcml0ZXJpYSBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICflrprkuYlcJ+aooeadv1wn5qaC6KeI5Lit6buY6K6k55qE5Y+Y5pu05o6S5bqP5p2h5Lu244CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAn5a6a5LmJXCfmiJHnmoRDQUJcJ+amguiniOS4rem7mOiupOeahOaOkuW6j+mhuuW6j+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9ICflrprkuYlcJ+aIkeeahOWPmOabtFwn5qaC6KeI5Lit6buY6K6k55qE5o6S5bqP6aG65bqP44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn5a6a5LmJXCfmiJHnmoTlt6XkvZzmjIfku6RcJ+amguiniOS4rem7mOiupOeahOaOkuW6j+mhuuW6j+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICflrprkuYlcJ1BJUu+8iOWunuaWveWQjuivhOWuoe+8iVwn5qaC6KeI5Lit6buY6K6k55qE5o6S5bqP6aG65bqP44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIFBTQSBvdmVydmlldy4nfSA9ICflrprkuYlcJ+WPmOabtFBTQVwn5qaC6KeI5Lit6buY6K6k55qE5o6S5bqP6aG65bqP44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuJ30gPQogICAgICAgICflrprkuYlcJ+WPmOabtOe7j+eQhlwn5qaC6KeI5Lit6buY6K6k55qE5o6S5bqP6aG65bqP44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJ+WumuS5ieWPmOabtOamguiniOS4rem7mOiupOeahOaOkuW6j+mhuuW6j+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJ+WumuS5iVwn5Y+Y5pu06K6h5YiSXCfmpoLop4jkuK3pu5jorqTnmoTmjpLluo/pobrluo/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICflrprkuYnlrqLmiLfnlYzpnaJcJ+WPmOabtOiuoeWIklwn5qaC6KeI5Lit6buY6K6k55qE5o6S5bqP6aG65bqP44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgdGVtcGxhdGUgb3ZlcnZpZXcuJ30gPSAn5a6a5LmJ5qih5p2/5qaC6KeI5Lit6buY6K6k55qE5o6S5bqP6aG65bqP44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjYXRlZ29yeSBvZiBhIGNoYW5nZS4nfSA9ICflrprkuYnkuIDkuKrlj5jmm7Tpo47pmannsbvliKvnmoTpu5jorqTlgLzjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGltcGFjdCBvZiBhIGNoYW5nZS4nfSA9ICflrprkuYnkuIDkuKrlj5jmm7TlvbHlk43nmoTpu5jorqTlgLzjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciBjaGFuZ2UgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ+WumuS5ieacjeWKoeS6uuWRmOeVjOmdouWPmOabtOadoeS7tue8lui+keWxj+W5leWPmOabtOWxnuaAp+avlOi+g+WAvOWtl+auteeahOexu+Wei++8jOacieaViOWAvOaYr++8mlNlbGVjdGlvbu+8iOmAieaLqe+8ieOAgVRleHTvvIjmlofmnKzvvInlkoxEYXRl77yI5pel5pyf77yJ44CCIOWmguaenOayoeacieWumuS5ieexu+Wei++8jOWtl+auteS4jeS8muiiq+aYvuekuuWHuuadpeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBmaWVsZCB0eXBlIG9mIENvbXBhcmVWYWx1ZSBmaWVsZHMgZm9yIHdvcmtvcmRlciBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVmFsaWQgdmFsdWVzIGFyZSBTZWxlY3Rpb24sIFRleHQgYW5kIERhdGUuIElmIGEgdHlwZSBpcyBub3QgZGVmaW5lZCwgdGhlIGZpZWxkIHdpbGwgbm90IGJlIHNob3duLid9ID0KICAgICAgICAn5a6a5LmJ5pyN5Yqh5Lq65ZGY55WM6Z2i5bel5L2c5oyH5Luk5p2h5Lu257yW6L6R5bGP5bmV5Y+Y5pu05bGe5oCn5q+U6L6D5YC85a2X5q6155qE57G75Z6L77yM5pyJ5pWI5YC85piv77yaU2VsZWN0aW9u77yI6YCJ5oup77yJ44CBVGV4dO+8iOaWh+acrO+8ieWSjERhdGXvvIjml6XmnJ/vvInjgIIg5aaC5p6c5rKh5pyJ5a6a5LmJ57G75Z6L77yM5a2X5q615LiN5Lya6KKr5pi+56S65Ye65p2l44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIGNoYW5nZSBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflrprkuYnmnI3liqHkurrlkZjnlYzpnaLlj5jmm7TmnaHku7bnvJbovpHlsY/luZXkuK3lj5jmm7Tlr7nosaHlj6/pgInmi6nnmoTlr7nosaHlsZ7mgKfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb2JqZWN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3Igd29ya29yZGVyIG9iamVjdHMgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WumuS5ieacjeWKoeS6uuWRmOeVjOmdouW3peS9nOaMh+S7pOadoeS7tue8lui+keWxj+W5leS4reW3peS9nOaMh+S7pOWvueixoeWPr+mAieaLqeeahOWvueixoeWxnuaAp+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY2NvdW50ZWRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflrprkuYnmnI3liqHkurrlkZjnlYzpnaLlj5jmm7TmnaHku7bnvJbovpHlsY/luZXkuK3ljaDnlKjml7bpl7TlsZ7mgKflj6/pgInmi6nnmoTov5DnrpfnrKbjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWN0dWFsRW5kVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5a6a5LmJ5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu05p2h5Lu257yW6L6R5bGP5bmV5Lit5a6e6ZmF57uT5p2f5pe26Ze05bGe5oCn5Y+v6YCJ5oup55qE6L+Q566X56ym44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbFN0YXJ0VGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5a6a5LmJ5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu05p2h5Lu257yW6L6R5bGP5bmV5Lit5a6e6ZmF5byA5aeL5pe26Ze05bGe5oCn5Y+v6YCJ5oup55qE6L+Q566X56ym44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENhdGVnb3J5SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WumuS5ieacjeWKoeS6uuWRmOeVjOmdouWPmOabtOadoeS7tue8lui+keWxj+W5leS4reebruW9lUlE5bGe5oCn5Y+v6YCJ5oup55qE6L+Q566X56ym44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZUJ1aWxkZXJJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5a6a5LmJ5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu05p2h5Lu257yW6L6R5bGP5bmV5Lit55uu5b2V5Yib5bu65Lq6SUTlsZ7mgKflj6/pgInmi6nnmoTov5DnrpfnrKbjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlTWFuYWdlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflrprkuYnmnI3liqHkurrlkZjnlYzpnaLlj5jmm7TmnaHku7bnvJbovpHlsY/luZXkuK3nm67lvZXnrqHnkIbkurpJROWxnuaAp+WPr+mAieaLqeeahOi/kOeul+espuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VTdGF0ZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflrprkuYnmnI3liqHkurrlkZjnlYzpnaLlj5jmm7TmnaHku7bnvJbovpHlsY/luZXkuK3lj5jmm7TnirbmgIFJROWxnuaAp+WPr+mAieaLqeeahOi/kOeul+espuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDaGFuZ2VUaXRsZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5a6a5LmJ5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu05p2h5Lu257yW6L6R5bGP5bmV5Lit5Y+Y5pu05qCH6aKY5bGe5oCn5Y+v6YCJ5oup55qE6L+Q566X56ym44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIER5bmFtaWNGaWVsZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5a6a5LmJ5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu05p2h5Lu257yW6L6R5bGP5bmV5Lit5Yqo5oCB5a2X5q615bGe5oCn5Y+v6YCJ5oup55qE6L+Q566X56ym44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEltcGFjdElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflrprkuYnmnI3liqHkurrlkZjnlYzpnaLlj5jmm7TmnaHku7bnvJbovpHlsY/luZXkuK3lvbHlk41JROWxnuaAp+WPr+mAieaLqeeahOi/kOeul+espuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRWZmb3J0IGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflrprkuYnmnI3liqHkurrlkZjnlYzpnaLlj5jmm7TmnaHku7bnvJbovpHlsY/luZXkuK3orqHliJLnlKjml7blsZ7mgKflj6/pgInmi6nnmoTov5DnrpfnrKbjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WumuS5ieacjeWKoeS6uuWRmOeVjOmdouWPmOabtOadoeS7tue8lui+keWxj+W5leS4reiuoeWIkue7k+adn+aXtumXtOWxnuaAp+WPr+mAieaLqeeahOi/kOeul+espuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflrprkuYnmnI3liqHkurrlkZjnlYzpnaLlj5jmm7TmnaHku7bnvJbovpHlsY/luZXkuK3orqHliJLlvIDlp4vml7bpl7TlsZ7mgKflj6/pgInmi6nnmoTov5DnrpfnrKbjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5a6a5LmJ5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu05p2h5Lu257yW6L6R5bGP5bmV5Lit5LyY5YWI57qnSUTlsZ7mgKflj6/pgInmi6nnmoTov5DnrpfnrKbjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUmVxdWVzdGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5a6a5LmJ5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu05p2h5Lu257yW6L6R5bGP5bmV5Lit6K+35rGC5pe26Ze05bGe5oCn5Y+v6YCJ5oup55qE6L+Q566X56ym44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlckFnZW50SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WumuS5ieacjeWKoeS6uuWRmOeVjOmdouWPmOabtOadoeS7tue8lui+keWxj+W5leS4reW3peS9nOaMh+S7pOacjeWKoeS6uuWRmElE5bGe5oCn5Y+v6YCJ5oup55qE6L+Q566X56ym44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlck51bWJlciBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5a6a5LmJ5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu05p2h5Lu257yW6L6R5bGP5bmV5Lit5bel5L2c5oyH5Luk57yW5Y+35bGe5oCn5Y+v6YCJ5oup55qE6L+Q566X56ym44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclN0YXRlSUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WumuS5ieacjeWKoeS6uuWRmOeVjOmdouWPmOabtOadoeS7tue8lui+keWxj+W5leS4reW3peS9nOaMh+S7pOeKtuaAgUlE5bGe5oCn5Y+v6YCJ5oup55qE6L+Q566X56ym44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflrprkuYnmnI3liqHkurrlkZjnlYzpnaLlj5jmm7TmnaHku7bnvJbovpHlsY/luZXkuK3lt6XkvZzmjIfku6TmoIfpopjlsZ7mgKflj6/pgInmi6nnmoTov5DnrpfnrKbjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflrprkuYnmnI3liqHkurrlkZjnlYzpnaLlj5jmm7TmnaHku7bnvJbovpHlsY/luZXkuK3lt6XkvZzmjIfku6TnsbvlnotJROWxnuaAp+WPr+mAieaLqeeahOi/kOeul+espuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwZXJpb2QgKGluIHllYXJzKSwgaW4gd2hpY2ggc3RhcnQgYW5kIGVuZCB0aW1lcyBjYW4gYmUgc2VsZWN0ZWQuJ30gPQogICAgICAgICflrprkuYnog73lpJ/pgInmi6nlvIDlp4vml7bpl7Tlkoznu5PmnZ/ml7bpl7TnmoTml7bpl7TmrrXvvIjljZXkvY3vvJrlubTvvInjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gYXR0cmlidXRlcyBvZiBhIHdvcmtvcmRlciBpbiB0aGUgdG9vbHRpcCBvZiB0aGUgd29ya29yZGVyIGdyYXBoIGluIHRoZSBjaGFuZ2Ugem9vbS4gVG8gc2hvdyB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHRvb2x0aXAsIHRoZXkgbXVzdCBiZSBzcGVjaWZpZWQgbGlrZSBEeW5hbWljRmllbGRfV29ya09yZGVyRmllbGROYW1lMSwgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTIsIGV0Yy4nfSA9CiAgICAgICAgJ+WcqOWPmOabtOivpuaDheeql+WPo+aYvuekuuWcqOW3peS9nOaMh+S7pOWbvuaPkOekuuaWh+acrOeahOWxnuaAp+OAguimgeWcqOaPkOekuuaWh+acrOS4reaYvuekuuW3peS9nOaMh+S7pOWKqOaAgeWtl+aute+8jOS7luS7rOW/hemhu+aMieWmguS4i+agvOW8j+aMh+Wumu+8jOWmgkR5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUx44CBRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTLnrYnnrYnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ+WumuS5ieWcqFwn5Y+Y5pu0UFNBXCfmpoLop4jkuK3mmL7npLrnmoTlrZfmrrXvvIzov5nkuKrpgInpobnkuI3kvJrlvbHlk43lrZfmrrXnmoTmmL7npLrkvY3nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn5a6a5LmJ5ZyoXCflj5jmm7TorqHliJJcJ+amguiniOS4reaYvuekuueahOWtl+aute+8jOi/meS4qumAiemhueS4jeS8muW9seWTjeWtl+auteeahOaYvuekuuS9jee9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeUNBQiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ+WumuS5ieWcqFwn5oiR55qEQ0FCXCfmpoLop4jkuK3mmL7npLrnmoTlrZfmrrXvvIzov5nkuKrpgInpobnkuI3kvJrlvbHlk43lrZfmrrXnmoTmmL7npLrkvY3nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn5a6a5LmJ5ZyoXCfmiJHnmoTlj5jmm7RcJ+amguiniOS4reaYvuekuueahOWtl+aute+8jOi/meS4qumAiemhueS4jeS8muW9seWTjeWtl+auteeahOaYvuekuuS9jee9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBNeVdvcmtvcmRlcnMgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICflrprkuYnlnKhcJ+aIkeeahOW3peS9nOaMh+S7pFwn5qaC6KeI5Lit5pi+56S655qE5a2X5q6177yM6L+Z5Liq6YCJ6aG55LiN5Lya5b2x5ZON5a2X5q6155qE5pi+56S65L2N572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIFBJUiBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ+WumuS5ieWcqFwnUElS77yI5a6e5pa95ZCO6K+E5a6h77yJXCfmpoLop4jkuK3mmL7npLrnmoTlrZfmrrXvvIzov5nkuKrpgInpobnkuI3kvJrlvbHlk43lrZfmrrXnmoTmmL7npLrkvY3nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICflrprkuYnlnKhcJ+WPmOabtOe7j+eQhlwn5qaC6KeI5Lit5pi+56S655qE5a2X5q6177yM6L+Z5Liq6YCJ6aG55LiN5Lya5b2x5ZON5a2X5q6155qE5pi+56S65L2N572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ+WumuS5ieWcqFwn5Y+Y5pu0XCfmpoLop4jkuK3mmL7npLrnmoTlrZfmrrXvvIzov5nkuKrpgInpobnkuI3kvJrlvbHlk43lrZfmrrXnmoTmmL7npLrkvY3nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ+WumuS5ieWcqOWPmOabtOaQnOe0oue7k+aenOS4reaYvuekuueahOWtl+aute+8jOi/meS4qumAiemhueS4jeS8muW9seWTjeWtl+auteeahOaYvuekuuS9jee9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBjdXN0b21lciBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICflrprkuYnlnKjlrqLmiLdcJ+WPmOabtOiuoeWIklwn5qaC6KeI5Lit5pi+56S655qE5a2X5q6177yM6L+Z5Liq6YCJ6aG55LiN5Lya5b2x5ZON5a2X5q6155qE5pi+56S65L2N572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn5a6a5LmJ5Zyo5qih5p2/5qaC6KeI5Lit5pi+56S655qE5a2X5q6177yM6L+Z5Liq6YCJ6aG55LiN5Lya5b2x5ZON5a2X5q6155qE5pi+56S65L2N572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNpZ25hbHMgZm9yIGVhY2ggSVRTTSBjaGFuZ2Ugc3RhdGUuJ30gPSAn5a6a5LmJ5q+P5Liq5Y+Y5pu054q25oCB55qE5qCH5b+X5L+h5Y+344CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHRlbXBsYXRlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn5a6a5LmJ5Zyo5qih5p2/5qaC6KeI5Lit55So5L2c6L+H5ruk5Zmo55qE5qih5p2/57G75Z6L44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn5a6a5LmJ5ZyoXCfmiJHnmoTlt6XkvZzmjIfku6RcJ+amguiniOS4reeUqOS9nOi/h+a7pOWZqOeahOW3peS9nOaMh+S7pOeKtuaAgeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ+WumuS5ieWcqFwnUElS77yI5a6e5pa95ZCO6K+E5a6h77yJXCfmpoLop4jkuK3nlKjkvZzov4fmu6TlmajnmoTlt6XkvZzmjIfku6TnirbmgIHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgd29ya29yZGVyIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNob3cgdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJ+WumuS5ieWcqFwnUElS77yI5a6e5pa95ZCO6K+E5a6h77yJXCfmpoLop4jkuK3nlKjkvZzov4fmu6TlmajnmoTlt6XkvZzmjIfku6TnsbvlnovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAn5a6a5LmJ5piv5ZCm5Y+R6YCB6YCa55+l44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBhIGNoYW5nZS4nfSA9ICfliKDpmaTkuIDkuKrlj5jmm7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSBjaGFuZ2UuJ30gPSAn5Yig6Zmk5q2k5Y+Y5pu044CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgd29ya29yZGVyLid9ID0gJ+WIoOmZpOatpOW3peS9nOaMh+S7pOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJ30gPSAn5LiA5Liq5Y+Y5pu05Y6G5Y+y5p2h55uu55qE6K+m57uG5L+h5oGv44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICfnoa7lrprmnI3liqHkurrlkZjog73lkKbkuqTmjaLku5bnlJ/miJDnmoTnu5/orqHnmoRY6L2044CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgZG9uZSBmb3IgY29uZmlnIGl0ZW0gY2xhc3Nlcy4nfSA9CiAgICAgICAgJ+ehruWumumAmueUqOe7n+iuoeaooeWdl+iDveWQpueUn+aIkOmFjee9rumhueexu+aJgOWBmueahOWPmOabtOe7n+iuoeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzIHJlZ2FyZGluZyBjaGFuZ2Ugc3RhdGUgdXBkYXRlcyB3aXRoaW4gYSB0aW1lcGVyaW9kLid9ID0KICAgICAgICAn56Gu5a6a6YCa55So57uf6K6h5qih5Z2X6IO95ZCm55Sf5oiQ5LiA5q615pe26Ze05YaF5Y+Y5pu05YWz5LqO5Y+Y5pu054q25oCB5pu05paw55qE57uf6K6h44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNoYW5nZXMgYW5kIGluY2lkZW50IHRpY2tldHMuJ30gPQogICAgICAgICfnoa7lrprpgJrnlKjnu5/orqHmqKHlnZfog73lkKbnlJ/miJDlj5jmm7TlhbPkuo7lj5jmm7TlkozmlYXpmpzlt6XljZXkuYvpl7TnmoTlhbPns7vnmoTnu5/orqHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcy4nfSA9CiAgICAgICAgJ+ehruWumumAmueUqOe7n+iuoeaooeWdl+iDveWQpueUn+aIkOWFs+S6juWPmOabtOeahOe7n+iuoeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCB0aGUgbnVtYmVyIG9mIFJmYyB0aWNrZXRzIGEgcmVxdWVzdGVyIGNyZWF0ZWQuJ30gPQogICAgICAgICfnoa7lrprpgJrnlKjnu5/orqHmqKHlnZfog73lkKbnlJ/miJDkuIDkuKror7fmsYLogIXliJvlu7rnmoRSRkPvvIjlj5jmm7Tor7fmsYLvvInnmoTmlbDph4/nmoTnu5/orqHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgKGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzKSBzaG93biBpbiB0aGUgY2hhbmdlIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu05omT5Y2w56qX5Y+j5Lit5pi+56S655qE77yI5Y+Y5pu05ZKM5bel5L2c5oyH5Luk77yJ5Yqo5oCB5a2X5q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5re75Yqg5Y+Y5pu056qX5Y+j5Lit5pi+56S655qE5Yqo5oCB5a2X5q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2UgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmOeVjOmdoue8lui+keWPmOabtOeql+WPo+S4reaYvuekuueahOWKqOaAgeWtl+auteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmOeVjOmdouaQnOe0ouWPmOabtOeql+WPo+S4reaYvuekuueahOWKqOaAgeWtl+auteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLlj5jmm7Tor6bmg4Xnqpflj6PkuK3mmL7npLrnmoTliqjmgIHlrZfmrrXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLmt7vliqDlt6XkvZzmjIfku6Tnqpflj6PkuK3mmL7npLrnmoTliqjmgIHlrZfmrrXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i57yW6L6R5bel5L2c5oyH5Luk56qX5Y+j5Lit5pi+56S655qE5Yqo5oCB5a2X5q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgcmVwb3J0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5bel5L2c5oyH5Luk5oql5ZGK56qX5Y+j5Lit5pi+56S655qE5Yqo5oCB5a2X5q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmOeVjOmdouW3peS9nOaMh+S7pOivpuaDheeql+WPo+S4reaYvuekuueahOWKqOaAgeWtl+auteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljRmllbGQgZXZlbnQgbW9kdWxlIHRvIGhhbmRsZSB0aGUgdXBkYXRlIG9mIGNvbmRpdGlvbnMgaWYgZHluYW1pYyBmaWVsZHMgYXJlIGFkZGVkLCB1cGRhdGVkIG9yIGRlbGV0ZWQuJ30gPQogICAgICAgICflpITnkIbliqjmgIHlrZfmrrXmm7TmlrDmnaHku7bvvIjmt7vliqDjgIHmm7TmlrDmiJbliKDpmaTvvInnmoTliqjmgIHlrZfmrrXkuovku7bmqKHlnZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBhIGNoYW5nZS4nfSA9ICfnvJbovpHkuIDkuKrlj5jmm7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgY2hhbmdlLid9ID0gJ+e8lui+keWPmOabtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjb25kaXRpb25zIG9mIHRoZSBjaGFuZ2UuJ30gPSAn57yW6L6R5Y+Y5pu05p2h5Lu244CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIHdvcmtvcmRlci4nfSA9ICfnvJbovpHlt6XkvZzmjIfku6TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiRGF0ZSIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuJ30gPQogICAgICAgICflkK/nlKjmnIDlsI/nmoTlj5jmm7TorqHmlbDlmajlpKflsI/vvIjlpoLmnpxJVFNNQ2hhbmdlOjpOdW1iZXJHZW5lcmF0b3Ig5Y+Y5pu057yW5Y+355Sf5oiQ5Zmo6YCJ5oup5Li64oCc5pel5pyf4oCd77yJ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvcndhcmQgc2NoZWR1bGUgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb3ZlciBhcHByb3ZlZCBjaGFuZ2VzLid9ID0KICAgICAgICAn6L2s5Y+R5Y+Y5pu055qE6K6h5YiS6KGo44CC5bey5om55YeG5Y+Y5pu055qE5qaC6KeI44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgWm9vbSd9ID0gJ+WOhuWPsuivpuaDhSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDQUIgVGVtcGxhdGVzLid9ID0gJ+WPmOabtENBQuaooeadv+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBDb25kaXRpb24gRWRpdC4nfSA9ICflj5jmm7TmnaHku7bnvJbovpHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIE92ZXJ2aWV3Lid9ID0gJ+WPmOabtOadoeS7tuamguiniOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBNYW5hZ2VyIE92ZXJ2aWV3Lid9ID0gJ+WPmOabtOe7j+eQhuamguiniOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBOb3RpZmljYXRpb25zJ30gPSAnSVRTTeWPmOabtOmAmuefpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAn5Y+Y5pu0UElS77yI5a6e5pa95ZCO6K+E5a6h77yJ5qaC6KeI44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJ+WPmOabtOmAmuefpeinhOWImSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICflj5jmm7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICfmiJHnmoRDQULmpoLop4jjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAn5oiR55qE5Y+Y5pu05qaC6KeI44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJ+aIkeeahOW3peS9nOaMh+S7pOamguiniOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICfliKDpmaTmqKHmnb/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICfnvJbovpHmqKHmnb9DQULjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAn57yW6L6R5qih5p2/5YaF5a6544CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICfnvJbovpHmqKHmnb/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICfmqKHmnb/mpoLop4jjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICfmuIXnkIblj5jmm7TmnaHku7bnmoRJVFNN5LqL5Lu25qih5Z2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgY2FjaGUgZm9yIGEgdG9vbGJhci4nfSA9ICfliKDpmaTlj5jmm7Tlt6XlhbfmoI/nvJPlrZjnmoRJVFNN5LqL5Lu25qih5Z2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJ+WIoOmZpOWPmOabtOWOhuWPsueahElUU03kuovku7bmqKHlnZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICfljLnphY3mnaHku7blubbmiafooYzmk43kvZznmoRJVFNN5LqL5Lu25qih5Z2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgc2VuZHMgbm90aWZpY2F0aW9ucy4nfSA9ICflj5HpgIHpgJrnn6XnmoRJVFNN5LqL5Lu25qih5Z2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzLid9ID0gJ+abtOaWsOWPmOabtOWOhuWPsueahElUU03kuovku7bmqKHlnZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAn5pu05paw5p2h5Lu25Y6G5Y+y55qESVRTTeS6i+S7tuaooeWdl+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2Ygd29ya29yZGVycy4nfSA9ICfmm7TmlrDlt6XkvZzmjIfku6Tljoblj7LnmoRJVFNN5LqL5Lu25qih5Z2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHJlY2FsY3VsYXRlIHRoZSB3b3Jrb3JkZXIgbnVtYmVycy4nfSA9ICfph43mlrDorqHnrpflt6XkvZzmjIfku6TnvJblj7fnmoRJVFNN5LqL5Lu25qih5Z2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJ+iuvue9ruW3peS9nOaMh+S7pOWunumZheW8gOWniy/nu5PmnZ/ml7bpl7TnmoRJVFNN5LqL5Lu25qih5Z2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01DaGFuZ2UnfSA9ICflj5jmm7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTVdvcmtPcmRlcid9ID0gJ+W3peS9nOaMh+S7pCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBmcmVxdWVuY3kgaXMgXCdyZWd1bGFybHlcJywgeW91IGNhbiBjb25maWd1cmUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb25zIGFyZSBzZW50IChldmVyeSBYIGhvdXJzKS4nfSA9CiAgICAgICAgJ+WmguaenOmikeeOh+iuvue9ruS4uuKAnOWumuacn+KAne+8jOS9oOWPr+S7peiuvue9ruWPkemAgemAmuefpeeahOmikeeOh+mXtOmalO+8iOavj1jlsI/ml7bvvInjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgY2hhbmdlLid9ID0gJ+mTvuaOpeWPpuS4gOWvueixoeWIsOWPmOabtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoZSB3b3Jrb3JkZXIuJ30gPSAn6ZO+5o6l5Y+m5LiA5a+56LGh5Yiw5bel5L2c5oyH5Luk44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIGNoYW5nZSBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAn5Zu+5b2i55WM6Z2i5pi+56S655qE5omA5pyJ5Y+Y5pu05LqL5Lu25YiX6KGo44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgYWxsIHdvcmtvcmRlciBldmVudHMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBHVUkuJ30gPSAn5Zyo5Zu+5b2i55So5oi355WM6Z2i5Lit5pi+56S655qE5bel5L2c5oyH5Luk5LqL5Lu25YiX6KGo44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBDQUIgbWVtYmVycyBmb3IgYXV0b2NvbXBsZXRpb24uJ30gPSAn5p+l5om+Q0FC5oiQ5ZGY77yM55So5LqO6Ieq5Yqo6KGl6b2Q5Yqf6IO944CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvb2t1cCBvZiBhZ2VudHMsIHVzZWQgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJ+afpeaJvuacjeWKoeS6uuWRmO+8jOeUqOS6juiHquWKqOihpem9kOWKn+iDveOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgSVRTTSBDaGFuZ2UgTWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLid9ID0gJ+euoeeQhklUU03lj5jmm7TnrqHnkIbnirbmgIHmnLrjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAn566h55CGIOmjjumZqeexu+WIqyDihpQg5b2x5ZONIOKGlCDkvJjlhYjnuqcg55+p6Zi144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICfmo4Dmn6XmmK/lkKblhYHorrhXb3JrT3JkZXJBZGTvvIjmt7vliqDlt6XkvZzmjIfku6TvvInmiJZXb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGXvvIjku47mqKHmnb/mt7vliqDlt6XkvZzmjIfku6TvvInnmoTmqKHlnZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICfmo4Dmn6VDQULmiJDlkZjnmoTmqKHlnZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICfmo4Dmn6Xlj5jmm7TmnI3liqHkurrlkZjnmoTmqKHlnZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICfmo4Dmn6Xlj5jmm7TliJvlu7rkurrnmoTmqKHlnZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICfmo4Dmn6Xlj5jmm7Tnu4/nkIbnmoTmqKHlnZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAn5qOA5p+l5bel5L2c5oyH5Luk5pyN5Yqh5Lq65ZGY55qE5qih5Z2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAn5qOA5p+l5piv5ZCm5rKh5pyJ6K6+572u5bel5L2c5oyH5Luk5pyN5Yqh5Lq65ZGY55qE5qih5Z2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJ+ajgOafpeacjeWKoeS6uuWRmOaYr+WQpuWMheWQq+WcqOWcqOmFjee9ruWIl+ihqOS4reeahOaooeWdl+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAn5pi+56S65LiA5Liq6ZO+5o6l5Lul5LuO5bel5Y2V5Yib5bu65LiA5Liq5Y+Y5pu055qE5qih5Z2X44CC5bel5Y2V5bCG6Ieq5Yqo6ZO+5o6l5Yiw5paw55qE5Y+Y5pu044CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJ+enu+WKqOaXtumXtOi9tOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAn56e75Yqo5omA5pyJ5bel5L2c5oyH5Luk55qE5pe26Ze044CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICfku47mqKHmnb/mlrDlu7rlj5jmm7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSB1c2VycyBvZiB0aGVzZSBncm91cHMgaGF2ZSB0aGUgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRpY2tldCB0eXBlcyBhcyBkZWZpbmVkIGluICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIGlmIHRoZSBmZWF0dXJlICJUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGUiIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICflpoLmnpzlkK/nlKjkuobigJxUaWNrZXQ6OkFjbDo6TW9kdWxlIyMjMjAwLVRpY2tldDo6QWNsOjpNb2R1bGXigJ3vvIzlj6rmnInov5nkupvnu4TkuK3nmoTnlKjmiLfmnInmnYPkvb/nlKjigJxJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXPigJ3kuK3lrprkuYnnmoTlt6XljZXnsbvlnovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3RoZXIgU2V0dGluZ3MnfSA9ICflhbblroPorr7nva4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcgb3ZlciBhbGwgQ2hhbmdlcy4nfSA9ICfmiYDmnInlj5jmm7TnmoTmpoLop4jjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSJ30gPSAn5a6e5pa95ZCO6K+E5a6hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BJUiAoUG9zdCBJbXBsZW1lbnRhdGlvbiBSZXZpZXcpJ30gPSAnUElSICjlrp7mlr3lkI7or4TlrqEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BTQSd9ID0gJ1BTQSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgVXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrIG9iamVjdCBpbiB0aGUgcHJlZmVyZW5jZSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfmnI3liqHkurrlkZjnlYzpnaLlgY/lpb3orr7nva7op4blm75Vc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2vvvIjliJvlu7rlt6XkvZzmjIfku6TlkI7nmoTnqpflj6PvvInlr7nosaHnmoTlj4LmlbDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBjaGFuZ2Ugb3ZlcnZpZXcuJ30gPQogICAgICAgICflj5jmm7TmpoLop4jnroDmtIHmqKHlvI/mmL7npLrlj5jmm7TnmoTpobXpnaLlj4LmlbDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyZm9ybXMgdGhlIGNvbmZpZ3VyZWQgYWN0aW9uIGZvciBlYWNoIGV2ZW50IChhcyBhbiBJbnZva2VyKSBmb3IgZWFjaCBjb25maWd1cmVkIFdlYnNlcnZpY2UuJ30gPQogICAgICAgICfkuLrmr4/kuKrphY3nva7nmoRXRULmnI3liqHnmoTmr4/kuKrkuovku7bmiafooYzphY3nva7lpb3nmoTmk43kvZzvvIjku6XosIPnlKjnqIvluo/op5LoibLvvInjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBlbmQgdGltZSd9ID0gJ+iuoeWIkue7k+adn+aXtumXtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIHN0YXJ0IHRpbWUnfSA9ICforqHliJLlvIDlp4vml7bpl7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIGNoYW5nZS4nfSA9ICfmiZPljbDlj5jmm7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhlIHdvcmtvcmRlci4nfSA9ICfmiZPljbDlt6XkvZzmjIfku6TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5J30gPSAn6K6h5YiS5pyN5Yqh5Y+v55So5oCnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSd9ID0gJ+iuoeWIkuacjeWKoeWPr+eUqOaAp++8iFBTQe+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHkgKFBTQSkgb2YgY2hhbmdlcy4gT3ZlcnZpZXcgb2YgYXBwcm92ZWQgY2hhbmdlcyBhbmQgdGhlaXIgc2VydmljZXMuJ30gPQogICAgICAgICflj5jmm7TnmoTorqHliJLmnI3liqHlj6/nlKjmgKfvvIhQU0HvvInjgILlt7Lmibnlh4bnmoTlj5jmm7TlkozlroPku6znmoTmnI3liqHnmoTmpoLop4jjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIHRpbWUnfSA9ICfor7fmsYLml7bpl7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyBpbiBvcmRlciBmb3IgYW4gYWdlbnQgdG8gdGFrZSBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJ+acjeWKoeS6uuWRmOaOpeaJi+W3peS9nOaMh+S7pOaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGUgb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZXMuJ30gPSAn6K6/6Zeu5omA5pyJ55qE5Y+Y5pu05qaC6KeI5omA6ZyA55qE5p2D6ZmQ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWRkIGEgd29ya29yZGVyLid9ID0gJ+a3u+WKoOS4gOS4quW3peS9nOaMh+S7pOaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNoYW5nZSB0aGUgd29ya29yZGVyIGFnZW50Lid9ID0gJ+abtOaNouW3peS9nOaMh+S7pOacjeWKoeS6uuWRmOaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSBjaGFuZ2UuJ30gPSAn5LuO5Y+Y5pu05Lit5Yib5bu65qih5p2/5omA6ZyA55qE5p2D6ZmQ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZXNcJyBDQUIuJ30gPQogICAgICAgICfku47lj5jmm7RDQULkuK3liJvlu7rmqKHmnb/miYDpnIDnmoTmnYPpmZDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgd29ya29yZGVyLid9ID0gJ+S7juW3peS9nOaMh+S7pOWIm+W7uuaooeadv+aJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzIGZyb20gdGVtcGxhdGVzLid9ID0gJ+S7juaooeadv+S4reWIm+W7uuWPmOabtOaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBjaGFuZ2VzLid9ID0gJ+WIm+W7uuWPmOabtOaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHRlbXBsYXRlLid9ID0gJ+WIoOmZpOaooeadv+aJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBhIHdvcmtvcmRlci4nfSA9ICfliKDpmaTkuIDkuKrlt6XkvZzmjIfku6TmiYDpnIDnmoTmnYPpmZDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBkZWxldGUgY2hhbmdlcy4nfSA9ICfliKDpmaTlj5jmm7TmiYDpnIDnmoTmnYPpmZDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgdGVtcGxhdGUuJ30gPSAn57yW6L6R5Y+Y5pu05omA6ZyA55qE5p2D6ZmQ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCBhIHdvcmtvcmRlci4nfSA9ICfnvJbovpHlt6XkvZzmjIfku6TmiYDpnIDnmoTmnYPpmZDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGNoYW5nZXMuJ30gPSAn57yW6L6R5Y+Y5pu05omA6ZyA55qE5p2D6ZmQ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29uZGl0aW9ucyBvZiBjaGFuZ2VzLid9ID0gJ+e8lui+keWPmOabtOadoeS7tuaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgYSB0ZW1wbGF0ZS4nfSA9ICfnvJbovpHmqKHmnb/lhoXlrrnmiYDpnIDnmoTmnYPpmZDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBpbnZvbHZlZCBwZXJzb25zIG9mIGEgY2hhbmdlLid9ID0KICAgICAgICAn57yW6L6R5Y+Y5pu055u45YWz5Lq65ZGY5omA6ZyA55qE5p2D6ZmQ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gbW92ZSBjaGFuZ2VzIGluIHRpbWUuJ30gPSAn56e75Yqo5Y+Y5pu05pe26Ze06L205omA6ZyA55qE5p2D6ZmQ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcHJpbnQgYSBjaGFuZ2UuJ30gPSAn5omT5Y2w5Y+Y5pu05omA6ZyA55qE5p2D6ZmQ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gcmVzZXQgY2hhbmdlcy4nfSA9ICfph43nva7lj5jmm7TmiYDpnIDnmoTmnYPpmZDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGEgd29ya29yZGVyLid9ID0gJ+afpeeci+W3peS9nOaMh+S7pOaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgY2hhbmdlcy4nfSA9ICfmn6XnnIvlj5jmm7TmiYDpnIDnmoTmnYPpmZDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IGxpc3Qgb2YgY2hhbmdlcyB3aGVyZSB0aGUgdXNlciBpcyBhIENBQiBtZW1iZXIuJ30gPQogICAgICAgICfmn6XnnItcJ+aIkeeahENBQlwn55qE5Y+Y5pu05YiX6KGo5omA6ZyA55qE5p2D6ZmQ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBsaXN0IG9mIGNoYW5nZXMgd2hlcmUgdGhlIHVzZXIgaXMgdGhlIGNoYW5nZSBtYW5hZ2VyLid9ID0KICAgICAgICAn5p+l55yLXCfmiJHnmoTlj5jmm7RcJ+eahOWPmOabtOWIl+ihqOaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJ+afpeeci+aJgOacieaooeadv+amguiniOaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICfmn6XnnIvlj5jmm7TmnaHku7bmiYDpnIDnmoTmnYPpmZDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJ+afpeeci+WPmOabtOWOhuWPsuaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAn5p+l55yL5bel5L2c5oyH5Luk5Y6G5Y+y5omA6ZyA55qE5p2D6ZmQ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJ+afpeeci+WPmOabtOWOhuWPsuivpuaDheaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJ+afpeeci+W3peS9nOaMh+S7pOivpuaDheaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJ+afpeeci+WPmOabtOiuoeWIkuWIl+ihqOaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICfmn6XnnIvlj5jmm7RQU0HliJfooajmiYDpnIDnmoTmnYPpmZDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJ+afpeeci+acieWNs+S9v+adpeS4tOeahFBJUu+8iOWunuaWveWQjuivhOWuoe+8ieeahOWPmOabtOWIl+ihqOaJgOmcgOeahOadg+mZkOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAn5p+l55yL6Ieq5bex55qE5Y+Y5pu05YiX6KGo5omA6ZyA55qE5p2D6ZmQ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICfmn6XnnIvoh6rlt7HnmoTlt6XkvZzmjIfku6TmiYDpnIDnmoTmnYPpmZDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICfkuLrlt6XkvZzmjIfku6TnvJblhpnmiqXlkYrmiYDpnIDnmoTmnYPpmZDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJ+mHjee9ruS4gOS4quWPmOabtOWSjOWug+eahOW3peS9nOaMh+S7pOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJ+mHjee9ruWPmOabtOWSjOWug+eahOW3peS9nOaMh+S7pOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAn5omn6KGM5Lu75Yqh5p2l5qOA5p+l5piv5ZCm5Yiw6L6+5LqG5Y+Y5pu05ZKM5bel5L2c5oyH5Luk55qE54m55a6a5pe26Ze054K544CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAn5L+d5a2Y5Y+Y5pu05Li65qih5p2/44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAn5L+d5a2Y5bel5L2c5oyH5Luk5Li65qih5p2/44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAn6K6h5YiS6KGoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJ+WIm+W7uuW3peS9nOaMh+S7pOWQjueahOeql+WPoyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJ+aQnOe0ouWPmOabtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICfmkJzntKLlj5jmm7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJ+mAieaLqeWPmOabtOe8luWPt+eUn+aIkOWZqOaooeWdl+OAguKAnOiHquWKqOWinumHj+KAnS0t6YCS5aKe5Y+Y5pu057yW5Y+377yM57O757ufSUTlkozorqHmlbDlmajphY3lkIjkvb/nlKjnmoTmoLzlvI/kuLrvvJrns7vnu59JRC7orqHmlbDlmajvvIjlpoIxMDAxMTjjgIExMDAxMTnvvInjgILigJzml6XmnJ/igJ0tLeS8mueUqOW9k+WJjeaXpeacn+OAgeezu+e7n0lE5ZKM6K6h5pWw5Zmo5YWx5ZCM55Sf5oiQ5Y+Y5pu057yW5Y+377yM5qC85byP5Li677ya5bm0LuaciC7ml6Uu57O757ufSUQu6K6h5pWw5Zmo77yI5aaCMjAxMDA2MjQwMDAwMeOAgTIwMTAwNjI0MDAwMDLvvInjgILigJzml6XmnJ/moKHpqozlkozigJ0tLeiuoeaVsOWZqOeahOWAvOS7peagoemqjOWSjOeahOaWueW8j+i/veWKoOaXpeacn+WSjOezu+e7n0lE55qE5a2X56ym5Liy5ZCO6Z2i77yM5qCh6aqM5ZKM5q+P5pel6L2u5o2i77yM6L+Z56eN5qC85byP5Li677ya5bm0LuaciC7ml6Uu57O757ufSUQu6K6h5pWw5ZmoLuagoemqjOWSjO+8iOWmgjIwMTAwNjI0MTAwMDAwMTfjgIEyMDEwMDYyNDEwMDAwMDI277yJ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgYWdlbnQgZm9yIHRoZSB3b3Jrb3JkZXIuJ30gPSAn5Li65bel5L2c5oyH5Luk5oyH5rS+5pyN5Yqh5Lq65ZGY44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gYW5kIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn6K6+572u5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu06K+m5oOF5bGP5bmV5ZKM5bel5L2c5oyH5Luk6K+m5oOF5bGP5bmV5Lit5YaF6IGUSFRNTOWtl+auteeahOm7mOiupOmrmOW6pu+8iOWNleS9je+8muWDj+e0oO+8ieOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+iuvue9ruacjeWKoeS6uuWRmOeVjOmdouWPmOabtOivpuaDheWxj+W5leWSjOW3peS9nOaMh+S7pOivpuaDheWxj+W5leS4reWGheiBlEhUTUzlrZfmrrXnmoTmnIDlpKfpq5jluqbvvIjljZXkvY3vvJrlg4/ntKDvvInjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgbWluaW1hbCBjaGFuZ2UgY291bnRlciBzaXplIChpZiAiQXV0b0luY3JlbWVudCIgd2FzIHNlbGVjdGVkIGFzIElUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcikuIERlZmF1bHQgaXMgNSwgdGhpcyBtZWFucyB0aGUgY291bnRlciBzdGFydHMgZnJvbSAxMDAwMC4nfSA9CiAgICAgICAgJ+iuvue9ruacgOWwj+eahOWPmOabtOiuoeaVsOWZqOWkp+Wwj++8iOWmguaenOWPmOabtOe8luWPt+eUn+aIkOWZqOmAieeUqOKAnOiHquWKqOWinumHj+KAne+8ieOAgum7mOiupOaYrzXvvIjkvY3mlbDvvInvvIzmhI/lkbPnnYDorqHmlbDlmajku44xMDAwMOW8gOWni+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciBjaGFuZ2VzLid9ID0gJ+iuvue9ruWPmOabtOeahOeKtuaAgeaooeW8j+i9rOaNouOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHVwIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3b3Jrb3JkZXJzLid9ID0gJ+iuvue9ruW3peS9nOaMh+S7pOeahOeKtuaAgeaooeW8j+i9rOaNouOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGNoZWNrYm94IGluIHRoZSB3b3Jrb3JkZXIgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZSB0aGF0IGRlZmluZXMgaWYgdGhlIHRoZSBmb2xsb3dpbmcgd29ya29yZGVycyBzaG91bGQgYWxzbyBiZSBtb3ZlZCBpZiBhIHdvcmtvcmRlciBpcyBtb2RpZmllZCBhbmQgdGhlIHBsYW5uZWQgZW5kIHRpbWUgaGFzIGNoYW5nZWQuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLnvJbovpHlt6XkvZzmjIfku6TlsY/luZXmmL7npLrkuIDkuKrlpI3pgInmoYbvvIznlKjkuo7noa7lrprlvZPkuIDkuKrlt6XkvZzmjIfku6Tooqvkv67mlLnkuJTorqHliJLnu5PmnZ/ml7bpl7Tlj5jmm7Tml7bvvIzmmK/lkKblsIblkI7pnaLnmoTlt6XkvZzmjIfku6TkuZ/pmo/kuYvnp7vliqjml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5bel5L2c5oyH5Luk6K+m5oOF56qX5Y+j77yM5Zyo6I+c5Y2V5Lit5pi+56S65LiA5Liq5YWB6K645L+u5pS56K+l5bel5L2c5oyH5Luk55qE5pyN5Yqh5Lq65ZGY55qE6ZO+5o6l44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIGNoYW5nZSBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmOeVjOmdouWPmOabtOivpuaDheeql+WPo++8jOWcqOiPnOWNleS4reaYvuekuuS4gOS4quWFgeiuuOWumuS5ieS4gOS4quWPmOabtOS4uuaooeadv+eahOmTvuaOpeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZGVmaW5pbmcgYSB3b3Jrb3JkZXIgYXMgYSB0ZW1wbGF0ZSBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLlt6XkvZzmjIfku6Tor6bmg4Xnqpflj6PvvIzlnKjoj5zljZXkuK3mmL7npLrkuIDkuKrlhYHorrjlrprkuYnkuIDkuKrlt6XkvZzmjIfku6TkuLrmqKHmnb/nmoTpk77mjqXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGVkaXRpbmcgdGhlIHJlcG9ydCBvZiBhIHdvcmtvcmRlciwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLlt6XkvZzmjIfku6Tor6bmg4Xnqpflj6PvvIzlnKjoj5zljZXkuK3mmL7npLrkuIDkuKrlhYHorrjnvJbovpHor6Xlt6XkvZzmjIfku6TnmoTmiqXlkYrnmoTpk77mjqXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu06K+m5oOF56qX5Y+j77yM5Zyo6I+c5Y2V5Lit5pi+56S65LiA5Liq5YWB6K646ZO+5o6l5Y+Y5pu05Yiw5Y+m5LiA5a+56LGh55qE6ZO+5o6l44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgd29ya29yZGVyIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLlt6XkvZzmjIfku6Tor6bmg4Xnqpflj6PvvIzlnKjoj5zljZXkuK3mmL7npLrkuIDkuKrlhYHorrjpk77mjqXor6Xlt6XkvZzmjIfku6TliLDlhbblroPlr7nosaHnmoTpk77mjqXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIG1vdmluZyB0aGUgdGltZSBzbG90IG9mIGEgY2hhbmdlIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmOeVjOmdouW3peWNleWPmOabtOivpuaDheeql+WPo++8jOWcqOiPnOWNleS4reaYvuekuuS4gOS4quWFgeiuuOenu+WKqOWPmOabtOaXtumXtOi9tOeahOmTvuaOpeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdGFraW5nIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLlt6XkvZzmjIfku6Tor6bmg4Xnqpflj6PvvIzlnKjoj5zljZXkuK3mmL7npLrkuIDkuKrlhYHorrjmiafooYzkuIDkuKrlt6XkvZzmjIfku6TnmoTpk77mjqXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgY29uZGl0aW9ucyBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu06K+m5oOF56qX5Y+j77yM5Zyo6I+c5Y2V5Lit5pi+56S65LiA5Liq6K6/6Zeu5Y+Y5pu05p2h5Lu255qE6ZO+5o6l44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmOeVjOmdouWPmOabtOivpuaDheeql+WPo++8jOWcqOiPnOWNleS4reaYvuekuuS4gOS4quiuv+mXruWPmOabtOWOhuWPsueahOmTvuaOpeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLlt6XkvZzmjIfku6Tor6bmg4Xnqpflj6PvvIzlnKjoj5zljZXkuK3mmL7npLrkuIDkuKrorr/pl67lt6XkvZzmjIfku6Tljoblj7LnmoTpk77mjqXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFkZCBhIHdvcmtvcmRlciBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu06K+m5oOF56qX5Y+j77yM5Zyo6I+c5Y2V5Lit5pi+56S65LiA5Liq5re75Yqg5bel5L2c5oyH5Luk55qE6ZO+5o6l44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu06K+m5oOF56qX5Y+j77yM5Zyo6I+c5Y2V5Lit5pi+56S65LiA5Liq5Yig6Zmk5Y+Y5pu055qE6ZO+5o6l44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBkZWxldGUgYSB3b3Jrb3JkZXIgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5bel5L2c5oyH5Luk6K+m5oOF56qX5Y+j77yM5Zyo6I+c5Y2V5Lit5pi+56S65LiA5Liq5Yig6Zmk5bel5L2c5oyH5Luk55qE6ZO+5o6l44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLlj5jmm7Tor6bmg4Xnqpflj6PvvIzlnKjoj5zljZXkuK3mmL7npLrkuIDkuKrnvJbovpHlj5jmm7TnmoTpk77mjqXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmOeVjOmdouW3peS9nOaMh+S7pOivpuaDheeql+WPo++8jOWcqOiPnOWNleS4reaYvuekuuS4gOS4que8lui+keW3peS9nOaMh+S7pOeahOmTvuaOpeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgY2hhbmdlIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu06K+m5oOF56qX5Y+j77yM5Zyo6I+c5Y2V5Lit5pi+56S65LiA5Liq6L+U5Zue6ZO+5o6l44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSB3b3Jrb3JkZXIgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLlt6XkvZzmjIfku6Tor6bmg4Xnqpflj6PvvIzlnKjoj5zljZXkuK3mmL7npLrkuIDkuKrov5Tlm57pk77mjqXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLlt6XkvZzmjIfku6Tor6bmg4Xnqpflj6PvvIzlnKjoj5zljZXkuK3mmL7npLrkuIDkuKrmiZPljbDlj5jmm7TnmoTpk77mjqXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgd29ya29yZGVyIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLlt6XkvZzmjIfku6Tor6bmg4Xnqpflj6PvvIzlnKjoj5zljZXkuK3mmL7npLrkuIDkuKrmiZPljbDlt6XkvZzmjIfku6TnmoTpk77mjqXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHJlc2V0IGEgY2hhbmdlIGFuZCBpdHMgd29ya29yZGVycyBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLlt6XkvZzmjIfku6Tor6bmg4Xnqpflj6PvvIzlnKjoj5zljZXkuK3mmL7npLrkuIDkuKrph43nva7lj5jmm7Tlkozlt6XkvZzmjIfku6TnmoTpk77mjqXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHNob3cgdGhlIGludm9sdmVkIHBlcnNvbnMgaW4gYSBjaGFuZ2UsIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIGNoYW5nZSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Y+Y5pu06K+m5oOF56qX5Y+j77yM5Zyo6I+c5Y2V5Lit5pi+56S65LiA5Liq6ZO+5o6l5Lul5pi+56S65Y+Y5pu055qE55u45YWz5Lq65ZGY44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSBjaGFuZ2UgaGlzdG9yeSAocmV2ZXJzZSBvcmRlcmVkKSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5pi+56S65Y+Y5pu05Y6G5Y+y77yI5YCS5bqP77yJ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRlIE1hY2hpbmUnfSA9ICfnirbmgIHmqKHlvI/ovazmjaInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RvcmVzIGNoYW5nZSBhbmQgd29ya29yZGVyIGlkcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBpZCwgd2hpbGUgYSB1c2VyIGlzIGVkaXRpbmcgYSB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJ+W9k+eUqOaIt+e8lui+keS4gOS4quaooeadv+aXtu+8jOWtmOWCqOWPmOabtOWSjOW3peS9nOaMh+S7pOeahElE5ZKM5LuW5Lus5a+55bqU55qE5qih5p2/SUTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXInfSA9ICfmjqXmiYvlt6XkvZzmjIfku6QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFrZSBXb3Jrb3JkZXIuJ30gPSAn5omn6KGM5bel5L2c5oyH5Luk44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhlIHdvcmtvcmRlci4nfSA9ICfmjqXmiYvov5nkuKrlt6XkvZzmjIfku6TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgT3ZlcnZpZXcnfSA9ICfmqKHmnb/mpoLop4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUgdHlwZSd9ID0gJ+aooeadv+exu+Weiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZS4nfSA9ICfmqKHmnb/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgY2hhbmdlLCBlLmcuIENoYW5nZSMsIE15Q2hhbmdlIy4gVGhlIGRlZmF1bHQgaXMgQ2hhbmdlIy4nfSA9CiAgICAgICAgJ+WPmOabtOeahOagh+ivhuespu+8jOS+i+Wmgu+8mkNoYW5nZSPjgIFNeUNoYW5nZSPjgILpu5jorqTkuLpDaGFuZ2Uj44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHdvcmtvcmRlciwgZS5nLiBXb3Jrb3JkZXIjLCBNeVdvcmtvcmRlciMuIFRoZSBkZWZhdWx0IGlzIFdvcmtvcmRlciMuJ30gPQogICAgICAgICflt6XkvZzmjIfku6TnmoTmoIfor4bnrKbvvIzkvovlpoLvvJpXb3Jrb3JkZXIj44CBTXlXb3Jrb3JkZXIj44CC6buY6K6k5Li6V29ya29yZGVyI+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAn6L+Z5LiqQUNM5qih5Z2X6ZmQ5Yi25L2/55So5a6a5LmJ5Zyo57O757uf6YWN572u6YCJ6aG5XCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXNcJ+S4reeahOW3peWNleexu+Wei++8jCDku4XlnKhcJ0lUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3Vwc1wn5Lit5a6a5LmJ55qE57uE5oiQ5ZGY6IO95aSf5L2/55So44CC6L+Z5LiqQUNM5Y+v6IO95Lya5ZKM5YW25a6D5LiO6L+Z5Liq5bel5Y2V57G75Z6L55u45YWz55qEQUNM5Yay56qB77yMIOaJgOS7pei/meS4quezu+e7n+mFjee9rumAiemhuem7mOiupOaYr+emgeeUqOeahO+8jOS7heWcqOmcgOimgeaXtuWQr+eUqOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNsb3QnfSA9ICfml7bpl7TovbQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgb2YgdGlja2V0cywgd2hlcmUgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgYSBsaW5rIHRvIGFkZCBhIGNoYW5nZSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ+WcqOW3peWNleivpuaDheeql+WPo+a3u+WKoOS4gOS4quWPmOabtOmTvuaOpeaXtuaYvuekuueahOW3peWNleexu+Wei+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNlYXJjaCd9ID0gJ+eUqOaIt+aQnOe0oic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkIChmcm9tIHRlbXBsYXRlKS4nfSA9ICfmt7vliqDlt6XkvZzmjIfku6TvvIjku47mqKHmnb/vvInjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFkZC4nfSA9ICfmt7vliqDlt6XkvZzmjIfku6TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEFnZW50Lid9ID0gJ+W3peS9nOaMh+S7pOacjeWKoeS6uuWRmOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRGVsZXRlLid9ID0gJ+WIoOmZpOW3peS9nOaMh+S7pOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgRWRpdC4nfSA9ICfnvJbovpHlt6XkvZzmjIfku6TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkgWm9vbS4nfSA9ICflt6XkvZzmjIfku6Tljoblj7Lor6bmg4XjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIEhpc3RvcnkuJ30gPSAn5bel5L2c5oyH5Luk5Y6G5Y+y44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBSZXBvcnQuJ30gPSAn5bel5L2c5oyH5Luk5oql5ZGK44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tJ30gPSAn5bel5L2c5oyH5Luk6K+m5oOFJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBab29tLid9ID0gJ+W3peS9nOaMh+S7pOivpuaDheOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvbmNlJ30gPSAn5Y2V5qyhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlZ3VsYXJseSd9ID0gJ+Wumuacnyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWN0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiBsYW5ndWFnZT8nLAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBub3RpZmljYXRpb24/JywKICAgICdObycsCiAgICAnT2snLAogICAgJ1BsZWFzZSBlbnRlciBhdCBsZWFzdCBvbmUgc2VhcmNoIHZhbHVlIG9yICogdG8gZmluZCBhbnl0aGluZy4nLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/zh_TW_ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6emhfVFdfSVRTTUNoYW5nZU1hbmFnZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSd9ID0gJ+mhnuWIqyDihpQg5b2x6Z+/IOKGlCDlhKrlhYjntJonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBwcmlvcml0eSByZXN1bHQgb2YgY29tYmluYXRpbmcgQ2F0ZWdvcnkg4oaUIEltcGFjdC4nfSA9CiAgICAgICAgJyLpoZ7liKsg4oaUIOW9semfvyLkuYvplpPnmoTntYTlkIjmsbrlrprlhKrlhYjnuqfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHkgYWxsb2NhdGlvbid9ID0gJ+WEquWFiOe6p+WIhumFjSc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbklUU01DaGFuZ2VOb3RpZmljYXRpb24udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlTWFuYWdlbWVudCBOb3RpZmljYXRpb24gTWFuYWdlbWVudCd9ID0gJ+euoeeQhuiuiuabtOmAmuefpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90aWZpY2F0aW9uIFJ1bGUnfSA9ICfmt7vliqDpgJrnn6Xopo/liYcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBOb3RpZmljYXRpb24gUnVsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5vdGlmaWNhdGlvbiBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAn6YCa55+l5b+F6aCI5pyJ5ZCN56ix77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05hbWUgaXMgcmVxdWlyZWQuJ30gPSAn5ZCN56ix5piv5b+F6ZyA55qE44CCJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluSVRTTVN0YXRlTWFjaGluZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gU3RhdGUgTWFjaGluZSd9ID0gJ+euoeeQhueLgOaFi+apnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYSBjYXRhbG9nIGNsYXNzISd9ID0gJ+mBuOaTh+ebrumMhOmhnic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGFsb2cgY2xhc3MgaXMgcmVxdWlyZWQhJ30gPSAn55uu6YyE6aGe5piv5b+F6ZyA55qE77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHN0YXRlIHRyYW5zaXRpb24nfSA9ICfmt7vliqDkuIDlgIvni4DmhYvovYnmj5snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0YWxvZyBDbGFzcyd9ID0gJ+ebrumMhOmhnic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPYmplY3QgTmFtZSd9ID0gJ+WwjeixoeWQjeeosSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIHN0YXRlIHRyYW5zaXRpb25zIGZvcid9ID0gJ+eLgOaFi+i9ieaPm+amguazgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBzdGF0ZSB0cmFuc2l0aW9uJ30gPSAn5Yig6Zmk6YCZ5YCL54uA5oWL6L2J5o+bJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uIGZvcid9ID0gJ+a3u+WKoOS4gOWAi+aWsOeahOi9ieaPm+eLgOaFiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGEgc3RhdGUhJ30gPSAn6KuL6YG45pOH5LiA5YCL54uA5oWL77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYSBuZXh0IHN0YXRlISd9ID0gJ+iri+mBuOaTh+S4i+S4gOatpeeLgOaFiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgc3RhdGUgdHJhbnNpdGlvbiBmb3InfSA9ICfnt6jovK/ovYnmj5vni4DmhYsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbid9ID0gJ+S9oOeiuuWumuimgeWIoOmZpOmAmeWAi+eLgOaFi+i9ieaPm+WXjj8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2hhbmdlJ30gPSAn5Ym15bu66K6K5pu0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlJ30gPSAn6K6K5pu0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0p1c3RpZmljYXRpb24nfSA9ICfnkIbnlLEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5wdXQgaW52YWxpZC4nfSA9ICfovLjlhaXnhKHmlYjjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIERhdGUnfSA9ICfoq4vmsYLml6XmnJ8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgQ2hhbmdlIFRlbXBsYXRlJ30gPSAn6YG45pOH6K6K5pu05qih5p2/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgdHlwZSd9ID0gJ+aZgumWk+mhnuWeiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUgdHlwZS4nfSA9ICfnhKHmlYjnmoTmmYLplpPpoZ7lnovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHRpbWUnfSA9ICfmlrDnmoTmmYLplpMnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSd9ID0gJ+S/neWtmOiuiuabtENBQuiHs+aooeadvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyB0byBpbnZvbHZlZCBwZXJzb25zIHNjcmVlbid9ID0gJ+i9ieWQkeebuOmXnOS6uuWToeeql+WPoyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE5hbWUnfSA9ICfnhKHmlYjnmoTlkI3nqLEnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb25zIGFuZCBBY3Rpb25zJ30gPSAn5qKd5Lu25ZKM5pON5L2cJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDb25kaXRpb24nfSA9ICfliKDpmaTmop3ku7YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG5ldyBjb25kaXRpb24nfSA9ICfmt7vliqDmlrDnmoTmop3ku7YnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDb25kaXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBhIHZhbGlkIG5hbWUuJ30gPSAn6ZyA6KaB5LiA5YCL5pyJ5pWI55qE5ZCN56ixJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgbmFtZSBpcyBuZWVkZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R1cGxpY2F0ZSBuYW1lOid9ID0gJ+mHjeikh+eahOWQjeeose+8mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkIGJ5IGFub3RoZXIgY29uZGl0aW9uLid9ID0gJ+WPpuS4gOWAi+aineS7tuW3suiiq+S9v+eUqOmBjuipsuWQjeeoseOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXRjaGluZyd9ID0gJ+WMuemFjSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnkgZXhwcmVzc2lvbiAoT1IpJ30gPSAn5Lu75oSP6KGo6YGU5byPKOaIliknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIGV4cHJlc3Npb25zIChBTkQpJ30gPSAn5omA5pyJ6KGo6YGU5byPKOiIhyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwcmVzc2lvbnMnfSA9ICfooajpgZTlvI8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0b3InfSA9ICfpgbjmk4flmagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlcmF0b3InfSA9ICfmk43kvZznrKYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIEV4cHJlc3Npb24nfSA9ICfliKDpmaTooajpgZTlvI8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRXhwcmVzc2lvbnMgZm91bmQuJ30gPSAn5rKS5pyJ5om+5Yiw6KGo6YGU5byPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgZXhwcmVzc2lvbid9ID0gJ+a3u+WKoOaWsOeahOihqOmBlOW8jyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWN0aW9uJ30gPSAn5Yig6Zmk5pON5L2cJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEFjdGlvbnMgZm91bmQuJ30gPSAn5rKS5pyJ5om+5Yiw5pON5L2cJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBuZXcgYWN0aW9uJ30gPSAn5re75Yqg5paw55qE5pON5L2cJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZURlbGV0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNoYW5nZT8nfSA9ICfkvaDnorrlrpropoHliKDpmaTpgJnlgIvorormm7Tll44/JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUVkaXQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgJXMlcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAn5q235Y+y5YaF5a65JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlcid9ID0gJ+W3peS9nOaMh+S7pCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAn5Ym15bu65pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgZGV0YWlscyd9ID0gJ+mhr+ekuuips+aDhSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHdvcmtvcmRlcid9ID0gJ+mhr+ekuuW3peS9nOaMh+S7pCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2RpZmllZCd9ID0gJ+S/ruaUuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbGQgVmFsdWUnfSA9ICfoiIrlgLwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFZhbHVlJ30gPSAn5paw5YC8JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBJbnZvbHZlZCBQZXJzb25zIG9mICVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52b2x2ZWQgUGVyc29ucyd9ID0gJ+ebuOmXnOS6uuWToSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VyJ30gPSAn6K6K5pu057aT55CGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaW52YWxpZC4nfSA9ICfnlKjmiLfnhKHmlYjjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcid9ID0gJ+iuiuabtOWJteW7uuS6uic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQWR2aXNvcnkgQm9hcmQnfSA9ICforormm7Tlr6nmibnlp5Tlk6HmnIMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIFRlbXBsYXRlJ30gPSAnQ0FC5qih5p2/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcGx5IFRlbXBsYXRlJ30gPSAn5oeJ55So5qih5p2/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ld1RlbXBsYXRlJ30gPSAn5paw5qih5p2/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgdGhpcyBDQUIgYXMgdGVtcGxhdGUnfSA9ICfkv53lrZjpgJnlgItDQULoh7PmqKHmnb8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRvIENBQid9ID0gJ+a3u+WKoOiHs0NBQic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIFVzZXInfSA9ICfnhKHmlYjnmoTnlKjmiLcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudCBDQUInfSA9ICfnlbbliY1DQUInOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdOYXZCYXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICfkuIrkuIvmlofoqK3nva4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlcyBwZXIgcGFnZSd9ID0gJ+avj+mggemhr+ekuueahOiuiuabtOWAi+aVuCc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgQnVpbGRlcid9ID0gJ+iuiuabtOWJteW7uuS6uic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTWFuYWdlcid9ID0gJ+iuiuabtOe2k+eQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXJzJ30gPSAn5bel5L2c5oyH5LukJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTdGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgU3RhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdGVkIFRpbWUnfSA9ICfoq4vmsYLmmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBTdGFydCBUaW1lJ30gPSAn6KiI5YqD6ZaL5aeL5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgRW5kIFRpbWUnfSA9ICfoqIjlioPntZDmnZ/mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIFN0YXJ0IFRpbWUnfSA9ICfnorrlr6bplovlp4vmmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIEVuZCBUaW1lJ30gPSAn56K65a+m57WQ5p2f5pmC6ZaTJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVJlc2V0LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcmVzZXQgdGhpcyBjaGFuZ2U/J30gPSAn5L2g56K65a6a6KaB5Yig6Zmk6YCZ5YCL6K6K5pu05ZeO77yfJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVNlYXJjaC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKGUuZy4gMTAqNTE1NSBvciAxMDU2NTgqKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQWdlbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS5nLid9ID0gJ+S+iyAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEN1c3RvbWVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIEluc3RydWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIFJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBJbXBhY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENhdGVnb3J5J30gPSAn6K6K5pu06aGe5YirJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhiZXR3ZWVuKSd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2F2ZSBDaGFuZ2UgYXMgVGVtcGxhdGUnfSA9ICfkv53lrZjorormm7Toh7PmqKHmnb8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wbGF0ZSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAn5qih5p2/5oeJ5pyJ5ZCN56ixISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZC4nfSA9ICfmqKHmnb/lkI3nqLHmmK/lv4XpnIDnmoTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgU3RhdGVzJ30gPSAn6YeN572u54uA5oWLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgb3JpZ2luYWwgY2hhbmdlJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTUNoYW5nZVRpbWVTbG90LnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIFRpbWUgU2xvdCd9ID0gJ+S/ruaUueaZgumWk+ioiOWKgyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01DaGFuZ2Vab29tLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW5mb3JtYXRpb24nfSA9ICforormm7Tkv6Hmga8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZCBFZmZvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudGVkIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEluaXRpYXRvcihzKSd9ID0gJ+iuiuabtOeZvOi1t+S6uic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUInfSA9ICdDQUInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkJ30gPSAn5LiK5qyh5L+u5pS5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ+S4iuasoeS/ruaUueS6uic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAn5LiL6LyJ6ZmE5Lu2JzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDQUIgVGVtcGxhdGUnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFuZ2UgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5ldyBjaGFuZ2Ugd2lsbCBiZSBkZWxldGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgaXQgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyB3b3Jrb3JkZXIgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB0ZW1wb3JhcnkgY2hhbmdlIHdpbGwgYmUgY3JlYXRlZCB3aGljaCBjb250YWlucyB0aGUgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZSBJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENvbnRlbnQnfSA9ICfnt6jovK/lhaflrrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgVGltZSd9ID0gJ+iuiuabtOaZgumWkyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBXb3Jrb3JkZXIgdG8gJXMlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnN0cnVjdGlvbid9ID0gJ+aMh+ekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHdvcmtvcmRlciB0eXBlLid9ID0gJ+eEoeaViOeahOW3peS9nOaMh+S7pOmhnuWeiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgcGxhbm5lZCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBwbGFubmVkIGVuZCB0aW1lISd9ID0gJ+ioiOWKg+mWi+Wni+aZgumWk+W/hemgiOWcqOioiOWKg+e1kOadn+aZgumWk+S5i+WJjSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQuJ30gPSAn54Sh5pWI55qE5qC85byPLic7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJBZGRGcm9tVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUnfSA9ICfpgbjmk4flt6XkvZzmjIfku6TmqKHmnb8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyQWdlbnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgV29ya29yZGVyIEFnZW50IG9mICVzJXMnfSA9ICcnOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyd9ID0gJ+S9oOeiuuWumuimgeWIqumZpOmAmeWAi+W3peS9nOaMh+S7pOWXjj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgV29ya29yZGVyLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBDb25kaXRpb24hJ30gPQogICAgICAgICfkvaDnhKHms5XliKrpmaTpgJnlgIvlt6XkvZzllq7jgILoh7PlsJHmnInkuIDlgIvmop3ku7bnlKjliLDkuoblroMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgV29ya29yZGVyIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBDb25kaXRpb24ocyknfSA9ICfmraTlt6XkvZzmjIfku6Tlh7rnj77lnKjkuIvliJfmop3ku7bkuK0nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyRWRpdC50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCAlcyVzLSVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHknfSA9ICfnm7jmh4nnmoTnp7vli5Xlt6XkvZzmjIfku6QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSd9ID0KICAgICAgICAn5aaC5p6c6Kmy5bel5L2c5oyH5Luk55qE6KiI5YqD57WQ5p2f5pmC6ZaT5pS56K6K5LqG77yM5omA5pyJ5b6M57qM5bel5L2c5oyH5Luk55qE6KiI5YqD6ZaL5aeL5pmC6ZaT5bCH55u45oeJ55qE5pS56K6KJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgJXMlcy0lcyd9ID0gJyc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUmVwb3J0IG9mICVzJXMtJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0J30gPSAn5aCx5ZGKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBhY3R1YWwgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgYWN0dWFsIGVuZCB0aW1lISd9ID0gJ+Wvpumam+mWi+Wni+aZgumWk+W/hemgiOWcqOWvpumam+e1kOadn+aZgumWk+S5i+WJjSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISd9ID0KICAgICAgICAn6Kit572u5a+m6Zqb57WQ5p2f5pmC6ZaT5b6M5b+F6aCI6Kit572u5a+m6Zqb6ZaL5aeL5pmC6ZaTISc7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50IEFnZW50J30gPSAn55W25YmN55qE5pyN5YuZ5Lq65ZOhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byB0YWtlIHRoaXMgd29ya29yZGVyPyd9ID0gJ+S9oOeiuuWumuimgeWIqumZpOmAmeWAi+W3peS9nOaMh+S7pOWXjj8nOwoKICAgICMgVFQgVGVtcGxhdGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlJ30gPSAn5L+d5a2Y5bel5L2c5oyH5Luk6Iez5qih5p2/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBvcmlnaW5hbCB3b3Jrb3JkZXIgKGFuZCBzdXJyb3VuZGluZyBjaGFuZ2UpJ30gPSAnJzsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50SVRTTVdvcmtPcmRlclpvb20udHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBJbmZvcm1hdGlvbid9ID0gJ+W3peS9nOaMh+S7pOS/oeaBryc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWRtaW5JVFNNQ2hhbmdlTm90aWZpY2F0aW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gbm90aWZpY2F0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FkbWluSVRTTVN0YXRlTWFjaGluZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgVHJhbnNpdGlvbiBVcGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0ZSBUcmFuc2l0aW9uIEFkZGVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogSVRTTSBDaGFuZ2VzJ30gPSAn5qaC5rOB77yaSVRTTSDorormm7QnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHdpdGggVGlja2V0SUQgJXMgZG9lcyBub3QgZXhpc3QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENBQiBvZiBjaGFuZ2UgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJ30gPSAn54Sh5rOV5re75Yqg5qih5p2/JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VDb25kaXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGRlbGV0ZSBDb25kaXRpb25JRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgY3JlYXRlIG5ldyBjb25kaXRpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgQ29uZGl0aW9uSUQgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgdXBkYXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgYWRkIG5ldyBBY3Rpb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgRXhwcmVzc2lvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb3VsZCBub3QgZGVsZXRlIEFjdGlvbklEICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogVW5rbm93biBmaWVsZCB0eXBlICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBjaGFuZ2Ugc3RhdGUgdG8gYmUgZGVsZXRlZCEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUVkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vua25vd24gdHlwZSAiJXMiIGVuY291bnRlcmVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3Rvcnkgem9vbSwgbm8gSGlzdG9yeUVudHJ5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnlFbnRyeSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byB1cGRhdGUgQ2hhbmdlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlTWFuYWdlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IENoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZU15Q0FCLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogTXkgQ0FCJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeUNoYW5nZXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBDaGFuZ2VzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VQSVIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3OiBQSVInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVBTQS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXc6IFBTQSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNQ2hhbmdlUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndW5rbm93biBjaGFuZ2UgdGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBXb3Jrb3JkZXInfSA9ICflt6XkvZzmjIfku6QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyTnVtYmVyJ30gPSAn5bel5L2c5oyH5LukJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclRpdGxlJ30gPSAn5bel5L2c5oyH5Luk5qiZ6aKYJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Vua25vd24gd29ya29yZGVyIHRpdGxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZVN0YXRlJ30gPSAn6K6K5pu054uA5oWLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWRFZmZvcnQnfSA9ICfoqIjlioPlt6XkvZzph48nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ0FCIEFnZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgQ3VzdG9tZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RlZFRpbWUnfSA9ICfoq4vmsYLmmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxhbm5lZFN0YXJ0VGltZSd9ID0gJ+ioiOWKg+mWi+Wni+aZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkRW5kVGltZSd9ID0gJ+ioiOWKg+e1kOadn+aZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWxTdGFydFRpbWUnfSA9ICflr6bpmpvplovlp4vmmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsRW5kVGltZSd9ID0gJ+Wvpumam+e1kOadn+aZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VUaW1lJ30gPSAn5L+u5pS55pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZU51bWJlcid9ID0gJ+iuiuabtOe3qOiZnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJTdGF0ZSd9ID0gJ+W3peS9nOaMh+S7pOeLgOaFiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXJUeXBlJ30gPSAn5bel5L2c5oyH5Luk6aGe5Z6LJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50J30gPSAn5bel5L2c5oyH5Luk5pyN5YuZ5Lq65ZOhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gV29ya29yZGVyIE92ZXJ2aWV3ICglcyknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVJlc2V0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHJlc2V0IENoYW5nZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVNjaGVkdWxlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlVGl0bGUnfSA9ICforormm7TmqJnpopgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVycyd9ID0gJ+W3peS9nOaMh+S7pCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU2VhcmNoIFJlc3VsdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmsgT3JkZXIgVGl0bGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBKdXN0aWZpY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBJbnN0cnVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgUmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgSW1wYWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyIFN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBUeXBlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlciBBZ2VudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiZWZvcmUnfSA9ICfkuYvliY0nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01DaGFuZ2VUaW1lU2xvdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGNoYW5nZSBjYW5cJ3QgYmUgbW92ZWQsIGFzIGl0IGhhcyBubyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgZmlyc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBtb3ZlIGEgY2hhbmdlIHdoaWNoIGFscmVhZHkgaGFzIHN0YXJ0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGN1cnJlbnQgJXMgY291bGQgbm90IGJlIGRldGVybWluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSAlcyBvZiBhbGwgd29ya29yZGVycyBoYXMgdG8gYmUgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJ30gPSAn5rKS5pyJ5o+Q5L6b5qih5p2/SUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlISd9ID0gJ+WcqOaVuOaTmuW6q+S4reaykuacieaJvuWIsOaooeadvyAiJXMiISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB0ZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBjaGFuZ2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldzogVGVtcGxhdGUnfSA9ICfmpoLms4HvvJrmqKHmnb8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGFkZCB3b3Jrb3JkZXIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJBZ2VudC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBzZXQgdGhlIHdvcmtvcmRlciBhZ2VudCBvZiB0aGUgd29ya29yZGVyICIlcyIgdG8gZW1wdHkhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSB0aGUgd29ya29yZGVyICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvdWxkIG5vdCBmaW5kIENoYW5nZSBmb3IgV29ya09yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdXBkYXRlIFdvcmtPcmRlciAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgZW50cnkgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JrT3JkZXIgSGlzdG9yeSBab29tJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudElUU01Xb3JrT3JkZXJUYWtlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvSVRTTUNoYW5nZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uICVzIG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpdGxlOiAlcyB8IFR5cGU6ICVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeUNBQi5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgQ0FCcyd9ID0gJ+aIkeeahENBQic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvTXlDaGFuZ2VzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNeSBDaGFuZ2VzJ30gPSAn5oiR55qE6K6K5pu0JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9NeVdvcmtPcmRlcnMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J015IFdvcmsgT3JkZXJzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0lUU01DaGFuZ2UvSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXM6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBY3Rpb24gKElEPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3Rpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgQ2hhbmdlIChJRD0lcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEF0dGFjaG1lbnQ6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgQXR0YWNobWVudCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgRGVsZXRlZCAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IENvbmRpdGlvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIENvbmRpdGlvbnMgb2YgQ2hhbmdlIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoQ29uZGl0aW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRXhwcmVzc2lvbiAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cHJlc3Npb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBFeHByZXNzaW9ucyBvZiBDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChFeHByZXNzaW9uIElEPSVzKTogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBhY3R1YWwgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIERlbGV0ZWQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyhJRD0lcykgTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnKElEPSVzKSAlczogKG5ldz0lcywgb2xkPSVzKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9JVFNNQ2hhbmdlL0lUU01Db25kaXRpb24vT2JqZWN0L0lUU01Xb3JrT3JkZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FsbCd9ID0gJ+WFqOmDqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnknfSA9ICfku7vkvZUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vSVRTTUNoYW5nZS9Ob3RpZmljYXRpb24ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBCdWlsZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZ2VudHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgV29ya29yZGVyIEFnZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbml0aWF0b3JzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIElUU01DaGFuZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZUJ1aWxkZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgSVRTTUNoYW5nZU1hbmFnZXInfSA9ICcnOwoKICAgICMgWE1MIERlZmluaXRpb246IElUU01DaGFuZ2VNYW5hZ2VtZW50LnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlcXVlc3RlZCd9ID0gJ+iri+axgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwZW5kaW5nIGFwcHJvdmFsJ30gPSAn5b6F5a+p5om5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlamVjdGVkJ30gPSAn6KKr5ouS57WVJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmVkJ30gPSAn6YCa6YGO5a+p5om5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2luIHByb2dyZXNzJ30gPSAn6JmV55CG5LitJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3BlbmRpbmcgcGlyJ30gPSAn562J5b6F5a+m5pa95b6M5a+p5p+lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3N1Y2Nlc3NmdWwnfSA9ICfmiJDlip8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZmFpbGVkJ30gPSAn5aSx5pWXJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2NhbmNlbGVkJ30gPSAn5Y+W5raIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JldHJhY3RlZCd9ID0gJ+aSpOWbnic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjcmVhdGVkJ30gPSAn5Ym15bu65pa8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FjY2VwdGVkJ30gPSAn5o6l5Y+XJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3JlYWR5J30gPSAn5rqW5YKZ6ZaL5aeLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2FwcHJvdmFsJ30gPSAn5a+p5om5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3dvcmtvcmRlcid9ID0gJ+W3peS9nOaMh+S7pCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydiYWNrb3V0J30gPSAn6YCA5ZueJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2RlY2lzaW9uJ30gPSAn5rG65a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3Bpcid9ID0gJ1BJUiAo5a+m5pa95b6M5a+p5p+lKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VTdGF0ZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW1wYWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpb3JpdHlJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VNYW5hZ2VySUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlQnVpbGRlcklEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlclN0YXRlSUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya09yZGVyVHlwZUlEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtPcmRlckFnZW50SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMnfSA9ICfmmK8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbm90J30gPSAn5LiN5pivJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGVtcHR5J30gPSAn56m655m9JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIG5vdCBlbXB0eSd9ID0gJ+mdnuepuueZvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBncmVhdGVyIHRoYW4nfSA9ICflpKfmlrwuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaXMgbGVzcyB0aGFuJ30gPSAn5bCP5pa8Li4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2lzIGJlZm9yZSd9ID0gJy4uLuS5i+WJjSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpcyBhZnRlcid9ID0gJy4uLuS5i+W+jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydjb250YWlucyd9ID0gJ+WQq+aciSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgY29udGFpbnMnfSA9ICdkb2VzIG5vdCBjb250YWluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2JlZ2lucyB3aXRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2VuZHMgd2l0aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydzZXQnfSA9ICfoqK3nva4nOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uLmpzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZXhwcmVzc2lvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbmRpdGlvbj8nfSA9ICcnOwoKICAgICMgSlMgRmlsZTogdmFyL2h0dHBkL2h0ZG9jcy9qcy9JVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZy5qcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT2snfSA9ICdPayc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbGlzdCBvZiB0aGUgYWdlbnRzIHdobyBoYXZlIHBlcm1pc3Npb24gdG8gdGFrZSB3b3Jrb3JkZXJzLiBLZXkgaXMgYSBsb2dpbiBuYW1lLiBDb250ZW50IGlzIDAgb3IgMS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGxpc3Qgb2Ygd29ya29yZGVyIHN0YXRlcywgYXQgd2hpY2ggdGhlIEFjdHVhbFN0YXJ0VGltZSBvZiBhIHdvcmtvcmRlciB3aWxsIGJlIHNldCBpZiBpdCB3YXMgZW1wdHkgYXQgdGhpcyBwb2ludC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY3R1YWwgZW5kIHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWN0dWFsIHN0YXJ0IHRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFdvcmtvcmRlcid9ID0gJ+a3u+WKoOW3peS9nOaMh+S7pCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgV29ya29yZGVyIChmcm9tIFRlbXBsYXRlKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSBjaGFuZ2UgZnJvbSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB3b3Jrb3JkZXIgKGZyb20gdGVtcGxhdGUpIHRvIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHdvcmtvcmRlciB0byB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgZnJvbSB0ZW1wbGF0ZSd9ID0gJ1ZvbiBUZW1wbGF0ZSBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZG1pbiBvZiB0aGUgQ0lQIG1hdHJpeC4nfSA9ICfnrqHnkIZDSVDnn6npmaMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRtaW4gb2YgdGhlIHN0YXRlIG1hY2hpbmUuJ30gPSAn566h55CG54uA5oWL5qmfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZSBhZHZpc29yeSBib2FyZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBtYW5hZ2VkIGJ5IHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGNoYW5nZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDQUIgTWVtYmVyIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBjaGFuZ2UgbWFuYWdlbWVudCB0b29sYmFycy4gRGVmYXVsdDogMyBob3VycyAoMTgwIG1pbnV0ZXMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50LiBEZWZhdWx0OiA1IGRheXMgKDcyMDAgbWludXRlcykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIENBQiBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBJbnZvbHZlZCBQZXJzb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNjaGVkdWxlJ30gPSAn6K6K5pu06KiI5YqDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBTY2hlZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgYW5kIFdvcmtvcmRlciBUZW1wbGF0ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIGFuZCB3b3Jrb3JkZXIgdGVtcGxhdGVzIGVkaXRlZCBieSB0aGlzIHVzZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBhcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgaW52b2x2ZWQgcGVyc29ucyBvZiB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbGltaXQgcGVyIHBhZ2UgZm9yIENoYW5nZSBPdmVydmlldyAiU21hbGwiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgbnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHN0YXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aXRsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gRWRpdCd9ID0gJ+WIoOmZpCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25kaXRpb24gT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlIHdoaWNoIHNjcmVlbiBzaG91bGQgYmUgc2hvd24gYWZ0ZXIgYSBuZXcgd29ya29yZGVyIGhhcyBiZWVuIGNyZWF0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlndXJlcyBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgd2hlbiBwbGFubmVkIHRoZSBzdGFydCB0aW1lIG9yIG90aGVyIHRpbWUgdmFsdWVzIGhhdmUgYmVlbiByZWFjaGVkL3Bhc3NlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgQ2hhbmdlJ30gPSAn5Ym15bu66K6K5pu0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBDaGFuZ2UgKGZyb20gVGVtcGxhdGUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhIGNoYW5nZSAoZnJvbSB0ZW1wbGF0ZSkgZnJvbSB0aGlzIHRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBhbmQgbWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgbm90aWZpY2F0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIGFuZCBtYW5hZ2UgY2hhbmdlIG5vdGlmaWNhdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBmb3IgYSB3b3Jrb3JkZXIuIFRoaXMgZW50cnkgbXVzdCBleGlzdCBpbiBnZW5lcmFsIGNhdGFsb2cgY2xhc3MgXCdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGVcJy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB0aGUgc2lnbmFscyBmb3IgZWFjaCB3b3Jrb3JkZXIgc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIENoYW5nZXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgQ2hhbmdlIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gQXZhaWxhYmxlLCAyID0gRW5hYmxlZCBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIFdvcmtvcmRlciB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBXb3Jrb3JkZXIgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBBdmFpbGFibGUsIDIgPSBFbmFibGVkIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIGNoYW5nZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSB0ZW1wbGF0ZSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgYWNjb3VudGVkIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBwcmludCB0aGUgcGxhbm5lZCBlZmZvcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgcmVhY2hhYmxlIChhcyBkZWZpbmVkIGJ5IHRoZSBzdGF0ZSBtYWNoaW5lKSBjaGFuZ2UgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBpZiBhIGNoYW5nZSBpcyBpbiBhIGxvY2tlZCBzdGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHJlYWNoYWJsZSAoYXMgZGVmaW5lZCBieSB0aGUgc3RhdGUgbWFjaGluZSkgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgaWYgYSB3b3Jrb3JkZXIgaXMgaW4gYSBsb2NrZWQgc3RhdGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgYWNjb3VudGVkIHRpbWUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBzaG91bGQgYmUgc2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBjaGFuZ2Ugc2VhcmNoIGFuZCB0aGUgd29ya29yZGVyIHNlYXJjaCBmdW5jdGlvbnMgY291bGQgdXNlIHRoZSBtaXJyb3IgREIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgY2hhbmdlIHN0YXRlIGNhbiBiZSBzZXQgaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIHBsYW5uZWQgZWZmb3J0IHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHByaW50IGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSByZXF1ZXN0ZWQgZGF0ZSBzaG91bGQgYmUgc2VhcmNoZWQgYnkgY3VzdG9tZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNldCBieSBjdXN0b21lci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgcmVxdWVzdGVkIGRhdGUgc2hvdWxkIGJlIHNob3duIGJ5IGN1c3RvbWVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgc3RhdGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSB3b3Jrb3JkZXIgdGl0bGUgc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHNob3duIGdyYXBoIGF0dHJpYnV0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhhdCBvbmx5IGNoYW5nZXMgY29udGFpbmluZyBXb3Jrb3JkZXJzIGxpbmtlZCB3aXRoIHNlcnZpY2VzLCB3aGljaCB0aGUgY3VzdG9tZXIgdXNlciBoYXMgcGVybWlzc2lvbiB0byB1c2Ugd2lsbCBiZSBzaG93bi4gQW55IG90aGVyIGNoYW5nZXMgd2lsbCBub3QgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIGFsbG93ZWQgdG8gZGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIENoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgY2hhbmdlIHN0YXRlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBmaWx0ZXJzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBjaGFuZ2Ugc3RhdGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGNoYW5nZSBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgY2hhbmdlIHRpdGxlIGZvciBhIGR1bW15IGNoYW5nZSB3aGljaCBpcyBuZWVkZWQgdG8gZWRpdCBhIHdvcmtvcmRlciB0ZW1wbGF0ZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBQU0Egb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2UgbWFuYWdlciBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgaW4gdGhlIGNoYW5nZSBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIGluIHRoZSBjaGFuZ2Ugc2NoZWR1bGUgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IGNyaXRlcmlhIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBNeUNBQiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15Q2hhbmdlcyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgY3JpdGVyaWEgb2YgdGhlIGNoYW5nZXMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIFBJUiBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzb3J0IG9yZGVyIGluIHRoZSBjaGFuZ2UgUFNBIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBtYW5hZ2VyIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc29ydCBvcmRlciBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIGN1c3RvbWVyIGNoYW5nZSBzY2hlZHVsZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgY2F0ZWdvcnkgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBhY3Qgb2YgYSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGZpZWxkIHR5cGUgb2YgQ29tcGFyZVZhbHVlIGZpZWxkcyBmb3IgY2hhbmdlIGF0dHJpYnV0ZXMgdXNlZCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBWYWxpZCB2YWx1ZXMgYXJlIFNlbGVjdGlvbiwgVGV4dCBhbmQgRGF0ZS4gSWYgYSB0eXBlIGlzIG5vdCBkZWZpbmVkLCB0aGUgZmllbGQgd2lsbCBub3QgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZmllbGQgdHlwZSBvZiBDb21wYXJlVmFsdWUgZmllbGRzIGZvciB3b3Jrb3JkZXIgYXR0cmlidXRlcyB1c2VkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFZhbGlkIHZhbHVlcyBhcmUgU2VsZWN0aW9uLCBUZXh0IGFuZCBEYXRlLiBJZiBhIHR5cGUgaXMgbm90IGRlZmluZWQsIHRoZSBmaWVsZCB3aWxsIG5vdCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvYmplY3QgYXR0cmlidXRlcyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciBjaGFuZ2Ugb2JqZWN0cyBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9iamVjdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHdvcmtvcmRlciBvYmplY3RzIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQWNjb3VudGVkVGltZSBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIEFjdHVhbEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBBY3R1YWxTdGFydFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBDYXRlZ29yeUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlQnVpbGRlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlTWFuYWdlcklEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgQ2hhbmdlU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIENoYW5nZVRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgRHluYW1pY0ZpZWxkIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgSW1wYWN0SUQgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkRWZmb3J0IGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUGxhbm5lZEVuZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBQbGFubmVkU3RhcnRUaW1lIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgUHJpb3JpdHlJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFJlcXVlc3RlZFRpbWUgaW4gdGhlIGNoYW5nZSBjb25kaXRpb24gZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBvcGVyYXRvcnMgdGhhdCBhcmUgc2VsZWN0YWJsZSBmb3IgdGhlIGF0dHJpYnV0ZSBXb3JrT3JkZXJBZ2VudElEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyTnVtYmVyIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyU3RhdGVJRCBpbiB0aGUgY2hhbmdlIGNvbmRpdGlvbiBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG9wZXJhdG9ycyB0aGF0IGFyZSBzZWxlY3RhYmxlIGZvciB0aGUgYXR0cmlidXRlIFdvcmtPcmRlclRpdGxlIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgb3BlcmF0b3JzIHRoYXQgYXJlIHNlbGVjdGFibGUgZm9yIHRoZSBhdHRyaWJ1dGUgV29ya09yZGVyVHlwZUlEIGluIHRoZSBjaGFuZ2UgY29uZGl0aW9uIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGVyaW9kIChpbiB5ZWFycyksIGluIHdoaWNoIHN0YXJ0IGFuZCBlbmQgdGltZXMgY2FuIGJlIHNlbGVjdGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGF0dHJpYnV0ZXMgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIHRvb2x0aXAgb2YgdGhlIHdvcmtvcmRlciBncmFwaCBpbiB0aGUgY2hhbmdlIHpvb20uIFRvIHNob3cgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGluIHRoZSB0b29sdGlwLCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGxpa2UgRHluYW1pY0ZpZWxkX1dvcmtPcmRlckZpZWxkTmFtZTEsIER5bmFtaWNGaWVsZF9Xb3JrT3JkZXJGaWVsZE5hbWUyLCBldGMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgQ2hhbmdlIFBTQSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBDaGFuZ2UgU2NoZWR1bGUgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDQUIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgTXlDaGFuZ2VzIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIE15V29ya29yZGVycyBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBQSVIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG1hbmFnZXIgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY2hhbmdlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIGNoYW5nZSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgY3VzdG9tZXIgY2hhbmdlIHNjaGVkdWxlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNpZ25hbHMgZm9yIGVhY2ggSVRTTSBjaGFuZ2Ugc3RhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHRlbXBsYXRlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGZpbHRlcnMgaW4gdGhlIHRlbXBsYXRlIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgTXlXb3Jrb3JkZXJzIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCB3aWxsIGJlIHVzZWQgYXMgZmlsdGVycyBpbiB0aGUgUElSIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHdvcmtvcmRlciB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaG93IHRoZSBQSVIgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGV0aGVyIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxzIG9mIGEgY2hhbmdlIGhpc3RvcnkgZW50cnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgYW4gYWdlbnQgY2FuIGV4Y2hhbmdlIHRoZSBYLWF4aXMgb2YgYSBzdGF0IGlmIGhlIGdlbmVyYXRlcyBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyBkb25lIGZvciBjb25maWcgaXRlbSBjbGFzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IGNoYW5nZXMgcmVnYXJkaW5nIGNoYW5nZSBzdGF0ZSB1cGRhdGVzIHdpdGhpbiBhIHRpbWVwZXJpb2QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgY29tbW9uIHN0YXRzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgc3RhdHMgYWJvdXQgY2hhbmdlcyByZWdhcmRpbmcgdGhlIHJlbGF0aW9uIGJldHdlZW4gY2hhbmdlcyBhbmQgaW5jaWRlbnQgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBjb21tb24gc3RhdHMgbW9kdWxlIG1heSBnZW5lcmF0ZSBzdGF0cyBhYm91dCBjaGFuZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIGNvbW1vbiBzdGF0cyBtb2R1bGUgbWF5IGdlbmVyYXRlIHN0YXRzIGFib3V0IHRoZSBudW1iZXIgb2YgUmZjIHRpY2tldHMgYSByZXF1ZXN0ZXIgY3JlYXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyAoZm9yIGNoYW5nZXMgYW5kIHdvcmtvcmRlcnMpIHNob3duIGluIHRoZSBjaGFuZ2UgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIGNoYW5nZSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBjaGFuZ2Ugem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgd29ya29yZGVyIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciByZXBvcnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHdvcmtvcmRlciB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWNGaWVsZCBldmVudCBtb2R1bGUgdG8gaGFuZGxlIHRoZSB1cGRhdGUgb2YgY29uZGl0aW9ucyBpZiBkeW5hbWljIGZpZWxkcyBhcmUgYWRkZWQsIHVwZGF0ZWQgb3IgZGVsZXRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoZSBjaGFuZ2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJEYXRlIiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3J3YXJkIHNjaGVkdWxlIG9mIGNoYW5nZXMuIE92ZXJ2aWV3IG92ZXIgYXBwcm92ZWQgY2hhbmdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ0FCIFRlbXBsYXRlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgQ29uZGl0aW9uIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIENvbmRpdGlvbiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTWFuYWdlciBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBDaGFuZ2UgTm90aWZpY2F0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZSBQSVIgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gQ2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIENoYW5nZXMnfSA9ICforormm7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNBQiBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBNeUNoYW5nZXMgT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gTXlXb3Jrb3JkZXJzIE92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIFRlbXBsYXRlIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENBQi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBFZGl0IENvbnRlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gVGVtcGxhdGUgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBUZW1wbGF0ZSBPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBjbGVhbnMgdXAgY29uZGl0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBjYWNoZSBmb3IgYSB0b29sYmFyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBtYXRjaGVzIGNvbmRpdGlvbnMgYW5kIGV4ZWN1dGVzIGFjdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCBzZW5kcyBub3RpZmljYXRpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0aGF0IHVwZGF0ZXMgdGhlIGhpc3Rvcnkgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSVRTTSBldmVudCBtb2R1bGUgdGhhdCB1cGRhdGVzIHRoZSBoaXN0b3J5IG9mIGNvbmRpdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRoYXQgdXBkYXRlcyB0aGUgaGlzdG9yeSBvZiB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNIGV2ZW50IG1vZHVsZSB0byByZWNhbGN1bGF0ZSB0aGUgd29ya29yZGVyIG51bWJlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU00gZXZlbnQgbW9kdWxlIHRvIHNldCB0aGUgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZXMgb2Ygd29ya29yZGVycy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJVFNNQ2hhbmdlJ30gPSAn6K6K5pu0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lUU01Xb3JrT3JkZXInfSA9ICdJVFNN5bel5L2c5oyH5LukJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGZyZXF1ZW5jeSBpcyBcJ3JlZ3VsYXJseVwnLCB5b3UgY2FuIGNvbmZpZ3VyZSBob3cgb2Z0ZW4gdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgKGV2ZXJ5IFggaG91cnMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhlIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCBjaGFuZ2UgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIGFsbCB3b3Jrb3JkZXIgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgR1VJLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgQ0FCIG1lbWJlcnMgZm9yIGF1dG9jb21wbGV0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb29rdXAgb2YgYWdlbnRzLCB1c2VkIGZvciBhdXRvY29tcGxldGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIElUU00gQ2hhbmdlIE1hbmFnZW1lbnQgc3RhdGUgbWFjaGluZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIHRoZSBjYXRlZ29yeSDihpQgaW1wYWN0IOKGlCBwcmlvcml0eSBtYXRyaXguJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayBpZiBXb3JrT3JkZXJBZGQgb3IgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIHNob3VsZCBiZSBwZXJtaXR0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBDQUIgbWVtYmVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBhZ2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgYnVpbGRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGNoZWNrIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIG5vIHdvcmtvcmRlciBhZ2VudCBpcyBzZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBjaGVjayB3aGV0aGVyIHRoZSBhZ2VudCBpcyBjb250YWluZWQgaW4gdGhlIGNvbmZpZ3VyZWQgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gc2hvdyBhIGxpbmsgdG8gY3JlYXRlIGEgY2hhbmdlIGZyb20gdGhpcyB0aWNrZXQuIFRoZSB0aWNrZXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBuZXcgY2hhbmdlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vdmUgVGltZSBTbG90Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb3ZlIGFsbCB3b3Jrb3JkZXJzIGluIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyAoZnJvbSB0ZW1wbGF0ZSknfSA9ICflibXlu7rmlrDorormm7Qo6YCa6YGO5qih5p2/KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IHVzZXJzIG9mIHRoZXNlIGdyb3VwcyBoYXZlIHRoZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdGlja2V0IHR5cGVzIGFzIGRlZmluZWQgaW4gIklUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyIgaWYgdGhlIGZlYXR1cmUgIlRpY2tldDo6QWNsOjpNb2R1bGUjIyMyMDAtVGlja2V0OjpBY2w6Ok1vZHVsZSIgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdGhlciBTZXR0aW5ncyd9ID0gJ+WFtuWug+ioree9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldyBvdmVyIGFsbCBDaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQSVInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUElSIChQb3N0IEltcGxlbWVudGF0aW9uIFJldmlldyknfSA9ICdQSVIgKOWvpuaWveW+jOWvqeafpSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUFNBJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2sgb2JqZWN0IGluIHRoZSBwcmVmZXJlbmNlIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIGNoYW5nZSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJmb3JtcyB0aGUgY29uZmlndXJlZCBhY3Rpb24gZm9yIGVhY2ggZXZlbnQgKGFzIGFuIEludm9rZXIpIGZvciBlYWNoIGNvbmZpZ3VyZWQgV2Vic2VydmljZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGFubmVkIGVuZCB0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsYW5uZWQgc3RhcnQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0ZWQgU2VydmljZSBBdmFpbGFiaWxpdHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdGVkIFNlcnZpY2UgQXZhaWxhYmlsaXR5IChQU0EpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3RlZCBTZXJ2aWNlIEF2YWlsYWJpbGl0eSAoUFNBKSBvZiBjaGFuZ2VzLiBPdmVydmlldyBvZiBhcHByb3ZlZCBjaGFuZ2VzIGFuZCB0aGVpciBzZXJ2aWNlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0ZWQgdGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIGluIG9yZGVyIGZvciBhbiBhZ2VudCB0byB0YWtlIGEgd29ya29yZGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBvdmVydmlldyBvZiBhbGwgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBhZGQgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY2hhbmdlIHRoZSB3b3Jrb3JkZXIgYWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZnJvbSBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmcm9tIGEgY2hhbmdlc1wnIENBQi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZyb20gYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMgZnJvbSB0ZW1wbGF0ZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gY3JlYXRlIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZGVsZXRlIGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGRlbGV0ZSBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgYSB0ZW1wbGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IGEgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBlZGl0IHRoZSBjb25kaXRpb25zIG9mIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gZWRpdCB0aGUgY29udGVudCBvZiBhIHRlbXBsYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIGVkaXQgdGhlIGludm9sdmVkIHBlcnNvbnMgb2YgYSBjaGFuZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBtb3ZlIGNoYW5nZXMgaW4gdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byBwcmludCBhIGNoYW5nZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byByZXNldCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIGEgQ0FCIG1lbWJlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgbGlzdCBvZiBjaGFuZ2VzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBjaGFuZ2UgbWFuYWdlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgb3ZlcnZpZXcgb3ZlciBhbGwgdGVtcGxhdGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGNvbmRpdGlvbnMgb2YgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBoaXN0b3J5IG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgaGlzdG9yeSB6b29tIG9mIGEgY2hhbmdlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGhpc3Rvcnkgem9vbSBvZiBhIHdvcmtvcmRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgQ2hhbmdlIFNjaGVkdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2YgY2hhbmdlIFBTQS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB2aWV3IHRoZSBsaXN0IG9mIGNoYW5nZXMgd2l0aCBhbiB1cGNvbWluZyBQSVIgKFBvc3QgSW1wbGVtZW50YXRpb24gUmV2aWV3KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwcml2aWxlZ2VzIHRvIHZpZXcgdGhlIGxpc3Qgb2Ygb3duIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHByaXZpbGVnZXMgdG8gdmlldyB0aGUgbGlzdCBvZiBvd24gd29ya29yZGVycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcHJpdmlsZWdlcyB0byB3cml0ZSBhIHJlcG9ydCBmb3IgdGhlIHdvcmtvcmRlci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNldCBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSdW4gdGFzayB0byBjaGVjayBpZiBzcGVjaWZpYyB0aW1lcyBoYXZlIGJlZW4gcmVhY2hlZCBpbiBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgY2hhbmdlIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NhdmUgd29ya29yZGVyIGFzIGEgdGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjaGVkdWxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NjcmVlbiBhZnRlciBjcmVhdGluZyBhIHdvcmtvcmRlcid9ID0gJ+WJteW7uuW3peS9nOaMh+S7pOW+jOeahOimluWclic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcyd9ID0gJ+aQnOe0ouiuiuabtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggQ2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0cyB0aGUgY2hhbmdlIG51bWJlciBnZW5lcmF0b3IgbW9kdWxlLiAiQXV0b0luY3JlbWVudCIgaW5jcmVtZW50cyB0aGUgY2hhbmdlIG51bWJlciwgdGhlIFN5c3RlbUlEIGFuZCB0aGUgY291bnRlciBhcmUgdXNlZCB3aXRoIFN5c3RlbUlELmNvdW50ZXIgZm9ybWF0IChlLmcuIDEwMDExOCwgMTAwMTE5KS4gV2l0aCAiRGF0ZSIsIHRoZSBjaGFuZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBieSB0aGUgY3VycmVudCBkYXRlIGFuZCBhIGNvdW50ZXI7IHRoaXMgZm9ybWF0IGxvb2tzIGxpa2UgWWVhci5Nb250aC5EYXkuY291bnRlciwgZS5nLiAyMDEwMDYyNDAwMDAxLCAyMDEwMDYyNDAwMDAyLiBXaXRoICJEYXRlQ2hlY2tzdW0iLCB0aGUgY291bnRlciB3aWxsIGJlIGFwcGVuZGVkIGFzIGNoZWNrc3VtIHRvIHRoZSBzdHJpbmcgb2YgZGF0ZSBwbHVzIHRoZSBTeXN0ZW1JRC4gVGhlIGNoZWNrc3VtIHdpbGwgYmUgcm90YXRlZCBvbiBhIGRhaWx5IGJhc2lzLiBUaGlzIGZvcm1hdCBsb29rcyBsaWtlIFllYXIuTW9udGguRGF5LlN5c3RlbUlELkNvdW50ZXIuQ2hlY2tTdW0sIGUuZy4gMjAxMDA2MjQxMDAwMDAxNywgMjAxMDA2MjQxMDAwMDAyNi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGFnZW50IGZvciB0aGUgd29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiB0aGUgY2hhbmdlIHpvb20gc2NyZWVuIGFuZCB3b3Jrb3JkZXIgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBtaW5pbWFsIGNoYW5nZSBjb3VudGVyIHNpemUgKGlmICJBdXRvSW5jcmVtZW50IiB3YXMgc2VsZWN0ZWQgYXMgSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yKS4gRGVmYXVsdCBpcyA1LCB0aGlzIG1lYW5zIHRoZSBjb3VudGVyIHN0YXJ0cyBmcm9tIDEwMDAwLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdXAgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIHdvcmtvcmRlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgY2hlY2tib3ggaW4gdGhlIHdvcmtvcmRlciBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBpZiB0aGUgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHNob3VsZCBhbHNvIGJlIG1vdmVkIGlmIGEgd29ya29yZGVyIGlzIG1vZGlmaWVkIGFuZCB0aGUgcGxhbm5lZCBlbmQgdGltZSBoYXMgY2hhbmdlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgY2hhbmdpbmcgdGhlIHdvcmtvcmRlciBhZ2VudCwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgd29ya29yZGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGRlZmluaW5nIGEgY2hhbmdlIGFzIGEgdGVtcGxhdGUgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlLCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBkZWZpbmluZyBhIHdvcmtvcmRlciBhcyBhIHRlbXBsYXRlIGluIHRoZSB6b29tIHZpZXcgb2YgdGhlIHdvcmtvcmRlciwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgZWRpdGluZyB0aGUgcmVwb3J0IG9mIGEgd29ya29yZGVyLCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIGNoYW5nZSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSB3b3Jrb3JkZXIgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHRoZSB3b3Jrb3JkZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbW92aW5nIHRoZSB0aW1lIHNsb3Qgb2YgYSBjaGFuZ2UgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0YWtpbmcgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBjb25kaXRpb25zIG9mIGEgY2hhbmdlIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIGNoYW5nZSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWRkIGEgd29ya29yZGVyIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIGNoYW5nZSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGRlbGV0ZSBhIHdvcmtvcmRlciBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIHdvcmtvcmRlciBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBjaGFuZ2Ugem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIHdvcmtvcmRlciB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBjaGFuZ2UgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSB3b3Jrb3JkZXIgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcmVzZXQgYSBjaGFuZ2UgYW5kIGl0cyB3b3Jrb3JkZXJzIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gc2hvdyB0aGUgaW52b2x2ZWQgcGVyc29ucyBpbiBhIGNoYW5nZSwgaW4gdGhlIHpvb20gdmlldyBvZiB0aGUgY2hhbmdlIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIGNoYW5nZSBoaXN0b3J5IChyZXZlcnNlIG9yZGVyZWQpIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdGUgTWFjaGluZSd9ID0gJ+eLgOaFi+apnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdG9yZXMgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgaWRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRlbXBsYXRlIGlkLCB3aGlsZSBhIHVzZXIgaXMgZWRpdGluZyBhIHRlbXBsYXRlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyJ30gPSAn5o6l5omL5bel5L2c5oyH5LukJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgV29ya29yZGVyLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYWtlIHRoZSB3b3Jrb3JkZXIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIE92ZXJ2aWV3J30gPSAn5qih5p2/5qaC5rOBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RlbXBsYXRlIHR5cGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIGNoYW5nZSwgZS5nLiBDaGFuZ2UjLCBNeUNoYW5nZSMuIFRoZSBkZWZhdWx0IGlzIENoYW5nZSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgd29ya29yZGVyLCBlLmcuIFdvcmtvcmRlciMsIE15V29ya29yZGVyIy4gVGhlIGRlZmF1bHQgaXMgV29ya29yZGVyIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIEFDTCBtb2R1bGUgcmVzdHJpY3RzIHRoZSB1c3VhZ2Ugb2YgdGhlIHRpY2tldCB0eXBlcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzeXNjb25maWcgb3B0aW9uIFwnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzXCcsIHRvIHVzZXJzIG9mIHRoZSBncm91cHMgYXMgZGVmaW5lZCBpbiAiSVRTTUNoYW5nZTo6UmVzdHJpY3RUaWNrZXRUeXBlczo6R3JvdXBzIi4gQXMgdGhpcyBBQ0wgY291bGQgY29sbGlkZSB3aXRoIG90aGVyIEFDTHMgd2hpY2ggYXJlIGFsc28gcmVsYXRlZCB0byB0aGUgdGlja2V0IHR5cGUsIHRoaXMgc3lzY29uZmlnIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgaWYgbmVlZGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU2xvdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBvZiB0aWNrZXRzLCB3aGVyZSBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBhIGxpbmsgdG8gYWRkIGEgY2hhbmdlIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBBZGQgKGZyb20gdGVtcGxhdGUpLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWRkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgQWdlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtvcmRlciBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3Jrb3JkZXIgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFJlcG9ydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya29yZGVyIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J29uY2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncmVndWxhcmx5J30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBhY3Rpb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV4cHJlc3Npb24/JywKICAgICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycsCiAgICAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nLAogICAgJ05vJywKICAgICdPaycsCiAgICAnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AdminITSMChangeCIPAllocate.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJEdlbmVyYWxDYXRhbG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyk7CiAgICBteSAkQ0lQQWxsb2NhdGVPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNoYW5nZUNJUEFsbG9jYXRlJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBjYXRlZ29yeSwgaW1wYWN0IGFuZCBwcmlvcml0eSBhbGxvY2F0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ0lQQWxsb2NhdGUnICkgewoKICAgICAgICAjIGdldCBvcHRpb24gbGlzdHMKICAgICAgICBteSAlT2JqZWN0T3B0aW9uOwogICAgICAgICRPYmplY3RPcHRpb257Q2F0ZWdvcnlMaXN0fSA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUxpc3QoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDYXRlZ29yeScsCiAgICAgICAgKTsKICAgICAgICAkT2JqZWN0T3B0aW9ue0ltcGFjdExpc3R9ID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtTGlzdCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkltcGFjdCcsCiAgICAgICAgKTsKICAgICAgICAkT2JqZWN0T3B0aW9ue1ByaW9yaXR5TGlzdH0gPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1MaXN0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6UHJpb3JpdHknLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IGFsbCBQcmlvcml0eUlEcyBvZiB0aGUgbWF0cml4CiAgICAgICAgbXkgJEFsbG9jYXRlRGF0YTsKICAgICAgICBmb3IgbXkgJEltcGFjdElEICggc29ydCBrZXlzICV7ICRPYmplY3RPcHRpb257SW1wYWN0TGlzdH0gfSApIHsKCiAgICAgICAgICAgIENBVEVHT1JZSUQ6CiAgICAgICAgICAgIGZvciBteSAkQ2F0ZWdvcnlJRCAoIHNvcnQga2V5cyAleyAkT2JqZWN0T3B0aW9ue0NhdGVnb3J5TGlzdH0gfSApIHsKCiAgICAgICAgICAgICAgICAjIGdldCBmb3JtIHBhcmFtCiAgICAgICAgICAgICAgICBteSAkUHJpb3JpdHlJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oCiAgICAgICAgICAgICAgICAgICAgUGFyYW0gPT4gIlByaW9yaXR5SUQiIC4gJEltcGFjdElEIC4gJy0nIC4gJENhdGVnb3J5SUQKICAgICAgICAgICAgICAgICkgfHwgJyc7CgogICAgICAgICAgICAgICAgbmV4dCBDQVRFR09SWUlEIGlmICEkUHJpb3JpdHlJRDsKCiAgICAgICAgICAgICAgICAkQWxsb2NhdGVEYXRhLT57JEltcGFjdElEfS0+eyRDYXRlZ29yeUlEfSA9ICRQcmlvcml0eUlEOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHVwZGF0ZSBhbGxvY2F0aW9ucwogICAgICAgICRDSVBBbGxvY2F0ZU9iamVjdC0+QWxsb2NhdGVVcGRhdGUoCiAgICAgICAgICAgIEFsbG9jYXRlRGF0YSA9PiAkQWxsb2NhdGVEYXRhLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgb3ZlcnZpZXcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2UgewoKICAgICAgICAjIGdldCBvcHRpb24gbGlzdHMKICAgICAgICBteSAlT2JqZWN0T3B0aW9uOwogICAgICAgICRPYmplY3RPcHRpb257Q2F0ZWdvcnlMaXN0fSA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUxpc3QoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDYXRlZ29yeScsCiAgICAgICAgKTsKICAgICAgICAkT2JqZWN0T3B0aW9ue0ltcGFjdExpc3R9ID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtTGlzdCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkltcGFjdCcsCiAgICAgICAgKTsKICAgICAgICAkT2JqZWN0T3B0aW9ue1ByaW9yaXR5TGlzdH0gPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1MaXN0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6UHJpb3JpdHknLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IGFsbG9jYXRpb24gZGF0YQogICAgICAgIG15ICRBbGxvY2F0ZURhdGEgPSAkQ0lQQWxsb2NhdGVPYmplY3QtPkFsbG9jYXRlTGlzdCgKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJEFsbG9jYXRlTWF0cml4OwoKICAgICAgICAkQWxsb2NhdGVNYXRyaXgtPlswXS0+WzBdLT57T2JqZWN0VHlwZX0gPQogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0ltcGFjdCcpIC4gJyAvICcKICAgICAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0NhdGVnb3J5Jyk7CiAgICAgICAgJEFsbG9jYXRlTWF0cml4LT5bMF0tPlswXS0+e0NsYXNzfSA9ICdIZWFkZXJDb2x1bW5EZXNjcmlwdGlvbic7CgogICAgICAgICMgZ2VuZXJhdGUgdGFibGUgZGVzY3JpcHRpb24gKEltcGFjdCkKICAgICAgICBteSAkQ291bnRlckltcGFjdCA9IDE7CiAgICAgICAgZm9yIG15ICRJbXBhY3QgKAogICAgICAgICAgICBzb3J0IHsgJE9iamVjdE9wdGlvbntJbXBhY3RMaXN0fS0+eyRhfSBjbXAgJE9iamVjdE9wdGlvbntJbXBhY3RMaXN0fS0+eyRifSB9CiAgICAgICAgICAgIGtleXMgJXsgJE9iamVjdE9wdGlvbntJbXBhY3RMaXN0fSB9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRBbGxvY2F0ZU1hdHJpeC0+WyRDb3VudGVySW1wYWN0XS0+WzBdLT57T2JqZWN0VHlwZX0gICA9ICdJbXBhY3QnOwogICAgICAgICAgICAkQWxsb2NhdGVNYXRyaXgtPlskQ291bnRlckltcGFjdF0tPlswXS0+e0ltcGFjdEtleX0gICAgPSAkSW1wYWN0OwogICAgICAgICAgICAkQWxsb2NhdGVNYXRyaXgtPlskQ291bnRlckltcGFjdF0tPlswXS0+e09iamVjdE9wdGlvbn0gPSAkT2JqZWN0T3B0aW9ue0ltcGFjdExpc3R9eyRJbXBhY3R9OwogICAgICAgICAgICAkQ291bnRlckltcGFjdCsrOwogICAgICAgIH0KCiAgICAgICAgIyBnZW5lcmF0ZSB0YWJsZSBkZXNjcmlwdGlvbiAoQ2F0ZWdvcnkpCiAgICAgICAgbXkgJENvdW50ZXJDYXRlZ29yeSA9IDE7CiAgICAgICAgZm9yIG15ICRDYXRlZ29yeSAoCiAgICAgICAgICAgIHNvcnQgeyAkT2JqZWN0T3B0aW9ue0NhdGVnb3J5TGlzdH0tPnskYX0gY21wICRPYmplY3RPcHRpb257Q2F0ZWdvcnlMaXN0fS0+eyRifSB9CiAgICAgICAgICAgIGtleXMgJXsgJE9iamVjdE9wdGlvbntDYXRlZ29yeUxpc3R9IH0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEFsbG9jYXRlTWF0cml4LT5bMF0tPlskQ291bnRlckNhdGVnb3J5XS0+e09iamVjdFR5cGV9ICAgPSAnQ2F0ZWdvcnknOwogICAgICAgICAgICAkQWxsb2NhdGVNYXRyaXgtPlswXS0+WyRDb3VudGVyQ2F0ZWdvcnldLT57Q2F0ZWdvcnlLZXl9ICA9ICRDYXRlZ29yeTsKICAgICAgICAgICAgJEFsbG9jYXRlTWF0cml4LT5bMF0tPlskQ291bnRlckNhdGVnb3J5XS0+e09iamVjdE9wdGlvbn0gPSAkT2JqZWN0T3B0aW9ue0NhdGVnb3J5TGlzdH17JENhdGVnb3J5fTsKICAgICAgICAgICAgJENvdW50ZXJDYXRlZ29yeSsrOwogICAgICAgIH0KCiAgICAgICAgIyBnZW5lcmF0ZSBjb250ZW50CiAgICAgICAgZm9yIG15ICRSb3cgKCAxIC4uICggJENvdW50ZXJJbXBhY3QgLSAxICkgKSB7CiAgICAgICAgICAgIGZvciBteSAkQ29sdW1uICggMSAuLiAoICRDb3VudGVyQ2F0ZWdvcnkgLSAxICkgKSB7CgogICAgICAgICAgICAgICAgIyBleHRyYWN0IGtleXMKICAgICAgICAgICAgICAgIG15ICRJbXBhY3RLZXkgICA9ICRBbGxvY2F0ZU1hdHJpeC0+WyRSb3ddLT5bMF0tPntJbXBhY3RLZXl9OwogICAgICAgICAgICAgICAgbXkgJENhdGVnb3J5S2V5ID0gJEFsbG9jYXRlTWF0cml4LT5bMF0tPlskQ29sdW1uXS0+e0NhdGVnb3J5S2V5fTsKCiAgICAgICAgICAgICAgICAjIGNyZWF0ZSBvcHRpb24gc3RyaW5nCiAgICAgICAgICAgICAgICBteSAkT3B0aW9uU3RyZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJ1ByaW9yaXR5SUQnIC4gJEltcGFjdEtleSAuICctJyAuICRDYXRlZ29yeUtleSwKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgID0+ICRPYmplY3RPcHRpb257UHJpb3JpdHlMaXN0fSwKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZElEID0+ICRBbGxvY2F0ZURhdGEtPnskSW1wYWN0S2V5fXskQ2F0ZWdvcnlLZXl9IHx8ICcnLAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkQWxsb2NhdGVNYXRyaXgtPlskUm93XS0+WyRDb2x1bW5dLT57T3B0aW9uU3RyZ30gPSAkT3B0aW9uU3RyZzsKICAgICAgICAgICAgICAgICRBbGxvY2F0ZU1hdHJpeC0+WyRSb3ddLT5bJENvbHVtbl0tPntDbGFzc30gICAgICA9ICdDb250ZW50JzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRSb3cgKCAwIC4uICQjeyRBbGxvY2F0ZU1hdHJpeH0gKSB7CgogICAgICAgICAgICBpZiAoICRSb3cgIT0gMCApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdSb3cnICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZvciBteSAkQ29sdW1uICggMCAuLiAkI3sgJEFsbG9jYXRlTWF0cml4LT5bJFJvd10gfSApIHsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIHRoZSByb3cgaXMgaGVhZGVyCiAgICAgICAgICAgICAgICBpZiAoICRSb3cgPT0gMCApIHsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkQ29sdW1uID09IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyQ29sdW1uRGVzY3JpcHRpb24nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiAkQWxsb2NhdGVNYXRyaXgtPlskUm93XS0+WyRDb2x1bW5dLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJDZWxsJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gJEFsbG9jYXRlTWF0cml4LT5bJFJvd10tPlskQ29sdW1uXSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBjaGVjayBpZiB0aGUgY29sdW1uIGlzIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICBlbHNpZiAoICRDb2x1bW4gPT0gMCApIHsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnRGVzY3JpcHRpb25DZWxsJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiAkQWxsb2NhdGVNYXRyaXgtPlskUm93XS0+WyRDb2x1bW5dLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudENlbGwnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+ICRBbGxvY2F0ZU1hdHJpeC0+WyRSb3ddLT5bJENvbHVtbl0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBvdXRwdXQgaGVhZGVyIGFuZCBuYXZiYXIKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgICAgICMgZ2VuZXJhdGUgb3V0cHV0CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5JVFNNQ2hhbmdlQ0lQQWxsb2NhdGUnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AdminITSMChangeNotification.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgICAgICAgICAgICAgIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgaGFzaCB3aXRoIGZlZWRiYWNrIHRvIHRoZSB1c2VyCiAgICBteSAlTm90aWZpY2F0aW9uOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICROb3RpZmljYXRpb25PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6Tm90aWZpY2F0aW9uJyk7CiAgICBteSAkUGFyYW1PYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBteSAkUmljaFRleHQgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Zyb250ZW5kOjpSaWNoVGV4dCcpOwoKICAgIGlmICggJFJpY2hUZXh0ICYmICEkQ29uZmlnT2JqZWN0LT5HZXQoIklUU01DaGFuZ2U6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKS0+e1JpY2hUZXh0fSApIHsKICAgICAgICAkUmljaFRleHQgPSAwOwogICAgfQoKICAgICMgc2V0IGNvbnRlbnQgdHlwZSBmb3Igbm90aWZpY2F0aW9ucwogICAgbXkgJENvbnRlbnRUeXBlID0gJ3RleHQvcGxhaW4nOwogICAgaWYgKCRSaWNoVGV4dCkgewogICAgICAgICRDb250ZW50VHlwZSA9ICd0ZXh0L2h0bWwnOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgY2hhbmdlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlJyApIHsKICAgICAgICBteSAkSUQgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKSB8fCAnJzsKICAgICAgICBteSAkRGF0YSA9ICROb3RpZmljYXRpb25PYmplY3QtPk5vdGlmaWNhdGlvblJ1bGVHZXQoIElEID0+ICRJRCApOwoKICAgICAgICAkU2VsZi0+X0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiAgICAgID0+ICdDaGFuZ2UnLAogICAgICAgICAgICBBY3Rpb25MYWJlbCA9PiAnRWRpdCcsCiAgICAgICAgICAgIFJpY2hUZXh0ICAgID0+ICRSaWNoVGV4dCwKICAgICAgICAgICAgJXskRGF0YX0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFN0YXR1cyA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdGF0dXMnICkgfHwgJyc7CgogICAgICAgIGlmICggJFN0YXR1cyBlcSAnVXBkYXRlZCcgKSB7CiAgICAgICAgICAgICVOb3RpZmljYXRpb24gPSAoCiAgICAgICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnTm90aWZpY2F0aW9uIHVwZGF0ZWQhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFN0YXR1cyBlcSAnQWRkZWQnICkgewogICAgICAgICAgICAlTm90aWZpY2F0aW9uID0gKAogICAgICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ05vdGlmaWNhdGlvbiBBZGRlZCEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgY2hhbmdlIGFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0NoYW5nZUFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICVHZXRQYXJhbTsKCiAgICAgICAgIyBnZXQgc2NhbGFyIHBhcmFtZXRlcnMKICAgICAgICBmb3IgbXkgJFBhcmFtIChxdyhJRCBOYW1lIEV2ZW50SUQgQ29tbWVudCBWYWxpZElEIEF0dHJpYnV0ZSBSdWxlKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbSApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgYXJyYXkgcGFyYW1ldGVycwogICAgICAgICRHZXRQYXJhbXtSZWNpcGllbnRJRHN9ID0gWwogICAgICAgICAgICAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnUmVjaXBpZW50SURzJyApCiAgICAgICAgXTsKCiAgICAgICAgIyBnZXQgbWVzc2FnZSBwYXJhbWV0ZXJzIGZvciBhZ2VudHMgYW5kIGN1c3RvbWVycyBhbmQgZWFjaCBwcmVzZW50IGxhbmd1YWdlCiAgICAgICAgZm9yIG15ICRUeXBlIChxdyhBZ2VudCBDdXN0b21lcikpIHsKCiAgICAgICAgICAgIG15IEBMYW5ndWFnZUlEcyA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICRUeXBlIC4gJ19MYW5ndWFnZUlEJyApOwoKICAgICAgICAgICAgIyBnZXQgdGhlIHN1YmplY3QgYW5kIGJvZHkgZm9yIGFsbCBsYW5ndWFnZXMKICAgICAgICAgICAgZm9yIG15ICRMYW5ndWFnZUlEIChATGFuZ3VhZ2VJRHMpIHsKCiAgICAgICAgICAgICAgICBteSAkU3ViamVjdCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRUeXBlIC4gJ18nIC4gJExhbmd1YWdlSUQgLiAnX1N1YmplY3QnICkgfHwgJyc7CiAgICAgICAgICAgICAgICBteSAkQm9keSAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRUeXBlIC4gJ18nIC4gJExhbmd1YWdlSUQgLiAnX0JvZHknICkgICAgfHwgJyc7CgogICAgICAgICAgICAgICAgJEdldFBhcmFte01lc3NhZ2V9LT57JFR5cGV9LT57JExhbmd1YWdlSUR9ID0gewogICAgICAgICAgICAgICAgICAgIFN1YmplY3QgICAgID0+ICRTdWJqZWN0LAogICAgICAgICAgICAgICAgICAgIEJvZHkgICAgICAgID0+ICRCb2R5LAogICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICRDb250ZW50VHlwZSwKICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgIyBzZXQgc2VydmVyIGVycm9yIGZsYWcgaWYgZmllbGQgaXMgZW1wdHkKICAgICAgICAgICAgICAgIGlmICggISRTdWJqZWN0ICkgewogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFR5cGUgLiAnXycgLiAkTGFuZ3VhZ2VJRCAuICdfU3ViamVjdFNlcnZlckVycm9yJyB9ID0gIlNlcnZlckVycm9yIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICggISRCb2R5ICkgewogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFR5cGUgLiAnXycgLiAkTGFuZ3VhZ2VJRCAuICdfQm9keVNlcnZlckVycm9yJyB9ID0gIlNlcnZlckVycm9yIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyB1cGRhdGUgbm90aWZpY2F0aW9uCiAgICAgICAgaWYgKCAkTm90aWZpY2F0aW9uT2JqZWN0LT5Ob3RpZmljYXRpb25SdWxlVXBkYXRlKCVHZXRQYXJhbSkgKSB7CgogICAgICAgICAgICBteSAkQ29udGludWVBZnRlclNhdmUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ29udGludWVBZnRlclNhdmUnICk7CgogICAgICAgICAgICBpZiAoJENvbnRpbnVlQWZ0ZXJTYXZlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07U3ViYWN0aW9uPUNoYW5nZTtJRD0kR2V0UGFyYW17SUR9O1N0YXR1cz1VcGRhdGVkIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdGF0dXM9VXBkYXRlZCIgKTsKCiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBhbiBlcnJvciBvY2N1cmVkIC0+IHNob3cgbm90aWZpY2F0aW9uCiAgICAgICAgICAgICVOb3RpZmljYXRpb24gPSAoIFByaW9yaXR5ID0+ICdFcnJvcicgKTsKCiAgICAgICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgID0+ICdDaGFuZ2UnLAogICAgICAgICAgICAgICAgQWN0aW9uTGFiZWwgPT4gJ0VkaXQnLAogICAgICAgICAgICAgICAgUmljaFRleHQgICAgPT4gJFJpY2hUZXh0LAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZCcgKSB7CiAgICAgICAgJFNlbGYtPl9FZGl0KAogICAgICAgICAgICBBY3Rpb24gICAgICA9PiAnQWRkJywKICAgICAgICAgICAgQWN0aW9uTGFiZWwgPT4gJ0FkZCcsCiAgICAgICAgICAgIFJpY2hUZXh0ICAgID0+ICRSaWNoVGV4dCwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIGFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZEFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICVHZXRQYXJhbTsKCiAgICAgICAgIyBnZXQgc2NhbGFyIHBhcmFtZXRlcnMKICAgICAgICBmb3IgbXkgJFBhcmFtIChxdyhJRCBOYW1lIEV2ZW50SUQgQ29tbWVudCBWYWxpZElEIEF0dHJpYnV0ZSBSdWxlKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbSApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgYXJyYXkgcGFyYW1ldGVycwogICAgICAgICRHZXRQYXJhbXtSZWNpcGllbnRJRHN9ID0gWwogICAgICAgICAgICAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnUmVjaXBpZW50SURzJyApCiAgICAgICAgXTsKCiAgICAgICAgIyBnZXQgbWVzc2FnZSBwYXJhbWV0ZXJzIGZvciBhZ2VudHMgYW5kIGN1c3RvbWVycyBhbmQgZWFjaCBwcmVzZW50IGxhbmd1YWdlCiAgICAgICAgZm9yIG15ICRUeXBlIChxdyhBZ2VudCBDdXN0b21lcikpIHsKCiAgICAgICAgICAgIG15IEBMYW5ndWFnZUlEcyA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICRUeXBlIC4gJ19MYW5ndWFnZUlEJyApOwoKICAgICAgICAgICAgIyBnZXQgdGhlIHN1YmplY3QgYW5kIGJvZHkgZm9yIGFsbCBsYW5ndWFnZXMKICAgICAgICAgICAgZm9yIG15ICRMYW5ndWFnZUlEIChATGFuZ3VhZ2VJRHMpIHsKCiAgICAgICAgICAgICAgICBteSAkU3ViamVjdCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRUeXBlIC4gJ18nIC4gJExhbmd1YWdlSUQgLiAnX1N1YmplY3QnICkgfHwgJyc7CiAgICAgICAgICAgICAgICBteSAkQm9keSAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRUeXBlIC4gJ18nIC4gJExhbmd1YWdlSUQgLiAnX0JvZHknICkgICAgfHwgJyc7CgogICAgICAgICAgICAgICAgJEdldFBhcmFte01lc3NhZ2V9LT57JFR5cGV9LT57JExhbmd1YWdlSUR9ID0gewogICAgICAgICAgICAgICAgICAgIFN1YmplY3QgICAgID0+ICRTdWJqZWN0LAogICAgICAgICAgICAgICAgICAgIEJvZHkgICAgICAgID0+ICRCb2R5LAogICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICRDb250ZW50VHlwZSwKICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgIyBzZXQgc2VydmVyIGVycm9yIGZsYWcgaWYgZmllbGQgaXMgZW1wdHkKICAgICAgICAgICAgICAgIGlmICggISRTdWJqZWN0ICkgewogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFR5cGUgLiAnXycgLiAkTGFuZ3VhZ2VJRCAuICdfU3ViamVjdFNlcnZlckVycm9yJyB9ID0gIlNlcnZlckVycm9yIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICggISRCb2R5ICkgewogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFR5cGUgLiAnXycgLiAkTGFuZ3VhZ2VJRCAuICdfQm9keVNlcnZlckVycm9yJyB9ID0gIlNlcnZlckVycm9yIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBhZGQgbm90aWZpY2F0aW9uCiAgICAgICAgbXkgJE5ld0lEID0gJE5vdGlmaWNhdGlvbk9iamVjdC0+Tm90aWZpY2F0aW9uUnVsZUFkZCglR2V0UGFyYW0pOwogICAgICAgIGlmICgkTmV3SUQpIHsKCiAgICAgICAgICAgIG15ICRDb250aW51ZUFmdGVyU2F2ZSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKTsKCiAgICAgICAgICAgIGlmICgkQ29udGludWVBZnRlclNhdmUpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdWJhY3Rpb249Q2hhbmdlO0lEPSROZXdJRDtTdGF0dXM9QWRkZWQiCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N0YXR1cz1BZGRlZCIgKTsKCiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBhbiBlcnJvciBvY2N1cmVkIC0+IHNob3cgbm90aWZpY2F0aW9uCiAgICAgICAgICAgICVOb3RpZmljYXRpb24gPSAoIFByaW9yaXR5ID0+ICdFcnJvcicgKTsKCiAgICAgICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgID0+ICdBZGQnLAogICAgICAgICAgICAgICAgQWN0aW9uTGFiZWwgPT4gJ0FkZCcsCiAgICAgICAgICAgICAgICBSaWNoVGV4dCAgICA9PiAkUmljaFRleHQsCiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZGVsZXRlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRGVsZXRlJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJUdldFBhcmFtOwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhJRCkpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgbXkgJERlbGV0ZSA9ICROb3RpZmljYXRpb25PYmplY3QtPk5vdGlmaWNhdGlvblJ1bGVEZWxldGUoCiAgICAgICAgICAgIElEID0+ICRHZXRQYXJhbXtJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkRGVsZXRlICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn0iICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBOb3RpZmljYXRpb25Db3B5CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnTm90aWZpY2F0aW9uQ29weScgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICVHZXRQYXJhbTsKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoSUQpKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAnJzsKICAgICAgICB9CgogICAgICAgICMgZ2V0IE5vdGlmaWNhdGlvbiBkYXRhCiAgICAgICAgbXkgJERhdGEgPSAkTm90aWZpY2F0aW9uT2JqZWN0LT5Ob3RpZmljYXRpb25SdWxlR2V0KAogICAgICAgICAgICBJRCA9PiAkR2V0UGFyYW17SUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCREYXRhKSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdVbmtub3duIG5vdGlmaWNhdGlvbiAlcyEnLCAkR2V0UGFyYW17SUR9ICksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZSBuZXcgTm90aWZpY2F0aW9uIG5hbWUKICAgICAgICBteSAkTm90aWZpY2F0aW9uTmFtZSA9CiAgICAgICAgICAgICREYXRhLT57TmFtZX0KICAgICAgICAgICAgLiAnICgnCiAgICAgICAgICAgIC4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDb3B5JykKICAgICAgICAgICAgLiAnKSc7CgogICAgICAgICMgb3RoZXJ3aXNlIHNhdmUgY29uZmlndXJhdGlvbiBhbmQgcmV0dXJuIHRvIG92ZXJ2aWV3IHNjcmVlbgogICAgICAgIG15ICROZXdOb3RpZmljYXRpb25JRCA9ICROb3RpZmljYXRpb25PYmplY3QtPk5vdGlmaWNhdGlvblJ1bGVBZGQoCiAgICAgICAgICAgICV7JERhdGF9LAogICAgICAgICAgICBOYW1lID0+ICROb3RpZmljYXRpb25OYW1lLAogICAgICAgICk7CgogICAgICAgICMgc2hvdyBlcnJvciBpZiBjYW4ndCBjcmVhdGUKICAgICAgICBpZiAoICEkTmV3Tm90aWZpY2F0aW9uSUQgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIG5vdGlmaWNhdGlvbi4nKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgcmV0dXJuIHRvIG92ZXJ2aWV3CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBvdmVydmlldwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT5fT3ZlcnZpZXcoKTsKCiAgICAgICAgbXkgJFN0YXR1cyA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdGF0dXMnICkgfHwgJyc7CgogICAgICAgIGlmICggJFN0YXR1cyBlcSAnVXBkYXRlZCcgKSB7CiAgICAgICAgICAgICVOb3RpZmljYXRpb24gPSAoCiAgICAgICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnTm90aWZpY2F0aW9uIHVwZGF0ZWQhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFN0YXR1cyBlcSAnQWRkZWQnICkgewogICAgICAgICAgICAlTm90aWZpY2F0aW9uID0gKAogICAgICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ05vdGlmaWNhdGlvbiBBZGRlZCEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgfQoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgIGlmICglTm90aWZpY2F0aW9uKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoJU5vdGlmaWNhdGlvbikgfHwgJyc7CiAgICB9CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluSVRTTUNoYW5nZU5vdGlmaWNhdGlvbicsCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKIyBzaG93IHRoZSBlZGl0IG1hc2sgZm9yIGEgbm90aWZpY2F0aW9uIHJ1bGUKc3ViIF9FZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRDb25maWdPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJExheW91dE9iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRIVE1MVXRpbHNPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyk7CiAgICBteSAkVmFsaWRPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQWN0aW9uTGlzdCcgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25PdmVydmlldycgKTsKCiAgICAkUGFyYW17VmFsaWRPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICRWYWxpZE9iamVjdC0+VmFsaWRMaXN0KCksCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdWYWxpZElEJywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtWYWxpZElEfSB8fCAoICRWYWxpZE9iamVjdC0+VmFsaWRJRHNHZXQoKSApWzBdLAogICAgICAgIFNvcnQgICAgICAgPT4gJ051bWVyaWNLZXknLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZSBXNTBwYycsCiAgICApOwogICAgJFBhcmFte0V2ZW50T3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SGlzdG9yeScpLT5IaXN0b3J5VHlwZUxpc3QoIFVzZXJJRCA9PiAxICkgfHwgW10sCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdFdmVudElEJywKICAgICAgICBTZWxlY3RlZElEICAgPT4gJFBhcmFte0V2ZW50SUR9LAogICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplIFc1MHBjIFZhbGlkYXRlX1JlcXVpcmVkJywKICAgICAgICBUcmFuc2xhdGFibGUgPT4gMCwKICAgICk7CiAgICAkUGFyYW17UmVjaXBpZW50T3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Ok5vdGlmaWNhdGlvbicpLT5SZWNpcGllbnRMaXN0KCBVc2VySUQgPT4gMSApIHx8IFtdLAogICAgICAgIE5hbWUgICAgICAgPT4gJ1JlY2lwaWVudElEcycsCiAgICAgICAgTXVsdGlwbGUgICA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte1JlY2lwaWVudElEc30sCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplIFc1MHBjJywKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdVcGRhdGUnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdPdmVydmlld1VwZGF0ZScsCiAgICAgICAgVmFsdWUgPT4gMQogICAgKTsKCiAgICAjIGFkZCByaWNoIHRleHQgZWRpdG9yCiAgICBpZiAoICRQYXJhbXtSaWNoVGV4dH0gKSB7CgogICAgICAgICMgdXNlIGhlaWdodC93aWR0aCBkZWZpbmVkIGZvciB0aGlzIHNjcmVlbgogICAgICAgIG15ICRDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoIklUU01DaGFuZ2U6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKICAgICAgICAkUGFyYW17UmljaFRleHRIZWlnaHR9ID0gJENvbmZpZy0+e1JpY2hUZXh0SGVpZ2h0fSB8fCAwOwogICAgICAgICRQYXJhbXtSaWNoVGV4dFdpZHRofSAgPSAkQ29uZmlnLT57UmljaFRleHRXaWR0aH0gIHx8IDA7CgogICAgICAgICRMYXlvdXRPYmplY3QtPlNldFJpY2hUZXh0UGFyYW1ldGVycygKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IGRpZmZlcmVudCB3aWRnZXQgY29udGFpbmVycyBmb3IgYWdlbnQgYW5kIGN1c3RvbWVyIG5vdGlmaWNhdGlvbnMKICAgIGZvciBteSAkVHlwZSAocXcoQWdlbnQgQ3VzdG9tZXIpKSB7CgogICAgICAgICMgc2hvdyB0aGUgd2lkZ2V0IGNvbnRhaW5lciBmb3IgdGhpcyB0eXBlCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vdGlmaWNhdGlvblR5cGUnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgIFR5cGUgPT4gJFR5cGUsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgbGFuZ3VhZ2UgaWRzIGZyb20gbWVzc2FnZSBwYXJhbWV0ZXIsIHVzZSBFbmdsaXNoIGlmIG5vIG1lc3NhZ2UgaXMgZ2l2ZW4KICAgICAgICAjIG1ha2Ugc3VyZSBFbmdsaXNoIGlzIHRoZSBmaXJzdCBsYW5ndWFnZQogICAgICAgIG15IEBMYW5ndWFnZUlEczsKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0gKSApIHsKICAgICAgICAgICAgaWYgKCAkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0tPntlbn0gKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBMYW5ndWFnZUlEcywgJ2VuJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBMQU5HVUFHRUlEOgogICAgICAgICAgICBmb3IgbXkgJExhbmd1YWdlSUQgKCBzb3J0IGtleXMgJXsgJFBhcmFte01lc3NhZ2V9LT57JFR5cGV9IH0gKSB7CiAgICAgICAgICAgICAgICBuZXh0IExBTkdVQUdFSUQgaWYgJExhbmd1YWdlSUQgZXEgJ2VuJzsKICAgICAgICAgICAgICAgIHB1c2ggQExhbmd1YWdlSURzLCAkTGFuZ3VhZ2VJRDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgQExhbmd1YWdlSURzID0gKCdlbicpOwogICAgICAgIH0KCiAgICAgICAgbXkgJURlZmF1bHRVc2VkTGFuZ3VhZ2VzICAgICAgICAgPSAleyAkQ29uZmlnT2JqZWN0LT5HZXQoJ0RlZmF1bHRVc2VkTGFuZ3VhZ2VzJykgfTsKICAgICAgICBteSAlT3JpZ2luYWxEZWZhdWx0VXNlZExhbmd1YWdlcyA9ICVEZWZhdWx0VXNlZExhbmd1YWdlczsKCiAgICAgICAgZm9yIG15ICRMYW5ndWFnZUlEIChATGFuZ3VhZ2VJRHMpIHsKCiAgICAgICAgICAgICMgZm9ybWF0IHRoZSBjb250ZW50IGFjY29yZGluZyB0byB0aGUgY29udGVudCB0eXBlCiAgICAgICAgICAgIGlmICggJFBhcmFte1JpY2hUZXh0fSApIHsKCiAgICAgICAgICAgICAgICAjIG1ha2Ugc3VyZSBib2R5IGlzIHJpY2ggdGV4dCAoaWYgYm9keSBpcyBiYXNlZCBvbiBjb25maWcpCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte01lc3NhZ2V9LT57JFR5cGV9LT57JExhbmd1YWdlSUR9LT57Q29udGVudFR5cGV9CiAgICAgICAgICAgICAgICAgICAgJiYgJFBhcmFte01lc3NhZ2V9LT57JFR5cGV9LT57JExhbmd1YWdlSUR9LT57Q29udGVudFR5cGV9ID1+IG17dGV4dFwvcGxhaW59eG1zaQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0tPnskTGFuZ3VhZ2VJRH0tPntCb2R5fSA9ICRIVE1MVXRpbHNPYmplY3QtPlRvSFRNTCgKICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRQYXJhbXtNZXNzYWdlfS0+eyRUeXBlfS0+eyRMYW5ndWFnZUlEfS0+e0JvZHl9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyByZWZvcm1hdCBmcm9tIEhUTUwgdG8gcGxhaW4KICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0tPnskTGFuZ3VhZ2VJRH0tPntDb250ZW50VHlwZX0KICAgICAgICAgICAgICAgICAgICAmJiAkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0tPnskTGFuZ3VhZ2VJRH0tPntDb250ZW50VHlwZX0gPX4gbXt0ZXh0XC9odG1sfXhtc2kKICAgICAgICAgICAgICAgICAgICAmJiAkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0tPnskTGFuZ3VhZ2VJRH0tPntCb2R5fQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0tPnskTGFuZ3VhZ2VJRH0tPntCb2R5fSA9ICRIVE1MVXRpbHNPYmplY3QtPlRvQXNjaWkoCiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0tPnskTGFuZ3VhZ2VJRH0tPntCb2R5fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHNob3cgdGhlIG5vdGlmaWNhdGlvbiBmb3IgdGhpcyBsYW5ndWFnZQogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vdGlmaWNhdGlvbkxhbmd1YWdlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgPT4gJFBhcmFte01lc3NhZ2V9LT57JFR5cGV9LT57JExhbmd1YWdlSUR9LT57U3ViamVjdH0gfHwgJycsCiAgICAgICAgICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgID0+ICRQYXJhbXtNZXNzYWdlfS0+eyRUeXBlfS0+eyRMYW5ndWFnZUlEfS0+e0JvZHl9ICAgIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICA9PiAkVHlwZSwKICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZUlEICAgICAgICAgPT4gJExhbmd1YWdlSUQsCiAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2UgICAgICAgICAgID0+ICREZWZhdWx0VXNlZExhbmd1YWdlc3skTGFuZ3VhZ2VJRH0sCiAgICAgICAgICAgICAgICAgICAgU3ViamVjdFNlcnZlckVycm9yID0+ICRQYXJhbXsgJFR5cGUgLiAnXycgLiAkTGFuZ3VhZ2VJRCAuICdfU3ViamVjdFNlcnZlckVycm9yJyB9IHx8ICcnLAogICAgICAgICAgICAgICAgICAgIEJvZHlTZXJ2ZXJFcnJvciAgICA9PiAkUGFyYW17ICRUeXBlIC4gJ18nIC4gJExhbmd1YWdlSUQgLiAnX0JvZHlTZXJ2ZXJFcnJvcicgfSAgICB8fCAnJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgdGhlIGJ1dHRvbiB0byByZW1vdmUgYSBub3RpZmljYXRpb24gb25seSBpZiBpdCBpcyBub3QgdGhlIEVuZ2xpc2ggbm90aWZpY2F0aW9uCiAgICAgICAgICAgIGlmICggJExhbmd1YWdlSUQgbmUgJ2VuJyApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vdGlmaWNhdGlvbkxhbmd1YWdlUmVtb3ZlQnV0dG9uJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZUlEID0+ICRUeXBlIC4gJ18nIC4gJExhbmd1YWdlSUQsCiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICAgPT4gJFR5cGUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZGVsZXRlIGxhbmd1YWdlIGZyb20gZHJvcC1kb3duIGxpc3QgYmVjYXVzZSBpdCBpcyBhbHJlYWR5IHNob3duCiAgICAgICAgICAgIGRlbGV0ZSAkRGVmYXVsdFVzZWRMYW5ndWFnZXN7JExhbmd1YWdlSUR9OwogICAgICAgIH0KCiAgICAgICAgIyBzaG93IGxhbmd1YWdlIGFkZCBkcm9wZG93bgogICAgICAgICRQYXJhbXtMYW5ndWFnZVN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJURlZmF1bHRVc2VkTGFuZ3VhZ2VzLAogICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJFR5cGUgLiAnTGFuZ3VhZ2VBZGQnLAogICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZSBXNTBwYyBMYW5ndWFnZUFkZCcsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgSFRNTFF1b3RlICAgID0+IDAsCiAgICAgICAgKTsKICAgICAgICAkUGFyYW17TGFuZ3VhZ2VPcmlnU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlT3JpZ2luYWxEZWZhdWx0VXNlZExhbmd1YWdlcywKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRUeXBlIC4gJ0xhbmd1YWdlT3JpZycsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgSFRNTFF1b3RlICAgID0+IDAsCgogICAgICAgICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vdGlmaWNhdGlvbkxhbmd1YWdlQWRkJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICBUeXBlID0+ICRUeXBlLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCiMgc2hvdyBhIHRhYmxlIG9mIG5vdGlmaWNhdGlvbiBydWxlcwpzdWIgX092ZXJ2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQWN0aW9uTGlzdCcgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25BZGQnICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHQnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdPdmVydmlld1Jlc3VsdCcsCiAgICAgICAgVmFsdWUgPT4gMSwKICAgICk7CgogICAgIyBnZXQgbm90aWZpY2F0aW9uIG9iamVjdAogICAgbXkgJE5vdGlmaWNhdGlvbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpOb3RpZmljYXRpb24nKTsKCiAgICBteSAkUnVsZUlEcyA9ICROb3RpZmljYXRpb25PYmplY3QtPk5vdGlmaWNhdGlvblJ1bGVMaXN0KCkgfHwgW107CgogICAgIyBnZXQgdmFsaWQgbGlzdAogICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKICAgIGZvciBteSAkUnVsZUlEICggQHskUnVsZUlEc30gKSB7CgogICAgICAgIG15ICREYXRhICAgICAgID0gJE5vdGlmaWNhdGlvbk9iamVjdC0+Tm90aWZpY2F0aW9uUnVsZUdldCggSUQgPT4gJFJ1bGVJRCApOwogICAgICAgIG15ICRSZWNpcGllbnRzID0gam9pbiAnLCAnLCBAeyAkRGF0YS0+e1JlY2lwaWVudHN9IHx8IFtdIH07CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFJvdycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgVmFsaWQgPT4gJFZhbGlkTGlzdHsgJERhdGEtPntWYWxpZElEfSB9LAogICAgICAgICAgICAgICAgJXskRGF0YX0sCiAgICAgICAgICAgICAgICBSZWNpcGllbnRzID0+ICRSZWNpcGllbnRzLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AdminITSMStateMachine.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluSVRTTVN0YXRlTWFjaGluZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVFcnJvcjsKCiAgICAjIGdldCBwYXJhbSBvYmplY3QKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIHN0b3JlIGNvbW1vbmx5IG5lZWRlZCBwYXJhbWV0ZXJzIGluICVHZXRQYXJhbQogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KFN0YXRlSUQgTmV4dFN0YXRlSUQgQ2xhc3MgU3RhdHVzKSkgewogICAgICAgICRHZXRQYXJhbXskUGFyYW1OYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbU5hbWUgKTsKICAgIH0KCiAgICAjIHJlYWQgdGhlIGNvbmZpZywKICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIklUU01TdGF0ZU1hY2hpbmU6Ok9iamVjdCIpIHx8IHt9OwoKICAgICMgcHJlcGFyZSB0aGUgY29uZmlnIGZvciBsb29rdXAgYnkgY2xhc3MKICAgICMgdGhlIGhhc2gga2V5cyBvZiAkQ29uZmlnIGFyZSBub3Qgc2lnbmlmaWNhbnQKICAgICRTZWxmLT57Q29uZmlnQnlDbGFzc30gPSB7fTsKICAgIGZvciBteSAkSGFzaFJlZiAoIHZhbHVlcyAleyRDb25maWd9ICkgewogICAgICAgICRTZWxmLT57Q29uZmlnQnlDbGFzc30tPnsgJEhhc2hSZWYtPntDbGFzc30gfSA9ICRIYXNoUmVmOwogICAgfQoKICAgICMgdHJhbnNsYXRlIGZyb20gbmFtZSB0byBjbGFzcyBhbmQgdmljZSB2ZXJzYQogICAgaWYgKCAkR2V0UGFyYW17Q2xhc3N9ICkgewogICAgICAgICRHZXRQYXJhbXtDbGFzc1Nob3J0TmFtZX0gPSAkU2VsZi0+e0NvbmZpZ0J5Q2xhc3N9LT57ICRHZXRQYXJhbXtDbGFzc30gfS0+e05hbWV9OwogICAgfQoKICAgICMgZXJyb3IgbWVzc2FnZXMgYXJlIGFkZGVkIHRvIHRoaXMgdmFyaWFibGUKICAgIG15ICROb3RlID0gJyc7CgogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1N0YXRlVHJhbnNpdGlvblVwZGF0ZScgKSB7CgogICAgICAgICMgcHJvdmlkZSBmb3JtIGZvciBjaGFuZ2luZyB0aGUgbmV4dCBzdGF0ZQogICAgICAgIHJldHVybiAkU2VsZi0+X1N0YXRlVHJhbnNpdGlvblVwZGF0ZVBhZ2VHZXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnU3RhdGVUcmFuc2l0aW9uVXBkYXRlJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU3RhdGVUcmFuc2l0aW9uQWRkJyApIHsKICAgICAgICBpZiAoICEkR2V0UGFyYW17Q2xhc3N9ICkgewogICAgICAgICAgICAkRXJyb3J7J0NsYXNzSW52YWxpZCd9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIHByb3ZpZGUgZm9ybSBmb3IgYWRkaW5nIGEgc3RhdGUgdHJhbnNpdGlvbgogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9TdGF0ZVRyYW5zaXRpb25BZGRQYWdlR2V0KAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICdTdGF0ZVRyYW5zaXRpb25BZGQnLAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdTdGF0ZVRyYW5zaXRpb25EZWxldGUnICkgewoKICAgICAgICAjIHNob3cgY29uZmlybWF0aW9uIHBhZ2UgZm9yIHN0YXRlIGRlbGV0aW9uCiAgICAgICAgcmV0dXJuICRTZWxmLT5fU3RhdGVUcmFuc2l0aW9uRGVsZXRlUGFnZUdldCgKICAgICAgICAgICAgQWN0aW9uID0+ICdTdGF0ZVRyYW5zaXRpb25EZWxldGUnLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIEJ1aWxkIGRyb3AtZG93biBmb3IgdGhlIGNsYXNzIHNlbGVjdGlvbiBvbiB0aGUgbGVmdCBzaWRlLgogICAgbXkgQEFyckhhc2hSZWY7CiAgICBmb3IgbXkgJENsYXNzICggc29ydCBrZXlzICV7ICRTZWxmLT57Q29uZmlnQnlDbGFzc30gfSApIHsKICAgICAgICBwdXNoIEBBcnJIYXNoUmVmLCB7CiAgICAgICAgICAgIEtleSAgID0+ICRDbGFzcywKICAgICAgICAgICAgVmFsdWUgPT4gJENsYXNzLAogICAgICAgIH07CiAgICB9CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkR2V0UGFyYW17Q2xhc3NTZWxlY3Rpb25TdHJpbmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdDbGFzcycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IFxAQXJySGFzaFJlZiwKICAgICAgICBTZWxlY3RlZElEICAgPT4gJEdldFBhcmFte0NsYXNzfSwKICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZSBWYWxpZGF0ZV9SZXF1aXJlZCBXMTAwcGMgJyAuICggJEVycm9ye0NsYXNzSW52YWxpZH0gfHwgJycgKSwKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICk7CgogICAgIyBwZXJmb3JtIGFjdGlvbnMKICAgIG15ICRBY3Rpb25Jc09rID0gMTsKCiAgICAjIGdldCBzdGF0ZSBtYWNoaW5lIG9iamVjdAogICAgbXkgJFN0YXRlTWFjaGluZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNU3RhdGVNYWNoaW5lJyk7CgogICAgIyB1cGRhdGUgdGhlIG5leHQgc3RhdGUgb2YgYSBzdGF0ZSB0cmFuc2l0aW9uCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU3RhdGVUcmFuc2l0aW9uVXBkYXRlQWN0aW9uJyApIHsKCiAgICAgICAgIyBwYXJhbXMgc3BlY2lmaWMgdG8gU3RhdGVUcmFuc2l0aW9uVXBkYXRlCiAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KE5ld05leHRTdGF0ZUlEKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CiAgICAgICAgfQoKICAgICAgICAjIFVwZGF0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbgogICAgICAgICRBY3Rpb25Jc09rID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVUcmFuc2l0aW9uVXBkYXRlKAogICAgICAgICAgICBDbGFzcyAgICAgICAgICA9PiAkR2V0UGFyYW17Q2xhc3N9LAogICAgICAgICAgICBTdGF0ZUlEICAgICAgICA9PiAkR2V0UGFyYW17U3RhdGVJRH0sCiAgICAgICAgICAgIE5leHRTdGF0ZUlEICAgID0+ICRHZXRQYXJhbXtOZXh0U3RhdGVJRH0sCiAgICAgICAgICAgIE5ld05leHRTdGF0ZUlEID0+ICRHZXRQYXJhbXtOZXdOZXh0U3RhdGVJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoJEFjdGlvbklzT2spIHsKCiAgICAgICAgICAgIG15ICRDb250aW51ZUFmdGVyU2F2ZSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKTsKCiAgICAgICAgICAgIGlmICgkQ29udGludWVBZnRlclNhdmUpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdWJhY3Rpb249U3RhdGVUcmFuc2l0aW9uVXBkYXRlO0NsYXNzPSRHZXRQYXJhbXtDbGFzc307U3RhdGVJRD0kR2V0UGFyYW17U3RhdGVJRH07TmV4dFN0YXRlSUQ9JEdldFBhcmFte05ld05leHRTdGF0ZUlEfTtTdGF0dXM9VXBkYXRlZCIKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07U3RhdHVzPVVwZGF0ZWQiICk7CiAgICAgICAgfQogICAgfQogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1N0YXRlVHJhbnNpdGlvbkFkZEFjdGlvbicgKSB7CgogICAgICAgIG15ICRJc1ZhbGlkID0gMTsKICAgICAgICAlRXJyb3IgPSAoKTsKCiAgICAgICAgIyB3ZSBuZWVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gZW1wdHkgc3RyaW5nICcnIGFuZCB0aGUgc3RyaW5nICcwJy4KICAgICAgICAjICcnIGluZGljYXRlcyB0aGF0IG5vIHZhbHVlIHdhcyBzZWxlY3RlZCwgd2hpY2ggaXMgaW52YWxpZAogICAgICAgICMgJzAnIGluZGljYXRlZCAnKlNUQVJUKicgb3IgJypFTkQqJwogICAgICAgIGlmICggJEdldFBhcmFte1N0YXRlSUR9IGVxICcnICkgewogICAgICAgICAgICAkSXNWYWxpZCA9IDA7CiAgICAgICAgICAgICRFcnJvcnsnU3RhdGVJbnZhbGlkJ30gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkR2V0UGFyYW17TmV4dFN0YXRlSUR9IGVxICcnICkgewogICAgICAgICAgICAkSXNWYWxpZCA9IDA7CiAgICAgICAgICAgICRFcnJvcnsnTmV4dFN0YXRlSW52YWxpZCd9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgIGlmICggISRJc1ZhbGlkICkgewogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9TdGF0ZVRyYW5zaXRpb25BZGRQYWdlR2V0KAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgJUVycm9yLAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICdTdGF0ZVRyYW5zaXRpb25BZGQnLAogICAgICAgICAgICAgICAgTm90ZSAgID0+ICROb3RlLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBBZGQgdGhlIHN0YXRlIHRyYW5zaXRpb24KICAgICAgICAkQWN0aW9uSXNPayA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlVHJhbnNpdGlvbkFkZCgKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJEdldFBhcmFte0NsYXNzfSwKICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gJEdldFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICBOZXh0U3RhdGVJRCA9PiAkR2V0UGFyYW17TmV4dFN0YXRlSUR9LAogICAgICAgICk7CgogICAgICAgIGlmICgkQWN0aW9uSXNPaykgewogICAgICAgICAgICBteSAkQ29udGludWVBZnRlclNhdmUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ29udGludWVBZnRlclNhdmUnICk7CgogICAgICAgICAgICBpZiAoJENvbnRpbnVlQWZ0ZXJTYXZlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICAgICAgICAgIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07U3ViYWN0aW9uPVN0YXRlVHJhbnNpdGlvblVwZGF0ZTtDbGFzcz0kR2V0UGFyYW17Q2xhc3N9O1N0YXRlSUQ9JEdldFBhcmFte1N0YXRlSUR9O05leHRTdGF0ZUlEPSRHZXRQYXJhbXtOZXh0U3RhdGVJRH07U3RhdHVzPUFkZGVkIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdGF0dXM9QWRkZWQiICk7CgogICAgICAgIH0KCiAgICB9CiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU3RhdGVUcmFuc2l0aW9uRGVsZXRlQWN0aW9uJyApIHsKCiAgICAgICAgIyBEZWxldGUgdGhlIHN0YXRlIHRyYW5zaXRpb24KICAgICAgICAkQWN0aW9uSXNPayA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlVHJhbnNpdGlvbkRlbGV0ZSgKICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gJEdldFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICBOZXh0U3RhdGVJRCA9PiAkR2V0UGFyYW17TmV4dFN0YXRlSUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBTaG93IGxpc3Qgb2Ygc3RhdGUgdHJhbnNpdGlvbnMgZm9yIHRoZSBjbGFzcwogICAgaWYgKCAkR2V0UGFyYW17Q2xhc3N9ICkgewogICAgICAgICROb3RlIC49ICRBY3Rpb25Jc09rID8gJycgOiAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoIFByaW9yaXR5ID0+ICdFcnJvcicgKTsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5fT3ZlcnZpZXdTdGF0ZVRyYW5zaXRpb25zUGFnZUdldCgKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBOb3RlID0+ICROb3RlLAogICAgICAgICk7CiAgICB9CgogICAgIyBwcmVzZW50IGEgbGlzdCBvZiBhbGwgY29uZmlndXJlZCBjbGFzc2VzLCBhcyB0aGUgY2xhc3MgaXMgbm90IGtub3duIHlldAogICAgcmV0dXJuICRTZWxmLT5fT3ZlcnZpZXdDbGFzc2VzUGFnZUdldCgKICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgTm90ZSA9PiAkTm90ZSwKICAgICk7Cn0KCiMgcHJvdmlkZSBhIGZvcm0gZm9yIGNoYW5naW5nIHRoZSBuZXh0IHN0YXRlIG9mIGEgdHJhbnNpdGlvbgpzdWIgX1N0YXRlVHJhbnNpdGlvblVwZGF0ZVBhZ2VHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBzdGF0ZSBtYWNoaW5lIG9iamVjdAogICAgbXkgJFN0YXRlTWFjaGluZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNU3RhdGVNYWNoaW5lJyk7CgogICAgJFBhcmFte1N0YXRlTmFtZX0gPSAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZUxvb2t1cCgKICAgICAgICBDbGFzcyAgID0+ICRQYXJhbXtDbGFzc30sCiAgICAgICAgU3RhdGVJRCA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICApIHx8ICcqU1RBUlQqJzsKCiAgICAjIEFycmF5SGFzaFJlZiB3aXRoIGFsbCBzdGF0ZXMgZm9yIGEgY2F0YWxvZyBjbGFzcwogICAgbXkgJEFsbFN0YXRlc0FycmF5SGFzaFJlZiA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlTGlzdCgKICAgICAgICBDbGFzcyAgPT4gJFBhcmFte0NsYXNzfSwKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIEFkZCB0aGUgc3BlY2lhbCBmaW5hbCBzdGF0ZQogICAgcHVzaCBAeyRBbGxTdGF0ZXNBcnJheUhhc2hSZWZ9LAogICAgICAgIHsKICAgICAgICBLZXkgICA9PiAnMCcsCiAgICAgICAgVmFsdWUgPT4gJypFTkQqJwogICAgICAgIH07CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkUGFyYW17TmV4dFN0YXRlU2VsZWN0aW9uU3RyaW5nfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gJEFsbFN0YXRlc0FycmF5SGFzaFJlZiwKICAgICAgICBOYW1lICAgICAgID0+ICdOZXdOZXh0U3RhdGVJRCcsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17TmV4dFN0YXRlSUR9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3JywKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnU3RhdGVUcmFuc2l0aW9uVXBkYXRlJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgIG15ICRTdGF0dXMgPSAkUGFyYW17J1N0YXR1cyd9IHx8ICcnOwogICAgbXkgJU5vdGlmaWNhdGlvbjsKICAgIGlmICggJFN0YXR1cyBlcSAnVXBkYXRlZCcgKSB7CiAgICAgICAgJU5vdGlmaWNhdGlvbiA9ICgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnKSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkU3RhdHVzIGVxICdBZGRlZCcgKSB7CiAgICAgICAgJU5vdGlmaWNhdGlvbiA9ICgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdlbmVyYXRlIEhUTUwKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgaWYgKCVOb3RpZmljYXRpb24pIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSglTm90aWZpY2F0aW9uKSB8fCAnJzsKICAgIH0KICAgICRPdXRwdXQgLj0gJFBhcmFte05vdGV9IHx8ICcnOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbklUU01TdGF0ZU1hY2hpbmUnLAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCiMgcHJvdmlkZSBhIGZvcm0gZm9yIGFkZGluZyBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uCnN1YiBfU3RhdGVUcmFuc2l0aW9uQWRkUGFnZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgQXJyYXlIYXNoUmVmIHdpdGggYWxsIHN0YXRlcyBmb3IgYSBjYXRhbG9nIGNsYXNzCiAgICBteSAkQWxsU3RhdGVzQXJyYXlIYXNoUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01TdGF0ZU1hY2hpbmUnKS0+U3RhdGVMaXN0KAogICAgICAgIENsYXNzICA9PiAkUGFyYW17Q2xhc3N9LAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgQWRkIHRoZSBzcGVjaWFsIGZpbmFsIHN0YXRlCiAgICBwdXNoIEB7JEFsbFN0YXRlc0FycmF5SGFzaFJlZn0sIHsKICAgICAgICBLZXkgICA9PiAnMCcsCiAgICAgICAgVmFsdWUgPT4gJypTVEFSVConLAogICAgfTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZHJvcGRvd24gbWVudSwgd2hlcmUgdGhlIHN0YXRlIGNhbiBiZSBzZWxlY3RlZCBmb3IgYWRkaXRpb24KICAgICRQYXJhbXtTdGF0ZVNlbGVjdGlvblN0cmluZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICAgPT4gJEFsbFN0YXRlc0FycmF5SGFzaFJlZiwKICAgICAgICBOYW1lICAgICAgICAgPT4gJ1N0YXRlSUQnLAogICAgICAgIFNlbGVjdGVkSUQgICA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUgVmFsaWRhdGVfUmVxdWlyZWQgJyAuICggJFBhcmFte1N0YXRlSW52YWxpZH0gfHwgJycgKSwKICAgICk7CgogICAgIyBkcm9wZG93biBtZW51LCB3aGVyZSB0aGUgbmV4dCBzdGF0ZSBjYW4gYmUgc2VsZWN0ZWQgZm9yIGFkZGl0aW9uCiAgICAkQWxsU3RhdGVzQXJyYXlIYXNoUmVmLT5bLTFdID0gewogICAgICAgIEtleSAgID0+ICcwJywKICAgICAgICBWYWx1ZSA9PiAnKkVORConLAogICAgfTsKICAgICRQYXJhbXtOZXh0U3RhdGVTZWxlY3Rpb25TdHJpbmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgID0+ICRBbGxTdGF0ZXNBcnJheUhhc2hSZWYsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdOZXh0U3RhdGVJRCcsCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtOZXh0U3RhdGVJRH0sCiAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUgVmFsaWRhdGVfUmVxdWlyZWQgJyAuICggJFBhcmFte05leHRTdGF0ZUludmFsaWR9IHx8ICcnICksCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25PdmVydmlldycgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTdGF0ZVRyYW5zaXRpb25BZGQnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgIyBnZW5lcmF0ZSBIVE1MCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRPdXRwdXQgLj0gJFBhcmFte05vdGV9IHx8ICcnOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbklUU01TdGF0ZU1hY2hpbmUnLAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCiMgcHJvdmlkZSBhIGZvcm0gZm9yIGNvbmZpcm1pbmcgdGhlIGRlbGV0aW9uIG9mIGEgc3RhdGUgdHJhbnNpdGlvbgpzdWIgX1N0YXRlVHJhbnNpdGlvbkRlbGV0ZVBhZ2VHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3JywKICAgICk7CgogICAgIyBnZXQgc3RhdGUgbWFjaGluZSBvYmplY3QKICAgIG15ICRTdGF0ZU1hY2hpbmVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVN0YXRlTWFjaGluZScpOwoKICAgICRQYXJhbXtTdGF0ZU5hbWV9ID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVMb29rdXAoCiAgICAgICAgQ2xhc3MgICA9PiAkUGFyYW17Q2xhc3N9LAogICAgICAgIFN0YXRlSUQgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgKSB8fCAnKlNUQVJUKic7CgogICAgJFBhcmFte05leHRTdGF0ZU5hbWV9ID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVMb29rdXAoCiAgICAgICAgQ2xhc3MgICA9PiAkUGFyYW17Q2xhc3N9LAogICAgICAgIFN0YXRlSUQgPT4gJFBhcmFte05leHRTdGF0ZUlEfSwKICAgICkgfHwgJypFTkQqJzsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTdGF0ZVRyYW5zaXRpb25EZWxldGUnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgIyBnZW5lcmF0ZSBIVE1MCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRPdXRwdXQgLj0gJFBhcmFte05vdGV9IHx8ICcnOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbklUU01TdGF0ZU1hY2hpbmUnLAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCiMgU2hvdyBhIHRhYmxlIG9mIGFsbCBzdGF0ZSB0cmFuc2l0aW9ucwpzdWIgX092ZXJ2aWV3U3RhdGVUcmFuc2l0aW9uc1BhZ2VHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3JywKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdTdGF0ZVRyYW5zaXRpb25zJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICMgZ2V0IHN0YXRlIG1hY2hpbmUgb2JqZWN0CiAgICBteSAkU3RhdGVNYWNoaW5lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01TdGF0ZU1hY2hpbmUnKTsKCiAgICAjIGxvb2t1cCBmb3Igc3RhdGUgbmFtZXMKICAgIG15ICVOZXh0U3RhdGVJRHMgPSAleyAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZVRyYW5zaXRpb25MaXN0KCBDbGFzcyA9PiAkUGFyYW17Q2xhc3N9ICkgfHwge30gfTsKCiAgICAjIGxvb3Agb3ZlciBhbGwgJ1N0YXRlJyBhbmQgJ05leHRTdGF0ZScgcGFpcnMgZm9yIHRoZSBjYXRhbG9nIGNsYXNzCiAgICBmb3IgbXkgJFN0YXRlSUQgKCBzb3J0IGtleXMgJU5leHRTdGF0ZUlEcyApIHsKCiAgICAgICAgZm9yIG15ICROZXh0U3RhdGVJRCAoIEB7ICROZXh0U3RhdGVJRHN7JFN0YXRlSUR9IH0gKSB7CgogICAgICAgICAgICAjIHN0YXRlIG5hbWVzCiAgICAgICAgICAgIG15ICRTdGF0ZU5hbWUgPSAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZUxvb2t1cCgKICAgICAgICAgICAgICAgIENsYXNzICAgPT4gJFBhcmFte0NsYXNzfSwKICAgICAgICAgICAgICAgIFN0YXRlSUQgPT4gJFN0YXRlSUQsCiAgICAgICAgICAgICkgfHwgJypTVEFSVConOwogICAgICAgICAgICBteSAkTmV4dFN0YXRlTmFtZSA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlTG9va3VwKAogICAgICAgICAgICAgICAgQ2xhc3MgICA9PiAkUGFyYW17Q2xhc3N9LAogICAgICAgICAgICAgICAgU3RhdGVJRCA9PiAkTmV4dFN0YXRlSUQsCiAgICAgICAgICAgICkgfHwgJypFTkQqJzsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3RhdGVUcmFuc2l0aW9uUm93JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICBTdGF0ZUlEICAgICAgID0+ICRTdGF0ZUlELAogICAgICAgICAgICAgICAgICAgIFN0YXRlTmFtZSAgICAgPT4gJFN0YXRlTmFtZSwKICAgICAgICAgICAgICAgICAgICBOZXh0U3RhdGVJRCAgID0+ICROZXh0U3RhdGVJRCwKICAgICAgICAgICAgICAgICAgICBOZXh0U3RhdGVOYW1lID0+ICROZXh0U3RhdGVOYW1lLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgb25seSBzaG93IHRoZSBkZWxldGUgbGluayBpZiBpdCBpcyBub3QgdGhlIHN0YXJ0IHN0YXRlCiAgICAgICAgICAgIGlmICggJFN0YXRlTmFtZSBuZSAnKlNUQVJUKicgKSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdTdGF0ZVRyYW5zaXRpb25EZWxldGVCdXR0b24nLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgICAgPT4gJFN0YXRlSUQsCiAgICAgICAgICAgICAgICAgICAgICAgIFN0YXRlTmFtZSAgICAgPT4gJFN0YXRlTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgTmV4dFN0YXRlSUQgICA9PiAkTmV4dFN0YXRlSUQsCiAgICAgICAgICAgICAgICAgICAgICAgIE5leHRTdGF0ZU5hbWUgPT4gJE5leHRTdGF0ZU5hbWUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBnZW5lcmF0ZSBIVE1MCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRPdXRwdXQgLj0gJFBhcmFte05vdGV9IHx8ICcnOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbklUU01TdGF0ZU1hY2hpbmUnLAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCiMgU2hvdyBhIGxpc3Qgb2YgcmVsZXZhbnQgb2JqZWN0IHR5cGVzCnN1YiBfT3ZlcnZpZXdDbGFzc2VzUGFnZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uQWRkU3RhdGUnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdDbGFzc2VzJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICMgcmVhZCB0aGUgY29uZmlnLAogICAgbXkgJENvbmZpZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTVN0YXRlTWFjaGluZTo6T2JqZWN0IikgfHwge307CgogICAgIyBwcmVwYXJlIHRoZSBjb25maWcgZm9yIGxvb2t1cCBieSBjbGFzcwogICAgIyB0aGUgaGFzaCBrZXlzIG9mICRDb25maWcgYXJlIG5vdCBzaWduaWZpY2FudAogICAgJFNlbGYtPntDb25maWdCeUNsYXNzfSA9IHt9OwogICAgZm9yIG15ICRIYXNoUmVmICggdmFsdWVzICV7JENvbmZpZ30gKSB7CiAgICAgICAgJFNlbGYtPntDb25maWdCeUNsYXNzfS0+eyAkSGFzaFJlZi0+e0NsYXNzfSB9ID0gJEhhc2hSZWY7CiAgICB9CgogICAgZm9yIG15ICRDbGFzcyAoIHNvcnQga2V5cyAleyAkU2VsZi0+e0NvbmZpZ0J5Q2xhc3N9IH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3Q2xhc3Nlc1JvdycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgQ2xhc3NTaG9ydE5hbWUgPT4gJFNlbGYtPntDb25maWdCeUNsYXNzfS0+eyRDbGFzc30tPntOYW1lfSwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgICAgID0+ICRDbGFzcywKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRTdGF0dXMgPSAkUGFyYW17J1N0YXR1cyd9IHx8ICcnOwogICAgbXkgJU5vdGlmaWNhdGlvbjsKICAgIGlmICggJFN0YXR1cyBlcSAnVXBkYXRlZCcgKSB7CiAgICAgICAgJU5vdGlmaWNhdGlvbiA9ICgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1N0YXRlIFRyYW5zaXRpb24gVXBkYXRlZCEnKSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkU3RhdHVzIGVxICdBZGRlZCcgKSB7CiAgICAgICAgJU5vdGlmaWNhdGlvbiA9ICgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1N0YXRlIFRyYW5zaXRpb24gQWRkZWQhJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdlbmVyYXRlIEhUTUwKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgaWYgKCVOb3RpZmljYXRpb24pIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSglTm90aWZpY2F0aW9uKSB8fCAnJzsKICAgIH0KICAgICRPdXRwdXQgLj0gJFBhcmFte05vdGV9IHx8ICcnOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbklUU01TdGF0ZU1hY2hpbmUnLAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMCABMemberSearch.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNBQk1lbWJlclNlYXJjaDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEpTT04gPSAnJzsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgc2VhcmNoIGZvciBwb3NzaWJsZSBDQUIgbWVtYmVycwogICAgaWYgKCAhJFNlbGYtPntTdWJhY3Rpb259ICkgewoKICAgICAgICAjIGdldCBwYXJhbSBvYmplY3QKICAgICAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgICAgICMgZ2V0IG5lZWRlZCBwYXJhbXMKICAgICAgICBteSAkU2VhcmNoID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Rlcm0nICkgICB8fCAnJzsKICAgICAgICBteSAkR3JvdXBzID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0dyb3VwcycgKSB8fCAnJzsKCiAgICAgICAgIyBnZXQgYWxsIG1lbWJlcnMgb2YgdGhlIGdyb3VwcwogICAgICAgIG15ICVHcm91cFVzZXJzOwogICAgICAgIGlmICgkR3JvdXBzKSB7CiAgICAgICAgICAgIG15IEBHcm91cE5hbWVzID0gc3BsaXQgLyxccysvLCAkR3JvdXBzOwoKICAgICAgICAgICAgZm9yIG15ICRHcm91cE5hbWUgKEBHcm91cE5hbWVzKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgZ3JvdXAgb2JqZWN0CiAgICAgICAgICAgICAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAgICAgICAgICAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgR3JvdXAgPT4gJEdyb3VwTmFtZSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBnZXQgdXNlciBncm91cHMKICAgICAgICAgICAgICAgIG15ICVVc2VycyA9ICRHcm91cE9iamVjdC0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgICAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdyb3VwSUQsCiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICA9PiAncm8nLAogICAgICAgICAgICAgICAgICAgIFJlc3VsdCAgPT4gJ0hBU0gnLAogICAgICAgICAgICAgICAgICAgIENhY2hlZCAgPT4gMSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgQFVzZXJJRHMgPSBrZXlzICVVc2VyczsKICAgICAgICAgICAgICAgIEBHcm91cFVzZXJze0BVc2VySURzfSA9IEBVc2VySURzOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGdldCB1c2VyIG9iamVjdAogICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgIyBnZXQgYWdlbnQgbGlzdAogICAgICAgIG15ICVVc2VyTGlzdCA9ICRVc2VyT2JqZWN0LT5Vc2VyU2VhcmNoKAogICAgICAgICAgICBTZWFyY2ggPT4gJFNlYXJjaCwKICAgICAgICAgICAgVmFsaWQgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBVc2VyU2VhcmNoKCkgcmV0dXJucyB2YWx1ZXMgd2l0aCBhIHRyYWlsaW5nIHNwYWNlLCBnZXQgcmlkIG9mIGl0CiAgICAgICAgZm9yIG15ICROYW1lICggdmFsdWVzICVVc2VyTGlzdCApIHsKICAgICAgICAgICAgJE5hbWUgPX4gc3sgXHMrIFx6IH17fXhtczsKICAgICAgICB9CgogICAgICAgICMgdGhlIGRhdGEgdGhhdCB3aWxsIGJlIHNlbnQgYXMgcmVzcG9uc2UKICAgICAgICBteSBARGF0YTsKCiAgICAgICAgVVNFUklEOgogICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRVc2VyTGlzdHskYX0gY21wICRVc2VyTGlzdHskYn0gfSBrZXlzICVVc2VyTGlzdCApIHsKCiAgICAgICAgICAgICMgaWYgZ3JvdXBzIGFyZSByZXF1aXJlZCBhbmQgdXNlciBpcyBub3QgbWVtYmVyIG9mIG9uZSBvZiB0aGUgZ3JvdXBzCiAgICAgICAgICAgICMgdGhlIHNraXAgdGhlIHVzZXIKICAgICAgICAgICAgbmV4dCBVU0VSSUQgaWYgJEdyb3VwcyAmJiAhJEdyb3VwVXNlcnN7JFVzZXJJRH07CgogICAgICAgICAgICAjIFRoZSB2YWx1ZXMgaW4gJVVzZXJMaXN0IGFyZSBpbiB0aGUgZm9ybTogJ21tIE1heCBNdXN0ZXJtYW5uJy4KICAgICAgICAgICAgIyBTbyBhc3NlbWJsZSBhIG5lYXRlciBzdHJpbmcgZm9yIGRpc3BsYXkuCiAgICAgICAgICAgICMgKEFjdHVhbGx5IFVzZXJTZWFyY2goKSBjb250YWlucyBjb2RlIGZvciBmb3JtYXRpbmcsIGJ1dCB0aGF0IGlzIHVzdWFsbHkgbm90IGNhbGxlZC4pCiAgICAgICAgICAgIG15ICVVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICBWYWxpZCAgPT4gJFBhcmFte1ZhbGlkfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgJFVzZXJWYWx1ZVBsYWluID0gc3ByaW50ZiAnIiVzIiA8JXM+JywKICAgICAgICAgICAgICAgICRVc2Vye1VzZXJGdWxsbmFtZX0sCiAgICAgICAgICAgICAgICAkVXNlcntVc2VyRW1haWx9OwoKICAgICAgICAgICAgcHVzaCBARGF0YSwgewogICAgICAgICAgICAgICAgVXNlcktleSAgID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICBVc2VyVmFsdWUgPT4gJFVzZXJWYWx1ZVBsYWluLAogICAgICAgICAgICAgICAgVXNlclR5cGUgID0+ICdDQUJBZ2VudHMnLAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgbXkgJEN1c3RvbWVyVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInKTsKCiAgICAgICAgIyBnZXQgY3VzdG9tZXIgbGlzdAogICAgICAgIG15ICVDdXN0b21lclVzZXJMaXN0ID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJTZWFyY2goCiAgICAgICAgICAgIFNlYXJjaCA9PiAkU2VhcmNoLAogICAgICAgICAgICBWYWxpZCAgPT4gMSwKICAgICAgICApOwoKICAgICAgICBDVVNUT01FUlVTRVJMT0dJTjoKICAgICAgICBmb3IgbXkgJEN1c3RvbWVyVXNlckxvZ2luICgKICAgICAgICAgICAgc29ydCB7ICRDdXN0b21lclVzZXJMaXN0eyRhfSBjbXAgJEN1c3RvbWVyVXNlckxpc3R7JGJ9IH0KICAgICAgICAgICAga2V5cyAlQ3VzdG9tZXJVc2VyTGlzdAogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBpZiBncm91cHMgYXJlIHJlcXVpcmVkIGFuZCB1c2VyIGlzIG5vdCBtZW1iZXIgb2Ygb25lIG9mIHRoZSBncm91cHMKICAgICAgICAgICAgIyB0aGUgc2tpcCB0aGUgdXNlcgogICAgICAgICAgICBuZXh0IFVTRVJJRCBpZiAkR3JvdXBzICYmICEkR3JvdXBVc2Vyc3skQ3VzdG9tZXJVc2VyTG9naW59OwoKICAgICAgICAgICAgbXkgJUN1c3RvbWVyVXNlciA9ICRDdXN0b21lclVzZXJPYmplY3QtPkN1c3RvbWVyVXNlckRhdGFHZXQoCiAgICAgICAgICAgICAgICBVc2VyID0+ICRDdXN0b21lclVzZXJMb2dpbiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICRDdXN0b21lclVzZXJWYWx1ZVBsYWluID0gJyInIC4gJEN1c3RvbWVyVXNlcntVc2VyRnVsbG5hbWV9IC4gJyIgPCcgLiAkQ3VzdG9tZXJVc2Vye1VzZXJFbWFpbH0gLiAnPic7CgogICAgICAgICAgICBwdXNoIEBEYXRhLCB7CiAgICAgICAgICAgICAgICBVc2VyS2V5ICAgPT4gJEN1c3RvbWVyVXNlckxvZ2luLAogICAgICAgICAgICAgICAgVXNlclZhbHVlID0+ICRDdXN0b21lclVzZXJWYWx1ZVBsYWluLAogICAgICAgICAgICAgICAgVXNlclR5cGUgID0+ICdDQUJDdXN0b21lcnMnLAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBKU09OIG91dHB1dAogICAgICAgICRKU09OID0gJExheW91dE9iamVjdC0+SlNPTkVuY29kZSgKICAgICAgICAgICAgRGF0YSA9PiBcQERhdGEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNlbmQgSlNPTiByZXNwb25zZQogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW47IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICBDb250ZW50ICAgICA9PiAkSlNPTiB8fCAnJywKICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChange.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGVycm9yIHNjcmVlbgogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyEnLCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSApLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBzdG9yZSBsYXN0IHNjcmVlbiwgdXNlZCBmb3IgYmFja2xpbmtzCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuQ2hhbmdlcycsCiAgICAgICAgVmFsdWUgICAgID0+ICRTZWxmLT57UmVxdWVzdGVkVVJMfSwKICAgICk7CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgc29ydGluZyBwYXJhbWV0ZXJzCiAgICBteSAkU29ydEJ5ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRCeScgKQogICAgICAgIHx8ICRTZWxmLT57Q29uZmlnfS0+eydTb3J0Qnk6OkRlZmF1bHQnfQogICAgICAgIHx8ICdDaGFuZ2VOdW1iZXInOwoKICAgICMgZ2V0IG9yZGVyaW5nIHBhcmFtZXRlcnMKICAgIG15ICRPcmRlckJ5ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ09yZGVyQnknICkKICAgICAgICB8fCAkU2VsZi0+e0NvbmZpZ30tPnsnT3JkZXI6OkRlZmF1bHQnfQogICAgICAgIHx8ICdVcCc7CgogICAgbXkgQFNvcnRCeUFycmF5ICA9ICgkU29ydEJ5KTsKICAgIG15IEBPcmRlckJ5QXJyYXkgPSAoJE9yZGVyQnkpOwoKICAgICMgaW52ZXN0aWdhdGUgcmVmcmVzaAogICAgbXkgJFJlZnJlc2ggPSAkU2VsZi0+e1VzZXJSZWZyZXNoVGltZX0gPyA2MCAqICRTZWxmLT57VXNlclJlZnJlc2hUaW1lfSA6IHVuZGVmOwoKICAgICMgc3RhcnRpbmcgd2l0aCBwYWdlIC4uLgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlciggUmVmcmVzaCA9PiAkUmVmcmVzaCApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAkTGF5b3V0T2JqZWN0LT5QcmludCggT3V0cHV0ID0+IFwkT3V0cHV0ICk7CiAgICAkT3V0cHV0ID0gJyc7CgogICAgIyBmaW5kIG91dCB3aGljaCBjb2x1bW5zIHNob3VsZCBiZSBzaG93bgogICAgbXkgQFNob3dDb2x1bW5zOwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTaG93Q29sdW1uc30gKSB7CgogICAgICAgICMgZ2V0IGFsbCBwb3NzaWJsZSBjb2x1bW5zIGZyb20gY29uZmlnCiAgICAgICAgbXkgJVBvc3NpYmxlQ29sdW1uID0gJXsgJFNlbGYtPntDb25maWd9LT57U2hvd0NvbHVtbnN9IH07CgogICAgICAgICMgZ2V0IHRoZSBjb2x1bW4gbmFtZXMgdGhhdCBzaG91bGQgYmUgc2hvd24KICAgICAgICBAU2hvd0NvbHVtbnMgPSBncmVwIHsgJFBvc3NpYmxlQ29sdW1ueyRffSB9IHNvcnQga2V5cyAlUG9zc2libGVDb2x1bW47CiAgICB9CgogICAgIyB0byBzdG9yZSB0aGUgZmlsdGVycwogICAgbXkgJUZpbHRlcnM7CgogICAgIyBzZXQgb3RoZXIgZmlsdGVycyBiYXNlZCBvbiBjaGFuZ2Ugc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57J0ZpbHRlcjo6Q2hhbmdlU3RhdGVzJ30gKSB7CgogICAgICAgICMgZGVmaW5lIHBvc2l0aW9uIG9mIHRoZSBmaWx0ZXIgaW4gdGhlIGZyb250ZW5kCiAgICAgICAgbXkgJFByaW9Db3VudGVyID0gMTAwMDsKCiAgICAgICAgIyBnZXQgYWxsIGNoYW5nZSBzdGF0ZXMgdGhhdCBzaG91bGQgYmUgdXNlZCBhcyBmaWx0ZXJzCiAgICAgICAgQ0hBTkdFX1NUQVRFOgogICAgICAgIGZvciBteSAkQ2hhbmdlU3RhdGUgKCBAeyAkU2VsZi0+e0NvbmZpZ30tPnsnRmlsdGVyOjpDaGFuZ2VTdGF0ZXMnfSB9ICkgewoKICAgICAgICAgICAgIyBkbyBub3QgdXNlIGVtcHR5IGNoYW5nZSBzdGF0ZXMKICAgICAgICAgICAgbmV4dCBDSEFOR0VfU1RBVEUgaWYgISRDaGFuZ2VTdGF0ZTsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgc3RhdGUgaXMgdmFsaWQgYnkgbG9va2luZyB1cCB0aGUgc3RhdGUgaWQKICAgICAgICAgICAgbXkgJENoYW5nZVN0YXRlSUQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTdGF0ZUxvb2t1cCgKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlID0+ICRDaGFuZ2VTdGF0ZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZG8gbm90IHVzZSBpbnZhbGlkIGNoYW5nZSBzdGF0ZXMKICAgICAgICAgICAgbmV4dCBDSEFOR0VfU1RBVEUgaWYgISRDaGFuZ2VTdGF0ZUlEOwoKICAgICAgICAgICAgIyBpbmNyZWFzZSB0aGUgUHJpb0NvdW50ZXIKICAgICAgICAgICAgJFByaW9Db3VudGVyKys7CgogICAgICAgICAgICAjIGFkZCBmaWx0ZXIgd2l0aCBwYXJhbXMgZm9yIHRoZSBzZWFyY2ggbWV0aG9kCiAgICAgICAgICAgICRGaWx0ZXJzeyRDaGFuZ2VTdGF0ZX0gPSB7CiAgICAgICAgICAgICAgICBOYW1lICAgPT4gJENoYW5nZVN0YXRlLAogICAgICAgICAgICAgICAgUHJpbyAgID0+ICRQcmlvQ291bnRlciwKICAgICAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVzICAgICA9PiBbJENoYW5nZVN0YXRlXSwKICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFxAU29ydEJ5QXJyYXksCiAgICAgICAgICAgICAgICAgICAgT3JkZXJCeURpcmVjdGlvbiA9PiBcQE9yZGVyQnlBcnJheSwKICAgICAgICAgICAgICAgICAgICBMaW1pdCAgICAgICAgICAgID0+IDEwMDAsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBmaWx0ZXIgYW5kIHZpZXcgcGFyYW1zCiAgICAkU2VsZi0+e0ZpbHRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRmlsdGVyJyApIHx8ICdBbGwnOwogICAgJFNlbGYtPntWaWV3fSAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1ZpZXcnICkgICB8fCAnJzsKCiAgICAjIGlmIG9ubHkgb25lIGZpbHRlciBleGlzdHMKICAgIGlmICggc2NhbGFyIGtleXMgJUZpbHRlcnMgPT0gMSApIHsKCiAgICAgICAgIyBnZXQgdGhlIG5hbWUgb2YgdGhlIG9ubHkgZmlsdGVyCiAgICAgICAgbXkgKCRGaWx0ZXJOYW1lKSA9IGtleXMgJUZpbHRlcnM7CgogICAgICAgICMgYWN0aXZhdGUgdGhpcyBmaWx0ZXIKICAgICAgICAkU2VsZi0+e0ZpbHRlcn0gPSAkRmlsdGVyTmFtZTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGFkZCBkZWZhdWx0IGZpbHRlciwgd2hpY2ggc2hvd3MgYWxsIGl0ZW1zCiAgICAgICAgJEZpbHRlcnN7QWxsfSA9IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdBbGwnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gXEBTb3J0QnlBcnJheSwKICAgICAgICAgICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gXEBPcmRlckJ5QXJyYXksCiAgICAgICAgICAgICAgICBMaW1pdCAgICAgICAgICAgID0+IDEwMDAsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgfSwKICAgICAgICB9OwogICAgfQoKICAgICMgY2hlY2sgaWYgZmlsdGVyIGlzIHZhbGlkCiAgICBpZiAoICEkRmlsdGVyc3sgJFNlbGYtPntGaWx0ZXJ9IH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdJbnZhbGlkIEZpbHRlcjogJXMhJywgJFNlbGYtPntGaWx0ZXJ9ICksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNlYXJjaCBjaGFuZ2VzIHdoaWNoIG1hdGNoIHRoZSBzZWxlY3RlZCBmaWx0ZXIKICAgIG15ICRJRHNSZWYgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgJXsgJEZpbHRlcnN7ICRTZWxmLT57RmlsdGVyfSB9LT57U2VhcmNofSB9LAogICAgKTsKCiAgICAjIGRpc3BsYXkgYWxsIG5hdmJhciBmaWx0ZXJzCiAgICBteSAlTmF2QmFyRmlsdGVyOwogICAgZm9yIG15ICRGaWx0ZXIgKCBzb3J0IGtleXMgJUZpbHRlcnMgKSB7CgogICAgICAgICMgY291bnQgdGhlIG51bWJlciBvZiBpdGVtcyBmb3IgZWFjaCBmaWx0ZXIKICAgICAgICBteSAkQ291bnQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICBSZXN1bHQgPT4gJ0NPVU5UJywKICAgICAgICApOwoKICAgICAgICAjIGRpc3BsYXkgdGhlIG5hdmJhciBmaWx0ZXIKICAgICAgICAkTmF2QmFyRmlsdGVyeyAkRmlsdGVyc3skRmlsdGVyfS0+e1ByaW99IH0gPSB7CiAgICAgICAgICAgIENvdW50ICA9PiAkQ291bnQsCiAgICAgICAgICAgIEZpbHRlciA9PiAkRmlsdGVyLAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfSB9LAogICAgICAgIH07CiAgICB9CgogICAgIyBzaG93IHRoZSBsaXN0CiAgICBteSAkTGlua1BhZ2UgPQogICAgICAgICdGaWx0ZXI9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntGaWx0ZXJ9ICkKICAgICAgICAuICc7Vmlldz0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e1ZpZXd9ICkKICAgICAgICAuICc7U29ydEJ5PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTb3J0QnkgKQogICAgICAgIC4gJztPcmRlckJ5PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRPcmRlckJ5ICkKICAgICAgICAuICc7JzsKICAgIG15ICRMaW5rU29ydCA9CiAgICAgICAgJ0ZpbHRlcj0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e0ZpbHRlcn0gKQogICAgICAgIC4gJztWaWV3PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57Vmlld30gKQogICAgICAgIC4gJzsnOwogICAgbXkgJExpbmtGaWx0ZXIgPQogICAgICAgICdTb3J0Qnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApCiAgICAgICAgLiAnO09yZGVyQnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKQogICAgICAgIC4gJztWaWV3PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57Vmlld30gKQogICAgICAgIC4gJzsnOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5JVFNNQ2hhbmdlTGlzdFNob3coCiAgICAgICAgQ2hhbmdlSURzID0+ICRJRHNSZWYsCiAgICAgICAgVG90YWwgICAgID0+IHNjYWxhciBAeyRJRHNSZWZ9LAoKICAgICAgICBWaWV3ID0+ICRTZWxmLT57Vmlld30sCgogICAgICAgIEZpbHRlciAgICAgPT4gJFNlbGYtPntGaWx0ZXJ9LAogICAgICAgIEZpbHRlcnMgICAgPT4gXCVOYXZCYXJGaWx0ZXIsCiAgICAgICAgRmlsdGVyTGluayA9PiAkTGlua0ZpbHRlciwKCiAgICAgICAgVGl0bGVOYW1lID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnT3ZlcnZpZXc6IElUU00gQ2hhbmdlcycpLAoKICAgICAgICBUaXRsZVZhbHVlID0+ICRGaWx0ZXJzeyAkU2VsZi0+e0ZpbHRlcn0gfS0+e05hbWV9LAoKICAgICAgICBFbnYgICAgICA9PiAkU2VsZiwKICAgICAgICBMaW5rUGFnZSA9PiAkTGlua1BhZ2UsCiAgICAgICAgTGlua1NvcnQgPT4gJExpbmtTb3J0LAoKICAgICAgICBTaG93Q29sdW1ucyA9PiBcQFNob3dDb2x1bW5zLAogICAgICAgIFNvcnRCeSAgICAgID0+ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApLAogICAgICAgIE9yZGVyQnkgICAgID0+ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeAdd.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZUFkZDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRDb25maWdPYmplY3QtPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBBY3Rpb24gPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgc3RvcmUgbmVlZGVkIHBhcmFtZXRlcnMgaW4gJUdldFBhcmFtIHRvIG1ha2UgaXQgcmVsb2FkYWJsZQogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRQYXJhbU5hbWUgKAogICAgICAgIHF3KENoYW5nZVRpdGxlIERlc2NyaXB0aW9uIEp1c3RpZmljYXRpb24gVGlja2V0SUQgQ2F0ZWdvcnlJRCBJbXBhY3RJRCBQcmlvcml0eUlEIEF0dGFjaG1lbnRVcGxvYWQgRmlsZUlEKQogICAgICAgICkKICAgIHsKICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CiAgICB9CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZHMgZnJvbSBQYXJhbU9iamVjdAogICAgbXkgJUR5bmFtaWNGaWVsZFZhbHVlczsKCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBteSAkRHluYW1pY0ZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH0gfHwge30sCiAgICApOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgYmFja2VuZCBvYmplY3QKICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIGV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZnJvbSB0aGUgd2ViIHJlcXVlc3QgYW5kIGFkZCB0aGUgcHJlZml4CiAgICAgICAgJER5bmFtaWNGaWVsZFZhbHVlc3sgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0KICAgICAgICAgICAgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkVmFsdWVHZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgKTsKICAgIH0KCiAgICAjIHN0b3JlIHRpbWUgcmVsYXRlZCBmaWVsZHMgaW4gJUdldFBhcmFtCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1JlcXVlc3RlZFRpbWV9ICkgewogICAgICAgIGZvciBteSAkVGltZVBhcnQgKHF3KFVzZWQgWWVhciBNb250aCBEYXkgSG91ciBNaW51dGUpKSB7CiAgICAgICAgICAgIG15ICRQYXJhbU5hbWUgPSAnUmVxdWVzdGVkVGltZScgLiAkVGltZVBhcnQ7CiAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1OYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbU5hbWUgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZSBmb3IgY2F0ZWdvcnkKICAgICRQYXJhbXtDYXRlZ29yeUlEfSA9ICRHZXRQYXJhbXtDYXRlZ29yeUlEfTsKICAgIGlmICggISRQYXJhbXtDYXRlZ29yeUlEfSApIHsKICAgICAgICBteSAkRGVmYXVsdENhdGVnb3J5ID0gJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNQ2hhbmdlOjpDYXRlZ29yeTo6RGVmYXVsdCcpOwogICAgICAgICRQYXJhbXtDYXRlZ29yeUlEfSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUNJUExvb2t1cCgKICAgICAgICAgICAgQ0lQICA9PiAkRGVmYXVsdENhdGVnb3J5LAogICAgICAgICAgICBUeXBlID0+ICdDYXRlZ29yeScsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNldCBkZWZhdWx0IHZhbHVlIGZvciBpbXBhY3QKICAgICRQYXJhbXtJbXBhY3RJRH0gPSAkR2V0UGFyYW17SW1wYWN0SUR9OwogICAgaWYgKCAhJFBhcmFte0ltcGFjdElEfSApIHsKICAgICAgICBteSAkRGVmYXVsdEltcGFjdCA9ICRDb25maWdPYmplY3QtPkdldCgnSVRTTUNoYW5nZTo6SW1wYWN0OjpEZWZhdWx0Jyk7CiAgICAgICAgJFBhcmFte0ltcGFjdElEfSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUNJUExvb2t1cCgKICAgICAgICAgICAgQ0lQICA9PiAkRGVmYXVsdEltcGFjdCwKICAgICAgICAgICAgVHlwZSA9PiAnSW1wYWN0JywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHVwbG9hZCBjYWNoZSBvYmplY3QKICAgIG15ICRVcGxvYWRDYWNoZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlVwbG9hZENhY2hlJyk7CgogICAgIyBnZXQgZm9ybSBpZAogICAgJFNlbGYtPntGb3JtSUR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0Zvcm1JRCcgKTsKCiAgICAjIGNyZWF0ZSBmb3JtIGlkCiAgICBpZiAoICEkU2VsZi0+e0Zvcm1JRH0gKSB7CiAgICAgICAgJFNlbGYtPntGb3JtSUR9ID0gJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURDcmVhdGUoKTsKICAgIH0KCiAgICAjIGdldCBsb2cgb2JqZWN0CiAgICBteSAkTG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwoKICAgICMgUmVtZW1iZXIgdGhlIHJlYXNvbiB3aHkgc2F2aW5nIHdhcyBub3QgYXR0ZW1wdGVkLgogICAgbXkgJVZhbGlkYXRpb25FcnJvcjsKCiAgICAjIHRoZSBUaWNrZXRJRCBjYW4gYmUgdmFsaWRhdGVkIGV2ZW4gd2l0aG91dCB0aGUgU3ViYWN0aW9uICdTYXZlJywKICAgICMgYXMgaXQgaXMgcGFzc2VkIGFzIEdFVC1wYXJhbSBvciBpbiBhIGhpZGRlbiBmaWVsZC4KICAgIGlmICggJEdldFBhcmFte1RpY2tldElEfSApIHsKCiAgICAgICAgIyBnZXQgdGlja2V0IGRhdGEKICAgICAgICBteSAlVGlja2V0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpLT5UaWNrZXRHZXQoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRHZXRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBpZiB0aWNrZXQgZXhpc3RzCiAgICAgICAgaWYgKCAhJVRpY2tldCApIHsKCiAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICdUaWNrZXQgd2l0aCBUaWNrZXRJRCAlcyBkb2VzIG5vdCBleGlzdCEnLCAkR2V0UGFyYW17VGlja2V0SUR9CiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgbGlzdCBvZiByZWxldmFudCB0aWNrZXQgdHlwZXMKICAgICAgICBteSAkQWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzID0gJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMnKTsKCiAgICAgICAgIyBjaGVjayB0aGUgbGlzdCBvZiByZWxldmFudCB0aWNrZXQgdHlwZXMKICAgICAgICBpZiAoCiAgICAgICAgICAgICEkQWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzCiAgICAgICAgICAgIHx8IHJlZiAkQWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIG5lICdBUlJBWScKICAgICAgICAgICAgfHwgIUB7JEFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc30KICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgICMgc2V0IGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgbXkgJE1lc3NhZ2UgPSBUcmFuc2xhdGFibGUoJ01pc3Npbmcgc3lzY29uZmlnIG9wdGlvbiAiSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIiEnKTsKCiAgICAgICAgICAgICMgbG9nIGVycm9yCiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCByZWxldmFudCB0aWNrZXQgdHlwZXMKICAgICAgICBteSAlSXNSZWxldmFudCA9IG1hcCB7ICRfID0+IDEgfSBAeyRBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXN9OwoKICAgICAgICAjIGNoZWNrIHdoZXRoZXIgdGhlIHRpY2tldCdzIHR5cGUgaXMgcmVsZXZhbnQKICAgICAgICBpZiAoICEkSXNSZWxldmFudHsgJFRpY2tldHtUeXBlfSB9ICkgewoKICAgICAgICAgICAgIyBzZXQgZXJyb3IgbWVzc2FnZQogICAgICAgICAgICBteSAkTWVzc2FnZSA9ICJJbnZhbGlkIHRpY2tldCB0eXBlICckVGlja2V0e1R5cGV9JyBmb3IgZGlyZWN0bHkgbGlua2luZyBhIHRpY2tldCB3aXRoIGEgY2hhbmdlLiAiCiAgICAgICAgICAgICAgICAuICdPbmx5IHRoZSBmb2xsb3dpbmcgdGlja2V0IHR5cGUocykgYXJlIGFsbG93ZWQgZm9yIHRoaXMgb3BlcmF0aW9uOiAnCiAgICAgICAgICAgICAgICAuIGpvaW4gJywnLCBAeyRBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXN9OwoKICAgICAgICAgICAgIyBsb2cgZXJyb3IKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRNZXNzYWdlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgQ0lQIGFsbG9jYXRlIG9iamVjdAogICAgbXkgJENJUEFsbG9jYXRlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01DaGFuZ2VDSVBBbGxvY2F0ZScpOwoKICAgICMgcGVyZm9ybSB0aGUgYWRkaW5nCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU2F2ZScgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgICMgdGhlIHRpdGxlIGlzIHJlcXVpcmVkCiAgICAgICAgaWYgKCAhJEdldFBhcmFte0NoYW5nZVRpdGxlfSApIHsKICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcntDaGFuZ2VUaXRsZVNlcnZlckVycm9yfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIENJUAogICAgICAgIGZvciBteSAkVHlwZSAocXcoQ2F0ZWdvcnkgSW1wYWN0IFByaW9yaXR5KSkgewogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17IiR7VHlwZX1JRCJ9IHx8ICRHZXRQYXJhbXsiJHtUeXBlfUlEIn0gIX4gbXsgXEEgXGQrIFx6IH14bXMgKSB7CiAgICAgICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9yeyAkVHlwZSAuICdJRFNlcnZlckVycm9yJyB9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIG15ICRDSVBJc1ZhbGlkID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQ0lQTG9va3VwKAogICAgICAgICAgICAgICAgICAgIElEICAgPT4gJEdldFBhcmFteyIke1R5cGV9SUQifSwKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICRUeXBlLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoICEkQ0lQSXNWYWxpZCApIHsKICAgICAgICAgICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9yeyAkVHlwZSAuICdJRFNlcnZlckVycm9yJyB9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayB0aGUgcmVxdWVzdGVkIHRpbWUKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1JlcXVlc3RlZFRpbWV9ICYmICRHZXRQYXJhbXtSZXF1ZXN0ZWRUaW1lVXNlZH0gKSB7CgogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkR2V0UGFyYW17UmVxdWVzdGVkVGltZVllYXJ9CiAgICAgICAgICAgICAgICAmJiAkR2V0UGFyYW17UmVxdWVzdGVkVGltZU1vbnRofQogICAgICAgICAgICAgICAgJiYgJEdldFBhcmFte1JlcXVlc3RlZFRpbWVEYXl9CiAgICAgICAgICAgICAgICAmJiBkZWZpbmVkICRHZXRQYXJhbXtSZXF1ZXN0ZWRUaW1lSG91cn0KICAgICAgICAgICAgICAgICYmIGRlZmluZWQgJEdldFBhcmFte1JlcXVlc3RlZFRpbWVNaW51dGV9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIHRyYW5zZm9ybSBjaGFuZ2UgcmVxdWVzdGVkIHRpbWUsIHRpbWUgc3RhbXAgYmFzZWQgb24gdXNlciB0aW1lIHpvbmUKICAgICAgICAgICAgICAgICVHZXRQYXJhbSA9ICRMYXlvdXRPYmplY3QtPlRyYW5zZm9ybURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgICAgIFByZWZpeCA9PiAnUmVxdWVzdGVkVGltZScsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgZm9ybWF0IGFzIHRpbWVzdGFtcCwgd2hlbiBhbGwgcmVxdWlyZWQgdGltZSBwYXJhbXMgd2VyZSBwYXNzZWQKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtSZXF1ZXN0ZWRUaW1lfSA9IHNwcmludGYgJyUwNGQtJTAyZC0lMDJkICUwMmQ6JTAyZDowMCcsCiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFte1JlcXVlc3RlZFRpbWVZZWFyfSwKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17UmVxdWVzdGVkVGltZU1vbnRofSwKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17UmVxdWVzdGVkVGltZURheX0sCiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFte1JlcXVlc3RlZFRpbWVIb3VyfSwKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17UmVxdWVzdGVkVGltZU1pbnV0ZX07CgogICAgICAgICAgICAgICAgIyBzYW5pdHkgY2hlY2sgb2YgdGhlIGFzc2VtYmxlZCB0aW1lc3RhbXAKICAgICAgICAgICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJEdldFBhcmFte1JlcXVlc3RlZFRpbWV9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgZG8gbm90IHNhdmUgd2hlbiB0aW1lIGlzIGludmFsaWQKICAgICAgICAgICAgICAgIGlmICggISRTeXN0ZW1UaW1lICkgewogICAgICAgICAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7UmVxdWVzdGVkVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIGl0IHdhcyBpbmRpY2F0ZWQgdGhhdCB0aGUgcmVxdWVzdGVkIHRpbWUgc2hvdWxkIGJlIHNldCwKICAgICAgICAgICAgICAgICMgYnV0IGF0IGxlYXN0IG9uZSBvZiB0aGUgcmVxdWlyZWQgdGltZSBwYXJhbXMgaXMgbWlzc2luZwogICAgICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcntSZXF1ZXN0ZWRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgIG15ICRWYWxpZGF0aW9uUmVzdWx0ID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkVkaXRGaWVsZFZhbHVlVmFsaWRhdGUoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFZhbGlkYXRpb25SZXN1bHQpICkgewogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAnQ291bGQgbm90IHBlcmZvcm0gdmFsaWRhdGlvbiBvbiBmaWVsZCAlcyEnLCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9CiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHByb3BhZ2F0ZSB2YWxpZGF0aW9uIGVycm9yIHRvIHRoZSBFcnJvciB2YXJpYWJsZSB0byBiZSBkZXRlY3RlZCBieSB0aGUgZnJvbnRlbmQKICAgICAgICAgICAgaWYgKCAkVmFsaWRhdGlvblJlc3VsdC0+e1NlcnZlckVycm9yfSApIHsKICAgICAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gJyBTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgYWRkIG9ubHkgd2hlbiB0aGVyZSBhcmUgbm8gaW5wdXQgdmFsaWRhdGlvbiBlcnJvcnMKICAgICAgICBpZiAoICElVmFsaWRhdGlvbkVycm9yICkgewoKICAgICAgICAgICAgbXkgJUFkZGl0aW9uYWxQYXJhbTsKCiAgICAgICAgICAgICMgYWRkIHJlcXVlc3RlZCB0aW1lIGlmIGNvbmZpZ3VyZWQKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntSZXF1ZXN0ZWRUaW1lfSApIHsKICAgICAgICAgICAgICAgICRBZGRpdGlvbmFsUGFyYW17UmVxdWVzdGVkVGltZX0gPSAkR2V0UGFyYW17UmVxdWVzdGVkVGltZX07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY3JlYXRlIHRoZSBjaGFuZ2UKICAgICAgICAgICAgbXkgJENoYW5nZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAkR2V0UGFyYW17RGVzY3JpcHRpb259LAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAkR2V0UGFyYW17SnVzdGlmaWNhdGlvbn0sCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRHZXRQYXJhbXtDaGFuZ2VUaXRsZX0sCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEICAgID0+ICRHZXRQYXJhbXtDYXRlZ29yeUlEfSwKICAgICAgICAgICAgICAgIEltcGFjdElEICAgICAgPT4gJEdldFBhcmFte0ltcGFjdElEfSwKICAgICAgICAgICAgICAgIFByaW9yaXR5SUQgICAgPT4gJEdldFBhcmFte1ByaW9yaXR5SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAlQWRkaXRpb25hbFBhcmFtLAogICAgICAgICAgICAgICAgJUR5bmFtaWNGaWVsZFZhbHVlcywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgYWRkaW5nIHdhcyBzdWNjZXNzZnVsCiAgICAgICAgICAgIGlmICgkQ2hhbmdlSUQpIHsKCiAgICAgICAgICAgICAgICAjIGlmIHRoZSBjaGFuZ2UgYWRkIG1hc2sgd2FzIGNhbGxlZCBmcm9tIHRoZSB0aWNrZXQgem9vbQogICAgICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17VGlja2V0SUR9ICkgewoKICAgICAgICAgICAgICAgICAgICAjIGxpbmsgdGlja2V0IHdpdGggbmV3bHkgY3JlYXRlZCBjaGFuZ2UKICAgICAgICAgICAgICAgICAgICBteSAkTGlua1N1Y2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcpLT5MaW5rQWRkKAogICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2VPYmplY3QgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZUtleSAgICA9PiAkR2V0UGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRPYmplY3QgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRLZXkgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgPT4gJ05vcm1hbCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFN0YXRlICAgICAgICA9PiAnVmFsaWQnLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgbGluayBjb3VsZCBub3QgYmUgYWRkZWQKICAgICAgICAgICAgICAgICAgICBpZiAoICEkTGlua1N1Y2Nlc3MgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIHNldCBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRNZXNzYWdlID0gIkNoYW5nZSB3aXRoIENoYW5nZUlEICRDaGFuZ2VJRCB3YXMgc3VjY2Vzc2Z1bGx5IGFkZGVkLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJidXQgYSBsaW5rIHRvIFRpY2tldCB3aXRoIFRpY2tldElEICRHZXRQYXJhbXtUaWNrZXRJRH0gY291bGQgbm90IGJlIGNyZWF0ZWQhIjsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgbG9nIGVycm9yCiAgICAgICAgICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgbW92ZSBhdHRhY2htZW50cyBmcm9tIGNhY2hlIHRvIHZpcnR1YWwgZnMKICAgICAgICAgICAgICAgIG15IEBDYWNoZWRBdHRhY2htZW50cyA9ICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlER2V0QWxsRmlsZXNEYXRhKAogICAgICAgICAgICAgICAgICAgIEZvcm1JRCA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGZvciBteSAkQ2FjaGVkQXR0YWNobWVudCAoQENhY2hlZEF0dGFjaG1lbnRzKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBdHRhY2htZW50QWRkKAogICAgICAgICAgICAgICAgICAgICAgICAleyRDYWNoZWRBdHRhY2htZW50fSwKICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBkZWxldGUgZmlsZSBmcm9tIGNhY2hlIGlmIG1vdmUgd2FzIHN1Y2Nlc3NmdWwKICAgICAgICAgICAgICAgICAgICBpZiAoJFN1Y2Nlc3MpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgcmV3cml0ZSBVUkwgZm9yIGlubGluZSBpbWFnZXMKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkQ2FjaGVkQXR0YWNobWVudC0+e0NvbnRlbnRJRH0gKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBnZXQgdGhlIGNoYW5nZSBkYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkQ2hhbmdlRGF0YSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHBpY3R1cmUgdXJsIGluIHVwbG9hZCBjYWNoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFNlYXJjaCA9ICJBY3Rpb249UGljdHVyZVVwbG9hZCAuKyBGb3JtSUQ9JFNlbGYtPntGb3JtSUR9IC4rICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJDb250ZW50SUQ9JENhY2hlZEF0dGFjaG1lbnQtPntDb250ZW50SUR9IjsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHBpY3R1cmUgdXJsIGluIGNoYW5nZSBhdHR0YWNobWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFJlcGxhY2UgPSAiQWN0aW9uPUFnZW50SVRTTUNoYW5nZVpvb207U3ViYWN0aW9uPURvd25sb2FkQXR0YWNobWVudDsiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiRmlsZW5hbWU9JENhY2hlZEF0dGFjaG1lbnQtPntGaWxlbmFtZX07Q2hhbmdlSUQ9JENoYW5nZUlEIjsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlcGxhY2UgdXJscwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENoYW5nZURhdGEtPntEZXNjcmlwdGlvbn0gICA9fiBzeyRTZWFyY2h9eyRSZXBsYWNlfXhtczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDaGFuZ2VEYXRhLT57SnVzdGlmaWNhdGlvbn0gPX4gc3skU2VhcmNofXskUmVwbGFjZX14bXM7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB1cGRhdGUgY2hhbmdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICRDaGFuZ2VEYXRhLT57RGVzY3JpcHRpb259LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gJENoYW5nZURhdGEtPntKdXN0aWZpY2F0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IHVwZGF0ZSB0aGUgaW5saW5lIGltYWdlIFVSTHMgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiZm9yIENoYW5nZUlEICckQ2hhbmdlSUQnISIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURSZW1vdmVGaWxlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9ybUlEID0+ICRTZWxmLT57Rm9ybUlEfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVJRCA9PiAkQ2FjaGVkQXR0YWNobWVudC0+e0ZpbGVJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Nhbm5vdCBtb3ZlIEZpbGUgZnJvbSBDYWNoZSB0byBWaXJ0dWFsRlMnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiKCR7JENhY2hlZEF0dGFjaG1lbnR9e0ZpbGVuYW1lfSkiLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHJlZGlyZWN0IHRvIHpvb20gbWFzayBvZiB0aGUgbmV3IGNoYW5nZSwgd2hlbiBhZGRpbmcgd2FzIHN1Y2Nlc3NmdWwKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFnZW50SVRTTUNoYW5nZVpvb207Q2hhbmdlSUQ9JENoYW5nZUlEIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UsIHdoZW4gYWRkaW5nIGZhaWxlZAogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdXYXMgbm90IGFibGUgdG8gYWRkIGNoYW5nZSEnKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgaGFuZGxlIEFKQVhVcGRhdGUKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBSkFYVXBkYXRlJyApIHsKCiAgICAgICAgIyBnZXQgcHJpb3JpdGllcwogICAgICAgIG15ICRQcmlvcml0aWVzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlUG9zc2libGVDSVBHZXQoCiAgICAgICAgICAgIFR5cGUgICA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNlbGVjdGVkIHByaW9yaXR5CiAgICAgICAgbXkgJFNlbGVjdGVkUHJpb3JpdHkgPSAkQ0lQQWxsb2NhdGVPYmplY3QtPlByaW9yaXR5QWxsb2NhdGlvbkdldCgKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkR2V0UGFyYW17Q2F0ZWdvcnlJRH0sCiAgICAgICAgICAgIEltcGFjdElEICAgPT4gJEdldFBhcmFte0ltcGFjdElEfSwKICAgICAgICApOwoKICAgICAgICAjIGJ1aWxkIGpzb24KICAgICAgICBteSAkSlNPTiA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uSlNPTigKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICdQcmlvcml0eUlEJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICA9PiAkUHJpb3JpdGllcywKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZElEICA9PiAkU2VsZWN0ZWRQcmlvcml0eSwKICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiA9PiAxLAogICAgICAgICAgICAgICAgICAgIE1heCAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgKTsKCiAgICAgICAgIyByZXR1cm4ganNvbgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD0nIC4gJExheW91dE9iamVjdC0+e0NoYXJzZXR9LAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkSlNPTiwKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgICAgIE5vQ2FjaGUgICAgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGlmIHRoZXJlIHdhcyBhbiBhdHRhY2htZW50IGRlbGV0ZSBvciB1cGxvYWQKICAgICMgd2UgZG8gbm90IHdhbnQgdG8gc2hvdyB2YWxpZGF0aW9uIGVycm9ycyBmb3Igb3RoZXIgZmllbGRzCiAgICBpZiAoICRWYWxpZGF0aW9uRXJyb3J7QXR0YWNobWVudH0gKSB7CiAgICAgICAgJVZhbGlkYXRpb25FcnJvciA9ICgpOwogICAgfQoKICAgICMgZ2V0IGFsbCBhdHRhY2htZW50cyBtZXRhIGRhdGEKICAgIG15IEBBdHRhY2htZW50cyA9ICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlER2V0QWxsRmlsZXNNZXRhKAogICAgICAgIEZvcm1JRCA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICApOwoKICAgICMgb3V0cHV0IGhlYWRlcgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiAnQWRkJywKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAjIGNoZWNrIGlmIHJlcXVlc3RlZCB0aW1lIHNob3VsZCBiZSBzaG93bgogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntSZXF1ZXN0ZWRUaW1lfSApIHsKCiAgICAgICAgIyB0aW1lIHBlcmlvZCB0aGF0IGNhbiBiZSBzZWxlY3RlZCBmcm9tIHRoZSBHVUkKICAgICAgICBteSAlVGltZVBlcmlvZCA9ICV7ICRDb25maWdPYmplY3QtPkdldCgnSVRTTVdvcmtPcmRlcjo6VGltZVBlcmlvZCcpIH07CgogICAgICAgICMgYWRkIHNlbGVjdGlvbiBmb3IgdGhlIHRpbWUKICAgICAgICBteSAkVGltZVNlbGVjdGlvblN0cmluZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkRGF0ZVNlbGVjdGlvbigKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBGb3JtYXQgICAgICAgICAgICAgICAgPT4gJ0RhdGVJbnB1dEZvcm1hdExvbmcnLAogICAgICAgICAgICBQcmVmaXggICAgICAgICAgICAgICAgPT4gJ1JlcXVlc3RlZFRpbWUnLAogICAgICAgICAgICBSZXF1ZXN0ZWRUaW1lT3B0aW9uYWwgPT4gMSwKICAgICAgICAgICAgUmVxdWVzdGVkVGltZUNsYXNzICAgID0+ICdWYWxpZGF0ZSAnIC4gKCAkVmFsaWRhdGlvbkVycm9ye1JlcXVlc3RlZFRpbWVJbnZhbGlkfSB8fCAnJyApLAogICAgICAgICAgICBWYWxpZGF0ZSAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgJVRpbWVQZXJpb2QsCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IHRpbWUgZmllbGRzCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1JlcXVlc3RlZFRpbWUnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWRUaW1lU3RyaW5nJyA9PiAkVGltZVNlbGVjdGlvblN0cmluZywKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgY3JlYXRlIGRyb3Bkb3duIGZvciB0aGUgY2F0ZWdvcnkKICAgICMgYWxsIGNhdGVnb3JpZXMgYXJlIHNlbGVjdGFibGUKICAgICMgd2hlbiB0aGUgY2F0ZWdvcnkgaXMgY2hhbmdlZCwgYSBuZXcgcHJpb3JpdHkgaXMgcHJvcG9zZWQKICAgIG15ICRDYXRlZ29yaWVzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlUG9zc2libGVDSVBHZXQoCiAgICAgICAgVHlwZSAgID0+ICdDYXRlZ29yeScsCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CiAgICAkUGFyYW17Q2F0ZWdvcnlTZWxlY3Rpb25TdHJpbmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiAkQ2F0ZWdvcmllcywKICAgICAgICBOYW1lICAgICAgID0+ICdDYXRlZ29yeUlEJywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtDYXRlZ29yeUlEfSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIGNyZWF0ZSBkcm9wZG93biBmb3IgdGhlIGltcGFjdAogICAgIyBhbGwgaW1wYWN0cyBhcmUgc2VsZWN0YWJsZQogICAgIyB3aGVuIHRoZSBpbXBhY3QgaXMgY2hhbmdlZCwgYSBuZXcgcHJpb3JpdHkgaXMgcHJvcG9zZWQKICAgIG15ICRJbXBhY3RzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlUG9zc2libGVDSVBHZXQoCiAgICAgICAgVHlwZSAgID0+ICdJbXBhY3QnLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwogICAgJFBhcmFte0ltcGFjdFNlbGVjdGlvblN0cmluZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+ICRJbXBhY3RzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ0ltcGFjdElEJywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtJbXBhY3RJRH0sCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBjcmVhdGUgZHJvcGRvd24gZm9yIHByaW9yaXR5LAogICAgIyBhbGwgcHJpb3JpdGllcyBhcmUgc2VsZWN0YWJsZQogICAgIyB0aGUgZGVmYXVsdCB2YWx1ZSBtaWdodCBkZXBlbmQgb24gY2F0ZWdvcnkgYW5kIGltcGFjdAogICAgbXkgJFByaW9yaXRpZXMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VQb3NzaWJsZUNJUEdldCgKICAgICAgICBUeXBlICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKICAgIG15ICRTZWxlY3RlZFByaW9yaXR5ID0gJEdldFBhcmFte1ByaW9yaXR5SUR9CiAgICAgICAgfHwgJENJUEFsbG9jYXRlT2JqZWN0LT5Qcmlvcml0eUFsbG9jYXRpb25HZXQoCiAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkUGFyYW17Q2F0ZWdvcnlJRH0sCiAgICAgICAgSW1wYWN0SUQgICA9PiAkUGFyYW17SW1wYWN0SUR9LAogICAgICAgICk7CiAgICAkUGFyYW17UHJpb3JpdHlTZWxlY3Rpb25TdHJpbmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiAkUHJpb3JpdGllcywKICAgICAgICBOYW1lICAgICAgID0+ICdQcmlvcml0eUlEJywKICAgICAgICBTZWxlY3RlZElEID0+ICRTZWxlY3RlZFByaW9yaXR5LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CgogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgIyBnZXQgZHluYW1pYyBmaWVsZHMgZGVmYXVsdHMgaWYgcGFnZSBpcyBsb2FkZWQgdGhlIGZpcnN0IHRpbWUKICAgICAgICBpZiAoICEkU2VsZi0+e1N1YmFjdGlvbn0gKSB7CiAgICAgICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9CiAgICAgICAgICAgICAgICA9ICREeW5hbWljRmllbGRDb25maWctPntDb25maWd9LT57RGVmYXVsdFZhbHVlfSB8fCAnJzsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGZpZWxkIGh0bWwKICAgICAgICBteSAkRHluYW1pY0ZpZWxkSFRNTCA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5FZGl0RmllbGRSZW5kZXIoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgIFNlcnZlckVycm9yICAgICAgICA9PiAkVmFsaWRhdGlvbkVycm9yeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSB8fCAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH0tPnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPT0gMiwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgIEFKQVhVcGRhdGUgICAgICAgICA9PiAwLAogICAgICAgICk7CgogICAgICAgICMgc2tpcCBmaWVsZHMgdGhhdCBIVE1MIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZEhUTUwpOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgICAgICBMYWJlbCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0xhYmVsfSwKICAgICAgICAgICAgICAgIEZpZWxkID0+ICREeW5hbWljRmllbGRIVE1MLT57RmllbGR9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgZXhhbXBsZSBvZiBkeW5hbWljIGZpZWxkcyBvcmRlciBjdXN0b21pemF0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9LAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIE5hbWUgID0+ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgICAgIExhYmVsID0+ICREeW5hbWljRmllbGRIVE1MLT57TGFiZWx9LAogICAgICAgICAgICAgICAgRmllbGQgPT4gJER5bmFtaWNGaWVsZEhUTUwtPntGaWVsZH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgdGhlIGF0dGFjaG1lbnQgdXBsb2FkIGJ1dHRvbgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQXR0YWNobWVudFVwbG9hZCcsCiAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICk7CgogICAgIyBhZGQgcmljaCB0ZXh0IGVkaXRvciBqYXZhc2NyaXB0CiAgICAjIG9ubHkgaWYgYWN0aXZhdGVkIGFuZCB0aGUgYnJvd3NlciBjYW4gaGFuZGxlIGl0CiAgICAjIG90aGVyd2lzZSBqdXN0IGEgdGV4dGFyZWEgaXMgc2hvd24KICAgIGlmICggJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+U2V0UmljaFRleHRQYXJhbWV0ZXJzKAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICB9CgogICAgIyBzdGFydCB0ZW1wbGF0ZSBvdXRwdXQKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNQ2hhbmdlQWRkJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJVZhbGlkYXRpb25FcnJvciwKICAgICAgICAgICAgRm9ybUlEID0+ICRTZWxmLT57Rm9ybUlEfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCBmb290ZXIKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeAddFromTemplate.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRDb25maWdPYmplY3QtPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBBY3Rpb24gPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgc3RvcmUgbmVlZGVkIHBhcmFtZXRlcnMgaW4gJUdldFBhcmFtIHRvIG1ha2UgaXQgcmVsb2FkYWJsZQogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRQYXJhbU5hbWUgKAogICAgICAgIHF3KE1vdmVUaW1lVHlwZSBNb3ZlVGltZVllYXIgTW92ZVRpbWVNb250aCBNb3ZlVGltZURheSBNb3ZlVGltZUhvdXIgTW92ZVRpbWVNaW51dGUgVGlja2V0SUQgVGVtcGxhdGVJRCkKICAgICAgICApCiAgICB7CiAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtTmFtZSApOwogICAgfQoKICAgICMgc3RvcmUgdGltZSByZWxhdGVkIGZpZWxkcyBpbiAlR2V0UGFyYW0KICAgIGZvciBteSAkVGltZVBhcnQgKHF3KFVzZWQgWWVhciBNb250aCBEYXkgSG91ciBNaW51dGUpKSB7CiAgICAgICAgbXkgJFBhcmFtTmFtZSA9ICdNb3ZlVGltZScgLiAkVGltZVBhcnQ7CiAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtTmFtZSApOwogICAgfQoKICAgICMgZ2V0IGxvZyBvYmplY3QKICAgIG15ICRMb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CgogICAgIyBSZW1lbWJlciB0aGUgcmVhc29uIHdoeSBzYXZpbmcgd2FzIG5vdCBhdHRlbXB0ZWQuCiAgICBteSAlVmFsaWRhdGlvbkVycm9yOwoKICAgICMgdGhlIFRpY2tldElEIGNhbiBiZSB2YWxpZGF0ZWQgZXZlbiB3aXRob3V0IHRoZSBTdWJhY3Rpb24gJ1NhdmUnLAogICAgIyBhcyBpdCBpcyBwYXNzZWQgYXMgR0VULXBhcmFtIG9yIGluIGEgaGlkZGVuIGZpZWxkLgogICAgaWYgKCAkR2V0UGFyYW17VGlja2V0SUR9ICkgewoKICAgICAgICAjIGdldCB0aWNrZXQgZGF0YQogICAgICAgIG15ICVUaWNrZXQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPlRpY2tldEdldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJEdldFBhcmFte1RpY2tldElEfSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGlmIHRpY2tldCBleGlzdHMKICAgICAgICBpZiAoICElVGlja2V0ICkgewoKICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgJ1RpY2tldCB3aXRoIFRpY2tldElEICVzIGRvZXMgbm90IGV4aXN0IScsICRHZXRQYXJhbXtUaWNrZXRJRH0KICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBsaXN0IG9mIHJlbGV2YW50IHRpY2tldCB0eXBlcwogICAgICAgIG15ICRBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcycpOwoKICAgICAgICAjIGNoZWNrIHRoZSBsaXN0IG9mIHJlbGV2YW50IHRpY2tldCB0eXBlcwogICAgICAgIGlmICgKICAgICAgICAgICAgISRBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMKICAgICAgICAgICAgfHwgcmVmICRBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMgbmUgJ0FSUkFZJwogICAgICAgICAgICB8fCAhQHskQWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzfQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBzZXQgZXJyb3IgbWVzc2FnZQogICAgICAgICAgICBteSAkTWVzc2FnZSA9IFRyYW5zbGF0YWJsZSgnTWlzc2luZyBzeXNjb25maWcgb3B0aW9uICJJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMiIScpOwoKICAgICAgICAgICAgIyBsb2cgZXJyb3IKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRNZXNzYWdlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHJlbGV2YW50IHRpY2tldCB0eXBlcwogICAgICAgIG15ICVJc1JlbGV2YW50ID0gbWFwIHsgJF8gPT4gMSB9IEB7JEFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc307CgogICAgICAgICMgY2hlY2sgd2hldGhlciB0aGUgdGlja2V0J3MgdHlwZSBpcyByZWxldmFudAogICAgICAgIGlmICggISRJc1JlbGV2YW50eyAkVGlja2V0e1R5cGV9IH0gKSB7CgogICAgICAgICAgICAjIHNldCBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgIG15ICRNZXNzYWdlID0gIkludmFsaWQgdGlja2V0IHR5cGUgJyRUaWNrZXR7VHlwZX0nIGZvciBkaXJlY3RseSBsaW5raW5nIGEgdGlja2V0IHdpdGggYSBjaGFuZ2UuICIKICAgICAgICAgICAgICAgIC4gJ09ubHkgdGhlIGZvbGxvd2luZyB0aWNrZXQgdHlwZShzKSBhcmUgYWxsb3dlZCBmb3IgdGhpcyBvcGVyYXRpb246ICcKICAgICAgICAgICAgICAgIC4gam9pbiAnLCcsIEB7JEFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc307CgogICAgICAgICAgICAjIGxvZyBlcnJvcgogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZQogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCB0ZW1wbGF0ZSBvYmplY3QKICAgIG15ICRUZW1wbGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpOwoKICAgICMgY3JlYXRlIGNoYW5nZSBmcm9tIHRlbXBsYXRlCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ3JlYXRlRnJvbVRlbXBsYXRlJyApIHsKCiAgICAgICAgbXkgJE5ld1RpbWU7CgogICAgICAgICMgY2hlY2sgdmFsaWRpdHkgb2YgdGhlIHRpbWUgdHlwZQogICAgICAgIG15ICRNb3ZlVGltZVR5cGUgPSAkR2V0UGFyYW17TW92ZVRpbWVUeXBlfTsKICAgICAgICBpZiAoCiAgICAgICAgICAgICFkZWZpbmVkICRNb3ZlVGltZVR5cGUKICAgICAgICAgICAgfHwgKCAkTW92ZVRpbWVUeXBlIG5lICdQbGFubmVkU3RhcnRUaW1lJyAmJiAkTW92ZVRpbWVUeXBlIG5lICdQbGFubmVkRW5kVGltZScgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9ye01vdmVUaW1lVHlwZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgdGhlIGNvbXBsZXRlbmVzcyBvZiB0aGUgdGltZSBwYXJhbWV0ZXIgbGlzdCwKICAgICAgICAjIG9ubHkgaG91ciBhbmQgbWludXRlIGFyZSBhbGxvd2VkIHRvIGJlICcwJwogICAgICAgIGlmICgKICAgICAgICAgICAgISRHZXRQYXJhbXtNb3ZlVGltZVllYXJ9CiAgICAgICAgICAgIHx8ICEkR2V0UGFyYW17TW92ZVRpbWVNb250aH0KICAgICAgICAgICAgfHwgISRHZXRQYXJhbXtNb3ZlVGltZURheX0KICAgICAgICAgICAgfHwgIWRlZmluZWQgJEdldFBhcmFte01vdmVUaW1lSG91cn0KICAgICAgICAgICAgfHwgIWRlZmluZWQgJEdldFBhcmFte01vdmVUaW1lTWludXRlfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9ye01vdmVUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgdGhlIHN5c3RlbSB0aW1lIGZyb20gdGhlIGlucHV0LCBpZiBpdCBjYW4ndCBiZSBkZXRlcm1pbmVkIHdlIGhhdmUgYSB2YWxpZGF0aW9uIGVycm9yCiAgICAgICAgaWYgKCAhJVZhbGlkYXRpb25FcnJvciApIHsKCiAgICAgICAgICAgICMgdHJhbnNmb3JtIGNoYW5nZSBwbGFubmVkIHRpbWUsIHRpbWUgc3RhbXAgYmFzZWQgb24gdXNlciB0aW1lIHpvbmUKICAgICAgICAgICAgJUdldFBhcmFtID0gJExheW91dE9iamVjdC0+VHJhbnNmb3JtRGF0ZVNlbGVjdGlvbigKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgIFByZWZpeCA9PiAnTW92ZVRpbWUnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBmb3JtYXQgYXMgdGltZXN0YW1wCiAgICAgICAgICAgIG15ICRQbGFubmVkVGltZSA9IHNwcmludGYgJyUwNGQtJTAyZC0lMDJkICUwMmQ6JTAyZDowMCcsCiAgICAgICAgICAgICAgICAkR2V0UGFyYW17TW92ZVRpbWVZZWFyfSwKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtNb3ZlVGltZU1vbnRofSwKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtNb3ZlVGltZURheX0sCiAgICAgICAgICAgICAgICAkR2V0UGFyYW17TW92ZVRpbWVIb3VyfSwKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtNb3ZlVGltZU1pbnV0ZX07CgogICAgICAgICAgICAjIHNhbml0eSBjaGVjayBvZiB0aGUgYXNzZW1ibGVkIHRpbWVzdGFtcAogICAgICAgICAgICAkTmV3VGltZSA9ICRTZWxmLT5fVGltZVN0YW1wMkVwb2NoKAogICAgICAgICAgICAgICAgVGltZVN0YW1wID0+ICRQbGFubmVkVGltZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggISROZXdUaW1lICkgewogICAgICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcntNb3ZlVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayB3aGV0aGVyIGEgdGVtcGxhdGUgd2FzIHNlbGVjdGVkCiAgICAgICAgaWYgKCAhJEdldFBhcmFte1RlbXBsYXRlSUR9ICkgewogICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9ye1RlbXBsYXRlSURTZXJ2ZXJFcnJvcn0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJVZhbGlkYXRpb25FcnJvciApIHsKCiAgICAgICAgICAgICMgY3JlYXRlIGNoYW5nZSBiYXNlZCBvbiB0aGUgdGVtcGxhdGUKICAgICAgICAgICAgbXkgJENoYW5nZUlEID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZURlU2VyaWFsaXplKAogICAgICAgICAgICAgICAgVGVtcGxhdGVJRCAgICAgID0+ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUZW1wbGF0ZUlEJyApLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgIE5ld1RpbWVJbkVwb2NoZSA9PiAkTmV3VGltZSwKICAgICAgICAgICAgICAgIE1vdmVUaW1lVHlwZSAgICA9PiAkR2V0UGFyYW17TW92ZVRpbWVUeXBlfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hhbmdlIGNvdWxkIG5vdCBiZSBjcmVhdGVkCiAgICAgICAgICAgIGlmICggISRDaGFuZ2VJRCApIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZSwgd2hlbiBhZGRpbmcgZmFpbGVkCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJyksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiB0aGUgY2hhbmdlIGFkZCBtYXNrIHdhcyBjYWxsZWQgZnJvbSB0aGUgdGlja2V0IHpvb20KICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17VGlja2V0SUR9ICkgewoKICAgICAgICAgICAgICAgICMgbGluayB0aWNrZXQgd2l0aCBuZXdseSBjcmVhdGVkIGNoYW5nZQogICAgICAgICAgICAgICAgbXkgJExpbmtTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnKS0+TGlua0FkZCgKICAgICAgICAgICAgICAgICAgICBTb3VyY2VPYmplY3QgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICAgICAgU291cmNlS2V5ICAgID0+ICRHZXRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgVGFyZ2V0T2JqZWN0ID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICAgICAgICAgICAgICBUYXJnZXRLZXkgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICAgICAgICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGxpbmsgY291bGQgbm90IGJlIGFkZGVkCiAgICAgICAgICAgICAgICBpZiAoICEkTGlua1N1Y2Nlc3MgKSB7CgogICAgICAgICAgICAgICAgICAgICMgc2V0IGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICBteSAkTWVzc2FnZSA9ICJDaGFuZ2Ugd2l0aCBDaGFuZ2VJRCAkQ2hhbmdlSUQgd2FzIHN1Y2Nlc3NmdWxseSBhZGRlZCwgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJidXQgYSBsaW5rIHRvIFRpY2tldCB3aXRoIFRpY2tldElEICRHZXRQYXJhbXtUaWNrZXRJRH0gY291bGQgbm90IGJlIGNyZWF0ZWQhIjsKCiAgICAgICAgICAgICAgICAgICAgIyBsb2cgZXJyb3IKICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRNZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyByZWRpcmVjdCB0byB6b29tIG1hc2ssIHdoZW4gYWRkaW5nIHdhcyBzdWNjZXNzZnVsCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0kQ2hhbmdlSUQiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGJ1aWxkIHRlbXBsYXRlIGRyb3Bkb3duCiAgICBteSAkVGVtcGxhdGVMaXN0ID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZUxpc3QoCiAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgQ29tbWVudExlbmd0aCA9PiAxNSwKICAgICAgICBUZW1wbGF0ZVR5cGUgID0+ICdJVFNNQ2hhbmdlJywKICAgICk7CiAgICBteSAkVGVtcGxhdGVTZWxlY3Rpb25TdHJpbmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBOYW1lICAgICAgICAgPT4gJ1RlbXBsYXRlSUQnLAogICAgICAgIERhdGEgICAgICAgICA9PiAkVGVtcGxhdGVMaXN0LAogICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplIFZhbGlkYXRlX1JlcXVpcmVkICcgLiAoICRWYWxpZGF0aW9uRXJyb3J7VGVtcGxhdGVJRFNlcnZlckVycm9yfSB8fCAnJyApLAogICAgICAgIFRyZWVWaWV3ICAgICA9PiAxLAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgKTsKCiAgICAjIGJ1aWxkIGRyb3AtZG93biB3aXRoIHRpbWUgdHlwZXMKICAgIG15ICRNb3ZlVGltZVR5cGVTZWxlY3Rpb25TdHJpbmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBOYW1lID0+ICdNb3ZlVGltZVR5cGUnLAogICAgICAgIERhdGEgPT4gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAnUGxhbm5lZFN0YXJ0VGltZScsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAnUGxhbm5lZFN0YXJ0VGltZScKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJ1BsYW5uZWRFbmRUaW1lJywKICAgICAgICAgICAgICAgIFZhbHVlID0+ICdQbGFubmVkRW5kVGltZScKICAgICAgICAgICAgfSwKICAgICAgICBdLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJEdldFBhcmFte01vdmVUaW1lVHlwZX0gfHwgJ1BsYW5uZWRTdGFydFRpbWUnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZSBWYWxpZGF0ZV9SZXF1aXJlZCAnIC4gKCAkVmFsaWRhdGlvbkVycm9ye01vdmVUaW1lVHlwZUludmFsaWR9IHx8ICcnICksCiAgICApOwoKICAgICMgdGltZSBwZXJpb2QgdGhhdCBjYW4gYmUgc2VsZWN0ZWQgZnJvbSB0aGUgR1VJCiAgICBteSAlVGltZVBlcmlvZCA9ICV7ICRDb25maWdPYmplY3QtPkdldCgnSVRTTVdvcmtPcmRlcjo6VGltZVBlcmlvZCcpIH07CgogICAgIyBhZGQgc2VsZWN0aW9uIGZvciB0aGUgdGltZQogICAgbXkgJE1vdmVUaW1lU2VsZWN0aW9uU3RyaW5nID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVHZXRQYXJhbSwKICAgICAgICBGb3JtYXQgICAgICAgID0+ICdEYXRlSW5wdXRGb3JtYXRMb25nJywKICAgICAgICBQcmVmaXggICAgICAgID0+ICdNb3ZlVGltZScsCiAgICAgICAgTW92ZVRpbWVDbGFzcyA9PiAnVmFsaWRhdGVfUmVxdWlyZWQgJyAuICggJFZhbGlkYXRpb25FcnJvcntNb3ZlVGltZUludmFsaWR9IHx8ICcnICksCiAgICAgICAgVmFsaWRhdGUgICAgICA9PiAxLAogICAgICAgICVUaW1lUGVyaW9kLAogICAgKTsKCiAgICAjIG91dHB1dCBoZWFkZXIKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gJ0FkZCcsCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgIyBnZXQgZm9ybSBpZAogICAgJFNlbGYtPntGb3JtSUR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0Zvcm1JRCcgKTsKCiAgICAjIGNyZWF0ZSBmb3JtIGlkCiAgICBpZiAoICEkU2VsZi0+e0Zvcm1JRH0gKSB7CiAgICAgICAgJFNlbGYtPntGb3JtSUR9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6VXBsb2FkQ2FjaGUnKS0+Rm9ybUlEQ3JlYXRlKCk7CiAgICB9CgogICAgIyBzdGFydCB0ZW1wbGF0ZSBvdXRwdXQKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJVZhbGlkYXRpb25FcnJvciwKICAgICAgICAgICAgRm9ybUlEICAgICAgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57Rm9ybUlEfSwKICAgICAgICAgICAgVGVtcGxhdGVTZWxlY3Rpb25TdHJpbmcgICAgID0+ICRUZW1wbGF0ZVNlbGVjdGlvblN0cmluZywKICAgICAgICAgICAgTW92ZVRpbWVUeXBlU2VsZWN0aW9uU3RyaW5nID0+ICRNb3ZlVGltZVR5cGVTZWxlY3Rpb25TdHJpbmcsCiAgICAgICAgICAgIE1vdmVUaW1lU2VsZWN0aW9uU3RyaW5nICAgICA9PiAkTW92ZVRpbWVTZWxlY3Rpb25TdHJpbmcsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBhZGQgZm9vdGVyCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX1RpbWVTdGFtcDJFcG9jaCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0sICkgPSBAXzsKCiAgICBteSAkVGltZVN0YW1wICAgICAgPSAkUGFyYW17VGltZVN0YW1wfTsKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgU3RyaW5nID0+ICRUaW1lU3RhbXAsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkRGF0ZVRpbWVPYmplY3Q7CgogICAgcmV0dXJuICREYXRlVGltZU9iamVjdC0+VG9FcG9jaCgpOwp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeCABTemplate.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZUNBQlRlbXBsYXRlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgbmVlZGVkIENoYW5nZUlECiAgICBteSAkQ2hhbmdlSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ2hhbmdlSUQnICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJENoYW5nZUlEICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05vIENoYW5nZUlEIGlzIGdpdmVuIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIklUU01DaGFuZ2U6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJENoYW5nZU9iamVjdC0+UGVybWlzc2lvbigKICAgICAgICBUeXBlICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0KICAgICAgICAgICAgKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZQogICAgbXkgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGVycm9yIHNjcmVlbgogICAgaWYgKCAhJENoYW5nZSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnTm8gY2hhbmdlIGZvdW5kIGZvciBjaGFuZ2VJRCAlcy4nLCAkQ2hhbmdlSUQgKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBzdG9yZSBuZWVkZWQgcGFyYW1ldGVycyBpbiAlR2V0UGFyYW0gdG8gbWFrZSBpdCByZWxvYWRhYmxlCiAgICBteSAlR2V0UGFyYW07CiAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoVGVtcGxhdGVOYW1lIENvbW1lbnQgVmFsaWRJRCkpIHsKICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CiAgICB9CgogICAgIyByZXR1cm4gU2VydmVyRXJyb3IgY2xhc3Mgd2hlbiBuZWVkZWQKICAgIG15ICVTZXJ2ZXJFcnJvcjsKCiAgICAjIGFkZCBhIHRlbXBsYXRlCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkVGVtcGxhdGUnICkgewoKICAgICAgICAjIGNoZWNrIHZhbGlkaXR5IG9mIHRoZSB0ZW1wbGF0ZSBuYW1lCiAgICAgICAgaWYgKCAhJEdldFBhcmFte1RlbXBsYXRlTmFtZX0gKSB7CiAgICAgICAgICAgICRTZXJ2ZXJFcnJvcntUZW1wbGF0ZU5hbWVTZXJ2ZXJFcnJvcn0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJVNlcnZlckVycm9yICkgewoKICAgICAgICAgICAgIyBnZXQgdGVtcGxhdGUgb2JqZWN0CiAgICAgICAgICAgIG15ICRUZW1wbGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpOwoKICAgICAgICAgICAgIyBzZXJpYWxpemUgdGhlIGNoYW5nZQogICAgICAgICAgICBteSAkVGVtcGxhdGVDb250ZW50ID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZVNlcmlhbGl6ZSgKICAgICAgICAgICAgICAgIFRlbXBsYXRlVHlwZSA9PiAnQ0FCJywKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgaWYgKCAhJFRlbXBsYXRlQ29udGVudCApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgJ1RoZSBDQUIgb2YgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJywgJENoYW5nZUlECiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHN0b3JlIHRoZSBzZXJpYWxpemVkIGNoYW5nZQogICAgICAgICAgICBteSAkVGVtcGxhdGVJRCA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVBZGQoCiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJEdldFBhcmFte1RlbXBsYXRlTmFtZX0sCiAgICAgICAgICAgICAgICBDb21tZW50ICAgICAgPT4gJEdldFBhcmFte0NvbW1lbnR9LAogICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgID0+ICRHZXRQYXJhbXtWYWxpZElEfSwKICAgICAgICAgICAgICAgIFRlbXBsYXRlVHlwZSA9PiAnQ0FCJywKICAgICAgICAgICAgICAgIENvbnRlbnQgICAgICA9PiAkVGVtcGxhdGVDb250ZW50LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgIGlmICggISRUZW1wbGF0ZUlEICkgewogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGV2ZXJ5dGhpbmcgd2VudCB3ZWxsLCByZWRpcmVjdCB0byB6b29tIG1hc2sKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnM7Q2hhbmdlSUQ9JENoYW5nZUlEIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnVGVtcGxhdGUnKSwKICAgICAgICBUeXBlICA9PiAnU21hbGwnLAogICAgKTsKCiAgICAjIGdldCB2YWxpZCBvYmplY3QKICAgIG15ICRWYWxpZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpOwoKICAgIG15ICRWYWxpZFNlbGVjdGlvblN0cmluZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAkVmFsaWRPYmplY3QtPlZhbGlkTGlzdCgpLAogICAgICAgIH0sCiAgICAgICAgTmFtZSAgICAgICA9PiAnVmFsaWRJRCcsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkR2V0UGFyYW17VmFsaWRJRH0gfHwgKCAkVmFsaWRPYmplY3QtPlZhbGlkSURzR2V0KCkgKVswXSwKICAgICAgICBTb3J0ICAgICAgID0+ICdOdW1lcmljS2V5JywKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIHN0YXJ0IHRlbXBsYXRlIG91dHB1dAogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudElUU01DaGFuZ2VDQUJUZW1wbGF0ZScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlU2VydmVyRXJyb3IsCiAgICAgICAgICAgIENoYW5nZUlEICAgICAgICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVmFsaWRTZWxlY3Rpb25TdHJpbmcgPT4gJFZhbGlkU2VsZWN0aW9uU3RyaW5nLAogICAgICAgICAgICBDaGFuZ2VOdW1iZXIgICAgICAgICA9PiAkQ2hhbmdlLT57Q2hhbmdlTnVtYmVyfSwKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgICAgICAgPT4gJENoYW5nZS0+e0NoYW5nZVRpdGxlfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCBmb290ZXIKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCBUeXBlID0+ICdTbWFsbCcgKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeCondition.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZUNvbmRpdGlvbjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgc3RvcmUgbmVlZGVkIHBhcmFtZXRlcnMgaW4gJUdldFBhcmFtIHRvIG1ha2UgdGhpcyBwYWdlIHJlbG9hZGFibGUKICAgIG15ICVHZXRQYXJhbTsKICAgIGZvciBteSAkUGFyYW1OYW1lIChxdyhDaGFuZ2VJRCBDb25kaXRpb25JRCBBZGRDb25kaXRpb24pKSB7CiAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtTmFtZSApOwogICAgfQoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRHZXRQYXJhbXtDaGFuZ2VJRH0gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJyksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBvYmplY3QKICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBDaGFuZ2VJRCA9PiAkR2V0UGFyYW17Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0KICAgICAgICAgICAgKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBkYXRhCiAgICBteSAkQ2hhbmdlRGF0YSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkR2V0UGFyYW17Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBpZiBjaGFuZ2UgaXMgZm91bmQKICAgIGlmICggISRDaGFuZ2VEYXRhICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlIScsICRHZXRQYXJhbXtDaGFuZ2VJRH0gKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgdmFsaWQgbGlzdAogICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKCiAgICAjIGFkZCBjb25kaXRpb24gYnV0dG9uIHdhcyBwcmVzc2VkCiAgICBpZiAoICRHZXRQYXJhbXtBZGRDb25kaXRpb259ICkgewoKICAgICAgICAjIHJlZGlyZWN0IHRvIGNvbmRpdGlvbiBlZGl0IG1hc2sKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+CiAgICAgICAgICAgICAgICAiQWN0aW9uPUFnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQ7Q2hhbmdlSUQ9JEdldFBhcmFte0NoYW5nZUlEfTtDb25kaXRpb25JRD1ORVciLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY29uZGl0aW9uIG9iamVjdAogICAgbXkgJENvbmRpdGlvbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyk7CgogICAgIyBnZXQgYWxsIGNvbmRpdGlvbiBpZHMgZm9yIHRoZSBnaXZlbiBjaGFuZ2UgaWQsIGluY2x1ZGluZyBpbnZhbGlkIGNvbmRpdGlvbnMKICAgIG15ICRDb25kaXRpb25JRHNSZWYgPSAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25MaXN0KAogICAgICAgIENoYW5nZUlEID0+ICRHZXRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgVmFsaWQgICAgPT4gMCwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgYSBjb25kaXRpb24gc2hvdWxkIGJlIGRlbGV0ZWQKICAgIGZvciBteSAkQ29uZGl0aW9uSUQgKCBAeyRDb25kaXRpb25JRHNSZWZ9ICkgewogICAgICAgIGlmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0RlbGV0ZUNvbmRpdGlvbklEOjonIC4gJENvbmRpdGlvbklEICkgKSB7CgogICAgICAgICAgICAjIGRlbGV0ZSB0aGUgY29uZGl0aW9uCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJENvbmRpdGlvbk9iamVjdC0+Q29uZGl0aW9uRGVsZXRlKAogICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJENvbmRpdGlvbklELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCBkZWxldGUgQ29uZGl0aW9uSUQgJXMhJywgJENvbmRpdGlvbklEICksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyByZWRpcmVjdCB0byBvdmVydmlldwogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtDaGFuZ2VJRD0kR2V0UGFyYW17Q2hhbmdlSUR9IiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBvbmx5IHNob3cgdGhlIHRhYmxlIGhlYWRsaW5lIGlmIHRoZXJlIGNvbmRpdGlvbnMgdG8gYmUgc2hvd24KICAgIGlmICggQHskQ29uZGl0aW9uSURzUmVmfSApIHsKCiAgICAgICAgIyBvdXRwdXQgb3ZlcnZpZXcKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICV7JENoYW5nZURhdGF9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgZm9yIG15ICRDb25kaXRpb25JRCAoIEB7JENvbmRpdGlvbklEc1JlZn0gKSB7CgogICAgICAgICMgZ2V0IGNvbmRpdGlvbiBkYXRhCiAgICAgICAgbXkgJENvbmRpdGlvbkRhdGEgPSAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25HZXQoCiAgICAgICAgICAgIENvbmRpdGlvbklEID0+ICRDb25kaXRpb25JRCwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgb3V0cHV0IG92ZXJ2aWV3IHJvdwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1JvdycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgVmFsaWQgPT4gJFZhbGlkTGlzdHsgJENvbmRpdGlvbkRhdGEtPntWYWxpZElEfSB9LAogICAgICAgICAgICAgICAgJXskQ29uZGl0aW9uRGF0YX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG91dHB1dCBoZWFkZXIKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gVHJhbnNsYXRhYmxlKCdPdmVydmlldycpLAogICAgICAgIFR5cGUgID0+ICdTbWFsbCcsCiAgICApOwoKICAgICMgZ2VuZXJhdGUgb3V0cHV0CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbicsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyRDaGFuZ2VEYXRhfSwKICAgICAgICB9LAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCBUeXBlID0+ICdTbWFsbCcgKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeConditionEdit.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBwYXJhbSBvYmplY3QKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIHN0b3JlIG5lZWRlZCBwYXJhbWV0ZXJzIGluICVHZXRQYXJhbQogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRQYXJhbU5hbWUgKAogICAgICAgIHF3KAogICAgICAgIENoYW5nZUlEIENvbmRpdGlvbklEIE5hbWUgQ29tbWVudCBFeHByZXNzaW9uQ29uanVuY3Rpb24gVmFsaWRJRCBEZWxldGVFeHByZXNzaW9uSUQgRGVsZXRlQWN0aW9uSUQKICAgICAgICBTYXZlIEFkZEFjdGlvbiBBZGRFeHByZXNzaW9uIE5ld0V4cHJlc3Npb24gTmV3QWN0aW9uIEVsZW1lbnRDaGFuZ2VkIFVwZGF0ZURpdk5hbWUpCiAgICAgICAgKQogICAgewogICAgICAgICRHZXRQYXJhbXskUGFyYW1OYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbU5hbWUgKTsKICAgIH0KCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoQ2hhbmdlSUQgQ29uZGl0aW9uSUQpKSB7CiAgICAgICAgaWYgKCAhJEdldFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnTm8gJXMgaXMgZ2l2ZW4hJywgJE5lZWRlZCApLAogICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBvYmplY3QKICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBDaGFuZ2VJRCA9PiAkR2V0UGFyYW17Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0KICAgICAgICAgICAgKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBkYXRhCiAgICBteSAkQ2hhbmdlRGF0YSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkR2V0UGFyYW17Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBpZiBjaGFuZ2UgZXhpc3RzCiAgICBpZiAoICEkQ2hhbmdlRGF0YSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnLCAkR2V0UGFyYW17Q2hhbmdlSUR9ICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHZhbGlkIG9iamVjdAogICAgbXkgJFZhbGlkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CgogICAgIyBnZXQgdmFsaWQgbGlzdAogICAgbXkgJVZhbGlkTGlzdCA9ICRWYWxpZE9iamVjdC0+VmFsaWRMaXN0KCk7CgogICAgbXkgJEV4cHJlc3Npb25JRHNSZWYgPSBbXTsKICAgIG15ICRBY3Rpb25JRHNSZWYgICAgID0gW107CgogICAgIyBnZXQgY29uZGl0aW9uIG9iamVjdAogICAgbXkgJENvbmRpdGlvbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyk7CgogICAgIyBvbmx5IGdldCBleHByZXNzaW9uIGxpc3QgYW5kIGFjdGlvbiBsaXN0IGlmIGNvbmRpdGlvbiBleGlzdHMgYWxyZWFkeQogICAgaWYgKCAkR2V0UGFyYW17Q29uZGl0aW9uSUR9IG5lICdORVcnICkgewoKICAgICAgICAjIGdldCBhbGwgZXhwcmVzc2lvbiBpZHMgZm9yIHRoZSBnaXZlbiBjb25kaXRpb24gaWQKICAgICAgICAkRXhwcmVzc2lvbklEc1JlZiA9ICRDb25kaXRpb25PYmplY3QtPkV4cHJlc3Npb25MaXN0KAogICAgICAgICAgICBDb25kaXRpb25JRCA9PiAkR2V0UGFyYW17Q29uZGl0aW9uSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgYWxsIGFjdGlvbiBpZHMgZm9yIHRoZSBnaXZlbiBjb25kaXRpb24gaWQKICAgICAgICAkQWN0aW9uSURzUmVmID0gJENvbmRpdGlvbk9iamVjdC0+QWN0aW9uTGlzdCgKICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJEdldFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBSZW1lbWJlciB0aGUgcmVhc29uIHdoeSBzYXZpbmcgd2FzIG5vdCBhdHRlbXB0ZWQuCiAgICAjIFRoZXNlIGVudHJpZXMgYXJlIHRoZSBuYW1lcyBvZiB0aGUgZHRsIHZhbGlkYXRpb24gZXJyb3IgYmxvY2tzLgogICAgbXkgQFZhbGlkYXRpb25FcnJvcnM7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgY29uZGl0aW9uIHNhdmUgKGFsc28gYWRkL2RlbGV0ZSBleHByZXNzaW9uIGFuZCBhZGQvZGVsZXRlIGFjdGlvbikKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU2F2ZScgKSB7CgogICAgICAgICMgdXBkYXRlIG9ubHkgaWYgQ29uZGl0aW9uTmFtZSBpcyBnaXZlbgogICAgICAgIGlmICggISRHZXRQYXJhbXtOYW1lfSApIHsKICAgICAgICAgICAgJFBhcmFte0ludmFsaWROYW1lfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIHB1c2ggQFZhbGlkYXRpb25FcnJvcnMsICdJbnZhbGlkTmFtZSc7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGlmIGNvbmRpdGlvbiBuYW1lIGlzIGFscmVhZHkgdXNlZAogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBjaGVjayBpZiBjb25kaXRpb24gbmFtZSBleGlzdHMgYWxyZWFkeSBmb3IgdGhpcyBjaGFuZ2UKICAgICAgICAgICAgbXkgJENvbmRpdGlvbklEID0gJENvbmRpdGlvbk9iamVjdC0+Q29uZGl0aW9uTG9va3VwKAogICAgICAgICAgICAgICAgTmFtZSAgICAgPT4gJEdldFBhcmFte05hbWV9LAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJEdldFBhcmFte0NoYW5nZUlEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgaXQgaXMgb25seSBhbiBlcnJvciBpZiBhbm90aGVyIGNvbmRpdGlvbiBvZiB0aGlzIGNoYW5nZSB1c2VzIHRoaXMgbmFtZQogICAgICAgICAgICAjIGNoYW5naW5nIHRoZSBuYW1lIG9mIGEgY29uZGl0aW9uIGlzIHN0aWxsIHBvc3NpYmxlCiAgICAgICAgICAgIGlmICggJENvbmRpdGlvbklEICYmICggJEdldFBhcmFte0NvbmRpdGlvbklEfSBuZSAkQ29uZGl0aW9uSUQgKSApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtEdXBsaWNhdGVOYW1lfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBWYWxpZGF0aW9uRXJyb3JzLCAnRHVwbGljYXRlTmFtZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgaWYgYWxsIHBhc3NlZCBkYXRhIGlzIHZhbGlkCiAgICAgICAgaWYgKCAhQFZhbGlkYXRpb25FcnJvcnMgKSB7CgogICAgICAgICAgICAjIGFkZCBhIG5ldyBjb25kaXRpb24KICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17Q29uZGl0aW9uSUR9IGVxICdORVcnICkgewoKICAgICAgICAgICAgICAgICMgY3JlYXRlIGEgbmV3IGNvbmRpdGlvbgogICAgICAgICAgICAgICAgJEdldFBhcmFte0NvbmRpdGlvbklEfSA9ICRDb25kaXRpb25PYmplY3QtPkNvbmRpdGlvbkFkZCgKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgICAgICAgPT4gJEdldFBhcmFte0NoYW5nZUlEfSwKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICAgICAgPT4gJEdldFBhcmFte05hbWV9LAogICAgICAgICAgICAgICAgICAgIEV4cHJlc3Npb25Db25qdW5jdGlvbiA9PiAkR2V0UGFyYW17RXhwcmVzc2lvbkNvbmp1bmN0aW9ufSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ICAgICAgICAgICAgICAgPT4gJEdldFBhcmFte0NvbW1lbnR9LAogICAgICAgICAgICAgICAgICAgIFZhbGlkSUQgICAgICAgICAgICAgICA9PiAkR2V0UGFyYW17VmFsaWRJRH0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFte0NvbmRpdGlvbklEfSApIHsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0NvdWxkIG5vdCBjcmVhdGUgbmV3IGNvbmRpdGlvbiEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHVwZGF0ZSBhbiBleGlzdGluZyBjb25kaXRpb24KICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyB1cGRhdGUgdGhlIGNvbmRpdGlvbgogICAgICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25VcGRhdGUoCiAgICAgICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgICAgICAgICAgID0+ICRHZXRQYXJhbXtDb25kaXRpb25JRH0sCiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgID0+ICRHZXRQYXJhbXtOYW1lfSwKICAgICAgICAgICAgICAgICAgICBFeHByZXNzaW9uQ29uanVuY3Rpb24gPT4gJEdldFBhcmFte0V4cHJlc3Npb25Db25qdW5jdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCAgICAgICAgICAgICAgID0+ICRHZXRQYXJhbXtDb21tZW50fSwKICAgICAgICAgICAgICAgICAgICBWYWxpZElEICAgICAgICAgICAgICAgPT4gJEdldFBhcmFte1ZhbGlkSUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDb3VsZCBub3QgdXBkYXRlIENvbmRpdGlvbklEICVzIScsICRHZXRQYXJhbXtDb25kaXRpb25JRH0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHNhdmUgYWxsIGV4aXN0aW5nIGV4cHJlc3Npb24gZmllbGRzCiAgICAgICAgICAgIGZvciBteSAkRXhwcmVzc2lvbklEICggQHskRXhwcmVzc2lvbklEc1JlZn0gKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgZXhwcmVzc2lvbiBmaWVsZHMKICAgICAgICAgICAgICAgIG15ICVFeHByZXNzaW9uRGF0YTsKICAgICAgICAgICAgICAgIGZvciBteSAkRmllbGQgKHF3KE9iamVjdElEIFNlbGVjdG9yIEF0dHJpYnV0ZUlEIE9wZXJhdG9ySUQgQ29tcGFyZVZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICRFeHByZXNzaW9uRGF0YXskRmllbGR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSgKICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW0gPT4gJ0V4cHJlc3Npb25JRC0nIC4gJEV4cHJlc3Npb25JRCAuICctJyAuICRGaWVsZCwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgY2hlY2sgaWYgZXhpc3RpbmcgZXhwcmVzc2lvbiBpcyBjb21wbGV0ZQogICAgICAgICAgICAgICAgIyAoYWxsIHJlcXVpcmVkIGZpZWxkcyBtdXN0IGJlIGZpbGxlZCwgQ29tcGFyZVZhbHVlIGNhbiBiZSBlbXB0eSkKICAgICAgICAgICAgICAgIG15ICRGaWVsZHNPayA9IDE7CiAgICAgICAgICAgICAgICBGSUVMRDoKICAgICAgICAgICAgICAgIGZvciBteSAkRmllbGQgKHF3KE9iamVjdElEIFNlbGVjdG9yIEF0dHJpYnV0ZUlEIE9wZXJhdG9ySUQpKSB7CgogICAgICAgICAgICAgICAgICAgICMgbmV3IGV4cHJlc3Npb24gaXMgbm90IGNvbXBsZXRlCiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJEV4cHJlc3Npb25EYXRheyRGaWVsZH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRGaWVsZHNPayA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgRklFTEQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgdXBkYXRlIGV4aXN0aW5nIGV4cHJlc3Npb24gb25seSBpZiBhbGwgZmllbGRzIGFyZSBjb21wbGV0ZQogICAgICAgICAgICAgICAgaWYgKCRGaWVsZHNPaykgewoKICAgICAgICAgICAgICAgICAgICAjIHVwZGF0ZSB0aGUgZXhwcmVzc2lvbgogICAgICAgICAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJENvbmRpdGlvbk9iamVjdC0+RXhwcmVzc2lvblVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgRXhwcmVzc2lvbklEID0+ICRFeHByZXNzaW9uSUQsCiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdElEICAgICA9PiAkRXhwcmVzc2lvbkRhdGF7T2JqZWN0SUR9LAogICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVJRCAgPT4gJEV4cHJlc3Npb25EYXRhe0F0dHJpYnV0ZUlEfSwKICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0b3JJRCAgID0+ICRFeHByZXNzaW9uRGF0YXtPcGVyYXRvcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRFeHByZXNzaW9uRGF0YXtTZWxlY3Rvcn0sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbXBhcmVWYWx1ZSA9PiBkZWZpbmVkICRFeHByZXNzaW9uRGF0YXtDb21wYXJlVmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICAgID8gJEV4cHJlc3Npb25EYXRhe0NvbXBhcmVWYWx1ZX0KICAgICAgICAgICAgICAgICAgICAgICAgOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDb3VsZCBub3QgdXBkYXRlIEV4cHJlc3Npb25JRCAlcyEnLCAkRXhwcmVzc2lvbklECiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgbmV3IGV4cHJlc3Npb24gZmllbGRzCiAgICAgICAgICAgIG15ICVFeHByZXNzaW9uRGF0YTsKICAgICAgICAgICAgZm9yIG15ICRGaWVsZCAocXcoT2JqZWN0SUQgU2VsZWN0b3IgQXR0cmlidXRlSUQgT3BlcmF0b3JJRCBDb21wYXJlVmFsdWUpKSB7CiAgICAgICAgICAgICAgICAkRXhwcmVzc2lvbkRhdGF7JEZpZWxkfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oCiAgICAgICAgICAgICAgICAgICAgUGFyYW0gPT4gJ0V4cHJlc3Npb25JRC1ORVctJyAuICRGaWVsZCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY2hlY2sgaWYgbmV3IGV4cHJlc3Npb24gaXMgY29tcGxldGUKICAgICAgICAgICAgIyAoYWxsIHJlcXVpcmVkIGZpZWxkcyBtdXN0IGJlIGZpbGxlZCwgQ29tcGFyZVZhbHVlIGNhbiBiZSBlbXB0eSkKICAgICAgICAgICAgbXkgJEZpZWxkc09rID0gMTsKICAgICAgICAgICAgRklFTEQ6CiAgICAgICAgICAgIGZvciBteSAkRmllbGQgKHF3KE9iamVjdElEIFNlbGVjdG9yIEF0dHJpYnV0ZUlEIE9wZXJhdG9ySUQpKSB7CgogICAgICAgICAgICAgICAgIyBuZXcgZXhwcmVzc2lvbiBpcyBub3QgY29tcGxldGUKICAgICAgICAgICAgICAgIGlmICggISRFeHByZXNzaW9uRGF0YXskRmllbGR9ICkgewogICAgICAgICAgICAgICAgICAgICRGaWVsZHNPayA9IDA7CiAgICAgICAgICAgICAgICAgICAgbGFzdCBGSUVMRDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBhZGQgbmV3IGV4cHJlc3Npb24KICAgICAgICAgICAgaWYgKCRGaWVsZHNPaykgewoKICAgICAgICAgICAgICAgICMgYWRkIG5ldyBleHByZXNzaW9uCiAgICAgICAgICAgICAgICBteSAkRXhwcmVzc2lvbklEID0gJENvbmRpdGlvbk9iamVjdC0+RXhwcmVzc2lvbkFkZCgKICAgICAgICAgICAgICAgICAgICBDb25kaXRpb25JRCAgPT4gJEdldFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICBPYmplY3RJRCAgICAgPT4gJEV4cHJlc3Npb25EYXRhe09iamVjdElEfSwKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVJRCAgPT4gJEV4cHJlc3Npb25EYXRhe0F0dHJpYnV0ZUlEfSwKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvcklEICAgPT4gJEV4cHJlc3Npb25EYXRhe09wZXJhdG9ySUR9LAogICAgICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgICA9PiAkRXhwcmVzc2lvbkRhdGF7U2VsZWN0b3J9LAogICAgICAgICAgICAgICAgICAgIENvbXBhcmVWYWx1ZSA9PiBkZWZpbmVkICRFeHByZXNzaW9uRGF0YXtDb21wYXJlVmFsdWV9CiAgICAgICAgICAgICAgICAgICAgPyAkRXhwcmVzc2lvbkRhdGF7Q29tcGFyZVZhbHVlfQogICAgICAgICAgICAgICAgICAgIDogJycsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgICAgICAgICAgaWYgKCAhJEV4cHJlc3Npb25JRCApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDb3VsZCBub3QgYWRkIG5ldyBFeHByZXNzaW9uIScpLAogICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzYXZlIGFsbCBleGlzdGluZyBhY3Rpb24gZmllbGRzCiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBAeyRBY3Rpb25JRHNSZWZ9ICkgewoKICAgICAgICAgICAgICAgICMgZ2V0IGFjdGlvbiBmaWVsZHMKICAgICAgICAgICAgICAgIG15ICVBY3Rpb25EYXRhOwogICAgICAgICAgICAgICAgZm9yIG15ICRGaWVsZCAocXcoT2JqZWN0SUQgU2VsZWN0b3IgQXR0cmlidXRlSUQgT3BlcmF0b3JJRCBBY3Rpb25WYWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAkQWN0aW9uRGF0YXskRmllbGR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSgKICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW0gPT4gJ0FjdGlvbklELScgLiAkQWN0aW9uSUQgLiAnLScgLiAkRmllbGQsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIGV4aXN0aW5nIGFjdGlvbiBpcyBjb21wbGV0ZQogICAgICAgICAgICAgICAgIyAoYWxsIHJlcXVpcmVkIGZpZWxkcyBtdXN0IGJlIGZpbGxlZCwgQWN0aW9uVmFsdWUgY2FuIGJlIGVtcHR5KQogICAgICAgICAgICAgICAgbXkgJEZpZWxkc09rID0gMTsKICAgICAgICAgICAgICAgIEZJRUxEOgogICAgICAgICAgICAgICAgZm9yIG15ICRGaWVsZCAocXcoT2JqZWN0SUQgU2VsZWN0b3IgQXR0cmlidXRlSUQgT3BlcmF0b3JJRCkpIHsKCiAgICAgICAgICAgICAgICAgICAgIyBuZXcgYWN0aW9uIGlzIG5vdCBjb21wbGV0ZQogICAgICAgICAgICAgICAgICAgIGlmICggISRBY3Rpb25EYXRheyRGaWVsZH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRGaWVsZHNPayA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgRklFTEQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgdXBkYXRlIGV4aXN0aW5nIGFjdGlvbiBvbmx5IGlmIGFsbCBmaWVsZHMgYXJlIGNvbXBsZXRlCiAgICAgICAgICAgICAgICBpZiAoJEZpZWxkc09rKSB7CgogICAgICAgICAgICAgICAgICAgICMgdXBkYXRlIHRoZSBhY3Rpb24KICAgICAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRDb25kaXRpb25PYmplY3QtPkFjdGlvblVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgICAgPT4gJEFjdGlvbklELAogICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RJRCAgICA9PiAkQWN0aW9uRGF0YXtPYmplY3RJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+ICRBY3Rpb25EYXRhe0F0dHJpYnV0ZUlEfSwKICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0b3JJRCAgPT4gJEFjdGlvbkRhdGF7T3BlcmF0b3JJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgID0+ICRBY3Rpb25EYXRhe1NlbGVjdG9yfSwKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uVmFsdWUgPT4gJEFjdGlvbkRhdGF7QWN0aW9uVmFsdWV9IHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgICAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCB1cGRhdGUgQWN0aW9uSUQgJXMhJywgJEFjdGlvbklEICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGdldCBuZXcgYWN0aW9uIGZpZWxkcwogICAgICAgICAgICBteSAlQWN0aW9uRGF0YTsKICAgICAgICAgICAgZm9yIG15ICRGaWVsZCAocXcoT2JqZWN0SUQgU2VsZWN0b3IgQXR0cmlidXRlSUQgT3BlcmF0b3JJRCBBY3Rpb25WYWx1ZSkpIHsKICAgICAgICAgICAgICAgICRBY3Rpb25EYXRheyRGaWVsZH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKAogICAgICAgICAgICAgICAgICAgIFBhcmFtID0+ICdBY3Rpb25JRC1ORVctJyAuICRGaWVsZCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY2hlY2sgaWYgbmV3IGFjdGlvbiBpcyBjb21wbGV0ZQogICAgICAgICAgICAjIChhbGwgcmVxdWlyZWQgZmllbGRzIG11c3QgYmUgZmlsbGVkLCBBY3Rpb25WYWx1ZSBjYW4gYmUgZW1wdHkpCiAgICAgICAgICAgICRGaWVsZHNPayA9IDE7CiAgICAgICAgICAgIEZJRUxEOgogICAgICAgICAgICBmb3IgbXkgJEZpZWxkIChxdyhPYmplY3RJRCBTZWxlY3RvciBBdHRyaWJ1dGVJRCBPcGVyYXRvcklEKSkgewoKICAgICAgICAgICAgICAgICMgbmV3IGFjdGlvbiBpcyBub3QgY29tcGxldGUKICAgICAgICAgICAgICAgIGlmICggISRBY3Rpb25EYXRheyRGaWVsZH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEZpZWxkc09rID0gMDsKICAgICAgICAgICAgICAgICAgICBsYXN0IEZJRUxEOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFkZCBuZXcgYWN0aW9uCiAgICAgICAgICAgIGlmICgkRmllbGRzT2spIHsKCiAgICAgICAgICAgICAgICAjIGFkZCBuZXcgYWN0aW9uCiAgICAgICAgICAgICAgICBteSAkQWN0aW9uSUQgPSAkQ29uZGl0aW9uT2JqZWN0LT5BY3Rpb25BZGQoCiAgICAgICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJEdldFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICBPYmplY3RJRCAgICA9PiAkQWN0aW9uRGF0YXtPYmplY3RJRH0sCiAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gJEFjdGlvbkRhdGF7QXR0cmlidXRlSUR9LAogICAgICAgICAgICAgICAgICAgIE9wZXJhdG9ySUQgID0+ICRBY3Rpb25EYXRhe09wZXJhdG9ySUR9LAogICAgICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgID0+ICRBY3Rpb25EYXRhe1NlbGVjdG9yfSwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25WYWx1ZSA9PiAkQWN0aW9uRGF0YXtBY3Rpb25WYWx1ZX0gfHwgJycsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgICAgICAgICBpZiAoICEkQWN0aW9uSUQgKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ291bGQgbm90IGFkZCBuZXcgQWN0aW9uIScpLAogICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBqdXN0IHRoZSBzYXZlIGJ1dHRvbiB3YXMgcHJlc3NlZCwgcmVkaXJlY3QgdG8gY29uZGl0aW9uIG92ZXJ2aWV3CiAgICAgICAgICAgIGlmICggJEdldFBhcmFte1NhdmV9ICkgewogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uO0NoYW5nZUlEPSRHZXRQYXJhbXtDaGFuZ2VJRH0iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBleHByZXNzaW9uIGFkZCBidXR0b24gd2FzIHByZXNzZWQKICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17QWRkRXhwcmVzc2lvbn0gKSB7CgogICAgICAgICAgICAgICAgIyBzaG93IHRoZSBlZGl0IHZpZXcgYWdhaW4sIGJ1dCBub3cgd2l0aCBhIG5ldyBlbXB0eSBleHByZXNzaW9uIGxpbmUKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQ7Q2hhbmdlSUQ9JEdldFBhcmFte0NoYW5nZUlEfTsiCiAgICAgICAgICAgICAgICAgICAgICAgIC4gIkNvbmRpdGlvbklEPSRHZXRQYXJhbXtDb25kaXRpb25JRH07TmV3RXhwcmVzc2lvbj0xIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWN0aW9uIGFkZCBidXR0b24gd2FzIHByZXNzZWQKICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17QWRkQWN0aW9ufSApIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgdGhlIGVkaXQgdmlldyBhZ2FpbiwgYnV0IG5vdyB3aXRoIGEgbmV3IGVtcHR5IGFjdGlvbiBsaW5lCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0O0NoYW5nZUlEPSRHZXRQYXJhbXtDaGFuZ2VJRH07IgogICAgICAgICAgICAgICAgICAgICAgICAuICJDb25kaXRpb25JRD0kR2V0UGFyYW17Q29uZGl0aW9uSUR9O05ld0FjdGlvbj0xIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY2hlY2sgaWYgYW4gZXhwcmVzc2lvbiBzaG91bGQgYmUgZGVsZXRlZAogICAgICAgICAgICBpZiAoICRHZXRQYXJhbXtEZWxldGVFeHByZXNzaW9uSUR9ICYmICRHZXRQYXJhbXtEZWxldGVFeHByZXNzaW9uSUR9IG5lICdORVcnICkgewoKICAgICAgICAgICAgICAgICMgZGVsZXRlIHRoZSBleHByZXNzaW9uCiAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRDb25kaXRpb25PYmplY3QtPkV4cHJlc3Npb25EZWxldGUoCiAgICAgICAgICAgICAgICAgICAgRXhwcmVzc2lvbklEID0+ICRHZXRQYXJhbXtEZWxldGVFeHByZXNzaW9uSUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ291bGQgbm90IGRlbGV0ZSBFeHByZXNzaW9uSUQgJXMhJywgJEdldFBhcmFte0RlbGV0ZUV4cHJlc3Npb25JRH0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBzaG93IHRoZSBlZGl0IHZpZXcgYWdhaW4KICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQ7Q2hhbmdlSUQ9JEdldFBhcmFte0NoYW5nZUlEfTsiCiAgICAgICAgICAgICAgICAgICAgICAgIC4gIkNvbmRpdGlvbklEPSRHZXRQYXJhbXtDb25kaXRpb25JRH0iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBpZiBhbiBhY3Rpb24gc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17RGVsZXRlQWN0aW9uSUR9ICYmICRHZXRQYXJhbXtEZWxldGVBY3Rpb25JRH0gbmUgJ05FVycgKSB7CgogICAgICAgICAgICAgICAgIyBkZWxldGUgdGhlIGFjdGlvbgogICAgICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ29uZGl0aW9uT2JqZWN0LT5BY3Rpb25EZWxldGUoCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgPT4gJEdldFBhcmFte0RlbGV0ZUFjdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ291bGQgbm90IGRlbGV0ZSBBY3Rpb25JRCAlcyEnLCAkR2V0UGFyYW17RGVsZXRlQWN0aW9uSUR9CiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc2hvdyB0aGUgZWRpdCB2aWV3IGFnYWluCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZ2VudElUU01DaGFuZ2VDb25kaXRpb25FZGl0O0NoYW5nZUlEPSRHZXRQYXJhbXtDaGFuZ2VJRH07IgogICAgICAgICAgICAgICAgICAgICAgICAuICJDb25kaXRpb25JRD0kR2V0UGFyYW17Q29uZGl0aW9uSUR9IiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2hvdyB0aGUgZWRpdCB2aWV3IGFnYWluCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uRWRpdDtDaGFuZ2VJRD0kR2V0UGFyYW17Q2hhbmdlSUR9OyIKICAgICAgICAgICAgICAgICAgICAuICJDb25kaXRpb25JRD0kR2V0UGFyYW17Q29uZGl0aW9uSUR9IiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBoYW5kbGUgQUpBWFVwZGF0ZSAoY2hhbmdlIHRoZSBjb250ZW50IG9mIGRyb3Bkb3dubGlzdHMpCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQUpBWFVwZGF0ZScgKSB7CgogICAgICAgICMgdG8gc3RvcmUgdGhlIEpTT04gb3V0cHV0CiAgICAgICAgbXkgJEpTT047CgogICAgICAgICMgZXhwcmVzc2lvbiBvciBhY3Rpb24gZmllbGQgd2FzIGNoYW5nZWQKICAgICAgICBpZiAoICRHZXRQYXJhbXtFbGVtZW50Q2hhbmdlZH0gPX4gbXsgXEEgKCBFeHByZXNzaW9uSUQgfCBBY3Rpb25JRCApIC0gKCBcZCsgfCBORVcgKSB9eG1zICkKICAgICAgICB7CgogICAgICAgICAgICAjIGdldCBpZCBuYW1lIG9mIHRoZSBpbnZvbHZlZCBlbGVtZW50ICggJ0V4cHJlc3Npb25JRCcgb3IgJ0FjdGlvbklEJyApCiAgICAgICAgICAgIG15ICRJRE5hbWUgPSAkMTsKCiAgICAgICAgICAgICMgZ2V0IGlkIG9mIHRoZSBpbnZvbHZlZCBlbGVtZW50CiAgICAgICAgICAgIG15ICRJRCA9ICQyOwoKICAgICAgICAgICAgIyBnZXQgdmFsdWUgZmllbGQgbmFtZQogICAgICAgICAgICBteSAkVmFsdWVGaWVsZE5hbWU7CiAgICAgICAgICAgIGlmICggJElETmFtZSBlcSAnRXhwcmVzc2lvbklEJyApIHsKICAgICAgICAgICAgICAgICRWYWx1ZUZpZWxkTmFtZSA9ICdDb21wYXJlVmFsdWUnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJElETmFtZSBlcSAnQWN0aW9uSUQnICkgewogICAgICAgICAgICAgICAgJFZhbHVlRmllbGROYW1lID0gJ0FjdGlvblZhbHVlJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgZXhwcmVzc2lvbiBvciBhY3Rpb24gZmllbGRzCiAgICAgICAgICAgIGZvciBteSAkRmllbGQgKHF3KE9iamVjdElEIFNlbGVjdG9yIEF0dHJpYnV0ZUlEIE9wZXJhdG9ySUQgQ29tcGFyZVZhbHVlIEFjdGlvblZhbHVlKSkgewogICAgICAgICAgICAgICAgJEdldFBhcmFteyRGaWVsZH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKAogICAgICAgICAgICAgICAgICAgIFBhcmFtID0+ICRJRE5hbWUgLiAnLScgLiAkSUQgLiAnLScgLiAkRmllbGQsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGdldCBvYmplY3Qgc2VsZWN0aW9uIGxpc3QKICAgICAgICAgICAgbXkgJE9iamVjdExpc3QgPSAkU2VsZi0+X0dldE9iamVjdFNlbGVjdGlvbigpOwoKICAgICAgICAgICAgIyBnZXQgc2VsZWN0b3Igc2VsZWN0aW9uIGxpc3QKICAgICAgICAgICAgbXkgJFNlbGVjdG9yTGlzdCA9ICRTZWxmLT5fR2V0U2VsZWN0b3JTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBPYmplY3RJRCAgICA9PiAkR2V0UGFyYW17T2JqZWN0SUR9LAogICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJEdldFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICAgICAgICAgICRJRE5hbWUgICAgID0+ICRJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IGF0dHJpYnV0ZSBzZWxlY3Rpb24gbGlzdAogICAgICAgICAgICBteSAkQXR0cmlidXRlTGlzdCA9ICRTZWxmLT5fR2V0QXR0cmlidXRlU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gJEdldFBhcmFte09iamVjdElEfSwKICAgICAgICAgICAgICAgIFNlbGVjdG9yID0+ICRHZXRQYXJhbXtTZWxlY3Rvcn0sCiAgICAgICAgICAgICAgICAkSUROYW1lICA9PiAkSUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBvcGVyYXRvciBzZWxlY3Rpb24gbGlzdAogICAgICAgICAgICBteSAkT3BlcmF0b3JMaXN0ID0gJFNlbGYtPl9HZXRPcGVyYXRvclNlbGVjdGlvbigKICAgICAgICAgICAgICAgIE9iamVjdElEICAgID0+ICRHZXRQYXJhbXtPYmplY3RJRH0sCiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVJRCA9PiAkR2V0UGFyYW17QXR0cmlidXRlSUR9LAogICAgICAgICAgICAgICAgJElETmFtZSAgICAgPT4gJElELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBhZGQgYW4gZW1wdHkgc2VsZWN0b3Igc2VsZWN0aW9uIGlmIG5vIGxpc3QgaXMgYXZhaWxhYmxlIG9yIG5vdGhpbmcgaXMgc2VsZWN0ZWQKICAgICAgICAgICAgbXkgJFBvc3NpYmxlTm9uZVNlbGVjdG9yID0gMDsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISRTZWxlY3Rvckxpc3QKICAgICAgICAgICAgICAgIHx8ICFyZWYgJFNlbGVjdG9yTGlzdCBlcSAnSEFTSCcKICAgICAgICAgICAgICAgIHx8ICEleyRTZWxlY3Rvckxpc3R9CiAgICAgICAgICAgICAgICB8fCAkR2V0UGFyYW17RWxlbWVudENoYW5nZWR9IGVxICRJRE5hbWUgLiAnLScgLiAkSUQgLiAnLU9iamVjdElEJwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkUG9zc2libGVOb25lU2VsZWN0b3IgPSAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFkZCBhbiBlbXB0eSBhdHRyaWJ1dGUgc2VsZWN0aW9uIGlmIG5vIGxpc3QgaXMgYXZhaWxhYmxlIG9yIG5vdGhpbmcgaXMgc2VsZWN0ZWQKICAgICAgICAgICAgbXkgJFBvc3NpYmxlTm9uZUF0dHJpYnV0ZUlEID0gMDsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISRBdHRyaWJ1dGVMaXN0CiAgICAgICAgICAgICAgICB8fCAhcmVmICRBdHRyaWJ1dGVMaXN0IGVxICdIQVNIJwogICAgICAgICAgICAgICAgfHwgISV7JEF0dHJpYnV0ZUxpc3R9CiAgICAgICAgICAgICAgICB8fCAkR2V0UGFyYW17RWxlbWVudENoYW5nZWR9IGVxICRJRE5hbWUgLiAnLScgLiAkSUQgLiAnLU9iamVjdElEJwogICAgICAgICAgICAgICAgfHwgJEdldFBhcmFte0VsZW1lbnRDaGFuZ2VkfSBlcSAkSUROYW1lIC4gJy0nIC4gJElEIC4gJy1TZWxlY3RvcicKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJFBvc3NpYmxlTm9uZUF0dHJpYnV0ZUlEID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBhZGQgYW4gZW1wdHkgb3BlcmF0b3Igc2VsZWN0aW9uIGlmIG5vIGxpc3QgaXMgYXZhaWxhYmxlIG9yIG5vdGhpbmcgaXMgc2VsZWN0ZWQKICAgICAgICAgICAgbXkgJFBvc3NpYmxlTm9uZU9wZXJhdG9ySUQgPSAwOwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAhJE9wZXJhdG9yTGlzdAogICAgICAgICAgICAgICAgfHwgIXJlZiAkT3BlcmF0b3JMaXN0IGVxICdIQVNIJwogICAgICAgICAgICAgICAgfHwgISV7JE9wZXJhdG9yTGlzdH0KICAgICAgICAgICAgICAgIHx8ICRHZXRQYXJhbXtFbGVtZW50Q2hhbmdlZH0gZXEgJElETmFtZSAuICctJyAuICRJRCAuICctT2JqZWN0SUQnCiAgICAgICAgICAgICAgICB8fCAkR2V0UGFyYW17RWxlbWVudENoYW5nZWR9IGVxICRJRE5hbWUgLiAnLScgLiAkSUQgLiAnLVNlbGVjdG9yJwogICAgICAgICAgICAgICAgfHwgJEdldFBhcmFte0VsZW1lbnRDaGFuZ2VkfSBlcSAkSUROYW1lIC4gJy0nIC4gJElEIC4gJy1BdHRyaWJ1dGVJRCcKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJFBvc3NpYmxlTm9uZU9wZXJhdG9ySUQgPSAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGlmIG9iamVjdCB3YXMgY2hhbmdlZCwgcmVzZXQgdGhlIGF0dHJpYnV0ZSBhbmQgb3BlcmF0b3IgbGlzdAogICAgICAgICAgICBpZiAoICRHZXRQYXJhbXtFbGVtZW50Q2hhbmdlZH0gZXEgJElETmFtZSAuICctJyAuICRJRCAuICctT2JqZWN0SUQnICkgewogICAgICAgICAgICAgICAgJEF0dHJpYnV0ZUxpc3QgPSB7fTsKICAgICAgICAgICAgICAgICRPcGVyYXRvckxpc3QgID0ge307CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYnVpbGQganNvbgogICAgICAgICAgICAkSlNPTiA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uSlNPTigKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAkSUROYW1lIC4gJy0nIC4gJElEIC4gJy1PYmplY3RJRCcsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiAkT2JqZWN0TGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRHZXRQYXJhbXtPYmplY3RJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgTWF4ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRJRE5hbWUgLiAnLScgLiAkSUQgLiAnLVNlbGVjdG9yJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+ICRTZWxlY3Rvckxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkUG9zc2libGVOb25lU2VsZWN0b3IgPyAnJyA6ICRHZXRQYXJhbXtTZWxlY3Rvcn0sCiAgICAgICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAkUG9zc2libGVOb25lU2VsZWN0b3IsCiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICBNYXggICAgICAgICAgPT4gMTAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJElETmFtZSAuICctJyAuICRJRCAuICctQXR0cmlidXRlSUQnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJEF0dHJpYnV0ZUxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkR2V0UGFyYW17QXR0cmlidXRlSUR9IHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gJFBvc3NpYmxlTm9uZUF0dHJpYnV0ZUlELAogICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgTWF4ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRJRE5hbWUgLiAnLScgLiAkSUQgLiAnLU9wZXJhdG9ySUQnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJE9wZXJhdG9yTGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRHZXRQYXJhbXtPcGVyYXRvcklEfSB8fCAnJywKICAgICAgICAgICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+ICRQb3NzaWJsZU5vbmVPcGVyYXRvcklELAogICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgTWF4ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgcmV0dXJuIGpzb24KICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJEpTT04sCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgaGFuZGxlIEFKQVhVcGRhdGUgKHJlcGxhY2UgdGhlIGZpZWxkIHR5cGUsIGUuZy4gcmVwbGFjZSBhIHRleHQgZmllbGQgd2l0aCBhIHNlbGVjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBSkFYQ29udGVudFVwZGF0ZScgKSB7CgogICAgICAgICMgdG8gc3RvcmUgdGhlIEhUTUwgc3RyaW5nIHdoaWNoIGlzIHJldHVybmVkIHRvIHRoZSBicm93c2VyCiAgICAgICAgbXkgJEhUTUxTdHJpbmc7CgogICAgICAgICMgZXhwcmVzc2lvbiBvciBhY3Rpb24gZmllbGQgd2FzIGNoYW5nZWQKICAgICAgICBpZiAoICRHZXRQYXJhbXtFbGVtZW50Q2hhbmdlZH0gPX4gbXsgXEEgKCBFeHByZXNzaW9uSUQgfCBBY3Rpb25JRCApIFwtICggXGQrIHwgTkVXICkgfXhtcyApCiAgICAgICAgewoKICAgICAgICAgICAgIyBnZXQgaWQgbmFtZSBvZiB0aGUgaW52b2x2ZWQgZWxlbWVudCAoICdFeHByZXNzaW9uSUQnIG9yICdBY3Rpb25JRCcgKQogICAgICAgICAgICBteSAkSUROYW1lID0gJDE7CgogICAgICAgICAgICAjIGdldCBpZCBvZiB0aGUgaW52b2x2ZWQgZWxlbWVudAogICAgICAgICAgICBteSAkSUQgPSAkMjsKCiAgICAgICAgICAgICMgZ2V0IHZhbHVlIGZpZWxkIG5hbWUKICAgICAgICAgICAgbXkgJFZhbHVlRmllbGROYW1lOwogICAgICAgICAgICBpZiAoICRJRE5hbWUgZXEgJ0V4cHJlc3Npb25JRCcgKSB7CiAgICAgICAgICAgICAgICAkVmFsdWVGaWVsZE5hbWUgPSAnQ29tcGFyZVZhbHVlJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRJRE5hbWUgZXEgJ0FjdGlvbklEJyApIHsKICAgICAgICAgICAgICAgICRWYWx1ZUZpZWxkTmFtZSA9ICdBY3Rpb25WYWx1ZSc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IGV4cHJlc3Npb24gb3IgYWN0aW9uIGZpZWxkcwogICAgICAgICAgICBmb3IgbXkgJEZpZWxkIChxdyhPYmplY3RJRCBTZWxlY3RvciBBdHRyaWJ1dGVJRCBPcGVyYXRvcklEIENvbXBhcmVWYWx1ZSBBY3Rpb25WYWx1ZSkpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskRmllbGR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSgKICAgICAgICAgICAgICAgICAgICBQYXJhbSA9PiAkSUROYW1lIC4gJy0nIC4gJElEIC4gJy0nIC4gJEZpZWxkLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgY29tcGFyZSB2YWx1ZSBmaWVsZCB0eXBlCiAgICAgICAgICAgIG15ICRGaWVsZFR5cGUgPSAkU2VsZi0+X0dldENvbXBhcmVWYWx1ZUZpZWxkVHlwZSglR2V0UGFyYW0pOwoKICAgICAgICAgICAgIyBidWlsZCBDb21wYXJlVmFsdWUgc2VsZWN0aW9uCiAgICAgICAgICAgIGlmICggJEZpZWxkVHlwZSBlcSAnU2VsZWN0aW9uJyApIHsKCiAgICAgICAgICAgICAgICAjIGdldCBjb21wYXJlIHZhbHVlIHNlbGVjdGlvbiBsaXN0CiAgICAgICAgICAgICAgICBteSAkQ29tcGFyZVZhbHVlTGlzdCA9ICRTZWxmLT5fR2V0Q29tcGFyZVZhbHVlU2VsZWN0aW9uKCVHZXRQYXJhbSk7CgogICAgICAgICAgICAgICAgIyBhZGQgYW4gZW1wdHkgc2VsZWN0aW9uIGlmIG5vIGxpc3QgaXMgYXZhaWxhYmxlIG9yIG5vdGhpbmcgaXMgc2VsZWN0ZWQKICAgICAgICAgICAgICAgIG15ICRQb3NzaWJsZU5vbmUgPSAwOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRQYXJhbXtQb3NzaWJsZU5vbmV9CiAgICAgICAgICAgICAgICAgICAgfHwgISRQYXJhbXskVmFsdWVGaWVsZE5hbWV9CiAgICAgICAgICAgICAgICAgICAgfHwgISRDb21wYXJlVmFsdWVMaXN0CiAgICAgICAgICAgICAgICAgICAgfHwgKCByZWYgJENvbXBhcmVWYWx1ZUxpc3QgZXEgJ0hBU0gnICAmJiAhJXskQ29tcGFyZVZhbHVlTGlzdH0gKQogICAgICAgICAgICAgICAgICAgIHx8ICggcmVmICRDb21wYXJlVmFsdWVMaXN0IGVxICdBUlJBWScgJiYgIUB7JENvbXBhcmVWYWx1ZUxpc3R9ICkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJFBvc3NpYmxlTm9uZSA9IDE7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBnZW5lcmF0ZSBWYWx1ZU9wdGlvblN0cmluZwogICAgICAgICAgICAgICAgJEhUTUxTdHJpbmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJENvbXBhcmVWYWx1ZUxpc3QsCiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRJRE5hbWUgLiAnLScgLiAkSUQgLiAnLScgLiAkVmFsdWVGaWVsZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRHZXRQYXJhbXskVmFsdWVGaWVsZE5hbWV9LAogICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAkUG9zc2libGVOb25lLAogICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBidWlsZCB0ZXh0IGlucHV0IGZpZWxkCiAgICAgICAgICAgIGVsc2lmICggJEZpZWxkVHlwZSBlcSAnVGV4dCcgKSB7CgogICAgICAgICAgICAgICAgIyBidWlsZCBhbiBlbXB0eSBpbnB1dCBmaWVsZAogICAgICAgICAgICAgICAgJEhUTUxTdHJpbmcgPSAnJwogICAgICAgICAgICAgICAgICAgIC4gJzxpbnB1dCB0eXBlPSJ0ZXh0IiAnCiAgICAgICAgICAgICAgICAgICAgLiAnaWQ9IicgLiAkSUROYW1lIC4gJy0nIC4gJElEIC4gJy0nIC4gJFZhbHVlRmllbGROYW1lIC4gJyIgJwogICAgICAgICAgICAgICAgICAgIC4gJ25hbWU9IicgLiAkSUROYW1lIC4gJy0nIC4gJElEIC4gJy0nIC4gJFZhbHVlRmllbGROYW1lIC4gJyIgJwogICAgICAgICAgICAgICAgICAgIC4gJ3ZhbHVlPSIiIGNsYXM9Ilc3NXBjIiBtYXhsZW5ndGg9IjI1MCIgLz4nOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHNob3cgZXJyb3IgZm9yIHVua25vd24gZmllbGQgdHlwZQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRIVE1MU3RyaW5nID0gJzxzcGFuPjxiPicKICAgICAgICAgICAgICAgICAgICAuICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0Vycm9yOiBVbmtub3duIGZpZWxkIHR5cGUgIiVzIiEnLCAkRmllbGRUeXBlICkKICAgICAgICAgICAgICAgICAgICAuICc8L2I+PC9zcGFuPic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcmV0dXJuIEhUTUwKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgIENoYXJzZXQgICAgID0+ICRMYXlvdXRPYmplY3QtPntVc2VyQ2hhcnNldH0sCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRIVE1MU3RyaW5nLAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgY29uZGl0aW9uIGVkaXQgdmlldwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgIG15ICVDb25kaXRpb25EYXRhOwoKICAgICMgZ2V0IENvbmRpdGlvbklECiAgICAkQ29uZGl0aW9uRGF0YXtDb25kaXRpb25JRH0gPSAkR2V0UGFyYW17Q29uZGl0aW9uSUR9OwoKICAgICMgaWYgdGhpcyBpcyBhbiBleGlzdGluZyBjb25kaXRpb24KICAgIGlmICggJENvbmRpdGlvbkRhdGF7Q29uZGl0aW9uSUR9IG5lICdORVcnICkgewoKICAgICAgICAjIGdldCBjb25kaXRpb24gZGF0YQogICAgICAgIG15ICRDb25kaXRpb24gPSAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25HZXQoCiAgICAgICAgICAgIENvbmRpdGlvbklEID0+ICRDb25kaXRpb25EYXRhe0NvbmRpdGlvbklEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgaWYgdGhlIGNvbmRpdGlvbiBiZWxvbmdzIHRvIHRoZSBnaXZlbiBjaGFuZ2UKICAgICAgICBpZiAoICRDb25kaXRpb24tPntDaGFuZ2VJRH0gbmUgJEdldFBhcmFte0NoYW5nZUlEfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgJ0NvbmRpdGlvbklEICVzIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgJXMhJywKICAgICAgICAgICAgICAgICAgICAkQ29uZGl0aW9uRGF0YXtDb25kaXRpb25JRH0sCiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFte0NoYW5nZUlEfQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgYWRkIGRhdGEgZnJvbSBjb25kaXRpb24KICAgICAgICAlQ29uZGl0aW9uRGF0YSA9ICggJUNvbmRpdGlvbkRhdGEsICV7JENvbmRpdGlvbn0gKTsKCiAgICAgICAgIyBzaG93IGV4aXN0aW5nIGV4cHJlc3Npb25zCiAgICAgICAgJFNlbGYtPl9FeHByZXNzaW9uT3ZlcnZpZXcoCiAgICAgICAgICAgICV7JENoYW5nZURhdGF9LAogICAgICAgICAgICAlQ29uZGl0aW9uRGF0YSwKICAgICAgICAgICAgRXhwcmVzc2lvbklEcyA9PiAkRXhwcmVzc2lvbklEc1JlZiwKICAgICAgICAgICAgTmV3RXhwcmVzc2lvbiA9PiAkR2V0UGFyYW17TmV3RXhwcmVzc2lvbn0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGV4aXN0aW5nIGFjdGlvbnMKICAgICAgICAkU2VsZi0+X0FjdGlvbk92ZXJ2aWV3KAogICAgICAgICAgICAleyRDaGFuZ2VEYXRhfSwKICAgICAgICAgICAgJUNvbmRpdGlvbkRhdGEsCiAgICAgICAgICAgIEFjdGlvbklEcyA9PiAkQWN0aW9uSURzUmVmLAogICAgICAgICAgICBOZXdBY3Rpb24gPT4gJEdldFBhcmFte05ld0FjdGlvbn0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdFeHByZXNzaW9uT3ZlcnZpZXdSb3dOb0RhdGEnICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3Um93Tm9EYXRhJyApOwogICAgfQoKICAgICMgZ2V0IGV4cHJlc3Npb24gY29uanVuY3Rpb24gZnJvbSBjb25kaXRpb24KICAgIGlmICggISRHZXRQYXJhbXtFeHByZXNzaW9uQ29uanVuY3Rpb259ICkgewogICAgICAgICRHZXRQYXJhbXtFeHByZXNzaW9uQ29uanVuY3Rpb259ID0gJENvbmRpdGlvbkRhdGF7RXhwcmVzc2lvbkNvbmp1bmN0aW9ufSB8fCAnJzsKICAgIH0KCiAgICAjIHNldCByYWRpbyBidXR0b25zIGZvciBleHByZXNzaW9uIGNvbmp1bmN0aW9uCiAgICBpZiAoICRHZXRQYXJhbXtFeHByZXNzaW9uQ29uanVuY3Rpb259IGVxICdhbGwnICkgewogICAgICAgICRDb25kaXRpb25EYXRhe2FsbHNlbGVjdGVkfSA9ICdjaGVja2VkPSJjaGVja2VkIic7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkQ29uZGl0aW9uRGF0YXthbnlzZWxlY3RlZH0gPSAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgfQoKICAgICMgb3V0cHV0IGhlYWRlcgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlciggVHlwZSA9PiAnU21hbGwnICk7CgogICAgIyBnZW5lcmF0ZSBWYWxpZE9wdGlvblN0cmluZwogICAgJENvbmRpdGlvbkRhdGF7VmFsaWRPcHRpb25TdHJpbmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXCVWYWxpZExpc3QsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1ZhbGlkSUQnLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRDb25kaXRpb25EYXRhe1ZhbGlkSUR9IHx8ICggJFZhbGlkT2JqZWN0LT5WYWxpZElEc0dldCgpIClbMF0sCiAgICAgICAgU29ydCAgICAgICAgPT4gJ051bWVyaWNLZXknLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDEsCiAgICAgICAgQ2xhc3MgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgYWRkIHRoZSB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzCiAgICBmb3IgbXkgJEJsb2NrTmFtZSAoQFZhbGlkYXRpb25FcnJvcnMpIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAkQmxvY2tOYW1lLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2VuZXJhdGUgb3V0cHV0CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXskQ2hhbmdlRGF0YX0sCiAgICAgICAgICAgICVDb25kaXRpb25EYXRhLAogICAgICAgIH0sCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoCiAgICAgICAgVHlwZSA9PiAnU21hbGwnLAogICAgKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKIyBzaG93IGV4aXN0aW5nIGV4cHJlc3Npb25zCnN1YiBfRXhwcmVzc2lvbk92ZXJ2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIGlmICEkUGFyYW17RXhwcmVzc2lvbklEc307CiAgICByZXR1cm4gaWYgcmVmICRQYXJhbXtFeHByZXNzaW9uSURzfSBuZSAnQVJSQVknOwoKICAgIG15IEBFeHByZXNzaW9uSURzID0gQHsgJFBhcmFte0V4cHJlc3Npb25JRHN9IH07CgogICAgIyBhbHNvIHNob3cgYSBuZXcgZW1wdHkgZXhwcmVzc2lvbiBsaW5lCiAgICBpZiAoICRQYXJhbXtOZXdFeHByZXNzaW9ufSApIHsKICAgICAgICBwdXNoIEBFeHByZXNzaW9uSURzLCAnTkVXJzsKICAgIH0KCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIGlmICggIUBFeHByZXNzaW9uSURzICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdFeHByZXNzaW9uT3ZlcnZpZXdSb3dOb0RhdGEnICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIEVYUFJFU1NJT05JRDoKICAgIGZvciBteSAkRXhwcmVzc2lvbklEICggc29ydCB7ICRhIGNtcCAkYiB9IEBFeHByZXNzaW9uSURzICkgewoKICAgICAgICAjIHRvIHN0b3JlIHRoZSBkYXRlIG9mIGFuIGV4cHJlc3Npb24KICAgICAgICBteSAkRXhwcmVzc2lvbkRhdGEgPSB7fTsKCiAgICAgICAgIyBzZXQgZXhwcmVzc2lvbiBpZCB0byAnTkVXJyBmb3IgZnVydGhlciBmdW5jdGlvbiBjYWxscwogICAgICAgIGlmICggJEV4cHJlc3Npb25JRCBlcSAnTkVXJyApIHsKICAgICAgICAgICAgJEV4cHJlc3Npb25EYXRhLT57RXhwcmVzc2lvbklEfSA9ICRFeHByZXNzaW9uSUQ7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBkYXRhIGZvciBhbiBleGlzdGluZyBleHByZXNzaW9uCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGdldCBjb25kaXRpb24gZGF0YQogICAgICAgICAgICAkRXhwcmVzc2lvbkRhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbicpLT5FeHByZXNzaW9uR2V0KAogICAgICAgICAgICAgICAgRXhwcmVzc2lvbklEID0+ICRFeHByZXNzaW9uSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBFWFBSRVNTSU9OSUQgaWYgISRFeHByZXNzaW9uRGF0YTsKICAgICAgICB9CgogICAgICAgICMgb3V0cHV0IG92ZXJ2aWV3IHJvdwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdFeHByZXNzaW9uT3ZlcnZpZXdSb3cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICV7JEV4cHJlc3Npb25EYXRhfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgb2JqZWN0IHNlbGVjdGlvbgogICAgICAgICRTZWxmLT5fU2hvd09iamVjdFNlbGVjdGlvbigKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyRFeHByZXNzaW9uRGF0YX0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IHNlbGVjb3Igc2VsZWN0aW9uCiAgICAgICAgJFNlbGYtPl9TaG93U2VsZWN0b3JTZWxlY3Rpb24oCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXskRXhwcmVzc2lvbkRhdGF9LAogICAgICAgICk7CgogICAgICAgICMgc2hvdyBhdHRyaWJ1dGUgc2VsZWN0aW9uCiAgICAgICAgJFNlbGYtPl9TaG93QXR0cmlidXRlU2VsZWN0aW9uKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICV7JEV4cHJlc3Npb25EYXRhfSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgb3BlcmF0b3Igc2VsZWN0aW9uCiAgICAgICAgJFNlbGYtPl9TaG93T3BlcmF0b3JTZWxlY3Rpb24oCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXskRXhwcmVzc2lvbkRhdGF9LAogICAgICAgICk7CgogICAgICAgICMgc2hvdyBjb21wYXJlIHZhbHVlIGZpZWxkCiAgICAgICAgJFNlbGYtPl9TaG93Q29tcGFyZVZhbHVlRmllbGQoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXskRXhwcmVzc2lvbkRhdGF9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCiMgc2hvdyBleGlzdGluZyBhY3Rpb25zCnN1YiBfQWN0aW9uT3ZlcnZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgISRQYXJhbXtBY3Rpb25JRHN9OwogICAgcmV0dXJuIGlmIHJlZiAkUGFyYW17QWN0aW9uSURzfSBuZSAnQVJSQVknOwoKICAgIG15IEBBY3Rpb25JRHMgPSBAeyAkUGFyYW17QWN0aW9uSURzfSB9OwoKICAgICMgYWxzbyBzaG93IGEgbmV3IGVtcHR5IGFjdGlvbiBsaW5lCiAgICBpZiAoICRQYXJhbXtOZXdBY3Rpb259ICkgewogICAgICAgIHB1c2ggQEFjdGlvbklEcywgJ05FVyc7CiAgICB9CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBpZiAoICFAQWN0aW9uSURzICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25PdmVydmlld1Jvd05vRGF0YScgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgQWN0aW9uSUQ6CiAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCB7ICRhIGNtcCAkYiB9IEBBY3Rpb25JRHMgKSB7CgogICAgICAgICMgdG8gc3RvcmUgdGhlIGRhdGUgb2YgYW4gYWN0aW9uCiAgICAgICAgbXkgJEFjdGlvbkRhdGEgPSB7fTsKCiAgICAgICAgIyBzZXQgYWN0aW9uIGlkIHRvICdORVcnIGZvciBmdXJ0aGVyIGZ1bmN0aW9uIGNhbGxzCiAgICAgICAgaWYgKCAkQWN0aW9uSUQgZXEgJ05FVycgKSB7CiAgICAgICAgICAgICRBY3Rpb25EYXRhLT57QWN0aW9uSUR9ID0gJEFjdGlvbklEOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgZGF0YSBmb3IgYW4gZXhpc3RpbmcgYWN0aW9uCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGdldCBjb25kaXRpb24gZGF0YQogICAgICAgICAgICAkQWN0aW9uRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyktPkFjdGlvbkdldCgKICAgICAgICAgICAgICAgIEFjdGlvbklEID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgQWN0aW9uSUQgaWYgISRBY3Rpb25EYXRhOwogICAgICAgIH0KCiAgICAgICAgIyBvdXRwdXQgb3ZlcnZpZXcgcm93CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3Um93JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAleyRBY3Rpb25EYXRhfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgb2JqZWN0IHNlbGVjdGlvbgogICAgICAgICRTZWxmLT5fU2hvd09iamVjdFNlbGVjdGlvbigKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyRBY3Rpb25EYXRhfSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgc2VsZWNvciBzZWxlY3Rpb24KICAgICAgICAkU2VsZi0+X1Nob3dTZWxlY3RvclNlbGVjdGlvbigKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyRBY3Rpb25EYXRhfSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgYXR0cmlidXRlIHNlbGVjdGlvbgogICAgICAgICRTZWxmLT5fU2hvd0F0dHJpYnV0ZVNlbGVjdGlvbigKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyRBY3Rpb25EYXRhfSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgb3BlcmF0b3Igc2VsZWN0aW9uCiAgICAgICAgJFNlbGYtPl9TaG93T3BlcmF0b3JTZWxlY3Rpb24oCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXskQWN0aW9uRGF0YX0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGNvbXBhcmUgdmFsdWUgZmllbGQKICAgICAgICAkU2VsZi0+X1Nob3dDb21wYXJlVmFsdWVGaWVsZCgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyRBY3Rpb25EYXRhfSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgojIHNob3cgb2JqZWN0IGRyb3Bkb3duIGZpZWxkCnN1YiBfU2hvd09iamVjdFNlbGVjdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG9iamVjdCBzZWxlY3Rpb24gbGlzdAogICAgbXkgJE9iamVjdExpc3QgPSAkU2VsZi0+X0dldE9iamVjdFNlbGVjdGlvbiglUGFyYW0pOwoKICAgICMgYWRkIGFuIGVtcHR5IHNlbGVjdGlvbiBpZiBubyBsaXN0IGlzIGF2YWlsYWJsZSBvciBub3RoaW5nIGlzIHNlbGVjdGVkCiAgICBteSAkUG9zc2libGVOb25lID0gMDsKICAgIGlmICgKICAgICAgICAhJE9iamVjdExpc3QKICAgICAgICB8fCAhcmVmICRPYmplY3RMaXN0IGVxICdIQVNIJwogICAgICAgIHx8ICEleyRPYmplY3RMaXN0fQogICAgICAgIHx8ICEkUGFyYW17T2JqZWN0SUR9CiAgICAgICAgKQogICAgewogICAgICAgICRQb3NzaWJsZU5vbmUgPSAxOwogICAgfQoKICAgICMgbmFtZSBvZiB0aGUgZGl2IHRoYXQgc2hvdWxkIGJlIHVwZGF0ZWQKICAgIG15ICRVcGRhdGVEaXZOYW1lOwoKICAgICMgaWQgbmFtZSBvZiB0aGUgaW52b2x2ZWQgZWxlbWVudCAoICdFeHByZXNzaW9uSUQnIG9yICdBY3Rpb25JRCcgKQogICAgbXkgJElETmFtZTsKCiAgICAjIGJsb2NrIG5hbWUgZm9yIHRoZSBvdXRwdXQgbGF5b3V0IGJsb2NrCiAgICBteSAkQmxvY2tOYW1lOwoKICAgICMgZm9yIGV4cHJlc3Npb24gZWxlbWVudHMKICAgIGlmICggJFBhcmFte0V4cHJlc3Npb25JRH0gKSB7CiAgICAgICAgJFVwZGF0ZURpdk5hbWUgPSAiRXhwcmVzc2lvbklELSRQYXJhbXtFeHByZXNzaW9uSUR9LUNvbXBhcmVWYWx1ZS1EaXYiOwogICAgICAgICRJRE5hbWUgICAgICAgID0gJ0V4cHJlc3Npb25JRCc7CiAgICAgICAgJEJsb2NrTmFtZSAgICAgPSAnRXhwcmVzc2lvbk92ZXJ2aWV3Um93RWxlbWVudE9iamVjdCc7CiAgICB9CgogICAgIyBmb3IgYWN0aW9uIGVsZW1lbnRzCiAgICBlbHNpZiAoICRQYXJhbXtBY3Rpb25JRH0gKSB7CiAgICAgICAgJFVwZGF0ZURpdk5hbWUgPSAiQWN0aW9uSUQtJFBhcmFte0FjdGlvbklEfS1BY3Rpb25WYWx1ZS1EaXYiOwogICAgICAgICRJRE5hbWUgICAgICAgID0gJ0FjdGlvbklEJzsKICAgICAgICAkQmxvY2tOYW1lICAgICA9ICdBY3Rpb25PdmVydmlld1Jvd0VsZW1lbnRPYmplY3QnOwogICAgfQoKICAgICMgcGFyYW1ldGVycyBmb3IgYWpheAogICAgJFBhcmFte09iamVjdE9wdGlvbk5hbWV9ID0gJElETmFtZSAuICctJyAuICRQYXJhbXskSUROYW1lfSAuICctT2JqZWN0SUQnOwogICAgJFBhcmFte0lETmFtZX0gICAgICAgICAgID0gJElETmFtZTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZ2VuZXJhdGUgT2JqZWN0T3B0aW9uU3RyaW5nCiAgICBteSAkT2JqZWN0T3B0aW9uU3RyaW5nID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgID0+ICRPYmplY3RMaXN0LAogICAgICAgIE5hbWUgICAgICAgICA9PiAkUGFyYW17T2JqZWN0T3B0aW9uTmFtZX0sCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtPYmplY3RJRH0sCiAgICAgICAgUG9zc2libGVOb25lID0+ICRQb3NzaWJsZU5vbmUsCiAgICAgICAgVHJhbnNsYXRpb24gID0+IDEsCiAgICApOwoKICAgICMgb3V0cHV0IG9iamVjdCBzZWxlY3Rpb24KICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJEJsb2NrTmFtZSwKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBPYmplY3RPcHRpb25TdHJpbmcgPT4gJE9iamVjdE9wdGlvblN0cmluZywKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKIyBzaG93IHNlbGVjdG9yIGRyb3Bkb3duIGZpZWxkCnN1YiBfU2hvd1NlbGVjdG9yU2VsZWN0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgc2VsZWN0b3Igc2VsZWN0aW9uIGxpc3QKICAgIG15ICRTZWxlY3Rvckxpc3QgPSAkU2VsZi0+X0dldFNlbGVjdG9yU2VsZWN0aW9uKCVQYXJhbSk7CgogICAgIyBhZGQgYW4gZW1wdHkgc2VsZWN0aW9uIGlmIG5vIGxpc3QgaXMgYXZhaWxhYmxlIG9yIG5vdGhpbmcgaXMgc2VsZWN0ZWQKICAgIG15ICRQb3NzaWJsZU5vbmUgPSAwOwogICAgaWYgKAogICAgICAgICEkU2VsZWN0b3JMaXN0CiAgICAgICAgfHwgIXJlZiAkU2VsZWN0b3JMaXN0IGVxICdIQVNIJwogICAgICAgIHx8ICEleyRTZWxlY3Rvckxpc3R9CiAgICAgICAgfHwgISRQYXJhbXtTZWxlY3Rvcn0KICAgICAgICApCiAgICB7CiAgICAgICAgJFBvc3NpYmxlTm9uZSA9IDE7CiAgICB9CgogICAgIyBpZCBuYW1lIG9mIHRoZSBpbnZvbHZlZCBlbGVtZW50ICggJ0V4cHJlc3Npb25JRCcgb3IgJ0FjdGlvbklEJyApCiAgICBteSAkSUROYW1lOwoKICAgICMgYmxvY2sgbmFtZSBmb3IgdGhlIG91dHB1dCBsYXlvdXQgYmxvY2sKICAgIG15ICRCbG9ja05hbWU7CgogICAgIyBmb3IgZXhwcmVzc2lvbiBlbGVtZW50cwogICAgaWYgKCAkUGFyYW17RXhwcmVzc2lvbklEfSApIHsKICAgICAgICAkSUROYW1lICAgID0gJ0V4cHJlc3Npb25JRCc7CiAgICAgICAgJEJsb2NrTmFtZSA9ICdFeHByZXNzaW9uT3ZlcnZpZXdSb3dFbGVtZW50U2VsZWN0b3InOwogICAgfQoKICAgICMgZm9yIGFjdGlvbiBlbGVtZW50cwogICAgZWxzaWYgKCAkUGFyYW17QWN0aW9uSUR9ICkgewogICAgICAgICRJRE5hbWUgICAgPSAnQWN0aW9uSUQnOwogICAgICAgICRCbG9ja05hbWUgPSAnQWN0aW9uT3ZlcnZpZXdSb3dFbGVtZW50U2VsZWN0b3InOwogICAgfQoKICAgICMgcGFyYW1ldGVycyBmb3IgYWpheAogICAgJFBhcmFte09iamVjdE9wdGlvbk5hbWV9ID0gJElETmFtZSAuICctJyAuICRQYXJhbXskSUROYW1lfSAuICctU2VsZWN0b3InOwogICAgJFBhcmFte0lETmFtZX0gICAgICAgICAgID0gJElETmFtZTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZ2VuZXJhdGUgU2VsZWN0b3JPcHRpb25TdHJpbmcKICAgIG15ICRTZWxlY3Rvck9wdGlvblN0cmluZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiAkU2VsZWN0b3JMaXN0LAogICAgICAgIE5hbWUgICAgICAgICA9PiAkUGFyYW17T2JqZWN0T3B0aW9uTmFtZX0sCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtTZWxlY3Rvcn0sCiAgICAgICAgUG9zc2libGVOb25lID0+ICRQb3NzaWJsZU5vbmUsCiAgICAgICAgVHJhbnNsYXRpb24gID0+IDEsCiAgICApOwoKICAgICMgb3V0cHV0IHNlbGVjdG9yIHNlbGVjdGlvbgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAkQmxvY2tOYW1lLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFNlbGVjdG9yT3B0aW9uU3RyaW5nID0+ICRTZWxlY3Rvck9wdGlvblN0cmluZywKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKIyBzaG93IGF0dHJpYnV0ZSBkcm9wZG93biBmaWVsZApzdWIgX1Nob3dBdHRyaWJ1dGVTZWxlY3Rpb24gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIG5hbWUgb2YgdGhlIGRpdiB0aGF0IHNob3VsZCBiZSB1cGRhdGVkCiAgICBteSAkVXBkYXRlRGl2TmFtZTsKCiAgICAjIGlkIG5hbWUgb2YgdGhlIGludm9sdmVkIGVsZW1lbnQgKCAnRXhwcmVzc2lvbklEJyBvciAnQWN0aW9uSUQnICkKICAgIG15ICRJRE5hbWU7CgogICAgIyBibG9jayBuYW1lIGZvciB0aGUgb3V0cHV0IGxheW91dCBibG9jawogICAgbXkgJEJsb2NrTmFtZTsKCiAgICAjIG5hbWUgb2YgdGhlIHZhbHVlIGZpZWxkICggQ29tcGFyZVZhbHVlIG9yIEFjdGlvblZhbHVlICkKICAgIG15ICRWYWx1ZUZpZWxkTmFtZTsKCiAgICAjIGZvciBleHByZXNzaW9uIGVsZW1lbnRzCiAgICBpZiAoICRQYXJhbXtFeHByZXNzaW9uSUR9ICkgewogICAgICAgICRVcGRhdGVEaXZOYW1lICA9ICJFeHByZXNzaW9uSUQtJFBhcmFte0V4cHJlc3Npb25JRH0tQ29tcGFyZVZhbHVlLURpdiI7CiAgICAgICAgJElETmFtZSAgICAgICAgID0gJ0V4cHJlc3Npb25JRCc7CiAgICAgICAgJEJsb2NrTmFtZSAgICAgID0gJ0V4cHJlc3Npb25PdmVydmlld1Jvd0VsZW1lbnRBdHRyaWJ1dGUnOwogICAgICAgICRWYWx1ZUZpZWxkTmFtZSA9ICdDb21wYXJlVmFsdWUnOwogICAgfQoKICAgICMgZm9yIGFjdGlvbiBlbGVtZW50cwogICAgZWxzaWYgKCAkUGFyYW17QWN0aW9uSUR9ICkgewogICAgICAgICRVcGRhdGVEaXZOYW1lICA9ICJBY3Rpb25JRC0kUGFyYW17QWN0aW9uSUR9LUFjdGlvblZhbHVlLURpdiI7CiAgICAgICAgJElETmFtZSAgICAgICAgID0gJ0FjdGlvbklEJzsKICAgICAgICAkQmxvY2tOYW1lICAgICAgPSAnQWN0aW9uT3ZlcnZpZXdSb3dFbGVtZW50QXR0cmlidXRlJzsKICAgICAgICAkVmFsdWVGaWVsZE5hbWUgPSAnQWN0aW9uVmFsdWUnOwogICAgfQoKICAgICMgZ2V0IGF0dHJpYnV0ZSBzZWxlY3Rpb24gbGlzdAogICAgbXkgJEF0dHJpYnV0ZUxpc3QgPSAkU2VsZi0+X0dldEF0dHJpYnV0ZVNlbGVjdGlvbigKICAgICAgICBPYmplY3RJRCA9PiAkUGFyYW17T2JqZWN0SUR9LAogICAgICAgIFNlbGVjdG9yID0+ICRQYXJhbXtTZWxlY3Rvcn0sCiAgICAgICAgJElETmFtZSAgPT4gJFBhcmFteyRJRE5hbWV9LAogICAgKTsKCiAgICAjIGFkZCBhbiBlbXB0eSBzZWxlY3Rpb24gaWYgbm8gbGlzdCBpcyBhdmFpbGFibGUgb3Igbm90aGluZyBpcyBzZWxlY3RlZAogICAgbXkgJFBvc3NpYmxlTm9uZSA9IDA7CiAgICBpZiAoCiAgICAgICAgISRBdHRyaWJ1dGVMaXN0CiAgICAgICAgfHwgIXJlZiAkQXR0cmlidXRlTGlzdCBlcSAnSEFTSCcKICAgICAgICB8fCAhJXskQXR0cmlidXRlTGlzdH0KICAgICAgICB8fCAhJFBhcmFte0F0dHJpYnV0ZUlEfQogICAgICAgICkKICAgIHsKICAgICAgICAkUG9zc2libGVOb25lID0gMTsKICAgIH0KCiAgICAjIHBhcmFtZXRlcnMgZm9yIGFqYXgKICAgICRQYXJhbXtPYmplY3RPcHRpb25OYW1lfSA9ICRJRE5hbWUgLiAnLScgLiAkUGFyYW17JElETmFtZX0gLiAnLUF0dHJpYnV0ZUlEJzsKICAgICRQYXJhbXtJRE5hbWV9ICAgICAgICAgICA9ICRJRE5hbWU7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGdlbmVyYXRlIEF0dHJpYnV0ZU9wdGlvblN0cmluZwogICAgbXkgJEF0dHJpYnV0ZU9wdGlvblN0cmluZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiAkQXR0cmlidXRlTGlzdCwKICAgICAgICBOYW1lICAgICAgICAgPT4gJFBhcmFte09iamVjdE9wdGlvbk5hbWV9LAogICAgICAgIFNlbGVjdGVkSUQgICA9PiAkUGFyYW17QXR0cmlidXRlSUR9LAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAkUG9zc2libGVOb25lLAogICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgKTsKCiAgICAjIG91dHB1dCBhdHRyaWJ1dGUgc2VsZWN0aW9uCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICRCbG9ja05hbWUsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQXR0cmlidXRlT3B0aW9uU3RyaW5nID0+ICRBdHRyaWJ1dGVPcHRpb25TdHJpbmcsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCiMgc2hvdyBvcGVyYXRvciBkcm9wZG93biBmaWVsZApzdWIgX1Nob3dPcGVyYXRvclNlbGVjdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgaWQgbmFtZSBvZiB0aGUgaW52b2x2ZWQgZWxlbWVudCAoICdFeHByZXNzaW9uSUQnIG9yICdBY3Rpb25JRCcgKQogICAgbXkgJElETmFtZTsKCiAgICAjIGJsb2NrIG5hbWUgZm9yIHRoZSBvdXRwdXQgbGF5b3V0IGJsb2NrCiAgICBteSAkQmxvY2tOYW1lOwoKICAgICMgZm9yIGV4cHJlc3Npb24gZWxlbWVudHMKICAgIGlmICggJFBhcmFte0V4cHJlc3Npb25JRH0gKSB7CiAgICAgICAgJElETmFtZSAgICA9ICdFeHByZXNzaW9uSUQnOwogICAgICAgICRCbG9ja05hbWUgPSAnRXhwcmVzc2lvbk92ZXJ2aWV3Um93RWxlbWVudE9wZXJhdG9yJzsKICAgIH0KCiAgICAjIGZvciBhY3Rpb24gZWxlbWVudHMKICAgIGVsc2lmICggJFBhcmFte0FjdGlvbklEfSApIHsKICAgICAgICAkSUROYW1lICAgID0gJ0FjdGlvbklEJzsKICAgICAgICAkQmxvY2tOYW1lID0gJ0FjdGlvbk92ZXJ2aWV3Um93RWxlbWVudE9wZXJhdG9yJzsKICAgIH0KCiAgICAjIGdldCBvcGVyYXRvciBzZWxlY3Rpb24gbGlzdAogICAgbXkgJE9wZXJhdG9yTGlzdCA9ICRTZWxmLT5fR2V0T3BlcmF0b3JTZWxlY3Rpb24oCiAgICAgICAgT2JqZWN0SUQgICAgPT4gJFBhcmFte09iamVjdElEfSwKICAgICAgICBBdHRyaWJ1dGVJRCA9PiAkUGFyYW17QXR0cmlidXRlSUR9LAogICAgICAgICRJRE5hbWUgICAgID0+ICRQYXJhbXskSUROYW1lfSwKICAgICk7CgogICAgIyBhZGQgYW4gZW1wdHkgc2VsZWN0aW9uIGlmIG5vIGxpc3QgaXMgYXZhaWxhYmxlIG9yIG5vdGhpbmcgaXMgc2VsZWN0ZWQKICAgIG15ICRQb3NzaWJsZU5vbmUgPSAwOwogICAgaWYgKAogICAgICAgICEkT3BlcmF0b3JMaXN0CiAgICAgICAgfHwgIXJlZiAkT3BlcmF0b3JMaXN0IGVxICdIQVNIJwogICAgICAgIHx8ICEleyRPcGVyYXRvckxpc3R9CiAgICAgICAgfHwgISRQYXJhbXtPcGVyYXRvcklEfQogICAgICAgICkKICAgIHsKICAgICAgICAkUG9zc2libGVOb25lID0gMTsKICAgIH0KCiAgICAjIHBhcmFtZXRlcnMgZm9yIGFqYXgKICAgICRQYXJhbXtPYmplY3RPcHRpb25OYW1lfSA9ICRJRE5hbWUgLiAnLScgLiAkUGFyYW17JElETmFtZX0gLiAnLU9wZXJhdG9ySUQnOwogICAgJFBhcmFte0lETmFtZX0gICAgICAgICAgID0gJElETmFtZTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZ2VuZXJhdGUgT3BlcmF0b3JPcHRpb25TdHJpbmcKICAgIG15ICRPcGVyYXRvck9wdGlvblN0cmluZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiAkT3BlcmF0b3JMaXN0LAogICAgICAgIE5hbWUgICAgICAgICA9PiAkUGFyYW17T2JqZWN0T3B0aW9uTmFtZX0sCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtPcGVyYXRvcklEfSwKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gJFBvc3NpYmxlTm9uZSwKICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMSwKICAgICk7CgogICAgIyBvdXRwdXQgb3BlcmF0b3Igc2VsZWN0aW9uCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICRCbG9ja05hbWUsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgT3BlcmF0b3JPcHRpb25TdHJpbmcgPT4gJE9wZXJhdG9yT3B0aW9uU3RyaW5nLAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgojIHNob3cgY29tcGFyZSB2YWx1ZSBmaWVsZApzdWIgX1Nob3dDb21wYXJlVmFsdWVGaWVsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbXBhcmUgdmFsdWUgZmllbGQgdHlwZQogICAgbXkgJEZpZWxkVHlwZSA9ICRTZWxmLT5fR2V0Q29tcGFyZVZhbHVlRmllbGRUeXBlKCVQYXJhbSk7CgogICAgIyBpZCBuYW1lIG9mIHRoZSBpbnZvbHZlZCBlbGVtZW50ICggJ0V4cHJlc3Npb25JRCcgb3IgJ0FjdGlvbklEJyApCiAgICBteSAkSUROYW1lOwoKICAgICMgYmxvY2sgbmFtZXMgZm9yIHRoZSBvdXRwdXQgbGF5b3V0IGJsb2NrCiAgICBteSAkQmxvY2tOYW1lVGV4dDsKICAgIG15ICRCbG9ja05hbWVTZWxlY3Rpb247CgogICAgbXkgJFZhbHVlRmllbGROYW1lOwoKICAgICMgZm9yIGV4cHJlc3Npb24gZWxlbWVudHMKICAgIGlmICggJFBhcmFte0V4cHJlc3Npb25JRH0gKSB7CiAgICAgICAgJElETmFtZSAgICAgICAgICAgICA9ICdFeHByZXNzaW9uSUQnOwogICAgICAgICRCbG9ja05hbWVUZXh0ICAgICAgPSAnRXhwcmVzc2lvbk92ZXJ2aWV3Um93RWxlbWVudENvbXBhcmVWYWx1ZVRleHQnOwogICAgICAgICRCbG9ja05hbWVTZWxlY3Rpb24gPSAnRXhwcmVzc2lvbk92ZXJ2aWV3Um93RWxlbWVudENvbXBhcmVWYWx1ZVNlbGVjdGlvbic7CiAgICAgICAgJFZhbHVlRmllbGROYW1lICAgICA9ICdDb21wYXJlVmFsdWUnOwogICAgfQoKICAgICMgZm9yIGFjdGlvbiBlbGVtZW50cwogICAgZWxzaWYgKCAkUGFyYW17QWN0aW9uSUR9ICkgewogICAgICAgICRJRE5hbWUgICAgICAgICAgICAgPSAnQWN0aW9uSUQnOwogICAgICAgICRCbG9ja05hbWVUZXh0ICAgICAgPSAnQWN0aW9uT3ZlcnZpZXdSb3dFbGVtZW50QWN0aW9uVmFsdWVUZXh0JzsKICAgICAgICAkQmxvY2tOYW1lU2VsZWN0aW9uID0gJ0FjdGlvbk92ZXJ2aWV3Um93RWxlbWVudEFjdGlvblZhbHVlU2VsZWN0aW9uJzsKICAgICAgICAkVmFsdWVGaWVsZE5hbWUgICAgID0gJ0FjdGlvblZhbHVlJzsKICAgIH0KCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgY29tcGFyZSB2YWx1ZSBpcyBhIHRleHQgZmllbGQKICAgIGlmICggJEZpZWxkVHlwZSBlcSAnVGV4dCcgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJEJsb2NrTmFtZVRleHQsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjb21wYXJlIHZhbHVlIGlzIGEgc2VsZWN0aW9uIGZpZWxkCiAgICBlbHNpZiAoICRGaWVsZFR5cGUgZXEgJ1NlbGVjdGlvbicgKSB7CgogICAgICAgICMgZ2V0IGNvbXBhcmUgdmFsdWUgc2VsZWN0aW9uIGxpc3QKICAgICAgICBteSAkQ29tcGFyZVZhbHVlTGlzdCA9ICRTZWxmLT5fR2V0Q29tcGFyZVZhbHVlU2VsZWN0aW9uKCVQYXJhbSk7CgogICAgICAgIG15ICRBdHRyaWJ1dGVOYW1lOwogICAgICAgIGlmICggJFBhcmFte0F0dHJpYnV0ZUlEfSApIHsKCiAgICAgICAgICAgICMgbG9va3VwIGF0dHJpYnV0ZSBuYW1lCiAgICAgICAgICAgICRBdHRyaWJ1dGVOYW1lID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKS0+QXR0cmlidXRlTG9va3VwKAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gJFBhcmFte0F0dHJpYnV0ZUlEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgYWRkIGFuIGVtcHR5IHNlbGVjdGlvbiBpZiBubyBsaXN0IGlzIGF2YWlsYWJsZSBvciBub3RoaW5nIGlzIHNlbGVjdGVkCiAgICAgICAgIyBvciB0aGUgbGlzdCBpcyB0aGUgd29ya29yZGVyIGFnZW50IGxpc3QKICAgICAgICBteSAkUG9zc2libGVOb25lID0gMDsKICAgICAgICBpZiAoCiAgICAgICAgICAgICRQYXJhbXtQb3NzaWJsZU5vbmV9CiAgICAgICAgICAgIHx8ICEkUGFyYW17JFZhbHVlRmllbGROYW1lfQogICAgICAgICAgICB8fCAhJENvbXBhcmVWYWx1ZUxpc3QKICAgICAgICAgICAgfHwgKCByZWYgJENvbXBhcmVWYWx1ZUxpc3QgZXEgJ0hBU0gnICAmJiAhJXskQ29tcGFyZVZhbHVlTGlzdH0gKQogICAgICAgICAgICB8fCAoIHJlZiAkQ29tcGFyZVZhbHVlTGlzdCBlcSAnQVJSQVknICYmICFAeyRDb21wYXJlVmFsdWVMaXN0fSApCiAgICAgICAgICAgIHx8ICgKICAgICAgICAgICAgICAgICRWYWx1ZUZpZWxkTmFtZSBlcSAnQWN0aW9uVmFsdWUnCiAgICAgICAgICAgICAgICAmJiAkQXR0cmlidXRlTmFtZQogICAgICAgICAgICAgICAgJiYgJEF0dHJpYnV0ZU5hbWUgZXEgJ1dvcmtPcmRlckFnZW50SUQnCiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFBvc3NpYmxlTm9uZSA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIGdlbmVyYXRlIFZhbHVlT3B0aW9uU3RyaW5nCiAgICAgICAgbXkgJFZhbHVlT3B0aW9uU3RyaW5nID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiAkQ29tcGFyZVZhbHVlTGlzdCwKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRJRE5hbWUgLiAnLScgLiAkUGFyYW17JElETmFtZX0gLiAnLScgLiAkVmFsdWVGaWVsZE5hbWUsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkUGFyYW17JFZhbHVlRmllbGROYW1lfSwKICAgICAgICAgICAgUG9zc2libGVOb25lID0+ICRQb3NzaWJsZU5vbmUsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgb3V0cHV0IHNlbGVjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICRCbG9ja05hbWVTZWxlY3Rpb24sCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgVmFsdWVPcHRpb25TdHJpbmcgPT4gJFZhbHVlT3B0aW9uU3RyaW5nLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjb21wYXJlIHZhbHVlIGlzIGEgZGF0ZSBmaWVsZAogICAgZWxzaWYgKCAkRmllbGRUeXBlIGVxICdEYXRlJyApIHsKCiAgICAgICAgIyBUT0RPIDogSW1wbGVtZW50IGRhdGUgc2VsZWN0aW9uIGxhdGVyIQogICAgfQoKICAgICMgY29tcGFyZSB2YWx1ZSBpcyBhbiBhdXRvY29tcGxldGUgZmllbGQKICAgIGVsc2lmICggJEZpZWxkVHlwZSBlcSAnQXV0b2NvbXBsZXRlJyApIHsKCiAgICAgICAgIyBUT0RPIDogSW1wbGVtZW50IGF1dG9jb21wbGV0ZSBzZWxlY3Rpb24gbGF0ZXIhCiAgICB9CgogICAgIyBzaG93IGVtcHR5IGJsb2NrIGlmIGZpZWxkIHR5cGUgaXMgdW5rbm93bgogICAgZWxzZSB7CgogICAgICAgICMgb3V0cHV0IGVtcHR5IGJsb2NrCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJEJsb2NrTmFtZVNlbGVjdGlvbiwKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKIyBnZXQgY29tcGFyZSB2YWx1ZSBmaWVsZCB0eXBlCnN1YiBfR2V0Q29tcGFyZVZhbHVlRmllbGRUeXBlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBzZXQgZGVmYXVsdCBmaWVsZCB0eXBlCiAgICBteSAkRmllbGRUeXBlID0gJ1NlbGVjdGlvbic7CgogICAgIyBpZiBhbiBhdHRyaWJ1dGUgaXMgc2V0CiAgICBpZiAoICRQYXJhbXtBdHRyaWJ1dGVJRH0gKSB7CgogICAgICAgICMgZ2V0IGNvbmRpdGlvbiBvYmplY3QKICAgICAgICBteSAkQ29uZGl0aW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKTsKCiAgICAgICAgIyBsb29rdXAgYXR0cmlidXRlIG5hbWUKICAgICAgICBteSAkQXR0cmlidXRlTmFtZSA9ICRDb25kaXRpb25PYmplY3QtPkF0dHJpYnV0ZUxvb2t1cCgKICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gJFBhcmFte0F0dHJpYnV0ZUlEfSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgaWYgKCAhJEF0dHJpYnV0ZU5hbWUgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJBdHRyaWJ1dGVJRCAkUGFyYW17QXR0cmlidXRlSUR9IGRvZXMgbm90IGV4aXN0ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHRoZSBmaWVsZCB0eXBlCiAgICAgICAgJEZpZWxkVHlwZSA9ICRDb25kaXRpb25PYmplY3QtPkNvbmRpdGlvbkNvbXBhcmVWYWx1ZUZpZWxkVHlwZSgKICAgICAgICAgICAgT2JqZWN0SUQgICAgPT4gJFBhcmFte09iamVjdElEfSwKICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gJFBhcmFte0F0dHJpYnV0ZUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIHJldHVybiBpZiAhJEZpZWxkVHlwZTsKICAgIH0KCiAgICAjIFdvcmthcm91bmQgZm9yIG5vdCB5ZXQgaW1wbGVtZW50ZWQgZmllbGQgdHlwZXMKICAgICMgVE9ETzogaW1wbGVtZW50IHRoZXNlIGZpZWxkIHR5cGVzIGxhdGVyIQogICAgaWYgKCAkRmllbGRUeXBlIGVxICdEYXRlJyApIHsKICAgICAgICAkRmllbGRUeXBlID0gJ1RleHQnOwogICAgfQogICAgZWxzaWYgKCAkRmllbGRUeXBlIGVxICdBdXRvY29tcGxldGUnICkgewogICAgICAgICRGaWVsZFR5cGUgPSAnU2VsZWN0aW9uJzsKICAgIH0KCiAgICByZXR1cm4gJEZpZWxkVHlwZTsKfQoKIyBnZXQgb2JqZWN0IGRyb3Bkb3duIGZpZWxkIGRhdGEKc3ViIF9HZXRPYmplY3RTZWxlY3Rpb24gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBvYmplY3QgbGlzdAogICAgbXkgJE9iamVjdExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbicpLT5PYmplY3RMaXN0KAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiAkT2JqZWN0TGlzdDsKfQoKIyBnZXQgc2VsZWN0b3IgZHJvcGRvd24gZmllbGQgZGF0YQpzdWIgX0dldFNlbGVjdG9yU2VsZWN0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNlbGVjdG9yTGlzdCA9IHt9OwoKICAgICMgaWYgYW4gb2JqZWN0IGlzIHNldAogICAgaWYgKCAkUGFyYW17T2JqZWN0SUR9ICkgewoKICAgICAgICAjIGdldCBzZWxlY3RvciBsaXN0CiAgICAgICAgJFNlbGVjdG9yTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyktPk9iamVjdFNlbGVjdG9yTGlzdCgKICAgICAgICAgICAgT2JqZWN0SUQgICAgID0+ICRQYXJhbXtPYmplY3RJRH0sCiAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkUGFyYW17Q29uZGl0aW9uSUR9LAogICAgICAgICAgICBFeHByZXNzaW9uSUQgPT4gJFBhcmFte0V4cHJlc3Npb25JRH0sCiAgICAgICAgICAgIEFjdGlvbklEICAgICA9PiAkUGFyYW17QWN0aW9uSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuICRTZWxlY3Rvckxpc3Q7Cn0KCiMgZ2V0IGF0dHJpYnV0ZSBzZWxlY3Rpb24gbGlzdCBkYXRhCnN1YiBfR2V0QXR0cmlidXRlU2VsZWN0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0byBzdG9yZSB0aGUgYXR0cml1dGVzCiAgICBteSAlQXR0cmlidXRlczsKCiAgICAjIGlmIGEgc2VsZWN0b3IgaXMgc2V0CiAgICBpZiAoICRQYXJhbXtTZWxlY3Rvcn0gKSB7CgogICAgICAgICMgZ2V0IGNvbmRpdGlvbiBvYmplY3QKICAgICAgICBteSAkQ29uZGl0aW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKTsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiBhbGwgYXR0cmlidXRlcwogICAgICAgIG15ICRBbGxBdHRyaWJ1dGVzID0gJENvbmRpdGlvbk9iamVjdC0+QXR0cmlidXRlTGlzdCgKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGxvb2t1cCBvYmplY3QgbmFtZQogICAgICAgIG15ICRPYmplY3ROYW1lID0gJENvbmRpdGlvbk9iamVjdC0+T2JqZWN0TG9va3VwKAogICAgICAgICAgICBPYmplY3RJRCA9PiAkUGFyYW17T2JqZWN0SUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICBpZiAoICEkT2JqZWN0TmFtZSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk9iamVjdElEICRQYXJhbXtPYmplY3RJRH0gZG9lcyBub3QgZXhpc3QhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgb2JqZWN0IGF0dHJpYnV0ZSBtYXBwaW5nIGZyb20gc3lzY29uZmlnCiAgICAgICAgbXkgJE9iamVjdEF0dHJpYnV0ZU1hcHBpbmc7CgogICAgICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgICAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAgICAgIyBnZXQgbWFwcGluZyBjb25maWcgZm9yIGV4cHJlc3Npb25zIG9yIGFjdGlvbnMKICAgICAgICBpZiAoICRQYXJhbXtFeHByZXNzaW9uSUR9ICkgewogICAgICAgICAgICAkT2JqZWN0QXR0cmlidXRlTWFwcGluZyA9ICRDb25maWdPYmplY3QtPkdldCgKICAgICAgICAgICAgICAgICRPYmplY3ROYW1lIC4gJzo6TWFwcGluZzo6RXhwcmVzc2lvbjo6T2JqZWN0OjpBdHRyaWJ1dGUnLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRQYXJhbXtBY3Rpb25JRH0gKSB7CiAgICAgICAgICAgICRPYmplY3RBdHRyaWJ1dGVNYXBwaW5nID0gJENvbmZpZ09iamVjdC0+R2V0KAogICAgICAgICAgICAgICAgJE9iamVjdE5hbWUgLiAnOjpNYXBwaW5nOjpBY3Rpb246Ok9iamVjdDo6QXR0cmlidXRlJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHRoZSBsaXN0IG9mIGR5bmFtaWMgZmllbGRzIChjaGFuZ2Ugb3Igd29ya29yZGVyKQogICAgICAgIG15ICREeW5hbWljRmllbGRzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgICAgIE9iamVjdFR5cGUgPT4gJE9iamVjdE5hbWUsCiAgICAgICAgKTsKCiAgICAgICAgIyBidWlsZCBhIGxvb2t1cCBoYXNoIGZvciBhbGwgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgb2JqZWN0IChjaGFuZ2Ugb3Igd29ya29yZGVyKQogICAgICAgIG15ICVEeW5hbWljRmllbGROYW1lOwogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkICggQHskRHluYW1pY0ZpZWxkc30gKSB7CiAgICAgICAgICAgICREeW5hbWljRmllbGROYW1leyAkRHluYW1pY0ZpZWxkLT57TmFtZX0gfSA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIGdldCB0aGUgdmFsaWQgYXR0cmlidXRlcyBmb3IgdGhlIGdpdmVuIG9iamVjdAogICAgICAgIEFUVFJJQlVURUlEOgogICAgICAgIGZvciBteSAkQXR0cmlidXRlSUQgKCBzb3J0IGtleXMgJXskQWxsQXR0cmlidXRlc30gKSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIGF0dHJpYnV0ZSBpcyBpbiB0aGUgbWFwcGluZwogICAgICAgICAgICBpZiAoICRPYmplY3RBdHRyaWJ1dGVNYXBwaW5nLT57ICRBbGxBdHRyaWJ1dGVzLT57JEF0dHJpYnV0ZUlEfSB9ICkgewogICAgICAgICAgICAgICAgJEF0dHJpYnV0ZXN7JEF0dHJpYnV0ZUlEfSA9ICRBbGxBdHRyaWJ1dGVzLT57JEF0dHJpYnV0ZUlEfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIGdldCBhdHRyaWJ1dGUgbmFtZQogICAgICAgICAgICAgICAgbXkgJEF0dHJpYnV0ZU5hbWUgPSAkQWxsQXR0cmlidXRlcy0+eyRBdHRyaWJ1dGVJRH07CgogICAgICAgICAgICAgICAgIyBjaGVjayBpZiB0aGUgYXR0cmlidXRlIGlzIGEgZHluYW1pYyBmaWVsZCBhbmQgZHluYW1pYyBmaWVsZHMgc2hvdWxkIGJlIHVzZWQgYXMgYXR0cmlidXRlcwogICAgICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEVJRCBpZiAhJE9iamVjdEF0dHJpYnV0ZU1hcHBpbmctPntEeW5hbWljRmllbGR9OwogICAgICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEVJRCBpZiAkQXR0cmlidXRlTmFtZSAhfiBteyBcQSBEeW5hbWljRmllbGRfIChcdyspIH14bXM7CgogICAgICAgICAgICAgICAgIyByZW1vdmUgdGhlIHByZWZpeCAnRHluYW1pY0ZpZWxkXycgZnJvbSBkeW5hbWljIGZpZWxkcyBmb3IgbmljZXIgZGlzcGxheQogICAgICAgICAgICAgICAgbXkgJEF0dHJpYnV0ZVdpdGhvdXRQcmVmaXggPSAkMTsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIGl0IGlzIGEgZHluYW1pYyBmaWVsZCBmb3IgdGhlIGNvcnJlY3Qgb2JqZWN0CiAgICAgICAgICAgICAgICBuZXh0IEFUVFJJQlVURUlEIGlmICEkRHluYW1pY0ZpZWxkTmFtZXskQXR0cmlidXRlV2l0aG91dFByZWZpeH07CgogICAgICAgICAgICAgICAgIyBhZGQgdGhlIGR5bmFtaWMgZmllbGQgdG8gYXR0cmlidXRlIGxpc3QKICAgICAgICAgICAgICAgICRBdHRyaWJ1dGVzeyRBdHRyaWJ1dGVJRH0gPSAkQXR0cmlidXRlV2l0aG91dFByZWZpeDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRBdHRyaWJ1dGUgKCB2YWx1ZXMgJUF0dHJpYnV0ZXMgKSB7CgogICAgICAgICAgICAjIHJlbW92ZSAnSUQnIGF0IHRoZSBlbmQgb2YgdGhlIGF0dHJpYnV0ZSBuYW1lIGZvciBuaWNlciBkaXNwbGF5CiAgICAgICAgICAgICRBdHRyaWJ1dGUgPX4gc3sgSUQgXHogfXt9eG1zOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXCVBdHRyaWJ1dGVzOwp9CgojIGdldCBvcGVyYXRvciBsaXN0IGRhdGEKc3ViIF9HZXRPcGVyYXRvclNlbGVjdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdG8gc3RvcmUgdGhlIG9wZXJhdG9ycwogICAgbXkgJU9wZXJhdG9yczsKCiAgICAjIGlmIGFuIGF0cmlidXRlIGlzIHNldAogICAgaWYgKCAkUGFyYW17QXR0cmlidXRlSUR9ICkgewoKICAgICAgICAjIGdldCBjb25kaXRpb24gb2JqZWN0CiAgICAgICAgbXkgJENvbmRpdGlvbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyk7CgogICAgICAgICMgbG9va3VwIG9iamVjdCBuYW1lCiAgICAgICAgbXkgJE9iamVjdE5hbWUgPSAkQ29uZGl0aW9uT2JqZWN0LT5PYmplY3RMb29rdXAoCiAgICAgICAgICAgIE9iamVjdElEID0+ICRQYXJhbXtPYmplY3RJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgbG9nIG9iamVjdAogICAgICAgIG15ICRMb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CgogICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICBpZiAoICEkT2JqZWN0TmFtZSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJPYmplY3RJRCAkUGFyYW17T2JqZWN0SUR9IGRvZXMgbm90IGV4aXN0ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgbG9va3VwIGF0dHJpYnV0ZSBuYW1lCiAgICAgICAgbXkgJEF0dHJpYnV0ZU5hbWUgPSAkQ29uZGl0aW9uT2JqZWN0LT5BdHRyaWJ1dGVMb29rdXAoCiAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+ICRQYXJhbXtBdHRyaWJ1dGVJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgIGlmICggISRBdHRyaWJ1dGVOYW1lICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkF0dHJpYnV0ZUlEICRQYXJhbXtBdHRyaWJ1dGVJRH0gZG9lcyBub3QgZXhpc3QhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgbGlzdCBvZiBhbGwgb3BlcmF0b3JzCiAgICAgICAgbXkgJEFsbE9wZXJhdG9ycyA9ICRDb25kaXRpb25PYmplY3QtPk9wZXJhdG9yTGlzdCgKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGdldCBhdHRyaWJ1dGUgb3BlcmF0b3IgbWFwcGluZyBmcm9tIHN5c2NvbmZpZwogICAgICAgIG15ICRNYXBwaW5nQ29uZmlnOwoKICAgICAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgICAgICMgZ2V0IG1hcHBpbmcgY29uZmlnIGZvciBleHByZXNzaW9ucyBvciBhY3Rpb25zCiAgICAgICAgaWYgKCAkUGFyYW17RXhwcmVzc2lvbklEfSApIHsKICAgICAgICAgICAgJE1hcHBpbmdDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoCiAgICAgICAgICAgICAgICAkT2JqZWN0TmFtZSAuICc6Ok1hcHBpbmc6OkV4cHJlc3Npb246OkF0dHJpYnV0ZTo6T3BlcmF0b3InCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFBhcmFte0FjdGlvbklEfSApIHsKICAgICAgICAgICAgJE1hcHBpbmdDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoCiAgICAgICAgICAgICAgICAkT2JqZWN0TmFtZSAuICc6Ok1hcHBpbmc6OkFjdGlvbjo6QXR0cmlidXRlOjpPcGVyYXRvcicKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgcmVtb3ZlIHRoZSBuYW1lIHBhcnQgb2YgdGhlIGR5bmFtaWMgZmllbGQgYW5kIHJlcGxhY2Ugb25seSB3aXRoIHRoZSBzdHJpbmcgIkR5bmFtaWNGaWVsZCIKICAgICAgICAkQXR0cmlidXRlTmFtZSA9fiBzeyBcQSBEeW5hbWljRmllbGRfIChcdyspIH17RHluYW1pY0ZpZWxkfXhtczsKCiAgICAgICAgbXkgJEF0dHJpYnV0ZU9wZXJhdG9yTWFwcGluZzsKICAgICAgICBpZiAoJE1hcHBpbmdDb25maWcpIHsKICAgICAgICAgICAgJEF0dHJpYnV0ZU9wZXJhdG9yTWFwcGluZyA9ICRNYXBwaW5nQ29uZmlnLT57JEF0dHJpYnV0ZU5hbWV9IHx8IHt9OwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgYWxsb3dlZCBvcGVyYXRvcnMgZm9yIHRoZSBnaXZlbiBhdHRyaWJ1dGUKICAgICAgICBPUEVSQVRPUklEOgogICAgICAgIGZvciBteSAkT3BlcmF0b3JJRCAoIHNvcnQga2V5cyAleyRBbGxPcGVyYXRvcnN9ICkgewoKICAgICAgICAgICAgIyBnZXQgb3BlcmF0b3IgbmFtZQogICAgICAgICAgICBteSAkT3BlcmF0b3JOYW1lID0gJEFsbE9wZXJhdG9ycy0+eyRPcGVyYXRvcklEfTsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgb3BlcmF0b3IgaXMgYWxsb3dlZCBmb3IgdGhpcyBhdHRyaWJ1dGUKICAgICAgICAgICAgbmV4dCBPUEVSQVRPUklEIGlmICEkQXR0cmlidXRlT3BlcmF0b3JNYXBwaW5nLT57JE9wZXJhdG9yTmFtZX07CgogICAgICAgICAgICAjIHJlbWVtYmVyIHRoZSBvcGVyYXRvcgogICAgICAgICAgICAkT3BlcmF0b3JzeyRPcGVyYXRvcklEfSA9ICRPcGVyYXRvck5hbWU7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBcJU9wZXJhdG9yczsKfQoKIyBnZXQgY29tcGFyZSB2YWx1ZSBsaXN0CnN1YiBfR2V0Q29tcGFyZVZhbHVlU2VsZWN0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0byBzdG9yZSB0aGUgY29tcGFyZSB2YWx1ZSBsaXN0CiAgICBteSAkQ29tcGFyZVZhbHVlTGlzdCA9IHt9OwoKICAgICMgaWYgYW4gYXR0cmlidXRlIGlzIHNldAogICAgaWYgKCAkUGFyYW17QXR0cmlidXRlSUR9ICkgewoKICAgICAgICAjIGdldCBjb25kaXRpb24gb2JqZWN0CiAgICAgICAgbXkgJENvbmRpdGlvbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyk7CgogICAgICAgICMgbG9va3VwIGF0dHJpYnV0ZSBuYW1lCiAgICAgICAgbXkgJEF0dHJpYnV0ZU5hbWUgPSAkQ29uZGl0aW9uT2JqZWN0LT5BdHRyaWJ1dGVMb29rdXAoCiAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+ICRQYXJhbXtBdHRyaWJ1dGVJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgIGlmICggISRBdHRyaWJ1dGVOYW1lICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQXR0cmlidXRlSUQgJFBhcmFte0F0dHJpYnV0ZUlEfSBkb2VzIG5vdCBleGlzdCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGdldCBjb21wYXJlIHZhbHVlIGxpc3QKICAgICAgICAkQ29tcGFyZVZhbHVlTGlzdCA9ICRDb25kaXRpb25PYmplY3QtPk9iamVjdENvbXBhcmVWYWx1ZUxpc3QoCiAgICAgICAgICAgIE9iamVjdElEICAgICAgPT4gJFBhcmFte09iamVjdElEfSwKICAgICAgICAgICAgQXR0cmlidXRlTmFtZSA9PiAkQXR0cmlidXRlTmFtZSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJENvbXBhcmVWYWx1ZUxpc3Q7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeDelete.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZURlbGV0ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBDaGFuZ2VJRAogICAgbXkgJENoYW5nZUlEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NoYW5nZUlEJyApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRDaGFuZ2VJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBDaGFuZ2VJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgQWN0aW9uICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZXJyb3Igc2NyZWVuCiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIScsICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259ICksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBjaGFuZ2UgZGF0YQogICAgbXkgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGlmIGNoYW5nZSBpcyBmb3VuZAogICAgaWYgKCAhJENoYW5nZSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlIScsICRDaGFuZ2VJRCApLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGJ1aWxkIGEgbG9va3VwIGhhc2ggZm9yIHRoZSBhbGxvd2VkIGNoYW5nZSBzdGF0ZXMKICAgIG15ICVBbGxvd2VkQ2hhbmdlU3RhdGVzID0gbWFwIHsgJF8gPT4gMSB9IEB7ICRTZWxmLT57Q29uZmlnfS0+e0NoYW5nZVN0YXRlc30gfTsKCiAgICAjIG9ubHkgYWxsb3cgZGVsZXRpb24gaWYgY2hhbmdlIGlzIGluIG9uZSBvZiB0aGUgYWxsb3dlZCBjaGFuZ2Ugc3RhdGVzCiAgICBpZiAoICEkQWxsb3dlZENoYW5nZVN0YXRlc3sgJENoYW5nZS0+e0NoYW5nZVN0YXRlfSB9ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAnQ2hhbmdlICIlcyIgZG9lcyBub3QgaGF2ZSBhbiBhbGxvd2VkIGNoYW5nZSBzdGF0ZSB0byBiZSBkZWxldGVkIScsICRDaGFuZ2VJRAogICAgICAgICAgICApLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlRGVsZXRlJyApIHsKCiAgICAgICAgIyBkZWxldGUgdGhlIGNoYW5nZQogICAgICAgIG15ICRDb3VsZERlbGV0ZUNoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRDb3VsZERlbGV0ZUNoYW5nZSkgewoKICAgICAgICAgICAgIyByZWRpcmVjdCB0byBjaGFuZ2Ugb3ZlcnZpZXcsIHdoZW4gdGhlIGRlbGV0aW9uIHdhcyBzdWNjZXNzZnVsCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRJVFNNQ2hhbmdlIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZSwgd2hlbiBkZWxldGUgZmFpbGVkCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjaGFuZ2VJRCAlcyEnLCAkQ2hhbmdlSUQgKSwKICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgdGhlIGRpYWxvZyB0eXBlLiBBcyBkZWZhdWx0LCB0aGUgZGlhbG9nIHdpbGwgaGF2ZSAyIGJ1dHRvbnM6IFllcyBhbmQgTm8KICAgIG15ICREaWFsb2dUeXBlID0gJ0NvbmZpcm1hdGlvbic7CgogICAgIyBvdXRwdXQgY29udGVudAogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50SVRTTUNoYW5nZURlbGV0ZScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyRDaGFuZ2V9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgYnVpbGQgdGhlIHJldHVybmVkIGRhdGEgc3RydWN0dXJlCiAgICBteSAlRGF0YSA9ICgKICAgICAgICBIVE1MICAgICAgID0+ICRPdXRwdXQsCiAgICAgICAgRGlhbG9nVHlwZSA9PiAkRGlhbG9nVHlwZSwKICAgICk7CgogICAgIyByZXR1cm4gSlNPTi1TdHJpbmcgYmVjYXVzZSBvZiBBSkFYLU1vZGUKICAgIG15ICRPdXRwdXRKU09OID0gJExheW91dE9iamVjdC0+SlNPTkVuY29kZSggRGF0YSA9PiBcJURhdGEgKTsKCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICBDb250ZW50VHlwZSA9PiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD0nIC4gJExheW91dE9iamVjdC0+e0NoYXJzZXR9LAogICAgICAgIENvbnRlbnQgICAgID0+ICRPdXRwdXRKU09OLAogICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgIE5vQ2FjaGUgICAgID0+IDEsCiAgICApOwp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeEdit.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZUVkaXQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBwYXJhbSBvYmplY3QKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIGdldCBuZWVkZWQgQ2hhbmdlSUQKICAgIG15ICRDaGFuZ2VJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDaGFuZ2VJRCcgKTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkQ2hhbmdlSUQgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJyksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRDb25maWdPYmplY3QtPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgZ2V0IGNoYW5nZSBvYmplY3QKICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGVycm9yIHNjcmVlbgogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyEnLCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSApLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY2hhbmdlIGRhdGEKICAgIG15ICRDaGFuZ2UgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBpZiBjaGFuZ2UgaXMgZm91bmQKICAgIGlmICggISRDaGFuZ2UgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnLCAkQ2hhbmdlSUQgKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBzdG9yZSBuZWVkZWQgcGFyYW1ldGVycyBpbiAlR2V0UGFyYW0gdG8gbWFrZSB0aGlzIHBhZ2UgcmVsb2FkYWJsZQogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRQYXJhbU5hbWUgKAogICAgICAgIHF3KAogICAgICAgIENoYW5nZVRpdGxlIERlc2NyaXB0aW9uIEp1c3RpZmljYXRpb24KICAgICAgICBDYXRlZ29yeUlEIEltcGFjdElEIFByaW9yaXR5SUQKICAgICAgICBBdHRhY2htZW50VXBsb2FkIEZpbGVJRAogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtTmFtZSApOwogICAgfQoKICAgICMgZ2V0IER5bmFtaWMgZmllbGRzIGZyb20gUGFyYW1PYmplY3QKICAgIG15ICVEeW5hbWljRmllbGRWYWx1ZXM7CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgbXkgJER5bmFtaWNGaWVsZCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9IHx8IHt9LAogICAgKTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGJhY2tlbmQgb2JqZWN0CiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gdGhlIHdlYiByZXF1ZXN0IGFuZCBhZGQgdGhlIHByZWZpeAogICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9CiAgICAgICAgICAgID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkVkaXRGaWVsZFZhbHVlR2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgUGFyYW1PYmplY3QgICAgICAgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgICk7CiAgICB9CgogICAgIyBzdG9yZSB0aW1lIHJlbGF0ZWQgZmllbGRzIGluICVHZXRQYXJhbQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntSZXF1ZXN0ZWRUaW1lfSApIHsKICAgICAgICBmb3IgbXkgJFRpbWVQYXJ0IChxdyhVc2VkIFllYXIgTW9udGggRGF5IEhvdXIgTWludXRlKSkgewogICAgICAgICAgICBteSAkUGFyYW1OYW1lID0gJ1JlcXVlc3RlZFRpbWUnIC4gJFRpbWVQYXJ0OwogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CiAgICAgICAgfQogICAgfQoKICAgICMgUmVtZW1iZXIgdGhlIHJlYXNvbiB3aHkgcGVyZm9ybWluZyB0aGUgc3ViYWN0aW9uIHdhcyBub3QgYXR0ZW1wdGVkLgogICAgbXkgJVZhbGlkYXRpb25FcnJvcjsKCiAgICAjIGtlZXAgQ2hhbmdlU3RhdGVJRCBvbmx5IGlmIGNvbmZpZ3VyZWQKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57Q2hhbmdlU3RhdGV9ICkgewogICAgICAgICRHZXRQYXJhbXtDaGFuZ2VTdGF0ZUlEfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDaGFuZ2VTdGF0ZUlEJyApOwogICAgfQoKICAgICMgZ2V0IHVwbG9hZCBjYWNoZSBvYmplY3QKICAgIG15ICRVcGxvYWRDYWNoZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlVwbG9hZENhY2hlJyk7CgogICAgIyBnZXQgZm9ybSBpZAogICAgJFNlbGYtPntGb3JtSUR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0Zvcm1JRCcgKTsKCiAgICAjIGNyZWF0ZSBmb3JtIGlkCiAgICBpZiAoICEkU2VsZi0+e0Zvcm1JRH0gKSB7CiAgICAgICAgJFNlbGYtPntGb3JtSUR9ID0gJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURDcmVhdGUoKTsKICAgIH0KCiAgICAjIHVwZGF0ZSBjaGFuZ2UKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdTYXZlJyApIHsKCiAgICAgICAgIyBjaGVjayB0aGUgdGl0bGUKICAgICAgICBpZiAoICEkR2V0UGFyYW17Q2hhbmdlVGl0bGV9ICkgewogICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9ye0NoYW5nZVRpdGxlU2VydmVyRXJyb3J9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgQ0lQCiAgICAgICAgZm9yIG15ICRUeXBlIChxdyhDYXRlZ29yeSBJbXBhY3QgUHJpb3JpdHkpKSB7CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXsiJHtUeXBlfUlEIn0gfHwgJEdldFBhcmFteyIke1R5cGV9SUQifSAhfiBteyBcQSBcZCsgXHogfXhtcyApIHsKICAgICAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7ICRUeXBlIC4gJ0lEU2VydmVyRXJyb3InIH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgbXkgJENJUElzVmFsaWQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VDSVBMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgSUQgICA9PiAkR2V0UGFyYW17IiR7VHlwZX1JRCJ9LAogICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJFR5cGUsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmICggISRDSVBJc1ZhbGlkICkgewogICAgICAgICAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7ICRUeXBlIC4gJ0lEU2VydmVyRXJyb3InIH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIHRoZSByZXF1ZXN0ZWQgdGltZQogICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57UmVxdWVzdGVkVGltZX0gJiYgJEdldFBhcmFte1JlcXVlc3RlZFRpbWVVc2VkfSApIHsKCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtSZXF1ZXN0ZWRUaW1lWWVhcn0KICAgICAgICAgICAgICAgICYmICRHZXRQYXJhbXtSZXF1ZXN0ZWRUaW1lTW9udGh9CiAgICAgICAgICAgICAgICAmJiAkR2V0UGFyYW17UmVxdWVzdGVkVGltZURheX0KICAgICAgICAgICAgICAgICYmIGRlZmluZWQgJEdldFBhcmFte1JlcXVlc3RlZFRpbWVIb3VyfQogICAgICAgICAgICAgICAgJiYgZGVmaW5lZCAkR2V0UGFyYW17UmVxdWVzdGVkVGltZU1pbnV0ZX0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICMgdHJhbnNmb3JtIGNoYW5nZSByZXF1ZXN0ZWQgdGltZSwgdGltZSBzdGFtcCBiYXNlZCBvbiB1c2VyIHRpbWUgem9uZQogICAgICAgICAgICAgICAgJUdldFBhcmFtID0gJExheW91dE9iamVjdC0+VHJhbnNmb3JtRGF0ZVNlbGVjdGlvbigKICAgICAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAgICAgUHJlZml4ID0+ICdSZXF1ZXN0ZWRUaW1lJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBmb3JtYXQgYXMgdGltZXN0YW1wLCB3aGVuIGFsbCByZXF1aXJlZCB0aW1lIHBhcmFtcyB3ZXJlIHBhc3NlZAogICAgICAgICAgICAgICAgJEdldFBhcmFte1JlcXVlc3RlZFRpbWV9ID0gc3ByaW50ZiAnJTA0ZC0lMDJkLSUwMmQgJTAyZDolMDJkOjAwJywKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17UmVxdWVzdGVkVGltZVllYXJ9LAogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXtSZXF1ZXN0ZWRUaW1lTW9udGh9LAogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXtSZXF1ZXN0ZWRUaW1lRGF5fSwKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17UmVxdWVzdGVkVGltZUhvdXJ9LAogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXtSZXF1ZXN0ZWRUaW1lTWludXRlfTsKCiAgICAgICAgICAgICAgICAjIHNhbml0eSBjaGVjayBvZiB0aGUgYXNzZW1ibGVkIHRpbWVzdGFtcAogICAgICAgICAgICAgICAgbXkgJFN5c3RlbVRpbWVEVE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRHZXRQYXJhbXtSZXF1ZXN0ZWRUaW1lfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGRvIG5vdCBzYXZlIHdoZW4gdGltZSBpcyBpbnZhbGlkCiAgICAgICAgICAgICAgICBpZiAoICEkU3lzdGVtVGltZURUT2JqZWN0ICkgewogICAgICAgICAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7UmVxdWVzdGVkVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIGl0IHdhcyBpbmRpY2F0ZWQgdGhhdCB0aGUgcmVxdWVzdGVkIHRpbWUgc2hvdWxkIGJlIHNldCwKICAgICAgICAgICAgICAgICMgYnV0IGF0IGxlYXN0IG9uZSBvZiB0aGUgcmVxdWlyZWQgdGltZSBwYXJhbXMgaXMgbWlzc2luZwogICAgICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcntSZXF1ZXN0ZWRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgIG15ICRWYWxpZGF0aW9uUmVzdWx0ID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkVkaXRGaWVsZFZhbHVlVmFsaWRhdGUoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFZhbGlkYXRpb25SZXN1bHQpICkgewogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAnQ291bGQgbm90IHBlcmZvcm0gdmFsaWRhdGlvbiBvbiBmaWVsZCAlcyEnLCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9CiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHByb3BhZ2F0ZSB2YWxpZGF0aW9uIGVycm9yIHRvIHRoZSBFcnJvciB2YXJpYWJsZSB0byBiZSBkZXRlY3RlZCBieSB0aGUgZnJvbnRlbmQKICAgICAgICAgICAgaWYgKCAkVmFsaWRhdGlvblJlc3VsdC0+e1NlcnZlckVycm9yfSApIHsKICAgICAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gJyBTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgdXBkYXRlIG9ubHkgd2hlbiB0aGVyZSBhcmUgbm8gaW5wdXQgdmFsaWRhdGlvbiBlcnJvcnMKICAgICAgICBpZiAoICElVmFsaWRhdGlvbkVycm9yICkgewoKICAgICAgICAgICAgIyBzZXR0aW5nIG9mIGNoYW5nZSBzdGF0ZSBhbmQgcmVxdWVzdGVkIHRpbWUgaXMgY29uZmlndXJhYmxlCiAgICAgICAgICAgIG15ICVBZGRpdGlvbmFsUGFyYW07CiAgICAgICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57Q2hhbmdlU3RhdGV9ICkgewogICAgICAgICAgICAgICAgJEFkZGl0aW9uYWxQYXJhbXtDaGFuZ2VTdGF0ZUlEfSA9ICRHZXRQYXJhbXtDaGFuZ2VTdGF0ZUlEfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1JlcXVlc3RlZFRpbWV9ICkgewogICAgICAgICAgICAgICAgJEFkZGl0aW9uYWxQYXJhbXtSZXF1ZXN0ZWRUaW1lfSA9ICRHZXRQYXJhbXtSZXF1ZXN0ZWRUaW1lfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyB1cGRhdGUgdGhlIGNoYW5nZQogICAgICAgICAgICBteSAkQ291bGRVcGRhdGVDaGFuZ2UgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VVcGRhdGUoCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJEdldFBhcmFte0Rlc2NyaXB0aW9ufSwKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gJEdldFBhcmFte0p1c3RpZmljYXRpb259LAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAkR2V0UGFyYW17Q2hhbmdlVGl0bGV9LAogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgICA9PiAkR2V0UGFyYW17Q2F0ZWdvcnlJRH0sCiAgICAgICAgICAgICAgICBJbXBhY3RJRCAgICAgID0+ICRHZXRQYXJhbXtJbXBhY3RJRH0sCiAgICAgICAgICAgICAgICBQcmlvcml0eUlEICAgID0+ICRHZXRQYXJhbXtQcmlvcml0eUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgJUFkZGl0aW9uYWxQYXJhbSwKICAgICAgICAgICAgICAgICVEeW5hbWljRmllbGRWYWx1ZXMsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHVwZGF0ZSB3YXMgc3VjY2Vzc2Z1bAogICAgICAgICAgICBpZiAoJENvdWxkVXBkYXRlQ2hhbmdlKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgYWxsIGF0dGFjaG1lbnRzIGZyb20gdXBsb2FkIGNhY2hlCiAgICAgICAgICAgICAgICBteSBAQXR0YWNobWVudHMgPSAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JREdldEFsbEZpbGVzRGF0YSgKICAgICAgICAgICAgICAgICAgICBGb3JtSUQgPT4gJFNlbGYtPntGb3JtSUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIGEgbG9va3VwIGxvb2t1cCBoYXNoIG9mIHRoZSBuZXcgYXR0YWNobWVudHMKICAgICAgICAgICAgICAgIG15ICVOZXdBdHRhY2htZW50OwogICAgICAgICAgICAgICAgZm9yIG15ICRBdHRhY2htZW50IChAQXR0YWNobWVudHMpIHsKCiAgICAgICAgICAgICAgICAgICAgIyB0aGUga2V5IGlzIHRoZSBmaWxlbmFtZSArIGZpbGVzaXplICsgY29udGVudCB0eXBlCiAgICAgICAgICAgICAgICAgICAgbXkgJEtleSA9ICRBdHRhY2htZW50LT57RmlsZW5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEF0dGFjaG1lbnQtPntGaWxlc2l6ZX0KICAgICAgICAgICAgICAgICAgICAgICAgLiAkQXR0YWNobWVudC0+e0NvbnRlbnRUeXBlfTsKCiAgICAgICAgICAgICAgICAgICAgIyBhcHBlbmQgY29udGVudCBpZCBpZiBhdmFpbGFibGUgKGZvciBuZXcgaW5saW5lIGltYWdlcykKICAgICAgICAgICAgICAgICAgICBpZiAoICRBdHRhY2htZW50LT57Q29udGVudElEfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEtleSAuPSAkQXR0YWNobWVudC0+e0NvbnRlbnRJRH07CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIHN0b3JlIGFsbCBvZiB0aGUgbmV3IGF0dGFjaG1lbnQgZGF0YQogICAgICAgICAgICAgICAgICAgICROZXdBdHRhY2htZW50eyRLZXl9ID0gJEF0dGFjaG1lbnQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBnZXQgYWxsIGF0dGFjaG1lbnRzIG1ldGEgZGF0YQogICAgICAgICAgICAgICAgbXkgQEV4aXN0aW5nQXR0YWNobWVudHMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBdHRhY2htZW50TGlzdCgKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgY2hlY2sgdGhlIGV4aXN0aW5nIGF0dGFjaG1lbnRzCiAgICAgICAgICAgICAgICBGSUxFTkFNRToKICAgICAgICAgICAgICAgIGZvciBteSAkRmlsZW5hbWUgKEBFeGlzdGluZ0F0dGFjaG1lbnRzKSB7CgogICAgICAgICAgICAgICAgICAgICMgZ2V0IHRoZSBleGlzdGluZyBhdHRhY2htZW50IGRhdGEKICAgICAgICAgICAgICAgICAgICBteSAkQXR0YWNobWVudERhdGEgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBdHRhY2htZW50R2V0KAogICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVuYW1lID0+ICRGaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgZG8gbm90IGNvbnNpZGVyIGlubGluZSBhdHRhY2htZW50cwogICAgICAgICAgICAgICAgICAgIG5leHQgRklMRU5BTUUgaWYgJEF0dGFjaG1lbnREYXRhLT57UHJlZmVyZW5jZXN9LT57Q29udGVudElEfTsKCiAgICAgICAgICAgICAgICAgICAgIyB0aGUga2V5IGlzIHRoZSBmaWxlbmFtZSArIGZpbGVzaXplICsgY29udGVudCB0eXBlCiAgICAgICAgICAgICAgICAgICAgIyAobm8gY29udGVudCBpZCwgYXMgZXhpc3RpbmcgYXR0YWNobWVudHMgZG9uJ3QgaGF2ZSBpdCkKICAgICAgICAgICAgICAgICAgICBteSAkS2V5ID0gJEF0dGFjaG1lbnREYXRhLT57RmlsZW5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEF0dGFjaG1lbnREYXRhLT57RmlsZXNpemV9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEF0dGFjaG1lbnREYXRhLT57Q29udGVudFR5cGV9OwoKICAgICAgICAgICAgICAgICAgICAjIGF0dGFjaG1lbnQgaXMgYWxyZWFkeSBleGlzdGluZywgd2UgY2FuIGRlbGV0ZSBpdCBmcm9tIHRoZSBuZXcgYXR0YWNobWVudCBoYXNoCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkTmV3QXR0YWNobWVudHskS2V5fSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlICROZXdBdHRhY2htZW50eyRLZXl9OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBleGlzdGluZyBhdHRhY2htZW50IGlzIG5vIGxvbmdlciBpbiBuZXcgYXR0YWNobWVudHMgaGFzaAogICAgICAgICAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBkZWxldGUgdGhlIGV4aXN0aW5nIGF0dGFjaG1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJERlbGV0ZVN1Y2Nlc3NmdWwgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBdHRhY2htZW50RGVsZXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZW5hbWUgPT4gJEZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICEkRGVsZXRlU3VjY2Vzc2Z1bCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyB3cml0ZSB0aGUgbmV3IGF0dGFjaG1lbnRzCiAgICAgICAgICAgICAgICBBVFRBQ0hNRU5UOgogICAgICAgICAgICAgICAgZm9yIG15ICRBdHRhY2htZW50ICggdmFsdWVzICVOZXdBdHRhY2htZW50ICkgewoKICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIGF0dGFjaG1lbnQgaXMgYW4gaW5saW5lIGF0dGFjaG1lbnQKICAgICAgICAgICAgICAgICAgICBteSAkSW5saW5lID0gMDsKICAgICAgICAgICAgICAgICAgICBpZiAoICRBdHRhY2htZW50LT57Q29udGVudElEfSApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgcmVtZW1iZXIgdGhhdCBpdCBpcyBpbmxpbmUKICAgICAgICAgICAgICAgICAgICAgICAgJElubGluZSA9IDE7CgogICAgICAgICAgICAgICAgICAgICAgICAjIHJlbWVtYmVyIGlmIHRoaXMgaW5saW5lIGF0dGFjaG1lbnQgaXMgdXNlZCBpbgogICAgICAgICAgICAgICAgICAgICAgICAjIHRoZSBjaGFuZ2UgZGVzY3JpcHRpb24gb3IganVzdGlmaWNhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICBteSAkQ29udGVudElERm91bmQ7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIGNoYW5nZSBkZXNjcmlwdGlvbiBhbmQganVzdGlmaWNhdGlvbiBmb3IgY29udGVudCBpZAogICAgICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICRHZXRQYXJhbXtEZXNjcmlwdGlvbn0gPX4gbXsgJEF0dGFjaG1lbnQtPntDb250ZW50SUR9IH14bXMgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKCAkR2V0UGFyYW17SnVzdGlmaWNhdGlvbn0gPX4gbXsgJEF0dGFjaG1lbnQtPntDb250ZW50SUR9IH14bXMgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmb3VuZCB0aGUgY29udGVudCBpZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENvbnRlbnRJREZvdW5kID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgIyB3ZSBkbyBub3Qgd2FudCB0byBrZWVwIHRoaXMgYXR0YWNobWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgIyBiZWNhdXNlIGl0IHdhcyBkZWxldGVkIGluIHRoZSByaWNodCB0ZXh0IGVkaXRvcgogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IEFUVEFDSE1FTlQgaWYgISRDb250ZW50SURGb3VuZDsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICMgYWRkIGF0dGFjaG1lbnQKICAgICAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUF0dGFjaG1lbnRBZGQoCiAgICAgICAgICAgICAgICAgICAgICAgICV7JEF0dGFjaG1lbnR9LAogICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKCk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBuZXh0IEFUVEFDSE1FTlQgaWYgISRJbmxpbmU7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICEkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fTsKCiAgICAgICAgICAgICAgICAgICAgIyBwaWN0dXJlIHVybCBpbiB1cGxvYWQgY2FjaGUKICAgICAgICAgICAgICAgICAgICBteSAkU2VhcmNoID0gIkFjdGlvbj1QaWN0dXJlVXBsb2FkIC4rIEZvcm1JRD0kU2VsZi0+e0Zvcm1JRH0gLisgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJDb250ZW50SUQ9JEF0dGFjaG1lbnQtPntDb250ZW50SUR9IjsKCiAgICAgICAgICAgICAgICAgICAgIyBwaWN0dXJlIHVybCBpbiBjaGFuZ2UgYXR0dGFjaG1lbnQKICAgICAgICAgICAgICAgICAgICBteSAkUmVwbGFjZSA9ICJBY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtTdWJhY3Rpb249RG93bmxvYWRBdHRhY2htZW50OyIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiRmlsZW5hbWU9JEF0dGFjaG1lbnQtPntGaWxlbmFtZX07Q2hhbmdlSUQ9JENoYW5nZUlEIjsKCiAgICAgICAgICAgICAgICAgICAgIyByZXBsYWNlIHVybHMKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17RGVzY3JpcHRpb259ICAgPX4gc3skU2VhcmNofXskUmVwbGFjZX14bXM7CiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFte0p1c3RpZmljYXRpb259ID1+IHN7JFNlYXJjaH17JFJlcGxhY2V9eG1zOwoKICAgICAgICAgICAgICAgICAgICAjIHVwZGF0ZSBjaGFuZ2UKICAgICAgICAgICAgICAgICAgICAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJEdldFBhcmFte0Rlc2NyaXB0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAkR2V0UGFyYW17SnVzdGlmaWNhdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICAgICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCB1cGRhdGUgdGhlIGlubGluZSBpbWFnZSBVUkxzICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJmb3IgQ2hhbmdlSUQgJyRDaGFuZ2VJRCchISIsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgZGVsZXRlIHRoZSB1cGxvYWQgY2FjaGUKICAgICAgICAgICAgICAgICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlEUmVtb3ZlKCBGb3JtSUQgPT4gJFNlbGYtPntGb3JtSUR9ICk7CgogICAgICAgICAgICAgICAgIyBsb2FkIG5ldyBVUkwgaW4gcGFyZW50IHdpbmRvdyBhbmQgY2xvc2UgcG9wdXAKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Qb3B1cENsb3NlKAogICAgICAgICAgICAgICAgICAgIFVSTCA9PiAiQWN0aW9uPUFnZW50SVRTTUNoYW5nZVpvb207Q2hhbmdlSUQ9JENoYW5nZUlEIiwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSEnLCAkQ2hhbmdlSUQgKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgaGFuZGxlIEFKQVhVcGRhdGUKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBSkFYVXBkYXRlJyApIHsKCiAgICAgICAgIyBnZXQgcHJpb3JpdGllcwogICAgICAgIG15ICRQcmlvcml0aWVzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlUG9zc2libGVDSVBHZXQoCiAgICAgICAgICAgIFR5cGUgICA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNlbGVjdGVkIHByaW9yaXR5CiAgICAgICAgbXkgJFNlbGVjdGVkUHJpb3JpdHkKICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNoYW5nZUNJUEFsbG9jYXRlJyktPlByaW9yaXR5QWxsb2NhdGlvbkdldCgKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkR2V0UGFyYW17Q2F0ZWdvcnlJRH0sCiAgICAgICAgICAgIEltcGFjdElEICAgPT4gJEdldFBhcmFte0ltcGFjdElEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgIyBidWlsZCBqc29uCiAgICAgICAgbXkgJEpTT04gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbkpTT04oCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICA9PiAnUHJpb3JpdHlJRCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgPT4gJFByaW9yaXRpZXMsCiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFNlbGVjdGVkUHJpb3JpdHksCiAgICAgICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gPT4gMSwKICAgICAgICAgICAgICAgICAgICBNYXggICAgICAgICA9PiAxMDAsCiAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICk7CgogICAgICAgICMgcmV0dXJuIGpzb24KICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJEpTT04sCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgIyBkZWxldGUgYWxsIGtleXMgZnJvbSAlR2V0UGFyYW0gd2hlbiBpdCBpcyBubyBTdWJhY3Rpb24KICAgIGVsc2UgewoKICAgICAgICAlR2V0UGFyYW0gPSAoKTsKCiAgICAgICAgIyBzZXQgdGhlIGNoYW5nZSBzdGF0ZSBmcm9tIGNoYW5nZSwgaWYgY29uZmlndXJlZAogICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57Q2hhbmdlU3RhdGV9ICkgewogICAgICAgICAgICAkR2V0UGFyYW17Q2hhbmdlU3RhdGVJRH0gPSAkQ2hhbmdlLT57Q2hhbmdlU3RhdGVJRH07CiAgICAgICAgfQoKICAgICAgICAjIHNldCB0aGUgcmVxdWVzdGVkIHRpbWUgZnJvbSBjaGFuZ2UgaWYgY29uZmlndXJlZAogICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57UmVxdWVzdGVkVGltZX0gJiYgJENoYW5nZS0+e1JlcXVlc3RlZFRpbWV9ICkgewoKICAgICAgICAgICAgIyBnZXQgcmVxdWVzdGVkIHRpbWUgZnJvbSB0aGUgY2hhbmdlCiAgICAgICAgICAgIG15ICRTeXN0ZW1UaW1lRFRPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkQ2hhbmdlLT57UmVxdWVzdGVkVGltZX0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzZXQgdGhlIHBhcmFtZXRlciBoYXNoIGZvciBCdWlsZERhdGVTZWxlY3Rpb24oKQogICAgICAgICAgICAkR2V0UGFyYW17UmVxdWVzdGVkVGltZVVzZWR9ICAgPSAxOwogICAgICAgICAgICAkR2V0UGFyYW17UmVxdWVzdGVkVGltZU1pbnV0ZX0gPSAkU3lzdGVtVGltZURUT2JqZWN0LT5Gb3JtYXQoCiAgICAgICAgICAgICAgICBGb3JtYXQgPT4gJyVNJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJEdldFBhcmFte1JlcXVlc3RlZFRpbWVIb3VyfSA9ICRTeXN0ZW1UaW1lRFRPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgICAgIEZvcm1hdCA9PiAnJUgnLAogICAgICAgICAgICApOwogICAgICAgICAgICAkR2V0UGFyYW17UmVxdWVzdGVkVGltZURheX0gPSAkU3lzdGVtVGltZURUT2JqZWN0LT5Gb3JtYXQoCiAgICAgICAgICAgICAgICBGb3JtYXQgPT4gJyVkJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJEdldFBhcmFte1JlcXVlc3RlZFRpbWVNb250aH0gPSAkU3lzdGVtVGltZURUT2JqZWN0LT5Gb3JtYXQoCiAgICAgICAgICAgICAgICBGb3JtYXQgPT4gJyVtJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJEdldFBhcmFte1JlcXVlc3RlZFRpbWVZZWFyfSA9ICRTeXN0ZW1UaW1lRFRPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgICAgIEZvcm1hdCA9PiAnJVknLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgYWxsIGF0dGFjaG1lbnRzIG1ldGEgZGF0YQogICAgICAgIG15IEBFeGlzdGluZ0F0dGFjaG1lbnRzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQXR0YWNobWVudExpc3QoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICApOwoKICAgICAgICAjIGNvcHkgYWxsIGV4aXN0aW5nIGF0dGFjaG1lbnRzIHRvIHVwbG9hZCBjYWNoZQogICAgICAgIEZJTEVOQU1FOgogICAgICAgIGZvciBteSAkRmlsZW5hbWUgKEBFeGlzdGluZ0F0dGFjaG1lbnRzKSB7CgogICAgICAgICAgICAjIGdldCB0aGUgZXhpc3RpbmcgYXR0YWNobWVudCBkYXRhCiAgICAgICAgICAgIG15ICRBdHRhY2htZW50RGF0YSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUF0dGFjaG1lbnRHZXQoCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICBGaWxlbmFtZSA9PiAkRmlsZW5hbWUsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGRvIG5vdCBjb25zaWRlciBpbmxpbmUgYXR0YWNobWVudHMKICAgICAgICAgICAgbmV4dCBGSUxFTkFNRSBpZiAkQXR0YWNobWVudERhdGEtPntQcmVmZXJlbmNlc30tPntDb250ZW50SUR9OwoKICAgICAgICAgICAgIyBhZGQgYXR0YWNobWVudCB0byB0aGUgdXBsb2FkIGNhY2hlCiAgICAgICAgICAgICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlEQWRkRmlsZSgKICAgICAgICAgICAgICAgIEZvcm1JRCAgICAgID0+ICRTZWxmLT57Rm9ybUlEfSwKICAgICAgICAgICAgICAgIEZpbGVuYW1lICAgID0+ICRBdHRhY2htZW50RGF0YS0+e0ZpbGVuYW1lfSwKICAgICAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRBdHRhY2htZW50RGF0YS0+e0NvbnRlbnR9LAogICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJEF0dGFjaG1lbnREYXRhLT57Q29udGVudFR5cGV9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGlmIHRoZXJlIHdhcyBhbiBhdHRhY2htZW50IGRlbGV0ZSBvciB1cGxvYWQKICAgICMgd2UgZG8gbm90IHdhbnQgdG8gc2hvdyB2YWxpZGF0aW9uIGVycm9ycyBmb3Igb3RoZXIgZmllbGRzCiAgICBpZiAoICRWYWxpZGF0aW9uRXJyb3J7QXR0YWNobWVudH0gKSB7CiAgICAgICAgJVZhbGlkYXRpb25FcnJvciA9ICgpOwogICAgfQoKICAgICMgY2hlY2sgaWYgY2hhbmdlIHN0YXRlIGlzIGNvbmZpZ3VyZWQKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57Q2hhbmdlU3RhdGV9ICkgewoKICAgICAgICAjIGdldCBjaGFuZ2Ugc3RhdGUgbGlzdAogICAgICAgIG15ICRDaGFuZ2VQb3NzaWJsZVN0YXRlcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVBvc3NpYmxlU3RhdGVzR2V0KAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGJ1aWxkIGRyb3AtZG93biB3aXRoIGNoYW5nZSBzdGF0ZXMKICAgICAgICBteSAkU3RhdGVTZWxlY3Rpb25TdHJpbmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICA9PiAkQ2hhbmdlUG9zc2libGVTdGF0ZXMsCiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJ0NoYW5nZVN0YXRlSUQnLAogICAgICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtDaGFuZ2VTdGF0ZUlEfSwKICAgICAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwoKICAgICAgICAjIHNob3cgY2hhbmdlIHN0YXRlIGRyb3Bkb3duCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0NoYW5nZVN0YXRlJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVNlbGVjdGlvblN0cmluZyA9PiAkU3RhdGVTZWxlY3Rpb25TdHJpbmcsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG91dHB1dCBoZWFkZXIKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gVHJhbnNsYXRhYmxlKCdFZGl0JyksCiAgICAgICAgVHlwZSAgPT4gJ1NtYWxsJywKICAgICk7CgogICAgIyBjaGVjayBpZiByZXF1ZXN0ZWQgdGltZSBzaG91bGQgYmUgc2hvd24KICAgIGlmICggJFNlbGYtPntDb25maWd9LT57UmVxdWVzdGVkVGltZX0gKSB7CgogICAgICAgICMgdGltZSBwZXJpb2QgdGhhdCBjYW4gYmUgc2VsZWN0ZWQgZnJvbSB0aGUgR1VJCiAgICAgICAgbXkgJVRpbWVQZXJpb2QgPSAleyAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01Xb3JrT3JkZXI6OlRpbWVQZXJpb2QnKSB9OwoKICAgICAgICAjIGFkZCBzZWxlY3Rpb24gZm9yIHRoZSB0aW1lCiAgICAgICAgbXkgJFRpbWVTZWxlY3Rpb25TdHJpbmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZERhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgRm9ybWF0ICAgICAgICAgICAgICAgID0+ICdEYXRlSW5wdXRGb3JtYXRMb25nJywKICAgICAgICAgICAgUHJlZml4ICAgICAgICAgICAgICAgID0+ICdSZXF1ZXN0ZWRUaW1lJywKICAgICAgICAgICAgUmVxdWVzdGVkVGltZU9wdGlvbmFsID0+IDEsCiAgICAgICAgICAgIFJlcXVlc3RlZFRpbWVDbGFzcyAgICA9PiAnVmFsaWRhdGUgJyAuICggJFZhbGlkYXRpb25FcnJvcntSZXF1ZXN0ZWRUaW1lSW52YWxpZH0gfHwgJycgKSwKICAgICAgICAgICAgVmFsaWRhdGUgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICVUaW1lUGVyaW9kLAogICAgICAgICk7CgogICAgICAgICMgc2hvdyB0aW1lIGZpZWxkcwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdSZXF1ZXN0ZWRUaW1lJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAnUmVxdWVzdGVkVGltZVN0cmluZycgPT4gJFRpbWVTZWxlY3Rpb25TdHJpbmcsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNyZWF0ZSBkcm9wZG93biBmb3IgdGhlIGNhdGVnb3J5CiAgICAjIGFsbCBjYXRlZ29yaWVzIGFyZSBzZWxlY3RhYmxlCiAgICAjIHdoZW4gdGhlIGNhdGVnb3J5IGlzIGNoYW5nZWQsIGEgbmV3IHByaW9yaXR5IGlzIHByb3Bvc2VkCiAgICBteSAkQ2F0ZWdvcmllcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVBvc3NpYmxlQ0lQR2V0KAogICAgICAgIFR5cGUgICA9PiAnQ2F0ZWdvcnknLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwogICAgJFBhcmFte0NhdGVnb3J5U2VsZWN0aW9uU3RyaW5nfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gJENhdGVnb3JpZXMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnQ2F0ZWdvcnlJRCcsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkR2V0UGFyYW17Q2F0ZWdvcnlJRH0gfHwgJENoYW5nZS0+e0NhdGVnb3J5SUR9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgY3JlYXRlIGRyb3Bkb3duIGZvciB0aGUgaW1wYWN0CiAgICAjIGFsbCBpbXBhY3RzIGFyZSBzZWxlY3RhYmxlCiAgICAjIHdoZW4gdGhlIGltcGFjdCBpcyBjaGFuZ2VkLCBhIG5ldyBwcmlvcml0eSBpcyBwcm9wb3NlZAogICAgbXkgJEltcGFjdHMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VQb3NzaWJsZUNJUEdldCgKICAgICAgICBUeXBlICAgPT4gJ0ltcGFjdCcsCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CiAgICAkUGFyYW17SW1wYWN0U2VsZWN0aW9uU3RyaW5nfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gJEltcGFjdHMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnSW1wYWN0SUQnLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJEdldFBhcmFte0ltcGFjdElEfSB8fCAkQ2hhbmdlLT57SW1wYWN0SUR9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgY3JlYXRlIGRyb3Bkb3duIGZvciBwcmlvcml0eSwKICAgICMgYWxsIHByaW9yaXRpZXMgYXJlIHNlbGVjdGFibGUKICAgIG15ICRQcmlvcml0aWVzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlUG9zc2libGVDSVBHZXQoCiAgICAgICAgVHlwZSAgID0+ICdQcmlvcml0eScsCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CiAgICAkUGFyYW17UHJpb3JpdHlTZWxlY3Rpb25TdHJpbmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiAkUHJpb3JpdGllcywKICAgICAgICBOYW1lICAgICAgID0+ICdQcmlvcml0eUlEJywKICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtQcmlvcml0eUlEfSB8fCAkQ2hhbmdlLT57UHJpb3JpdHlJRH0sCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkfSApIHsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIGdldCBjaGFuZ2UgZHluYW1pYyBmaWVsZHMgZnJvbSBjaGFuZ2UgaWYgcGFnZSBpcyBsb2FkZWQgdGhlIGZpcnN0IHRpbWUKICAgICAgICBpZiAoICEkU2VsZi0+e1N1YmFjdGlvbn0gKSB7CiAgICAgICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9CiAgICAgICAgICAgICAgICA9ICRDaGFuZ2UtPnsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH07CiAgICAgICAgfQoKICAgICAgICAjIGdldCBmaWVsZCBodG1sCiAgICAgICAgbXkgJER5bmFtaWNGaWVsZEhUTUwgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkUmVuZGVyKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgICAgICAgPT4gJFZhbGlkYXRpb25FcnJvcnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gfHwgJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgICAgICBBSkFYVXBkYXRlICAgICAgICAgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIHNraXAgZmllbGRzIHRoYXQgSFRNTCBjb3VsZCBub3QgYmUgcmV0cmlldmVkCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRIVE1MKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTmFtZSAgPT4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9LAogICAgICAgICAgICAgICAgTGFiZWwgPT4gJER5bmFtaWNGaWVsZEhUTUwtPntMYWJlbH0sCiAgICAgICAgICAgICAgICBGaWVsZCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0ZpZWxkfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGV4YW1wbGUgb2YgZHluYW1pYyBmaWVsZHMgb3JkZXIgY3VzdG9taXphdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgICAgICBMYWJlbCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0xhYmVsfSwKICAgICAgICAgICAgICAgIEZpZWxkID0+ICREeW5hbWljRmllbGRIVE1MLT57RmllbGR9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgYWxsIGF0dGFjaG1lbnRzIG1ldGEgZGF0YQogICAgbXkgQEF0dGFjaG1lbnRzID0gJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURHZXRBbGxGaWxlc01ldGEoCiAgICAgICAgRm9ybUlEID0+ICRTZWxmLT57Rm9ybUlEfSwKICAgICk7CgogICAgIyBzaG93IHRoZSBhdHRhY2htZW50IHVwbG9hZCBidXR0b24KICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0F0dGFjaG1lbnRVcGxvYWQnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIEF0dGFjaG1lbnRMaXN0ID0+IFxAQXR0YWNobWVudHMsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBhZGQgcmljaCB0ZXh0IGVkaXRvciBqYXZhc2NyaXB0CiAgICAjIG9ubHkgaWYgYWN0aXZhdGVkIGFuZCB0aGUgYnJvd3NlciBjYW4gaGFuZGxlIGl0CiAgICAjIG90aGVyd2lzZSBqdXN0IGEgdGV4dGFyZWEgaXMgc2hvd24KICAgIGlmICggJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+U2V0UmljaFRleHRQYXJhbWV0ZXJzKAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICB9CgogICAgIyBzdGFydCB0ZW1wbGF0ZSBvdXRwdXQKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNQ2hhbmdlRWRpdCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyRDaGFuZ2V9LAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVWYWxpZGF0aW9uRXJyb3IsCiAgICAgICAgICAgIEZvcm1JRCA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgfSwKICAgICk7CgogICAgIyBhZGQgZm9vdGVyCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlciggVHlwZSA9PiAnU21hbGwnICk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeHistory.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZUhpc3Rvcnk7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgY2hhbmdlIGlkCiAgICBteSAkQ2hhbmdlSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAnQ2hhbmdlSUQnICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJENoYW5nZUlEICkgewoKICAgICAgICAjIGVycm9yIHBhZ2UKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRDb25maWdPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRDaGFuZ2VPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKICAgIG15ICRIaXN0b3J5T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Okhpc3RvcnknKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoIklUU01DaGFuZ2U6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJENoYW5nZU9iamVjdC0+UGVybWlzc2lvbigKICAgICAgICBUeXBlICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBpbmZvcm1hdGlvbgogICAgbXkgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGVycm9yCiAgICBpZiAoICEkQ2hhbmdlICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnLCAkQ2hhbmdlSUQgKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBidWlsZCBhIGxvb2t1cCBoYXNoIHdpdGggYWxsIHdvcmtvcmRlciBJRHMgb2YgdGhpcyBjaGFuZ2UKICAgIG15ICVXb3JrT3JkZXJJRExvb2t1cCA9IG1hcCB7ICRfID0+IDEgfSBAeyAkQ2hhbmdlLT57V29ya09yZGVySURzfSB9OwoKICAgICMgZ2V0IGhpc3RvcnkgZW50cmllcwogICAgbXkgJEhpc3RvcnlFbnRyaWVzUmVmID0gJEhpc3RvcnlPYmplY3QtPkNoYW5nZUhpc3RvcnlHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICkgfHwgW107CgogICAgIyBnZXQgb3JkZXIgZGlyZWN0aW9uCiAgICBteSBASGlzdG9yeUxpbmVzID0gQHskSGlzdG9yeUVudHJpZXNSZWZ9OwogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01DaGFuZ2U6OkZyb250ZW5kOjpIaXN0b3J5T3JkZXInKSBlcSAncmV2ZXJzZScgKSB7CiAgICAgICAgQEhpc3RvcnlMaW5lcyA9IHJldmVyc2UgQHskSGlzdG9yeUVudHJpZXNSZWZ9OwogICAgfQoKICAgICMgbWFrZSBzb21lIGxvb2t1cHMgaW4gYWR2YW5jZSB0byBpbXByb3ZlIHBlcmZvcm1hbmNlCiAgICBteSAkQ2FjaGUgPSB7fTsKCiAgICAjIGdldCBjb25kaXRpb24gb2JqZWN0CiAgICBteSAkQ29uZGl0aW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKTsKCiAgICAjIGdldCB0aGUgb2JqZWN0IGxpc3QKICAgICRDYWNoZS0+e09iamVjdExpc3R9ID0gJENvbmRpdGlvbk9iamVjdC0+T2JqZWN0TGlzdCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCB0aGUgYXR0cmlidXRlIGxpc3QKICAgICRDYWNoZS0+e0F0dHJpYnV0ZUxpc3R9ID0gJENvbmRpdGlvbk9iamVjdC0+QXR0cmlidXRlTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCB0aGUgb3BlcmF0b3IgbGlzdAogICAgJENhY2hlLT57T3BlcmF0b3JMaXN0fSA9ICRDb25kaXRpb25PYmplY3QtPk9wZXJhdG9yTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIG1heCBsZW5ndGggb2Ygc3RyaW5ncwogICAgbXkgJE1heExlbmd0aCA9IDMwOwoKICAgICMgR2V0IHRyYW5zbGF0YWJsZSBoaXN0b3J5IHN0cmluZ3MuCiAgICBteSAlSGlzdG9yeVN0cmluZ3MgPSAkSGlzdG9yeU9iamVjdC0+SGlzdG9yeVN0cmluZ3NMaXN0KCk7CgogICAgIyBjcmVhdGUgdGFibGUKICAgIG15ICRDb3VudGVyID0gMTsKICAgIEhJU1RPUllFTlRSWToKICAgIGZvciBteSAkSGlzdG9yeUVudHJ5IChASGlzdG9yeUxpbmVzKSB7CiAgICAgICAgJENvdW50ZXIrKzsKCiAgICAgICAgIyBzZXQgZmllbGRuYW1lIHRvIGVtcHR5IHN0cmluZyBpZiB0aGVyZSBpcyBubyBmaWVsZG5hbWUKICAgICAgICAkSGlzdG9yeUVudHJ5LT57RmllbGRuYW1lfSB8fD0gJyc7CgogICAgICAgICMgZG8gbm90IHNob3cgaW50ZXJuYWwgZW50cmllcyBmcm9tIHdvcmtvcmRlciBudW1iZXIgcmVjYWxjdWxhdGlvbgogICAgICAgIG5leHQgSElTVE9SWUVOVFJZIGlmICRIaXN0b3J5RW50cnktPntGaWVsZG5hbWV9IGVxICdOb051bWJlckNhbGMnOwoKICAgICAgICAjIGRhdGEgZm9yIGEgc2luZ2xlIHJvdywgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGR0bAogICAgICAgIG15ICVEYXRhID0gJXskSGlzdG9yeUVudHJ5fTsKCiAgICAgICAgIyBkZXRlcm1pbmUgd2hhdCBzaG91bGQgYmUgc2hvd24KICAgICAgICBteSAkSGlzdG9yeVR5cGUgPSAkSGlzdG9yeUVudHJ5LT57SGlzdG9yeVR5cGV9OwogICAgICAgIGlmICgKICAgICAgICAgICAgJEhpc3RvcnlUeXBlID1+IG17CiAgICAgICAgICAgICAgICBcQQogICAgICAgICAgICAgICAgKD86ICg/OiBDaGFuZ2UgfCBDaGFuZ2VDQUIgfCBXb3JrT3JkZXIgKSBVcGRhdGUgKQogICAgICAgICAgICAgICAgfCAoPzogKD86IENvbmRpdGlvbiB8IEV4cHJlc3Npb24gfCBBY3Rpb24gKSAoPzogQWRkIHwgVXBkYXRlIHwgRGVsZXRlIHwgRGVsZXRlQWxsIHwgRXhlY3V0ZSApICkKICAgICAgICAgICAgICAgIFx6CiAgICAgICAgICAgIH14bXMKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgICMgVGhlIGRpc3BsYXllZCBmaWVsZG5hbWUgbWlnaHQgYmUgY2hhbmdlZCBpbiB0aGUgZm9sbG93aW5nIGxvb3AKICAgICAgICAgICAgbXkgJERpc3BsYXllZEZpZWxkbmFtZSA9ICRIaXN0b3J5RW50cnktPntGaWVsZG5hbWV9OwoKICAgICAgICAgICAgIyBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIHNvbWUga2V5cwogICAgICAgICAgICBmb3IgbXkgJENvbnRlbnROZXdPck9sZCAocXcoQ29udGVudE5ldyBDb250ZW50T2xkKSkgewogICAgICAgICAgICAgICAgaWYgKCAhZGVmaW5lZCAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEhpc3RvcnlFbnRyeS0+eyRDb250ZW50TmV3T3JPbGR9ID0gJyc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgIyBnZXQgdXNlciBvYmplY3QKICAgICAgICAgICAgICAgICAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgICAgICAgICAgICAgICMgZm9yIHRoZSBJRCBmaWVsZHMsIHdlIHJlcGxhY2UgSUQgd2l0aCBpdHMgdGV4dHVhbCB2YWx1ZQogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgbXkgKCRUeXBlKSA9ICRIaXN0b3J5RW50cnktPntGaWVsZG5hbWV9ID1+IG17CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcQSAgICAgICAgICAjIHN0cmluZyBzdGFydAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAgICAgICAgICAgIyBzdGFydCBjYXB0dXJlIG9mICRUeXBlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2F0ZWdvcnkgfCBJbXBhY3QgfCBQcmlvcml0eQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2hhbmdlU3RhdGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFdvcmtPcmRlclN0YXRlIHwgV29ya09yZGVyVHlwZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgV29ya09yZGVyQWdlbnQgfCBDaGFuZ2VCdWlsZGVyIHwgQ2hhbmdlTWFuYWdlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVmFsaWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE9iamVjdCB8IEF0dHJpYnV0ZSB8IE9wZXJhdG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApICAgICAgICAgICAjIGVuZCBjYXB0dXJlIG9mICRUeXBlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRCAgICAgICAgICAjIHByb2Nlc3Npbmcgb25seSBmb3IgdGhlICdJRCcgZmllbGRzCiAgICAgICAgICAgICAgICAgICAgICAgIH14bXMKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkVmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkVHJhbnNsYXRpb25OZWVkZWQgPSAxOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZ2V0IHdvcmsgb3JkZXIgb2JqZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkV29ya09yZGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRUeXBlIGVxICdXb3JrT3JkZXJTdGF0ZScgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFZhbHVlID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyU3RhdGVMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlSUQgPT4gJEhpc3RvcnlFbnRyeS0+eyRDb250ZW50TmV3T3JPbGR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRUeXBlIGVxICdXb3JrT3JkZXJUeXBlJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVmFsdWUgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJUeXBlTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJUeXBlSUQgPT4gJEhpc3RvcnlFbnRyeS0+eyRDb250ZW50TmV3T3JPbGR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRUeXBlIGVxICdDaGFuZ2VTdGF0ZScgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFZhbHVlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU3RhdGVMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJEhpc3RvcnlFbnRyeS0+eyRDb250ZW50TmV3T3JPbGR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFR5cGUgZXEgJ1dvcmtPcmRlckFnZW50JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICRUeXBlIGVxICdDaGFuZ2VCdWlsZGVyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICRUeXBlIGVxICdDaGFuZ2VNYW5hZ2VyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVmFsdWUgPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRIaXN0b3J5RW50cnktPnskQ29udGVudE5ld09yT2xkfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRoZSBsb2dpbiBuYW1lcyBhcmUgbm90IHRvIGJlIHRyYW5zbGF0ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVHJhbnNsYXRpb25OZWVkZWQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUeXBlIGVxICdDYXRlZ29yeScKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAkVHlwZSBlcSAnSW1wYWN0JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICRUeXBlIGVxICdQcmlvcml0eScKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFZhbHVlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQ0lQTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRCAgID0+ICRIaXN0b3J5RW50cnktPnskQ29udGVudE5ld09yT2xkfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAkVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkVHlwZSBlcSAnVmFsaWQnICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGdldCB0aGUgVXBkYXRlSUQgKENvbmRpdGlvbklEIG9yIEV4cHJlc3Npb25JRCBvciBBY3Rpb25JRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFuZCB0aGUgQXR0cmlidXRlSUQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRIaXN0b3J5RW50cnktPnskQ29udGVudE5ld09yT2xkfSA9fiBteyAlJSB9eG1zICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICRIaXN0b3J5RW50cnktPntVcGRhdGVJRH0sICRIaXN0b3J5RW50cnktPnskQ29udGVudE5ld09yT2xkfSApID0gc3BsaXQgbS8lJS8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVmFsdWUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkSUQgPT4gJEhpc3RvcnlFbnRyeS0+eyRDb250ZW50TmV3T3JPbGR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRUeXBlIGVxICdPYmplY3QnICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGdldCB0aGUgVXBkYXRlSUQgKENvbmRpdGlvbklEIG9yIEV4cHJlc3Npb25JRCBvciBBY3Rpb25JRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFuZCB0aGUgQXR0cmlidXRlSUQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRIaXN0b3J5RW50cnktPnskQ29udGVudE5ld09yT2xkfSA9fiBteyAlJSB9eG1zICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICRIaXN0b3J5RW50cnktPntVcGRhdGVJRH0sICRIaXN0b3J5RW50cnktPnskQ29udGVudE5ld09yT2xkfSApID0gc3BsaXQgbS8lJS8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGxvb2t1cCB0aGUgb2JqZWN0IG5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVmFsdWUgPSAkQ2FjaGUtPntPYmplY3RMaXN0fS0+eyAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0gfTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRUeXBlIGVxICdBdHRyaWJ1dGUnICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGdldCB0aGUgVXBkYXRlSUQgKENvbmRpdGlvbklEIG9yIEV4cHJlc3Npb25JRCBvciBBY3Rpb25JRCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFuZCB0aGUgQXR0cmlidXRlSUQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRIaXN0b3J5RW50cnktPnskQ29udGVudE5ld09yT2xkfSA9fiBteyAlJSB9eG1zICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICRIaXN0b3J5RW50cnktPntVcGRhdGVJRH0sICRIaXN0b3J5RW50cnktPnskQ29udGVudE5ld09yT2xkfSApID0gc3BsaXQgbS8lJS8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGxvb2t1cCB0aGUgYXR0cmlidXRlIG5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVmFsdWUgPSAkQ2FjaGUtPntBdHRyaWJ1dGVMaXN0fS0+eyAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0gfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2lmICggJFR5cGUgZXEgJ09wZXJhdG9yJyApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBnZXQgdGhlIFVwZGF0ZUlEIChDb25kaXRpb25JRCBvciBFeHByZXNzaW9uSUQgb3IgQWN0aW9uSUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhbmQgdGhlIEF0dHJpYnV0ZUlECiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0gPX4gbXsgJSUgfXhtcyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAkSGlzdG9yeUVudHJ5LT57VXBkYXRlSUR9LCAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0gKSA9IHNwbGl0IG0vJSUvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEhpc3RvcnlFbnRyeS0+eyRDb250ZW50TmV3T3JPbGR9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBsb29rdXAgdGhlIG9wZXJhdG9yIG5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVmFsdWUgPSAkQ2FjaGUtPntPcGVyYXRvckxpc3R9LT57ICRIaXN0b3J5RW50cnktPnskQ29udGVudE5ld09yT2xkfSB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+VHJhbnNsYXRlKCAnVW5rbm93biB0eXBlICIlcyIgZW5jb3VudGVyZWQhJywgJFR5cGUgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFLmcuIHRoZSB1c2VybmFtZXMgc2hvdWxkIG5vdCBiZSB0cmFuc2xhdGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkVHJhbnNsYXRlZFZhbHVlID0gJFRyYW5zbGF0aW9uTmVlZGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkVmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRWYWx1ZTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0gPSBzcHJpbnRmICclcyAoSUQ9JXMpJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVHJhbnNsYXRlZFZhbHVlLCAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0gPSAnJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGUgY29udGVudCBoYXMgY2hhbmdlZCwgc28gY2hhbmdlIHRoZSBkaXNwbGF5ZWQgZmllbGRuYW1lIGFzIHdlbGwKICAgICAgICAgICAgICAgICAgICAgICAgJERpc3BsYXllZEZpZWxkbmFtZSA9ICRUeXBlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRIaXN0b3J5RW50cnktPntGaWVsZG5hbWV9IGVxICdDQUJDdXN0b21lcnMnICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBDb250ZW50TmV3IGFuZCBDb250ZW50T2xkIGNvbnRhaW4gYSAnJSUnIHNlcGVyYXRlZCBsaXN0IG9mIGN1c3RvbWVyIHVzZXIgaWRzCiAgICAgICAgICAgICAgICAgICAgICAgICMgcmVmb3JtYXQgaXQgYXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0gPX4gc3sgJSAlIH17LH14bXNnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRIaXN0b3J5RW50cnktPntGaWVsZG5hbWV9IGVxICdDQUJBZ2VudHMnICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBDb250ZW50TmV3IGFuZCBDb250ZW50T2xkIGNvbnRhaW4gYSAnJSUnIHNlcGFyYXRlZCBsaXN0IG9mIHVzZXIgaWRzCiAgICAgICAgICAgICAgICAgICAgICAgICMgbG9vayB1cCB0aGUgbG9naW4gbmFtZXMgZnJvbSB0aGUgdXNlciBpZHMgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICMgZm9ybWF0IGl0IGFzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgbXkgQFVzZXJJRHMgICAgPSBzcGxpdCBtLyUlLywgJEhpc3RvcnlFbnRyeS0+eyRDb250ZW50TmV3T3JPbGR9OwogICAgICAgICAgICAgICAgICAgICAgICBteSBAVXNlckxvZ2lucyA9IG1hcCB7ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKCBVc2VySUQgPT4gJF8gKSB9IEBVc2VySURzOwogICAgICAgICAgICAgICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0gPSBqb2luICcsJywgQFVzZXJMb2dpbnM7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICgKICAgICAgICAgICAgICAgICAgICAgICAgJEhpc3RvcnlFbnRyeS0+e0ZpZWxkbmFtZX0gZXEgJ0V4cHJlc3Npb25Db25qdW5jdGlvbicKICAgICAgICAgICAgICAgICAgICAgICAgfHwgJEhpc3RvcnlFbnRyeS0+e0ZpZWxkbmFtZX0gZXEgJ05hbWUnCiAgICAgICAgICAgICAgICAgICAgICAgIHx8ICRIaXN0b3J5RW50cnktPntGaWVsZG5hbWV9IGVxICdDb21tZW50JwogICAgICAgICAgICAgICAgICAgICAgICB8fCAkSGlzdG9yeUVudHJ5LT57RmllbGRuYW1lfSBlcSAnU2VsZWN0b3InCiAgICAgICAgICAgICAgICAgICAgICAgIHx8ICRIaXN0b3J5RW50cnktPntGaWVsZG5hbWV9IGVxICdBY3Rpb25WYWx1ZScKICAgICAgICAgICAgICAgICAgICAgICAgfHwgJEhpc3RvcnlFbnRyeS0+e0ZpZWxkbmFtZX0gZXEgJ0NvbXBhcmVWYWx1ZScKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgZ2V0IHRoZSBVcGRhdGVJRCAoQ29uZGl0aW9uSUQgb3IgRXhwcmVzc2lvbklEIG9yIEFjdGlvbklEKQogICAgICAgICAgICAgICAgICAgICAgICAjIGFuZCB0aGUgQXR0cmlidXRlSUQKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0gPX4gbXsgJSUgfXhtcyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICggJEhpc3RvcnlFbnRyeS0+e1VwZGF0ZUlEfSwgJEhpc3RvcnlFbnRyeS0+eyRDb250ZW50TmV3T3JPbGR9ICkgPSBzcGxpdCBtLyUlLywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICMgcmVwbGFjZSBIVE1MIGJyZWFrcyB3aXRoIHNpbmdsZSBzcGFjZQogICAgICAgICAgICAgICAgICAgICRIaXN0b3J5RW50cnktPnskQ29udGVudE5ld09yT2xkfSA9fiBzeyA8IGJyIFxzKiAvPyA+IH17IH14bXNnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHRyYW5zbGF0ZSBmaWVsZG5hbWUgZm9yIGRpc3BsYXkKICAgICAgICAgICAgJERpc3BsYXllZEZpZWxkbmFtZSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICREaXNwbGF5ZWRGaWVsZG5hbWUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBIVE1MIHV0aWxzIG9iamVjdAogICAgICAgICAgICBteSAkSFRNTFV0aWxzT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpOwoKICAgICAgICAgICAgIyB0cmltIHN0cmluZ3MgdG8gYSBtYXggbGVuZ3RoIG9mICRNYXhMZW5ndGgKICAgICAgICAgICAgbXkgJENvbnRlbnROZXcgPSAkSFRNTFV0aWxzT2JqZWN0LT5Ub0FzY2lpKAogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRIaXN0b3J5RW50cnktPntDb250ZW50TmV3fSB8fCAnJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgJENvbnRlbnRPbGQgPSAkSFRNTFV0aWxzT2JqZWN0LT5Ub0FzY2lpKAogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRIaXN0b3J5RW50cnktPntDb250ZW50T2xkfSB8fCAnJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2hvdyBbLi4uXSBmb3IgdG9vIGxvbmcgc3RyaW5ncwogICAgICAgICAgICBmb3IgbXkgJENvbnRlbnQgKCAkQ29udGVudE5ldywgJENvbnRlbnRPbGQgKSB7CiAgICAgICAgICAgICAgICBpZiAoICRDb250ZW50ICYmICggbGVuZ3RoICRDb250ZW50ID4gJE1heExlbmd0aCApICkgewogICAgICAgICAgICAgICAgICAgICRDb250ZW50ID0gc3Vic3RyKCAkQ29udGVudCwgMCwgJE1heExlbmd0aCApIC4gJ1suLi5dJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBidWlsZCBkZXNjcmlwdGlvbiBhcnJheQogICAgICAgICAgICBteSBARGVzY3JpcHRpb24gPSAoICREaXNwbGF5ZWRGaWVsZG5hbWUgfHwgJycgKTsKCiAgICAgICAgICAgICMgYWRkIHRoZSBJRCBvZiB0aGUgQ29uZGl0aW9uLCBFeHByZXNzaW9uIG9yIEFjdGlvbiB0aGF0IHdhcyB1cGRhdGVkCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRIaXN0b3J5VHlwZSBlcSAnQ29uZGl0aW9uVXBkYXRlJwogICAgICAgICAgICAgICAgfHwgJEhpc3RvcnlUeXBlIGVxICdFeHByZXNzaW9uVXBkYXRlJwogICAgICAgICAgICAgICAgfHwgJEhpc3RvcnlUeXBlIGVxICdBY3Rpb25VcGRhdGUnCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICggJEhpc3RvcnlFbnRyeS0+e1VwZGF0ZUlEfSApIHsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBEZXNjcmlwdGlvbiwgJEhpc3RvcnlFbnRyeS0+e1VwZGF0ZUlEfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzZXQgZGVzY3JpcHRpb24KICAgICAgICAgICAgJERhdGF7Q29udGVudH0gPSBqb2luICclJScsIEBEZXNjcmlwdGlvbiwgJENvbnRlbnROZXcsICRDb250ZW50T2xkOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJERhdGF7Q29udGVudH0gPSAkSGlzdG9yeUVudHJ5LT57Q29udGVudE5ld307CiAgICAgICAgfQoKICAgICAgICAjIHJlcGxhY2UgdGV4dAogICAgICAgIGlmICggJERhdGF7Q29udGVudH0gKSB7CgogICAgICAgICAgICAjIHJlbW92ZSBsZWFkaW5nICUlCiAgICAgICAgICAgICREYXRhe0NvbnRlbnR9ID1+IHN7IFxBICUlIH17fXhtc2c7CgogICAgICAgICAgICAjIHNwbGl0IHRoZSBjb250ZW50IGJ5ICUlCiAgICAgICAgICAgIG15IEBWYWx1ZXMgPSBzcGxpdCBtLyUlLywgJERhdGF7Q29udGVudH07CgogICAgICAgICAgICAjIGZvciB3aGF0IGl0ZW0gdHlwZSBpcyB0aGlzIGhpc3RvcnkgZW50cnkKICAgICAgICAgICAgbXkgJEhpc3RvcnlJdGVtVHlwZSA9ICdDaGFuZ2UnOwogICAgICAgICAgICBpZiAoICRIaXN0b3J5VHlwZSA9fiBteyBcQSBXb3JrT3JkZXIgfXhtcyApIHsKICAgICAgICAgICAgICAgICRIaXN0b3J5SXRlbVR5cGUgPSAnV29ya09yZGVyJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBmb3Igd29ya29yZGVyIGVudHJpZXMgdGhhdCBzdGlsbCBleGlzdHMsIHNob3cgd29ya29yZGVyaWQKICAgICAgICAgICAgbXkgJEhpc3RvcnlFbnRyeVR5cGUgPSAkRGF0YXtIaXN0b3J5VHlwZX07CiAgICAgICAgICAgIGlmICggJEhpc3RvcnlFbnRyeS0+e1dvcmtPcmRlcklEfSApIHsKICAgICAgICAgICAgICAgICRIaXN0b3J5RW50cnlUeXBlIC49ICdXaXRoV29ya09yZGVySUQnOwogICAgICAgICAgICAgICAgdW5zaGlmdCBAVmFsdWVzLCAkSGlzdG9yeUVudHJ5LT57V29ya09yZGVySUR9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGhhbmRsZSBjb25kaXRpb24gYWRkIHdpdGggaWQKICAgICAgICAgICAgaWYgKCAkSGlzdG9yeUVudHJ5VHlwZSBlcSAnQ29uZGl0aW9uQWRkJyAmJiAhJEhpc3RvcnlFbnRyeS0+e0ZpZWxkbmFtZX0gKSB7CiAgICAgICAgICAgICAgICAkSGlzdG9yeUVudHJ5VHlwZSAuPSAnSUQnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGhhbmRsZSBleHByZXNzaW9uIGFkZCB3aXRoIGlkCiAgICAgICAgICAgIGlmICggJEhpc3RvcnlFbnRyeVR5cGUgZXEgJ0V4cHJlc3Npb25BZGQnICYmICEkSGlzdG9yeUVudHJ5LT57RmllbGRuYW1lfSApIHsKICAgICAgICAgICAgICAgICRIaXN0b3J5RW50cnlUeXBlIC49ICdJRCc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaGFuZGxlIGFjdGlvbiBhZGQgd2l0aCBpZAogICAgICAgICAgICBpZiAoICRIaXN0b3J5RW50cnlUeXBlIGVxICdBY3Rpb25BZGQnICYmICEkSGlzdG9yeUVudHJ5LT57RmllbGRuYW1lfSApIHsKICAgICAgICAgICAgICAgICRIaXN0b3J5RW50cnlUeXBlIC49ICdJRCc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdXNlZnVsIGZvciBkZWJ1Z2dpbmcsIGNhbiBiZSBhZGRlZCB0byBkdGwgdG8gc2VlIHRoZSB1bnRyYW5zbGF0ZWQgb3V0cHV0CiAgICAgICAgICAgICREYXRhe0NvbnRlbnRVbnRyYW5zbGF0ZWR9ID0gJERhdGF7Q29udGVudH07CgogICAgICAgICAgICAjIHNob3cgJ25pY2UnIG91dHB1dCB3aXRoIHZhcmlhYmxlIHN1YnN0aXR1dGlvbgogICAgICAgICAgICAkRGF0YXtDb250ZW50fSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICRIaXN0b3J5U3RyaW5nc3sgJEhpc3RvcnlJdGVtVHlwZSAuICdIaXN0b3J5OjonIC4gJEhpc3RvcnlFbnRyeVR5cGUgfSwKICAgICAgICAgICAgICAgIEBWYWx1ZXMsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHJlbW92ZSBub3QgbmVlZGVkIHBsYWNlIGhvbGRlcgogICAgICAgICAgICAkRGF0YXtDb250ZW50fSA9fiBzeyAlIHMgfXt9eG1zZzsKICAgICAgICB9CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdSb3cnLAogICAgICAgICAgICBEYXRhID0+IHslRGF0YX0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGEgJ21vcmUgaW5mbycgbGluawogICAgICAgIGlmICgKICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgJEhpc3RvcnlFbnRyeS0+e0NvbnRlbnROZXd9CiAgICAgICAgICAgICAgICAmJiBsZW5ndGgoICRIaXN0b3J5RW50cnktPntDb250ZW50TmV3fSApID4gJE1heExlbmd0aAogICAgICAgICAgICApCiAgICAgICAgICAgIHx8ICgKICAgICAgICAgICAgICAgICRIaXN0b3J5RW50cnktPntDb250ZW50T2xkfQogICAgICAgICAgICAgICAgJiYgbGVuZ3RoKCAkSGlzdG9yeUVudHJ5LT57Q29udGVudE9sZH0gKSA+ICRNYXhMZW5ndGgKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBpcyBpdCBhIENoYW5nZUhpc3Rvcnlab29tIG9yIGEgV29ya09yZGVySGlzdG9yeVpvb20/CiAgICAgICAgICAgIG15ICRab29tVHlwZSA9ICdDaGFuZ2UnOwoKICAgICAgICAgICAgaWYgKCAkSGlzdG9yeVR5cGUgPX4gbXsgXEEgV29ya09yZGVyIH14bXMgJiYgJEhpc3RvcnlFbnRyeS0+e1dvcmtPcmRlcklEfSApIHsKICAgICAgICAgICAgICAgICRab29tVHlwZSA9ICdXb3JrT3JkZXInOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHNob3cgaGlzdG9yeXpvb20gYmxvY2sKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTaG93SGlzdG9yeVpvb20nLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJURhdGEsCiAgICAgICAgICAgICAgICAgICAgWm9vbVR5cGUgPT4gJFpvb21UeXBlLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZG9uJ3Qgc2hvdyBhIGxpbmsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb0hpc3Rvcnlab29tJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2hvdyBsaW5rIHRvIHdvcmtvcmRlciBmb3IgV29ya09yZGVyQWRkIGV2ZW50IC0gaWYgdGhlIHdvcmtvcmRlciBzdGlsbCBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRIaXN0b3J5RW50cnktPntIaXN0b3J5VHlwZX0gPX4gbXsgXEEgV29ya09yZGVyIH14bXMKICAgICAgICAgICAgJiYgJEhpc3RvcnlFbnRyeS0+e1dvcmtPcmRlcklEfQogICAgICAgICAgICAmJiAkV29ya09yZGVySURMb29rdXB7ICRIaXN0b3J5RW50cnktPntXb3JrT3JkZXJJRH0gfQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBzaG93IGxpbmsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTaG93V29ya09yZGVyWm9vbScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHslRGF0YX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGRvbid0IHNob3cgYW55IGxpbmsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb1dvcmtPcmRlclpvb20nLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIG91dHB1dCBoZWFkZXIKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVHlwZSAgPT4gJ1NtYWxsJywKICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ0NoYW5nZSBIaXN0b3J5JyksCiAgICApOwoKICAgICMgc3RhcnQgdGVtcGxhdGUgb3V0cHV0CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50SVRTTUNoYW5nZUhpc3RvcnknLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXskQ2hhbmdlfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCBmb290ZXIKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKAogICAgICAgIFR5cGUgPT4gJ1NtYWxsJywKICAgICk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeHistoryZoom.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZUhpc3Rvcnlab29tOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIGNoYW5nZSBpZAogICAgbXkgJEhpc3RvcnlFbnRyeUlEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJ0hpc3RvcnlFbnRyeUlEJyApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRIaXN0b3J5RW50cnlJRCApIHsKCiAgICAgICAgIyBlcnJvciBwYWdlCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgaGlzdG9yeSBlbnRyaWVzCiAgICBteSAkSGlzdG9yeUVudHJ5ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Okhpc3RvcnknKS0+SGlzdG9yeUVudHJ5R2V0KAogICAgICAgIEhpc3RvcnlFbnRyeUlEID0+ICRIaXN0b3J5RW50cnlJRCwKICAgICAgICBVc2VySUQgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIGlmICggISRIaXN0b3J5RW50cnkgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICdIaXN0b3J5RW50cnkgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywgJEhpc3RvcnlFbnRyeUlECiAgICAgICAgICAgICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBvYmplY3QKICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBDaGFuZ2VJRCA9PiAkSGlzdG9yeUVudHJ5LT57Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBpbmZvcm1hdGlvbgogICAgbXkgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkSGlzdG9yeUVudHJ5LT57Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBlcnJvcgogICAgaWYgKCAhJENoYW5nZSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgJ0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJywgJEhpc3RvcnlFbnRyeS0+e0NoYW5nZUlEfQogICAgICAgICAgICApLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgZGFzaCAoJy0nKSB3aGVuIHRoZSBmaWVsZCBpcyBlbXB0eQogICAgZm9yIG15ICRGaWVsZCAocXcoQ29udGVudE5ldyBDb250ZW50T2xkKSkgewogICAgICAgICRIaXN0b3J5RW50cnktPnskRmllbGR9IHx8PSAnLSc7CiAgICB9CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFR5cGUgID0+ICdTbWFsbCcsCiAgICAgICAgVGl0bGUgPT4gJ0NoYW5nZUhpc3Rvcnlab29tJywKICAgICk7CgogICAgIyBoYW5kbGUgY29uZGl0aW9uIHVwZGF0ZQogICAgaWYgKCAkSGlzdG9yeUVudHJ5LT57SGlzdG9yeVR5cGV9IGVxICdDb25kaXRpb25VcGRhdGUnICkgewogICAgICAgICRIaXN0b3J5RW50cnktPntDb250ZW50TmV3fSA9fiBzeyBcQSBcZCsgJSUgKC4rKSBceiB9eyQxfXhtczsKICAgICAgICAkSGlzdG9yeUVudHJ5LT57Q29udGVudE9sZH0gPX4gc3sgXEEgXGQrICUlICguKykgXHogfXskMX14bXM7CiAgICB9CgogICAgIyBzdGFydCB0ZW1wbGF0ZSBvdXRwdXQKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20nLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXskQ2hhbmdlfSwKICAgICAgICAgICAgJXskSGlzdG9yeUVudHJ5fSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCBmb290ZXIKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKAogICAgICAgIFR5cGUgPT4gJ1NtYWxsJywKICAgICk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeInvolvedPersons.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29uczsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBMaXN0OjpVdGlsICAgICAgIHF3KCk7CnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgZ2V0IG5lZWRlZCBDaGFuZ2VJRAogICAgbXkgJENoYW5nZUlEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NoYW5nZUlEJyApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRDaGFuZ2VJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBDaGFuZ2VJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgQWN0aW9uICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZXJyb3Igc2NyZWVuCiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIScsICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259ICksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBjaGFuZ2UgZGF0YQogICAgbXkgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGlmIGNoYW5nZSBpcyBmb3VuZAogICAgaWYgKCAhJENoYW5nZSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlIScsICRDaGFuZ2VJRCApLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHN0b3JlIGFsbCBuZWVkZWQgcGFyYW1ldGVycyBpbiAlR2V0UGFyYW0gdG8gbWFrZSBpdCByZWxvYWRhYmxlCiAgICBteSAlR2V0UGFyYW07CiAgICBmb3IgbXkgJFBhcmFtTmFtZSAoCiAgICAgICAgcXcoQ2hhbmdlQnVpbGRlciBDaGFuZ2VCdWlsZGVyU2VsZWN0ZWQgQ2hhbmdlTWFuYWdlciBDaGFuZ2VNYW5hZ2VyU2VsZWN0ZWQKICAgICAgICBOZXdDQUJNZW1iZXIgTmV3Q0FCTWVtYmVyU2VsZWN0ZWQgTmV3Q0FCTWVtYmVyVHlwZSBDQUJUZW1wbGF0ZSBBZGRDQUJNZW1iZXIKICAgICAgICBBZGRDQUJUZW1wbGF0ZSBUZW1wbGF0ZUlEIE5ld1RlbXBsYXRlIFN1Ym1pdCkKICAgICAgICApCiAgICB7CiAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtTmFtZSApOwogICAgfQoKICAgICMgc2VydmVyIGVycm9yIGhhc2gsIHRvIHN0b3JlIHRoZSBpdGVtcyB3aXRoIFNlcnZlckVycm9yIGNsYXNzCiAgICBteSAlU2VydmVyRXJyb3I7CgogICAgIyBSZW1lbWJlciB0aGUgcmVhc29uIHdoeSBzYXZpbmcgd2FzIG5vdCBhdHRlbXB0ZWQuCiAgICAjIFRoZSBlbnRyaWVzIGFyZSB0aGUgbmFtZXMgb2YgdGhlIGR0bCB2YWxpZGF0aW9uIGVycm9yIGJsb2Nrcy4KICAgIG15IEBWYWxpZGF0aW9uRXJyb3JzOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkVGVtcGxhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGUnKTsKICAgIG15ICRVc2VyT2JqZWN0ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1NhdmUnICkgewoKICAgICAgICAjIGdvIHRvIHN0b3JlIHRoZSBuZXcgdGVtcGxhdGUKICAgICAgICBpZiAoICRHZXRQYXJhbXtOZXdUZW1wbGF0ZX0gKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRJVFNNQ2hhbmdlQ0FCVGVtcGxhdGU7Q2hhbmdlSUQ9JENoYW5nZUlEIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgY2hhbmdlIG1hbmFnZXIgYW5kIGNoYW5nZSBidWlsZGVyIGFyZSByZXF1aXJlZCBmb3IgYW4gdXBkYXRlCiAgICAgICAgbXkgJUVycm9yQWxsUmVxdWlyZWQgPSAkU2VsZi0+X0NoZWNrQ2hhbmdlTWFuYWdlckFuZENoYW5nZUJ1aWxkZXIoCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICApOwoKICAgICAgICAjIGlzIGNhYiBtZW1iZXIgZGVsZXRlIHJlcXVlc3RlZAogICAgICAgIG15ICVEZWxldGVNZW1iZXIgPSAkU2VsZi0+X0lzTWVtYmVyRGVsZXRpb24oCiAgICAgICAgICAgIENoYW5nZSA9PiAkQ2hhbmdlLAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIGNoYW5nZQogICAgICAgIGlmICggJEdldFBhcmFte0FkZENBQk1lbWJlcn0gJiYgJEdldFBhcmFte05ld0NBQk1lbWJlcn0gKSB7CgogICAgICAgICAgICAjIGFkZCBhIG1lbWJlcgogICAgICAgICAgICBteSAlQ0FCVXBkYXRlSW5mbyA9ICRTZWxmLT5fSXNOZXdDQUJNZW1iZXJPaygKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgIENoYW5nZSA9PiAkQ2hhbmdlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBpZiBtZW1iZXIgaXMgdmFsaWQKICAgICAgICAgICAgaWYgKCVDQUJVcGRhdGVJbmZvKSB7CgogICAgICAgICAgICAgICAgIyB1cGRhdGUgY2hhbmdlIENBQgogICAgICAgICAgICAgICAgbXkgJENvdWxkVXBkYXRlQ0FCID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQ0FCVXBkYXRlKAogICAgICAgICAgICAgICAgICAgICVDQUJVcGRhdGVJbmZvLAogICAgICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2UtPntDaGFuZ2VJRH0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGlmIHVwZGF0ZSB3YXMgc3VjY2Vzc2Z1bAogICAgICAgICAgICAgICAgaWYgKCRDb3VsZFVwZGF0ZUNBQikgewoKICAgICAgICAgICAgICAgICAgICAjIGdldCBuZXcgY2hhbmdlIGRhdGEgYXMgYSBtZW1iZXIgd2FzIGFkZGVkCiAgICAgICAgICAgICAgICAgICAgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgZG8gbm90IGRpc3BsYXkgYSBuYW1lIGluIGF1dG9jb21wbGV0ZSBmaWVsZAogICAgICAgICAgICAgICAgICAgICMgYW5kIGRvIG5vdCBzZXQgdmFsdWVzIGluIGhpZGRlbiBmaWVsZHMgYXMgdGhlCiAgICAgICAgICAgICAgICAgICAgIyB1c2VyIHdhcyBhbHJlYWR5IGFkZGVkCiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIEBHZXRQYXJhbXtxdyhOZXdDQUJNZW1iZXIgTmV3Q0FCTWVtYmVyU2VsZWN0ZWQgTmV3Q0FCTWVtYmVyVHlwZSl9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSBDQUIgZm9yIENoYW5nZSAlcyEnLCAkQ2hhbmdlSUQKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaWYgbWVtYmVyIGlzIGludmFsaWQKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VydmVyRXJyb3J7TmV3Q0FCTWVtYmVyRXJyb3J9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXtBZGRDQUJUZW1wbGF0ZX0gKSB7CgogICAgICAgICAgICBpZiAoICRHZXRQYXJhbXtUZW1wbGF0ZUlEfSApIHsKCiAgICAgICAgICAgICAgICAjIGNyZWF0ZSBDQUIgYmFzZWQgb24gdGhlIHRlbXBsYXRlCiAgICAgICAgICAgICAgICBteSAkQ3JlYXRlZElEID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZURlU2VyaWFsaXplKAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlSUQgPT4gJEdldFBhcmFte1RlbXBsYXRlSUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIENoYW5nZUlEICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHJlZGlyZWN0IHRvIGludm9sdmVkIHBlcnNvbiwgd2hlbiBhZGRpbmcgd2FzIHN1Y2Nlc3NmdWwKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucztDaGFuZ2VJRD0kQ2hhbmdlSUQiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBub3RpZnkgYWJvdXQgdGhlIG1pc3NpbmcgdGVtcGxhdGUgaWQKICAgICAgICAgICAgJFNlcnZlckVycm9ye1RlbXBsYXRlSURFcnJvcn0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoJURlbGV0ZU1lbWJlcikgewoKICAgICAgICAgICAgIyBmaW5kIHVzZXJzIHdobyBhcmUgc3RpbGwgbWVtYmVyIG9mIENBQgogICAgICAgICAgICBteSAkVHlwZSAgICAgICAgID0gJERlbGV0ZU1lbWJlcntUeXBlfTsKICAgICAgICAgICAgbXkgQFN0aWxsTWVtYmVycyA9IGdyZXAgeyAkXyBuZSAkRGVsZXRlTWVtYmVye0lEfSB9IEB7ICRDaGFuZ2UtPnskVHlwZX0gfTsKCiAgICAgICAgICAgICMgdXBkYXRlIENoYW5nZUNBQgogICAgICAgICAgICBteSAkQ291bGRVcGRhdGVDQUJNZW1iZXIgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VDQUJVcGRhdGUoCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlLT57Q2hhbmdlSUR9LAogICAgICAgICAgICAgICAgJFR5cGUgICAgPT4gXEBTdGlsbE1lbWJlcnMsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNoZWNrIHN1Y2Nlc3NmdWwgdXBkYXRlCiAgICAgICAgICAgIGlmICggISRDb3VsZFVwZGF0ZUNBQk1lbWJlciApIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZQogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBDaGFuZ2UgQ0FCIGZvciBDaGFuZ2UgJXMhJywgJENoYW5nZUlECiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGdldCBuZXcgY2hhbmdlIGRhdGEgYXMgYSBtZW1iZXIgd2FzIHJlbW92ZWQKICAgICAgICAgICAgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2UtPntDaGFuZ2VJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGp1c3QgdXBkYXRlIGNoYW5nZSB3aGVuIHN1Ym1pdCBidXR0b24gY2xpY2tlZAogICAgICAgIGVsc2lmICggISVFcnJvckFsbFJlcXVpcmVkICYmICRHZXRQYXJhbXtTdWJtaXR9ICkgewoKICAgICAgICAgICAgIyB1cGRhdGUgY2hhbmdlCiAgICAgICAgICAgIG15ICRDYW5VcGRhdGVDaGFuZ2UgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VVcGRhdGUoCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgQ2hhbmdlTWFuYWdlcklEID0+ICRHZXRQYXJhbXtDaGFuZ2VNYW5hZ2VyU2VsZWN0ZWR9LAogICAgICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEID0+ICRHZXRQYXJhbXtDaGFuZ2VCdWlsZGVyU2VsZWN0ZWR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hlY2sgc3VjY2Vzc2Z1bCB1cGRhdGUKICAgICAgICAgICAgaWYgKCRDYW5VcGRhdGVDaGFuZ2UpIHsKCiAgICAgICAgICAgICAgICAjIHJlZGlyZWN0IHRvIGNoYW5nZSB6b29tIG1hc2sKICAgICAgICAgICAgICAgICMgbG9hZCBuZXcgVVJMIGluIHBhcmVudCB3aW5kb3cgYW5kIGNsb3NlIHBvcHVwCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UG9wdXBDbG9zZSgKICAgICAgICAgICAgICAgICAgICBVUkwgPT4gIkFjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPSRDaGFuZ2VJRCIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdXYXMgbm90IGFibGUgdG8gdXBkYXRlIENoYW5nZSAlcyEnLCAkQ2hhbmdlSUQgKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNob3cgZmllbGQgZXJyb3JzIGp1c3Qgd2hlbiBzdWJtaXQKICAgICAgICBlbHNpZiAoICVFcnJvckFsbFJlcXVpcmVkICYmICRHZXRQYXJhbXtTdWJtaXR9ICkgewoKICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UgZm9yIGNoYW5nZSBidWlsZGVyCiAgICAgICAgICAgIGlmICggJEVycm9yQWxsUmVxdWlyZWR7Q2hhbmdlQnVpbGRlcn0gKSB7CiAgICAgICAgICAgICAgICAkU2VydmVyRXJyb3J7Q2hhbmdlQnVpbGRlckVycm9yfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlIGZvciBjaGFuZ2UgbWFuYWdlcgogICAgICAgICAgICBpZiAoICRFcnJvckFsbFJlcXVpcmVke0NoYW5nZU1hbmFnZXJ9ICkgewogICAgICAgICAgICAgICAgJFNlcnZlckVycm9ye0NoYW5nZU1hbmFnZXJFcnJvcn0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHVzZSB0aGUgc2VsZWN0ZWQgY2hhbmdlIGFuZCBidWlsZGVyIG1hbmFnZXJzCiAgICAgICAgaWYgKCAkR2V0UGFyYW17Q2hhbmdlTWFuYWdlclNlbGVjdGVkfSApIHsKICAgICAgICAgICAgJENoYW5nZS0+e0NoYW5nZU1hbmFnZXJJRH0gPSAkR2V0UGFyYW17Q2hhbmdlTWFuYWdlclNlbGVjdGVkfTsKICAgICAgICB9CgogICAgICAgIGlmICggJEdldFBhcmFte0NoYW5nZUJ1aWxkZXJTZWxlY3RlZH0gKSB7CiAgICAgICAgICAgICRDaGFuZ2UtPntDaGFuZ2VCdWlsZGVySUR9ID0gJEdldFBhcmFte0NoYW5nZUJ1aWxkZXJTZWxlY3RlZH07CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGRlZmF1bHQgdmFsdWVzIGlmIGl0IGlzIG5vdCAnU2F2ZScgc3ViYWN0aW9uCiAgICBlbHNlIHsKCiAgICAgICAgIyBpbml0aWFsaXplIHZhcmlhYmxlcwogICAgICAgIG15ICRDaGFuZ2VNYW5hZ2VyID0gJyc7CiAgICAgICAgbXkgJENoYW5nZUJ1aWxkZXIgPSAnJzsKCiAgICAgICAgIyBnZXQgY2hhbmdlbWFuYWdlciBzdHJpbmcKICAgICAgICBpZiAoICRDaGFuZ2UtPntDaGFuZ2VNYW5hZ2VySUR9ICkgewoKICAgICAgICAgICAgIyBnZXQgY2hhbmdlbWFuYWdlciBkYXRhCiAgICAgICAgICAgIG15ICVDaGFuZ2VNYW5hZ2VyRGF0YSA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkQ2hhbmdlLT57Q2hhbmdlTWFuYWdlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICglQ2hhbmdlTWFuYWdlckRhdGEpIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIHN0cmluZyB0byBkaXNwbGF5CiAgICAgICAgICAgICAgICAkQ2hhbmdlTWFuYWdlciA9IHNwcmludGYgJyIlcyIgPCVzPicsCiAgICAgICAgICAgICAgICAgICAgJENoYW5nZU1hbmFnZXJEYXRhe1VzZXJGdWxsbmFtZX0sCiAgICAgICAgICAgICAgICAgICAgJENoYW5nZU1hbmFnZXJEYXRhe1VzZXJFbWFpbH07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZ2V0IGNoYW5nZWJ1aWxkZXIgc3RyaW5nCiAgICAgICAgaWYgKCAkQ2hhbmdlLT57Q2hhbmdlQnVpbGRlcklEfSApIHsKCiAgICAgICAgICAgICMgZ2V0IGNoYW5nZWJ1aWxkZXIgZGF0YQogICAgICAgICAgICBteSAlQ2hhbmdlQnVpbGRlckRhdGEgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJENoYW5nZS0+e0NoYW5nZUJ1aWxkZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJUNoYW5nZUJ1aWxkZXJEYXRhKSB7CgogICAgICAgICAgICAgICAgIyBidWlsZCBzdHJpbmcgdG8gZGlzcGxheQogICAgICAgICAgICAgICAgJENoYW5nZUJ1aWxkZXIgPSBzcHJpbnRmICciJXMiIDwlcz4nLAogICAgICAgICAgICAgICAgICAgICRDaGFuZ2VCdWlsZGVyRGF0YXtVc2VyRnVsbG5hbWV9LAogICAgICAgICAgICAgICAgICAgICRDaGFuZ2VCdWlsZGVyRGF0YXtVc2VyRW1haWx9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGZpbGwgR2V0UGFyYW0gaGFzaAogICAgICAgICVHZXRQYXJhbSA9ICgKICAgICAgICAgICAgQ2hhbmdlTWFuYWdlciAgID0+ICRDaGFuZ2VNYW5hZ2VyLAogICAgICAgICAgICBDaGFuZ2VNYW5hZ2VySUQgPT4gJENoYW5nZS0+e0NoYW5nZU1hbmFnZXJJRH0sCiAgICAgICAgICAgIENoYW5nZUJ1aWxkZXIgICA9PiAkQ2hhbmdlQnVpbGRlciwKICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEID0+ICRDaGFuZ2UtPntDaGFuZ2VCdWlsZGVySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IGFsbCBhZ2VudCBtZW1iZXJzIG9mIENBQgogICAgaWYgKCBAeyAkQ2hhbmdlLT57Q0FCQWdlbnRzfSB9IHx8IEB7ICRDaGFuZ2UtPntDQUJDdXN0b21lcnN9IH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0NBQk1lbWJlclRhYmxlJyApOwogICAgfQoKICAgIFVTRVJJRDoKICAgIGZvciBteSAkVXNlcklEICggQHsgJENoYW5nZS0+e0NBQkFnZW50c30gfSApIHsKCiAgICAgICAgIyBnZXQgdXNlciBkYXRhCiAgICAgICAgbXkgJVVzZXJEYXRhID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICApOwoKICAgICAgICAjIG5leHQgaWYgbm8gdXNlciBkYXRhIGNhbiBiZSBmb3VuZAogICAgICAgIG5leHQgVVNFUklEIGlmICElVXNlckRhdGE7CgogICAgICAgICMgZGlzcGxheSBjYWIgbWVtYmVyIGluZm8KICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQ0FCTWVtYmVyUm93JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBVc2VyVHlwZSAgICAgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgICAgICBJbnRlcm5hbFVzZXJUeXBlID0+ICdDQUJBZ2VudHMnLAogICAgICAgICAgICAgICAgJVVzZXJEYXRhLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgfQoKICAgICMgZ2V0IGN1c3RvbWVyIHVzZXIgb2JqZWN0CiAgICBteSAkQ3VzdG9tZXJVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcicpOwoKICAgICMgc2hvdyBhbGwgY3VzdG9tZXIgbWVtYmVycyBvZiBDQUIKICAgIENVU1RPTUVSTE9HSU46CiAgICBmb3IgbXkgJEN1c3RvbWVyTG9naW4gKCBAeyAkQ2hhbmdlLT57Q0FCQ3VzdG9tZXJzfSB9ICkgewoKICAgICAgICAjIGdldCB1c2VyIGRhdGEKICAgICAgICBteSAlQ3VzdG9tZXJVc2VyRGF0YSA9ICRDdXN0b21lclVzZXJPYmplY3QtPkN1c3RvbWVyVXNlckRhdGFHZXQoCiAgICAgICAgICAgIFVzZXIgID0+ICRDdXN0b21lckxvZ2luLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgbmV4dCBpZiBubyB1c2VyIGRhdGEgY2FuIGJlIGZvdW5kCiAgICAgICAgbmV4dCBDVVNUT01FUkxPR0lOIGlmICElQ3VzdG9tZXJVc2VyRGF0YTsKCiAgICAgICAgIyBkaXNwbGF5IGNhYiBtZW1iZXIgaW5mbwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdDQUJNZW1iZXJSb3cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFVzZXJUeXBlICAgICAgICAgPT4gJ0N1c3RvbWVyJywKICAgICAgICAgICAgICAgIEludGVybmFsVXNlclR5cGUgPT4gJ0NBQkN1c3RvbWVycycsCiAgICAgICAgICAgICAgICAlQ3VzdG9tZXJVc2VyRGF0YSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyB2YWxpZGF0aW9uIGVycm9ycyBpbiBDQUJUZW1wbGF0ZSBibG9jawogICAgbXkgJVZhbGlkYXRpb25FcnJvck5hbWVzOwogICAgbXkgJFRlbXBsYXRlRXJyb3IgPSAnJzsKCiAgICAkVmFsaWRhdGlvbkVycm9yTmFtZXN7QFZhbGlkYXRpb25FcnJvcnN9ID0gKDEpIHggQFZhbGlkYXRpb25FcnJvcnM7CgogICAgZm9yIG15ICRDaGFuZ2VUZW1wbGF0ZVZhbGlkYXRpb25FcnJvciAocXcoSW52YWxpZFRlbXBsYXRlKSkgewogICAgICAgIGlmICggJFZhbGlkYXRpb25FcnJvck5hbWVzeyRDaGFuZ2VUZW1wbGF0ZVZhbGlkYXRpb25FcnJvcn0gKSB7CiAgICAgICAgICAgICRTZXJ2ZXJFcnJvcntUZW1wbGF0ZUlERXJyb3J9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CiAgICB9CgogICAgIyBidWlsZCB0ZW1wbGF0ZSBkcm9wZG93bgogICAgbXkgJFRlbXBsYXRlTGlzdCA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVMaXN0KAogICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgIENvbW1lbnRMZW5ndGggPT4gMTUsCiAgICAgICAgVGVtcGxhdGVUeXBlICA9PiAnQ0FCJywKICAgICk7CgogICAgbXkgJFRlbXBsYXRlRHJvcERvd24gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBOYW1lICAgICAgICAgPT4gJ1RlbXBsYXRlSUQnLAogICAgICAgIERhdGEgICAgICAgICA9PiAkVGVtcGxhdGVMaXN0LAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBzaG93IGJsb2NrIHdpdGggdGVtcGxhdGUgZHJvcGRvd24KICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0NBQlRlbXBsYXRlJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgQ0FCVGVtcGxhdGVTdHJnID0+ICRUZW1wbGF0ZURyb3BEb3duLAogICAgICAgIH0sCiAgICApOwoKICAgICMgaWYgQ0FCIE1lbWJlcnMgc2hvdyBOZXcgVGVtcGxhdGUgQnV0dG9uCiAgICBpZiAoIEB7ICRDaGFuZ2UtPntDQUJBZ2VudHN9IH0gfHwgQHsgJENoYW5nZS0+e0NBQkN1c3RvbWVyc30gfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnTmV3VGVtcGxhdGVCdXR0b24nICk7CiAgICB9CgogICAgIyBvdXRwdXQgaGVhZGVyIGFuZCBuYXZpZ2F0aW9uCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnSW52b2x2ZWQgUGVyc29ucycpLAogICAgICAgIFR5cGUgID0+ICdTbWFsbCcsCiAgICApOwoKICAgICMgc3RhcnQgdGVtcGxhdGUgb3V0cHV0CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyRDaGFuZ2V9LAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVTZXJ2ZXJFcnJvciwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCBmb290ZXIKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCBUeXBlID0+ICdTbWFsbCcgKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9Jc01lbWJlckRlbGV0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkbyBub3QgZGV0ZWN0IGRlbGV0aW9uIHdoZW4gbm8gc3ViYWN0aW9uIGlzIGdpdmVuCiAgICByZXR1cm4gaWYgISRTZWxmLT57U3ViYWN0aW9ufTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgcmV0dXJuIGlmICEkUGFyYW17Q2hhbmdlfTsKCiAgICAjIGluZm8gYWJvdXQgd2hhdCB0byBkZWxldGUKICAgIG15ICVEZWxldGVJbmZvOwoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgQ2hlY2sgZm9yIHRoZSBtZW1iZXIgdG8gZGVsZXRlCiAgICBteSAkRGVsZXRlQ0FCTWVtYmVyID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSgKICAgICAgICBQYXJhbSA9PiAnRGVsZXRlQ0FCTWVtYmVyJywKICAgICk7CgogICAgIyBTdG9wIGhlcmUgaWYgbm8gY2FiIG1lbWJlciB3YXMgZ2l2ZW4gdG8gZGVsZXRlLgogICAgcmV0dXJuIGlmICEkRGVsZXRlQ0FCTWVtYmVyOwoKICAgIG15ICggJE1lbWJlclR5cGUsICRNZW1iZXJJRCwgKSA9ICggJERlbGV0ZUNBQk1lbWJlciA9fiBtL14oXHcrKS0oLispJC9pICk7CgogICAgIyBObyBtZW1iZXIsIGRvbid0IGRvIGFueXRoaW5nIGVsc2UuCiAgICByZXR1cm4gaWYgISRNZW1iZXJJRDsKCiAgICAjIEdldCB0aGUgbWVtYmVycyBsaXN0LgogICAgbXkgJFZhbGlkTWVtYmVycyA9ICRQYXJhbXtDaGFuZ2V9LT57JE1lbWJlclR5cGV9IHx8IFtdOwoKICAgICMgTm8gbWVtYmVycyBmb3IgdGhlIHR5cGUsIGp1c3QgcmV0dXJuLgogICAgcmV0dXJuIGlmICFAeyRWYWxpZE1lbWJlcnN9OwoKICAgICMgQ2hlY2sgaWYgdGhlIGdpdmVuIG1lbWJlciBpZCBpcyB2YWxpZC4KICAgIG15ICRGb3VuZCA9IExpc3Q6OlV0aWw6OmZpcnN0IHsgJF8gZXEgJE1lbWJlcklEIH0gQHskVmFsaWRNZW1iZXJzfTsKICAgIGlmICgkRm91bmQpIHsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgICBUeXBlID0+ICRNZW1iZXJUeXBlLAogICAgICAgICAgICBJRCAgID0+ICRNZW1iZXJJRCwKICAgICAgICApOwogICAgfQoKICAgICMgTWVtYmVyIG5vdCBmb3VuZC4KICAgIHJldHVybjsKfQoKc3ViIF9DaGVja0NoYW5nZU1hbmFnZXJBbmRDaGFuZ2VCdWlsZGVyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBUaGUgaGFzaCB3aXRoIHRoZSBlcnJvciBpbmZvIHdpbGwgYmUgcmV0dXJuZWQuCiAgICBteSAlRXJyb3JzOwoKICAgIFJPTEU6CiAgICBmb3IgbXkgJFJvbGUgKHF3KENoYW5nZUJ1aWxkZXIgQ2hhbmdlTWFuYWdlcikpIHsKCiAgICAgICAgIyBjaGVjayB0aGUgcm9sZQogICAgICAgIGlmICggISRQYXJhbXskUm9sZX0gfHwgISRQYXJhbXsgJFJvbGUgLiAnU2VsZWN0ZWQnIH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7JFJvbGV9ID0gMTsKICAgICAgICAgICAgbmV4dCBST0xFOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgdXNlciBkYXRhCiAgICAgICAgbXkgJVVzZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXsgJFJvbGUgLiAnU2VsZWN0ZWQnIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGVycm9yIGlmIHVzZXIgZG9lcyBub3QgZXhpc3QKICAgICAgICBpZiAoICElVXNlciApIHsKICAgICAgICAgICAgJEVycm9yc3skUm9sZX0gPSAxOwogICAgICAgICAgICBuZXh0IFJPTEU7CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIHdoZXRoZXIgdGhlIGlucHV0IGhhcyBiZWVuIG1hbnVhbGx5IGVkaXRlZC4KICAgICAgICAjIExvb2sgZm9yIGV4YWN0IG1hdGNoIGF0IGJlZ2lubmluZywKICAgICAgICAjIGFzICRVc2Vye1VzZXJMYXN0bmFtZX0gbWlnaHQgY29udGFpbiBhIHRyYWlsaW5nICdvdXQgb2Ygb2ZmaWNlJyBub3RlLgogICAgICAgICMgTm90ZSB0aGF0IHRoaXMgd29uJ3QgY2F0Y2ggZGVsZXRpb25zIG9mICRQYXJhbXskUm9sZX0gYXQgdGhlIGVuZC4KICAgICAgICBteSAkQ2hlY2tTdHJpbmcgPSBzcHJpbnRmICciJXMiIDwlcz4nLAogICAgICAgICAgICAkVXNlcntVc2VyRnVsbG5hbWV9LAogICAgICAgICAgICAkVXNlcntVc2VyRW1haWx9OwogICAgICAgIGlmICggaW5kZXgoICRDaGVja1N0cmluZywgJFBhcmFteyRSb2xlfSApICE9IDAgKSB7CiAgICAgICAgICAgICRFcnJvcnN7JFJvbGV9ID0gMTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVFcnJvcnM7Cn0KCnN1YiBfSXNOZXdDQUJNZW1iZXJPayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICByZXR1cm4gaWYgISRQYXJhbXtDaGFuZ2V9OwoKICAgICMgVGhlIG1lbWJlciBpbmZvIHdpbGwgYmUgcmV0dXJuZWQuCiAgICBteSAlTWVtYmVySW5mbzsKCiAgICAjIENBQkN1c3RvbWVycyBvciBDQUJBZ2VudHM/CiAgICBteSAkTWVtYmVyVHlwZSA9ICRQYXJhbXtOZXdDQUJNZW1iZXJUeXBlfTsKCiAgICAjIGN1cnJlbnQgbWVtYmVycwogICAgbXkgQEN1cnJlbnRNZW1iZXJzOwoKICAgICMgYW4gYWdlbnQgaXMgcmVxdWVzdGVkIHRvIGJlIGFkZGVkCiAgICBpZiAoICRNZW1iZXJUeXBlIGVxICdDQUJBZ2VudHMnICkgewoKICAgICAgICAjIGdldCB1c2VyIG9iamVjdAogICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgbXkgJVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17TmV3Q0FCTWVtYmVyU2VsZWN0ZWR9LAogICAgICAgICk7CgogICAgICAgIGlmICglVXNlcikgewoKICAgICAgICAgICAgIyBjaGVjayBjdXJyZW50IHVzZXJzCiAgICAgICAgICAgIFVTRVJJRDoKICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKCBAeyAkUGFyYW17Q2hhbmdlfS0+eyRNZW1iZXJUeXBlfSB9ICkgewoKICAgICAgICAgICAgICAgICMgZ2V0IHVzZXIgZGF0YQogICAgICAgICAgICAgICAgbXkgJVVzZXJEYXRhID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICAgICAgICAgIFZhbGlkICA9PiAxLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHJlbW92ZSBpbnZhbGlkIHVzZXJzIGZyb20gQ0FCCiAgICAgICAgICAgICAgICBuZXh0IFVTRVJJRCBpZiAhJFVzZXJEYXRhe1VzZXJJRH07CgogICAgICAgICAgICAgICAgcHVzaCBAQ3VycmVudE1lbWJlcnMsICRVc2VySUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgQ29tcGFyZSBpbnB1dCB2YWx1ZSB3aXRoIHVzZXIgZGF0YS4KICAgICAgICAgICAgIyBMb29rIGZvciBleGFjdCBtYXRjaCBhdCBiZWdpbm5pbmcsCiAgICAgICAgICAgICMgYXMgJFVzZXJ7VXNlckxhc3RuYW1lfSBtaWdodCBjb250YWluIGEgdHJhaWxpbmcgJ291dCBvZiBvZmZpY2UnIG5vdGUuCiAgICAgICAgICAgICMgTm90ZSB0aGF0IHRoaXMgd29uJ3QgY2F0Y2ggZGVsZXRpb25zIG9mICRQYXJhbXtOZXdDQUJNZW1iZXJ9IGF0IHRoZSBlbmQuCiAgICAgICAgICAgIG15ICRDaGVja1N0cmluZyA9IHNwcmludGYgJyIlcyIgPCVzPicsCiAgICAgICAgICAgICAgICAkVXNlcntVc2VyRnVsbG5hbWV9LAogICAgICAgICAgICAgICAgJFVzZXJ7VXNlckVtYWlsfTsKICAgICAgICAgICAgaWYgKCBpbmRleCggJENoZWNrU3RyaW5nLCAkUGFyYW17TmV3Q0FCTWVtYmVyfSApID09IDAgKSB7CgogICAgICAgICAgICAgICAgIyBzYXZlIG1lbWJlciBpbmZvcwogICAgICAgICAgICAgICAgJU1lbWJlckluZm8gPSAoCiAgICAgICAgICAgICAgICAgICAgJE1lbWJlclR5cGUgPT4gWyBAQ3VycmVudE1lbWJlcnMsICRVc2Vye1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBhbiBjdXN0b21lciBpcyByZXF1ZXN0ZWQgdG8gYmUgYWRkZWQKICAgIGVsc2UgewoKICAgICAgICAjIGdldCBjdXN0b21lciB1c2VyIG9iamVjdAogICAgICAgIG15ICRDdXN0b21lclVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyk7CgogICAgICAgICMgY2hlY2sgY3VycmVudCBjdXN0b21lciB1c2VycwogICAgICAgIENVU1RPTUVSVVNFUjoKICAgICAgICBmb3IgbXkgJEN1c3RvbWVyVXNlciAoIEB7ICRQYXJhbXtDaGFuZ2V9LT57JE1lbWJlclR5cGV9IH0gKSB7CgogICAgICAgICAgICAjIGdldCBjdXN0b21lciB1c2VyIGRhdGEKICAgICAgICAgICAgbXkgJUN1c3RvbWVyVXNlckRhdGEgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lclVzZXJEYXRhR2V0KAogICAgICAgICAgICAgICAgVXNlciAgPT4gJEN1c3RvbWVyVXNlciwKICAgICAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHJlbW92ZSBpbnZhbGlkIGN1c3RvbWVyIHVzZXJzIGZyb20gQ0FCCiAgICAgICAgICAgIG5leHQgQ1VTVE9NRVJVU0VSIGlmICElQ3VzdG9tZXJVc2VyRGF0YTsKCiAgICAgICAgICAgIHB1c2ggQEN1cnJlbnRNZW1iZXJzLCAkQ3VzdG9tZXJVc2VyOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBpZiBjdXN0b21lciBjYW4gYmUgZm91bmQKICAgICAgICBteSAlQ3VzdG9tZXJVc2VyID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJTZWFyY2goCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkUGFyYW17TmV3Q0FCTWVtYmVyU2VsZWN0ZWR9LAogICAgICAgICk7CgogICAgICAgIGlmICggJEN1c3RvbWVyVXNlcnsgJFBhcmFte05ld0NBQk1lbWJlclNlbGVjdGVkfSB9ICkgewoKICAgICAgICAgICAgIyBzYXZlIG1lbWJlciBpbmZvcwogICAgICAgICAgICAlTWVtYmVySW5mbyA9ICgKICAgICAgICAgICAgICAgICRNZW1iZXJUeXBlID0+IFsgQEN1cnJlbnRNZW1iZXJzLCAkUGFyYW17TmV3Q0FCTWVtYmVyU2VsZWN0ZWR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlTWVtYmVySW5mbzsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeManager.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZU1hbmFnZXI7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNoYW5nZSBvYmplY3QKICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBBY3Rpb24gPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgc3RvcmUgbGFzdCBzY3JlZW4sIHVzZWQgZm9yIGJhY2tsaW5rcwogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyktPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlbkNoYW5nZXMnLAogICAgICAgIFZhbHVlICAgICA9PiAkU2VsZi0+e1JlcXVlc3RlZFVSTH0sCiAgICApOwoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgZ2V0IHNvcnRpbmcgcGFyYW1ldGVycwogICAgbXkgJFNvcnRCeSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTb3J0QnknICkKICAgICAgICB8fCAkU2VsZi0+e0NvbmZpZ30tPnsnU29ydEJ5OjpEZWZhdWx0J30KICAgICAgICB8fCAnQ2hhbmdlTnVtYmVyJzsKCiAgICAjIGdldCBvcmRlcmluZyBwYXJhbWV0ZXJzCiAgICBteSAkT3JkZXJCeSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPcmRlckJ5JyApCiAgICAgICAgfHwgJFNlbGYtPntDb25maWd9LT57J09yZGVyOjpEZWZhdWx0J30KICAgICAgICB8fCAnVXAnOwoKICAgIG15IEBTb3J0QnlBcnJheSAgPSAoJFNvcnRCeSk7CiAgICBteSBAT3JkZXJCeUFycmF5ID0gKCRPcmRlckJ5KTsKCiAgICAjIGludmVzdGlnYXRlIHJlZnJlc2gKICAgIG15ICRSZWZyZXNoID0gJFNlbGYtPntVc2VyUmVmcmVzaFRpbWV9ID8gNjAgKiAkU2VsZi0+e1VzZXJSZWZyZXNoVGltZX0gOiB1bmRlZjsKCiAgICAjIHN0YXJ0aW5nIHdpdGggcGFnZSAuLi4KICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoIFJlZnJlc2ggPT4gJFJlZnJlc2ggKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJExheW91dE9iamVjdC0+UHJpbnQoIE91dHB1dCA9PiBcJE91dHB1dCApOwogICAgJE91dHB1dCA9ICcnOwoKICAgICMgZmluZCBvdXQgd2hpY2ggY29sdW1ucyBzaG91bGQgYmUgc2hvd24KICAgIG15IEBTaG93Q29sdW1uczsKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U2hvd0NvbHVtbnN9ICkgewoKICAgICAgICAjIGdldCBhbGwgcG9zc2libGUgY29sdW1ucyBmcm9tIGNvbmZpZwogICAgICAgIG15ICVQb3NzaWJsZUNvbHVtbiA9ICV7ICRTZWxmLT57Q29uZmlnfS0+e1Nob3dDb2x1bW5zfSB9OwoKICAgICAgICAjIGdldCB0aGUgY29sdW1uIG5hbWVzIHRoYXQgc2hvdWxkIGJlIHNob3duCiAgICAgICAgQ09MVU1OTkFNRToKICAgICAgICBmb3IgbXkgJE5hbWUgKCBzb3J0IGtleXMgJVBvc3NpYmxlQ29sdW1uICkgewogICAgICAgICAgICBuZXh0IENPTFVNTk5BTUUgaWYgISRQb3NzaWJsZUNvbHVtbnskTmFtZX07CiAgICAgICAgICAgIHB1c2ggQFNob3dDb2x1bW5zLCAkTmFtZTsKICAgICAgICB9CiAgICB9CgogICAgIyB0byBzdG9yZSB0aGUgZmlsdGVycwogICAgbXkgJUZpbHRlcnM7CgogICAgIyBzZXQgb3RoZXIgZmlsdGVycyBiYXNlZCBvbiBjaGFuZ2Ugc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57J0ZpbHRlcjo6Q2hhbmdlU3RhdGVzJ30gKSB7CgogICAgICAgICMgZGVmaW5lIHBvc2l0aW9uIG9mIHRoZSBmaWx0ZXIgaW4gdGhlIGZyb250ZW5kCiAgICAgICAgbXkgJFByaW9Db3VudGVyID0gMTAwMDsKCiAgICAgICAgIyBnZXQgYWxsIGNoYW5nZSBzdGF0ZXMgdGhhdCBzaG91bGQgYmUgdXNlZCBhcyBmaWx0ZXJzCiAgICAgICAgQ0hBTkdFU1RBVEU6CiAgICAgICAgZm9yIG15ICRDaGFuZ2VTdGF0ZSAoIEB7ICRTZWxmLT57Q29uZmlnfS0+eydGaWx0ZXI6OkNoYW5nZVN0YXRlcyd9IH0gKSB7CgogICAgICAgICAgICAjIGRvIG5vdCB1c2UgZW1wdHkgY2hhbmdlIHN0YXRlcwogICAgICAgICAgICBuZXh0IENIQU5HRVNUQVRFIGlmICEkQ2hhbmdlU3RhdGU7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHN0YXRlIGlzIHZhbGlkIGJ5IGxvb2tpbmcgdXAgdGhlIHN0YXRlIGlkCiAgICAgICAgICAgIG15ICRDaGFuZ2VTdGF0ZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU3RhdGVMb29rdXAoCiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZSA9PiAkQ2hhbmdlU3RhdGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGRvIG5vdCB1c2UgaW52YWxpZCBjaGFuZ2Ugc3RhdGVzCiAgICAgICAgICAgIG5leHQgQ0hBTkdFU1RBVEUgaWYgISRDaGFuZ2VTdGF0ZUlEOwoKICAgICAgICAgICAgIyBpbmNyZWFzZSB0aGUgUHJpb0NvdW50ZXIKICAgICAgICAgICAgJFByaW9Db3VudGVyKys7CgogICAgICAgICAgICAjIGFkZCBmaWx0ZXIgZm9yIHRoZSBjdXJyZW50IGNoYW5nZSBzdGF0ZQogICAgICAgICAgICAkRmlsdGVyc3skQ2hhbmdlU3RhdGV9ID0gewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICRDaGFuZ2VTdGF0ZSwKICAgICAgICAgICAgICAgIFByaW8gICA9PiAkUHJpb0NvdW50ZXIsCiAgICAgICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgICAgIENoYW5nZU1hbmFnZXJJRHMgPT4gWyAkU2VsZi0+e1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZXMgICAgID0+IFskQ2hhbmdlU3RhdGVdLAogICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gXEBTb3J0QnlBcnJheSwKICAgICAgICAgICAgICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFxAT3JkZXJCeUFycmF5LAogICAgICAgICAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgPT4gMTAwMCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGZpbHRlciBhbmQgdmlldyBwYXJhbXMKICAgICRTZWxmLT57RmlsdGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdGaWx0ZXInICkgfHwgJ0FsbCc7CiAgICAkU2VsZi0+e1ZpZXd9ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVmlldycgKSAgIHx8ICcnOwoKICAgICMgaWYgb25seSBvbmUgZmlsdGVyIGV4aXN0cwogICAgaWYgKCBzY2FsYXIga2V5cyAlRmlsdGVycyA9PSAxICkgewoKICAgICAgICAjIGdldCB0aGUgbmFtZSBvZiB0aGUgb25seSBmaWx0ZXIKICAgICAgICBteSAoJEZpbHRlck5hbWUpID0ga2V5cyAlRmlsdGVyczsKCiAgICAgICAgIyBhY3RpdmF0ZSB0aGlzIGZpbHRlcgogICAgICAgICRTZWxmLT57RmlsdGVyfSA9ICRGaWx0ZXJOYW1lOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgYWRkIGRlZmF1bHQgZmlsdGVyCiAgICAgICAgJEZpbHRlcnN7QWxsfSA9IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdBbGwnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZU1hbmFnZXJJRHMgPT4gWyAkU2VsZi0+e1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlcyAgICAgPT4gJFNlbGYtPntDb25maWd9LT57J0ZpbHRlcjo6Q2hhbmdlU3RhdGVzJ30sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFxAU29ydEJ5QXJyYXksCiAgICAgICAgICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFxAT3JkZXJCeUFycmF5LAogICAgICAgICAgICAgICAgTGltaXQgICAgICAgICAgICA9PiAxMDAwLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIGZpbHRlciBpcyB2YWxpZAogICAgaWYgKCAhJEZpbHRlcnN7ICRTZWxmLT57RmlsdGVyfSB9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkZhdGFsRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnSW52YWxpZCBGaWx0ZXI6ICVzIScsICRTZWxmLT57RmlsdGVyfSApLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZWFyY2ggY2hhbmdlcyB3aGljaCBtYXRjaCB0aGUgc2VsZWN0ZWQgZmlsdGVyCiAgICBteSAkQ2hhbmdlSURzUmVmID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU2VhcmNoKAogICAgICAgICV7ICRGaWx0ZXJzeyAkU2VsZi0+e0ZpbHRlcn0gfS0+e1NlYXJjaH0gfSwKICAgICk7CgogICAgIyBkaXNwbGF5IGFsbCBuYXZiYXIgZmlsdGVycwogICAgbXkgJU5hdkJhckZpbHRlcjsKICAgIGZvciBteSAkRmlsdGVyICggc29ydCBrZXlzICVGaWx0ZXJzICkgewoKICAgICAgICAjIGNvdW50IHRoZSBudW1iZXIgb2YgY2hhbmdlcyBmb3IgZWFjaCBmaWx0ZXIKICAgICAgICBteSAkQ291bnQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICBSZXN1bHQgPT4gJ0NPVU5UJywKICAgICAgICApOwoKICAgICAgICAjIGRpc3BsYXkgdGhlIG5hdmJhciBmaWx0ZXIKICAgICAgICAkTmF2QmFyRmlsdGVyeyAkRmlsdGVyc3skRmlsdGVyfS0+e1ByaW99IH0gPSB7CiAgICAgICAgICAgIENvdW50ICA9PiAkQ291bnQsCiAgICAgICAgICAgIEZpbHRlciA9PiAkRmlsdGVyLAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfSB9LAogICAgICAgIH07CiAgICB9CgogICAgIyBzaG93IGNoYW5nZXMKICAgIG15ICRMaW5rUGFnZSA9ICdGaWx0ZXI9JwogICAgICAgIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e0ZpbHRlcn0gKQogICAgICAgIC4gJztWaWV3PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57Vmlld30gKQogICAgICAgIC4gJztTb3J0Qnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApCiAgICAgICAgLiAnO09yZGVyQnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKQogICAgICAgIC4gJzsnOwogICAgbXkgJExpbmtTb3J0ID0gJ0ZpbHRlcj0nCiAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57RmlsdGVyfSApCiAgICAgICAgLiAnO1ZpZXc9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntWaWV3fSApCiAgICAgICAgLiAnOyc7CiAgICBteSAkTGlua0ZpbHRlciA9ICdTb3J0Qnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApCiAgICAgICAgLiAnO09yZGVyQnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKQogICAgICAgIC4gJztWaWV3PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57Vmlld30gKQogICAgICAgIC4gJzsnOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5JVFNNQ2hhbmdlTGlzdFNob3coCgogICAgICAgIENoYW5nZUlEcyA9PiAkQ2hhbmdlSURzUmVmLAogICAgICAgIFRvdGFsICAgICA9PiBzY2FsYXIgQHskQ2hhbmdlSURzUmVmfSwKCiAgICAgICAgVmlldyA9PiAkU2VsZi0+e1ZpZXd9LAoKICAgICAgICBGaWx0ZXIgICAgID0+ICRTZWxmLT57RmlsdGVyfSwKICAgICAgICBGaWx0ZXJzICAgID0+IFwlTmF2QmFyRmlsdGVyLAogICAgICAgIEZpbHRlckxpbmsgPT4gJExpbmtGaWx0ZXIsCgogICAgICAgIFRpdGxlTmFtZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ092ZXJ2aWV3OiBDaGFuZ2VNYW5hZ2VyJyksCgogICAgICAgIFRpdGxlVmFsdWUgPT4gJFNlbGYtPntGaWx0ZXJ9LAoKICAgICAgICBFbnYgICAgICA9PiAkU2VsZiwKICAgICAgICBMaW5rUGFnZSA9PiAkTGlua1BhZ2UsCiAgICAgICAgTGlua1NvcnQgPT4gJExpbmtTb3J0LAoKICAgICAgICBTaG93Q29sdW1ucyA9PiBcQFNob3dDb2x1bW5zLAogICAgICAgIFNvcnRCeSAgICAgID0+ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApLAogICAgICAgIE9yZGVyQnkgICAgID0+ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeMyCAB.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZU15Q0FCOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIklUU01DaGFuZ2U6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJENoYW5nZU9iamVjdC0+UGVybWlzc2lvbigKICAgICAgICBUeXBlICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgQWN0aW9uID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZXJyb3Igc2NyZWVuCiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIScsICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259ICksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuLCB1c2VkIGZvciBiYWNrbGlua3MKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpLT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RTY3JlZW5DaGFuZ2VzJywKICAgICAgICBWYWx1ZSAgICAgPT4gJFNlbGYtPntSZXF1ZXN0ZWRVUkx9LAogICAgKTsKCiAgICAjIGdldCBwYXJhbSBvYmplY3QKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIGdldCBzb3J0aW5nIHBhcmFtZXRlcnMKICAgIG15ICRTb3J0QnkgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU29ydEJ5JyApCiAgICAgICAgfHwgJFNlbGYtPntDb25maWd9LT57J1NvcnRCeTo6RGVmYXVsdCd9CiAgICAgICAgfHwgJ0NoYW5nZU51bWJlcic7CgogICAgIyBnZXQgb3JkZXJpbmcgcGFyYW1ldGVycwogICAgbXkgJE9yZGVyQnkgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnT3JkZXJCeScgKQogICAgICAgIHx8ICRTZWxmLT57Q29uZmlnfS0+eydPcmRlcjo6RGVmYXVsdCd9CiAgICAgICAgfHwgJ1VwJzsKCiAgICBteSBAU29ydEJ5QXJyYXkgID0gKCRTb3J0QnkpOwogICAgbXkgQE9yZGVyQnlBcnJheSA9ICgkT3JkZXJCeSk7CgogICAgIyBpbnZlc3RpZ2F0ZSByZWZyZXNoCiAgICBteSAkUmVmcmVzaCA9ICRTZWxmLT57VXNlclJlZnJlc2hUaW1lfSA/IDYwICogJFNlbGYtPntVc2VyUmVmcmVzaFRpbWV9IDogdW5kZWY7CgogICAgIyBzdGFydGluZyB3aXRoIHBhZ2UgLi4uCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCBSZWZyZXNoID0+ICRSZWZyZXNoICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRMYXlvdXRPYmplY3QtPlByaW50KCBPdXRwdXQgPT4gXCRPdXRwdXQgKTsKICAgICRPdXRwdXQgPSAnJzsKCiAgICAjIGZpbmQgb3V0IHdoaWNoIGNvbHVtbnMgc2hvdWxkIGJlIHNob3duCiAgICBteSBAU2hvd0NvbHVtbnM7CiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1Nob3dDb2x1bW5zfSApIHsKCiAgICAgICAgIyBnZXQgYWxsIHBvc3NpYmxlIGNvbHVtbnMgZnJvbSBjb25maWcKICAgICAgICBteSAlUG9zc2libGVDb2x1bW4gPSAleyAkU2VsZi0+e0NvbmZpZ30tPntTaG93Q29sdW1uc30gfTsKCiAgICAgICAgIyBnZXQgdGhlIGNvbHVtbiBuYW1lcyB0aGF0IHNob3VsZCBiZSBzaG93bgogICAgICAgIENPTFVNTk5BTUU6CiAgICAgICAgZm9yIG15ICROYW1lICggc29ydCBrZXlzICVQb3NzaWJsZUNvbHVtbiApIHsKICAgICAgICAgICAgbmV4dCBDT0xVTU5OQU1FIGlmICEkUG9zc2libGVDb2x1bW57JE5hbWV9OwogICAgICAgICAgICBwdXNoIEBTaG93Q29sdW1ucywgJE5hbWU7CiAgICAgICAgfQogICAgfQoKICAgICMgdG8gc3RvcmUgdGhlIGZpbHRlcnMKICAgIG15ICVGaWx0ZXJzOwoKICAgICMgc2V0IG90aGVyIGZpbHRlcnMgYmFzZWQgb24gY2hhbmdlIHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+eydGaWx0ZXI6OkNoYW5nZVN0YXRlcyd9ICkgewoKICAgICAgICAjIGRlZmluZSBwb3NpdGlvbiBvZiB0aGUgZmlsdGVyIGluIHRoZSBmcm9udGVuZAogICAgICAgIG15ICRQcmlvQ291bnRlciA9IDEwMDA7CgogICAgICAgICMgZ2V0IGFsbCBjaGFuZ2Ugc3RhdGVzIHRoYXQgc2hvdWxkIGJlIHVzZWQgYXMgZmlsdGVycwogICAgICAgIENIQU5HRVNUQVRFOgogICAgICAgIGZvciBteSAkQ2hhbmdlU3RhdGUgKCBAeyAkU2VsZi0+e0NvbmZpZ30tPnsnRmlsdGVyOjpDaGFuZ2VTdGF0ZXMnfSB9ICkgewoKICAgICAgICAgICAgIyBkbyBub3QgdXNlIGVtcHR5IGNoYW5nZSBzdGF0ZXMKICAgICAgICAgICAgbmV4dCBDSEFOR0VTVEFURSBpZiAhJENoYW5nZVN0YXRlOwoKICAgICAgICAgICAgIyBjaGVjayBpZiBzdGF0ZSBpcyB2YWxpZCBieSBsb29raW5nIHVwIHRoZSBzdGF0ZSBpZAogICAgICAgICAgICBteSAkQ2hhbmdlU3RhdGVJRCA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVN0YXRlTG9va3VwKAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGUgPT4gJENoYW5nZVN0YXRlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBkbyBub3QgdXNlIGludmFsaWQgY2hhbmdlIHN0YXRlcwogICAgICAgICAgICBuZXh0IENIQU5HRVNUQVRFIGlmICEkQ2hhbmdlU3RhdGVJRDsKCiAgICAgICAgICAgICMgaW5jcmVhc2UgdGhlIFByaW9Db3VudGVyCiAgICAgICAgICAgICRQcmlvQ291bnRlcisrOwoKICAgICAgICAgICAgIyBhZGQgZmlsdGVyIGZvciB0aGUgY3VycmVudCBjaGFuZ2Ugc3RhdGUKICAgICAgICAgICAgJEZpbHRlcnN7JENoYW5nZVN0YXRlfSA9IHsKICAgICAgICAgICAgICAgIE5hbWUgICA9PiAkQ2hhbmdlU3RhdGUsCiAgICAgICAgICAgICAgICBQcmlvICAgPT4gJFByaW9Db3VudGVyLAogICAgICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICAgICAgID0+IFsgJFNlbGYtPntVc2VySUR9IF0sCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVzICAgICA9PiBbJENoYW5nZVN0YXRlXSwKICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFxAU29ydEJ5QXJyYXksCiAgICAgICAgICAgICAgICAgICAgT3JkZXJCeURpcmVjdGlvbiA9PiBcQE9yZGVyQnlBcnJheSwKICAgICAgICAgICAgICAgICAgICBMaW1pdCAgICAgICAgICAgID0+IDEwMDAsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBmaWx0ZXIgYW5kIHZpZXcgcGFyYW1zCiAgICAkU2VsZi0+e0ZpbHRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRmlsdGVyJyApIHx8ICdBbGwnOwogICAgJFNlbGYtPntWaWV3fSAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1ZpZXcnICkgICB8fCAnJzsKCiAgICAjIGlmIG9ubHkgb25lIGZpbHRlciBleGlzdHMKICAgIGlmICggc2NhbGFyIGtleXMgJUZpbHRlcnMgPT0gMSApIHsKCiAgICAgICAgIyBnZXQgdGhlIG5hbWUgb2YgdGhlIG9ubHkgZmlsdGVyCiAgICAgICAgbXkgKCRGaWx0ZXJOYW1lKSA9IGtleXMgJUZpbHRlcnM7CgogICAgICAgICMgYWN0aXZhdGUgdGhpcyBmaWx0ZXIKICAgICAgICAkU2VsZi0+e0ZpbHRlcn0gPSAkRmlsdGVyTmFtZTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGFkZCBkZWZhdWx0IGZpbHRlcgogICAgICAgICRGaWx0ZXJze0FsbH0gPSB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnQWxsJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDAsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICAgICAgID0+IFsgJFNlbGYtPntVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZXMgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+eydGaWx0ZXI6OkNoYW5nZVN0YXRlcyd9LAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiBcQFNvcnRCeUFycmF5LAogICAgICAgICAgICAgICAgT3JkZXJCeURpcmVjdGlvbiA9PiBcQE9yZGVyQnlBcnJheSwKICAgICAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgPT4gMTAwMCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICB9LAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBpZiBmaWx0ZXIgaXMgdmFsaWQKICAgIGlmICggISRGaWx0ZXJzeyAkU2VsZi0+e0ZpbHRlcn0gfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0ludmFsaWQgRmlsdGVyOiAlcyEnLCAkU2VsZi0+e0ZpbHRlcn0gKSwKICAgICAgICApOwogICAgfQoKICAgICMgc2VhcmNoIGNoYW5nZXMgd2hpY2ggbWF0Y2ggdGhlIHNlbGVjdGVkIGZpbHRlcgogICAgbXkgJENoYW5nZUlEc1JlZiA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVNlYXJjaCgKICAgICAgICAleyAkRmlsdGVyc3sgJFNlbGYtPntGaWx0ZXJ9IH0tPntTZWFyY2h9IH0sCiAgICApOwoKICAgICMgZGlzcGxheSBhbGwgbmF2YmFyIGZpbHRlcnMKICAgIG15ICVOYXZCYXJGaWx0ZXI7CiAgICBmb3IgbXkgJEZpbHRlciAoIHNvcnQga2V5cyAlRmlsdGVycyApIHsKCiAgICAgICAgIyBjb3VudCB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgZm9yIGVhY2ggZmlsdGVyCiAgICAgICAgbXkgJENvdW50ID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBkaXNwbGF5IHRoZSBuYXZiYXIgZmlsdGVyCiAgICAgICAgJE5hdkJhckZpbHRlcnsgJEZpbHRlcnN7JEZpbHRlcn0tPntQcmlvfSB9ID0gewogICAgICAgICAgICBDb3VudCAgPT4gJENvdW50LAogICAgICAgICAgICBGaWx0ZXIgPT4gJEZpbHRlciwKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0gfSwKICAgICAgICB9OwogICAgfQoKICAgICMgc2hvdyBjaGFuZ2VzCiAgICBteSAkTGlua1BhZ2UgPSAnRmlsdGVyPScKICAgICAgICAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntGaWx0ZXJ9ICkKICAgICAgICAuICc7Vmlldz0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e1ZpZXd9ICkKICAgICAgICAuICc7U29ydEJ5PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTb3J0QnkgKQogICAgICAgIC4gJztPcmRlckJ5PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRPcmRlckJ5ICkKICAgICAgICAuICc7JzsKICAgIG15ICRMaW5rU29ydCA9ICdGaWx0ZXI9JwogICAgICAgIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e0ZpbHRlcn0gKQogICAgICAgIC4gJztWaWV3PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57Vmlld30gKQogICAgICAgIC4gJzsnOwogICAgbXkgJExpbmtGaWx0ZXIgPSAnU29ydEJ5PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTb3J0QnkgKQogICAgICAgIC4gJztPcmRlckJ5PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRPcmRlckJ5ICkKICAgICAgICAuICc7Vmlldz0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e1ZpZXd9ICkKICAgICAgICAuICc7JzsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+SVRTTUNoYW5nZUxpc3RTaG93KAoKICAgICAgICBDaGFuZ2VJRHMgPT4gJENoYW5nZUlEc1JlZiwKICAgICAgICBUb3RhbCAgICAgPT4gc2NhbGFyIEB7JENoYW5nZUlEc1JlZn0sCgogICAgICAgIFZpZXcgPT4gJFNlbGYtPntWaWV3fSwKCiAgICAgICAgRmlsdGVyICAgICA9PiAkU2VsZi0+e0ZpbHRlcn0sCiAgICAgICAgRmlsdGVycyAgICA9PiBcJU5hdkJhckZpbHRlciwKICAgICAgICBGaWx0ZXJMaW5rID0+ICRMaW5rRmlsdGVyLAoKICAgICAgICBUaXRsZU5hbWUgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnT3ZlcnZpZXc6IE15IENBQicpLAogICAgICAgIFRpdGxlVmFsdWUgPT4gJFNlbGYtPntGaWx0ZXJ9LAoKICAgICAgICBFbnYgICAgICA9PiAkU2VsZiwKICAgICAgICBMaW5rUGFnZSA9PiAkTGlua1BhZ2UsCiAgICAgICAgTGlua1NvcnQgPT4gJExpbmtTb3J0LAoKICAgICAgICBTaG93Q29sdW1ucyA9PiBcQFNob3dDb2x1bW5zLAogICAgICAgIFNvcnRCeSAgICAgID0+ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApLAogICAgICAgIE9yZGVyQnkgICAgID0+ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeMyChanges.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZU15Q2hhbmdlczsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGVycm9yIHNjcmVlbgogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyEnLCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSApLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBzdG9yZSBsYXN0IHNjcmVlbiwgdXNlZCBmb3IgYmFja2xpbmtzCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuQ2hhbmdlcycsCiAgICAgICAgVmFsdWUgICAgID0+ICRTZWxmLT57UmVxdWVzdGVkVVJMfSwKICAgICk7CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgc29ydGluZyBwYXJhbWV0ZXJzCiAgICBteSAkU29ydEJ5ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRCeScgKQogICAgICAgIHx8ICRTZWxmLT57Q29uZmlnfS0+eydTb3J0Qnk6OkRlZmF1bHQnfQogICAgICAgIHx8ICdQbGFubmVkU3RhcnRUaW1lJzsKCiAgICAjIGdldCBvcmRlcmluZyBwYXJhbWV0ZXJzCiAgICBteSAkT3JkZXJCeSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPcmRlckJ5JyApCiAgICAgICAgfHwgJFNlbGYtPntDb25maWd9LT57J09yZGVyOjpEZWZhdWx0J30KICAgICAgICB8fCAnVXAnOwoKICAgIG15IEBTb3J0QnlBcnJheSAgPSAoJFNvcnRCeSk7CiAgICBteSBAT3JkZXJCeUFycmF5ID0gKCRPcmRlckJ5KTsKCiAgICAjIGludmVzdGlnYXRlIHJlZnJlc2gKICAgIG15ICRSZWZyZXNoID0gJFNlbGYtPntVc2VyUmVmcmVzaFRpbWV9ID8gNjAgKiAkU2VsZi0+e1VzZXJSZWZyZXNoVGltZX0gOiB1bmRlZjsKCiAgICAjIHN0YXJ0aW5nIHdpdGggcGFnZSAuLi4KICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoIFJlZnJlc2ggPT4gJFJlZnJlc2ggKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJExheW91dE9iamVjdC0+UHJpbnQoIE91dHB1dCA9PiBcJE91dHB1dCApOwogICAgJE91dHB1dCA9ICcnOwoKICAgICMgZmluZCBvdXQgd2hpY2ggY29sdW1ucyBzaG91bGQgYmUgc2hvd24KICAgIG15IEBTaG93Q29sdW1uczsKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U2hvd0NvbHVtbnN9ICkgewoKICAgICAgICAjIGdldCBhbGwgcG9zc2libGUgY29sdW1ucyBmcm9tIGNvbmZpZwogICAgICAgIG15ICVQb3NzaWJsZUNvbHVtbiA9ICV7ICRTZWxmLT57Q29uZmlnfS0+e1Nob3dDb2x1bW5zfSB9OwoKICAgICAgICAjIGdldCB0aGUgY29sdW1uIG5hbWVzIHRoYXQgc2hvdWxkIGJlIHNob3duCiAgICAgICAgQ09MVU1OTkFNRToKICAgICAgICBmb3IgbXkgJE5hbWUgKCBzb3J0IGtleXMgJVBvc3NpYmxlQ29sdW1uICkgewogICAgICAgICAgICBuZXh0IENPTFVNTk5BTUUgaWYgISRQb3NzaWJsZUNvbHVtbnskTmFtZX07CiAgICAgICAgICAgIHB1c2ggQFNob3dDb2x1bW5zLCAkTmFtZTsKICAgICAgICB9CiAgICB9CgogICAgIyB0byBzdG9yZSB0aGUgZmlsdGVycwogICAgbXkgJUZpbHRlcnM7CgogICAgIyBzZXQgb3RoZXIgZmlsdGVycyBiYXNlZCBvbiBjaGFuZ2Ugc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57J0ZpbHRlcjo6Q2hhbmdlU3RhdGVzJ30gKSB7CgogICAgICAgICMgZGVmaW5lIHBvc2l0aW9uIG9mIHRoZSBmaWx0ZXIgaW4gdGhlIGZyb250ZW5kCiAgICAgICAgbXkgJFByaW9Db3VudGVyID0gMTAwMDsKCiAgICAgICAgIyBnZXQgYWxsIGNoYW5nZSBzdGF0ZXMgdGhhdCBzaG91bGQgYmUgdXNlZCBhcyBmaWx0ZXJzCiAgICAgICAgQ0hBTkdFU1RBVEU6CiAgICAgICAgZm9yIG15ICRDaGFuZ2VTdGF0ZSAoIEB7ICRTZWxmLT57Q29uZmlnfS0+eydGaWx0ZXI6OkNoYW5nZVN0YXRlcyd9IH0gKSB7CgogICAgICAgICAgICAjIGRvIG5vdCB1c2UgZW1wdHkgY2hhbmdlIHN0YXRlcwogICAgICAgICAgICBuZXh0IENIQU5HRVNUQVRFIGlmICEkQ2hhbmdlU3RhdGU7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHN0YXRlIGlzIHZhbGlkIGJ5IGxvb2tpbmcgdXAgdGhlIHN0YXRlIGlkCiAgICAgICAgICAgIG15ICRDaGFuZ2VTdGF0ZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU3RhdGVMb29rdXAoCiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZSA9PiAkQ2hhbmdlU3RhdGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGRvIG5vdCB1c2UgaW52YWxpZCBjaGFuZ2Ugc3RhdGVzCiAgICAgICAgICAgIG5leHQgQ0hBTkdFU1RBVEUgaWYgISRDaGFuZ2VTdGF0ZUlEOwoKICAgICAgICAgICAgIyBpbmNyZWFzZSB0aGUgUHJpb0NvdW50ZXIKICAgICAgICAgICAgJFByaW9Db3VudGVyKys7CgogICAgICAgICAgICAjIGFkZCBmaWx0ZXIgZm9yIHRoZSBjdXJyZW50IGNoYW5nZSBzdGF0ZQogICAgICAgICAgICAkRmlsdGVyc3skQ2hhbmdlU3RhdGV9ID0gewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICRDaGFuZ2VTdGF0ZSwKICAgICAgICAgICAgICAgIFByaW8gICA9PiAkUHJpb0NvdW50ZXIsCiAgICAgICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRHMgPT4gWyAkU2VsZi0+e1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZXMgICAgID0+IFskQ2hhbmdlU3RhdGVdLAogICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gXEBTb3J0QnlBcnJheSwKICAgICAgICAgICAgICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFxAT3JkZXJCeUFycmF5LAogICAgICAgICAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgPT4gMTAwMCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGZpbHRlciBhbmQgdmlldyBwYXJhbXMKICAgICRTZWxmLT57RmlsdGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdGaWx0ZXInICkgfHwgJ0FsbCc7CiAgICAkU2VsZi0+e1ZpZXd9ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVmlldycgKSAgIHx8ICcnOwoKICAgICMgaWYgb25seSBvbmUgZmlsdGVyIGV4aXN0cwogICAgaWYgKCBzY2FsYXIga2V5cyAlRmlsdGVycyA9PSAxICkgewoKICAgICAgICAjIGdldCB0aGUgbmFtZSBvZiB0aGUgb25seSBmaWx0ZXIKICAgICAgICBteSAoJEZpbHRlck5hbWUpID0ga2V5cyAlRmlsdGVyczsKCiAgICAgICAgIyBhY3RpdmF0ZSB0aGlzIGZpbHRlcgogICAgICAgICRTZWxmLT57RmlsdGVyfSA9ICRGaWx0ZXJOYW1lOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgYWRkIGRlZmF1bHQgZmlsdGVyCiAgICAgICAgJEZpbHRlcnN7QWxsfSA9IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdBbGwnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRHMgPT4gWyAkU2VsZi0+e1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlcyAgICAgPT4gJFNlbGYtPntDb25maWd9LT57J0ZpbHRlcjo6Q2hhbmdlU3RhdGVzJ30sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFxAU29ydEJ5QXJyYXksCiAgICAgICAgICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFxAT3JkZXJCeUFycmF5LAogICAgICAgICAgICAgICAgTGltaXQgICAgICAgICAgICA9PiAxMDAwLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIGZpbHRlciBpcyB2YWxpZAogICAgaWYgKCAhJEZpbHRlcnN7ICRTZWxmLT57RmlsdGVyfSB9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkZhdGFsRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnSW52YWxpZCBGaWx0ZXI6ICVzIScsICRTZWxmLT57RmlsdGVyfSApLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZWFyY2ggY2hhbmdlcyB3aGljaCBtYXRjaCB0aGUgc2VsZWN0ZWQgZmlsdGVyCiAgICBteSAkQ2hhbmdlSURzUmVmID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU2VhcmNoKAogICAgICAgICV7ICRGaWx0ZXJzeyAkU2VsZi0+e0ZpbHRlcn0gfS0+e1NlYXJjaH0gfSwKICAgICk7CgogICAgIyBkaXNwbGF5IGFsbCBuYXZiYXIgZmlsdGVycwogICAgbXkgJU5hdkJhckZpbHRlcjsKICAgIGZvciBteSAkRmlsdGVyICggc29ydCBrZXlzICVGaWx0ZXJzICkgewoKICAgICAgICAjIGNvdW50IHRoZSBudW1iZXIgb2YgY2hhbmdlcyBmb3IgZWFjaCBmaWx0ZXIKICAgICAgICBteSAkQ291bnQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICBSZXN1bHQgPT4gJ0NPVU5UJywKICAgICAgICApOwoKICAgICAgICAjIGRpc3BsYXkgdGhlIG5hdmJhciBmaWx0ZXIKICAgICAgICAkTmF2QmFyRmlsdGVyeyAkRmlsdGVyc3skRmlsdGVyfS0+e1ByaW99IH0gPSB7CiAgICAgICAgICAgIENvdW50ICA9PiAkQ291bnQsCiAgICAgICAgICAgIEZpbHRlciA9PiAkRmlsdGVyLAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfSB9LAogICAgICAgIH07CiAgICB9CgogICAgIyBzaG93IGNoYW5nZXMKICAgIG15ICRMaW5rUGFnZSA9ICdGaWx0ZXI9JwogICAgICAgIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e0ZpbHRlcn0gKQogICAgICAgIC4gJztWaWV3PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57Vmlld30gKQogICAgICAgIC4gJztTb3J0Qnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApCiAgICAgICAgLiAnO09yZGVyQnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKQogICAgICAgIC4gJzsnOwogICAgbXkgJExpbmtTb3J0ID0gJ0ZpbHRlcj0nCiAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57RmlsdGVyfSApCiAgICAgICAgLiAnO1ZpZXc9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntWaWV3fSApCiAgICAgICAgLiAnOyc7CiAgICBteSAkTGlua0ZpbHRlciA9ICdTb3J0Qnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApCiAgICAgICAgLiAnO09yZGVyQnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKQogICAgICAgIC4gJztWaWV3PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57Vmlld30gKQogICAgICAgIC4gJzsnOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5JVFNNQ2hhbmdlTGlzdFNob3coCgogICAgICAgIENoYW5nZUlEcyA9PiAkQ2hhbmdlSURzUmVmLAogICAgICAgIFRvdGFsICAgICA9PiBzY2FsYXIgQHskQ2hhbmdlSURzUmVmfSwKCiAgICAgICAgVmlldyA9PiAkU2VsZi0+e1ZpZXd9LAoKICAgICAgICBGaWx0ZXIgICAgID0+ICRTZWxmLT57RmlsdGVyfSwKICAgICAgICBGaWx0ZXJzICAgID0+IFwlTmF2QmFyRmlsdGVyLAogICAgICAgIEZpbHRlckxpbmsgPT4gJExpbmtGaWx0ZXIsCgogICAgICAgIFRpdGxlTmFtZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ092ZXJ2aWV3OiBNeSBDaGFuZ2VzJyksCgogICAgICAgIFRpdGxlVmFsdWUgPT4gJFNlbGYtPntGaWx0ZXJ9LAoKICAgICAgICBFbnYgICAgICA9PiAkU2VsZiwKICAgICAgICBMaW5rUGFnZSA9PiAkTGlua1BhZ2UsCiAgICAgICAgTGlua1NvcnQgPT4gJExpbmtTb3J0LAoKICAgICAgICBTaG93Q29sdW1ucyA9PiBcQFNob3dDb2x1bW5zLAogICAgICAgIFNvcnRCeSAgICAgID0+ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApLAogICAgICAgIE9yZGVyQnkgICAgID0+ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeMyWorkOrders.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZU15V29ya09yZGVyczsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGVycm9yIHNjcmVlbgogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyEnLCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSApLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBzdG9yZSBsYXN0IHNjcmVlbiwgdXNlZCBmb3IgYmFja2xpbmtzCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuV29ya09yZGVycycsCiAgICAgICAgVmFsdWUgICAgID0+ICRTZWxmLT57UmVxdWVzdGVkVVJMfSwKICAgICk7CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgc29ydGluZyBwYXJhbWV0ZXJzCiAgICBteSAkU29ydEJ5ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRCeScgKQogICAgICAgIHx8ICRTZWxmLT57Q29uZmlnfS0+eydTb3J0Qnk6OkRlZmF1bHQnfQogICAgICAgIHx8ICdQbGFubmVkU3RhcnRUaW1lJzsKCiAgICAjIGdldCBvcmRlcmluZyBwYXJhbWV0ZXJzCiAgICBteSAkT3JkZXJCeSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPcmRlckJ5JyApCiAgICAgICAgfHwgJFNlbGYtPntDb25maWd9LT57J09yZGVyOjpEZWZhdWx0J30KICAgICAgICB8fCAnVXAnOwoKICAgIG15IEBTb3J0QnlBcnJheSAgPSAoJFNvcnRCeSk7CiAgICBteSBAT3JkZXJCeUFycmF5ID0gKCRPcmRlckJ5KTsKCiAgICAjIHNvcnQgYnkgY2hhbmdlIG51bWJlciBmaXJzdCBpZiB1c2VyIHdhbnRzIHRvIHNvcnQgYnkgd29ya29yZGVyIG51bWJlcgogICAgaWYgKCAkU29ydEJ5IGVxICdXb3JrT3JkZXJOdW1iZXInICkgewogICAgICAgIEBTb3J0QnlBcnJheSAgPSAoICdDaGFuZ2VOdW1iZXInLCAnV29ya09yZGVyTnVtYmVyJyApOwogICAgICAgIEBPcmRlckJ5QXJyYXkgPSAoICRPcmRlckJ5LCAkT3JkZXJCeSApOwogICAgfQoKICAgICMgaW52ZXN0aWdhdGUgcmVmcmVzaAogICAgbXkgJFJlZnJlc2ggPSAkU2VsZi0+e1VzZXJSZWZyZXNoVGltZX0gPyA2MCAqICRTZWxmLT57VXNlclJlZnJlc2hUaW1lfSA6IHVuZGVmOwoKICAgICMgc3RhcnRpbmcgd2l0aCBwYWdlIC4uLgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlciggUmVmcmVzaCA9PiAkUmVmcmVzaCApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAkTGF5b3V0T2JqZWN0LT5QcmludCggT3V0cHV0ID0+IFwkT3V0cHV0ICk7CiAgICAkT3V0cHV0ID0gJyc7CgogICAgIyBmaW5kIG91dCB3aGljaCBjb2x1bW5zIHNob3VsZCBiZSBzaG93bgogICAgbXkgQFNob3dDb2x1bW5zOwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTaG93Q29sdW1uc30gKSB7CgogICAgICAgICMgZ2V0IGFsbCBwb3NzaWJsZSBjb2x1bW5zIGZyb20gY29uZmlnCiAgICAgICAgbXkgJVBvc3NpYmxlQ29sdW1uID0gJXsgJFNlbGYtPntDb25maWd9LT57U2hvd0NvbHVtbnN9IH07CgogICAgICAgICMgZ2V0IHRoZSBjb2x1bW4gbmFtZXMgdGhhdCBzaG91bGQgYmUgc2hvd24KICAgICAgICBDT0xVTU5OQU1FOgogICAgICAgIGZvciBteSAkTmFtZSAoIHNvcnQga2V5cyAlUG9zc2libGVDb2x1bW4gKSB7CiAgICAgICAgICAgIG5leHQgQ09MVU1OTkFNRSBpZiAhJFBvc3NpYmxlQ29sdW1ueyROYW1lfTsKICAgICAgICAgICAgcHVzaCBAU2hvd0NvbHVtbnMsICROYW1lOwogICAgICAgIH0KICAgIH0KCiAgICAjIHRvIHN0b3JlIHRoZSBmaWx0ZXJzCiAgICBteSAlRmlsdGVyczsKCiAgICAjIGdldCB3b3JrIG9yZGVyIG9iamVjdAogICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CgogICAgIyBzZXQgb3RoZXIgZmlsdGVycyBiYXNlZCBvbiB3b3Jrb3JkZXIgc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57J0ZpbHRlcjo6V29ya09yZGVyU3RhdGVzJ30gKSB7CgogICAgICAgICMgZGVmaW5lIHBvc2l0aW9uIG9mIHRoZSBmaWx0ZXIgaW4gdGhlIGZyb250ZW5kCiAgICAgICAgbXkgJFByaW9Db3VudGVyID0gMTAwMDsKCiAgICAgICAgIyBnZXQgYWxsIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCBzaG91bGQgYmUgdXNlZCBhcyBmaWx0ZXJzCiAgICAgICAgV09SS09SREVSU1RBVEU6CiAgICAgICAgZm9yIG15ICRXb3JrT3JkZXJTdGF0ZSAoIEB7ICRTZWxmLT57Q29uZmlnfS0+eydGaWx0ZXI6OldvcmtPcmRlclN0YXRlcyd9IH0gKSB7CgogICAgICAgICAgICAjIGRvIG5vdCB1c2UgZW1wdHkgd29ya29yZGVyIHN0YXRlcwogICAgICAgICAgICBuZXh0IFdPUktPUkRFUlNUQVRFIGlmICEkV29ya09yZGVyU3RhdGU7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHN0YXRlIGlzIHZhbGlkIGJ5IGxvb2tpbmcgdXAgdGhlIHN0YXRlIGlkCiAgICAgICAgICAgIG15ICRXb3JrT3JkZXJTdGF0ZUlEID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyU3RhdGVMb29rdXAoCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZSA9PiAkV29ya09yZGVyU3RhdGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGRvIG5vdCB1c2UgaW52YWxpZCB3b3Jrb3JkZXIgc3RhdGVzCiAgICAgICAgICAgIG5leHQgV09SS09SREVSU1RBVEUgaWYgISRXb3JrT3JkZXJTdGF0ZUlEOwoKICAgICAgICAgICAgIyBpbmNyZWFzZSB0aGUgUHJpb0NvdW50ZXIKICAgICAgICAgICAgJFByaW9Db3VudGVyKys7CgogICAgICAgICAgICAjIGFkZCBmaWx0ZXIgZm9yIHRoZSBjdXJyZW50IHdvcmtvcmRlciBzdGF0ZQogICAgICAgICAgICAkRmlsdGVyc3skV29ya09yZGVyU3RhdGV9ID0gewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICRXb3JrT3JkZXJTdGF0ZSwKICAgICAgICAgICAgICAgIFByaW8gICA9PiAkUHJpb0NvdW50ZXIsCiAgICAgICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlckFnZW50SURzID0+IFsgJFNlbGYtPntVc2VySUR9IF0sCiAgICAgICAgICAgICAgICAgICAgV29ya09yZGVyU3RhdGVzICAgPT4gWyRXb3JrT3JkZXJTdGF0ZV0sCiAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgPT4gXEBTb3J0QnlBcnJheSwKICAgICAgICAgICAgICAgICAgICBPcmRlckJ5RGlyZWN0aW9uICA9PiBcQE9yZGVyQnlBcnJheSwKICAgICAgICAgICAgICAgICAgICBMaW1pdCAgICAgICAgICAgICA9PiAxMDAwLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGZpbHRlciBhbmQgdmlldyBwYXJhbXMKICAgICRTZWxmLT57RmlsdGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdGaWx0ZXInICkgfHwgJ0FsbCc7CiAgICAkU2VsZi0+e1ZpZXd9ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVmlldycgKSAgIHx8ICcnOwoKICAgICMgaWYgb25seSBvbmUgZmlsdGVyIGV4aXN0cwogICAgaWYgKCBzY2FsYXIga2V5cyAlRmlsdGVycyA9PSAxICkgewoKICAgICAgICAjIGdldCB0aGUgbmFtZSBvZiB0aGUgb25seSBmaWx0ZXIKICAgICAgICBteSAoJEZpbHRlck5hbWUpID0ga2V5cyAlRmlsdGVyczsKCiAgICAgICAgIyBhY3RpdmF0ZSB0aGlzIGZpbHRlcgogICAgICAgICRTZWxmLT57RmlsdGVyfSA9ICRGaWx0ZXJOYW1lOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgYWRkIGRlZmF1bHQgZmlsdGVyCiAgICAgICAgJEZpbHRlcnN7QWxsfSA9IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdBbGwnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlckFnZW50SURzID0+IFsgJFNlbGYtPntVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZXMgICA9PiAkU2VsZi0+e0NvbmZpZ30tPnsnRmlsdGVyOjpXb3JrT3JkZXJTdGF0ZXMnfSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgID0+IFxAU29ydEJ5QXJyYXksCiAgICAgICAgICAgICAgICBPcmRlckJ5RGlyZWN0aW9uICA9PiBcQE9yZGVyQnlBcnJheSwKICAgICAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgID0+IDEwMDAsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIGZpbHRlciBpcyB2YWxpZAogICAgaWYgKCAhJEZpbHRlcnN7ICRTZWxmLT57RmlsdGVyfSB9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkZhdGFsRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnSW52YWxpZCBGaWx0ZXI6ICVzIScsICRTZWxmLT57RmlsdGVyfSApLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZWFyY2ggd29ya29yZGVycyB3aGljaCBtYXRjaCB0aGUgc2VsZWN0ZWQgZmlsdGVyCiAgICBteSAkV29ya09yZGVySURzUmVmID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyU2VhcmNoKAogICAgICAgICV7ICRGaWx0ZXJzeyAkU2VsZi0+e0ZpbHRlcn0gfS0+e1NlYXJjaH0gfSwKICAgICk7CgogICAgIyBkaXNwbGF5IGFsbCBuYXZiYXIgZmlsdGVycwogICAgbXkgJU5hdkJhckZpbHRlcjsKICAgIGZvciBteSAkRmlsdGVyICggc29ydCBrZXlzICVGaWx0ZXJzICkgewoKICAgICAgICAjIGNvdW50IHRoZSBudW1iZXIgb2Ygd29ya29yZGVycyBmb3IgZWFjaCBmaWx0ZXIKICAgICAgICBteSAkQ291bnQgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICBSZXN1bHQgPT4gJ0NPVU5UJywKICAgICAgICApOwoKICAgICAgICAjIGRpc3BsYXkgdGhlIG5hdmJhciBmaWx0ZXIKICAgICAgICAkTmF2QmFyRmlsdGVyeyAkRmlsdGVyc3skRmlsdGVyfS0+e1ByaW99IH0gPSB7CiAgICAgICAgICAgIENvdW50ICA9PiAkQ291bnQsCiAgICAgICAgICAgIEZpbHRlciA9PiAkRmlsdGVyLAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfSB9LAogICAgICAgIH07CiAgICB9CgogICAgIyBzaG93IGNoYW5nZXMKICAgIG15ICRMaW5rUGFnZSA9ICdGaWx0ZXI9JwogICAgICAgIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e0ZpbHRlcn0gKQogICAgICAgIC4gJztWaWV3PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57Vmlld30gKQogICAgICAgIC4gJztTb3J0Qnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApCiAgICAgICAgLiAnO09yZGVyQnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKQogICAgICAgIC4gJzsnOwogICAgbXkgJExpbmtTb3J0ID0gJ0ZpbHRlcj0nCiAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57RmlsdGVyfSApCiAgICAgICAgLiAnO1ZpZXc9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntWaWV3fSApCiAgICAgICAgLiAnOyc7CiAgICBteSAkTGlua0ZpbHRlciA9ICdTb3J0Qnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApCiAgICAgICAgLiAnO09yZGVyQnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKQogICAgICAgIC4gJztWaWV3PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57Vmlld30gKQogICAgICAgIC4gJzsnOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5JVFNNQ2hhbmdlTGlzdFNob3coCgogICAgICAgIFdvcmtPcmRlcklEcyA9PiAkV29ya09yZGVySURzUmVmLAogICAgICAgIFRvdGFsICAgICAgICA9PiBzY2FsYXIgQHskV29ya09yZGVySURzUmVmfSwKCiAgICAgICAgVmlldyA9PiAkU2VsZi0+e1ZpZXd9LAoKICAgICAgICBGaWx0ZXIgICAgID0+ICRTZWxmLT57RmlsdGVyfSwKICAgICAgICBGaWx0ZXJzICAgID0+IFwlTmF2QmFyRmlsdGVyLAogICAgICAgIEZpbHRlckxpbmsgPT4gJExpbmtGaWx0ZXIsCgogICAgICAgIFRpdGxlTmFtZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ092ZXJ2aWV3OiBNeSBXb3Jrb3JkZXJzJyksCgogICAgICAgIFRpdGxlVmFsdWUgPT4gJFNlbGYtPntGaWx0ZXJ9LAoKICAgICAgICBFbnYgICAgICA9PiAkU2VsZiwKICAgICAgICBMaW5rUGFnZSA9PiAkTGlua1BhZ2UsCiAgICAgICAgTGlua1NvcnQgPT4gJExpbmtTb3J0LAoKICAgICAgICBTaG93Q29sdW1ucyA9PiBcQFNob3dDb2x1bW5zLAogICAgICAgIFNvcnRCeSAgICAgID0+ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApLAogICAgICAgIE9yZGVyQnkgICAgID0+ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangePIR.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZVBJUjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGVycm9yIHNjcmVlbgogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyEnLCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSApLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBzdG9yZSBsYXN0IHNjcmVlbiwgdXNlZCBmb3IgYmFja2xpbmtzCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuV29ya09yZGVycycsCiAgICAgICAgVmFsdWUgICAgID0+ICRTZWxmLT57UmVxdWVzdGVkVVJMfSwKICAgICk7CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgc29ydGluZyBwYXJhbWV0ZXJzCiAgICBteSAkU29ydEJ5ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRCeScgKQogICAgICAgIHx8ICRTZWxmLT57Q29uZmlnfS0+eydTb3J0Qnk6OkRlZmF1bHQnfQogICAgICAgIHx8ICdQbGFubmVkU3RhcnRUaW1lJzsKCiAgICAjIGdldCBvcmRlcmluZyBwYXJhbWV0ZXJzCiAgICBteSAkT3JkZXJCeSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPcmRlckJ5JyApCiAgICAgICAgfHwgJFNlbGYtPntDb25maWd9LT57J09yZGVyOjpEZWZhdWx0J30KICAgICAgICB8fCAnVXAnOwoKICAgIG15IEBTb3J0QnlBcnJheSAgPSAoJFNvcnRCeSk7CiAgICBteSBAT3JkZXJCeUFycmF5ID0gKCRPcmRlckJ5KTsKCiAgICAjIHNvcnQgYnkgY2hhbmdlIG51bWJlciBmaXJzdCBpZiB1c2VyIHdhbnRzIHRvIHNvcnQgYnkgd29ya29yZGVyIG51bWJlcgogICAgaWYgKCAkU29ydEJ5IGVxICdXb3JrT3JkZXJOdW1iZXInICkgewogICAgICAgIEBTb3J0QnlBcnJheSAgPSAoICdDaGFuZ2VOdW1iZXInLCAnV29ya09yZGVyTnVtYmVyJyApOwogICAgICAgIEBPcmRlckJ5QXJyYXkgPSAoICRPcmRlckJ5LCAkT3JkZXJCeSApOwogICAgfQoKICAgICMgaW52ZXN0aWdhdGUgcmVmcmVzaAogICAgbXkgJFJlZnJlc2ggPSAkU2VsZi0+e1VzZXJSZWZyZXNoVGltZX0gPyA2MCAqICRTZWxmLT57VXNlclJlZnJlc2hUaW1lfSA6IHVuZGVmOwoKICAgICMgc3RhcnRpbmcgd2l0aCBwYWdlIC4uLgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlciggUmVmcmVzaCA9PiAkUmVmcmVzaCApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAkTGF5b3V0T2JqZWN0LT5QcmludCggT3V0cHV0ID0+IFwkT3V0cHV0ICk7CiAgICAkT3V0cHV0ID0gJyc7CgogICAgIyBmaW5kIG91dCB3aGljaCBjb2x1bW5zIHNob3VsZCBiZSBzaG93bgogICAgbXkgQFNob3dDb2x1bW5zOwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTaG93Q29sdW1uc30gKSB7CgogICAgICAgICMgZ2V0IGFsbCBwb3NzaWJsZSBjb2x1bW5zIGZyb20gY29uZmlnCiAgICAgICAgbXkgJVBvc3NpYmxlQ29sdW1uID0gJXsgJFNlbGYtPntDb25maWd9LT57U2hvd0NvbHVtbnN9IH07CgogICAgICAgICMgZ2V0IHRoZSBjb2x1bW4gbmFtZXMgdGhhdCBzaG91bGQgYmUgc2hvd24KICAgICAgICBDT0xVTU5OQU1FOgogICAgICAgIGZvciBteSAkTmFtZSAoIHNvcnQga2V5cyAlUG9zc2libGVDb2x1bW4gKSB7CiAgICAgICAgICAgIG5leHQgQ09MVU1OTkFNRSBpZiAhJFBvc3NpYmxlQ29sdW1ueyROYW1lfTsKICAgICAgICAgICAgcHVzaCBAU2hvd0NvbHVtbnMsICROYW1lOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCB3b3JrIG9yZGVyIG9iamVjdAogICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CgogICAgIyBmaW5kIG91dCB3aGljaCB3b3Jrb3JkZXIgdHlwZXMgc2hvdWxkIGJlIHVzZWQgdG8gc2hvdyBQSVIKICAgIG15IEBXb3JrT3JkZXJUeXBlczsKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57V29ya09yZGVyVHlwZXN9ICkgewogICAgICAgIFdPUktPUkRFUlRZUEU6CiAgICAgICAgZm9yIG15ICRXb3JrT3JkZXJUeXBlICggQHsgJFNlbGYtPntDb25maWd9LT57V29ya09yZGVyVHlwZXN9IH0gKSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHdvcmtvcmRlciB0eXBlIGlzIHZhbGlkIGJ5IGxvb2tpbmcgdXAgdGhlIHR5cGUgaWQKICAgICAgICAgICAgbXkgJFdvcmtPcmRlclR5cGVJRCA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclR5cGVMb29rdXAoCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUeXBlID0+ICRXb3JrT3JkZXJUeXBlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBkbyBub3QgdXNlIGludmFsaWQgd29ya29yZGVyIHR5cGVzCiAgICAgICAgICAgIG5leHQgV09SS09SREVSVFlQRSBpZiAhJFdvcmtPcmRlclR5cGVJRDsKCiAgICAgICAgICAgIHB1c2ggQFdvcmtPcmRlclR5cGVzLCAkV29ya09yZGVyVHlwZTsKICAgICAgICB9CiAgICB9CgogICAgIyB0byBzdG9yZSB0aGUgZmlsdGVycwogICAgbXkgJUZpbHRlcnM7CgogICAgIyBzZXQgb3RoZXIgZmlsdGVycyBiYXNlZCBvbiB3b3Jrb3JkZXIgc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57J0ZpbHRlcjo6V29ya09yZGVyU3RhdGVzJ30gKSB7CgogICAgICAgICMgZGVmaW5lIHBvc2l0aW9uIG9mIHRoZSBmaWx0ZXIgaW4gdGhlIGZyb250ZW5kCiAgICAgICAgbXkgJFByaW9Db3VudGVyID0gMTAwMDsKCiAgICAgICAgIyBnZXQgYWxsIHdvcmtvcmRlciBzdGF0ZXMgdGhhdCBzaG91bGQgYmUgdXNlZCBhcyBmaWx0ZXJzCiAgICAgICAgV09SS09SREVSU1RBVEU6CiAgICAgICAgZm9yIG15ICRXb3JrT3JkZXJTdGF0ZSAoIEB7ICRTZWxmLT57Q29uZmlnfS0+eydGaWx0ZXI6OldvcmtPcmRlclN0YXRlcyd9IH0gKSB7CgogICAgICAgICAgICAjIGRvIG5vdCB1c2UgZW1wdHkgd29ya29yZGVyIHN0YXRlcwogICAgICAgICAgICBuZXh0IFdPUktPUkRFUlNUQVRFIGlmICEkV29ya09yZGVyU3RhdGU7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHN0YXRlIGlzIHZhbGlkIGJ5IGxvb2tpbmcgdXAgdGhlIHN0YXRlIGlkCiAgICAgICAgICAgIG15ICRXb3JrT3JkZXJTdGF0ZUlEID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyU3RhdGVMb29rdXAoCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZSA9PiAkV29ya09yZGVyU3RhdGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGRvIG5vdCB1c2UgaW52YWxpZCB3b3Jrb3JkZXIgc3RhdGVzCiAgICAgICAgICAgIG5leHQgV09SS09SREVSU1RBVEUgaWYgISRXb3JrT3JkZXJTdGF0ZUlEOwoKICAgICAgICAgICAgIyBpbmNyZWFzZSB0aGUgUHJpb0NvdW50ZXIKICAgICAgICAgICAgJFByaW9Db3VudGVyKys7CgogICAgICAgICAgICAjIGFkZCBmaWx0ZXIgZm9yIHRoZSBjdXJyZW50IHdvcmtvcmRlciBzdGF0ZQogICAgICAgICAgICAkRmlsdGVyc3skV29ya09yZGVyU3RhdGV9ID0gewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICRXb3JrT3JkZXJTdGF0ZSwKICAgICAgICAgICAgICAgIFByaW8gICA9PiAkUHJpb0NvdW50ZXIsCiAgICAgICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlclR5cGVzICAgPT4gXEBXb3JrT3JkZXJUeXBlcywKICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZXMgID0+IFskV29ya09yZGVyU3RhdGVdLAogICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gXEBTb3J0QnlBcnJheSwKICAgICAgICAgICAgICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFxAT3JkZXJCeUFycmF5LAogICAgICAgICAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgPT4gMTAwMCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGZpbHRlciBhbmQgdmlldyBwYXJhbXMKICAgICRTZWxmLT57RmlsdGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdGaWx0ZXInICkgfHwgJ0FsbCc7CiAgICAkU2VsZi0+e1ZpZXd9ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVmlldycgKSAgIHx8ICcnOwoKICAgICMgaWYgb25seSBvbmUgZmlsdGVyIGV4aXN0cwogICAgaWYgKCBzY2FsYXIga2V5cyAlRmlsdGVycyA9PSAxICkgewoKICAgICAgICAjIGdldCB0aGUgbmFtZSBvZiB0aGUgb25seSBmaWx0ZXIKICAgICAgICBteSAoJEZpbHRlck5hbWUpID0gc29ydCBrZXlzICVGaWx0ZXJzOwoKICAgICAgICAjIGFjdGl2YXRlIHRoaXMgZmlsdGVyCiAgICAgICAgJFNlbGYtPntGaWx0ZXJ9ID0gJEZpbHRlck5hbWU7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAjIGxpbWl0IHRvIGNvbmZpZ3VyZWQgc3RhdGVzCiAgICAgICAgbXkgQFdvcmtPcmRlclN0YXRlcyA9IHNvcnQga2V5cyAlRmlsdGVyczsKCiAgICAgICAgIyBhZGQgZGVmYXVsdCBmaWx0ZXIKICAgICAgICAkRmlsdGVyc3tBbGx9ID0gewogICAgICAgICAgICBOYW1lICAgPT4gJ0FsbCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAwLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgV29ya09yZGVyU3RhdGVzICA9PiBcQFdvcmtPcmRlclN0YXRlcywKICAgICAgICAgICAgICAgIFdvcmtPcmRlclR5cGVzICAgPT4gXEBXb3JrT3JkZXJUeXBlcywKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gXEBTb3J0QnlBcnJheSwKICAgICAgICAgICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gXEBPcmRlckJ5QXJyYXksCiAgICAgICAgICAgICAgICBMaW1pdCAgICAgICAgICAgID0+IDEwMDAsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgfSwKICAgICAgICB9OwogICAgfQoKICAgICMgY2hlY2sgaWYgZmlsdGVyIGlzIHZhbGlkCiAgICBpZiAoICEkRmlsdGVyc3sgJFNlbGYtPntGaWx0ZXJ9IH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdJbnZhbGlkIEZpbHRlcjogJXMhJywgJFNlbGYtPntGaWx0ZXJ9ICksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNlYXJjaCB3b3Jrb3JkZXJzIHdoaWNoIG1hdGNoIHRoZSBzZWxlY3RlZCBmaWx0ZXIKICAgIG15ICRXb3JrT3JkZXJJRHNSZWYgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJTZWFyY2goCiAgICAgICAgJXsgJEZpbHRlcnN7ICRTZWxmLT57RmlsdGVyfSB9LT57U2VhcmNofSB9LAogICAgKTsKCiAgICAjIGRpc3BsYXkgYWxsIG5hdmJhciBmaWx0ZXJzCiAgICBteSAlTmF2QmFyRmlsdGVyOwogICAgZm9yIG15ICRGaWx0ZXIgKCBzb3J0IGtleXMgJUZpbHRlcnMgKSB7CgogICAgICAgICMgY291bnQgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzIGZvciBlYWNoIGZpbHRlcgogICAgICAgIG15ICRDb3VudCA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCA9PiAnQ09VTlQnLAogICAgICAgICk7CgogICAgICAgICMgZGlzcGxheSB0aGUgbmF2YmFyIGZpbHRlcgogICAgICAgICROYXZCYXJGaWx0ZXJ7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57UHJpb30gfSA9IHsKICAgICAgICAgICAgQ291bnQgID0+ICRDb3VudCwKICAgICAgICAgICAgRmlsdGVyID0+ICRGaWx0ZXIsCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9IH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIHNob3cgY2hhbmdlcwogICAgbXkgJExpbmtQYWdlID0gJ0ZpbHRlcj0nCiAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57RmlsdGVyfSApCiAgICAgICAgLiAnO1ZpZXc9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntWaWV3fSApCiAgICAgICAgLiAnO1NvcnRCeT0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU29ydEJ5ICkKICAgICAgICAuICc7T3JkZXJCeT0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkT3JkZXJCeSApCiAgICAgICAgLiAnOyc7CiAgICBteSAkTGlua1NvcnQgPSAnRmlsdGVyPScKICAgICAgICAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntGaWx0ZXJ9ICkKICAgICAgICAuICc7Vmlldz0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e1ZpZXd9ICkKICAgICAgICAuICc7JzsKICAgIG15ICRMaW5rRmlsdGVyID0gJ1NvcnRCeT0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU29ydEJ5ICkKICAgICAgICAuICc7T3JkZXJCeT0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkT3JkZXJCeSApCiAgICAgICAgLiAnO1ZpZXc9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntWaWV3fSApCiAgICAgICAgLiAnOyc7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPklUU01DaGFuZ2VMaXN0U2hvdygKCiAgICAgICAgV29ya09yZGVySURzID0+ICRXb3JrT3JkZXJJRHNSZWYsCiAgICAgICAgVG90YWwgICAgICAgID0+IHNjYWxhciBAeyRXb3JrT3JkZXJJRHNSZWZ9LAoKICAgICAgICBWaWV3ID0+ICRTZWxmLT57Vmlld30sCgogICAgICAgIEZpbHRlciAgICAgPT4gJFNlbGYtPntGaWx0ZXJ9LAogICAgICAgIEZpbHRlcnMgICAgPT4gXCVOYXZCYXJGaWx0ZXIsCiAgICAgICAgRmlsdGVyTGluayA9PiAkTGlua0ZpbHRlciwKCiAgICAgICAgVGl0bGVOYW1lID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnT3ZlcnZpZXc6IFBJUicpLAoKICAgICAgICBUaXRsZVZhbHVlID0+ICRTZWxmLT57RmlsdGVyfSwKCiAgICAgICAgRW52ICAgICAgPT4gJFNlbGYsCiAgICAgICAgTGlua1BhZ2UgPT4gJExpbmtQYWdlLAogICAgICAgIExpbmtTb3J0ID0+ICRMaW5rU29ydCwKCiAgICAgICAgU2hvd0NvbHVtbnMgPT4gXEBTaG93Q29sdW1ucywKICAgICAgICBTb3J0QnkgICAgICA9PiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTb3J0QnkgKSwKICAgICAgICBPcmRlckJ5ICAgICA9PiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRPcmRlckJ5ICksCiAgICApOwoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangePrint.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZVByaW50OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIExpc3Q6OlV0aWwgICAgICAgICAgICAgICAgICAgIHF3KG1heCk7CnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgRmluZCBvdXQgd2hldGhlciBhIGNoYW5nZSBvciBhIHdvcmtvcmRlciBzaG91bGQgYmUgcHJpbnRlZC4KICAgICMgQSB3b3Jrb3JkZXIgaXMgdG8gYmUgcHJpbnRlZCB3aGVuIHRoZSBXb3JrT3JkZXJJRCBpcyBwYXNzZWQuCiAgICAjIE90aGVyd2lzZSBhIGNoYW5nZSBzaG91bGQgYmUgcHJpbnRlZC4KICAgIG15ICRXb3JrT3JkZXJJRCAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdXb3JrT3JkZXJJRCcgKTsKICAgIG15ICRQcmludFdvcmtPcmRlciA9ICRXb3JrT3JkZXJJRCA/IDEgOiAwOwogICAgbXkgJFByaW50Q2hhbmdlICAgID0gISRXb3JrT3JkZXJJRDsKICAgIG15ICRXb3JrT3JkZXIgICAgICA9IHt9OwogICAgbXkgJENoYW5nZUlEOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkQ2hhbmdlT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKICAgIG15ICRXb3JrT3JkZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpOwogICAgbXkgJENvbmZpZ09iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRDb25maWdPYmplY3QtPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgIGlmICgkUHJpbnRXb3JrT3JkZXIpIHsKCiAgICAgICAgIyBjaGVjayBwZXJtaXNzaW9uIG9uIHRoZSB3b3Jrb3JkZXIKICAgICAgICBteSAkQWNjZXNzID0gJFdvcmtPcmRlck9iamVjdC0+UGVybWlzc2lvbigKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgICAgIEFjdGlvbiAgICAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBlcnJvciBzY3JlZW4KICAgICAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9CiAgICAgICAgICAgICAgICAgICAgLT5UcmFuc2xhdGUoICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyEnLCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSApLAogICAgICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHdvcmtvcmRlciBpbmZvcm1hdGlvbgogICAgICAgICRXb3JrT3JkZXIgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICBpZiAoICEkV29ya09yZGVyICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlIScsICRXb3JrT3JkZXJJRCApLAogICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBpbmZlciB0aGUgY2hhbmdlIGlkIGZyb20gdGhlIHdvcmtvcmRlcgogICAgICAgICRDaGFuZ2VJRCA9ICRXb3JrT3JkZXItPntDaGFuZ2VJRH07CgogICAgICAgIGlmICggISRDaGFuZ2VJRCApIHsKCiAgICAgICAgICAgICMgZXJyb3IgcGFnZQogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IGNyZWF0ZSBvdXRwdXQsIGFzIHRoZSB3b3Jrb3JkZXIgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2hhbmdlIScpLAogICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIHRoZSBjaGFuZ2UgaWQgaXMgcmVxdWlyZWQsIGFzIHdlIGhhdmUgbm8gd29ya29yZGVyIGlkCiAgICAgICAgJENoYW5nZUlEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NoYW5nZUlEJyApOwoKICAgICAgICBpZiAoICEkQ2hhbmdlSUQgKSB7CgogICAgICAgICAgICAjIGVycm9yIHBhZ2UKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0NhblwndCBjcmVhdGUgb3V0cHV0LCBhcyBubyBDaGFuZ2VJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgcGVybWlzc2lvbiBvbiB0aGUgY2hhbmdlCiAgICAgICAgbXkgJEFjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPlBlcm1pc3Npb24oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgZXJyb3Igc2NyZWVuCiAgICAgICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fQogICAgICAgICAgICAgICAgICAgIC0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBpbmZvcm1hdGlvbgogICAgbXkgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGVycm9yCiAgICBpZiAoICEkQ2hhbmdlICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywgJENoYW5nZUlEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgc29tZSBpbml0IGZvciBQREYtT3V0cHV0CiAgICAjIHBhZ2UgY29udHJvbHMgdGhlIFBERi1nZW5lcmF0aW9uCiAgICAkU2VsZi0+e1BhZ2V9ID0ge307CiAgICBteSAkUGFnZSA9ICRTZWxmLT57UGFnZX07CgogICAgIyBnZXQgbWF4aW11bSBudW1iZXIgb2YgcGFnZXMKICAgICRQYWdlLT57TWF4UGFnZXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdQREY6Ok1heFBhZ2VzJyk7CiAgICBpZiAoICEkUGFnZS0+e01heFBhZ2VzfSB8fCAkUGFnZS0+e01heFBhZ2VzfSA8IDEgfHwgJFBhZ2UtPntNYXhQYWdlc30gPiAxMDAwICkgewogICAgICAgICRQYWdlLT57TWF4UGFnZXN9ID0gMTAwOwogICAgfQoKICAgICMgcGFnZSBsYXlvdXQgc2V0dGluZ3MKICAgICRQYWdlLT57TWFyZ2luVG9wfSAgICA9IDMwOwogICAgJFBhZ2UtPntNYXJnaW5SaWdodH0gID0gNDA7CiAgICAkUGFnZS0+e01hcmdpbkJvdHRvbX0gPSA0MDsKICAgICRQYWdlLT57TWFyZ2luTGVmdH0gICA9IDQwOwoKICAgICMgdGhlIHNlY29uZCBpdGVtIGluIHRoZSBwYWdlIHRpdGxlIGlzIHRoZSBhcmVhIGluIHRoZSBwcm9kdWN0ICdJVFNNIENoYW5nZSBNYW5hZ2VtZW50JwogICAgbXkgJEhlYWRlckFyZWEgPSAkUHJpbnRDaGFuZ2UgPyAnSVRTTSBDaGFuZ2UnIDogJ0lUU00gV29ya29yZGVyJzsKICAgICRIZWFkZXJBcmVhID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRIZWFkZXJBcmVhKTsKCiAgICAjIHRoZSBsYXN0IGl0ZW0gaW4gdGhlIHBhZ2UgdGl0bGUgaXMgZWl0aGVyIHRoZSBjaGFuZ2UgbnVtYmVyIG9mIHRoZSBmdWxsIHdvcmtvcmRlciBudW1iZXIKICAgIG15ICRIZWFkZXJWYWx1ZSA9ICRQcmludENoYW5nZQogICAgICAgID8KICAgICAgICAkQ2hhbmdlLT57Q2hhbmdlTnVtYmVyfQogICAgICAgIDoKICAgICAgICBqb2luKCAnLScsICRDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9LCAkV29ya09yZGVyLT57V29ya09yZGVyTnVtYmVyfSApOwoKICAgICMgc3RhcnQgdGhlIGRvY3VtZW50CiAgICBteSAkT3V0cHV0ID0gJFNlbGYtPl9TdGFydERvY3VtZW50KAogICAgICAgIEhlYWRlckFyZWEgID0+ICRIZWFkZXJBcmVhLAogICAgICAgIEhlYWRlclZhbHVlID0+ICRIZWFkZXJWYWx1ZSwKICAgICk7CgogICAgIyBnZXQgbGluayBvYmplY3QKICAgIG15ICRMaW5rT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnKTsKCiAgICAjIHRoZSBsaW5rIHR5cGVzIGFyZSBuZWVkZWQgZm9yIHNob3dpbmcgdGhlIGxpbmtlZCBvYmplY3RzCiAgICBteSAlTGlua1R5cGVMaXN0ID0gJExpbmtPYmplY3QtPlR5cGVMaXN0KAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgcHJpbnQgdGhlIGNoYW5nZSBzcGVjaWZpYyBzdHVmZgogICAgaWYgKCRQcmludENoYW5nZSkgewoKICAgICAgICAjIHN0YXJ0IHRoZSBmaXJzdCBwYWdlCiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+X091dHB1dEhlYWRsaW5lKAogICAgICAgICAgICBIZWFkZXJBcmVhICAgICA9PiAkSGVhZGVyQXJlYSwKICAgICAgICAgICAgSGVhZGVyVmFsdWUgICAgPT4gJEhlYWRlclZhbHVlLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkQ2hhbmdlLT57Q2hhbmdlVGl0bGV9IHx8IFRyYW5zbGF0YWJsZSgndW5rbm93biBjaGFuZ2UgdGl0bGUnKSwKICAgICAgICAgICAgVGVtcGxhdGVQcmVmaXggPT4gJ0NoYW5nZScsCiAgICAgICAgKTsKCiAgICAgICAgIyBvdXRwdXQgY2hhbmdlIGluZm8KICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT5fT3V0cHV0Q2hhbmdlSW5mbygKICAgICAgICAgICAgQ2hhbmdlICAgICAgICAgPT4gJENoYW5nZSwKICAgICAgICAgICAgUHJpbnRXb3JrT3JkZXIgPT4gJFByaW50V29ya09yZGVyLAogICAgICAgICk7CgogICAgICAgICMgb3V0cHV0IGNoYW5nZSBkZXNjcmlwdGlvbiBhbmQganVzdGlmaWNhdGlvbgogICAgICAgICMgdGhlIHBsYWluIGNvbnRlbnQgd2lsbCBiZSBkaXNwbGF5ZWQKICAgICAgICBmb3IgbXkgJEF0dHJpYnV0ZSAocXcoRGVzY3JpcHRpb24gSnVzdGlmaWNhdGlvbikpIHsKICAgICAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+X091dHB1dExvbmdUZXh0KAogICAgICAgICAgICAgICAgUHJpbnRDaGFuZ2UgICAgPT4gJFByaW50Q2hhbmdlLAogICAgICAgICAgICAgICAgUHJpbnRXb3JrT3JkZXIgPT4gJFByaW50V29ya09yZGVyLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4KICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEF0dHJpYnV0ZSksCiAgICAgICAgICAgICAgICBMb25nVGV4dCA9PiAkQ2hhbmdlLT57ICRBdHRyaWJ1dGUgLiAnUGxhaW4nIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBsaW5rZWQgb2JqZWN0cyB3aGljaCBhcmUgZGlyZWN0bHkgbGlua2VkIHdpdGggdGhpcyBjaGFuZ2Ugb2JqZWN0CiAgICAgICAgbXkgJExpbmtMaXN0V2l0aERhdGEgPSAkTGlua09iamVjdC0+TGlua0xpc3RXaXRoRGF0YSgKICAgICAgICAgICAgT2JqZWN0ID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICAgICAgS2V5ICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgU3RhdGUgID0+ICdWYWxpZCcsCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGhlIGNvbWJpbmVkIGxpbmtlZCBvYmplY3RzIGZyb20gYWxsIHdvcmtvcmRlcnMgb2YgdGhpcyBjaGFuZ2UKICAgICAgICBteSAkTGlua0xpc3RXaXRoRGF0YUNvbWJpbmVkV29ya09yZGVycyA9IHt9OwogICAgICAgIGZvciBteSAkV29ya09yZGVySUQgKCBAeyAkQ2hhbmdlLT57V29ya09yZGVySURzfSB9ICkgewoKICAgICAgICAgICAgIyBnZXQgbGlua2VkIG9iamVjdHMgb2YgdGhpcyB3b3Jrb3JkZXIKICAgICAgICAgICAgbXkgJExpbmtMaXN0V2l0aERhdGFXb3JrT3JkZXIgPSAkTGlua09iamVjdC0+TGlua0xpc3RXaXRoRGF0YSgKICAgICAgICAgICAgICAgIE9iamVjdCA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgICAgICAgICBLZXkgICAgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgU3RhdGUgID0+ICdWYWxpZCcsCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgT0JKRUNUOgogICAgICAgICAgICBmb3IgbXkgJE9iamVjdCAoIHNvcnQga2V5cyAleyRMaW5rTGlzdFdpdGhEYXRhV29ya09yZGVyfSApIHsKCiAgICAgICAgICAgICAgICAjIG9ubHkgc2hvdyBsaW5rZWQgc2VydmljZXMgYW5kIGNvbmZpZyBpdGVtcyBvZiB3b3Jrb3JkZXIKICAgICAgICAgICAgICAgIGlmICggJE9iamVjdCBuZSAnU2VydmljZScgJiYgJE9iamVjdCBuZSAnSVRTTUNvbmZpZ0l0ZW0nICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgT0JKRUNUOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExJTktUWVBFOgogICAgICAgICAgICAgICAgZm9yIG15ICRMaW5rVHlwZSAoIHNvcnQga2V5cyAleyAkTGlua0xpc3RXaXRoRGF0YVdvcmtPcmRlci0+eyRPYmplY3R9IH0gKSB7CgogICAgICAgICAgICAgICAgICAgIERJUkVDVElPTjoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJERpcmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQga2V5cyAleyAkTGlua0xpc3RXaXRoRGF0YVdvcmtPcmRlci0+eyRPYmplY3R9LT57JExpbmtUeXBlfSB9CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJElEICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQga2V5cyAlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRMaW5rTGlzdFdpdGhEYXRhV29ya09yZGVyLT57JE9iamVjdH0tPnskTGlua1R5cGV9LT57JERpcmVjdGlvbn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgY29tYmluZSB0aGUgbGlua2VkIG9iamVjdCBkYXRhIGZyb20gYWxsIHdvcmtvcmRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRMaW5rTGlzdFdpdGhEYXRhQ29tYmluZWRXb3JrT3JkZXJzLT57JE9iamVjdH0tPnskTGlua1R5cGV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT57JERpcmVjdGlvbn0tPnskSUR9ID0gJExpbmtMaXN0V2l0aERhdGFXb3JrT3JkZXItPnskT2JqZWN0fS0+eyRMaW5rVHlwZX0tPnskRGlyZWN0aW9ufQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+eyRJRH07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgYWRkIGNvbWJpbmVkIGxpbmtlZCBvYmplY3RzIGZyb20gd29ya29yZGVyIHRvIGxpbmtlZCBvYmplY3RzIGZyb20gY2hhbmdlIG9iamVjdAogICAgICAgICRMaW5rTGlzdFdpdGhEYXRhID0gewogICAgICAgICAgICAleyRMaW5rTGlzdFdpdGhEYXRhfSwKICAgICAgICAgICAgJXskTGlua0xpc3RXaXRoRGF0YUNvbWJpbmVkV29ya09yZGVyc30sCiAgICAgICAgfTsKCiAgICAgICAgIyBnZXQgdGhlIGxpbmsgZGF0YQogICAgICAgIGlmICggJExpbmtMaXN0V2l0aERhdGEgJiYgcmVmICRMaW5rTGlzdFdpdGhEYXRhIGVxICdIQVNIJyAmJiAleyRMaW5rTGlzdFdpdGhEYXRhfSApIHsKICAgICAgICAgICAgbXkgJUxpbmtEYXRhID0gJExheW91dE9iamVjdC0+TGlua09iamVjdFRhYmxlQ3JlYXRlKAogICAgICAgICAgICAgICAgTGlua0xpc3RXaXRoRGF0YSA9PiAkTGlua0xpc3RXaXRoRGF0YSwKICAgICAgICAgICAgICAgIFZpZXdNb2RlICAgICAgICAgPT4gJ1NpbXBsZVJhdycsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT5fT3V0cHV0TGlua2VkT2JqZWN0cygKICAgICAgICAgICAgICAgIFByaW50Q2hhbmdlICAgID0+ICRQcmludENoYW5nZSwKICAgICAgICAgICAgICAgIFByaW50V29ya09yZGVyID0+ICRQcmludFdvcmtPcmRlciwKICAgICAgICAgICAgICAgIExpbmtEYXRhICAgICAgID0+IFwlTGlua0RhdGEsCiAgICAgICAgICAgICAgICBMaW5rVHlwZUxpc3QgICA9PiBcJUxpbmtUeXBlTGlzdCwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgb3V0cHV0IGFuIG92ZXJ2aWV3IG92ZXIgd29ya29yZGVycwogICAgICAgIG15IEBXb3JrT3JkZXJPdmVydmlldzsKICAgICAgICBmb3IgbXkgJFdvcmtPcmRlcklEICggQHsgJENoYW5nZS0+e1dvcmtPcmRlcklEc30gfSApIHsKCiAgICAgICAgICAgICMgZ2V0IHdvcmtvcmRlciBpbmZvCiAgICAgICAgICAgIG15ICRXb3JrT3JkZXIgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgICAgIGlmICggISRXb3JrT3JkZXIgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9CiAgICAgICAgICAgICAgICAgICAgICAgIC0+VHJhbnNsYXRlKCAnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlIScsICRXb3JrT3JkZXJJRCApLAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHB1c2ggQFdvcmtPcmRlck92ZXJ2aWV3LCBbCiAgICAgICAgICAgICAgICAkV29ya09yZGVyLT57V29ya09yZGVyTnVtYmVyfSwKICAgICAgICAgICAgICAgICRXb3JrT3JkZXItPntXb3JrT3JkZXJUaXRsZX0sCiAgICAgICAgICAgICAgICAkV29ya09yZGVyLT57V29ya09yZGVyU3RhdGV9LAogICAgICAgICAgICAgICAgJFdvcmtPcmRlci0+e1BsYW5uZWRTdGFydFRpbWV9LAogICAgICAgICAgICAgICAgJFdvcmtPcmRlci0+e1BsYW5uZWRFbmRUaW1lfSwKICAgICAgICAgICAgICAgICRXb3JrT3JkZXItPntBY3R1YWxTdGFydFRpbWV9LAogICAgICAgICAgICAgICAgJFdvcmtPcmRlci0+e0FjdHVhbEVuZFRpbWV9LAogICAgICAgICAgICBdOwogICAgICAgIH0KCiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+X091dHB1dFdvcmtPcmRlck92ZXJ2aWV3KAogICAgICAgICAgICBXb3JrT3JkZXJPdmVydmlldyA9PiBcQFdvcmtPcmRlck92ZXJ2aWV3LAogICAgICAgICk7CiAgICB9CgogICAgIyBvdXRwdXQgZWl0aGVyIGEgc2luZ2xlIHdvcmtvcmRlciBvciBhbGwgd29ya29yZGVycyBvZiBhIGNoYW5nZQogICAgbXkgQFdvcmtPcmRlcklEcyA9ICRQcmludENoYW5nZSA/IEB7ICRDaGFuZ2UtPntXb3JrT3JkZXJJRHN9IHx8IFtdIH0gOiAoJFdvcmtPcmRlcklEKTsKCiAgICBmb3IgbXkgJFdvcmtPcmRlcklEIChAV29ya09yZGVySURzKSB7CgogICAgICAgICMgZ2V0IHdvcmtvcmRlciBpbmZvCiAgICAgICAgbXkgJFdvcmtPcmRlciA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckdldCgKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgIGlmICggISRXb3JrT3JkZXIgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICdXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywKICAgICAgICAgICAgICAgICAgICAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzdGFydCBhIG5ldyBwYWdlIGZvciBldmVyeSB3b3Jrb3JkZXIKICAgICAgICBteSAkSGVhZGVyQXJlYSAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0lUU00gV29ya29yZGVyJyk7CiAgICAgICAgbXkgJEhlYWRlclZhbHVlID0gam9pbiAnLScsICRDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9LCAkV29ya09yZGVyLT57IFRyYW5zbGF0YWJsZSgnV29ya09yZGVyTnVtYmVyJykgfTsKCiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+X091dHB1dEhlYWRsaW5lKAogICAgICAgICAgICBIZWFkZXJBcmVhICAgICA9PiAkSGVhZGVyQXJlYSwKICAgICAgICAgICAgSGVhZGVyVmFsdWUgICAgPT4gJEhlYWRlclZhbHVlLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkV29ya09yZGVyLT57IFRyYW5zbGF0YWJsZSgnV29ya09yZGVyVGl0bGUnKSB9IHx8IFRyYW5zbGF0YWJsZSgndW5rbm93biB3b3Jrb3JkZXIgdGl0bGUnKSwKICAgICAgICAgICAgVGVtcGxhdGVQcmVmaXggPT4gJ1dvcmtPcmRlcicsCiAgICAgICAgKTsKCiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+X091dHB1dFdvcmtPcmRlckluZm8oCiAgICAgICAgICAgIENoYW5nZSAgICA9PiAkQ2hhbmdlLAogICAgICAgICAgICBXb3JrT3JkZXIgPT4gJFdvcmtPcmRlciwKICAgICAgICApOwoKICAgICAgICAjIG91dHB1dCB3b3Jrb3JkZXIgaW5zdHJ1Y3Rpb24gYW5kIHJlcG9ydAogICAgICAgICMgVGhlIHBsYWluIGNvbnRlbnQgd2lsbCBiZSBkaXNwbGF5ZWQKICAgICAgICBmb3IgbXkgJEF0dHJpYnV0ZSAocXcoSW5zdHJ1Y3Rpb24gUmVwb3J0KSkgewogICAgICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT5fT3V0cHV0TG9uZ1RleHQoCiAgICAgICAgICAgICAgICBQcmludENoYW5nZSAgICA9PiAwLAogICAgICAgICAgICAgICAgUHJpbnRXb3JrT3JkZXIgPT4gMSwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRBdHRyaWJ1dGUpLAogICAgICAgICAgICAgICAgTG9uZ1RleHQgPT4gJFdvcmtPcmRlci0+eyAkQXR0cmlidXRlIC4gJ1BsYWluJyB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgbGlua2VkIG9iamVjdHMKICAgICAgICBteSAkTGlua0xpc3RXaXRoRGF0YSA9ICRMaW5rT2JqZWN0LT5MaW5rTGlzdFdpdGhEYXRhKAogICAgICAgICAgICBPYmplY3QgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICBLZXkgICAgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBTdGF0ZSAgPT4gJ1ZhbGlkJywKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aGUgbGluayBkYXRhCiAgICAgICAgaWYgKCAkTGlua0xpc3RXaXRoRGF0YSAmJiByZWYgJExpbmtMaXN0V2l0aERhdGEgZXEgJ0hBU0gnICYmICV7JExpbmtMaXN0V2l0aERhdGF9ICkgewogICAgICAgICAgICBteSAlTGlua0RhdGEgPSAkTGF5b3V0T2JqZWN0LT5MaW5rT2JqZWN0VGFibGVDcmVhdGUoCiAgICAgICAgICAgICAgICBMaW5rTGlzdFdpdGhEYXRhID0+ICRMaW5rTGlzdFdpdGhEYXRhLAogICAgICAgICAgICAgICAgVmlld01vZGUgICAgICAgICA9PiAnU2ltcGxlUmF3JywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPl9PdXRwdXRMaW5rZWRPYmplY3RzKAogICAgICAgICAgICAgICAgUHJpbnRDaGFuZ2UgICAgPT4gMCwKICAgICAgICAgICAgICAgIFByaW50V29ya09yZGVyID0+IDEsCiAgICAgICAgICAgICAgICBMaW5rRGF0YSAgICAgICA9PiBcJUxpbmtEYXRhLAogICAgICAgICAgICAgICAgTGlua1R5cGVMaXN0ICAgPT4gXCVMaW5rVHlwZUxpc3QsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZ2VuZXJhdGUgUERGIG91dHB1dAogICAgIyBnZXQgdGltZSBvYmplY3QKCiAgICAjIGdlbmVyYXRlIGEgZmlsZW5hbWUKICAgIG15ICRDdXJTeXNEVE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgbXkgQEZpbGVuYW1lOwoKICAgIGlmICgkUHJpbnRDaGFuZ2UpIHsKICAgICAgICBwdXNoIEBGaWxlbmFtZSwgJ2NoYW5nZScsICRDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgcHVzaCBARmlsZW5hbWUsICd3b3Jrb3JkZXInLCAkQ2hhbmdlLT57Q2hhbmdlTnVtYmVyfSAuICctJyAuICRXb3JrT3JkZXItPntXb3JrT3JkZXJOdW1iZXJ9OwogICAgfQoKICAgIHB1c2ggQEZpbGVuYW1lLCAkQ3VyU3lzRFRPYmplY3QtPkZvcm1hdCgKICAgICAgICBGb3JtYXQgPT4gJyVGXyVILSVNJywKICAgICk7CgogICAgIyByZXR1cm4gdGhlIFBERiBkb2N1bWVudAogICAgbXkgJFBERlN0cmluZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQREYnKS0+RG9jdW1lbnRPdXRwdXQoKTsKCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICBGaWxlbmFtZSAgICA9PiBqb2luKCAnXycsIEBGaWxlbmFtZSApIC4gJy5wZGYnLAogICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9wZGYnLAogICAgICAgIENvbnRlbnQgICAgID0+ICRQREZTdHJpbmcsCiAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICApOwp9CgojIHN0YXJ0IHRoZSBkb2N1bWVudApzdWIgX1N0YXJ0RG9jdW1lbnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KEhlYWRlckFyZWEgSGVhZGVyVmFsdWUpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCggJFBhcmFteyROZWVkZWR9ICkgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgdGl0bGUgb2YgdGhlIFBERi1Eb2N1bWVudAogICAgbXkgJFByb2R1Y3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1Byb2R1Y3QnKTsKICAgIG15ICRUaXRsZSAgID0gc3ByaW50ZiAnJXM6ICVzIyVzJywgJFByb2R1Y3QsICRQYXJhbXtIZWFkZXJBcmVhfSwgJFBhcmFte0hlYWRlclZhbHVlfTsKCiAgICAjIGNyZWF0ZSBuZXcgUERGIGRvY3VtZW50CiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UERGJyktPkRvY3VtZW50TmV3KAogICAgICAgIFRpdGxlICA9PiAkVGl0bGUsCiAgICAgICAgRW5jb2RlID0+ICRMYXlvdXRPYmplY3QtPntVc2VyQ2hhcnNldH0sCiAgICApOwoKICAgIHJldHVybiAnJzsKCn0KCiMgb3V0cHV0IHRoZSBoZWFkbGluZSwgY3JlYXRlIGEgbmV3IHBhZ2UKc3ViIF9PdXRwdXRIZWFkbGluZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoSGVhZGVyQXJlYSBIZWFkZXJWYWx1ZSBUaXRsZSBUZW1wbGF0ZVByZWZpeCkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkKCAkUGFyYW17JE5lZWRlZH0gKSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJFByaW50ZWRCeSAgICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgncHJpbnRlZCBieScpOwogICAgbXkgJFRpbWUgICAgICAgICA9ICRMYXlvdXRPYmplY3QtPntUaW1lfTsKICAgIG15ICRVc2VyRnVsbE5hbWUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTmFtZSgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIHBhZ2UgY29udHJvbHMgdGhlIFBERi1nZW5lcmF0aW9uCiAgICAjIHBhZ2UgaGVhZGVycyBhbmQgZm9vdGVyCiAgICBteSAkUGFnZSA9ICRTZWxmLT57UGFnZX07CiAgICAkUGFnZS0+e0hlYWRlclJpZ2h0fSA9IHNwcmludGYgJyVzIyVzJywgJFBhcmFte0hlYWRlckFyZWF9LCAkUGFyYW17SGVhZGVyVmFsdWV9OwogICAgJFBhZ2UtPntQYWdlVGV4dH0gICAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1BhZ2UnKTsKICAgICRQYWdlLT57UGFnZUNvdW50fSAgID0gJFNlbGYtPntQYWdlfS0+e1BhZ2VDb3VudH0gLy8gMTsKCiAgICAjIGNyZWF0ZSBuZXcgUERGIHBhZ2UKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQREYnKS0+UGFnZU5ldygKICAgICAgICAleyRQYWdlfSwKICAgICAgICBGb290ZXJSaWdodCA9PiAkUGFnZS0+e1BhZ2VUZXh0fSAuICcgJyAuICRQYWdlLT57UGFnZUNvdW50fSwKICAgICk7CgogICAgJFNlbGYtPntQYWdlfS0+e1BhZ2VDb3VudH0rKzsKCiAgICAjIGdldCBQREYgb2JqZWN0CiAgICBteSAkUERGT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlBERicpOwoKICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgIFkgICAgPT4gLTYsCiAgICApOwoKICAgICMgb3V0cHV0IHRpdGxlCiAgICAkUERGT2JqZWN0LT5UZXh0KAogICAgICAgIFRleHQgICAgID0+ICRQYXJhbXtUaXRsZX0sCiAgICAgICAgRm9udFNpemUgPT4gMTMsCiAgICApOwoKICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgIFkgICAgPT4gLTYsCiAgICApOwoKICAgICMgb3V0cHV0ICJwcmludGVkIGJ5IgogICAgJFBERk9iamVjdC0+VGV4dCgKICAgICAgICBUZXh0ID0+ICRQcmludGVkQnkgLiAnICcKICAgICAgICAgICAgLiAkVXNlckZ1bGxOYW1lIC4gJyAnCiAgICAgICAgICAgIC4gJFRpbWUsCiAgICAgICAgRm9udFNpemUgPT4gOSwKICAgICk7CgogICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgWSAgICA9PiAtMTQsCiAgICApOwoKICAgIHJldHVybiAnJzsKfQoKIyBhIGhlbHBlciBmb3IgcHJlcGFyaW5nIGEgdGFibGUgcm93IGZvciBQREYgZ2VuZXJhdGlvbgpzdWIgX1ByZXBhcmVBbmRBZGRJbmZvUm93IHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoUm93U3BlYyBEYXRhKSkgewogICAgICAgIGlmICggIWRlZmluZWQoICRQYXJhbXskTmVlZGVkfSApICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgKCAkUm93U3BlYywgJERhdGEgKSA9IEBQYXJhbXtxdyhSb3dTcGVjIERhdGEpfTsKCiAgICAjIHNob3J0IG5hbWUsIGp1c3QgZm9yIGNvbnZlbmllbmNlCiAgICBteSAkQXR0cmlidXRlID0gJFJvd1NwZWMtPntBdHRyaWJ1dGV9OwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgc2tpcCBpZiByb3cgaXMgc3dpdGNoZWQgb2ZmIGluIFN5c0NvbmZpZwogICAgcmV0dXJuIGlmICRSb3dTcGVjLT57SXNPcHRpb25hbH0gJiYgISRTZWxmLT57Q29uZmlnfS0+eyRBdHRyaWJ1dGV9OwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBrZXlzIGFyZSBhbHdheXMgdHJhbnNsYXRhYmxlCiAgICBteSAkS2V5ID0gJFJvd1NwZWMtPntLZXl9IHx8ICRBdHRyaWJ1dGU7CiAgICAkS2V5ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRLZXkpOwoKICAgICMgZGV0ZXJtaW5lIHRoZSB2YWx1ZQogICAgbXkgJFZhbHVlOwogICAgaWYgKCAkUm93U3BlYy0+e1ZhbHVlSXNUaW1lfSApIHsKCiAgICAgICAgIyBmb3JtYXQgdGhlIHRpbWUgdmFsdWUKICAgICAgICAkVmFsdWUgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlID0+ICdbJSBEYXRhLicgLiAkQXR0cmlidXRlIC4gJyB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdJywKICAgICAgICAgICAgRGF0YSAgICAgPT4gJERhdGEsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggJFJvd1NwZWMtPntWYWx1ZUlzVXNlcn0gKSB7CgogICAgICAgICMgZm9ybWF0IHRoZSB1c2VyIGlkCiAgICAgICAgaWYgKCAkRGF0YS0+eyAkQXR0cmlidXRlIC4gJ0lEJyB9ICkgewoKICAgICAgICAgICAgbXkgJFVzZXJGdWxsTmFtZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJOYW1lKAogICAgICAgICAgICAgICAgVXNlcklEID0+ICREYXRhLT57ICRBdHRyaWJ1dGUgLiAnSUQnIH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJFVzZXJGdWxsTmFtZSkgewogICAgICAgICAgICAgICAgJFZhbHVlID0gJFVzZXJGdWxsTmFtZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRWYWx1ZSA9ICdJRD0nIC4gJERhdGEtPnskQXR0cmlidXRlfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGVsc2lmICggJFJvd1NwZWMtPntWYWx1ZUlzRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICAkVmFsdWUgPSAkUm93U3BlYy0+e1ZhbHVlfTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIHRha2UgdmFsdWUgZnJvbSB0aGUgcGFzc2VkIGluIGRhdGEKICAgICAgICAkVmFsdWUgPSAkRGF0YS0+eyRBdHRyaWJ1dGV9OwogICAgfQoKICAgICMgdHJhbnNsYXRlIHRoZSB2YWx1ZQogICAgaWYgKCAkVmFsdWUgJiYgJFJvd1NwZWMtPntWYWx1ZUlzVHJhbnNsYXRhYmxlfSApIHsKICAgICAgICAkVmFsdWUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJFZhbHVlKTsKICAgIH0KCiAgICAjIGFkZCBzZXBhcmF0b3IgYmV0d2VlbiBrZXkgYW5kIHZhbHVlCiAgICAkS2V5IC49ICc6JzsKCiAgICAjIHNob3cgcm93CiAgICBwdXNoIEB7ICRSb3dTcGVjLT57VGFibGV9IH0sCiAgICAgICAgewogICAgICAgIEtleSAgID0+ICRLZXksCiAgICAgICAgVmFsdWUgPT4gJFZhbHVlLAogICAgICAgIH07CgogICAgcmV0dXJuOwp9CgojIGVtaXQgaW5mb3JtYXRpb24gYWJvdXQgYSBjaGFuZ2UKc3ViIF9PdXRwdXRDaGFuZ2VJbmZvIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhDaGFuZ2UgUHJpbnRXb3JrT3JkZXIpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCggJFBhcmFteyROZWVkZWR9ICkgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGp1c3QgZm9yIGhhdmluZyBzaG9ydGVyIG5hbWVzCiAgICBteSAkQ2hhbmdlID0gJFBhcmFte0NoYW5nZX07CgogICAgIyBmaWxsIHRoZSB0d28gdGFibGVzIG9uIHRvcCwKICAgICMgYm90aCB0YWJsZXMgaGF2ZSB0d28gY29sdW1zOiBLZXkgYW5kIFZhbHVlCiAgICBteSAoIEBUYWJsZUxlZnQsIEBUYWJsZVJpZ2h0ICk7CgogICAgIyBkZXRlcm1pbmUgdmFsdWVzIHRoYXQgY2FuJ3QgZWFzaWx5IGJlIGRldGVybWluZWQgaW4gX1ByZXBhcmVBbmRBZGRJbmZvUm93KCkKICAgIG15ICVDb21wbGljYXRlZFZhbHVlOwoKICAgICMgVmFsdWVzIGZvciBDQUIKICAgIGZvciBteSAkQXR0cmlidXRlIChxdyhDQUJBZ2VudHMgQ0FCQ3VzdG9tZXJzKSkgewogICAgICAgIG15IEBMb25nTmFtZXM7CiAgICAgICAgaWYgKCAkQXR0cmlidXRlIGVxICdDQUJBZ2VudHMnICYmICRDaGFuZ2UtPnskQXR0cmlidXRlfSApIHsKCiAgICAgICAgICAgIGZvciBteSAkQ0FCQWdlbnQgKCBAeyAkQ2hhbmdlLT57JEF0dHJpYnV0ZX0gfSApIHsKCiAgICAgICAgICAgICAgICBteSAkVXNlckZ1bGxOYW1lID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlck5hbWUoCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRDQUJBZ2VudCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCRVc2VyRnVsbE5hbWUpIHsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBMb25nTmFtZXMsICRVc2VyRnVsbE5hbWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBMb25nTmFtZXMsICdJRD0nIC4gJENBQkFnZW50OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnQ0FCQ3VzdG9tZXJzJyAmJiAkQ2hhbmdlLT57JEF0dHJpYnV0ZX0gKSB7CgogICAgICAgICAgICBmb3IgbXkgJENBQkN1c3RvbWVyICggQHsgJENoYW5nZS0+eyRBdHRyaWJ1dGV9IH0gKSB7CgogICAgICAgICAgICAgICAgbXkgJVVzZXJEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcicpLT5DdXN0b21lclVzZXJEYXRhR2V0KAogICAgICAgICAgICAgICAgICAgIFVzZXIgID0+ICRDQUJDdXN0b21lciwKICAgICAgICAgICAgICAgICAgICBDYWNoZSA9PiAxLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGlmICglVXNlckRhdGEpIHsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBMb25nTmFtZXMsICRVc2VyRGF0YXtVc2VyRnVsbG5hbWV9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBATG9uZ05hbWVzLCAnSUQ9JyAuICRDQUJDdXN0b21lcjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyByZW1lbWJlciB0aGUgdmFsdWUKICAgICAgICAkQ29tcGxpY2F0ZWRWYWx1ZXsgJEF0dHJpYnV0ZSAuICdMb25nJyB9ID0gam9pbiggIlxuIiwgQExvbmdOYW1lcyApIHx8ICctJzsKICAgIH0KCiAgICAjIHZhbHVlIGZvciBhdHRhY2htZW50cwogICAgewoKICAgICAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgIG15IEBBdHRhY2htZW50cyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUF0dGFjaG1lbnRMaXN0KAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlLT57Q2hhbmdlSUR9LAogICAgICAgICk7CgogICAgICAgIG15IEBWYWx1ZXM7CgogICAgICAgIEFUVEFDSE1FTlQ6CiAgICAgICAgZm9yIG15ICRGaWxlbmFtZSAoQEF0dGFjaG1lbnRzKSB7CgogICAgICAgICAgICAjIGdldCBpbmZvIGFib3V0IGZpbGUKICAgICAgICAgICAgbXkgJEF0dGFjaG1lbnREYXRhID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQXR0YWNobWVudEdldCgKICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2UtPntDaGFuZ2VJRH0sCiAgICAgICAgICAgICAgICBGaWxlbmFtZSA9PiAkRmlsZW5hbWUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNoZWNrIGZvciBhdHRhY2htZW50IGluZm9ybWF0aW9uCiAgICAgICAgICAgIG5leHQgQVRUQUNITUVOVCBpZiAhJEF0dGFjaG1lbnREYXRhOwoKICAgICAgICAgICAgcHVzaCBAVmFsdWVzLCBzcHJpbnRmICclcyAlcycsCiAgICAgICAgICAgICAgICAkQXR0YWNobWVudERhdGEtPntGaWxlbmFtZX0sCiAgICAgICAgICAgICAgICAkQXR0YWNobWVudERhdGEtPntGaWxlc2l6ZX07CiAgICAgICAgfQoKICAgICAgICAjIHNob3cgcm93CiAgICAgICAgJENvbXBsaWNhdGVkVmFsdWV7QXR0YWNobWVudHN9ID0gam9pbiggIlxuIiwgQFZhbHVlcyApIHx8ICctJzsKICAgIH0KCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBteSAkRHluYW1pY0ZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gWyAnSVRTTUNoYW5nZScsICdJVFNNV29ya09yZGVyJyBdLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH0gfHwge30sCiAgICApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcwogICAgbXkgQER5bmFtaWNGaWVsZFJvd1NwZWM7CiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIHNob3cgb25seSBjaGFuZ2UgZHluYW1pYyBmaWVsZHMgaGVyZQogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICREeW5hbWljRmllbGRDb25maWctPntPYmplY3RUeXBlfSBuZSAnSVRTTUNoYW5nZSc7CgogICAgICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgYmFja2VuZCBvYmplY3QKICAgICAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAgICAgbXkgJFZhbHVlID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlR2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRDaGFuZ2UtPntDaGFuZ2VJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgcHJpbnQgc3RyaW5nIGZvciB0aGlzIGR5bmFtaWMgZmllbGQKICAgICAgICBteSAkVmFsdWVTdHJnID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkRpc3BsYXlWYWx1ZVJlbmRlcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkVmFsdWUsCiAgICAgICAgICAgIFZhbHVlTWF4Q2hhcnMgICAgICA9PiAxMDAwLAogICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICApOwoKICAgICAgICAjIGZvciBlbXB0eSB2YWx1ZXMKICAgICAgICBpZiAoICEkVmFsdWVTdHJnLT57VmFsdWV9ICkgewogICAgICAgICAgICAkVmFsdWVTdHJnLT57VmFsdWV9ID0gJy0nOwogICAgICAgIH0KCiAgICAgICAgbXkgJExhYmVsID0gJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfTsKCiAgICAgICAgcHVzaCBARHluYW1pY0ZpZWxkUm93U3BlYywgewogICAgICAgICAgICBBdHRyaWJ1dGUgICAgICAgICAgID0+ICRMYWJlbCwKICAgICAgICAgICAgS2V5ICAgICAgICAgICAgICAgICA9PiAkTGFiZWwsCiAgICAgICAgICAgIFZhbHVlSXNEeW5hbWljRmllbGQgPT4gMSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICBUYWJsZSAgICAgICAgICAgICAgID0+IFxAVGFibGVMZWZ0LAogICAgICAgIH07CiAgICB9CgogICAgbXkgQFJvd1NwZWMgPSAoCiAgICAgICAgewogICAgICAgICAgICBBdHRyaWJ1dGUgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnQ2hhbmdlU3RhdGUnKSwKICAgICAgICAgICAgVGFibGUgICAgICAgICAgICAgICA9PiBcQFRhYmxlTGVmdCwKICAgICAgICAgICAgVmFsdWVJc1RyYW5zbGF0YWJsZSA9PiAxLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBBdHRyaWJ1dGUgID0+IFRyYW5zbGF0YWJsZSgnUGxhbm5lZEVmZm9ydCcpLAogICAgICAgICAgICBJc09wdGlvbmFsID0+IDEsCiAgICAgICAgICAgIFRhYmxlICAgICAgPT4gXEBUYWJsZUxlZnQsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEF0dHJpYnV0ZSAgPT4gVHJhbnNsYXRhYmxlKCdBY2NvdW50ZWRUaW1lJyksCiAgICAgICAgICAgIElzT3B0aW9uYWwgPT4gMSwKICAgICAgICAgICAgVGFibGUgICAgICA9PiBcQFRhYmxlTGVmdCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0NhdGVnb3J5JyksCiAgICAgICAgICAgIEtleSAgICAgICAgICAgICAgICAgPT4gJ0NhdGVnb3J5JywKICAgICAgICAgICAgVGFibGUgICAgICAgICAgICAgICA9PiBcQFRhYmxlTGVmdCwKICAgICAgICAgICAgVmFsdWVJc1RyYW5zbGF0YWJsZSA9PiAxLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBBdHRyaWJ1dGUgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnSW1wYWN0JyksCiAgICAgICAgICAgIEtleSAgICAgICAgICAgICAgICAgPT4gJ0ltcGFjdCcsCiAgICAgICAgICAgIFRhYmxlICAgICAgICAgICAgICAgPT4gXEBUYWJsZUxlZnQsCiAgICAgICAgICAgIFZhbHVlSXNUcmFuc2xhdGFibGUgPT4gMSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1ByaW9yaXR5JyksCiAgICAgICAgICAgIEtleSAgICAgICAgICAgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgVGFibGUgICAgICAgICAgICAgICA9PiBcQFRhYmxlTGVmdCwKICAgICAgICAgICAgVmFsdWVJc1RyYW5zbGF0YWJsZSA9PiAxLAogICAgICAgIH0sCiAgICAgICAgQER5bmFtaWNGaWVsZFJvd1NwZWMsCiAgICAgICAgewogICAgICAgICAgICBBdHRyaWJ1dGUgICA9PiBUcmFuc2xhdGFibGUoJ0NoYW5nZU1hbmFnZXInKSwKICAgICAgICAgICAgVGFibGUgICAgICAgPT4gXEBUYWJsZUxlZnQsCiAgICAgICAgICAgIFZhbHVlSXNVc2VyID0+IDEsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEF0dHJpYnV0ZSAgID0+IFRyYW5zbGF0YWJsZSgnQ2hhbmdlQnVpbGRlcicpLAogICAgICAgICAgICBUYWJsZSAgICAgICA9PiBcQFRhYmxlTGVmdCwKICAgICAgICAgICAgVmFsdWVJc1VzZXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlID0+ICdDQUJBZ2VudHNMb25nJywKICAgICAgICAgICAgS2V5ICAgICAgID0+IFRyYW5zbGF0YWJsZSgnQ0FCIEFnZW50cycpLAogICAgICAgICAgICBUYWJsZSAgICAgPT4gXEBUYWJsZUxlZnQsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAnQ0FCQ3VzdG9tZXJzTG9uZycsCiAgICAgICAgICAgIEtleSAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0NBQiBDdXN0b21lcnMnKSwKICAgICAgICAgICAgVGFibGUgICAgID0+IFxAVGFibGVMZWZ0LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJ0F0dGFjaG1lbnRzJywKICAgICAgICAgICAgS2V5ICAgICAgID0+ICdBdHRhY2htZW50cycsCiAgICAgICAgICAgIFRhYmxlICAgICA9PiBcQFRhYmxlTGVmdCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlICAgPT4gVHJhbnNsYXRhYmxlKCdSZXF1ZXN0ZWRUaW1lJyksCiAgICAgICAgICAgIElzT3B0aW9uYWwgID0+IDEsCiAgICAgICAgICAgIFRhYmxlICAgICAgID0+IFxAVGFibGVSaWdodCwKICAgICAgICAgICAgVmFsdWVJc1RpbWUgPT4gMSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlICAgPT4gVHJhbnNsYXRhYmxlKCdQbGFubmVkU3RhcnRUaW1lJyksCiAgICAgICAgICAgIFRhYmxlICAgICAgID0+IFxAVGFibGVSaWdodCwKICAgICAgICAgICAgVmFsdWVJc1RpbWUgPT4gMSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlICAgPT4gVHJhbnNsYXRhYmxlKCdQbGFubmVkRW5kVGltZScpLAogICAgICAgICAgICBUYWJsZSAgICAgICA9PiBcQFRhYmxlUmlnaHQsCiAgICAgICAgICAgIFZhbHVlSXNUaW1lID0+IDEsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEF0dHJpYnV0ZSAgID0+IFRyYW5zbGF0YWJsZSgnQWN0dWFsU3RhcnRUaW1lJyksCiAgICAgICAgICAgIFRhYmxlICAgICAgID0+IFxAVGFibGVSaWdodCwKICAgICAgICAgICAgVmFsdWVJc1RpbWUgPT4gMSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlICAgPT4gVHJhbnNsYXRhYmxlKCdBY3R1YWxFbmRUaW1lJyksCiAgICAgICAgICAgIFRhYmxlICAgICAgID0+IFxAVGFibGVSaWdodCwKICAgICAgICAgICAgVmFsdWVJc1RpbWUgPT4gMSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlICAgPT4gVHJhbnNsYXRhYmxlKCdDcmVhdGVUaW1lJyksCiAgICAgICAgICAgIEtleSAgICAgICAgID0+ICdDcmVhdGVkJywKICAgICAgICAgICAgVGFibGUgICAgICAgPT4gXEBUYWJsZVJpZ2h0LAogICAgICAgICAgICBWYWx1ZUlzVGltZSA9PiAxLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBBdHRyaWJ1dGUgICA9PiBUcmFuc2xhdGFibGUoJ0NoYW5nZVRpbWUnKSwKICAgICAgICAgICAgS2V5ICAgICAgICAgPT4gJ0NoYW5nZWQnLAogICAgICAgICAgICBUYWJsZSAgICAgICA9PiBcQFRhYmxlUmlnaHQsCiAgICAgICAgICAgIFZhbHVlSXNUaW1lID0+IDEsCiAgICAgICAgfSwKICAgICk7CgogICAgZm9yIG15ICRSb3dTcGVjIChAUm93U3BlYykgewoKICAgICAgICAjIGZpbGwgQFRhYmxlTGVmdCBhbmQgQFRhYmxlUmlnaHQKICAgICAgICAkU2VsZi0+X1ByZXBhcmVBbmRBZGRJbmZvUm93KAogICAgICAgICAgICBSb3dTcGVjID0+ICRSb3dTcGVjLAogICAgICAgICAgICBEYXRhICAgID0+IHsgJXskQ2hhbmdlfSwgJUNvbXBsaWNhdGVkVmFsdWUgfSwKICAgICAgICApOwogICAgfQoKICAgICMgbnVtYmVyIG9mIHJvd3MgaW4gdGhlIGNoYW5nZSBpbmZvIHRhYmxlCiAgICBteSAkUm93cyA9IG1heCggc2NhbGFyKEBUYWJsZUxlZnQpLCBzY2FsYXIoQFRhYmxlUmlnaHQpICk7CgogICAgbXkgJVRhYmxlOwogICAgZm9yIG15ICRSb3cgKCAwIC4uICRSb3dzIC0gMSApIHsKICAgICAgICAkVGFibGV7Q2VsbERhdGF9WyRSb3ddWzBde0NvbnRlbnR9ICAgICAgICAgPSAkVGFibGVMZWZ0WyRSb3ddLT57S2V5fTsKICAgICAgICAkVGFibGV7Q2VsbERhdGF9WyRSb3ddWzBde0ZvbnR9ICAgICAgICAgICAgPSAnUHJvcG9ydGlvbmFsQm9sZCc7CiAgICAgICAgJFRhYmxle0NlbGxEYXRhfVskUm93XVsxXXtDb250ZW50fSAgICAgICAgID0gJFRhYmxlTGVmdFskUm93XS0+e1ZhbHVlfTsKICAgICAgICAkVGFibGV7Q2VsbERhdGF9WyRSb3ddWzJde0NvbnRlbnR9ICAgICAgICAgPSAnICc7CiAgICAgICAgJFRhYmxle0NlbGxEYXRhfVskUm93XVsyXXtCYWNrZ3JvdW5kQ29sb3J9ID0gJyNGRkZGRkYnOwogICAgICAgICRUYWJsZXtDZWxsRGF0YX1bJFJvd11bM117Q29udGVudH0gICAgICAgICA9ICRUYWJsZVJpZ2h0WyRSb3ddLT57S2V5fTsKICAgICAgICAkVGFibGV7Q2VsbERhdGF9WyRSb3ddWzNde0ZvbnR9ICAgICAgICAgICAgPSAnUHJvcG9ydGlvbmFsQm9sZCc7CiAgICAgICAgJFRhYmxle0NlbGxEYXRhfVskUm93XVs0XXtDb250ZW50fSAgICAgICAgID0gJFRhYmxlUmlnaHRbJFJvd10tPntWYWx1ZX07CiAgICB9CgogICAgJFRhYmxle0NvbHVtbkRhdGF9WzBde1dpZHRofSA9IDgwOwogICAgJFRhYmxle0NvbHVtbkRhdGF9WzFde1dpZHRofSA9IDE3MC41OwogICAgJFRhYmxle0NvbHVtbkRhdGF9WzJde1dpZHRofSA9IDQ7CiAgICAkVGFibGV7Q29sdW1uRGF0YX1bM117V2lkdGh9ID0gODA7CiAgICAkVGFibGV7Q29sdW1uRGF0YX1bNF17V2lkdGh9ID0gMTcwLjU7CgogICAgJFRhYmxle1R5cGV9ICAgICAgICAgICAgICAgID0gJ0N1dCc7CiAgICAkVGFibGV7Qm9yZGVyfSAgICAgICAgICAgICAgPSAwOwogICAgJFRhYmxle0ZvbnRTaXplfSAgICAgICAgICAgID0gNjsKICAgICRUYWJsZXtCYWNrZ3JvdW5kQ29sb3JFdmVufSA9ICcjREREREREJzsKICAgICRUYWJsZXtQYWRkaW5nfSAgICAgICAgICAgICA9IDE7CiAgICAkVGFibGV7UGFkZGluZ1RvcH0gICAgICAgICAgPSAzOwogICAgJFRhYmxle1BhZGRpbmdCb3R0b219ICAgICAgID0gMzsKCiAgICAjIG91dHB1dCB0YWJsZQogICAgJFNlbGYtPl9QREZPdXRwdXRUYWJsZSgKICAgICAgICBUYWJsZSA9PiBcJVRhYmxlLAogICAgKTsKCiAgICByZXR1cm4gJyc7Cgp9CgojIGVtaXQgaW5mb3JtYXRpb24gYWJvdXQgYSB3b3Jrb3JkZXIKc3ViIF9PdXRwdXRXb3JrT3JkZXJJbmZvIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhDaGFuZ2UgV29ya09yZGVyKSkgewogICAgICAgIGlmICggIWRlZmluZWQoICRQYXJhbXskTmVlZGVkfSApICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgKCAkV29ya09yZGVyLCAkQ2hhbmdlICkgPSBAUGFyYW17cXcoV29ya09yZGVyIENoYW5nZSl9OwoKICAgIG15ICRQcmludFdvcmtPcmRlciA9ICRQYXJhbXtQcmludFdvcmtPcmRlcn0gfHwgMDsKCiAgICAjIGZpbGwgdGhlIHR3byB0YWJsZXMgb24gdG9wLAogICAgIyBib3RoIHRhYmxlcyBoYXZlIHR3byBjb2x1bXM6IEtleSBhbmQgVmFsdWUKICAgIG15ICggQFRhYmxlTGVmdCwgQFRhYmxlUmlnaHQgKTsKCiAgICAjIGRldGVybWluZSB2YWx1ZXMgdGhhdCBjYW4ndCBiZSBkZXRlcm1pbmVkIGluIF9QcmVwYXJlQW5kQWRkSW5mb1JvdygpCiAgICBteSAlQ29tcGxpY2F0ZWRWYWx1ZTsKCiAgICAjIHZhbHVlIGZvciBhdHRhY2htZW50cwogICAgewoKICAgICAgICAjIGdldCB3b3JrIG9yZGVyIG9iamVjdAogICAgICAgIG15ICRXb3JrT3JkZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpOwoKICAgICAgICBteSBAQXR0YWNobWVudHMgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50TGlzdCgKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlci0+e1dvcmtPcmRlcklEfSwKICAgICAgICApOwoKICAgICAgICBteSBAVmFsdWVzOwoKICAgICAgICBBVFRBQ0hNRU5UOgogICAgICAgIGZvciBteSAkRmlsZW5hbWUgKEBBdHRhY2htZW50cykgewoKICAgICAgICAgICAgIyBnZXQgaW5mbyBhYm91dCBmaWxlCiAgICAgICAgICAgIG15ICRBdHRhY2htZW50RGF0YSA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckF0dGFjaG1lbnRHZXQoCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVyLT57V29ya09yZGVySUR9LAogICAgICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gJEZpbGVuYW1lLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBjaGVjayBmb3IgYXR0YWNobWVudCBpbmZvcm1hdGlvbgogICAgICAgICAgICBuZXh0IEFUVEFDSE1FTlQgaWYgISRBdHRhY2htZW50RGF0YTsKCiAgICAgICAgICAgIHB1c2ggQFZhbHVlcywgc3ByaW50ZiAnJXMgJXMnLAogICAgICAgICAgICAgICAgJEF0dGFjaG1lbnREYXRhLT57RmlsZW5hbWV9LAogICAgICAgICAgICAgICAgJEF0dGFjaG1lbnREYXRhLT57RmlsZXNpemV9OwogICAgICAgIH0KCiAgICAgICAgIyBzaG93IHJvdwogICAgICAgICRDb21wbGljYXRlZFZhbHVle0F0dGFjaG1lbnRzfSA9IGpvaW4oICJcbiIsIEBWYWx1ZXMgKSB8fCAnLSc7CiAgICB9CgogICAgIyBhbGxvdyB3cmFwcGluZyBvZiBsb25nIHdvcmRzIGluIHRoZSBjaGFuZ2UgdGl0bGUKICAgICggJENvbXBsaWNhdGVkVmFsdWV7V3JhcHBhYmxlQ2hhbmdlVGl0bGV9ID0gJENoYW5nZS0+e0NoYW5nZVRpdGxlfSApCiAgICAgICAgPX4gc3sgKCBcU3syNX0gKSB9eyQxIH14bXNnOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIG15ICREeW5hbWljRmllbGQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiBbICdJVFNNQ2hhbmdlJywgJ0lUU01Xb3JrT3JkZXInIF0sCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfSB8fCB7fSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBteSBARHluYW1pY0ZpZWxkUm93U3BlYzsKICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICMgc2hvdyBvbmx5IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBoZXJlCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgJER5bmFtaWNGaWVsZENvbmZpZy0+e09iamVjdFR5cGV9IG5lICdJVFNNV29ya09yZGVyJzsKCiAgICAgICAgIyBnZXQgZHluYW1pYyBmaWVsZCBiYWNrZW5kIG9iamVjdAogICAgICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgICAgICBteSAkVmFsdWUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVHZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJFdvcmtPcmRlci0+e1dvcmtPcmRlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGdldCBwcmludCBzdHJpbmcgZm9yIHRoaXMgZHluYW1pYyBmaWVsZAogICAgICAgIG15ICRWYWx1ZVN0cmcgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RGlzcGxheVZhbHVlUmVuZGVyKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICRWYWx1ZSwKICAgICAgICAgICAgVmFsdWVNYXhDaGFycyAgICAgID0+IDEwMDAsCiAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICk7CgogICAgICAgICMgZm9yIGVtcHR5IHZhbHVlcwogICAgICAgIGlmICggISRWYWx1ZVN0cmctPntWYWx1ZX0gKSB7CiAgICAgICAgICAgICRWYWx1ZVN0cmctPntWYWx1ZX0gPSAnLSc7CiAgICAgICAgfQoKICAgICAgICBteSAkTGFiZWwgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9OwoKICAgICAgICBwdXNoIEBEeW5hbWljRmllbGRSb3dTcGVjLCB7CiAgICAgICAgICAgIEF0dHJpYnV0ZSAgICAgICAgICAgPT4gJExhYmVsLAogICAgICAgICAgICBLZXkgICAgICAgICAgICAgICAgID0+ICRMYWJlbCwKICAgICAgICAgICAgVmFsdWVJc0R5bmFtaWNGaWVsZCA9PiAxLAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgIFRhYmxlICAgICAgICAgICAgICAgPT4gXEBUYWJsZUxlZnQsCiAgICAgICAgfTsKICAgIH0KCiAgICBteSBAUm93U3BlYyA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAnV3JhcHBhYmxlQ2hhbmdlVGl0bGUnLAogICAgICAgICAgICBUYWJsZSAgICAgPT4gXEBUYWJsZUxlZnQsCiAgICAgICAgICAgIEtleSAgICAgICA9PiAnQ2hhbmdlVGl0bGUnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gVHJhbnNsYXRhYmxlKCdDaGFuZ2VOdW1iZXInKSwKICAgICAgICAgICAgVGFibGUgICAgID0+IFxAVGFibGVMZWZ0LAogICAgICAgICAgICBLZXkgICAgICAgPT4gJ0NoYW5nZU51bWJlcicsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEF0dHJpYnV0ZSAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdXb3JrT3JkZXJTdGF0ZScpLAogICAgICAgICAgICBUYWJsZSAgICAgICAgICAgICAgID0+IFxAVGFibGVMZWZ0LAogICAgICAgICAgICBWYWx1ZUlzVHJhbnNsYXRhYmxlID0+IDEsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEF0dHJpYnV0ZSAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdXb3JrT3JkZXJUeXBlJyksCiAgICAgICAgICAgIFRhYmxlICAgICAgICAgICAgICAgPT4gXEBUYWJsZUxlZnQsCiAgICAgICAgICAgIFZhbHVlSXNUcmFuc2xhdGFibGUgPT4gMSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlICAgPT4gVHJhbnNsYXRhYmxlKCdXb3JrT3JkZXJBZ2VudCcpLAogICAgICAgICAgICBUYWJsZSAgICAgICA9PiBcQFRhYmxlTGVmdCwKICAgICAgICAgICAgVmFsdWVJc1VzZXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlICA9PiBUcmFuc2xhdGFibGUoJ1BsYW5uZWRFZmZvcnQnKSwKICAgICAgICAgICAgSXNPcHRpb25hbCA9PiAxLAogICAgICAgICAgICBUYWJsZSAgICAgID0+IFxAVGFibGVMZWZ0LAogICAgICAgICAgICBLZXkgICAgICAgID0+ICdQbGFubmVkRWZmb3J0JywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlICA9PiBUcmFuc2xhdGFibGUoJ0FjY291bnRlZFRpbWUnKSwKICAgICAgICAgICAgSXNPcHRpb25hbCA9PiAxLAogICAgICAgICAgICBUYWJsZSAgICAgID0+IFxAVGFibGVMZWZ0LAogICAgICAgICAgICBLZXkgICAgICAgID0+ICdBY2NvdW50ZWRUaW1lJywKICAgICAgICB9LAogICAgICAgIEBEeW5hbWljRmllbGRSb3dTcGVjLAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlID0+IFRyYW5zbGF0YWJsZSgnQXR0YWNobWVudHMnKSwKICAgICAgICAgICAgS2V5ICAgICAgID0+ICdBdHRhY2htZW50cycsCiAgICAgICAgICAgIFRhYmxlICAgICA9PiBcQFRhYmxlTGVmdCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlICAgPT4gVHJhbnNsYXRhYmxlKCdQbGFubmVkU3RhcnRUaW1lJyksCiAgICAgICAgICAgIFRhYmxlICAgICAgID0+IFxAVGFibGVSaWdodCwKICAgICAgICAgICAgVmFsdWVJc1RpbWUgPT4gMSwKICAgICAgICAgICAgS2V5ICAgICAgICAgPT4gJ1BsYW5uZWRTdGFydFRpbWUnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBBdHRyaWJ1dGUgICA9PiBUcmFuc2xhdGFibGUoJ1BsYW5uZWRFbmRUaW1lJyksCiAgICAgICAgICAgIFRhYmxlICAgICAgID0+IFxAVGFibGVSaWdodCwKICAgICAgICAgICAgVmFsdWVJc1RpbWUgPT4gMSwKICAgICAgICAgICAgS2V5ICAgICAgICAgPT4gJ1BsYW5uZWRFbmRUaW1lJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlICAgPT4gVHJhbnNsYXRhYmxlKCdBY3R1YWxTdGFydFRpbWUnKSwKICAgICAgICAgICAgVGFibGUgICAgICAgPT4gXEBUYWJsZVJpZ2h0LAogICAgICAgICAgICBWYWx1ZUlzVGltZSA9PiAxLAogICAgICAgICAgICBLZXkgICAgICAgICA9PiAnQWN0dWFsU3RhcnRUaW1lJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQXR0cmlidXRlICAgPT4gVHJhbnNsYXRhYmxlKCdBY3R1YWxFbmRUaW1lJyksCiAgICAgICAgICAgIFRhYmxlICAgICAgID0+IFxAVGFibGVSaWdodCwKICAgICAgICAgICAgVmFsdWVJc1RpbWUgPT4gMSwKICAgICAgICAgICAgS2V5ICAgICAgICAgPT4gJ0FjdHVhbEVuZFRpbWUnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBBdHRyaWJ1dGUgICA9PiBUcmFuc2xhdGFibGUoJ0NyZWF0ZVRpbWUnKSwKICAgICAgICAgICAgS2V5ICAgICAgICAgPT4gJ0NyZWF0ZWQnLAogICAgICAgICAgICBUYWJsZSAgICAgICA9PiBcQFRhYmxlUmlnaHQsCiAgICAgICAgICAgIFZhbHVlSXNUaW1lID0+IDEsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEF0dHJpYnV0ZSAgID0+IFRyYW5zbGF0YWJsZSgnQ2hhbmdlVGltZScpLAogICAgICAgICAgICBLZXkgICAgICAgICA9PiAnQ2hhbmdlZCcsCiAgICAgICAgICAgIFRhYmxlICAgICAgID0+IFxAVGFibGVSaWdodCwKICAgICAgICAgICAgVmFsdWVJc1RpbWUgPT4gMSwKICAgICAgICB9LAogICAgKTsKCiAgICBmb3IgbXkgJFJvd1NwZWMgKEBSb3dTcGVjKSB7CgogICAgICAgICMgZmlsbCBAVGFibGVMZWZ0IGFuZCBAVGFibGVSaWdodAogICAgICAgICMgdGhlIHdvcmtvcmRlciBkYXRhIG92ZXJyaWRlcyB0aGUgY2hhbmdlIGRhdGEKICAgICAgICAkU2VsZi0+X1ByZXBhcmVBbmRBZGRJbmZvUm93KAogICAgICAgICAgICBSb3dTcGVjID0+ICRSb3dTcGVjLAogICAgICAgICAgICBEYXRhICAgID0+IHsgJXskQ2hhbmdlfSwgJXskV29ya09yZGVyfSwgJUNvbXBsaWNhdGVkVmFsdWUgfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRSb3dzID0gbWF4KCBzY2FsYXIoQFRhYmxlTGVmdCksIHNjYWxhcihAVGFibGVSaWdodCkgKTsKCiAgICBteSAlVGFibGU7CiAgICBmb3IgbXkgJFJvdyAoIDAgLi4gJFJvd3MgLSAxICkgewogICAgICAgICRUYWJsZXtDZWxsRGF0YX1bJFJvd11bMF17Q29udGVudH0gICAgICAgICA9ICRUYWJsZUxlZnRbJFJvd10tPntLZXl9OwogICAgICAgICRUYWJsZXtDZWxsRGF0YX1bJFJvd11bMF17Rm9udH0gICAgICAgICAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKICAgICAgICAkVGFibGV7Q2VsbERhdGF9WyRSb3ddWzFde0NvbnRlbnR9ICAgICAgICAgPSAkVGFibGVMZWZ0WyRSb3ddLT57VmFsdWV9OwogICAgICAgICRUYWJsZXtDZWxsRGF0YX1bJFJvd11bMl17Q29udGVudH0gICAgICAgICA9ICcgJzsKICAgICAgICAkVGFibGV7Q2VsbERhdGF9WyRSb3ddWzJde0JhY2tncm91bmRDb2xvcn0gPSAnI0ZGRkZGRic7CiAgICAgICAgJFRhYmxle0NlbGxEYXRhfVskUm93XVszXXtDb250ZW50fSAgICAgICAgID0gJFRhYmxlUmlnaHRbJFJvd10tPntLZXl9OwogICAgICAgICRUYWJsZXtDZWxsRGF0YX1bJFJvd11bM117Rm9udH0gICAgICAgICAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKICAgICAgICAkVGFibGV7Q2VsbERhdGF9WyRSb3ddWzRde0NvbnRlbnR9ICAgICAgICAgPSAkVGFibGVSaWdodFskUm93XS0+e1ZhbHVlfTsKICAgIH0KCiAgICAkVGFibGV7Q29sdW1uRGF0YX1bMF17V2lkdGh9ID0gODA7CiAgICAkVGFibGV7Q29sdW1uRGF0YX1bMV17V2lkdGh9ID0gMTcwLjU7CiAgICAkVGFibGV7Q29sdW1uRGF0YX1bMl17V2lkdGh9ID0gNDsKICAgICRUYWJsZXtDb2x1bW5EYXRhfVszXXtXaWR0aH0gPSA4MDsKICAgICRUYWJsZXtDb2x1bW5EYXRhfVs0XXtXaWR0aH0gPSAxNzAuNTsKCiAgICAkVGFibGV7VHlwZX0gICAgICAgICAgICAgICAgPSAnQ3V0JzsKICAgICRUYWJsZXtCb3JkZXJ9ICAgICAgICAgICAgICA9IDA7CiAgICAkVGFibGV7Rm9udFNpemV9ICAgICAgICAgICAgPSA2OwogICAgJFRhYmxle0JhY2tncm91bmRDb2xvckV2ZW59ID0gJyNEREREREQnOwogICAgJFRhYmxle1BhZGRpbmd9ICAgICAgICAgICAgID0gMTsKICAgICRUYWJsZXtQYWRkaW5nVG9wfSAgICAgICAgICA9IDM7CiAgICAkVGFibGV7UGFkZGluZ0JvdHRvbX0gICAgICAgPSAzOwoKICAgICMgb3V0cHV0IHRhYmxlCiAgICAkU2VsZi0+X1BERk91dHB1dFRhYmxlKAogICAgICAgIFRhYmxlID0+IFwlVGFibGUsCiAgICApOwoKICAgIHJldHVybiAnJzsKCn0KCiMgb3V0cHV0IGEgYm9keSBvZiB0ZXh0LCBzdWNoIGFzIGEgY2hhbmdlIGRlc2NyaXB0aW9uCnN1YiBfT3V0cHV0TG9uZ1RleHQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KFByaW50Q2hhbmdlIFByaW50V29ya09yZGVyIFRpdGxlIExvbmdUZXh0KSkgewogICAgICAgIGlmICggIWRlZmluZWQoICRQYXJhbXskTmVlZGVkfSApICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgUERGIG9iamVjdAogICAgbXkgJFBERk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQREYnKTsKCiAgICAjIHNvbWUgdmVydGljYWwgd2hpdGVzcGFjZQogICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgWSAgICA9PiAtMTUsCiAgICApOwoKICAgICMgb3V0cHV0IGhlYWRsaW5lIGZvciB0aGUgc2VjdGlvbgogICAgJFBERk9iamVjdC0+VGV4dCgKICAgICAgICBUZXh0ICAgICA9PiAkUGFyYW17VGl0bGV9LAogICAgICAgIEhlaWdodCAgID0+IDcsCiAgICAgICAgVHlwZSAgICAgPT4gJ0N1dCcsCiAgICAgICAgRm9udCAgICAgPT4gJ1Byb3BvcnRpb25hbEJvbGRJdGFsaWMnLAogICAgICAgIEZvbnRTaXplID0+IDcsCiAgICAgICAgQ29sb3IgICAgPT4gJyM2NjY2NjYnLAogICAgKTsKCiAgICAjIHZlcnRpY2FsIHdoaXRlc3BhY2UgYWZ0ZXIgdGl0bGUKICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgIFkgICAgPT4gLTQsCiAgICApOwoKICAgICMgdGFibGUgcGFyYW1zIGNvbW1vbiB0byBwcmludGluZyBhIGJvZHkgb2YgdGV4dCwKICAgICMgYWN0dWFsbHkgYSB0YWJsZSBpcyBhIGJpdCBvZiBvdmVya2lsbCBmb3IgYSBzaW5nbGUgdGV4dCwKICAgIG15ICVUYWJsZSA9ICgKICAgICAgICBUeXBlICAgICAgICAgICAgPT4gJ0N1dCcsCiAgICAgICAgQm9yZGVyICAgICAgICAgID0+IDAsCiAgICAgICAgRm9udCAgICAgICAgICAgID0+ICdNb25vc3BhY2VkJywKICAgICAgICBGb250U2l6ZSAgICAgICAgPT4gNywKICAgICAgICBCYWNrZ3JvdW5kQ29sb3IgPT4gJyNEREREREQnLAogICAgICAgIFBhZGRpbmcgICAgICAgICA9PiA0LAogICAgICAgIFBhZGRpbmdUb3AgICAgICA9PiA4LAogICAgICAgIFBhZGRpbmdCb3R0b20gICA9PiA4LAogICAgKTsKCiAgICAjIG91dHB1dCB0YWJsZXMKICAgICRUYWJsZXtDZWxsRGF0YX1bMF1bMF17Q29udGVudH0gPSAkUGFyYW17TG9uZ1RleHR9IHx8ICcnOwoKICAgICMgb3V0cHV0IHRhYmxlCiAgICAkU2VsZi0+X1BERk91dHB1dFRhYmxlKAogICAgICAgIFRhYmxlID0+IFwlVGFibGUsCiAgICApOwoKICAgIHJldHVybiAnJzsKCn0KCiMgb3V0cHV0IG92ZXJ2aWV3IG92ZXIgd29ya29yZGVycwpzdWIgX091dHB1dFdvcmtPcmRlck92ZXJ2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggIWRlZmluZWQoICRQYXJhbXtXb3JrT3JkZXJPdmVydmlld30gKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgV29ya09yZGVyT3ZlcnZpZXchIgogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IFBERiBvYmplY3QKICAgIG15ICRQREZPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UERGJyk7CgogICAgIyB2ZXJ0aWNhbCB3aGl0ZXNwYWNlIGJlZm9yZSBzZWN0aW9uIGhlYWRsaW5lCiAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICBZICAgID0+IC0xNSwKICAgICk7CgogICAgIyBnZXQgbGF5dG91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBvdXRwdXQgaGVhZGxpbmUgZm9yIHRoZSBzZWN0aW9uCiAgICBteSAkVHJhbnNsYXRpb24gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9OwogICAgbXkgJFNlY3Rpb25UaXRsZSA9CiAgICAgICAgJFRyYW5zbGF0aW9uLT5UcmFuc2xhdGUoICdJVFNNIFdvcmtvcmRlciBPdmVydmlldyAoJXMpJywgc2NhbGFyIEB7ICRQYXJhbXtXb3JrT3JkZXJPdmVydmlld30gfSApOwogICAgJFBERk9iamVjdC0+VGV4dCgKICAgICAgICBUZXh0ICAgICA9PiAkU2VjdGlvblRpdGxlLAogICAgICAgIEhlaWdodCAgID0+IDcsCiAgICAgICAgVHlwZSAgICAgPT4gJ0N1dCcsCiAgICAgICAgRm9udCAgICAgPT4gJ1Byb3BvcnRpb25hbEJvbGRJdGFsaWMnLAogICAgICAgIEZvbnRTaXplID0+IDcsCiAgICAgICAgQ29sb3IgICAgPT4gJyM2NjY2NjYnLAogICAgKTsKCiAgICAjIHZlcnRpY2FsIHdoaXRlc3BhY2UgYWZ0ZXIgc2VjdGlvbiBoZWFkbGluZQogICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgWSAgICA9PiAtNCwKICAgICk7CgogICAgIyBvdXRwdXQgdGhlIG92ZXJ2aWV3IHRhYmxlIG9ubHkgaWYgdGhlcmUgaXMgYXQgbGVhc3QgYSBzaW5nbGUgd29ya29yZGVyLAogICAgIyBwcmludGluZyBhbiBlbXB0eSB0YWJsZSBtaWdodCBjcmVhdGUgaGF2b2MKICAgIGlmICggQHsgJFBhcmFte1dvcmtPcmRlck92ZXJ2aWV3fSB9ICkgewoKICAgICAgICBteSAlVGFibGU7CiAgICAgICAgbXkgJFJvdyA9IDA7CgogICAgICAgICMgYWRkIHRhYmxlIGhlYWRlcgogICAgICAgICRUYWJsZXtDZWxsRGF0YX1bICRSb3crKyBdID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBGb250ICAgID0+ICdQcm9wb3J0aW9uYWxCb2xkJywKICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJyMnLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBGb250ICAgID0+ICdQcm9wb3J0aW9uYWxCb2xkJywKICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJFRyYW5zbGF0aW9uLT5UcmFuc2xhdGUoJ1RpdGxlJyksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEZvbnQgICAgPT4gJ1Byb3BvcnRpb25hbEJvbGQnLAogICAgICAgICAgICAgICAgQ29udGVudCA9PiAkVHJhbnNsYXRpb24tPlRyYW5zbGF0ZSgnU3RhdGUnKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRm9udCAgICA9PiAnUHJvcG9ydGlvbmFsQm9sZCcsCiAgICAgICAgICAgICAgICBDb250ZW50ID0+ICRUcmFuc2xhdGlvbi0+VHJhbnNsYXRlKCdQbGFubmVkU3RhcnRUaW1lJyksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEZvbnQgICAgPT4gJ1Byb3BvcnRpb25hbEJvbGQnLAogICAgICAgICAgICAgICAgQ29udGVudCA9PiAkVHJhbnNsYXRpb24tPlRyYW5zbGF0ZSgnUGxhbm5lZEVuZFRpbWUnKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRm9udCAgICA9PiAnUHJvcG9ydGlvbmFsQm9sZCcsCiAgICAgICAgICAgICAgICBDb250ZW50ID0+ICRUcmFuc2xhdGlvbi0+VHJhbnNsYXRlKCdBY3R1YWxTdGFydFRpbWUnKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRm9udCAgICA9PiAnUHJvcG9ydGlvbmFsQm9sZCcsCiAgICAgICAgICAgICAgICBDb250ZW50ID0+ICRUcmFuc2xhdGlvbi0+VHJhbnNsYXRlKCdBY3R1YWxFbmRUaW1lJyksCiAgICAgICAgICAgIH0sCiAgICAgICAgXTsKCiAgICAgICAgZm9yIG15ICRXb3JrT3JkZXIgKCBAeyAkUGFyYW17V29ya09yZGVyT3ZlcnZpZXd9IH0gKSB7CiAgICAgICAgICAgICRUYWJsZXtDZWxsRGF0YX1bICRSb3crKyBdID0gWyBtYXAgeyB7IENvbnRlbnQgPT4gJF8gfSB9IEB7JFdvcmtPcmRlcn0gXTsKICAgICAgICB9CgogICAgICAgICRUYWJsZXtDb2x1bW5EYXRhfVswXXtXaWR0aH0gPSAyOwogICAgICAgICRUYWJsZXtDb2x1bW5EYXRhfVsxXXtXaWR0aH0gPSA2MzsKICAgICAgICAkVGFibGV7Q29sdW1uRGF0YX1bMl17V2lkdGh9ID0gMjU7CiAgICAgICAgJFRhYmxle0NvbHVtbkRhdGF9WzNde1dpZHRofSA9IDQwOwogICAgICAgICRUYWJsZXtDb2x1bW5EYXRhfVs0XXtXaWR0aH0gPSA0MDsKICAgICAgICAkVGFibGV7Q29sdW1uRGF0YX1bNV17V2lkdGh9ID0gNDA7CiAgICAgICAgJFRhYmxle0NvbHVtbkRhdGF9WzZde1dpZHRofSA9IDQwOwoKICAgICAgICAjIHRhYmxlIHBhcmFtcwogICAgICAgICRUYWJsZXtUeXBlfSAgICAgICAgICAgID0gJ0N1dCc7CiAgICAgICAgJFRhYmxle0JvcmRlcn0gICAgICAgICAgPSAwOwogICAgICAgICRUYWJsZXtGb250U2l6ZX0gICAgICAgID0gNjsKICAgICAgICAkVGFibGV7QmFja2dyb3VuZENvbG9yfSA9ICcjREREREREJzsKICAgICAgICAkVGFibGV7UGFkZGluZ30gICAgICAgICA9IDE7CiAgICAgICAgJFRhYmxle1BhZGRpbmdUb3B9ICAgICAgPSAzOwogICAgICAgICRUYWJsZXtQYWRkaW5nQm90dG9tfSAgID0gMzsKCiAgICAgICAgIyBvdXRwdXQgdGFibGUKICAgICAgICAkU2VsZi0+X1BERk91dHB1dFRhYmxlKAogICAgICAgICAgICBUYWJsZSA9PiBcJVRhYmxlLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCiMgb3V0cHV0IGluZm8gYWJvdXQgbGlua2VkIG9iamVjdHMgb2YgYSBjaGFuZ2Ugb3IgYSB3b3Jrb3JkZXIKc3ViIF9PdXRwdXRMaW5rZWRPYmplY3RzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhQcmludENoYW5nZSBQcmludFdvcmtPcmRlciBMaW5rRGF0YSBMaW5rVHlwZUxpc3QpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCggJFBhcmFteyROZWVkZWR9ICkgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJVR5cGVMaXN0ID0gJXsgJFBhcmFte0xpbmtUeXBlTGlzdH0gfTsKCiAgICBteSAlVGFibGU7CiAgICBteSAkUm93ID0gMDsKICAgIGZvciBteSAkTGlua1R5cGVMaW5rRGlyZWN0aW9uICggc29ydCB7IGxjICRhIGNtcCBsYyAkYiB9IGtleXMgJXsgJFBhcmFte0xpbmtEYXRhfSB9ICkgewoKICAgICAgICAjIGludmVzdGlnYXRlIGxpbmsgdHlwZSBuYW1lCiAgICAgICAgbXkgQExpbmtEYXRhICAgICA9IHNwbGl0IHF7Ojp9LCAkTGlua1R5cGVMaW5rRGlyZWN0aW9uOwogICAgICAgIG15ICRMaW5rVHlwZU5hbWUgPSAkVHlwZUxpc3R7ICRMaW5rRGF0YVswXSB9LT57ICRMaW5rRGF0YVsxXSAuICdOYW1lJyB9OwogICAgICAgICRMaW5rVHlwZU5hbWUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJExpbmtUeXBlTmFtZSk7CgogICAgICAgICMgZGVmaW5lIGhlYWRsaW5lCiAgICAgICAgJFRhYmxle0NlbGxEYXRhfVskUm93XVswXXtDb250ZW50fSA9ICRMaW5rVHlwZU5hbWUgLiAnOic7CiAgICAgICAgJFRhYmxle0NlbGxEYXRhfVskUm93XVswXXtGb250fSAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKICAgICAgICAkVGFibGV7Q2VsbERhdGF9WyRSb3ddWzFde0NvbnRlbnR9ID0gJyc7CgogICAgICAgICMgZXh0cmFjdCBvYmplY3QgbGlzdAogICAgICAgIG15ICRPYmplY3RMaXN0ID0gJFBhcmFte0xpbmtEYXRhfS0+eyRMaW5rVHlwZUxpbmtEaXJlY3Rpb259OwoKICAgICAgICBmb3IgbXkgJE9iamVjdCAoIHNvcnQgeyBsYyAkYSBjbXAgbGMgJGIgfSBrZXlzICV7JE9iamVjdExpc3R9ICkgewoKICAgICAgICAgICAgZm9yIG15ICRJdGVtICggQHsgJE9iamVjdExpc3QtPnskT2JqZWN0fSB9ICkgewoKICAgICAgICAgICAgICAgICRUYWJsZXtDZWxsRGF0YX1bJFJvd11bMF17Q29udGVudH0gfHw9ICcnOwogICAgICAgICAgICAgICAgJFRhYmxle0NlbGxEYXRhfVskUm93XVsxXXtDb250ZW50fSA9ICRJdGVtLT57VGl0bGV9IHx8ICcnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRpbnVlIHsKICAgICAgICAgICAgICAgICRSb3crKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAkVGFibGV7Q29sdW1uRGF0YX1bMF17V2lkdGh9ID0gODA7CiAgICAkVGFibGV7Q29sdW1uRGF0YX1bMV17V2lkdGh9ID0gNDMxOwoKICAgICMgZ2V0IFBERiBvYmplY3QKICAgIG15ICRQREZPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UERGJyk7CgogICAgIyBzZXQgbmV3IHBvc2l0aW9uCiAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICBZICAgID0+IC0xNSwKICAgICk7CgogICAgIyBvdXRwdXQgaGVhZGxpbmUKICAgICRQREZPYmplY3QtPlRleHQoCiAgICAgICAgVGV4dCAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdMaW5rZWQgT2JqZWN0cycpLAogICAgICAgIEhlaWdodCAgID0+IDcsCiAgICAgICAgVHlwZSAgICAgPT4gJ0N1dCcsCiAgICAgICAgRm9udCAgICAgPT4gJ1Byb3BvcnRpb25hbEJvbGRJdGFsaWMnLAogICAgICAgIEZvbnRTaXplID0+IDcsCiAgICAgICAgQ29sb3IgICAgPT4gJyM2NjY2NjYnLAogICAgKTsKCiAgICAjIHNldCBuZXcgcG9zaXRpb24KICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgIFkgICAgPT4gLTQsCiAgICApOwoKICAgICMgdGFibGUgcGFyYW1zCiAgICAkVGFibGV7VHlwZX0gICAgICAgICAgICA9ICdDdXQnOwogICAgJFRhYmxle0JvcmRlcn0gICAgICAgICAgPSAwOwogICAgJFRhYmxle0ZvbnRTaXplfSAgICAgICAgPSA2OwogICAgJFRhYmxle0JhY2tncm91bmRDb2xvcn0gPSAnI0RERERERCc7CiAgICAkVGFibGV7UGFkZGluZ30gICAgICAgICA9IDE7CiAgICAkVGFibGV7UGFkZGluZ1RvcH0gICAgICA9IDM7CiAgICAkVGFibGV7UGFkZGluZ0JvdHRvbX0gICA9IDM7CgogICAgIyBvdXRwdXQgdGFibGUKICAgICRTZWxmLT5fUERGT3V0cHV0VGFibGUoCiAgICAgICAgVGFibGUgPT4gXCVUYWJsZSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCiMgb3V0cHV0IGEgdGFibGUsIGFjY3Jvc3Mgc2V2ZXJhbCBwYWdlcyBpZiBuZWNjZXNzYXJ5CnN1YiBfUERGT3V0cHV0VGFibGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhZGVmaW5lZCggJFBhcmFte1RhYmxlfSApICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBUYWJsZSEiCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBqdXN0IGZvciBoYXZpbmcgc2hvcnRlciBuYW1lcwogICAgbXkgJFRhYmxlID0gJFBhcmFte1RhYmxlfTsKICAgIG15ICRQYWdlICA9ICRTZWxmLT57UGFnZX07CiAgICBQQUdFOgogICAgZm9yICggJFBhZ2UtPntQYWdlQ291bnR9IC4uICRQYWdlLT57TWF4UGFnZXN9ICkgewoKICAgICAgICAjIGdldCBQREYgb2JqZWN0CiAgICAgICAgbXkgJFBERk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQREYnKTsKCiAgICAgICAgIyBvdXRwdXQgdGFibGUgKG9yIGEgZnJhZ21lbnQgb2YgaXQpCiAgICAgICAgJXskVGFibGV9ID0gJFBERk9iamVjdC0+VGFibGUoICV7JFRhYmxlfSApOwoKICAgICAgICAjIHN0b3Agb3V0cHV0IG9yIG91dHB1dCBuZXh0IHBhZ2UKICAgICAgICBpZiAoICRUYWJsZS0+e1N0YXRlfSApIHsKICAgICAgICAgICAgbGFzdCBQQUdFOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBERk9iamVjdC0+UGFnZU5ldygKICAgICAgICAgICAgICAgICV7JFBhZ2V9LAogICAgICAgICAgICAgICAgRm9vdGVyUmlnaHQgPT4gam9pbiggJyAnLCAkUGFnZS0+e1BhZ2VUZXh0fSwgJFBhZ2UtPntQYWdlQ291bnR9ICksCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRQYWdlLT57UGFnZUNvdW50fSsrOwogICAgICAgIH0KICAgIH0KCiAgICAkU2VsZi0+e1BhZ2V9LT57UGFnZUNvdW50fSA9ICRQYWdlLT57UGFnZUNvdW50fTsKCiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangePSA.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZVBTQTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGVycm9yIHNjcmVlbgogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyEnLCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSApLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBzdG9yZSBsYXN0IHNjcmVlbiwgdXNlZCBmb3IgYmFja2xpbmtzCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuQ2hhbmdlcycsCiAgICAgICAgVmFsdWUgICAgID0+ICRTZWxmLT57UmVxdWVzdGVkVVJMfSwKICAgICk7CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgc29ydGluZyBwYXJhbWV0ZXJzCiAgICBteSAkU29ydEJ5ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRCeScgKQogICAgICAgIHx8ICRTZWxmLT57Q29uZmlnfS0+eydTb3J0Qnk6OkRlZmF1bHQnfQogICAgICAgIHx8ICdQbGFubmVkU3RhcnRUaW1lJzsKCiAgICAjIGdldCBvcmRlcmluZyBwYXJhbWV0ZXJzCiAgICBteSAkT3JkZXJCeSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPcmRlckJ5JyApCiAgICAgICAgfHwgJFNlbGYtPntDb25maWd9LT57J09yZGVyOjpEZWZhdWx0J30KICAgICAgICB8fCAnVXAnOwoKICAgIG15IEBTb3J0QnlBcnJheSAgPSAoJFNvcnRCeSk7CiAgICBteSBAT3JkZXJCeUFycmF5ID0gKCRPcmRlckJ5KTsKCiAgICAjIGludmVzdGlnYXRlIHJlZnJlc2gKICAgIG15ICRSZWZyZXNoID0gJFNlbGYtPntVc2VyUmVmcmVzaFRpbWV9ID8gNjAgKiAkU2VsZi0+e1VzZXJSZWZyZXNoVGltZX0gOiB1bmRlZjsKCiAgICAjIHN0YXJ0aW5nIHdpdGggcGFnZSAuLi4KICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoIFJlZnJlc2ggPT4gJFJlZnJlc2ggKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJExheW91dE9iamVjdC0+UHJpbnQoIE91dHB1dCA9PiBcJE91dHB1dCApOwogICAgJE91dHB1dCA9ICcnOwoKICAgICMgZmluZCBvdXQgd2hpY2ggY29sdW1ucyBzaG91bGQgYmUgc2hvd24KICAgIG15IEBTaG93Q29sdW1uczsKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U2hvd0NvbHVtbnN9ICkgewoKICAgICAgICAjIGdldCBhbGwgcG9zc2libGUgY29sdW1ucyBmcm9tIGNvbmZpZwogICAgICAgIG15ICVQb3NzaWJsZUNvbHVtbiA9ICV7ICRTZWxmLT57Q29uZmlnfS0+e1Nob3dDb2x1bW5zfSB9OwoKICAgICAgICAjIGdldCB0aGUgY29sdW1uIG5hbWVzIHRoYXQgc2hvdWxkIGJlIHNob3duCiAgICAgICAgQ09MVU1OTkFNRToKICAgICAgICBmb3IgbXkgJE5hbWUgKCBzb3J0IGtleXMgJVBvc3NpYmxlQ29sdW1uICkgewogICAgICAgICAgICBuZXh0IENPTFVNTk5BTUUgaWYgISRQb3NzaWJsZUNvbHVtbnskTmFtZX07CiAgICAgICAgICAgIHB1c2ggQFNob3dDb2x1bW5zLCAkTmFtZTsKICAgICAgICB9CiAgICB9CgogICAgIyB0byBzdG9yZSB0aGUgZmlsdGVycwogICAgbXkgJUZpbHRlcnM7CgogICAgIyBzZXQgb3RoZXIgZmlsdGVycyBiYXNlZCBvbiBjaGFuZ2Ugc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57J0ZpbHRlcjo6Q2hhbmdlU3RhdGVzJ30gKSB7CgogICAgICAgICMgZGVmaW5lIHBvc2l0aW9uIG9mIHRoZSBmaWx0ZXIgaW4gdGhlIGZyb250ZW5kCiAgICAgICAgbXkgJFByaW9Db3VudGVyID0gMTAwMDsKCiAgICAgICAgIyBnZXQgYWxsIGNoYW5nZSBzdGF0ZXMgdGhhdCBzaG91bGQgYmUgdXNlZCBhcyBmaWx0ZXJzCiAgICAgICAgQ0hBTkdFU1RBVEU6CiAgICAgICAgZm9yIG15ICRDaGFuZ2VTdGF0ZSAoIEB7ICRTZWxmLT57Q29uZmlnfS0+eydGaWx0ZXI6OkNoYW5nZVN0YXRlcyd9IH0gKSB7CgogICAgICAgICAgICAjIGRvIG5vdCB1c2UgZW1wdHkgY2hhbmdlIHN0YXRlcwogICAgICAgICAgICBuZXh0IENIQU5HRVNUQVRFIGlmICEkQ2hhbmdlU3RhdGU7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHN0YXRlIGlzIHZhbGlkIGJ5IGxvb2tpbmcgdXAgdGhlIHN0YXRlIGlkCiAgICAgICAgICAgIG15ICRDaGFuZ2VTdGF0ZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU3RhdGVMb29rdXAoCiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZSA9PiAkQ2hhbmdlU3RhdGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGRvIG5vdCB1c2UgaW52YWxpZCBjaGFuZ2Ugc3RhdGVzCiAgICAgICAgICAgIG5leHQgQ0hBTkdFU1RBVEUgaWYgISRDaGFuZ2VTdGF0ZUlEOwoKICAgICAgICAgICAgIyBpbmNyZWFzZSB0aGUgUHJpb0NvdW50ZXIKICAgICAgICAgICAgJFByaW9Db3VudGVyKys7CgogICAgICAgICAgICAjIGFkZCBmaWx0ZXIgZm9yIHRoZSBjdXJyZW50IGNoYW5nZSBzdGF0ZQogICAgICAgICAgICAkRmlsdGVyc3skQ2hhbmdlU3RhdGV9ID0gewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICRDaGFuZ2VTdGF0ZSwKICAgICAgICAgICAgICAgIFByaW8gICA9PiAkUHJpb0NvdW50ZXIsCiAgICAgICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlcyAgICAgPT4gWyRDaGFuZ2VTdGF0ZV0sCiAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiBcQFNvcnRCeUFycmF5LAogICAgICAgICAgICAgICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gXEBPcmRlckJ5QXJyYXksCiAgICAgICAgICAgICAgICAgICAgTGltaXQgICAgICAgICAgICA9PiAxMDAwLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgZmlsdGVyIGFuZCB2aWV3IHBhcmFtcwogICAgJFNlbGYtPntGaWx0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0ZpbHRlcicgKSB8fCAnQWxsJzsKICAgICRTZWxmLT57Vmlld30gICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdWaWV3JyApICAgfHwgJyc7CgogICAgIyBpZiBvbmx5IG9uZSBmaWx0ZXIgZXhpc3RzCiAgICBpZiAoIHNjYWxhciBrZXlzICVGaWx0ZXJzID09IDEgKSB7CgogICAgICAgICMgZ2V0IHRoZSBuYW1lIG9mIHRoZSBvbmx5IGZpbHRlcgogICAgICAgIG15ICgkRmlsdGVyTmFtZSkgPSBrZXlzICVGaWx0ZXJzOwoKICAgICAgICAjIGFjdGl2YXRlIHRoaXMgZmlsdGVyCiAgICAgICAgJFNlbGYtPntGaWx0ZXJ9ID0gJEZpbHRlck5hbWU7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBhZGQgZGVmYXVsdCBmaWx0ZXIKICAgICAgICAkRmlsdGVyc3tBbGx9ID0gewogICAgICAgICAgICBOYW1lICAgPT4gJ0FsbCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAwLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVzICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPnsnRmlsdGVyOjpDaGFuZ2VTdGF0ZXMnfSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gXEBTb3J0QnlBcnJheSwKICAgICAgICAgICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gXEBPcmRlckJ5QXJyYXksCiAgICAgICAgICAgICAgICBMaW1pdCAgICAgICAgICAgID0+IDEwMDAsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgfSwKICAgICAgICB9OwogICAgfQoKICAgICMgY2hlY2sgaWYgZmlsdGVyIGlzIHZhbGlkCiAgICBpZiAoICEkRmlsdGVyc3sgJFNlbGYtPntGaWx0ZXJ9IH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdJbnZhbGlkIEZpbHRlcjogJXMhJywgJFNlbGYtPntGaWx0ZXJ9ICksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNlYXJjaCBjaGFuZ2VzIHdoaWNoIG1hdGNoIHRoZSBzZWxlY3RlZCBmaWx0ZXIKICAgIG15ICRDaGFuZ2VJRHNSZWYgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgJXsgJEZpbHRlcnN7ICRTZWxmLT57RmlsdGVyfSB9LT57U2VhcmNofSB9LAogICAgKTsKCiAgICAjIGRpc3BsYXkgYWxsIG5hdmJhciBmaWx0ZXJzCiAgICBteSAlTmF2QmFyRmlsdGVyOwogICAgZm9yIG15ICRGaWx0ZXIgKCBzb3J0IGtleXMgJUZpbHRlcnMgKSB7CgogICAgICAgICMgY291bnQgdGhlIG51bWJlciBvZiBjaGFuZ2VzIGZvciBlYWNoIGZpbHRlcgogICAgICAgIG15ICRDb3VudCA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCA9PiAnQ09VTlQnLAogICAgICAgICk7CgogICAgICAgICMgZGlzcGxheSB0aGUgbmF2YmFyIGZpbHRlcgogICAgICAgICROYXZCYXJGaWx0ZXJ7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57UHJpb30gfSA9IHsKICAgICAgICAgICAgQ291bnQgID0+ICRDb3VudCwKICAgICAgICAgICAgRmlsdGVyID0+ICRGaWx0ZXIsCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9IH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIHNob3cgY2hhbmdlcwogICAgbXkgJExpbmtQYWdlID0gJ0ZpbHRlcj0nCiAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57RmlsdGVyfSApCiAgICAgICAgLiAnO1ZpZXc9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntWaWV3fSApCiAgICAgICAgLiAnO1NvcnRCeT0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU29ydEJ5ICkKICAgICAgICAuICc7T3JkZXJCeT0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkT3JkZXJCeSApCiAgICAgICAgLiAnOyc7CiAgICBteSAkTGlua1NvcnQgPSAnRmlsdGVyPScKICAgICAgICAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntGaWx0ZXJ9ICkKICAgICAgICAuICc7Vmlldz0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e1ZpZXd9ICkKICAgICAgICAuICc7JzsKICAgIG15ICRMaW5rRmlsdGVyID0gJ1NvcnRCeT0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU29ydEJ5ICkKICAgICAgICAuICc7T3JkZXJCeT0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkT3JkZXJCeSApCiAgICAgICAgLiAnO1ZpZXc9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntWaWV3fSApCiAgICAgICAgLiAnOyc7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPklUU01DaGFuZ2VMaXN0U2hvdygKCiAgICAgICAgQ2hhbmdlSURzID0+ICRDaGFuZ2VJRHNSZWYsCiAgICAgICAgVG90YWwgICAgID0+IHNjYWxhciBAeyRDaGFuZ2VJRHNSZWZ9LAoKICAgICAgICBWaWV3ID0+ICRTZWxmLT57Vmlld30sCgogICAgICAgIEZpbHRlciAgICAgPT4gJFNlbGYtPntGaWx0ZXJ9LAogICAgICAgIEZpbHRlcnMgICAgPT4gXCVOYXZCYXJGaWx0ZXIsCiAgICAgICAgRmlsdGVyTGluayA9PiAkTGlua0ZpbHRlciwKCiAgICAgICAgVGl0bGVOYW1lID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnT3ZlcnZpZXc6IFBTQScpLAoKICAgICAgICBUaXRsZVZhbHVlID0+ICRTZWxmLT57RmlsdGVyfSwKCiAgICAgICAgRW52ICAgICAgPT4gJFNlbGYsCiAgICAgICAgTGlua1BhZ2UgPT4gJExpbmtQYWdlLAogICAgICAgIExpbmtTb3J0ID0+ICRMaW5rU29ydCwKCiAgICAgICAgU2hvd0NvbHVtbnMgPT4gXEBTaG93Q29sdW1ucywKICAgICAgICBTb3J0QnkgICAgICA9PiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTb3J0QnkgKSwKICAgICAgICBPcmRlckJ5ICAgICA9PiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRPcmRlckJ5ICksCiAgICApOwoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeReset.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZVJlc2V0OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgICAgICAgICAgICAgIHF3KFRyYW5zbGF0YWJsZSk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIENoYW5nZUlECiAgICBteSAkQ2hhbmdlSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAnQ2hhbmdlSUQnICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJENoYW5nZUlEICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05vIENoYW5nZUlEIGlzIGdpdmVuIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIklUU01DaGFuZ2U6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJENoYW5nZU9iamVjdC0+UGVybWlzc2lvbigKICAgICAgICBUeXBlICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBkYXRhCiAgICBteSAkQ2hhbmdlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgY2hhbmdlIGlzIGZvdW5kCiAgICBpZiAoICEkQ2hhbmdlICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywgJENoYW5nZUlEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgcmVzZXQgY2hhbmdlCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUmVzZXQnICkgewoKICAgICAgICAjIGdldCBzdGF0ZSBtYWNoaW5lIG9iamVjdAogICAgICAgIG15ICRTdGF0ZU1hY2hpbmVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVN0YXRlTWFjaGluZScpOwoKICAgICAgICAjIGdldCBzdGFydCBzdGF0ZSBmb3IgQ2hhbmdlcwogICAgICAgIG15ICROZXh0Q2hhbmdlU3RhdGVJRHMgPSAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZVRyYW5zaXRpb25HZXQoCiAgICAgICAgICAgIFN0YXRlSUQgPT4gMCwKICAgICAgICAgICAgQ2xhc3MgICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgKTsKICAgICAgICBteSAkQ2hhbmdlU3RhcnRTdGF0ZUlEID0gJE5leHRDaGFuZ2VTdGF0ZUlEcy0+WzBdOwoKICAgICAgICAjIGdldCBzdGFydCBzdGF0ZSBmb3IgV29ya09yZGVycwogICAgICAgIG15ICROZXh0V29ya09yZGVyU3RhdGVJRHMgPSAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZVRyYW5zaXRpb25HZXQoCiAgICAgICAgICAgIFN0YXRlSUQgPT4gMCwKICAgICAgICAgICAgQ2xhc3MgICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpTdGF0ZScsCiAgICAgICAgKTsKICAgICAgICBteSAkV29ya09yZGVyU3RhcnRTdGF0ZUlEID0gJE5leHRXb3JrT3JkZXJTdGF0ZUlEcy0+WzBdOwoKICAgICAgICAjIGdldCBhbGwgZHluYW1pYyBmaWVsZHMgZm9yIHRoZSBvYmplY3QgdHlwZSBJVFNNV29ya09yZGVyCiAgICAgICAgbXkgJER5bmFtaWNGaWVsZExpc3RXb3JrT3JkZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgICAgIE9iamVjdFR5cGUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgIyByZXNldCBXb3JrT3JkZXJzCiAgICAgICAgZm9yIG15ICRXb3JrT3JkZXJJRCAoIEB7ICRDaGFuZ2UtPntXb3JrT3JkZXJJRHN9IH0gKSB7CgogICAgICAgICAgICAjIGRlbGV0ZSBkeW5hbWljZmllbGQgdmFsdWVzIGZvciB0aGlzIHdvcmtvcmRlcgogICAgICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkTGlzdFdvcmtPcmRlcn0gKSB7CgogICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISREeW5hbWljRmllbGRDb25maWc7CiAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57Q29uZmlnfSApOwoKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+VmFsdWVEZWxldGUoCiAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyByZXNldCB3b3Jrb3JkZXIKICAgICAgICAgICAgbXkgJENvdWxkVXBkYXRlV29ya09yZGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyVXBkYXRlKAogICAgICAgICAgICAgICAgV29ya09yZGVySUQgICAgICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlSUQgICA9PiAkV29ya09yZGVyU3RhcnRTdGF0ZUlELAogICAgICAgICAgICAgICAgQWN0dWFsU3RhcnRUaW1lICAgID0+IHVuZGVmLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgICAgID0+IHVuZGVmLAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICAgICAgQnlwYXNzU3RhdGVNYWNoaW5lID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhJENvdWxkVXBkYXRlV29ya09yZGVyICkgewoKICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICdXYXMgbm90IGFibGUgdG8gcmVzZXQgV29ya09yZGVyICVzIG9mIENoYW5nZSAlcyEnLAogICAgICAgICAgICAgICAgICAgICAgICAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICAgICAgICAgICRDaGFuZ2VJRAogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBnZXQgYWxsIGR5bmFtaWMgZmllbGRzIGZvciB0aGUgb2JqZWN0IHR5cGUgSVRTTUNoYW5nZQogICAgICAgIG15ICREeW5hbWljRmllbGRMaXN0Q2hhbmdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgICAgICBPYmplY3RUeXBlID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICAgICAgVmFsaWQgICAgICA9PiAwLAogICAgICAgICk7CgogICAgICAgICMgZGVsZXRlIGR5bmFtaWNmaWVsZCB2YWx1ZXMgZm9yIHRoaXMgY2hhbmdlCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkTGlzdENoYW5nZX0gKSB7CgogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZzsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICREeW5hbWljRmllbGRDb25maWctPntDb25maWd9ICk7CgogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyktPlZhbHVlRGVsZXRlKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgcmVzZXQgQ2hhbmdlCiAgICAgICAgbXkgJENvdWxkVXBkYXRlQ2hhbmdlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlVXBkYXRlKAogICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEICAgICAgPT4gJENoYW5nZVN0YXJ0U3RhdGVJRCwKICAgICAgICAgICAgQnlwYXNzU3RhdGVNYWNoaW5lID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyB1cGRhdGUgd2FzIHN1Y2Nlc3NmdWwKICAgICAgICBpZiAoJENvdWxkVXBkYXRlQ2hhbmdlKSB7CgogICAgICAgICAgICAjIGxvYWQgbmV3IFVSTCBpbiBwYXJlbnQgd2luZG93IGFuZCBjbG9zZSBwb3B1cAogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UG9wdXBDbG9zZSgKICAgICAgICAgICAgICAgIFVSTCA9PiAiQWN0aW9uPUFnZW50SVRTTUNoYW5nZVpvb207Q2hhbmdlSUQ9JENoYW5nZUlEIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdXYXMgbm90IGFibGUgdG8gcmVzZXQgQ2hhbmdlICVzIScsICRDaGFuZ2VJRCApLAogICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCB0aGUgZGlhbG9nIHR5cGUuIEFzIGRlZmF1bHQsIHRoZSBkaWFsb2cgd2lsbCBoYXZlIDIgYnV0dG9uczogWWVzIGFuZCBObwogICAgbXkgJERpYWxvZ1R5cGUgPSAnQ29uZmlybWF0aW9uJzsKCiAgICAjIG91dHB1dCBjb250ZW50CiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNQ2hhbmdlUmVzZXQnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXskQ2hhbmdlfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGJ1aWxkIHRoZSByZXR1cm5lZCBkYXRhIHN0cnVjdHVyZQogICAgbXkgJURhdGEgPSAoCiAgICAgICAgSFRNTCAgICAgICA9PiAkT3V0cHV0LAogICAgICAgIERpYWxvZ1R5cGUgPT4gJERpYWxvZ1R5cGUsCiAgICApOwoKICAgICMgcmV0dXJuIEpTT04tU3RyaW5nIGJlY2F1c2Ugb2YgQUpBWC1Nb2RlCiAgICBteSAkT3V0cHV0SlNPTiA9ICRMYXlvdXRPYmplY3QtPkpTT05FbmNvZGUoIERhdGEgPT4gXCVEYXRhICk7CgogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICBDb250ZW50ICAgICA9PiAkT3V0cHV0SlNPTiwKICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgKTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeSchedule.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZVNjaGVkdWxlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIklUU01DaGFuZ2U6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJENoYW5nZU9iamVjdC0+UGVybWlzc2lvbigKICAgICAgICBUeXBlICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgQWN0aW9uID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZXJyb3Igc2NyZWVuCiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIScsICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259ICksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuLCB1c2VkIGZvciBiYWNrbGlua3MKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpLT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RTY3JlZW5DaGFuZ2VzJywKICAgICAgICBWYWx1ZSAgICAgPT4gJFNlbGYtPntSZXF1ZXN0ZWRVUkx9LAogICAgKTsKCiAgICAjIGdldCBwYXJhbSBvYmplY3QKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIGdldCBzb3J0aW5nIHBhcmFtZXRlcnMKICAgIG15ICRTb3J0QnkgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU29ydEJ5JyApCiAgICAgICAgfHwgJFNlbGYtPntDb25maWd9LT57J1NvcnRCeTo6RGVmYXVsdCd9CiAgICAgICAgfHwgJ1BsYW5uZWRTdGFydFRpbWUnOwoKICAgICMgZ2V0IG9yZGVyaW5nIHBhcmFtZXRlcnMKICAgIG15ICRPcmRlckJ5ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ09yZGVyQnknICkKICAgICAgICB8fCAkU2VsZi0+e0NvbmZpZ30tPnsnT3JkZXI6OkRlZmF1bHQnfQogICAgICAgIHx8ICdVcCc7CgogICAgbXkgQFNvcnRCeUFycmF5ICA9ICgkU29ydEJ5KTsKICAgIG15IEBPcmRlckJ5QXJyYXkgPSAoJE9yZGVyQnkpOwoKICAgICMgaW52ZXN0aWdhdGUgcmVmcmVzaAogICAgbXkgJFJlZnJlc2ggPSAkU2VsZi0+e1VzZXJSZWZyZXNoVGltZX0gPyA2MCAqICRTZWxmLT57VXNlclJlZnJlc2hUaW1lfSA6IHVuZGVmOwoKICAgICMgc3RhcnRpbmcgd2l0aCBwYWdlIC4uLgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlciggUmVmcmVzaCA9PiAkUmVmcmVzaCApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAkTGF5b3V0T2JqZWN0LT5QcmludCggT3V0cHV0ID0+IFwkT3V0cHV0ICk7CiAgICAkT3V0cHV0ID0gJyc7CgogICAgIyBmaW5kIG91dCB3aGljaCBjb2x1bW5zIHNob3VsZCBiZSBzaG93bgogICAgbXkgQFNob3dDb2x1bW5zOwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTaG93Q29sdW1uc30gKSB7CgogICAgICAgICMgZ2V0IGFsbCBwb3NzaWJsZSBjb2x1bW5zIGZyb20gY29uZmlnCiAgICAgICAgbXkgJVBvc3NpYmxlQ29sdW1uID0gJXsgJFNlbGYtPntDb25maWd9LT57U2hvd0NvbHVtbnN9IH07CgogICAgICAgICMgZ2V0IHRoZSBjb2x1bW4gbmFtZXMgdGhhdCBzaG91bGQgYmUgc2hvd24KICAgICAgICBDT0xVTU5OQU1FOgogICAgICAgIGZvciBteSAkTmFtZSAoIHNvcnQga2V5cyAlUG9zc2libGVDb2x1bW4gKSB7CiAgICAgICAgICAgIG5leHQgQ09MVU1OTkFNRSBpZiAhJFBvc3NpYmxlQ29sdW1ueyROYW1lfTsKICAgICAgICAgICAgcHVzaCBAU2hvd0NvbHVtbnMsICROYW1lOwogICAgICAgIH0KICAgIH0KCiAgICAjIHRvIHN0b3JlIHRoZSBmaWx0ZXJzCiAgICBteSAlRmlsdGVyczsKCiAgICAjIHNldCBvdGhlciBmaWx0ZXJzIGJhc2VkIG9uIGNoYW5nZSBzdGF0ZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPnsnRmlsdGVyOjpDaGFuZ2VTdGF0ZXMnfSApIHsKCiAgICAgICAgIyBkZWZpbmUgcG9zaXRpb24gb2YgdGhlIGZpbHRlciBpbiB0aGUgZnJvbnRlbmQKICAgICAgICBteSAkUHJpb0NvdW50ZXIgPSAxMDAwOwoKICAgICAgICAjIGdldCBhbGwgY2hhbmdlIHN0YXRlcyB0aGF0IHNob3VsZCBiZSB1c2VkIGFzIGZpbHRlcnMKICAgICAgICBDSEFOR0VTVEFURToKICAgICAgICBmb3IgbXkgJENoYW5nZVN0YXRlICggQHsgJFNlbGYtPntDb25maWd9LT57J0ZpbHRlcjo6Q2hhbmdlU3RhdGVzJ30gfSApIHsKCiAgICAgICAgICAgICMgZG8gbm90IHVzZSBlbXB0eSBjaGFuZ2Ugc3RhdGVzCiAgICAgICAgICAgIG5leHQgQ0hBTkdFU1RBVEUgaWYgISRDaGFuZ2VTdGF0ZTsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgc3RhdGUgaXMgdmFsaWQgYnkgbG9va2luZyB1cCB0aGUgc3RhdGUgaWQKICAgICAgICAgICAgbXkgJENoYW5nZVN0YXRlSUQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTdGF0ZUxvb2t1cCgKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlID0+ICRDaGFuZ2VTdGF0ZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZG8gbm90IHVzZSBpbnZhbGlkIGNoYW5nZSBzdGF0ZXMKICAgICAgICAgICAgbmV4dCBDSEFOR0VTVEFURSBpZiAhJENoYW5nZVN0YXRlSUQ7CgogICAgICAgICAgICAjIGluY3JlYXNlIHRoZSBQcmlvQ291bnRlcgogICAgICAgICAgICAkUHJpb0NvdW50ZXIrKzsKCiAgICAgICAgICAgICMgYWRkIGZpbHRlciBmb3IgdGhlIGN1cnJlbnQgY2hhbmdlIHN0YXRlCiAgICAgICAgICAgICRGaWx0ZXJzeyRDaGFuZ2VTdGF0ZX0gPSB7CiAgICAgICAgICAgICAgICBOYW1lICAgPT4gJENoYW5nZVN0YXRlLAogICAgICAgICAgICAgICAgUHJpbyAgID0+ICRQcmlvQ291bnRlciwKICAgICAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVzICAgICA9PiBbJENoYW5nZVN0YXRlXSwKICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFxAU29ydEJ5QXJyYXksCiAgICAgICAgICAgICAgICAgICAgT3JkZXJCeURpcmVjdGlvbiA9PiBcQE9yZGVyQnlBcnJheSwKICAgICAgICAgICAgICAgICAgICBMaW1pdCAgICAgICAgICAgID0+IDEwMDAsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBmaWx0ZXIgYW5kIHZpZXcgcGFyYW1zCiAgICAkU2VsZi0+e0ZpbHRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRmlsdGVyJyApIHx8ICdBbGwnOwogICAgJFNlbGYtPntWaWV3fSAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1ZpZXcnICkgICB8fCAnJzsKCiAgICAjIGlmIG9ubHkgb25lIGZpbHRlciBleGlzdHMKICAgIGlmICggc2NhbGFyIGtleXMgJUZpbHRlcnMgPT0gMSApIHsKCiAgICAgICAgIyBnZXQgdGhlIG5hbWUgb2YgdGhlIG9ubHkgZmlsdGVyCiAgICAgICAgbXkgKCRGaWx0ZXJOYW1lKSA9IGtleXMgJUZpbHRlcnM7CgogICAgICAgICMgYWN0aXZhdGUgdGhpcyBmaWx0ZXIKICAgICAgICAkU2VsZi0+e0ZpbHRlcn0gPSAkRmlsdGVyTmFtZTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGFkZCBkZWZhdWx0IGZpbHRlcgogICAgICAgICRGaWx0ZXJze0FsbH0gPSB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnQWxsJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDAsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZXMgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+eydGaWx0ZXI6OkNoYW5nZVN0YXRlcyd9LAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiBcQFNvcnRCeUFycmF5LAogICAgICAgICAgICAgICAgT3JkZXJCeURpcmVjdGlvbiA9PiBcQE9yZGVyQnlBcnJheSwKICAgICAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgPT4gMTAwMCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICB9LAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBpZiBmaWx0ZXIgaXMgdmFsaWQKICAgIGlmICggISRGaWx0ZXJzeyAkU2VsZi0+e0ZpbHRlcn0gfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0ludmFsaWQgRmlsdGVyOiAlcyEnLCAkU2VsZi0+e0ZpbHRlcn0gKSwKICAgICAgICApOwogICAgfQoKICAgICMgc2VhcmNoIGNoYW5nZXMgd2hpY2ggbWF0Y2ggdGhlIHNlbGVjdGVkIGZpbHRlcgogICAgbXkgJENoYW5nZUlEc1JlZiA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVNlYXJjaCgKICAgICAgICAleyAkRmlsdGVyc3sgJFNlbGYtPntGaWx0ZXJ9IH0tPntTZWFyY2h9IH0sCiAgICApOwoKICAgICMgZGlzcGxheSBhbGwgbmF2YmFyIGZpbHRlcnMKICAgIG15ICVOYXZCYXJGaWx0ZXI7CiAgICBmb3IgbXkgJEZpbHRlciAoIHNvcnQga2V5cyAlRmlsdGVycyApIHsKCiAgICAgICAgIyBjb3VudCB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgZm9yIGVhY2ggZmlsdGVyCiAgICAgICAgbXkgJENvdW50ID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBkaXNwbGF5IHRoZSBuYXZiYXIgZmlsdGVyCiAgICAgICAgJE5hdkJhckZpbHRlcnsgJEZpbHRlcnN7JEZpbHRlcn0tPntQcmlvfSB9ID0gewogICAgICAgICAgICBDb3VudCAgPT4gJENvdW50LAogICAgICAgICAgICBGaWx0ZXIgPT4gJEZpbHRlciwKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0gfSwKICAgICAgICB9OwogICAgfQoKICAgICMgc2hvdyBjaGFuZ2VzCiAgICBteSAkTGlua1BhZ2UgPSAnRmlsdGVyPScKICAgICAgICAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntGaWx0ZXJ9ICkKICAgICAgICAuICc7Vmlldz0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e1ZpZXd9ICkKICAgICAgICAuICc7U29ydEJ5PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTb3J0QnkgKQogICAgICAgIC4gJztPcmRlckJ5PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRPcmRlckJ5ICkKICAgICAgICAuICc7JzsKICAgIG15ICRMaW5rU29ydCA9ICdGaWx0ZXI9JwogICAgICAgIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e0ZpbHRlcn0gKQogICAgICAgIC4gJztWaWV3PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57Vmlld30gKQogICAgICAgIC4gJzsnOwogICAgbXkgJExpbmtGaWx0ZXIgPSAnU29ydEJ5PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTb3J0QnkgKQogICAgICAgIC4gJztPcmRlckJ5PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRPcmRlckJ5ICkKICAgICAgICAuICc7Vmlldz0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e1ZpZXd9ICkKICAgICAgICAuICc7JzsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+SVRTTUNoYW5nZUxpc3RTaG93KAoKICAgICAgICBDaGFuZ2VJRHMgPT4gJENoYW5nZUlEc1JlZiwKICAgICAgICBUb3RhbCAgICAgPT4gc2NhbGFyIEB7JENoYW5nZUlEc1JlZn0sCgogICAgICAgIFZpZXcgPT4gJFNlbGYtPntWaWV3fSwKCiAgICAgICAgRmlsdGVyICAgICA9PiAkU2VsZi0+e0ZpbHRlcn0sCiAgICAgICAgRmlsdGVycyAgICA9PiBcJU5hdkJhckZpbHRlciwKICAgICAgICBGaWx0ZXJMaW5rID0+ICRMaW5rRmlsdGVyLAoKICAgICAgICBUaXRsZU5hbWUgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdPdmVydmlldzogQ2hhbmdlIFNjaGVkdWxlJyksCgogICAgICAgIFRpdGxlVmFsdWUgPT4gJFNlbGYtPntGaWx0ZXJ9LAoKICAgICAgICBFbnYgICAgICA9PiAkU2VsZiwKICAgICAgICBMaW5rUGFnZSA9PiAkTGlua1BhZ2UsCiAgICAgICAgTGlua1NvcnQgPT4gJExpbmtTb3J0LAoKICAgICAgICBTaG93Q29sdW1ucyA9PiBcQFNob3dDb2x1bW5zLAogICAgICAgIFNvcnRCeSAgICAgID0+ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApLAogICAgICAgIE9yZGVyQnkgICAgID0+ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeSearch.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZVNlYXJjaDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZ2V0IGNvbmZpZyBmb3IgZnJvbnRlbmQKICAgICRTZWxmLT57Q29uZmlnfSA9ICRDb25maWdPYmplY3QtPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgZ2V0IGNvbmZpZCBkYXRhCiAgICAkU2VsZi0+e1N0YXJ0SGl0fSAgICA9IGludCggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N0YXJ0SGl0JyApIHx8IDEgKTsKICAgICRTZWxmLT57U2VhcmNoTGltaXR9ID0gJFNlbGYtPntDb25maWd9LT57U2VhcmNoTGltaXR9IHx8IDUwMDsKICAgICRTZWxmLT57U29ydEJ5fSAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRCeScgKQogICAgICAgIHx8ICRTZWxmLT57Q29uZmlnfS0+eydTb3J0Qnk6OkRlZmF1bHQnfQogICAgICAgIHx8ICdDaGFuZ2VJRCc7CiAgICAkU2VsZi0+e09yZGVyQnl9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ09yZGVyQnknICkKICAgICAgICB8fCAkU2VsZi0+e0NvbmZpZ30tPnsnT3JkZXI6OkRlZmF1bHQnfQogICAgICAgIHx8ICdEb3duJzsKICAgICRTZWxmLT57UHJvZmlsZX0gICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2ZpbGUnICkgICAgICAgIHx8ICcnOwogICAgJFNlbGYtPntTYXZlUHJvZmlsZX0gICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU2F2ZVByb2ZpbGUnICkgICAgfHwgJyc7CiAgICAkU2VsZi0+e1Rha2VMYXN0U2VhcmNofSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUYWtlTGFzdFNlYXJjaCcgKSB8fCAnJzsKICAgICRTZWxmLT57U2VsZWN0VGVtcGxhdGV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NlbGVjdFRlbXBsYXRlJyApIHx8ICcnOwogICAgJFNlbGYtPntFcmFzZVRlbXBsYXRlfSAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRXJhc2VUZW1wbGF0ZScgKSAgfHwgJyc7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGNoZWNrIHJlcXVlc3QKICAgIGlmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NlYXJjaFRlbXBsYXRlJyApICYmICRTZWxmLT57UHJvZmlsZX0gKSB7CgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICJBY3Rpb249QWdlbnRJVFNNQ2hhbmdlU2VhcmNoO1N1YmFjdGlvbj1TZWFyY2g7VGFrZUxhc3RTZWFyY2g9MTtTYXZlUHJvZmlsZT0xO1Byb2ZpbGU9JFNlbGYtPntQcm9maWxlfSIKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgb2JqZWN0CiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGhpcyBzY3JlZW4gKGNoYW5nZSBkeW5hbWljIGZpZWxkcykKICAgICRTZWxmLT57RHluYW1pY0ZpZWxkQ2hhbmdlfSA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfSB8fCB7fSwKICAgICk7CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHNjcmVlbiAod29ya29yZGVyIGR5bmFtaWMgZmllbGRzKQogICAgJFNlbGYtPntEeW5hbWljRmllbGRXb3JrT3JkZXJ9ID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9IHx8IHt9LAogICAgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CiAgICBteSAkU2VhcmNoUHJvZmlsZU9iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTZWFyY2hQcm9maWxlJyk7CgogICAgIyBnZXQgc2luZ2xlIHBhcmFtcwogICAgbXkgJUdldFBhcmFtOwoKICAgICMgbG9hZCBwYXJhbWV0ZXJzIGZyb20gc2VhcmNoIHByb2ZpbGUsCiAgICAjIHRoaXMgaGFwcGVucyB3aGVuIHRoZSBuZXh0IHJlc3VsdCBwYWdlIHNob3VsZCBiZSBzaG93biwgb3Igd2hlbiB0aGUgcmVzdWx0cyBhcmUgcmVvcmRlcmVkCiAgICBpZiAoICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdMb2FkUHJvZmlsZScgJiYgJFNlbGYtPntQcm9maWxlfSApIHx8ICRTZWxmLT57VGFrZUxhc3RTZWFyY2h9ICkgewogICAgICAgICVHZXRQYXJhbSA9ICRTZWFyY2hQcm9maWxlT2JqZWN0LT5TZWFyY2hQcm9maWxlR2V0KAogICAgICAgICAgICBCYXNlICAgICAgPT4gJ0lUU01DaGFuZ2VTZWFyY2gnLAogICAgICAgICAgICBOYW1lICAgICAgPT4gJFNlbGYtPntQcm9maWxlfSwKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRTZWxmLT57VXNlckxvZ2lufSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgZ2V0IHNjYWxhciBzZWFyY2ggcGFyYW1zCiAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKAogICAgICAgICAgICBxdygKICAgICAgICAgICAgQ2hhbmdlTnVtYmVyIENoYW5nZVRpdGxlIERlc2NyaXB0aW9uIEp1c3RpZmljYXRpb24KICAgICAgICAgICAgQ0FCQ3VzdG9tZXIKICAgICAgICAgICAgQ0FCQWdlbnQKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgV29ya09yZGVySW5zdHJ1Y3Rpb24gV29ya09yZGVyUmVwb3J0IFJlc3VsdEZvcm0KICAgICAgICAgICAgUmVxdWVzdGVkVGltZVNlYXJjaFR5cGUgUGxhbm5lZFN0YXJ0VGltZVNlYXJjaFR5cGUgUGxhbm5lZEVuZFRpbWVTZWFyY2hUeXBlCiAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZVNlYXJjaFR5cGUgQWN0dWFsRW5kVGltZVNlYXJjaFR5cGUgQ3JlYXRlVGltZVNlYXJjaFR5cGUKICAgICAgICAgICAgQ2hhbmdlVGltZVNlYXJjaFR5cGUKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CgogICAgICAgICAgICAjIHJlbW92ZSB3aGl0ZXNwYWNlIG9uIHRoZSBzdGFydCBhbmQgZW5kCiAgICAgICAgICAgIGlmICggJEdldFBhcmFteyRQYXJhbU5hbWV9ICkgewogICAgICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID1+IHN7IFxBIFxzKyB9e314bXM7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPX4gc3sgXHMrIFx6IH17fXhtczsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBnZXQgYXJyYXkgc2VhcmNoIHBhcmFtcwogICAgICAgIGZvciBteSAkU2VhcmNoUGFyYW0gKAogICAgICAgICAgICBxdyggQ2hhbmdlU3RhdGVJRHMKICAgICAgICAgICAgQ2hhbmdlTWFuYWdlcklEcyBDaGFuZ2VCdWlsZGVySURzCiAgICAgICAgICAgIFByaW9yaXR5SURzIENhdGVnb3J5SURzIEltcGFjdElEcwogICAgICAgICAgICBDcmVhdGVCeQogICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEcyBXb3JrT3JkZXJUeXBlSURzIFdvcmtPcmRlckFnZW50SURzCiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgQEFycmF5ID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJFNlYXJjaFBhcmFtICk7CiAgICAgICAgICAgIGlmIChAQXJyYXkpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskU2VhcmNoUGFyYW19ID0gXEBBcnJheTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBnZXQgdGltZSByZWxhdGVkIHBhcmFtcwogICAgICAgIGZvciBteSAkVGltZVR5cGUgKAogICAgICAgICAgICBxdyggUmVxdWVzdGVkIFBsYW5uZWRTdGFydCBQbGFubmVkRW5kIEFjdHVhbFN0YXJ0IEFjdHVhbEVuZCBDcmVhdGUgQ2hhbmdlICkKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgICMgZ2V0IHRpbWUgcGFyYW1zIGZpZWxkcwogICAgICAgICAgICBteSBAQXJyYXkgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAkVGltZVR5cGUgLiAnVGltZVNlYXJjaFR5cGUnICk7CiAgICAgICAgICAgIGlmIChAQXJyYXkpIHsKICAgICAgICAgICAgICAgIGZvciBteSAkSXRlbSAoQEFycmF5KSB7CiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAkSXRlbSAuICdGaWVsZCcgfSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IHRpbWUgcGFyYW1zIGRldGFpbHMKICAgICAgICAgICAgZm9yIG15ICRQYXJ0ICgKICAgICAgICAgICAgICAgIHF3KAogICAgICAgICAgICAgICAgUG9pbnRGb3JtYXQgUG9pbnQgUG9pbnRTdGFydAogICAgICAgICAgICAgICAgU3RhcnQgU3RhcnREYXkgU3RhcnRNb250aCBTdGFydFllYXIKICAgICAgICAgICAgICAgIFN0b3AgIFN0b3BEYXkgIFN0b3BNb250aCAgU3RvcFllYXIKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbXkgJFBhcmFtS2V5ID0gIiR7VGltZVR5cGV9VGltZSR7UGFydH0iOwogICAgICAgICAgICAgICAgbXkgJFBhcmFtVmFsID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtS2V5ICk7CgogICAgICAgICAgICAgICAgIyByZW1vdmUgd2hpdGUgc3BhY2Ugb24gdGhlIHN0YXJ0IGFuZCBlbmQKICAgICAgICAgICAgICAgIGlmICgkUGFyYW1WYWwpIHsKICAgICAgICAgICAgICAgICAgICAkUGFyYW1WYWwgPX4gc3sgXEEgXHMrIH17fXhtczsKICAgICAgICAgICAgICAgICAgICAkUGFyYW1WYWwgPX4gc3sgXHMrIFx6IH17fXhtczsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHN0b3JlIGluICVHZXRQYXJhbQogICAgICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbUtleX0gPSAkUGFyYW1WYWw7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZ2V0IER5bmFtaWMgZmllbGRzIGZyb20gcGFyYW0gb2JqZWN0CiAgICAgICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKAogICAgICAgICAgICBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZENoYW5nZX0gfSwKICAgICAgICAgICAgQHsgJFNlbGYtPntEeW5hbWljRmllbGRXb3JrT3JkZXJ9IH0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgIyBnZXQgc2VhcmNoIGZpZWxkIHByZWZlcmVuY2VzCiAgICAgICAgICAgIG15ICRTZWFyY2hGaWVsZFByZWZlcmVuY2VzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlNlYXJjaEZpZWxkUHJlZmVyZW5jZXMoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0FycmF5UmVmV2l0aERhdGEoJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMpOwoKICAgICAgICAgICAgUFJFRkVSRU5DRToKICAgICAgICAgICAgZm9yIG15ICRQcmVmZXJlbmNlICggQHskU2VhcmNoRmllbGRQcmVmZXJlbmNlc30gKSB7CgogICAgICAgICAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gdGhlIHdlYiByZXF1ZXN0CiAgICAgICAgICAgICAgICBteSAkRHluYW1pY0ZpZWxkVmFsdWUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICAgID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgUGFyYW1PYmplY3QgICAgICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuUHJvZmlsZVN0cnVjdHVyZSA9PiAxLAogICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgID0+ICRQcmVmZXJlbmNlLT57VHlwZX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgc2V0IHRoZSBjb21wbGV0ZSB2YWx1ZSBzdHJ1Y3R1cmUgaW4gR2V0UGFyYW0gdG8gc3RvcmUgaXQgbGF0ZXIgaW4gdGhlIHNlYXJjaCBwcm9maWxlCiAgICAgICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRWYWx1ZSkgKSB7CiAgICAgICAgICAgICAgICAgICAgJUdldFBhcmFtID0gKCAlR2V0UGFyYW0sICV7JER5bmFtaWNGaWVsZFZhbHVlfSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IHJlc3VsdCBmb3JtIGVudgogICAgaWYgKCAhJEdldFBhcmFte1Jlc3VsdEZvcm19ICkgewogICAgICAgICRHZXRQYXJhbXtSZXN1bHRGb3JtfSA9ICcnOwogICAgfQoKICAgICMgc2hvdyByZXN1bHQgc2l0ZSBvciBwZXJmb3JtIG90aGVyIGFjdGlvbnMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdTZWFyY2gnICYmICEkU2VsZi0+e0VyYXNlVGVtcGxhdGV9ICkgewoKICAgICAgICAjIGZpbGwgdXAgcHJvZmlsZSBuYW1lIChlLmcuIHdpdGggbGFzdC1zZWFyY2gpCiAgICAgICAgaWYgKCAhJFNlbGYtPntQcm9maWxlfSB8fCAhJFNlbGYtPntTYXZlUHJvZmlsZX0gKSB7CiAgICAgICAgICAgICRTZWxmLT57UHJvZmlsZX0gPSAnbGFzdC1zZWFyY2gnOwogICAgICAgIH0KCiAgICAgICAgIyBzYXZlIHNlYXJjaCBwcm9maWxlICh1bmRlciBsYXN0LXNlYXJjaCBvciByZWFsIHByb2ZpbGUgbmFtZSkKICAgICAgICAkU2VsZi0+e1NhdmVQcm9maWxlfSA9IDE7CgogICAgICAgICMgcmVtZW1iZXIgbGFzdCBzZWFyY2ggdmFsdWVzCiAgICAgICAgaWYgKCAkU2VsZi0+e1NhdmVQcm9maWxlfSAmJiAkU2VsZi0+e1Byb2ZpbGV9ICkgewoKICAgICAgICAgICAgIyByZW1vdmUgb2xkIHByb2ZpbGUgc3R1ZmYKICAgICAgICAgICAgJFNlYXJjaFByb2ZpbGVPYmplY3QtPlNlYXJjaFByb2ZpbGVEZWxldGUoCiAgICAgICAgICAgICAgICBCYXNlICAgICAgPT4gJ0lUU01DaGFuZ2VTZWFyY2gnLAogICAgICAgICAgICAgICAgTmFtZSAgICAgID0+ICRTZWxmLT57UHJvZmlsZX0sCiAgICAgICAgICAgICAgICBVc2VyTG9naW4gPT4gJFNlbGYtPntVc2VyTG9naW59LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBpbnNlcnQgbmV3IHByb2ZpbGUgcGFyYW1zCiAgICAgICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVHZXRQYXJhbSApIHsKICAgICAgICAgICAgICAgIGlmICggJEdldFBhcmFteyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICRTZWFyY2hQcm9maWxlT2JqZWN0LT5TZWFyY2hQcm9maWxlQWRkKAogICAgICAgICAgICAgICAgICAgICAgICBCYXNlICAgICAgPT4gJ0lUU01DaGFuZ2VTZWFyY2gnLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gJFNlbGYtPntQcm9maWxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgICAgID0+ICRLZXksCiAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICA9PiAkR2V0UGFyYW17JEtleX0sCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkU2VsZi0+e1VzZXJMb2dpbn0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBwcmVwYXJlIENBQkFnZW50cyBhbmQgQ0FCQ3VzdG9tZXJzCiAgICAgICAgaWYgKCAkR2V0UGFyYW17Q0FCQWdlbnR9ICkgewogICAgICAgICAgICAkR2V0UGFyYW17Q0FCQWdlbnRzfSA9IFsgJEdldFBhcmFte0NBQkFnZW50fSBdOwogICAgICAgIH0KICAgICAgICBpZiAoICRHZXRQYXJhbXtDQUJDdXN0b21lcn0gKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXtDQUJDdXN0b21lcnN9ID0gWyAkR2V0UGFyYW17Q0FCQ3VzdG9tZXJ9IF07CiAgICAgICAgfQoKICAgICAgICAjIGdldCBzZXNzaW9uIG9iamVjdAogICAgICAgIG15ICRTZXNzaW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyk7CgogICAgICAgICMgc3RvcmUgbGFzdCBxdWV1ZSBzY3JlZW4KICAgICAgICBteSAkVVJMID0gIkFjdGlvbj1BZ2VudElUU01DaGFuZ2VTZWFyY2g7U3ViYWN0aW9uPVNlYXJjaDtQcm9maWxlPSRTZWxmLT57UHJvZmlsZX07U29ydEJ5PSRTZWxmLT57U29ydEJ5fSIKICAgICAgICAgICAgLiAiO09yZGVyQnk9JFNlbGYtPntPcmRlckJ5fTtUYWtlTGFzdFNlYXJjaD0xO1N0YXJ0SGl0PSRTZWxmLT57U3RhcnRIaXR9IjsKICAgICAgICAkU2Vzc2lvbk9iamVjdC0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RTY3JlZW5DaGFuZ2VzJywKICAgICAgICAgICAgVmFsdWUgICAgID0+ICRVUkwsCiAgICAgICAgKTsKICAgICAgICAkU2Vzc2lvbk9iamVjdC0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RDaGFuZ2VWaWV3JywKICAgICAgICAgICAgVmFsdWUgICAgID0+ICRVUkwsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgYW5kIGNoZWNrIHRoZSB0aW1lIHNlYXJjaCBwYXJhbWV0ZXJzCiAgICAgICAgVElNRVRZUEU6CiAgICAgICAgZm9yIG15ICRUaW1lVHlwZSAoCiAgICAgICAgICAgIHF3KCBSZXF1ZXN0ZWQgUGxhbm5lZFN0YXJ0IFBsYW5uZWRFbmQgQWN0dWFsU3RhcnQgQWN0dWFsRW5kIENyZWF0ZSBDaGFuZ2UgKQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBleHRyYWN0IHRoZSB0aW1lIHNlYXJjaCBwYXJhbWV0ZXJzIGZvciAkVGltZVR5cGUgaW50byAlVGltZVNlbGVjdGlvblBhcmFtCiAgICAgICAgICAgIG15ICVUaW1lU2VsZWN0aW9uUGFyYW07CiAgICAgICAgICAgIGZvciBteSAkUGFydCAoCiAgICAgICAgICAgICAgICBxdygKICAgICAgICAgICAgICAgIFNlYXJjaFR5cGUKICAgICAgICAgICAgICAgIFBvaW50Rm9ybWF0IFBvaW50IFBvaW50U3RhcnQKICAgICAgICAgICAgICAgIFN0YXJ0IFN0YXJ0RGF5IFN0YXJ0TW9udGggU3RhcnRZZWFyCiAgICAgICAgICAgICAgICBTdG9wICBTdG9wRGF5ICBTdG9wTW9udGggIFN0b3BZZWFyCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRUaW1lU2VsZWN0aW9uUGFyYW17JFBhcnR9ID0gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZScgLiAkUGFydCB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG5vdGhpbmcgdG8gZG8sIHdoZW4gbm8gdGltZSBzZWFyY2ggdHlwZSBoYXMgYmVlbiBzZWxlY3RlZAogICAgICAgICAgICBuZXh0IFRJTUVUWVBFIGlmICEkVGltZVNlbGVjdGlvblBhcmFte1NlYXJjaFR5cGV9OwoKICAgICAgICAgICAgaWYgKCAkVGltZVNlbGVjdGlvblBhcmFte1NlYXJjaFR5cGV9IGVxICdUaW1lU2xvdCcgKSB7CgogICAgICAgICAgICAgICAgbXkgJVN5c3RlbVRpbWU7ICAgICMgdXNlZCBmb3IgY2hlY2tpbmcgdGhlIG9yZGVyaW5nIG9mIHRoZSB0d28gdGltZXMKCiAgICAgICAgICAgICAgICAjIHRoZSBlYXJsaWVyIGxpbWl0CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFRpbWVTZWxlY3Rpb25QYXJhbXtTdGFydERheX0KICAgICAgICAgICAgICAgICAgICAmJiAkVGltZVNlbGVjdGlvblBhcmFte1N0YXJ0TW9udGh9CiAgICAgICAgICAgICAgICAgICAgJiYgJFRpbWVTZWxlY3Rpb25QYXJhbXtTdGFydFllYXJ9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICAjIGZvcm1hdCBhcyB0aW1lc3RhbXAKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lTmV3ZXJEYXRlJyB9ID0gc3ByaW50ZgogICAgICAgICAgICAgICAgICAgICAgICAnJTA0ZC0lMDJkLSUwMmQgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgICAgICAgICAkVGltZVNlbGVjdGlvblBhcmFte1N0YXJ0WWVhcn0sCiAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lU2VsZWN0aW9uUGFyYW17U3RhcnRNb250aH0sCiAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lU2VsZWN0aW9uUGFyYW17U3RhcnREYXl9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgdGhlIGxhdGVyIGxpbWl0CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFRpbWVTZWxlY3Rpb25QYXJhbXtTdG9wRGF5fQogICAgICAgICAgICAgICAgICAgICYmICRUaW1lU2VsZWN0aW9uUGFyYW17U3RvcE1vbnRofQogICAgICAgICAgICAgICAgICAgICYmICRUaW1lU2VsZWN0aW9uUGFyYW17U3RvcFllYXJ9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICAjIGZvcm1hdCBhcyB0aW1lc3RhbXAKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lT2xkZXJEYXRlJyB9ID0gc3ByaW50ZgogICAgICAgICAgICAgICAgICAgICAgICAnJTA0ZC0lMDJkLSUwMmQgMjM6NTk6NTknLAogICAgICAgICAgICAgICAgICAgICAgICAkVGltZVNlbGVjdGlvblBhcmFte1N0b3BZZWFyfSwKICAgICAgICAgICAgICAgICAgICAgICAgJFRpbWVTZWxlY3Rpb25QYXJhbXtTdG9wTW9udGh9LAogICAgICAgICAgICAgICAgICAgICAgICAkVGltZVNlbGVjdGlvblBhcmFte1N0b3BEYXl9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJFRpbWVTZWxlY3Rpb25QYXJhbXtTZWFyY2hUeXBlfSBlcSAnVGltZVBvaW50JyApIHsKCiAgICAgICAgICAgICAgICAjIHF1ZXJpZXMgcmVsYXRpdmUgdG8gbm93CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFRpbWVTZWxlY3Rpb25QYXJhbXtQb2ludH0KICAgICAgICAgICAgICAgICAgICAmJiAkVGltZVNlbGVjdGlvblBhcmFte1BvaW50U3RhcnR9CiAgICAgICAgICAgICAgICAgICAgJiYgJFRpbWVTZWxlY3Rpb25QYXJhbXtQb2ludEZvcm1hdH0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbXkgJEN1clN5c0RUT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgICAgICAgICAgICAgbXkgJFNlYXJjaERUT2JqZWN0ID0gJEN1clN5c0RUT2JqZWN0LT5DbG9uZSgpOwoKICAgICAgICAgICAgICAgICAgICBteSAkVGltZVVuaXQgID0gdWNmaXJzdCAkVGltZVNlbGVjdGlvblBhcmFte1BvaW50Rm9ybWF0fSAuICdzJzsKICAgICAgICAgICAgICAgICAgICBteSAkVGltZVZhbHVlID0gJFRpbWVTZWxlY3Rpb25QYXJhbXtQb2ludH07CgogICAgICAgICAgICAgICAgICAgIGlmICggJFRpbWVVbml0IGVxICdXZWVrcycgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lVW5pdCAgPSAnRGF5cyc7CiAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lVmFsdWUgPSAkVGltZVZhbHVlICogNzsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICggJFRpbWVTZWxlY3Rpb25QYXJhbXtQb2ludFN0YXJ0fSBlcSAnQmVmb3JlJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFNlYXJjaERUT2JqZWN0LT5BZGQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGltZVVuaXQgPT4gJFRpbWVWYWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVOZXdlckRhdGUnIH0gPSAkQ3VyU3lzRFRPYmplY3QtPlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVPbGRlckRhdGUnIH0gPSAkU2VhcmNoRFRPYmplY3QtPlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkU2VhcmNoRFRPYmplY3QtPlN1YnRyYWN0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFRpbWVVbml0ID0+ICRUaW1lVmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lTmV3ZXJEYXRlJyB9ID0gJFNlYXJjaERUT2JqZWN0LT5Ub1N0cmluZygpOwogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lT2xkZXJEYXRlJyB9ID0gJEN1clN5c0RUT2JqZWN0LT5Ub1N0cmluZygpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIHVua25vd24gc2VhcmNoIHR5cGVzIGFyZSBzaW1wbHkgaWdub3JlZAogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNlYXJjaCBmb3Igc3Vic3RyaW5ncyBieSBkZWZhdWx0CiAgICAgICAgZm9yIG15ICRGaWVsZCAoCiAgICAgICAgICAgIHF3KENoYW5nZVRpdGxlIFdvcmtPcmRlclRpdGxlIERlc2NyaXB0aW9uIEp1c3RpZmljYXRpb24KICAgICAgICAgICAgV29ya09yZGVySW5zdHJ1Y3Rpb24gV29ya09yZGVyUmVwb3J0CiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKCBkZWZpbmVkKCAkR2V0UGFyYW17JEZpZWxkfSApICYmICRHZXRQYXJhbXskRmllbGR9IG5lICcnICkgewogICAgICAgICAgICAgICAgJEdldFBhcmFteyRGaWVsZH0gPSAiKiRHZXRQYXJhbXskRmllbGR9KiI7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZHluYW1pYyBmaWVsZHMgc2VhcmNoIHBhcmFtZXRlcnMgZm9yIHRpY2tldCBzZWFyY2gKICAgICAgICBteSAlRHluYW1pY0ZpZWxkU2VhcmNoUGFyYW1ldGVyczsKCiAgICAgICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKAogICAgICAgICAgICBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZENoYW5nZX0gfSwKICAgICAgICAgICAgQHsgJFNlbGYtPntEeW5hbWljRmllbGRXb3JrT3JkZXJ9IH0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgIyBnZXQgc2VhcmNoIGZpZWxkIHByZWZlcmVuY2VzCiAgICAgICAgICAgIG15ICRTZWFyY2hGaWVsZFByZWZlcmVuY2VzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlNlYXJjaEZpZWxkUHJlZmVyZW5jZXMoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0FycmF5UmVmV2l0aERhdGEoJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMpOwoKICAgICAgICAgICAgUFJFRkVSRU5DRToKICAgICAgICAgICAgZm9yIG15ICRQcmVmZXJlbmNlICggQHskU2VhcmNoRmllbGRQcmVmZXJlbmNlc30gKSB7CgogICAgICAgICAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gdGhlIHByb2ZpbGUKICAgICAgICAgICAgICAgIG15ICRTZWFyY2hQYXJhbWV0ZXIgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQYXJhbWV0ZXJCdWlsZCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBQcm9maWxlICAgICAgICAgICAgPT4gXCVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgPT4gJFByZWZlcmVuY2UtPntUeXBlfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBzZXQgc2VhcmNoIHBhcmFtZXRlcgogICAgICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRTZWFyY2hQYXJhbWV0ZXIgKSB7CiAgICAgICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZFNlYXJjaFBhcmFtZXRlcnN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9CiAgICAgICAgICAgICAgICAgICAgICAgID0gJFNlYXJjaFBhcmFtZXRlci0+e1BhcmFtZXRlcn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZ2V0IGNoYW5nZSBvYmplY3QKICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAgICAgIyBwZXJmb3JtIGNoYW5nZSBzZWFyY2gKICAgICAgICBteSAkVmlld2FibGVDaGFuZ2VJRHMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgICAgIFJlc3VsdCAgICAgICAgICAgPT4gJ0FSUkFZJywKICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiBbICRTZWxmLT57U29ydEJ5fSBdLAogICAgICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFsgJFNlbGYtPntPcmRlckJ5fSBdLAogICAgICAgICAgICBMaW1pdCAgICAgICAgICAgID0+ICRTZWxmLT57U2VhcmNoTGltaXR9LAogICAgICAgICAgICBNaXJyb3JEQiAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVEeW5hbWljRmllbGRTZWFyY2hQYXJhbWV0ZXJzLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHVzZXIgb2JqZWN0CiAgICAgICAgbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICAgICAjIENTViBvdXRwdXQKICAgICAgICBpZiAoCiAgICAgICAgICAgICRHZXRQYXJhbXtSZXN1bHRGb3JtfSBlcSAnQ1NWJwogICAgICAgICAgICB8fAogICAgICAgICAgICAkR2V0UGFyYW17UmVzdWx0Rm9ybX0gZXEgJ0V4Y2VsJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSBAQ1NWSGVhZDsKICAgICAgICAgICAgbXkgQENTVkRhdGE7CgogICAgICAgICAgICAjIGdldCBhbGwgY2hhbmdlIGR5bmFtaWMgZmllbGRzIHRoYXQgYXJlIGNvbmZpZ3VyZWQgZm9yIHRoZSBzZWFyY2ggY3N2IG91dHB1dAogICAgICAgICAgICBteSAlRmllbGRGaWx0ZXI7CiAgICAgICAgICAgIEZJRUxEOgogICAgICAgICAgICBmb3IgbXkgJEZpZWxkICggQHsgJFNlbGYtPntDb25maWd9LT57U2VhcmNoQ1NWRGF0YX0gfSApIHsKICAgICAgICAgICAgICAgIGlmICggJEZpZWxkID1+IG17IFxBIER5bmFtaWNGaWVsZF8gKCBbYS16QS1aXGRdKyApIFx6IH14bXMgKSB7CiAgICAgICAgICAgICAgICAgICAgJEZpZWxkRmlsdGVyeyQxfSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IGFsbCBkeW5hbWljIGZpZWxkcyBmb3IgSVRTTUNoYW5nZSB3aXRoIHRoZSBzZWxlY3RlZCBmaWVsZCBmaWx0ZXIKICAgICAgICAgICAgbXkgJER5bmFtaWNGaWVsZHNJVFNNQ2hhbmdlID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICAgICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBPYmplY3RUeXBlICA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgICAgICAgICBGaWVsZEZpbHRlciA9PiBcJUZpZWxkRmlsdGVyLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgIGZvciBteSAkQ2hhbmdlSUQgKCBAeyRWaWV3YWJsZUNoYW5nZUlEc30gKSB7CgogICAgICAgICAgICAgICAgIyB0byBzdG9yZSBkYXRhIG9mIHN1Yi1lbGVtZW50cwogICAgICAgICAgICAgICAgbXkgJVN1YkVsZW1lbnREYXRhOwoKICAgICAgICAgICAgICAgICMgZ2V0IGNoYW5nZSBkYXRhCiAgICAgICAgICAgICAgICBteSAkQ2hhbmdlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRDaGFuZ2U7CgogICAgICAgICAgICAgICAgIyB0byBzdG9yZSBhbGwgZGF0YQogICAgICAgICAgICAgICAgbXkgJUluZm8gPSAleyRDaGFuZ2V9OwoKICAgICAgICAgICAgICAgICMgZ2V0IHVzZXIgZGF0YSBmb3IgbmVlZGVkIHVzZXIgdHlwZXMKICAgICAgICAgICAgICAgIFVTRVJUWVBFOgogICAgICAgICAgICAgICAgZm9yIG15ICRVc2VyVHlwZSAocXcoQ2hhbmdlQnVpbGRlciBDaGFuZ2VNYW5hZ2VyIFdvcmtPcmRlckFnZW50KSkgewoKICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIFVzZXJUeXBlIGF0dHJpYnV0ZSBleGlzdHMgZWl0aGVyIGluIGNoYW5nZSBvciB3b3Jrb3JkZXIKICAgICAgICAgICAgICAgICAgICBpZiAoICEkQ2hhbmdlLT57ICRVc2VyVHlwZSAuICdJRCcgfSAmJiAhJEluZm97ICRVc2VyVHlwZSAuICdJRCcgfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBVU0VSVFlQRTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICMgZ2V0IHVzZXIgZGF0YQogICAgICAgICAgICAgICAgICAgIG15ICVVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJENoYW5nZS0+eyAkVXNlclR5cGUgLiAnSUQnIH0gfHwgJEluZm97ICRVc2VyVHlwZSAuICdJRCcgfSwKICAgICAgICAgICAgICAgICAgICAgICAgQ2FjaGVkID0+IDEsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBzZXQgdXNlciBmdWxsIG5hbWUKICAgICAgICAgICAgICAgICAgICAkSW5mb3skVXNlclR5cGV9ID0gJFVzZXJ7VXNlckZ1bGxuYW1lfTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHRvIHN0b3JlIHRoZSBsaW5rZWQgc2VydmljZSBkYXRhCiAgICAgICAgICAgICAgICBteSAkTGlua0xpc3RXaXRoRGF0YSA9IHt9OwoKICAgICAgICAgICAgICAgIG15IEBXb3JrT3JkZXJJRHM7CgogICAgICAgICAgICAgICAgIyBzdG9yZSB0aGUgY29tYmluZWQgbGlua2VkIHNlcnZpY2VzIGRhdGEgZnJvbSBhbGwgd29ya29yZGVycyBvZiB0aGlzIGNoYW5nZQogICAgICAgICAgICAgICAgQFdvcmtPcmRlcklEcyA9IEB7ICRDaGFuZ2UtPntXb3JrT3JkZXJJRHN9IH07CgogICAgICAgICAgICAgICAgIyBzdG9yZSB0aGUgY29tYmluZWQgbGlua2VkIHNlcnZpY2VzIGRhdGEKICAgICAgICAgICAgICAgIGZvciBteSAkV29ya09yZGVySUQgKEBXb3JrT3JkZXJJRHMpIHsKCiAgICAgICAgICAgICAgICAgICAgIyBnZXQgbGlua2VkIG9iamVjdHMgb2YgdGhpcyB3b3Jrb3JkZXIKICAgICAgICAgICAgICAgICAgICBteSAkTGlua0xpc3RXaXRoRGF0YVdvcmtPcmRlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0JyktPkxpbmtMaXN0V2l0aERhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgICA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICAgICAgICAgIFN0YXRlICA9PiAnVmFsaWQnLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIE9CSkVDVDoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJE9iamVjdCAoIHNvcnQga2V5cyAleyRMaW5rTGlzdFdpdGhEYXRhV29ya09yZGVyfSApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgb25seSBzaG93IGxpbmtlZCBzZXJ2aWNlcyBvZiB3b3Jrb3JkZXIKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBPQkpFQ1QgaWYgJE9iamVjdCBuZSAnU2VydmljZSc7CgogICAgICAgICAgICAgICAgICAgICAgICBMSU5LVFlQRToKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRMaW5rVHlwZSAoIHNvcnQga2V5cyAleyAkTGlua0xpc3RXaXRoRGF0YVdvcmtPcmRlci0+eyRPYmplY3R9IH0gKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRElSRUNUSU9OOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG15ICREaXJlY3Rpb24gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQga2V5cyAleyAkTGlua0xpc3RXaXRoRGF0YVdvcmtPcmRlci0+eyRPYmplY3R9LT57JExpbmtUeXBlfSB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJElEICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydCBrZXlzICV7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTGlua0xpc3RXaXRoRGF0YVdvcmtPcmRlci0+eyRPYmplY3R9LT57JExpbmtUeXBlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+eyREaXJlY3Rpb259CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgY29tYmluZSB0aGUgbGlua2VkIG9iamVjdCBkYXRhIGZyb20gYWxsIHdvcmtvcmRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJExpbmtMaXN0V2l0aERhdGEtPnskT2JqZWN0fS0+eyRMaW5rVHlwZX0tPnskRGlyZWN0aW9ufS0+eyRJRH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJExpbmtMaXN0V2l0aERhdGFXb3JrT3JkZXItPnskT2JqZWN0fS0+eyRMaW5rVHlwZX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+eyREaXJlY3Rpb259LT57JElEfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBnZXQgdW5pcXVlIHNlcnZpY2UgaWRzCiAgICAgICAgICAgICAgICBteSAlVW5pcXVlU2VydmljZUlEczsKICAgICAgICAgICAgICAgIG15ICRTZXJ2aWNlc1JlZiA9ICRMaW5rTGlzdFdpdGhEYXRhLT57U2VydmljZX0gfHwge307CiAgICAgICAgICAgICAgICBmb3IgbXkgJExpbmtUeXBlICggc29ydCBrZXlzICV7JFNlcnZpY2VzUmVmfSApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBleHRyYWN0IGxpbmsgdHlwZSBMaXN0CiAgICAgICAgICAgICAgICAgICAgbXkgJExpbmtUeXBlTGlzdCA9ICRTZXJ2aWNlc1JlZi0+eyRMaW5rVHlwZX07CgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkRGlyZWN0aW9uICggc29ydCBrZXlzICV7JExpbmtUeXBlTGlzdH0gKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGV4dHJhY3QgZGlyZWN0aW9uIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJERpcmVjdGlvbkxpc3QgPSAkU2VydmljZXNSZWYtPnskTGlua1R5cGV9LT57JERpcmVjdGlvbn07CgogICAgICAgICAgICAgICAgICAgICAgICAjIGNvbGxlY3QgdW5pcXVlIHNlcnZpY2UgaWRzCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBteSAkU2VydmljZUlEICggc29ydCBrZXlzICV7JERpcmVjdGlvbkxpc3R9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFVuaXF1ZVNlcnZpY2VJRHN7JFNlcnZpY2VJRH0rKzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGdldCB0aGUgZGF0YSBmb3IgZWFjaCBzZXJ2aWNlCiAgICAgICAgICAgICAgICBteSBAU2VydmljZXNEYXRhOwogICAgICAgICAgICAgICAgU0VSVklDRUlEOgogICAgICAgICAgICAgICAgZm9yIG15ICRTZXJ2aWNlSUQgKCBzb3J0IGtleXMgJVVuaXF1ZVNlcnZpY2VJRHMgKSB7CgogICAgICAgICAgICAgICAgICAgICMgZ2V0IHNlcnZpY2UgZGF0YQogICAgICAgICAgICAgICAgICAgIG15ICVTZXJ2aWNlRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTZXJ2aWNlJyktPlNlcnZpY2VHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZpY2VJRCA9PiAkU2VydmljZUlELAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgc3RvcmUgc2VydmljZSBkYXRhCiAgICAgICAgICAgICAgICAgICAgcHVzaCBAU2VydmljZXNEYXRhLCBcJVNlcnZpY2VEYXRhOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc29ydCBzZXJ2aWNlcyBkYXRhIGJ5IHNlcnZpY2UgbmFtZQogICAgICAgICAgICAgICAgQFNlcnZpY2VzRGF0YSA9IHNvcnQgeyAkYS0+e05hbWV9IGNtcCAkYi0+e05hbWV9IH0gQFNlcnZpY2VzRGF0YTsKCiAgICAgICAgICAgICAgICAjIHN0b3JlIHNlcnZpY2VzIGRhdGEKICAgICAgICAgICAgICAgIGlmICggc2NhbGFyIEBTZXJ2aWNlc0RhdGEgKSB7CiAgICAgICAgICAgICAgICAgICAgU0VSVklDRToKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJFNlcnZpY2UgKEBTZXJ2aWNlc0RhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFNlcnZpY2VOYW1lID0gJFNlcnZpY2UtPntOYW1lU2hvcnR9OwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRJbmZve1NlcnZpY2VzfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRJbmZve1NlcnZpY2VzfSAuPSAnICcgLiAkU2VydmljZU5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0IFNFUlZJQ0U7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJEluZm97U2VydmljZXN9ID0gJFNlcnZpY2VOYW1lOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGNzdiBxdW90ZQogICAgICAgICAgICAgICAgaWYgKCAhQENTVkhlYWQgKSB7CiAgICAgICAgICAgICAgICAgICAgQENTVkhlYWQgPSBAeyAkU2VsZi0+e0NvbmZpZ30tPntTZWFyY2hDU1ZEYXRhfSB9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG15IEBEYXRhOwogICAgICAgICAgICAgICAgZm9yIG15ICRIZWFkZXIgKEBDU1ZIZWFkKSB7CgogICAgICAgICAgICAgICAgICAgICMgaWYgdGhlIGNvbHVtbiBpcyBhIGR5bmFtaWMgZmllbGQKICAgICAgICAgICAgICAgICAgICBpZiAoICRIZWFkZXIgPX4gbXsgXEEgRHluYW1pY0ZpZWxkXyAoIFthLXpBLVpcZF0rICkgXHogfXhtcyApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIG15ICREeW5hbWljRmllbGROYW1lID0gJDE7CgogICAgICAgICAgICAgICAgICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkc0lUU01DaGFuZ2V9ICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSBuZSAkRHluYW1pY0ZpZWxkTmFtZTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGdldCBwcmludCBzdHJpbmcgZm9yIHRoaXMgZHluYW1pYyBmaWVsZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFZhbHVlID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkRpc3BsYXlWYWx1ZVJlbmRlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJEluZm97JEhlYWRlcn0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVNYXhDaGFycyAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEluZm97JEhlYWRlcn0gPSAkVmFsdWUtPntWYWx1ZX07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBEWU5BTUlDRklFTEQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHB1c2ggQERhdGEsICRJbmZveyRIZWFkZXJ9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHB1c2ggQENTVkRhdGEsIFxARGF0YTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjc3YgcXVvdGUKICAgICAgICAgICAgIyB0cmFuc2xhdGUgbm9uIGV4aXN0aW5nIGhlYWRlciBtYXkgcmVzdWx0IGluIGEgZ2FyYmFnZSBmaWxlCiAgICAgICAgICAgIGlmICggIUBDU1ZIZWFkICkgewogICAgICAgICAgICAgICAgQENTVkhlYWQgPSBAeyAkU2VsZi0+e0NvbmZpZ30tPntTZWFyY2hDU1ZEYXRhfSB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHRyYW5zbGF0ZSBoZWFkZXJzCiAgICAgICAgICAgIGZvciBteSAkSGVhZGVyIChAQ1NWSGVhZCkgewoKICAgICAgICAgICAgICAgICMgcmVwbGFjZSBDaGFuZ2VOdW1iZXIgaGVhZGVyIHdpdGggdGhlIGN1cnJlbnQgQ2hhbmdlSG9vayBmcm9tIGNvbmZpZwogICAgICAgICAgICAgICAgaWYgKCAkSGVhZGVyIGVxICdDaGFuZ2VOdW1iZXInICkgewogICAgICAgICAgICAgICAgICAgICRIZWFkZXIgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01DaGFuZ2U6Okhvb2snKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRIZWFkZXIgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEhlYWRlcik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRDU1ZPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDU1YnKTsKICAgICAgICAgICAgbXkgJEN1clN5c0RUT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgICAgIGlmICggJEdldFBhcmFte1Jlc3VsdEZvcm19IGVxICdDU1YnICkgewoKICAgICAgICAgICAgICAgICMgQXNzZW1ibGUgQ1NWIGRhdGEuCiAgICAgICAgICAgICAgICBteSAkQ1NWID0gJENTVk9iamVjdC0+QXJyYXkyQ1NWKAogICAgICAgICAgICAgICAgICAgIEhlYWQgICAgICA9PiBcQENTVkhlYWQsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgID0+IFxAQ1NWRGF0YSwKICAgICAgICAgICAgICAgICAgICBTZXBhcmF0b3IgPT4gJFNlbGYtPntVc2VyQ1NWU2VwYXJhdG9yfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBSZXR1cm4gQ1NWIHRvIGRvd25sb2FkLgogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgICAgICAgICAgRmlsZW5hbWUgPT4gc3ByaW50ZigKICAgICAgICAgICAgICAgICAgICAgICAgJ2NoYW5nZV9zZWFyY2hfJXMuY3N2JywKICAgICAgICAgICAgICAgICAgICAgICAgJEN1clN5c0RUT2JqZWN0LT5Gb3JtYXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3JtYXQgPT4gJyVGXyVILSVNJywKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICJ0ZXh0L2NzdjsgY2hhcnNldD0iIC4gJExheW91dE9iamVjdC0+e1VzZXJDaGFyc2V0fSwKICAgICAgICAgICAgICAgICAgICBDb250ZW50ICAgICA9PiAkQ1NWLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXtSZXN1bHRGb3JtfSBlcSAnRXhjZWwnICkgewoKICAgICAgICAgICAgICAgICMgQXNzZW1ibGUgRXhjZWwgZGF0YS4KICAgICAgICAgICAgICAgIG15ICRFeGNlbCA9ICRDU1ZPYmplY3QtPkFycmF5MkNTVigKICAgICAgICAgICAgICAgICAgICBIZWFkICAgPT4gXEBDU1ZIZWFkLAogICAgICAgICAgICAgICAgICAgIERhdGEgICA9PiBcQENTVkRhdGEsCiAgICAgICAgICAgICAgICAgICAgRm9ybWF0ID0+ICdFeGNlbCcsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgUmV0dXJuIEV4Y2VsIHRvIGRvd25sb2FkLgogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgICAgICAgICAgRmlsZW5hbWUgPT4gc3ByaW50ZigKICAgICAgICAgICAgICAgICAgICAgICAgJ2NoYW5nZV9zZWFyY2hfJXMueGxzeCcsCiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJTeXNEVE9iamVjdC0+Rm9ybWF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0ID0+ICclRl8lSC0lTScsCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7IGNoYXJzZXQ9IgogICAgICAgICAgICAgICAgICAgICAgICAuICRMYXlvdXRPYmplY3QtPntVc2VyQ2hhcnNldH0sCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCA9PiAkRXhjZWwsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJEdldFBhcmFte1Jlc3VsdEZvcm19IGVxICdQcmludCcgKSB7CgogICAgICAgICAgICAjIHRvIHN0b3JlIGFsbCBkYXRhCiAgICAgICAgICAgIG15ICVJbmZvOwoKICAgICAgICAgICAgIyBnZXQgcGRmIG9iamVjdAogICAgICAgICAgICBteSAkUERGT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlBERicpOwoKICAgICAgICAgICAgIyB0byBzZW5kIGRhdGEgdG8gdGhlIFBERiBvdXRwdXQKICAgICAgICAgICAgbXkgQFBERkRhdGE7CiAgICAgICAgICAgIElEOgogICAgICAgICAgICBmb3IgbXkgJENoYW5nZUlEICggQHskVmlld2FibGVDaGFuZ2VJRHN9ICkgewoKICAgICAgICAgICAgICAgICMgZ2V0IGNoYW5nZSBkYXRhCiAgICAgICAgICAgICAgICBteSAkQ2hhbmdlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRDaGFuZ2U7CgogICAgICAgICAgICAgICAgIyBhZGQgY2hhbmdlIGRhdGEsCiAgICAgICAgICAgICAgICAlSW5mbyA9ICV7JENoYW5nZX07CgogICAgICAgICAgICAgICAgIyBnZXQgdXNlciBkYXRhIGZvciBuZWVkZWQgdXNlciB0eXBlcwogICAgICAgICAgICAgICAgVVNFUlRZUEU6CiAgICAgICAgICAgICAgICBmb3IgbXkgJFVzZXJUeXBlIChxdyhDaGFuZ2VCdWlsZGVyIENoYW5nZU1hbmFnZXIgV29ya09yZGVyQWdlbnQpKSB7CgogICAgICAgICAgICAgICAgICAgICMgY2hlY2sgaWYgVXNlclR5cGUgYXR0cmlidXRlIGV4aXN0cyBlaXRoZXIgaW4gY2hhbmdlIG9yIHdvcmtvcmRlcgogICAgICAgICAgICAgICAgICAgIGlmICggISRDaGFuZ2UtPnsgJFVzZXJUeXBlIC4gJ0lEJyB9ICYmICEkSW5mb3sgJFVzZXJUeXBlIC4gJ0lEJyB9ICkgewogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IFVTRVJUWVBFOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBnZXQgdXNlciBkYXRhCiAgICAgICAgICAgICAgICAgICAgbXkgJVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENoYW5nZS0+eyAkVXNlclR5cGUgLiAnSUQnIH0gfHwgJEluZm97ICRVc2VyVHlwZSAuICdJRCcgfSwKICAgICAgICAgICAgICAgICAgICAgICAgQ2FjaGVkID0+IDEsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBzZXQgdXNlciBmdWxsIG5hbWUKICAgICAgICAgICAgICAgICAgICAkSW5mb3skVXNlclR5cGV9ID0gJFVzZXJ7VXNlckZ1bGxuYW1lfTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBteSAkQ2hhbmdlVGl0bGUgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGUgPT4gJ1slIERhdGEuQ2hhbmdlVGl0bGUgfCB0cnVuY2F0ZSgzMCkgfCBodG1sICVdJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICA9PiBcJUluZm8sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG15ICRQbGFubmVkU3RhcnQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGUgPT4gJ1slIERhdGEuUGxhbm5lZFN0YXJ0VGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICA9PiBcJUluZm8sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG15ICRQbGFubmVkRW5kID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlID0+ICdbJSBEYXRhLlBsYW5uZWRFbmRUaW1lIHwgTG9jYWxpemUoIlRpbWVMb25nIikgJV0nLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgID0+IFwlSW5mbywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgQFBERlJvdzsKICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgICRJbmZve0NoYW5nZU51bWJlcn07CiAgICAgICAgICAgICAgICBwdXNoIEBQREZSb3csICAkQ2hhbmdlVGl0bGU7CiAgICAgICAgICAgICAgICBwdXNoIEBQREZSb3csICAkSW5mb3tDaGFuZ2VCdWlsZGVyfTsKICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgICRJbmZve1dvcmtPcmRlckNvdW50fTsKICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgICRJbmZve0NoYW5nZVN0YXRlfTsKICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgICRJbmZve1ByaW9yaXR5fTsKICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgICRQbGFubmVkU3RhcnQ7CiAgICAgICAgICAgICAgICBwdXNoIEBQREZSb3csICAkUGxhbm5lZEVuZDsKICAgICAgICAgICAgICAgIHB1c2ggQFBERkRhdGEsIFxAUERGUm93OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIFBERiBPdXRwdXQKICAgICAgICAgICAgbXkgJFRpdGxlICAgICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnQ2hhbmdlIFNlYXJjaCcpOwogICAgICAgICAgICBteSAkUHJpbnRlZEJ5ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdwcmludGVkIGJ5Jyk7CiAgICAgICAgICAgIG15ICRQYWdlICAgICAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1BhZ2UnKTsKICAgICAgICAgICAgbXkgJFRpbWUgICAgICA9ICRMYXlvdXRPYmplY3QtPntUaW1lfTsKCiAgICAgICAgICAgICMgZ2V0IG1heGltdW0gbnVtYmVyIG9mIHBhZ2VzCiAgICAgICAgICAgIG15ICRNYXhQYWdlcyA9ICRDb25maWdPYmplY3QtPkdldCgnUERGOjpNYXhQYWdlcycpOwogICAgICAgICAgICBpZiAoICEkTWF4UGFnZXMgfHwgJE1heFBhZ2VzIDwgMSB8fCAkTWF4UGFnZXMgPiAxMDAwICkgewogICAgICAgICAgICAgICAgJE1heFBhZ2VzID0gMTAwOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNyZWF0ZSB0aGUgaGVhZGVyCiAgICAgICAgICAgIG15ICRDZWxsRGF0YTsKCiAgICAgICAgICAgICMgb3V0cHV0ICdObyB0aWNrZXQgZGF0YSBmb3VuZCcsIGlmIG5vIGNvbnRlbnQgd2FzIGdpdmVuCiAgICAgICAgICAgIGlmIChAUERGRGF0YSkgewogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlswXS0+e0NvbnRlbnR9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNQ2hhbmdlOjpIb29rJyk7CiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WzBdLT57Rm9udH0gICAgPSAnUHJvcG9ydGlvbmFsQm9sZCc7CiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WzFdLT57Q29udGVudH0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0NoYW5nZVRpdGxlJyk7CiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WzFdLT57Rm9udH0gICAgPSAnUHJvcG9ydGlvbmFsQm9sZCc7CiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WzJdLT57Q29udGVudH0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0NoYW5nZUJ1aWxkZXInKTsKICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bMl0tPntGb250fSAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bM10tPntDb250ZW50fSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnV29ya09yZGVycycpOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlszXS0+e0ZvbnR9ICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPls0XS0+e0NvbnRlbnR9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDaGFuZ2VTdGF0ZScpOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPls0XS0+e0ZvbnR9ICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPls1XS0+e0NvbnRlbnR9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdQcmlvcml0eScpOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPls1XS0+e0ZvbnR9ICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPls2XS0+e0NvbnRlbnR9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdQbGFubmVkU3RhcnRUaW1lJyk7CiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WzZdLT57Rm9udH0gICAgPSAnUHJvcG9ydGlvbmFsQm9sZCc7CiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WzddLT57Q29udGVudH0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1BsYW5uZWRFbmRUaW1lJyk7CiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WzddLT57Rm9udH0gICAgPSAnUHJvcG9ydGlvbmFsQm9sZCc7CgogICAgICAgICAgICAgICAgIyBjcmVhdGUgdGhlIGNvbnRlbnQgYXJyYXkKICAgICAgICAgICAgICAgIG15ICRDb3VudGVyUm93ID0gMTsKICAgICAgICAgICAgICAgIGZvciBteSAkUm93IChAUERGRGF0YSkgewogICAgICAgICAgICAgICAgICAgIG15ICRDb3VudGVyQ29sdW1uID0gMDsKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJENvbnRlbnQgKCBAeyRSb3d9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlskQ291bnRlclJvd10tPlskQ291bnRlckNvbHVtbl0tPntDb250ZW50fSA9ICRDb250ZW50OwogICAgICAgICAgICAgICAgICAgICAgICAkQ291bnRlckNvbHVtbisrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkQ291bnRlclJvdysrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bMF0tPntDb250ZW50fSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTm8gdGlja2V0IGRhdGEgZm91bmQuJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcGFnZSBwYXJhbXMKICAgICAgICAgICAgbXkgJVBhZ2VQYXJhbTsKICAgICAgICAgICAgJFBhZ2VQYXJhbXtQYWdlT3JpZW50YXRpb259ID0gJ2xhbmRzY2FwZSc7CiAgICAgICAgICAgICRQYWdlUGFyYW17TWFyZ2luVG9wfSAgICAgICA9IDMwOwogICAgICAgICAgICAkUGFnZVBhcmFte01hcmdpblJpZ2h0fSAgICAgPSA0MDsKICAgICAgICAgICAgJFBhZ2VQYXJhbXtNYXJnaW5Cb3R0b219ICAgID0gNDA7CiAgICAgICAgICAgICRQYWdlUGFyYW17TWFyZ2luTGVmdH0gICAgICA9IDQwOwogICAgICAgICAgICAkUGFnZVBhcmFte0hlYWRlclJpZ2h0fSAgICAgPSAkVGl0bGU7CgogICAgICAgICAgICAjIHRhYmxlIHBhcmFtcwogICAgICAgICAgICBteSAlVGFibGVQYXJhbTsKICAgICAgICAgICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9ICAgICAgICAgICAgPSAkQ2VsbERhdGE7CiAgICAgICAgICAgICRUYWJsZVBhcmFte1R5cGV9ICAgICAgICAgICAgICAgID0gJ0N1dCc7CiAgICAgICAgICAgICRUYWJsZVBhcmFte0ZvbnRTaXplfSAgICAgICAgICAgID0gNjsKICAgICAgICAgICAgJFRhYmxlUGFyYW17Qm9yZGVyfSAgICAgICAgICAgICAgPSAwOwogICAgICAgICAgICAkVGFibGVQYXJhbXtCYWNrZ3JvdW5kQ29sb3JFdmVufSA9ICcjREREREREJzsKICAgICAgICAgICAgJFRhYmxlUGFyYW17UGFkZGluZ30gICAgICAgICAgICAgPSAxOwogICAgICAgICAgICAkVGFibGVQYXJhbXtQYWRkaW5nVG9wfSAgICAgICAgICA9IDM7CiAgICAgICAgICAgICRUYWJsZVBhcmFte1BhZGRpbmdCb3R0b219ICAgICAgID0gMzsKCiAgICAgICAgICAgICMgY3JlYXRlIG5ldyBwZGYgZG9jdW1lbnQKICAgICAgICAgICAgJFBERk9iamVjdC0+RG9jdW1lbnROZXcoCiAgICAgICAgICAgICAgICBUaXRsZSAgPT4gJENvbmZpZ09iamVjdC0+R2V0KCdQcm9kdWN0JykgLiAnOiAnIC4gJFRpdGxlLAogICAgICAgICAgICAgICAgRW5jb2RlID0+ICRMYXlvdXRPYmplY3QtPntVc2VyQ2hhcnNldH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHN0YXJ0IHRhYmxlIG91dHB1dAogICAgICAgICAgICAkUERGT2JqZWN0LT5QYWdlTmV3KAogICAgICAgICAgICAgICAgJVBhZ2VQYXJhbSwKICAgICAgICAgICAgICAgIEZvb3RlclJpZ2h0ID0+ICRQYWdlIC4gJyAxJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgICAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgICAgICAgICBZICAgID0+IC02LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBvdXRwdXQgdGl0bGUKICAgICAgICAgICAgJFBERk9iamVjdC0+VGV4dCgKICAgICAgICAgICAgICAgIFRleHQgICAgID0+ICRUaXRsZSwKICAgICAgICAgICAgICAgIEZvbnRTaXplID0+IDEzLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICAgICAgICAgIFkgICAgPT4gLTYsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIG91dHB1dCAicHJpbnRlZCBieSIKICAgICAgICAgICAgJFBERk9iamVjdC0+VGV4dCgKICAgICAgICAgICAgICAgIFRleHQgPT4gJFByaW50ZWRCeSAuICcgJwogICAgICAgICAgICAgICAgICAgIC4gJFNlbGYtPntVc2VyRnVsbG5hbWV9IC4gJyAoJwogICAgICAgICAgICAgICAgICAgIC4gJFNlbGYtPntVc2VyRW1haWx9IC4gJykgJwogICAgICAgICAgICAgICAgICAgIC4gJFRpbWUsCiAgICAgICAgICAgICAgICBGb250U2l6ZSA9PiA5LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICAgICAgICAgIFkgICAgPT4gLTE0LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgUEFHRToKICAgICAgICAgICAgZm9yIG15ICRDb3VudCAoIDIgLi4gJE1heFBhZ2VzICkgewoKICAgICAgICAgICAgICAgICMgb3V0cHV0IHRhYmxlIChvciBhIGZyYWdtZW50IG9mIGl0KQogICAgICAgICAgICAgICAgJVRhYmxlUGFyYW0gPSAkUERGT2JqZWN0LT5UYWJsZSggJVRhYmxlUGFyYW0sICk7CgogICAgICAgICAgICAgICAgIyBzdG9wIG91dHB1dCBvciBhbm90aGVyIHBhZ2UKICAgICAgICAgICAgICAgIGlmICggJFRhYmxlUGFyYW17U3RhdGV9ICkgewogICAgICAgICAgICAgICAgICAgIGxhc3QgUEFHRTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRQREZPYmplY3QtPlBhZ2VOZXcoCiAgICAgICAgICAgICAgICAgICAgICAgICVQYWdlUGFyYW0sIEZvb3RlclJpZ2h0ID0+ICRQYWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICcgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ291bnQsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJFBERlN0cmluZyA9ICRQREZPYmplY3QtPkRvY3VtZW50T3V0cHV0KCk7CgogICAgICAgICAgICAjIHJldHVybiB0aGUgcGRmIGRvY3VtZW50CiAgICAgICAgICAgIG15ICRDdXJTeXNEVE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgICAgIEZpbGVuYW1lID0+IHNwcmludGYoCiAgICAgICAgICAgICAgICAgICAgJ2NoYW5nZV9zZWFyY2hfJXMucGRmJywKICAgICAgICAgICAgICAgICAgICAkQ3VyU3lzRFRPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0ID0+ICclRl8lSC0lTScsCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAiYXBwbGljYXRpb24vcGRmIiwKICAgICAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRQREZTdHJpbmcsCiAgICAgICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgKTsKCiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBzdGFydCBodG1sIHBhZ2UKICAgICAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+UHJpbnQoIE91dHB1dCA9PiBcJE91dHB1dCApOwogICAgICAgICAgICAkT3V0cHV0ID0gJyc7CgogICAgICAgICAgICAkU2VsZi0+e0ZpbHRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRmlsdGVyJyApIHx8ICcnOwogICAgICAgICAgICAkU2VsZi0+e1ZpZXd9ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVmlldycgKSAgIHx8ICcnOwoKICAgICAgICAgICAgIyBzaG93IGNoYW5nZXMKICAgICAgICAgICAgbXkgJExpbmtQYWdlID0gJ0ZpbHRlcj0nCiAgICAgICAgICAgICAgICAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntGaWx0ZXJ9ICkKICAgICAgICAgICAgICAgIC4gJztWaWV3PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57Vmlld30gKQogICAgICAgICAgICAgICAgLiAnO1NvcnRCeT0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e1NvcnRCeX0gKQogICAgICAgICAgICAgICAgLiAnO09yZGVyQnk9JwogICAgICAgICAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57T3JkZXJCeX0gKQogICAgICAgICAgICAgICAgLiAnO1Byb2ZpbGU9JyAuICRTZWxmLT57UHJvZmlsZX0gLiAnO1Rha2VMYXN0U2VhcmNoPTE7U3ViYWN0aW9uPVNlYXJjaCcKICAgICAgICAgICAgICAgIC4gJzsnOwogICAgICAgICAgICBteSAkTGlua1NvcnQgPSAnRmlsdGVyPScKICAgICAgICAgICAgICAgIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e0ZpbHRlcn0gKQogICAgICAgICAgICAgICAgLiAnO1ZpZXc9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntWaWV3fSApCiAgICAgICAgICAgICAgICAuICc7UHJvZmlsZT0nIC4gJFNlbGYtPntQcm9maWxlfSAuICc7VGFrZUxhc3RTZWFyY2g9MTtTdWJhY3Rpb249U2VhcmNoJwogICAgICAgICAgICAgICAgLiAnOyc7CiAgICAgICAgICAgIG15ICRMaW5rRmlsdGVyID0gJ1Rha2VMYXN0U2VhcmNoPTE7U3ViYWN0aW9uPVNlYXJjaDtQcm9maWxlPScKICAgICAgICAgICAgICAgIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e1Byb2ZpbGV9ICkKICAgICAgICAgICAgICAgIC4gJzsnOwogICAgICAgICAgICBteSAkTGlua0JhY2sgPSAnU3ViYWN0aW9uPUxvYWRQcm9maWxlO1Byb2ZpbGU9JwogICAgICAgICAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57UHJvZmlsZX0gKQogICAgICAgICAgICAgICAgLiAnO1Rha2VMYXN0U2VhcmNoPTE7JzsKCiAgICAgICAgICAgICMgZmluZCBvdXQgd2hpY2ggY29sdW1ucyBzaG91bGQgYmUgc2hvd24KICAgICAgICAgICAgbXkgQFNob3dDb2x1bW5zOwogICAgICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1Nob3dDb2x1bW5zfSApIHsKCiAgICAgICAgICAgICAgICAjIGdldCBhbGwgcG9zc2libGUgY29sdW1ucyBmcm9tIGNvbmZpZwogICAgICAgICAgICAgICAgbXkgJVBvc3NpYmxlQ29sdW1uID0gJXsgJFNlbGYtPntDb25maWd9LT57U2hvd0NvbHVtbnN9IH07CgogICAgICAgICAgICAgICAgIyBnZXQgdGhlIGNvbHVtbiBuYW1lcyB0aGF0IHNob3VsZCBiZSBzaG93bgogICAgICAgICAgICAgICAgQ09MVU1OTkFNRToKICAgICAgICAgICAgICAgIGZvciBteSAkTmFtZSAoIHNvcnQga2V5cyAlUG9zc2libGVDb2x1bW4gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBDT0xVTU5OQU1FIGlmICEkUG9zc2libGVDb2x1bW57JE5hbWV9OwogICAgICAgICAgICAgICAgICAgIHB1c2ggQFNob3dDb2x1bW5zLCAkTmFtZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5JVFNNQ2hhbmdlTGlzdFNob3coCiAgICAgICAgICAgICAgICBDaGFuZ2VJRHMgICAgPT4gJFZpZXdhYmxlQ2hhbmdlSURzLAogICAgICAgICAgICAgICAgVG90YWwgICAgICAgID0+IHNjYWxhciBAeyRWaWV3YWJsZUNoYW5nZUlEc30sCiAgICAgICAgICAgICAgICBWaWV3ICAgICAgICAgPT4gJFNlbGYtPntWaWV3fSwKICAgICAgICAgICAgICAgIEVudiAgICAgICAgICA9PiAkU2VsZiwKICAgICAgICAgICAgICAgIExpbmtQYWdlICAgICA9PiAkTGlua1BhZ2UsCiAgICAgICAgICAgICAgICBMaW5rU29ydCAgICAgPT4gJExpbmtTb3J0LAogICAgICAgICAgICAgICAgTGlua0ZpbHRlciAgID0+ICRMaW5rRmlsdGVyLAogICAgICAgICAgICAgICAgTGlua0JhY2sgICAgID0+ICRMaW5rQmFjaywKICAgICAgICAgICAgICAgIFByb2ZpbGUgICAgICA9PiAkU2VsZi0+e1Byb2ZpbGV9LAogICAgICAgICAgICAgICAgVGl0bGVOYW1lICAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnQ2hhbmdlIFNlYXJjaCBSZXN1bHQnKSwKICAgICAgICAgICAgICAgIFNob3dDb2x1bW5zICA9PiBcQFNob3dDb2x1bW5zLAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgID0+ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntTb3J0Qnl9ICksCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgPT4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e09yZGVyQnl9ICksCiAgICAgICAgICAgICAgICBSZXF1ZXN0ZWRVUkwgPT4gJ0FjdGlvbj0nIC4gJFNlbGYtPntBY3Rpb259IC4gJzsnIC4gJExpbmtQYWdlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBidWlsZCBmb290ZXIKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgIH0KICAgIH0KICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBSkFYUHJvZmlsZURlbGV0ZScgKSB7CiAgICAgICAgbXkgJFByb2ZpbGUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUHJvZmlsZScgKTsKCiAgICAgICAgIyByZW1vdmUgb2xkIHByb2ZpbGUgc3R1ZmYKICAgICAgICAkU2VhcmNoUHJvZmlsZU9iamVjdC0+U2VhcmNoUHJvZmlsZURlbGV0ZSgKICAgICAgICAgICAgQmFzZSAgICAgID0+ICdJVFNNQ2hhbmdlU2VhcmNoJywKICAgICAgICAgICAgTmFtZSAgICAgID0+ICRQcm9maWxlLAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFNlbGYtPntVc2VyTG9naW59LAogICAgICAgICk7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkpTT05FbmNvZGUoCiAgICAgICAgICAgIERhdGEgPT4gMSwKICAgICAgICApOwogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJE91dHB1dCwKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FKQVgnICkgewoKICAgICAgICBteSAkT3V0cHV0ID0gJFNlbGYtPl9NYXNrRm9ybSgKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICk7CgogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50SVRTTUNoYW5nZVNlYXJjaCcsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIE5vQ2FjaGUgICAgID0+IDEsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkT3V0cHV0LAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJwogICAgICAgICk7CgogICAgfQoKICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnSVRTTUNoYW5nZU1hbmFnZW1lbnRTZWFyY2guT3BlbicsCiAgICAgICAgVmFsdWUgPT4gMSwKICAgICk7CgogICAgIyBUaGVyZSB3YXMgbm8gJ1N1YkFjdGlvbicsIG9yIHRoZXJlIHdlcmUgdmFsaWRhdGlvbiBlcnJvcnMsIG9yIGFuIHVzZXIgb3IgY3VzdG9tZXIgd2FzIHNlYXJjaGVkCiAgICAjIGdlbmVyYXRlIHNlYXJjaCBtYXNrCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50SVRTTUNoYW5nZVNlYXJjaCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9NYXNrRm9ybSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIG15ICRQcm9maWxlICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm9maWxlJyApIHx8ICcnOwogICAgbXkgJEVtcHR5U2VhcmNoID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0VtcHR5U2VhcmNoJyApOwogICAgaWYgKCAhJFByb2ZpbGUgKSB7CiAgICAgICAgJEVtcHR5U2VhcmNoID0gMTsKICAgIH0KCiAgICAjIGdldCBzZWFyY2ggcHJvZmlsZSBvYmplY3QKICAgIG15ICRTZWFyY2hQcm9maWxlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlYXJjaFByb2ZpbGUnKTsKCiAgICBteSAlR2V0UGFyYW0gPSAkU2VhcmNoUHJvZmlsZU9iamVjdC0+U2VhcmNoUHJvZmlsZUdldCgKICAgICAgICBCYXNlICAgICAgPT4gJ0lUU01DaGFuZ2VTZWFyY2gnLAogICAgICAgIE5hbWUgICAgICA9PiAkUHJvZmlsZSwKICAgICAgICBVc2VyTG9naW4gPT4gJFNlbGYtPntVc2VyTG9naW59LAogICAgKTsKCiAgICAjIGFsbG93IHByb2ZpbGUgb3ZlcndyaXRlIHRoZSBjb250ZW50cyBvZiAlUGFyYW0KICAgICVQYXJhbSA9ICgKICAgICAgICAlUGFyYW0sCiAgICAgICAgJUdldFBhcmFtLAogICAgKTsKCiAgICAjIGdldCB1c2VyIG9iamVjdAogICAgbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICMgc2V0IHVzZXIgZnJpZW5kbHkgQ0FCQWdlbnQgZmllbGQKICAgIGlmICggJFBhcmFte0NBQkFnZW50fSAmJiAkUGFyYW17Q0FCQWdlbnR9IG5lICcnICkgewoKICAgICAgICAjIGdldCB1c2VyIGRhdGEKICAgICAgICBteSAlVXNlckRhdGEgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17Q0FCQWdlbnR9LAogICAgICAgICk7CgogICAgICAgICMgc2V0IHVzZXIgZnJpZW5seSBDQUJBZ2VudCBzdHJpbmcKICAgICAgICBteSAkVXNlclZhbHVlID0gc3ByaW50ZiAnIiVzIiA8JXM+JywKICAgICAgICAgICAgJFVzZXJEYXRhe1VzZXJGdWxsbmFtZX0sCiAgICAgICAgICAgICRVc2VyRGF0YXtVc2VyRW1haWx9OwoKICAgICAgICAkUGFyYW17Q0FCQWdlbnRTZWFyY2h9ID0gJFVzZXJWYWx1ZTsKICAgIH0KCiAgICAjIHNldCB1c2VyIGZyaWVuZGx5IENBQkN1c3RvbWVyIGZpZWxkCiAgICBpZiAoICRQYXJhbXtDQUJDdXN0b21lcn0gJiYgJFBhcmFte0NBQkN1c3RvbWVyfSBuZSAnJyApIHsKCiAgICAgICAgIyBnZXQgY3VzdG9tZXIgZGF0YQogICAgICAgIG15ICVDdXN0b21lclNlYXJjaExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyktPkN1c3RvbWVyU2VhcmNoKAogICAgICAgICAgICBTZWFyY2ggPT4gJFBhcmFte0NBQkN1c3RvbWVyfSwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17Q0FCQ3VzdG9tZXJTZWFyY2h9ID0gJEN1c3RvbWVyU2VhcmNoTGlzdHsgJFBhcmFte0NBQkN1c3RvbWVyfSB9OwogICAgfQoKICAgICMgc2V0IGF0dHJpYnV0ZXMgc3RyaW5nCiAgICBteSBAQXR0cmlidXRlcyA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdDaGFuZ2VOdW1iZXInLAogICAgICAgICAgICBWYWx1ZSA9PiBUcmFuc2xhdGFibGUoJ0NoYW5nZSBOdW1iZXInKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ0NoYW5nZVRpdGxlJywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdDaGFuZ2UgVGl0bGUnKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ1dvcmtPcmRlclRpdGxlJywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdXb3JrIE9yZGVyIFRpdGxlJyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdDQUJBZ2VudCcsCiAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnQ0FCIEFnZW50JyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdDQUJDdXN0b21lcicsCiAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnQ0FCIEN1c3RvbWVyJyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgICAgID0+ICcnLAogICAgICAgICAgICBWYWx1ZSAgICA9PiAnLScsCiAgICAgICAgICAgIERpc2FibGVkID0+IDEsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdEZXNjcmlwdGlvbicsCiAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnQ2hhbmdlIERlc2NyaXB0aW9uJyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdDaGFuZ2UgSnVzdGlmaWNhdGlvbicpLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnV29ya09yZGVySW5zdHJ1Y3Rpb24nLAogICAgICAgICAgICBWYWx1ZSA9PiBUcmFuc2xhdGFibGUoJ1dvcmtPcmRlciBJbnN0cnVjdGlvbicpLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnV29ya09yZGVyUmVwb3J0JywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdXb3JrT3JkZXIgUmVwb3J0JyksCiAgICAgICAgfSwKICAgICk7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBiYWNrZW5kIG9iamVjdAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgbXkgJER5bmFtaWNGaWVsZFNlcGFyYXRvciA9IDE7CiAgICBteSAkTGFzdE9iamVjdFR5cGUgICAgICAgID0gJyc7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGNyZWF0ZSBkeW5hbWljIGZpZWxkcyBzZWFyY2ggb3B0aW9ucyBmb3IgYXR0cmlidXRlIHNlbGVjdAogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICgKICAgICAgICBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZENoYW5nZX0gfSwKICAgICAgICBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZFdvcmtPcmRlcn0gfQogICAgICAgICkKICAgIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISREeW5hbWljRmllbGRDb25maWctPntOYW1lfTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gZXEgJyc7CgogICAgICAgIGlmICgKICAgICAgICAgICAgJExhc3RPYmplY3RUeXBlIGVxICdJVFNNQ2hhbmdlJwogICAgICAgICAgICAmJiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gZXEgJ0lUU01Xb3JrT3JkZXInCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICREeW5hbWljRmllbGRTZXBhcmF0b3IgPSAxOwogICAgICAgIH0KCiAgICAgICAgIyBzYXZlIHRoZSBsYXN0IG9iamVjdCB0eXBlIChuZWVkZWQgZm9yIHNlcGFyYXRvciBiZXR3ZWVuIGNoYW5nZSBhbmQgd29ya29yZGVyIGZpZWxkcykKICAgICAgICAkTGFzdE9iamVjdFR5cGUgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX07CgogICAgICAgICMgY3JlYXRlIGEgc2VwYXJhdG9yIGZvciBkeW5hbWljIGZpZWxkcyBhdHRyaWJ1dGVzCiAgICAgICAgaWYgKCREeW5hbWljRmllbGRTZXBhcmF0b3IpIHsKICAgICAgICAgICAgcHVzaCBAQXR0cmlidXRlcywgKAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEtleSAgICAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgID0+ICctJywKICAgICAgICAgICAgICAgICAgICBEaXNhYmxlZCA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICREeW5hbWljRmllbGRTZXBhcmF0b3IgPSAwOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgc2VhcmNoIGZpZWxkIHByZWZlcmVuY2VzCiAgICAgICAgbXkgJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQcmVmZXJlbmNlcygKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyk7CgogICAgICAgICMgdHJhbnNsYXRlIHRoZSBkeW5hbWljIGZpZWxkIGxhYmVsCiAgICAgICAgbXkgJFRyYW5zbGF0ZWREeW5hbWljRmllbGRMYWJlbCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSwKICAgICAgICApOwoKICAgICAgICBQUkVGRVJFTkNFOgogICAgICAgIGZvciBteSAkUHJlZmVyZW5jZSAoIEB7JFNlYXJjaEZpZWxkUHJlZmVyZW5jZXN9ICkgewoKICAgICAgICAgICAgIyB0cmFuc2xhdGUgdGhlIHN1ZmZpeAogICAgICAgICAgICBteSAkVHJhbnNsYXRlZFN1ZmZpeCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICRQcmVmZXJlbmNlLT57TGFiZWxTdWZmaXh9LAogICAgICAgICAgICApIHx8ICcnOwoKICAgICAgICAgICAgaWYgKCRUcmFuc2xhdGVkU3VmZml4KSB7CiAgICAgICAgICAgICAgICAkVHJhbnNsYXRlZFN1ZmZpeCA9ICcgKCcgLiAkVHJhbnNsYXRlZFN1ZmZpeCAuICcpJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcHVzaCBAQXR0cmlidXRlcywgKAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEtleSA9PiAnU2VhcmNoX0R5bmFtaWNGaWVsZF8nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJFByZWZlcmVuY2UtPntUeXBlfSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVHJhbnNsYXRlZER5bmFtaWNGaWVsZExhYmVsIC4gJFRyYW5zbGF0ZWRTdWZmaXgsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNyZWF0ZSBhIHNlcGFyYXRvciBpZiBhIGR5bmFtaWMgZmllbGQgYXR0cmlidXRlIHdhcyBwdXNoZWQKICAgIGlmICggISREeW5hbWljRmllbGRTZXBhcmF0b3IgKSB7CiAgICAgICAgcHVzaCBAQXR0cmlidXRlcywgKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnJywKICAgICAgICAgICAgICAgIFZhbHVlICAgID0+ICctJywKICAgICAgICAgICAgICAgIERpc2FibGVkID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNyZWF0ZSBIVE1MIHN0cmluZ3MgZm9yIGFsbCBkeW5hbWljIGZpZWxkcwogICAgbXkgJUR5bmFtaWNGaWVsZEhUTUw7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICgKICAgICAgICBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZENoYW5nZX0gfSwKICAgICAgICBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZFdvcmtPcmRlcn0gfQogICAgICAgICkKICAgIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICMgZ2V0IHNlYXJjaCBmaWVsZCBwcmVmZXJlbmNlcwogICAgICAgIG15ICRTZWFyY2hGaWVsZFByZWZlcmVuY2VzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlNlYXJjaEZpZWxkUHJlZmVyZW5jZXMoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICk7CgogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0FycmF5UmVmV2l0aERhdGEoJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMpOwoKICAgICAgICAjIGdldCBQb3NzaWJsZVZhbHVlcwogICAgICAgIG15ICRQb3NzaWJsZVZhbHVlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5Qb3NzaWJsZVZhbHVlc0dldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gMCwKICAgICAgICApOwoKICAgICAgICBQUkVGRVJFTkNFOgogICAgICAgIGZvciBteSAkUHJlZmVyZW5jZSAoIEB7JFNlYXJjaEZpZWxkUHJlZmVyZW5jZXN9ICkgewoKICAgICAgICAgICAgIyBnZXQgZmllbGQgaHRtbAogICAgICAgICAgICAkRHluYW1pY0ZpZWxkSFRNTHsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IC4gJFByZWZlcmVuY2UtPntUeXBlfSB9CiAgICAgICAgICAgICAgICA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFJlbmRlcigKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBQcm9maWxlICAgICAgICAgICAgICA9PiBcJUdldFBhcmFtLAogICAgICAgICAgICAgICAgUG9zc2libGVWYWx1ZXNGaWx0ZXIgPT4gJFBvc3NpYmxlVmFsdWVzLAogICAgICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgICAgPT4KICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e0NvbmZpZ30tPntEZWZhdWx0c30tPntEeW5hbWljRmllbGR9CiAgICAgICAgICAgICAgICAgICAgLT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICAgICAgTGF5b3V0T2JqZWN0ID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgPT4gJFByZWZlcmVuY2UtPntUeXBlfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHB1c2ggQEF0dHJpYnV0ZXMsICgKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdQcmlvcml0eUlEcycsCiAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnQ2hhbmdlIFByaW9yaXR5JyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdJbXBhY3RJRHMnLAogICAgICAgICAgICBWYWx1ZSA9PiBUcmFuc2xhdGFibGUoJ0NoYW5nZSBJbXBhY3QnKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ0NhdGVnb3J5SURzJywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdDaGFuZ2UgQ2F0ZWdvcnknKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ0NoYW5nZVN0YXRlSURzJywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdDaGFuZ2UgU3RhdGUnKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ0NoYW5nZU1hbmFnZXJJRHMnLAogICAgICAgICAgICBWYWx1ZSA9PiBUcmFuc2xhdGFibGUoJ0NoYW5nZSBNYW5hZ2VyJyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdDaGFuZ2VCdWlsZGVySURzJywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdDaGFuZ2UgQnVpbGRlcicpLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnQ3JlYXRlQnknLAogICAgICAgICAgICBWYWx1ZSA9PiBUcmFuc2xhdGFibGUoJ0NyZWF0ZWQgQnknKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ1dvcmtPcmRlclN0YXRlSURzJywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdXb3JrT3JkZXIgU3RhdGUnKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ1dvcmtPcmRlclR5cGVJRHMnLAogICAgICAgICAgICBWYWx1ZSA9PiBUcmFuc2xhdGFibGUoJ1dvcmtPcmRlciBUeXBlJyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdXb3JrT3JkZXJBZ2VudElEcycsCiAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnV29ya09yZGVyIEFnZW50JyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgICAgID0+ICcnLAogICAgICAgICAgICBWYWx1ZSAgICA9PiAnLScsCiAgICAgICAgICAgIERpc2FibGVkID0+IDEsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBzZXQgdGltZSBhdHRyaWJ1dGVzCiAgICBteSBAVGltZVR5cGVzID0gKAogICAgICAgIHsKICAgICAgICAgICAgUHJlZml4ID0+ICdSZXF1ZXN0ZWQnLAogICAgICAgICAgICBUaXRsZSAgPT4gVHJhbnNsYXRhYmxlKCdSZXF1ZXN0ZWQgRGF0ZScpLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBQcmVmaXggPT4gJ1BsYW5uZWRTdGFydCcsCiAgICAgICAgICAgIFRpdGxlICA9PiBUcmFuc2xhdGFibGUoJ1BsYW5uZWQgU3RhcnQgVGltZScpLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBQcmVmaXggPT4gJ1BsYW5uZWRFbmQnLAogICAgICAgICAgICBUaXRsZSAgPT4gVHJhbnNsYXRhYmxlKCdQbGFubmVkIEVuZCBUaW1lJyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFByZWZpeCA9PiAnQWN0dWFsU3RhcnQnLAogICAgICAgICAgICBUaXRsZSAgPT4gVHJhbnNsYXRhYmxlKCdBY3R1YWwgU3RhcnQgVGltZScpLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBQcmVmaXggPT4gJ0FjdHVhbEVuZCcsCiAgICAgICAgICAgIFRpdGxlICA9PiBUcmFuc2xhdGFibGUoJ0FjdHVhbCBFbmQgVGltZScpLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBQcmVmaXggPT4gJ0NyZWF0ZScsCiAgICAgICAgICAgIFRpdGxlICA9PiBUcmFuc2xhdGFibGUoJ0NyZWF0ZSBUaW1lJyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFByZWZpeCA9PiAnQ2hhbmdlJywKICAgICAgICAgICAgVGl0bGUgID0+IFRyYW5zbGF0YWJsZSgnQ2hhbmdlIFRpbWUnKSwKICAgICAgICB9LAogICAgKTsKCiAgICBUSU1FVFlQRToKICAgIGZvciBteSAkVGltZVR5cGUgKEBUaW1lVHlwZXMpIHsKICAgICAgICBteSAkUHJlZml4ID0gJFRpbWVUeXBlLT57UHJlZml4fTsKCiAgICAgICAgIyBzaG93IFJlcXVlc3RlZFRpbWUgb25seSB3aGVuIGVuYWJsZWQgaW4gU3lzQ29uZmlnCiAgICAgICAgaWYgKCAkUHJlZml4IGVxICdSZXF1ZXN0ZWQnICYmICEkU2VsZi0+e0NvbmZpZ30tPntSZXF1ZXN0ZWRUaW1lfSApIHsKICAgICAgICAgICAgbmV4dCBUSU1FVFlQRTsKICAgICAgICB9CgogICAgICAgIG15ICRUaXRsZSAgICAgICAgICAgICAgICAgICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJFRpbWVUeXBlLT57VGl0bGV9ICk7CiAgICAgICAgbXkgJEJlZm9yZUFmdGVyVHJhbnNsYXRhYmxlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCcoYmVmb3JlL2FmdGVyKScpOwogICAgICAgIG15ICRCZXR3ZWVuVHJhbnNsYXRhYmxlICAgICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnKGJldHdlZW4pJyk7CiAgICAgICAgcHVzaCBAQXR0cmlidXRlcywgKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAkUHJlZml4IC4gJ1RpbWVQb2ludEZpZWxkJywKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRUaXRsZSAuICIgJEJlZm9yZUFmdGVyVHJhbnNsYXRhYmxlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJFByZWZpeCAuICdUaW1lU2xvdEZpZWxkJywKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRUaXRsZSAuICIgJEJldHdlZW5UcmFuc2xhdGFibGUiLAogICAgICAgICAgICB9LAoKICAgICAgICApOwogICAgfQoKICAgICRQYXJhbXtBdHRyaWJ1dGVzU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICBEYXRhICAgICAgICAgPT4gXEBBdHRyaWJ1dGVzLAogICAgICAgIE5hbWUgICAgICAgICA9PiAnQXR0cmlidXRlJywKICAgICAgICBNdWx0aXBsZSAgICAgPT4gMCwKICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwogICAgJFBhcmFte0F0dHJpYnV0ZXNPcmlnU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICBEYXRhICAgICAgICAgPT4gXEBBdHRyaWJ1dGVzLAogICAgICAgIE5hbWUgICAgICAgICA9PiAnQXR0cmlidXRlT3JpZycsCiAgICAgICAgTXVsdGlwbGUgICAgID0+IDAsCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIEdldCBhIGNvbXBsZXRlIGxpc3Qgb2YgdXNlcnMKICAgICMgZm9yIHRoZSBzZWxlY3Rpb24gJ0NoYW5nZUJ1aWxkZXInLCAnQ2hhbmdlTWFuYWdlcicgYW5kICdjcmVhdGVkIGJ5IHVzZXInLgogICAgIyBJdCBpcyBpbXBvcnRhbnQgdG8gYWxzbyBzZWFyY2ggZm9yIGludmFsaWQgYWdlbnRzLCBhcyB3ZSB3YW50IHRvIGZpbmQKICAgICMgdGhlc2UgY2hhbmdlcyB0b28uCiAgICAjIE91dCBvZiBvZmZpY2UgbmljZSBtaWdodCBiZSBhcHBlbmRlZCB0byB0aGUgdmFsdWVzLgogICAgbXkgJVVzZXJzID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICAjIGRyb3Bkb3duIG1lbnUgZm9yICdjcmVhdGVkIGJ5IHVzZXJzJwogICAgJFBhcmFteydDcmVhdGVCeVNlbGVjdGlvblN0cmluZyd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBcJVVzZXJzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ0NyZWF0ZUJ5JywKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgU2l6ZSAgICAgICA9PiA1LAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte0NyZWF0ZUJ5fSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIGJ1aWxkIGNoYW5nZSBtYW5hZ2VyIGRyb3Bkb3duCiAgICAkUGFyYW17J0NoYW5nZU1hbmFnZXJTZWxlY3Rpb25TdHJpbmcnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gXCVVc2VycywKICAgICAgICBOYW1lICAgICAgID0+ICdDaGFuZ2VNYW5hZ2VySURzJywKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgU2l6ZSAgICAgICA9PiA1LAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte0NoYW5nZU1hbmFnZXJJRHN9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgYnVpbGQgY2hhbmdlIGJ1aWxkZXIgZHJvcGRvd24KICAgICRQYXJhbXsnQ2hhbmdlQnVpbGRlclNlbGVjdGlvblN0cmluZyd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBcJVVzZXJzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ0NoYW5nZUJ1aWxkZXJJRHMnLAogICAgICAgIE11bHRpcGxlICAgPT4gMSwKICAgICAgICBTaXplICAgICAgID0+IDUsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17Q2hhbmdlQnVpbGRlcklEc30sCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgIyBnZXQgcG9zc2libGUgQ2hhbmdlIENhdGVnb3JpZXMKICAgIG15ICRDYXRlZ29yaWVzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlUG9zc2libGVDSVBHZXQoCiAgICAgICAgVHlwZSAgID0+ICdDYXRlZ29yeScsCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CiAgICAkUGFyYW17J0NoYW5nZUNhdGVnb3J5U2VsZWN0aW9uU3RyaW5nJ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+ICRDYXRlZ29yaWVzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ0NhdGVnb3J5SURzJywKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgU2l6ZSAgICAgICA9PiA1LAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte0NhdGVnb3J5SURzfSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIGdldCBwb3NzaWJsZSBDaGFuZ2UgSW1wYWN0cwogICAgbXkgJEltcGFjdHMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VQb3NzaWJsZUNJUEdldCgKICAgICAgICBUeXBlICAgPT4gJ0ltcGFjdCcsCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CiAgICAkUGFyYW17J0NoYW5nZUltcGFjdFNlbGVjdGlvblN0cmluZyd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiAkSW1wYWN0cywKICAgICAgICBOYW1lICAgICAgID0+ICdJbXBhY3RJRHMnLAogICAgICAgIE11bHRpcGxlICAgPT4gMSwKICAgICAgICBTaXplICAgICAgID0+IDUsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17SW1wYWN0SURzfSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIGdldCBwb3NzaWJsZSBDaGFuZ2UgUHJpb3JpdGllcwogICAgbXkgJFByaW9yaXRpZXMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VQb3NzaWJsZUNJUEdldCgKICAgICAgICBUeXBlICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKICAgICRQYXJhbXsnQ2hhbmdlUHJpb3JpdHlTZWxlY3Rpb25TdHJpbmcnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gJFByaW9yaXRpZXMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnUHJpb3JpdHlJRHMnLAogICAgICAgIE11bHRpcGxlICAgPT4gMSwKICAgICAgICBTaXplICAgICAgID0+IDUsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17UHJpb3JpdHlJRHN9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgZ2V0IGNoYW5nZSBzdGF0ZXMKICAgIG15ICRDaGFuZ2VTdGF0ZXMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VQb3NzaWJsZVN0YXRlc0dldCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKICAgICRQYXJhbXsnQ2hhbmdlU3RhdGVTZWxlY3Rpb25TdHJpbmcnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gJENoYW5nZVN0YXRlcywKICAgICAgICBOYW1lICAgICAgID0+ICdDaGFuZ2VTdGF0ZUlEcycsCiAgICAgICAgTXVsdGlwbGUgICA9PiAxLAogICAgICAgIFNpemUgICAgICAgPT4gNSwKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtDaGFuZ2VTdGF0ZUlEc30sCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBnZXQgd29ya29yZGVyIGFnZW50cwogICAgJFBhcmFteydXb3JrT3JkZXJBZ2VudElEU2VsZWN0aW9uU3RyaW5nJ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IFwlVXNlcnMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnV29ya09yZGVyQWdlbnRJRHMnLAogICAgICAgIE11bHRpcGxlICAgPT4gMSwKICAgICAgICBTaXplICAgICAgID0+IDUsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17V29ya09yZGVyQWdlbnRJRHN9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgZ2V0IHdvcmsgb3JkZXIgb2JqZWN0CiAgICBteSAkV29ya09yZGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKTsKCiAgICAjIGdldCB3b3Jrb3JkZXIgc3RhdGVzCiAgICBteSAkV29ya09yZGVyU3RhdGVzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyUG9zc2libGVTdGF0ZXNHZXQoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwogICAgJFBhcmFteydXb3JrT3JkZXJTdGF0ZVNlbGVjdGlvblN0cmluZyd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiAkV29ya09yZGVyU3RhdGVzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ1dvcmtPcmRlclN0YXRlSURzJywKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgU2l6ZSAgICAgICA9PiA1LAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte1dvcmtPcmRlclN0YXRlSURzfSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIGdldCB3b3Jrb3JkZXIgdHlwZXMKICAgIG15ICRXb3JrT3JkZXJUeXBlcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclR5cGVMaXN0KAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKICAgICRQYXJhbXsnV29ya09yZGVyVHlwZVNlbGVjdGlvblN0cmluZyd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiAkV29ya09yZGVyVHlwZXMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnV29ya09yZGVyVHlwZUlEcycsCiAgICAgICAgTXVsdGlwbGUgICA9PiAxLAogICAgICAgIFNpemUgICAgICAgPT4gNSwKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtXb3JrT3JkZXJUeXBlSURzfSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIHNldCByZXN1bHQgb3V0cHV0IGZvcm1hdHMKICAgICRQYXJhbXtSZXN1bHRGb3JtU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgTm9ybWFsID0+IFRyYW5zbGF0YWJsZSgnTm9ybWFsJyksCiAgICAgICAgICAgIFByaW50ICA9PiBUcmFuc2xhdGFibGUoJ1ByaW50JyksCiAgICAgICAgICAgIENTViAgICA9PiBUcmFuc2xhdGFibGUoJ0NTVicpLAogICAgICAgICAgICBFeGNlbCAgPT4gVHJhbnNsYXRhYmxlKCdFeGNlbCcpLAogICAgICAgIH0sCiAgICAgICAgTmFtZSAgICAgICA9PiAnUmVzdWx0Rm9ybScsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17UmVzdWx0Rm9ybX0gfHwgJ05vcm1hbCcsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgbXkgJVByb2ZpbGVzID0gJFNlYXJjaFByb2ZpbGVPYmplY3QtPlNlYXJjaFByb2ZpbGVMaXN0KAogICAgICAgIEJhc2UgICAgICA9PiAnSVRTTUNoYW5nZVNlYXJjaCcsCiAgICAgICAgVXNlckxvZ2luID0+ICRTZWxmLT57VXNlckxvZ2lufSwKICAgICk7CiAgICBkZWxldGUgJFByb2ZpbGVzeycnfTsKICAgIGRlbGV0ZSAkUHJvZmlsZXN7J2xhc3Qtc2VhcmNoJ307CiAgICBpZiAoJEVtcHR5U2VhcmNoKSB7CiAgICAgICAgJFByb2ZpbGVzeycnfSA9ICctJzsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQcm9maWxlc3snbGFzdC1zZWFyY2gnfSA9ICctJzsKICAgIH0KICAgICRQYXJhbXtQcm9maWxlc1N0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUHJvZmlsZXMsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdQcm9maWxlJywKICAgICAgICBJRCAgICAgICAgICAgPT4gJ1NlYXJjaFByb2ZpbGUnLAogICAgICAgIFNlbGVjdGVkSUQgICA9PiAkUHJvZmlsZSwKICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICApOwoKICAgICMgaHRtbCBzZWFyY2ggbWFzayBvdXRwdXQKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1NlYXJjaEFKQVgnLAogICAgICAgIERhdGEgPT4geyAlUGFyYW0sIH0sICAgICMlR2V0UGFyYW0gfSwKICAgICk7CgogICAgIyBudW1iZXIgb2YgbWludXRlcywgZGF5cywgd2Vla3MsIG1vbnRocyBhbmQgeWVhcnMKICAgIG15ICVPbmVUb0ZpZnR5TmluZSA9IG1hcCB7ICRfID0+IHNwcmludGYgJyUycycsICRfIH0gKCAxIC4uIDU5ICk7CgogICAgIyB0aW1lIHBlcmlvZCB0aGF0IGNhbiBiZSBzZWxlY3RlZCBmcm9tIHRoZSBHVUkKICAgIG15ICVUaW1lUGVyaW9kID0gJXsgJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNV29ya09yZGVyOjpUaW1lUGVyaW9kJykgfTsKCiAgICBUSU1FVFlQRToKICAgIGZvciBteSAkVGltZVR5cGUgKEBUaW1lVHlwZXMpIHsKICAgICAgICBteSAkUHJlZml4ID0gJFRpbWVUeXBlLT57UHJlZml4fTsKCiAgICAgICAgIyBzaG93IFJlcXVlc3RlZFRpbWUgb25seSB3aGVuIGVuYWJsZWQgaW4gU3lzQ29uZmlnCiAgICAgICAgaWYgKCAkUHJlZml4IGVxICdSZXF1ZXN0ZWQnICYmICEkU2VsZi0+e0NvbmZpZ30tPntSZXF1ZXN0ZWRUaW1lfSApIHsKICAgICAgICAgICAgbmV4dCBUSU1FVFlQRTsKICAgICAgICB9CgogICAgICAgIG15ICRUaXRsZSAgICAgICAgICAgICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJFRpbWVUeXBlLT57VGl0bGV9ICk7CiAgICAgICAgbXkgJVRpbWVTZWxlY3Rpb25EYXRhID0gKAogICAgICAgICAgICBQcmVmaXggPT4gJFByZWZpeCwKICAgICAgICAgICAgVGl0bGUgID0+ICRUaXRsZSwKICAgICAgICApOwoKICAgICAgICAkVGltZVNlbGVjdGlvbkRhdGF7VGltZVBvaW50fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhICAgICAgID0+IFwlT25lVG9GaWZ0eU5pbmUsCiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJFByZWZpeCAuICdUaW1lUG9pbnQnLAogICAgICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXsgJFByZWZpeCAuICdUaW1lUG9pbnQnIH0sCiAgICAgICAgKTsKCiAgICAgICAgJFRpbWVTZWxlY3Rpb25EYXRhe1RpbWVQb2ludFN0YXJ0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICdMYXN0JyAgID0+IFRyYW5zbGF0YWJsZSgnbGFzdCcpLAogICAgICAgICAgICAgICAgJ0JlZm9yZScgPT4gVHJhbnNsYXRhYmxlKCdiZWZvcmUnKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAkUHJlZml4IC4gJ1RpbWVQb2ludFN0YXJ0JywKICAgICAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17ICRQcmVmaXggLiAnVGltZVBvaW50U3RhcnQnIH0gfHwgJ0xhc3QnLAogICAgICAgICk7CgogICAgICAgICRUaW1lU2VsZWN0aW9uRGF0YXtUaW1lUG9pbnRGb3JtYXR9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgbWludXRlID0+IFRyYW5zbGF0YWJsZSgnbWludXRlKHMpJyksCiAgICAgICAgICAgICAgICBob3VyICAgPT4gVHJhbnNsYXRhYmxlKCdob3VyKHMpJyksCiAgICAgICAgICAgICAgICBkYXkgICAgPT4gVHJhbnNsYXRhYmxlKCdkYXkocyknKSwKICAgICAgICAgICAgICAgIHdlZWsgICA9PiBUcmFuc2xhdGFibGUoJ3dlZWsocyknKSwKICAgICAgICAgICAgICAgIG1vbnRoICA9PiBUcmFuc2xhdGFibGUoJ21vbnRoKHMpJyksCiAgICAgICAgICAgICAgICB5ZWFyICAgPT4gVHJhbnNsYXRhYmxlKCd5ZWFyKHMpJyksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJFByZWZpeCAuICdUaW1lUG9pbnRGb3JtYXQnLAogICAgICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXsgJFByZWZpeCAuICdUaW1lUG9pbnRGb3JtYXQnIH0sCiAgICAgICAgKTsKCiAgICAgICAgJFRpbWVTZWxlY3Rpb25EYXRhe1RpbWVTdGFydH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZERhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJVRpbWVQZXJpb2QsCiAgICAgICAgICAgIFByZWZpeCAgID0+ICRQcmVmaXggLiAnVGltZVN0YXJ0JywKICAgICAgICAgICAgRm9ybWF0ICAgPT4gJ0RhdGVJbnB1dEZvcm1hdCcsCiAgICAgICAgICAgIFZhbGlkYXRlID0+IDEsCiAgICAgICAgICAgIERpZmZUaW1lID0+IC0oICggNjAgKiA2MCAqIDI0ICkgKiAzMCApLAogICAgICAgICk7CgogICAgICAgICRUaW1lU2VsZWN0aW9uRGF0YXtUaW1lU3RvcH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZERhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJVRpbWVQZXJpb2QsCiAgICAgICAgICAgIFByZWZpeCA9PiAkUHJlZml4IC4gJ1RpbWVTdG9wJywKICAgICAgICAgICAgRm9ybWF0ID0+ICdEYXRlSW5wdXRGb3JtYXQnLAogICAgICAgICk7CgogICAgICAgICMgc2hvdyB0aW1lIGZpZWxkCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1RpbWVTZWxlY3Rpb24nLAogICAgICAgICAgICBEYXRhID0+IFwlVGltZVNlbGVjdGlvbkRhdGEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG91dHB1dCBEeW5hbWljIGZpZWxkcyBibG9ja3MKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoCiAgICAgICAgQHsgJFNlbGYtPntEeW5hbWljRmllbGRDaGFuZ2V9IH0sCiAgICAgICAgQHsgJFNlbGYtPntEeW5hbWljRmllbGRXb3JrT3JkZXJ9IH0KICAgICAgICApCiAgICB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIGdldCBzZWFyY2ggZmllbGQgcHJlZmVyZW5jZXMKICAgICAgICBteSAkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFByZWZlcmVuY2VzKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICApOwoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNBcnJheVJlZldpdGhEYXRhKCRTZWFyY2hGaWVsZFByZWZlcmVuY2VzKTsKCiAgICAgICAgUFJFRkVSRU5DRToKICAgICAgICBmb3IgbXkgJFByZWZlcmVuY2UgKCBAeyRTZWFyY2hGaWVsZFByZWZlcmVuY2VzfSApIHsKCiAgICAgICAgICAgICMgc2tpcCBmaWVsZHMgdGhhdCBIVE1MIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQKICAgICAgICAgICAgbmV4dCBQUkVGRVJFTkNFIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgKICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRIVE1MeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gLiAkUHJlZmVyZW5jZS0+e1R5cGV9IH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIExhYmVsID0+CiAgICAgICAgICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRIVE1MeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gLiAkUHJlZmVyZW5jZS0+e1R5cGV9IH0KICAgICAgICAgICAgICAgICAgICAgICAgLT57TGFiZWx9LAogICAgICAgICAgICAgICAgICAgIEZpZWxkID0+CiAgICAgICAgICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRIVE1MeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gLiAkUHJlZmVyZW5jZS0+e1R5cGV9IH0KICAgICAgICAgICAgICAgICAgICAgICAgLT57RmllbGR9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzaG93IGF0dHJpYnV0ZXMKICAgIG15ICVBbHJlYWR5U2hvd247CiAgICBJVEVNOgogICAgZm9yIG15ICRJdGVtIChAQXR0cmlidXRlcykgewogICAgICAgIG15ICRLZXkgPSAkSXRlbS0+e0tleX07CiAgICAgICAgbmV4dCBJVEVNIGlmICEkS2V5OwogICAgICAgIG5leHQgSVRFTSBpZiAhZGVmaW5lZCAkUGFyYW17JEtleX07CiAgICAgICAgbmV4dCBJVEVNIGlmICRQYXJhbXskS2V5fSBlcSAnJzsKICAgICAgICBuZXh0IElURU0gaWYgJEFscmVhZHlTaG93bnskS2V5fTsKICAgICAgICBpZiAoIHJlZiAkUGFyYW17JEtleX0gZXEgJ0FSUkFZJyAmJiAhQHsgJFBhcmFteyRLZXl9IH0gKSB7CiAgICAgICAgICAgIG5leHQgSVRFTTsKICAgICAgICB9CiAgICAgICAgJEFscmVhZHlTaG93bnskS2V5fSA9IDE7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgS2V5ICAgPT4gJ0lUU01DaGFuZ2VNYW5hZ2VtZW50U2VhcmNoLkF0dHJpYnV0ZS4nIC4gJEtleSwKICAgICAgICAgICAgVmFsdWUgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgaWYgbm8gYXR0cmlidXRlIGlzIHNob3duLCBzaG93IGNoYW5nZSBudW1iZXIKICAgIGlmICggISRQcm9maWxlICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgS2V5ICAgPT4gJ0lUU01DaGFuZ2VNYW5hZ2VtZW50U2VhcmNoLkF0dHJpYnV0ZS5DaGFuZ2VOdW1iZXInLAogICAgICAgICAgICBWYWx1ZSA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgIyBidWlsZCBvdXRwdXQKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudElUU01DaGFuZ2VTZWFyY2gnLAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgIEFKQVggICAgICAgICA9PiAxLAogICAgKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeTemplate.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZVRlbXBsYXRlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRQYXJhbU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZ2V0IG5lZWRlZCBDaGFuZ2VJRAogICAgbXkgJENoYW5nZUlEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NoYW5nZUlEJyApOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkQ2hhbmdlSUQgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTm8gQ2hhbmdlSUQgaXMgZ2l2ZW4hJyksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBvYmplY3QKICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGVycm9yIHNjcmVlbgogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyEnLCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSApLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY2hhbmdlIGRhdGEKICAgIG15ICRDaGFuZ2UgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRDaGFuZ2UgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ05vIGNoYW5nZSBmb3VuZCBmb3IgY2hhbmdlSUQgJXMuJywgJENoYW5nZUlEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgc3RvcmUgbmVlZGVkIHBhcmFtZXRlcnMgaW4gJUdldFBhcmFtIHRvIG1ha2UgaXQgcmVsb2FkYWJsZQogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KFRlbXBsYXRlTmFtZSBDb21tZW50IFZhbGlkSUQgU3RhdGVSZXNldCBPdmVyd3JpdGVUZW1wbGF0ZSBEZWxldGVDaGFuZ2UgKSkKICAgIHsKICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CiAgICB9CgogICAgIyBnZXQgdXNlciBvYmplY3QKICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIGdldCBleGlzdGluZyB1c2VyIHByZWZlcmVuY2VzCiAgICBteSAlVXNlclByZWZlcmVuY2VzID0gJFVzZXJPYmplY3QtPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IHByZWZlcmVuY2UgdG8gc2VlIHdoaWNoIHRlbXBsYXRlcyBhcmUgaW4gZWRpdCBieSB0aGUgdXNlcgogICAgbXkgJFRlbXBsYXRlRWRpdFByZWZlcmVuY2VTdHJpbmcgPSAkVXNlclByZWZlcmVuY2Vze1VzZXJJVFNNQ2hhbmdlTWFuYWdlbWVudFRlbXBsYXRlRWRpdH0gfHwgJyc7CgogICAgIyBjb252ZXJ0IHRvIGxvb2t1cCBoYXNoCiAgICBteSBARWRpdGVkVGVtcGxhdGVzID0gc3BsaXQgbS87LywgJFRlbXBsYXRlRWRpdFByZWZlcmVuY2VTdHJpbmc7CiAgICBteSAlT2JqZWN0MlRlbXBsYXRlOwogICAgZm9yIG15ICRTdHJpbmcgKEBFZGl0ZWRUZW1wbGF0ZXMpIHsKICAgICAgICBteSAoICRPYmplY3QsICRUZW1wbGF0ZSApID0gc3BsaXQgbS86Oi8sICRTdHJpbmc7CiAgICAgICAgJE9iamVjdDJUZW1wbGF0ZXskT2JqZWN0fSA9ICRUZW1wbGF0ZTsKICAgIH0KCiAgICAjIGdldCB0ZW1wbGF0ZSBpZCBmcm9tIHVzZXIgcHJlZmVyZW5jZXMKICAgIG15ICRUZW1wbGF0ZUlEID0gJE9iamVjdDJUZW1wbGF0ZXsgJ0NoYW5nZUlEJyAuICRDaGFuZ2VJRCB9OwoKICAgICMgZ2V0IHRlbXBsYXRlIG9iamVjdAogICAgbXkgJFRlbXBsYXRlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlRlbXBsYXRlJyk7CgogICAgIyBjaGVjayBpZiB0aGlzIGNoYW5nZSB3YXMgY3JlYXRlZCBieSB0aGlzIHVzZXIgdXNpbmcgYSB0ZW1wbGF0ZQogICAgaWYgKCRUZW1wbGF0ZUlEKSB7CgogICAgICAgICMgZ2V0IHRlbXBsYXRlIGRhdGEKICAgICAgICBteSAkVGVtcGxhdGVEYXRhID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZUdldCgKICAgICAgICAgICAgVGVtcGxhdGVJRCA9PiAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgIGlmICgkVGVtcGxhdGVEYXRhKSB7CgogICAgICAgICAgICAjIG92ZXJ3cml0ZSBlbXB0eSB2YWx1ZXMgd2l0aCB0ZW1wbGF0ZSBkYXRhCiAgICAgICAgICAgICRHZXRQYXJhbXtUZW1wbGF0ZU5hbWV9IHx8PSAkVGVtcGxhdGVEYXRhLT57TmFtZX07CiAgICAgICAgICAgICRHZXRQYXJhbXtDb21tZW50fSAgICAgIHx8PSAkVGVtcGxhdGVEYXRhLT57Q29tbWVudH07CiAgICAgICAgICAgICRHZXRQYXJhbXtWYWxpZElEfSAgICAgIHx8PSAkVGVtcGxhdGVEYXRhLT57VmFsaWRJRH07CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkVGVtcGxhdGVJRCA9ICcnOwogICAgICAgIH0KICAgIH0KCiAgICAjIENoZWNrIHJlcXVpcmVkIGZpZWxkcyB0byBsb29rIGZvciBlcnJvcnMuCiAgICBteSAlRXJyb3I7CgogICAgIyBhZGQgYSB0ZW1wbGF0ZQogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFRlbXBsYXRlJyApIHsKCiAgICAgICAgIyBjaGVjayB2YWxpZGl0eSBvZiB0aGUgdGVtcGxhdGUgbmFtZQogICAgICAgIGlmICggISRHZXRQYXJhbXtUZW1wbGF0ZU5hbWV9ICkgewogICAgICAgICAgICAkRXJyb3J7J1RlbXBsYXRlTmFtZUludmFsaWQnfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICBpZiAoICElRXJyb3IgKSB7CgogICAgICAgICAgICAjIHNlcmlhbGl6ZSB0aGUgY2hhbmdlCiAgICAgICAgICAgIG15ICRUZW1wbGF0ZUNvbnRlbnQgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlU2VyaWFsaXplKAogICAgICAgICAgICAgICAgVGVtcGxhdGVUeXBlID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICAgICAgICAgIFN0YXRlUmVzZXQgICA9PiAkR2V0UGFyYW17U3RhdGVSZXNldH0gfHwgMCwKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgaWYgKCAhJFRlbXBsYXRlQ29udGVudCApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0KICAgICAgICAgICAgICAgICAgICAgICAgLT5UcmFuc2xhdGUoICdUaGUgY2hhbmdlICIlcyIgY291bGQgbm90IGJlIHNlcmlhbGl6ZWQuJywgJENoYW5nZUlEICksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiB0aGlzIGNoYW5nZSB3YXMgY3JlYXRlZCBmcm9tIGEgdGVtcGxhdGUgYW5kIHNob3VsZCBiZSBzYXZlZCBiYWNrCiAgICAgICAgICAgIGlmICggJFRlbXBsYXRlSUQgJiYgJEdldFBhcmFte092ZXJ3cml0ZVRlbXBsYXRlfSApIHsKCiAgICAgICAgICAgICAgICBteSAkVXBkYXRlU3VjY2VzcyA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVVcGRhdGUoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVJRCA9PiAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICRHZXRQYXJhbXtUZW1wbGF0ZU5hbWV9LAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgICAgPT4gJEdldFBhcmFte0NvbW1lbnR9LAogICAgICAgICAgICAgICAgICAgIFZhbGlkSUQgICAgPT4gJEdldFBhcmFte1ZhbGlkSUR9LAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICAgPT4gJFRlbXBsYXRlQ29udGVudCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgICAgIGlmICggISRVcGRhdGVTdWNjZXNzICkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCB1cGRhdGUgdGhlIHRlbXBsYXRlICIlcyIuJywgJFRlbXBsYXRlSUQgKSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAjIHN0b3JlIHRoZSBzZXJpYWxpemVkIGNoYW5nZSBhcyBhIG5ldyB0ZW1wbGF0ZQogICAgICAgICAgICAgICAgJFRlbXBsYXRlSUQgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlQWRkKAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAkR2V0UGFyYW17VGVtcGxhdGVOYW1lfSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ICAgICAgPT4gJEdldFBhcmFte0NvbW1lbnR9LAogICAgICAgICAgICAgICAgICAgIFZhbGlkSUQgICAgICA9PiAkR2V0UGFyYW17VmFsaWRJRH0sCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVUeXBlID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICAgICAgICAgICAgICBDb250ZW50ICAgICAgPT4gJFRlbXBsYXRlQ29udGVudCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZQogICAgICAgICAgICAgICAgaWYgKCAhJFRlbXBsYXRlSUQgKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ291bGQgbm90IGFkZCB0aGUgdGVtcGxhdGUuJyksCiAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGRlZmluZSByZWRpcmVjdCBVUkwKICAgICAgICAgICAgbXkgJFJlZGlyZWN0VVJMID0gIkFjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPSRDaGFuZ2VJRCI7CgogICAgICAgICAgICAjIGlmIHRoZSBvcmlnaW5hbCBjaGFuZ2Ugc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17RGVsZXRlQ2hhbmdlfSApIHsKCiAgICAgICAgICAgICAgICAjIGRlbGV0ZSB0aGUgY2hhbmdlCiAgICAgICAgICAgICAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZQogICAgICAgICAgICAgICAgaWYgKCAhJERlbGV0ZVN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDb3VsZCBub3QgZGVsZXRlIGNoYW5nZSAiJXMiLicsICRDaGFuZ2VJRCApLAogICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGRlbGV0ZSB0aGUgdXNlciBwcmVmZXJlbmNlIGVudHJ5CiAgICAgICAgICAgICAgICBkZWxldGUgJE9iamVjdDJUZW1wbGF0ZXsgJ0NoYW5nZUlEJyAuICRDaGFuZ2VJRCB9OwoKICAgICAgICAgICAgICAgICMgcmVkaXJlY3QgdG8gdGVtcGxhdGUgb3ZlcnZpZXcKICAgICAgICAgICAgICAgICRSZWRpcmVjdFVSTCA9ICdBY3Rpb249QWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdXBkYXRlIHRoZSB1c2VyIHByZWZlcmVuY2Ugd2l0aCB0aGUgbmV3IHRlbXBsYXRlIGlkCiAgICAgICAgICAgIGVsc2lmICggJE9iamVjdDJUZW1wbGF0ZXsgJ0NoYW5nZUlEJyAuICRDaGFuZ2VJRCB9ICkgewogICAgICAgICAgICAgICAgJE9iamVjdDJUZW1wbGF0ZXsgJ0NoYW5nZUlEJyAuICRDaGFuZ2VJRCB9ID0gJFRlbXBsYXRlSUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY29udmVydCB0byBzdHJpbmcKICAgICAgICAgICAgJFRlbXBsYXRlRWRpdFByZWZlcmVuY2VTdHJpbmcgPSAnJzsKICAgICAgICAgICAgZm9yIG15ICRPYmplY3QgKCBzb3J0IGtleXMgJU9iamVjdDJUZW1wbGF0ZSApIHsKICAgICAgICAgICAgICAgICRUZW1wbGF0ZUVkaXRQcmVmZXJlbmNlU3RyaW5nIC49ICRPYmplY3QgLiAnOjonIC4gJE9iamVjdDJUZW1wbGF0ZXskT2JqZWN0fSAuICc7JzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzYXZlIHByZWZlcmVuY2VzCiAgICAgICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIEtleSAgICA9PiAnVXNlcklUU01DaGFuZ2VNYW5hZ2VtZW50VGVtcGxhdGVFZGl0JywKICAgICAgICAgICAgICAgIFZhbHVlICA9PiAkVGVtcGxhdGVFZGl0UHJlZmVyZW5jZVN0cmluZywKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGxvYWQgbmV3IFVSTCBpbiBwYXJlbnQgd2luZG93IGFuZCBjbG9zZSBwb3B1cAogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UG9wdXBDbG9zZSgKICAgICAgICAgICAgICAgIFVSTCA9PiAkUmVkaXJlY3RVUkwsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgb3V0cHV0IGhlYWRlcgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUeXBlICA9PiAnU21hbGwnLAogICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnVGVtcGxhdGUnKSwKICAgICk7CgogICAgIyBnZXQgdmFsaWQgb2JqZWN0CiAgICBteSAkVmFsaWRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKTsKCiAgICAjIGJ1aWxkIHZhbGlkIHNlbGVjdGlvbgogICAgbXkgJFZhbGlkU2VsZWN0aW9uU3RyaW5nID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICRWYWxpZE9iamVjdC0+VmFsaWRMaXN0KCksCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdWYWxpZElEJywKICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtWYWxpZElEfSB8fCAoICRWYWxpZE9iamVjdC0+VmFsaWRJRHNHZXQoKSApWzBdLAogICAgICAgIFNvcnQgICAgICAgPT4gJ051bWVyaWNLZXknLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgYnVpbGQgc2VsZWN0aW9uIHN0cmluZyBmb3Igc3RhdGUgcmVzZXQKICAgIG15ICRTdGF0ZVJlc2V0U2VsZWN0aW9uU3RyaW5nID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdObycpLAogICAgICAgICAgICAxID0+IFRyYW5zbGF0YWJsZSgnWWVzJyksCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdTdGF0ZVJlc2V0JywKICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtTdGF0ZVJlc2V0fSAvLyAxLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgc2hvdyBkcm9wZG93bnMgb25seSBpZiB0aGlzIGNoYW5nZSB3YXMgY3JlYXRlZCBmcm9tIGEgdGVtcGxhdGUKICAgIGlmICgkVGVtcGxhdGVJRCkgewoKICAgICAgICAjIGJ1aWxkIHNlbGVjdGlvbiBzdHJpbmcgZm9yIHRlbXBsYXRlIG92ZXJ3cml0ZSwgZGVmYXVsdCBpcyB5ZXMKICAgICAgICBteSAkT3ZlcndyaXRlVGVtcGxhdGVTZWxlY3Rpb25TdHJpbmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAwID0+IFRyYW5zbGF0YWJsZSgnTm8nKSwKICAgICAgICAgICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCdZZXMnKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnT3ZlcndyaXRlVGVtcGxhdGUnLAogICAgICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtPdmVyd3JpdGVUZW1wbGF0ZX0gLy8gMSwKICAgICAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwoKICAgICAgICAjIHNob3cgb3ZlcndyaXRlIG9yaWdpbmFsIHRlbXBsYXRlIGRyb3Bkb3duCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ3cml0ZVRlbXBsYXRlJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICBPdmVyd3JpdGVUZW1wbGF0ZVNlbGVjdGlvblN0cmluZyA9PiAkT3ZlcndyaXRlVGVtcGxhdGVTZWxlY3Rpb25TdHJpbmcsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBidWlsZCBzZWxlY3Rpb24gc3RyaW5nIGZvciBkZWxldGUgY2hhbmdlCiAgICAgICAgbXkgJERlbGV0ZUNoYW5nZVNlbGVjdGlvblN0cmluZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdObycpLAogICAgICAgICAgICAgICAgMSA9PiBUcmFuc2xhdGFibGUoJ1llcycpLAogICAgICAgICAgICB9LAogICAgICAgICAgICBOYW1lICAgICAgID0+ICdEZWxldGVDaGFuZ2UnLAogICAgICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtEZWxldGVDaGFuZ2V9IC8vIDEsCiAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGRlbGV0ZSBjaGFuZ2UgZHJvcGRvd24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRGVsZXRlQ2hhbmdlJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICBEZWxldGVDaGFuZ2VTZWxlY3Rpb25TdHJpbmcgPT4gJERlbGV0ZUNoYW5nZVNlbGVjdGlvblN0cmluZywKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgc3RhcnQgdGVtcGxhdGUgb3V0cHV0CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50SVRTTUNoYW5nZVRlbXBsYXRlJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgIENoYW5nZUlEICAgICAgICAgICAgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICBWYWxpZFNlbGVjdGlvblN0cmluZyAgICAgID0+ICRWYWxpZFNlbGVjdGlvblN0cmluZywKICAgICAgICAgICAgU3RhdGVSZXNldFNlbGVjdGlvblN0cmluZyA9PiAkU3RhdGVSZXNldFNlbGVjdGlvblN0cmluZywKICAgICAgICAgICAgQ2hhbmdlTnVtYmVyICAgICAgICAgICAgICA9PiAkQ2hhbmdlLT57Q2hhbmdlTnVtYmVyfSwKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgICAgICAgICAgICA9PiAkQ2hhbmdlLT57Q2hhbmdlVGl0bGV9LAogICAgICAgICAgICAlRXJyb3IsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBhZGQgZm9vdGVyCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlciggVHlwZSA9PiAnU21hbGwnICk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeTimeSlot.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZVRpbWVTbG90OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBnZXQgbmVlZGVkIENoYW5nZUlECiAgICBteSAkQ2hhbmdlSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ2hhbmdlSUQnICk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRDaGFuZ2VJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBDaGFuZ2VJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJENvbmZpZ09iamVjdC0+R2V0KCJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgQWN0aW9uICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZXJyb3Igc2NyZWVuCiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIScsICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259ICksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBjaGFuZ2UgZGF0YQogICAgbXkgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGlmIGNoYW5nZSBpcyBmb3VuZAogICAgaWYgKCAhJENoYW5nZSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ2hhbmdlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlIScsICRDaGFuZ2VJRCApLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIE1vdmluZyBpcyBwb3NzaWJsZSBvbmx5IHdoZW4gdGhlcmUgYXJlIHdvcmtvcmRlcnMuCiAgICBpZiAoICEkQ2hhbmdlLT57V29ya09yZGVyQ291bnR9ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1RoZSBjaGFuZ2UgY2FuXCd0IGJlIG1vdmVkLCBhcyBpdCBoYXMgbm8gd29ya29yZGVycy4nKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ0FkZCBhIHdvcmtvcmRlciBmaXJzdC4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgTW92aW5nIGlzIGFsbG93ZWQgb25seSB3aGVuIHRoZXJlIHRoZSBjaGFuZ2UgaGFzIG5vdCBzdGFydGVkIHlldC4KICAgIGlmICggJENoYW5nZS0+e0FjdHVhbFN0YXJ0VGltZX0gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IG1vdmUgYSBjaGFuZ2Ugd2hpY2ggYWxyZWFkeSBoYXMgc3RhcnRlZCEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBtb3ZlIHRoZSBpbmRpdmlkdWFsIHdvcmtvcmRlcnMgaW5zdGVhZC4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgc3RvcmUgbmVlZGVkIHBhcmFtZXRlcnMgaW4gJUdldFBhcmFtIHRvIG1ha2UgaXQgcmVsb2FkYWJsZQogICAgbXkgJUdldFBhcmFtOwogICAgJEdldFBhcmFte01vdmVUaW1lVHlwZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKAogICAgICAgIFBhcmFtID0+ICdNb3ZlVGltZVR5cGUnLAogICAgKSB8fCAnUGxhbm5lZFN0YXJ0VGltZSc7CgogICAgIyBzdG9yZSB0aW1lIHJlbGF0ZWQgZmllbGRzIGluICVHZXRQYXJhbQogICAgZm9yIG15ICRUaW1lUGFydCAocXcoWWVhciBNb250aCBEYXkgSG91ciBNaW51dGUpKSB7CiAgICAgICAgbXkgJFBhcmFtTmFtZSA9ICdNb3ZlVGltZScgLiAkVGltZVBhcnQ7CiAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSgKICAgICAgICAgICAgUGFyYW0gPT4gJFBhcmFtTmFtZSwKICAgICAgICApOwogICAgfQoKICAgICMgUmVtZW1iZXIgdGhlIHJlYXNvbiB3aHkgc2F2aW5nIHdhcyBub3QgYXR0ZW1wdGVkLgogICAgbXkgJVZhbGlkYXRpb25FcnJvcnM7CgogICAgIyBnZXQgdGltZSBvYmplY3QKCiAgICAjIG1vdmUgdGltZSBzbG90IG9mIGNoYW5nZQogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ01vdmVUaW1lU2xvdCcgKSB7CgogICAgICAgICMgY2hlY2sgdmFsaWRpdHkgb2YgdGhlIHRpbWUgdHlwZQogICAgICAgIG15ICRNb3ZlVGltZVR5cGUgPSAkR2V0UGFyYW17TW92ZVRpbWVUeXBlfTsKICAgICAgICBpZiAoICFkZWZpbmVkICRNb3ZlVGltZVR5cGUgKQogICAgICAgIHsKICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcnN7TW92ZVRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBjaGVjayB0aGUgY29tcGxldGVuZXNzIG9mIHRoZSB0aW1lIHBhcmFtZXRlciBsaXN0LAogICAgICAgICAgICAjIG9ubHkgaG91ciBhbmQgbWludXRlIGFyZSBhbGxvd2VkIHRvIGJlICcwJwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAhJEdldFBhcmFte01vdmVUaW1lWWVhcn0KICAgICAgICAgICAgICAgIHx8ICEkR2V0UGFyYW17TW92ZVRpbWVNb250aH0KICAgICAgICAgICAgICAgIHx8ICEkR2V0UGFyYW17TW92ZVRpbWVEYXl9CiAgICAgICAgICAgICAgICB8fCAhZGVmaW5lZCAkR2V0UGFyYW17TW92ZVRpbWVIb3VyfQogICAgICAgICAgICAgICAgfHwgIWRlZmluZWQgJEdldFBhcmFte01vdmVUaW1lTWludXRlfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9yc3tNb3ZlVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBnZXQgdGhlIHN5c3RlbSB0aW1lIGZyb20gdGhlIGlucHV0LCBpZiBpdCBjYW4ndCBiZSBkZXRlcm1pbmVkIHdlIGhhdmUgYSB2YWxpZGF0aW9uIGVycm9yCiAgICAgICAgbXkgJFBsYW5uZWRTeXN0ZW1UaW1lOwogICAgICAgIGlmICggISVWYWxpZGF0aW9uRXJyb3JzICkgewoKICAgICAgICAgICAgIyB0cmFuc2Zvcm0gY2hhbmdlIHBsYW5uZWQgdGltZSwgdGltZSBzdGFtcCBiYXNlZCBvbiB1c2VyIHRpbWUgem9uZQogICAgICAgICAgICAlR2V0UGFyYW0gPSAkTGF5b3V0T2JqZWN0LT5UcmFuc2Zvcm1EYXRlU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgUHJlZml4ID0+ICdNb3ZlVGltZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGZvcm1hdCBhcyB0aW1lc3RhbXAKICAgICAgICAgICAgbXkgJFBsYW5uZWRUaW1lID0gc3ByaW50ZiAnJTA0ZC0lMDJkLSUwMmQgJTAyZDolMDJkOjAwJywKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtNb3ZlVGltZVllYXJ9LAogICAgICAgICAgICAgICAgJEdldFBhcmFte01vdmVUaW1lTW9udGh9LAogICAgICAgICAgICAgICAgJEdldFBhcmFte01vdmVUaW1lRGF5fSwKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtNb3ZlVGltZUhvdXJ9LAogICAgICAgICAgICAgICAgJEdldFBhcmFte01vdmVUaW1lTWludXRlfTsKCiAgICAgICAgICAgICMgc2FuaXR5IGNoZWNrIG9mIHRoZSBhc3NlbWJsZWQgdGltZXN0YW1wCiAgICAgICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRQbGFubmVkVGltZSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRQbGFubmVkU3lzdGVtVGltZSA9ICREYXRlVGltZU9iamVjdC0+VG9FcG9jaCgpOwoKICAgICAgICAgICAgaWYgKCAhJFBsYW5uZWRTeXN0ZW1UaW1lICkgewogICAgICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcnN7TW92ZVRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgbW92ZSB0aW1lIHNsb3Qgb25seSB3aGVuIHRoZXJlIGFyZSBubyB2YWxpZGF0aW9uIGVycm9ycwogICAgICAgIGlmICggISVWYWxpZGF0aW9uRXJyb3JzICkgewoKICAgICAgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRpZmZlcmVuY2UgaW4gc2Vjb25kcwogICAgICAgICAgICBteSAkQ3VycmVudFBsYW5uZWRUaW1lID0gJENoYW5nZS0+eyRNb3ZlVGltZVR5cGV9OwoKICAgICAgICAgICAgIyBFdmVuIHdoZW4gdGhlcmUgYXJlIHdvcmtvcmRlcnMsIGEgY2hhbmdlIG1pZ2h0IHN0aWxsIG1pc3MgYSBwbGFubmVkIHRpbWUuCiAgICAgICAgICAgICMgSW4gdGhhdCBjYXNlIG1vdmluZyB0aGUgdGltZSBzbG90IGlzIG5vdCBwb3NzaWJsZS4KICAgICAgICAgICAgaWYgKCAhJEN1cnJlbnRQbGFubmVkVGltZSApIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZQogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fQogICAgICAgICAgICAgICAgICAgICAgICAtPlRyYW5zbGF0ZSggJ1RoZSBjdXJyZW50ICVzIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLicsICRNb3ZlVGltZVR5cGUgKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0KICAgICAgICAgICAgICAgICAgICAgICAgLT5UcmFuc2xhdGUoICdUaGUgJXMgb2YgYWxsIHdvcmtvcmRlcnMgaGFzIHRvIGJlIGRlZmluZWQuJywgJE1vdmVUaW1lVHlwZSApLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICBTdHJpbmcgICA9PiAkQ3VycmVudFBsYW5uZWRUaW1lLAogICAgICAgICAgICAgICAgICAgIFRpbWVab25lID0+ICRDb25maWdPYmplY3QtPkdldCgnVGltZVpvbmVVc2VyJyksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDdXJyZW50UGxhbm5lZFN5c3RlbVRpbWUgPSAkRGF0ZVRpbWVPYmplY3QtPlRvRXBvY2goKTsKCiAgICAgICAgICAgIG15ICREaWZmU2Vjb25kcyA9ICRQbGFubmVkU3lzdGVtVGltZSAtICRDdXJyZW50UGxhbm5lZFN5c3RlbVRpbWU7CgogICAgICAgICAgICBteSAkTW92ZUVycm9yID0gJFNlbGYtPl9Nb3ZlV29ya09yZGVycygKICAgICAgICAgICAgICAgIERpZmZTZWNvbmRzICA9PiAkRGlmZlNlY29uZHMsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRHMgPT4gJENoYW5nZS0+e1dvcmtPcmRlcklEc30sCiAgICAgICAgICAgICAgICBDaGFuZ2VOdW1iZXIgPT4gJENoYW5nZS0+e0NoYW5nZU51bWJlcn0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJE1vdmVFcnJvcikgewogICAgICAgICAgICAgICAgcmV0dXJuICRNb3ZlRXJyb3I7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgbG9hZCBuZXcgVVJMIGluIHBhcmVudCB3aW5kb3cgYW5kIGNsb3NlIHBvcHVwCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Qb3B1cENsb3NlKAogICAgICAgICAgICAgICAgVVJMID0+ICJBY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0kQ2hhbmdlSUQiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBSkFYVXBkYXRlJyApIHsKCiAgICAgICAgIyBnZXQgcGxhbm5lZCBzdGFydCB0aW1lIG9yIHBsYW5uZWQgZW5kIHRpbWUgZnJvbSB0aGUgY2hhbmdlCiAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJENoYW5nZS0+eyAkR2V0UGFyYW17TW92ZVRpbWVUeXBlfSB9LAogICAgICAgICAgICB9CiAgICAgICAgKTsKICAgICAgICBteSAkU3lzdGVtVGltZSA9ICREYXRlVGltZU9iamVjdC0+VG9FcG9jaCgpOwoKICAgICAgICAjIHNldCB0aGUgcGFyYW1ldGVyIGhhc2ggZm9yIHRoZSBhbnN3ZXJzCiAgICAgICAgIyB0aGUgc2Vjb25kcyBhcmUgaWdub3JlZAogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICAgICAgIyBnZXQgY29uZmlnIGZvciB0aGUgbnVtYmVyIG9mIHllYXJzIHdoaWNoIHNob3VsZCBiZSBzZWxlY3RhYmxlCiAgICAgICAgbXkgJFRpbWVQZXJpb2QgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01Xb3JrT3JkZXI6OlRpbWVQZXJpb2QnKTsKICAgICAgICBteSAkU3RhcnRZZWFyICA9ICREYXRlVGltZVNldHRpbmdzLT57WWVhcn0gLSAkVGltZVBlcmlvZC0+e1llYXJQZXJpb2RQYXN0fTsKICAgICAgICBteSAkRW5kWWVhciAgICA9ICREYXRlVGltZVNldHRpbmdzLT57WWVhcn0gKyAkVGltZVBlcmlvZC0+e1llYXJQZXJpb2RGdXR1cmV9OwoKICAgICAgICAjIGFzc2VtYmxlIHRoZSBkYXRhIHRoYXQgd2lsbCBiZSByZXR1cm5lZAogICAgICAgIG15ICRKU09OID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb25KU09OKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnTW92ZVRpbWVNaW51dGUnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgPT4gWyBtYXAgeyBzcHJpbnRmICclMDJkJywgJF8gfSAoIDAgLi4gNTkgKSBdLAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJERhdGVUaW1lU2V0dGluZ3MtPntNaW51dGV9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICdNb3ZlVGltZUhvdXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgPT4gWyBtYXAgeyBzcHJpbnRmICclMDJkJywgJF8gfSAoIDAgLi4gMjMgKSBdLAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJERhdGVUaW1lU2V0dGluZ3MtPntIb3VyfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnTW92ZVRpbWVEYXknLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgPT4geyBtYXAgeyAkXyA9PiBzcHJpbnRmICclMDJkJywgJF8gfSAoIDEgLi4gMzEgKSB9LAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gaW50ICREYXRlVGltZVNldHRpbmdzLT57RGF5fSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnTW92ZVRpbWVNb250aCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICA9PiB7IG1hcCB7ICRfID0+IHNwcmludGYgJyUwMmQnLCAkXyB9ICggMSAuLiAxMiApIH0sCiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCA9PiBpbnQgJERhdGVUaW1lU2V0dGluZ3MtPntNb250aH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJ01vdmVUaW1lWWVhcicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICA9PiBbICRTdGFydFllYXIgLi4gJEVuZFllYXIgXSwKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtNb3ZlVGltZVllYXJ9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJEpTT04sCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBubyBzdWJhY3Rpb24sCiAgICAgICAgIyBnZXQgcGxhbm5lZCBzdGFydCB0aW1lIG9yIHBsYW5uZWQgZW5kIHRpbWUgZnJvbSB0aGUgY2hhbmdlCiAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJENoYW5nZS0+eyAkR2V0UGFyYW17TW92ZVRpbWVUeXBlfSB9CiAgICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJERhdGVUaW1lT2JqZWN0LT5Ub0Vwb2NoKCk7CgogICAgICAgICMgc2V0IHRoZSBwYXJhbWV0ZXIgaGFzaCBmb3IgQnVpbGREYXRlU2VsZWN0aW9uKCkKICAgICAgICAjIHRoZSBzZWNvbmRzIGFyZSBpZ25vcmVkCiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwogICAgICAgICRHZXRQYXJhbXtNb3ZlVGltZU1pbnV0ZX0gPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e01pbnV0ZX07CiAgICAgICAgJEdldFBhcmFte01vdmVUaW1lSG91cn0gICA9ICREYXRlVGltZVNldHRpbmdzLT57SG91cn07CiAgICAgICAgJEdldFBhcmFte01vdmVUaW1lRGF5fSAgICA9ICREYXRlVGltZVNldHRpbmdzLT57RGF5fTsKICAgICAgICAkR2V0UGFyYW17TW92ZVRpbWVNb250aH0gID0gJERhdGVUaW1lU2V0dGluZ3MtPntNb250aH07CiAgICAgICAgJEdldFBhcmFte01vdmVUaW1lWWVhcn0gICA9ICREYXRlVGltZVNldHRpbmdzLT57WWVhcn07CiAgICB9CgogICAgIyBidWlsZCBkcm9wLWRvd24gd2l0aCB0aW1lIHR5cGVzCiAgICBteSAkTW92ZVRpbWVUeXBlU2VsZWN0aW9uU3RyaW5nID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICdQbGFubmVkU3RhcnRUaW1lJywKICAgICAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnUGxhbm5lZCBTdGFydCBUaW1lJykKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJ1BsYW5uZWRFbmRUaW1lJywKICAgICAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnUGxhbm5lZCBFbmQgVGltZScpCiAgICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICAgICBOYW1lICAgICAgID0+ICdNb3ZlVGltZVR5cGUnLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJEdldFBhcmFte01vdmVUaW1lVHlwZX0sCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyB0aW1lIHBlcmlvZCB0aGF0IGNhbiBiZSBzZWxlY3RlZCBmcm9tIHRoZSBHVUkKICAgIG15ICVUaW1lUGVyaW9kID0gJXsgJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNV29ya09yZGVyOjpUaW1lUGVyaW9kJykgfTsKCiAgICAjIGFkZCBzZWxlY3Rpb24gZm9yIHRoZSB0aW1lCiAgICBteSAkTW92ZVRpbWVTZWxlY3Rpb25TdHJpbmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZERhdGVTZWxlY3Rpb24oCiAgICAgICAgJUdldFBhcmFtLAogICAgICAgIEZvcm1hdCAgICAgICAgPT4gJ0RhdGVJbnB1dEZvcm1hdExvbmcnLAogICAgICAgIFByZWZpeCAgICAgICAgPT4gJ01vdmVUaW1lJywKICAgICAgICBWYWxpZGF0ZSAgICAgID0+IDEsCiAgICAgICAgTW92ZVRpbWVDbGFzcyA9PiAkVmFsaWRhdGlvbkVycm9yc3tNb3ZlVGltZUludmFsaWR9IHx8ICcnLAogICAgICAgICVUaW1lUGVyaW9kLAogICAgKTsKCiAgICAjIG91dHB1dCBoZWFkZXIKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gVHJhbnNsYXRhYmxlKCdNb3ZlIFRpbWUgU2xvdCcpLAogICAgICAgIFR5cGUgID0+ICdTbWFsbCcsCiAgICApOwoKICAgICMgc3RhcnQgdGVtcGxhdGUgb3V0cHV0CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50SVRTTUNoYW5nZVRpbWVTbG90JywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAleyRDaGFuZ2V9LAogICAgICAgICAgICAlVmFsaWRhdGlvbkVycm9ycywKICAgICAgICAgICAgTW92ZVRpbWVUeXBlU2VsZWN0aW9uU3RyaW5nID0+ICRNb3ZlVGltZVR5cGVTZWxlY3Rpb25TdHJpbmcsCiAgICAgICAgICAgIE1vdmVUaW1lU2VsZWN0aW9uU3RyaW5nICAgICA9PiAkTW92ZVRpbWVTZWxlY3Rpb25TdHJpbmcsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBhZGQgZm9vdGVyCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlciggVHlwZSA9PiAnU21hbGwnICk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCiMgdGhlIGFjdHVhbCBtb3ZpbmcgaXMgZG9uZSBoZXJlCnN1YiBfTW92ZVdvcmtPcmRlcnMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBAQ29sbGVjdGVkVXBkYXRlUGFyYW1zOyAgICAjIGFuIGFycmF5IG9mIHBhcmFtcyBmb3IgV29ya09yZGVyVXBkYXRlKCkKICAgIG15ICVXb3JrT3JkZXJJRDJOdW1iZXI7ICAgICAgICMgdXNlZCBvbmx5IGZvciBlcnJvciBtZXNzYWdlcwoKICAgICMgZ2V0IHdvcmsgb3JkZXIgb2JqZWN0CiAgICBteSAkV29ya09yZGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKTsKICAgIG15ICRMYXlvdXRPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBkZXRlcm1pbmUgdGhlIG5ldyB0aW1lcwogICAgV09SS09SREVSSUQ6CiAgICBmb3IgbXkgJFdvcmtPcmRlcklEICggQHsgJFBhcmFte1dvcmtPcmRlcklEc30gfSApIHsKICAgICAgICBteSAkV29ya09yZGVyID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyR2V0KAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBuZXh0IFdPUktPUkRFUklEIGlmICEkV29ya09yZGVyOwogICAgICAgIG5leHQgV09SS09SREVSSUQgaWYgcmVmICRXb3JrT3JkZXIgbmUgJ0hBU0gnOwogICAgICAgIG5leHQgV09SS09SREVSSUQgaWYgISV7JFdvcmtPcmRlcn07CgogICAgICAgICRXb3JrT3JkZXJJRDJOdW1iZXJ7JFdvcmtPcmRlcklEfSA9ICRXb3JrT3JkZXItPntXb3JrT3JkZXJOdW1iZXJ9OwogICAgICAgIG15ICVVcGRhdGVQYXJhbXM7CiAgICAgICAgVFlQRToKICAgICAgICBmb3IgbXkgJFR5cGUgKHF3KFBsYW5uZWRTdGFydFRpbWUgUGxhbm5lZEVuZFRpbWUpKSB7CgogICAgICAgICAgICBuZXh0IFRZUEUgaWYgISRXb3JrT3JkZXItPnskVHlwZX07CgogICAgICAgICAgICAjIGdldCBkYXRldGltZSBvYmplY3QKICAgICAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFdvcmtPcmRlci0+eyRUeXBlfSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBUWVBFIGlmICEkRGF0ZVRpbWVPYmplY3Q7CgogICAgICAgICAgICAjIGFkZCB0aGUgbnVtYmVyIG9mIHNlY29uZHMgdGhhdCB0aGUgdGltZSBzbG90IHNob3VsZCBiZSBtb3ZlZAogICAgICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCggU2Vjb25kcyA9PiAkUGFyYW17RGlmZlNlY29uZHN9ICk7CiAgICAgICAgICAgICRVcGRhdGVQYXJhbXN7JFR5cGV9ID0gJERhdGVUaW1lT2JqZWN0LT5Ub1N0cmluZygpOwoKICAgICAgICB9CgogICAgICAgIG5leHQgV09SS09SREVSSUQgaWYgISVVcGRhdGVQYXJhbXM7CgogICAgICAgICMgcmVtZW1iZXIgdGhlIHdvcmtvcmRlciB0aGF0IHNob3VsZCBiZSBtb3ZlZAogICAgICAgICRVcGRhdGVQYXJhbXN7V29ya09yZGVySUR9ID0gJFdvcmtPcmRlcklEOwoKICAgICAgICBwdXNoIEBDb2xsZWN0ZWRVcGRhdGVQYXJhbXMsIFwlVXBkYXRlUGFyYW1zOwogICAgfQoKICAgICMgZG8gdGhlIHVwZGF0aW5nCiAgICBVUERBVEVQQVJBTVM6CiAgICBmb3IgbXkgJFVwZGF0ZVBhcmFtcyAoQENvbGxlY3RlZFVwZGF0ZVBhcmFtcykgewoKICAgICAgICAjIG5vIG51bWJlciBjYWxjdWxhdGlvbiBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgd29ya29yZGVyIG9yZGVyIGRvZXNuJ3QgY2hhbmdlCiAgICAgICAgbXkgJFVwZGF0ZU9rID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyVXBkYXRlKAogICAgICAgICAgICAleyRVcGRhdGVQYXJhbXN9LAogICAgICAgICAgICBOb051bWJlckNhbGMgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkVXBkYXRlT2sgKSB7CgogICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZQogICAgICAgICAgICBteSAkTnVtYmVyID0gam9pbiAnLScsCiAgICAgICAgICAgICAgICAkUGFyYW17Q2hhbmdlTnVtYmVyfSwKICAgICAgICAgICAgICAgICRXb3JrT3JkZXJJRDJOdW1iZXJ7ICRVcGRhdGVQYXJhbXMtPntXb3JrT3JkZXJJRH0gfTsKCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fQogICAgICAgICAgICAgICAgICAgIC0+VHJhbnNsYXRlKCAnV2FzIG5vdCBhYmxlIHRvIG1vdmUgdGltZSBzbG90IGZvciB3b3Jrb3JkZXIgIyVzIScsICROdW1iZXIgKSwKICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBtb3Zpbmcgd2FzIHN1Y2Nlc3NmdWwKICAgIHJldHVybjsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMChangeZoom.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTUNoYW5nZVpvb207Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBnZXQgcGFyYW1zCiAgICBteSAkQ2hhbmdlSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAiQ2hhbmdlSUQiICk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRDaGFuZ2VJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBDaGFuZ2VJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJENvbmZpZ09iamVjdC0+R2V0KCJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgQWN0aW9uICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZXJyb3Igc2NyZWVuLCBkb24ndCBzaG93IGNoYW5nZSB6b29tCiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIScsICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259ICksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBjaGFuZ2UgZGF0YQogICAgbXkgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGVycm9yCiAgICBpZiAoICEkQ2hhbmdlICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywgJENoYW5nZUlEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgY2xlYW4gdGhlIHJpY2ggdGV4dCBmaWVsZHMgZnJvbSBhY3RpdmUgSFRNTCBjb250ZW50CiAgICBBVFRSSUJVVEU6CiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAocXcoRGVzY3JpcHRpb24gSnVzdGlmaWNhdGlvbikpIHsKCiAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgISRDaGFuZ2UtPnskQXR0cmlidXRlfTsKCiAgICAgICAgIyByZW1vdmUgYWN0aXZlIGh0bWwgY29udGVudCAoc2NyaXB0cywgYXBwbGV0cywgZXRjLi4uKQogICAgICAgIG15ICVTYWZlQ29udGVudCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpIVE1MVXRpbHMnKS0+U2FmZXR5KAogICAgICAgICAgICBTdHJpbmcgICAgICAgPT4gJENoYW5nZS0+eyRBdHRyaWJ1dGV9LAogICAgICAgICAgICBOb0FwcGxldCAgICAgPT4gMSwKICAgICAgICAgICAgTm9PYmplY3QgICAgID0+IDEsCiAgICAgICAgICAgIE5vRW1iZWQgICAgICA9PiAxLAogICAgICAgICAgICBOb0ludFNyY0xvYWQgPT4gMCwKICAgICAgICAgICAgTm9FeHRTcmNMb2FkID0+IDAsCiAgICAgICAgICAgIE5vSmF2YVNjcmlwdCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgdGFrZSB0aGUgc2FmZSBjb250ZW50IGlmIG5lY2Nlc3NhcnkKICAgICAgICBpZiAoICRTYWZlQ29udGVudHtSZXBsYWNlfSApIHsKICAgICAgICAgICAgJENoYW5nZS0+eyRBdHRyaWJ1dGV9ID0gJFNhZmVDb250ZW50e1N0cmluZ307CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGxvZyBvYmplY3QKICAgIG15ICRMb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CgogICAgIyBoYW5kbGUgSFRNTFZpZXcKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdIVE1MVmlldycgKSB7CgogICAgICAgICMgZ2V0IHBhcmFtCiAgICAgICAgbXkgJEZpZWxkID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gIkZpZWxkIiApOwoKICAgICAgICAjIG5lZWRlZCBwYXJhbQogICAgICAgIGlmICggISRGaWVsZCApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWRlZCBQYXJhbTogJEZpZWxkISIsCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGVycm9yIGNoZWNraW5nCiAgICAgICAgaWYgKCAkRmllbGQgbmUgJ0Rlc2NyaXB0aW9uJyAmJiAkRmllbGQgbmUgJ0p1c3RpZmljYXRpb24nICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVW5rbm93biBmaWVsZDogJEZpZWxkISBGaWVsZCBtdXN0IGJlIGVpdGhlciBEZXNjcmlwdGlvbiBvciBKdXN0aWZpY2F0aW9uISIsCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGdldCB0aGUgRmllbGQgY29udGVudAogICAgICAgIG15ICRGaWVsZENvbnRlbnQgPSAkQ2hhbmdlLT57JEZpZWxkfTsKCiAgICAgICAgIyBidWlsZCBiYXNlIFVSTCBmb3IgaW4tbGluZSBpbWFnZXMgaWYgbm8gc2Vzc2lvbiBjb29raWVzIGFyZSB1c2VkCiAgICAgICAgbXkgJFNlc3Npb25JRCA9ICcnOwogICAgICAgIGlmICggJFNlbGYtPntTZXNzaW9uSUR9ICYmICEkU2VsZi0+e1Nlc3Npb25JRENvb2tpZX0gKSB7CiAgICAgICAgICAgICRTZXNzaW9uSUQgPSAnOycgLiAkU2VsZi0+e1Nlc3Npb25OYW1lfSAuICc9JyAuICRTZWxmLT57U2Vzc2lvbklEfTsKICAgICAgICAgICAgJEZpZWxkQ29udGVudCA9fiBzewogICAgICAgICAgICAgICAgKEFjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO1N1YmFjdGlvbj1Eb3dubG9hZEF0dGFjaG1lbnQ7RmlsZW5hbWU9Lis7Q2hhbmdlSUQ9XGQrKQogICAgICAgICAgICB9eyQxJFNlc3Npb25JRH1nbXN4OwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgSFRNTCB1dGlscyBvYmplY3QKICAgICAgICBteSAkSFRNTFV0aWxzT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpOwoKICAgICAgICAjIGRldGVjdCBhbGwgcGxhaW4gdGV4dCBsaW5rcyBhbmQgcHV0IHRoZW0gaW50byBhbiBIVE1MIDxhPiB0YWcKICAgICAgICAkRmllbGRDb250ZW50ID0gJEhUTUxVdGlsc09iamVjdC0+TGlua1F1b3RlKAogICAgICAgICAgICBTdHJpbmcgPT4gJEZpZWxkQ29udGVudCwKICAgICAgICApOwoKICAgICAgICAjIHNldCB0YXJnZXQ9Il9ibGFuayIgYXR0cmlidXRlIHRvIGFsbCBIVE1MIDxhPiB0YWdzCiAgICAgICAgIyB0aGUgTGlua1F1b3RlIGZ1bmN0aW9uIG5lZWRzIHRvIGJlIGNhbGxlZCBhZ2FpbgogICAgICAgICRGaWVsZENvbnRlbnQgPSAkSFRNTFV0aWxzT2JqZWN0LT5MaW5rUXVvdGUoCiAgICAgICAgICAgIFN0cmluZyAgICA9PiAkRmllbGRDb250ZW50LAogICAgICAgICAgICBUYXJnZXRBZGQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCBuZWVkZWQgSFRNTCBoZWFkZXJzCiAgICAgICAgJEZpZWxkQ29udGVudCA9ICRIVE1MVXRpbHNPYmplY3QtPkRvY3VtZW50Q29tcGxldGUoCiAgICAgICAgICAgIFN0cmluZyAgPT4gJEZpZWxkQ29udGVudCwKICAgICAgICAgICAgQ2hhcnNldCA9PiAndXRmLTgnLAogICAgICAgICk7CgogICAgICAgICMgcmV0dXJuIGNvbXBsZXRlIEhUTUwgYXMgYW4gYXR0YWNobWVudAogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRGaWVsZENvbnRlbnQsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGhhbmRsZSBEb3dubG9hZEF0dGFjaG1lbnQKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdEb3dubG9hZEF0dGFjaG1lbnQnICkgewoKICAgICAgICAjIGdldCBkYXRhIGZvciBhdHRhY2htZW50CiAgICAgICAgbXkgJEZpbGVuYW1lICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0ZpbGVuYW1lJyApOwogICAgICAgIG15ICRBdHRhY2htZW50RGF0YSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUF0dGFjaG1lbnRHZXQoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgRmlsZW5hbWUgPT4gJEZpbGVuYW1lLAogICAgICAgICk7CgogICAgICAgICMgcmV0dXJuIGVycm9yIGlmIGZpbGUgZG9lcyBub3QgZXhpc3QKICAgICAgICBpZiAoICEkQXR0YWNobWVudERhdGEgKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJObyBzdWNoIGF0dGFjaG1lbnQgKCRGaWxlbmFtZSkhIE1heSBiZSBhbiBhdHRhY2shISEiLAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgJXskQXR0YWNobWVudERhdGF9LAogICAgICAgICAgICBUeXBlID0+ICdhdHRhY2htZW50JywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHNlc3Npb24gb2JqZWN0CiAgICBteSAkU2Vzc2lvbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpOwoKICAgICMgU3RvcmUgTGFzdENoYW5nZVZpZXcsIGZvciBiYWNrbGlua3MgZnJvbSBjaGFuZ2Ugc3BlY2lmaWMgcGFnZXMKICAgICRTZXNzaW9uT2JqZWN0LT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RDaGFuZ2VWaWV3JywKICAgICAgICBWYWx1ZSAgICAgPT4gJFNlbGYtPntSZXF1ZXN0ZWRVUkx9LAogICAgKTsKCiAgICAjIFN0b3JlIExhc3RTY3JlZW5PdmVydmlldywgZm9yIGJhY2tsaW5rcyBmcm9tIEFnZW50TGlua09iamVjdAogICAgJFNlc3Npb25PYmplY3QtPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlbk92ZXJ2aWV3JywKICAgICAgICBWYWx1ZSAgICAgPT4gJFNlbGYtPntSZXF1ZXN0ZWRVUkx9LAogICAgKTsKCiAgICAjIFN0b3JlIExhc3RTY3JlZW5PdmVydmlldywgZm9yIGJhY2tsaW5rcyBmcm9tIEFnZW50TGlua09iamVjdAogICAgJFNlc3Npb25PYmplY3QtPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlblZpZXcnLAogICAgICAgIFZhbHVlICAgICA9PiAkU2VsZi0+e1JlcXVlc3RlZFVSTH0sCiAgICApOwoKICAgICMgU3RvcmUgTGFzdFNjcmVlbldvcmtPcmRlcnMsIGZvciBiYWNrbGlua3MgZnJvbSBJVFNNV29ya09yZGVyWm9vbQogICAgJFNlc3Npb25PYmplY3QtPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlbldvcmtPcmRlcnMnLAogICAgICAgIFZhbHVlICAgICA9PiAkU2VsZi0+e1JlcXVlc3RlZFVSTH0sCiAgICApOwoKICAgICMgcnVuIGNoYW5nZSBtZW51IG1vZHVsZXMKICAgIGlmICggcmVmICRDb25maWdPYmplY3QtPkdldCgnSVRTTUNoYW5nZTo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUnKSBlcSAnSEFTSCcgKSB7CgogICAgICAgICMgZ2V0IGl0ZW1zIGZvciBtZW51CiAgICAgICAgbXkgJU1lbnVzICAgPSAleyAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01DaGFuZ2U6OkZyb250ZW5kOjpNZW51TW9kdWxlJykgfTsKICAgICAgICBteSAkQ291bnRlciA9IDA7CgogICAgICAgIGZvciBteSAkTWVudSAoIHNvcnQga2V5cyAlTWVudXMgKSB7CgogICAgICAgICAgICAjIGxvYWQgbW9kdWxlCiAgICAgICAgICAgIGlmICggJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+UmVxdWlyZSggJE1lbnVzeyRNZW51fS0+e01vZHVsZX0gKSApIHsKICAgICAgICAgICAgICAgIG15ICRPYmplY3QgPSAkTWVudXN7JE1lbnV9LT57TW9kdWxlfS0+bmV3KAogICAgICAgICAgICAgICAgICAgICV7JFNlbGZ9LAogICAgICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBzZXQgY2xhc3NlcwogICAgICAgICAgICAgICAgaWYgKCAkTWVudXN7JE1lbnV9LT57VGFyZ2V0fSApIHsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkTWVudXN7JE1lbnV9LT57VGFyZ2V0fSBlcSAnUG9wVXAnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkTWVudXN7JE1lbnV9LT57TWVudUNsYXNzfSA9ICdBc1BvcHVwJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkTWVudXN7JE1lbnV9LT57VGFyZ2V0fSBlcSAnQmFjaycgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRNZW51c3skTWVudX0tPntNZW51Q2xhc3N9ID0gJ0hpc3RvcnlCYWNrJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBydW4gbW9kdWxlCiAgICAgICAgICAgICAgICAkQ291bnRlciA9ICRPYmplY3QtPlJ1bigKICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlICA9PiAkQ2hhbmdlLAogICAgICAgICAgICAgICAgICAgIENvdW50ZXIgPT4gJENvdW50ZXIsCiAgICAgICAgICAgICAgICAgICAgQ29uZmlnICA9PiAkTWVudXN7JE1lbnV9LAogICAgICAgICAgICAgICAgICAgIE1lbnVJRCAgPT4gJE1lbnUsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkZhdGFsRXJyb3IoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIG91dHB1dCBoZWFkZXIKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVmFsdWUgPT4gJENoYW5nZS0+e0NoYW5nZVRpdGxlfSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAjIGJ1aWxkIHdvcmtvcmRlciBncmFwaCBpbiBsYXlvdXQgb2JqZWN0CiAgICBteSAkV29ya09yZGVyR3JhcGggPSAkTGF5b3V0T2JqZWN0LT5JVFNNQ2hhbmdlQnVpbGRXb3JrT3JkZXJHcmFwaCgKICAgICAgICBDaGFuZ2UgICAgICAgICAgICAgPT4gJENoYW5nZSwKICAgICAgICBXb3JrT3JkZXJPYmplY3QgICAgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKSwKICAgICAgICBEeW5hbWljRmllbGRPYmplY3QgPT4gJER5bmFtaWNGaWVsZE9iamVjdCwKICAgICAgICBCYWNrZW5kT2JqZWN0ICAgICAgPT4gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QsCiAgICApOwoKICAgICMgZGlzcGxheSBncmFwaCB3aXRoaW4gYW4gb3duIGJsb2NrCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdXb3JrT3JkZXJHcmFwaCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdyYXBoID0+ICRXb3JrT3JkZXJHcmFwaCwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGdldCB1c2VyIG9iamVjdAogICAgbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICMgZ2V0IGFnZW50cyBwcmVmZXJlbmNlcwogICAgbXkgJVVzZXJQcmVmZXJlbmNlcyA9ICRVc2VyT2JqZWN0LT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIHJlbWVtYmVyIGlmIHVzZXIgYWxyZWFkeSBjbG9zZWQgbWVzc2FnZSBhYm91dCBsaW5rcyBpbiBpZnJhbWVzCiAgICBpZiAoICFkZWZpbmVkICRTZWxmLT57RG9Ob3RTaG93QnJvd3NlckxpbmtNZXNzYWdlfSApIHsKICAgICAgICBpZiAoICRVc2VyUHJlZmVyZW5jZXN7VXNlckFnZW50RG9Ob3RTaG93QnJvd3NlckxpbmtNZXNzYWdlfSApIHsKICAgICAgICAgICAgJFNlbGYtPntEb05vdFNob3dCcm93c2VyTGlua01lc3NhZ2V9ID0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTZWxmLT57RG9Ob3RTaG93QnJvd3NlckxpbmtNZXNzYWdlfSA9IDA7CiAgICAgICAgfQogICAgfQoKICAgICMgc2hvdyBtZXNzYWdlIGFib3V0IGxpbmtzIGluIGlmcmFtZXMsIGlmIHVzZXIgZGlkbid0IGNsb3NlIGl0IGFscmVhZHkKICAgIGlmICggISRTZWxmLT57RG9Ob3RTaG93QnJvd3NlckxpbmtNZXNzYWdlfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQnJvd3NlckxpbmtNZXNzYWdlJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHNlY3VyaXR5IHJlc3RyaWN0aW9uIHNldHRpbmcgZm9yIGlmcmFtZXMKICAgICMgc2VjdXJpdHk9InJlc3RyaWN0ZWQiIG1heSBicmVhayBTU08gLSBkaXNhYmxlIHRoaXMgZmVhdHVyZSBpZiByZXF1ZXN0ZWQKICAgIG15ICRNU1NlY3VyaXR5UmVzdHJpY3RlZDsKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdEaXNhYmxlTVNJRnJhbWVTZWN1cml0eVJlc3RyaWN0ZWQnKSApIHsKICAgICAgICAkTVNTZWN1cml0eVJlc3RyaWN0ZWQgPSAnJzsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRNU1NlY3VyaXR5UmVzdHJpY3RlZCA9ICdzZWN1cml0eT0icmVzdHJpY3RlZCInOwogICAgfQoKICAgICMgc2hvdyB0aGUgSFRNTCBmaWVsZCBibG9ja3MgYXMgaWZyYW1lcwogICAgZm9yIG15ICRGaWVsZCAocXcoRGVzY3JpcHRpb24gSnVzdGlmaWNhdGlvbikpIHsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Db250ZW50JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICBGaWVsZCAgICAgICAgICAgICAgICA9PiAkRmllbGQsCiAgICAgICAgICAgICAgICBNU1NlY3VyaXR5UmVzdHJpY3RlZCA9PiAkTVNTZWN1cml0eVJlc3RyaWN0ZWQsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBjaGFuZ2UgYnVpbGRlciBkYXRhCiAgICBteSAlQ2hhbmdlQnVpbGRlclVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgVXNlcklEID0+ICRDaGFuZ2UtPntDaGFuZ2VCdWlsZGVySUR9LAogICAgICAgIENhY2hlZCA9PiAxLAogICAgKTsKCiAgICAjIGdldCBjcmVhdGUgdXNlciBkYXRhCiAgICBteSAlQ3JlYXRlVXNlciA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICBVc2VySUQgPT4gJENoYW5nZS0+e0NyZWF0ZUJ5fSwKICAgICAgICBDYWNoZWQgPT4gMSwKICAgICk7CgogICAgIyBnZXQgY2hhbmdlIHVzZXIgZGF0YQogICAgbXkgJUNoYW5nZVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgVXNlcklEID0+ICRDaGFuZ2UtPntDaGFuZ2VCeX0sCiAgICAgICAgQ2FjaGVkID0+IDEsCiAgICApOwoKICAgICMgYWxsIHBvc3RmaXhlcyBuZWVkZWQgZm9yIHVzZXIgaW5mb3JtYXRpb24KICAgIG15IEBQb3N0Zml4ZXMgPSBxdyhVc2VyRnVsbG5hbWUpOwoKICAgICMgZ2V0IHVzZXIgaW5mb3JtYXRpb24gZm9yIENoYW5nZUJ1aWxkZXIsIENyZWF0ZUJ5LCBDaGFuZ2VCeQogICAgZm9yIG15ICRQb3N0Zml4IChAUG9zdGZpeGVzKSB7CiAgICAgICAgJENoYW5nZS0+eyAnQ2hhbmdlQnVpbGRlcicgLiAkUG9zdGZpeCB9ID0gJENoYW5nZUJ1aWxkZXJVc2VyeyRQb3N0Zml4fTsKICAgICAgICAkQ2hhbmdlLT57ICdDcmVhdGUnIC4gJFBvc3RmaXggfSAgICAgICAgPSAkQ3JlYXRlVXNlcnskUG9zdGZpeH07CiAgICAgICAgJENoYW5nZS0+eyAnQ2hhbmdlJyAuICRQb3N0Zml4IH0gICAgICAgID0gJENoYW5nZVVzZXJ7JFBvc3RmaXh9OwogICAgfQoKICAgICMgb3V0cHV0IG1ldGEgYmxvY2sKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ01ldGEnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAleyRDaGFuZ2V9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgc2hvdyB2YWx1ZXMgb3IgZGFzaCAoJy0nKQogICAgZm9yIG15ICRCbG9ja05hbWUgKHF3KFBsYW5uZWRTdGFydFRpbWUgUGxhbm5lZEVuZFRpbWUgQWN0dWFsU3RhcnRUaW1lIEFjdHVhbEVuZFRpbWUpKSB7CiAgICAgICAgaWYgKCAkQ2hhbmdlLT57JEJsb2NrTmFtZX0gKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAkQmxvY2tOYW1lLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJEJsb2NrTmFtZSA9PiAkQ2hhbmdlLT57JEJsb2NrTmFtZX0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdFbXB0eScgLiAkQmxvY2tOYW1lLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNob3cgY29uZmlndXJhYmxlIGJsb2NrcwogICAgQkxPQ0tOQU1FOgogICAgZm9yIG15ICRCbG9ja05hbWUgKHF3KFJlcXVlc3RlZFRpbWUgUGxhbm5lZEVmZm9ydCBBY2NvdW50ZWRUaW1lKSkgewoKICAgICAgICAjIHNraXAgaWYgYmxvY2sgaXMgc3dpdGNoZWQgb2ZmIGluIFN5c0NvbmZpZwogICAgICAgIG5leHQgQkxPQ0tOQU1FIGlmICEkU2VsZi0+e0NvbmZpZ30tPnskQmxvY2tOYW1lfTsKCiAgICAgICAgIyBzaG93IGJsb2NrCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1Nob3cnIC4gJEJsb2NrTmFtZSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgdmFsdWUgb3IgZGFzaAogICAgICAgIGlmICggJENoYW5nZS0+eyRCbG9ja05hbWV9ICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJEJsb2NrTmFtZSwKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICRCbG9ja05hbWUgPT4gJENoYW5nZS0+eyRCbG9ja05hbWV9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRW1wdHknIC4gJEJsb2NrTmFtZSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzaG93IENJUAogICAgZm9yIG15ICRUeXBlIChxdyhDYXRlZ29yeSBJbXBhY3QgUHJpb3JpdHkpKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJFR5cGUsCiAgICAgICAgICAgIERhdGEgPT4geyAleyRDaGFuZ2V9IH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBteSAkRHluYW1pY0ZpZWxkID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9IHx8IHt9LAogICAgKTsKCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICBteSAkVmFsdWUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVHZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHByaW50IHN0cmluZyBmb3IgdGhpcyBkeW5hbWljIGZpZWxkCiAgICAgICAgbXkgJFZhbHVlU3RyZyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5EaXNwbGF5VmFsdWVSZW5kZXIoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJFZhbHVlLAogICAgICAgICAgICBWYWx1ZU1heENoYXJzICAgICAgPT4gMTAwLAogICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICApOwoKICAgICAgICAjIGZvciBlbXB0eSB2YWx1ZXMKICAgICAgICBpZiAoICEkVmFsdWVTdHJnLT57VmFsdWV9ICkgewogICAgICAgICAgICAkVmFsdWVTdHJnLT57VmFsdWV9ID0gJy0nOwogICAgICAgIH0KCiAgICAgICAgbXkgJExhYmVsID0gJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTGFiZWwgPT4gJExhYmVsLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIGlmICggJFZhbHVlU3RyZy0+e0xpbmt9ICkgewoKICAgICAgICAgICAgIyBvdXRwdXQgbGluayBlbGVtZW50CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRHluYW1pY0ZpZWxkTGluaycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAleyRDaGFuZ2V9LAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgICAgICAgICA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAgICAgICAgICAgICAgICAgIExpbmsgICAgICAgICAgICAgICAgICAgICAgICA9PiAkVmFsdWVTdHJnLT57TGlua30sCiAgICAgICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9ID0+ICRWYWx1ZVN0cmctPntUaXRsZX0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBvdXRwdXQgbm9uIGxpbmsgZWxlbWVudAogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZFBsYWluJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICAgICAgVGl0bGUgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGV4YW1wbGUgb2YgZHluYW1pYyBmaWVsZHMgb3JkZXIgY3VzdG9taXphdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdEeW5hbWljRmllbGQnIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9LAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIExhYmVsID0+ICRMYWJlbCwKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICBUaXRsZSA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY2hhbmdlIG1hbmFnZXIgZGF0YQogICAgbXkgJUNoYW5nZU1hbmFnZXJVc2VyOwogICAgaWYgKCAkQ2hhbmdlLT57Q2hhbmdlTWFuYWdlcklEfSApIHsKCiAgICAgICAgIyBnZXQgY2hhbmdlIG1hbmFnZXIgZGF0YQogICAgICAgICVDaGFuZ2VNYW5hZ2VyVXNlciA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRDaGFuZ2UtPntDaGFuZ2VNYW5hZ2VySUR9LAogICAgICAgICAgICBDYWNoZWQgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBtYW5hZ2VyIGluZm9ybWF0aW9uCiAgICBmb3IgbXkgJFBvc3RmaXggKHF3KFVzZXJGdWxsbmFtZSkpIHsKICAgICAgICAkQ2hhbmdlLT57ICdDaGFuZ2VNYW5hZ2VyJyAuICRQb3N0Zml4IH0gPSAkQ2hhbmdlTWFuYWdlclVzZXJ7JFBvc3RmaXh9IHx8ICcnOwogICAgfQoKICAgICMgb3V0cHV0IGNoYW5nZSBtYW5hZ2VyIGJsb2NrCiAgICBpZiAoJUNoYW5nZU1hbmFnZXJVc2VyKSB7CgogICAgICAgICMgc2hvdyBuYW1lIGFuZCBtYWlsIGFkZHJlc3MgaWYgdXNlciBleGlzdHMKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQ2hhbmdlTWFuYWdlcicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJXskQ2hhbmdlfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgc2hvdyBkYXNoIGlmIG5vIGNoYW5nZSBtYW5hZ2VyIGV4aXN0cwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdFbXB0eUNoYW5nZU1hbmFnZXInLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY3VzdG9tZXIgdXNlciBvYmplY3QKICAgIG15ICRDdXN0b21lclVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyk7CgogICAgIyBzaG93IENBQiBibG9jayB3aGVuIHRoZXJlIGlzIGEgQ0FCCiAgICBpZiAoIEB7ICRDaGFuZ2UtPntDQUJBZ2VudHN9IH0gfHwgQHsgJENoYW5nZS0+e0NBQkN1c3RvbWVyc30gfSApIHsKCiAgICAgICAgIyBvdXRwdXQgQ0FCIGJsb2NrCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0NBQicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJXskQ2hhbmdlfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGJ1aWxkIGFuZCBvdXRwdXQgQ0FCIGFnZW50cwogICAgICAgIENBQkFHRU5UOgogICAgICAgIGZvciBteSAkQ0FCQWdlbnQgKCBAeyAkQ2hhbmdlLT57Q0FCQWdlbnRzfSB9ICkgewogICAgICAgICAgICBuZXh0IENBQkFHRU5UIGlmICEkQ0FCQWdlbnQ7CgogICAgICAgICAgICBteSAlQ0FCQWdlbnRVc2VyRGF0YSA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkQ0FCQWdlbnQsCiAgICAgICAgICAgICAgICBDYWNoZSAgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgQ0FCQUdFTlQgaWYgISVDQUJBZ2VudFVzZXJEYXRhOwoKICAgICAgICAgICAgIyBidWlsZCBjb250ZW50IGZvciBhZ2VudCBibG9jawogICAgICAgICAgICBteSAlQ0FCQWdlbnREYXRhOwogICAgICAgICAgICBmb3IgbXkgJFBvc3RmaXggKEBQb3N0Zml4ZXMpIHsKICAgICAgICAgICAgICAgICRDQUJBZ2VudERhdGF7ICdDQUJBZ2VudCcgLiAkUG9zdGZpeCB9ID0gJENBQkFnZW50VXNlckRhdGF7JFBvc3RmaXh9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG91dHB1dCBhZ2VudCBibG9jawogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NBQkFnZW50JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVDQUJBZ2VudERhdGEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBhbmQgb3V0cHV0IENBQiBjdXN0b21lcnMKICAgICAgICBDQUJDVVNUT01FUjoKICAgICAgICBmb3IgbXkgJENBQkN1c3RvbWVyICggQHsgJENoYW5nZS0+e0NBQkN1c3RvbWVyc30gfSApIHsKICAgICAgICAgICAgbmV4dCBDQUJDVVNUT01FUiBpZiAhJENBQkN1c3RvbWVyOwoKICAgICAgICAgICAgbXkgJUNBQkN1c3RvbWVyVXNlckRhdGEgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lclVzZXJEYXRhR2V0KAogICAgICAgICAgICAgICAgVXNlciA9PiAkQ0FCQ3VzdG9tZXIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IENBQkNVU1RPTUVSIGlmICElQ0FCQ3VzdG9tZXJVc2VyRGF0YTsKCiAgICAgICAgICAgICMgYnVpbGQgY29udGVudCBmb3IgQ0FCIGN1c3RvbWVyIGJsb2NrCiAgICAgICAgICAgIG15ICVDQUJDdXN0b21lckRhdGE7CiAgICAgICAgICAgIGZvciBteSAkUG9zdGZpeCAoQFBvc3RmaXhlcykgewogICAgICAgICAgICAgICAgJENBQkN1c3RvbWVyRGF0YXsgJ0NBQkN1c3RvbWVyJyAuICRQb3N0Zml4IH0gPSAkQ0FCQ3VzdG9tZXJVc2VyRGF0YXskUG9zdGZpeH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3V0cHV0IENBQiBjdXN0b21lciBibG9jawogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NBQkN1c3RvbWVyJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVDQUJDdXN0b21lckRhdGEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNob3cgZGFzaCB3aGVuIG5vIENBQiBleGlzdHMKICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdFbXB0eUNBQicsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBsaW5rIG9iamVjdAogICAgbXkgJExpbmtPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcpOwoKICAgICMgZ2V0IGxpbmtlZCBvYmplY3RzIHdoaWNoIGFyZSBkaXJlY3RseSBsaW5rZWQgd2l0aCB0aGlzIGNoYW5nZSBvYmplY3QKICAgIG15ICRMaW5rTGlzdFdpdGhEYXRhID0gJExpbmtPYmplY3QtPkxpbmtMaXN0V2l0aERhdGEoCiAgICAgICAgT2JqZWN0ID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBLZXkgICAgPT4gJENoYW5nZUlELAogICAgICAgIFN0YXRlICA9PiAnVmFsaWQnLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IGNoYW5nZSBpbml0aWF0b3JzIChjdXN0b21lciB1c2VycyBvZiBsaW5rZWQgdGlja2V0cykKICAgIG15ICRUaWNrZXRzUmVmID0gJExpbmtMaXN0V2l0aERhdGEtPntUaWNrZXR9IHx8IHt9OwogICAgbXkgJUNoYW5nZUluaXRpYXRvcnNJRDsKICAgIGZvciBteSAkTGlua1R5cGUgKCBzb3J0IGtleXMgJXskVGlja2V0c1JlZn0gKSB7CgogICAgICAgIG15ICRUaWNrZXRSZWYgPSAkVGlja2V0c1JlZi0+eyRMaW5rVHlwZX0tPntTb3VyY2V9OwogICAgICAgIGZvciBteSAkVGlja2V0SUQgKCBzb3J0IGtleXMgJXskVGlja2V0UmVmfSApIHsKCiAgICAgICAgICAgICMgZ2V0IGlkIG9mIGN1c3RvbWVyIHVzZXIKICAgICAgICAgICAgbXkgJEN1c3RvbWVyVXNlcklEID0gJFRpY2tldFJlZi0+eyRUaWNrZXRJRH0tPntDdXN0b21lclVzZXJJRH07CgogICAgICAgICAgICAjIGlmIGEgY3VzdG9tZXIKICAgICAgICAgICAgaWYgKCRDdXN0b21lclVzZXJJRCkgewogICAgICAgICAgICAgICAgJENoYW5nZUluaXRpYXRvcnNJRHskQ3VzdG9tZXJVc2VySUR9ID0gJ0N1c3RvbWVyVXNlcic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBteSAkT3duZXJJRCA9ICRUaWNrZXRSZWYtPnskVGlja2V0SUR9LT57T3duZXJJRH07CiAgICAgICAgICAgICAgICAkQ2hhbmdlSW5pdGlhdG9yc0lEeyRPd25lcklEfSA9ICdVc2VyJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBjaGFuZ2UgaW5pdGlhdG9ycyBpbmZvCiAgICBpZiAoIGtleXMgJUNoYW5nZUluaXRpYXRvcnNJRCApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQ2hhbmdlSW5pdGlhdG9yRXhpc3RzJywKICAgICAgICApOwogICAgfQoKICAgIG15ICRDaGFuZ2VJbml0aWF0b3JzID0gJyc7CiAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQga2V5cyAlQ2hhbmdlSW5pdGlhdG9yc0lEICkgewogICAgICAgIG15ICVVc2VyOwoKICAgICAgICAjIGdldCBjdXN0b21lciB1c2VyIGluZm8gaWYgQ0kgaXMgYSBjdXN0b21lciB1c2VyCiAgICAgICAgaWYgKCAkQ2hhbmdlSW5pdGlhdG9yc0lEeyRVc2VySUR9IGVxICdDdXN0b21lclVzZXInICkgewogICAgICAgICAgICAlVXNlciA9ICRDdXN0b21lclVzZXJPYmplY3QtPkN1c3RvbWVyVXNlckRhdGFHZXQoCiAgICAgICAgICAgICAgICBVc2VyID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSBnZXQgdXNlciBpbmZvCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICVVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGlmIHVzZXIgaW5mbyBleGlzdAogICAgICAgIGlmICglVXNlcikgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NoYW5nZUluaXRpYXRvcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHslVXNlcn0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkQ2hhbmdlSW5pdGlhdG9ycyAuPSAkVXNlcntVc2VyRnVsbG5hbWV9OwogICAgICAgIH0KICAgIH0KCiAgICAjIHNob3cgZGFzaCBpZiBubyBjaGFuZ2UgaW5pdGlhdG9yIGV4aXN0cwogICAgaWYgKCAhJENoYW5nZUluaXRpYXRvcnMgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0VtcHR5Q2hhbmdlSW5pdGlhdG9ycycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGRpc3BsYXkgYSBzdHJpbmcgd2l0aCBhbGwgY2hhbmdlaW5pdGlhdG9ycwogICAgJENoYW5nZS0+eydDaGFuZ2UgSW5pdGF0b3JzJ30gPSAkQ2hhbmdlSW5pdGlhdG9yczsKCiAgICAjIHN0b3JlIHRoZSBjb21iaW5lZCBsaW5rZWQgb2JqZWN0cyBmcm9tIGFsbCB3b3Jrb3JkZXJzIG9mIHRoaXMgY2hhbmdlCiAgICBteSAkTGlua0xpc3RXaXRoRGF0YUNvbWJpbmVkV29ya09yZGVycyA9IHt9OwogICAgZm9yIG15ICRXb3JrT3JkZXJJRCAoIEB7ICRDaGFuZ2UtPntXb3JrT3JkZXJJRHN9IH0gKSB7CgogICAgICAgICMgZ2V0IGxpbmtlZCBvYmplY3RzIG9mIHRoaXMgd29ya29yZGVyCiAgICAgICAgbXkgJExpbmtMaXN0V2l0aERhdGFXb3JrT3JkZXIgPSAkTGlua09iamVjdC0+TGlua0xpc3RXaXRoRGF0YSgKICAgICAgICAgICAgT2JqZWN0ID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgS2V5ICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgU3RhdGUgID0+ICdWYWxpZCcsCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgT0JKRUNUOgogICAgICAgIGZvciBteSAkT2JqZWN0ICggc29ydCBrZXlzICV7JExpbmtMaXN0V2l0aERhdGFXb3JrT3JkZXJ9ICkgewoKICAgICAgICAgICAgIyBvbmx5IHNob3cgbGlua2VkIHNlcnZpY2VzIGFuZCBjb25maWcgaXRlbXMgb2Ygd29ya29yZGVyCiAgICAgICAgICAgIGlmICggJE9iamVjdCBuZSAnU2VydmljZScgJiYgJE9iamVjdCBuZSAnSVRTTUNvbmZpZ0l0ZW0nICkgewogICAgICAgICAgICAgICAgbmV4dCBPQkpFQ1Q7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIExJTktUWVBFOgogICAgICAgICAgICBmb3IgbXkgJExpbmtUeXBlICggc29ydCBrZXlzICV7ICRMaW5rTGlzdFdpdGhEYXRhV29ya09yZGVyLT57JE9iamVjdH0gfSApIHsKCiAgICAgICAgICAgICAgICBESVJFQ1RJT046CiAgICAgICAgICAgICAgICBmb3IgbXkgJERpcmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgc29ydCBrZXlzICV7ICRMaW5rTGlzdFdpdGhEYXRhV29ya09yZGVyLT57JE9iamVjdH0tPnskTGlua1R5cGV9IH0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKAogICAgICAgICAgICAgICAgICAgICAgICBzb3J0CiAgICAgICAgICAgICAgICAgICAgICAgIGtleXMgJXsgJExpbmtMaXN0V2l0aERhdGFXb3JrT3JkZXItPnskT2JqZWN0fS0+eyRMaW5rVHlwZX0tPnskRGlyZWN0aW9ufSB9CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGNvbWJpbmUgdGhlIGxpbmtlZCBvYmplY3QgZGF0YSBmcm9tIGFsbCB3b3Jrb3JkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICRMaW5rTGlzdFdpdGhEYXRhQ29tYmluZWRXb3JrT3JkZXJzLT57JE9iamVjdH0tPnskTGlua1R5cGV9LT57JERpcmVjdGlvbn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+eyRJRH0gPSAkTGlua0xpc3RXaXRoRGF0YVdvcmtPcmRlci0+eyRPYmplY3R9LT57JExpbmtUeXBlfS0+eyREaXJlY3Rpb259CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPnskSUR9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGFkZCBjb21iaW5lZCBsaW5rZWQgb2JqZWN0cyBmcm9tIHdvcmtvcmRlciB0byBsaW5rZWQgb2JqZWN0cyBmcm9tIGNoYW5nZSBvYmplY3QKICAgICRMaW5rTGlzdFdpdGhEYXRhID0gewogICAgICAgICV7JExpbmtMaXN0V2l0aERhdGF9LAogICAgICAgICV7JExpbmtMaXN0V2l0aERhdGFDb21iaW5lZFdvcmtPcmRlcnN9LAogICAgfTsKCiAgICAjIGdldCBsaW5rIHRhYmxlIHZpZXcgbW9kZQogICAgbXkgJExpbmtUYWJsZVZpZXdNb2RlID0gJENvbmZpZ09iamVjdC0+R2V0KCdMaW5rT2JqZWN0OjpWaWV3TW9kZScpOwoKICAgICMgY29udmVydCB0byBKU09OIHN0cmluZwogICAgbXkgJEFkZGl0aW9uYWxMaW5rTGlzdFdpdGhEYXRhSlNPTlN0cmluZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpKU09OJyktPkVuY29kZSgKICAgICAgICBEYXRhID0+ICRMaW5rTGlzdFdpdGhEYXRhQ29tYmluZWRXb3JrT3JkZXJzLAogICAgKTsKCiAgICAjIGNyZWF0ZSB0aGUgbGluayB0YWJsZQogICAgbXkgJExpbmtUYWJsZVN0cmcgPSAkTGF5b3V0T2JqZWN0LT5MaW5rT2JqZWN0VGFibGVDcmVhdGUoCiAgICAgICAgTGlua0xpc3RXaXRoRGF0YSAgICAgICAgICAgICAgID0+ICRMaW5rTGlzdFdpdGhEYXRhLAogICAgICAgIFZpZXdNb2RlICAgICAgICAgICAgICAgICAgICAgICA9PiAkTGlua1RhYmxlVmlld01vZGUsCiAgICAgICAgT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBLZXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgIEFkZGl0aW9uYWxMaW5rTGlzdFdpdGhEYXRhSlNPTiA9PiAkQWRkaXRpb25hbExpbmtMaXN0V2l0aERhdGFKU09OU3RyaW5nLAogICAgKTsKCiAgICAjIG91dHB1dCB0aGUgbGluayB0YWJsZQogICAgaWYgKCRMaW5rVGFibGVTdHJnKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0xpbmtUYWJsZScgLiAkTGlua1RhYmxlVmlld01vZGUsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTGlua1RhYmxlU3RyZyA9PiAkTGlua1RhYmxlU3RyZywKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGF0dGFjaG1lbnRzCiAgICBteSBAQXR0YWNobWVudHMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBdHRhY2htZW50TGlzdCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICApOwoKICAgICMgc2hvdyBhdHRhY2htZW50cwogICAgQVRUQUNITUVOVDoKICAgIGZvciBteSAkRmlsZW5hbWUgKEBBdHRhY2htZW50cykgewoKICAgICAgICAjIGdldCBpbmZvIGFib3V0IGZpbGUKICAgICAgICBteSAkQXR0YWNobWVudERhdGEgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBdHRhY2htZW50R2V0KAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIEZpbGVuYW1lID0+ICRGaWxlbmFtZSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGZvciBhdHRhY2htZW50IGluZm9ybWF0aW9uCiAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICEkQXR0YWNobWVudERhdGE7CgogICAgICAgICMgZG8gbm90IHNob3cgaW5saW5lIGF0dGFjaG1lbnRzIGluIGF0dGFjaG1lbnRzIGxpc3QgKHRoZXkgaGF2ZSBhIGNvbnRlbnQgaWQpCiAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICRBdHRhY2htZW50RGF0YS0+e1ByZWZlcmVuY2VzfS0+e0NvbnRlbnRJRH07CgogICAgICAgICMgc2hvdyBibG9jawogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBdHRhY2htZW50Um93JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAleyRDaGFuZ2V9LAogICAgICAgICAgICAgICAgJXskQXR0YWNobWVudERhdGF9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgZm9yIG15ICRIZWlnaHRTZXR0aW5nIChxdyhEZWZhdWx0IE1heCkpIHsKICAgICAgICBteSAkRnVsbFNldHRpbmcgPSAnSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SFRNTEZpZWxkSGVpZ2h0JyAuICRIZWlnaHRTZXR0aW5nOwogICAgICAgIG15ICRWYWx1ZSAgICAgICA9IGludCggJENvbmZpZ09iamVjdC0+R2V0KCRGdWxsU2V0dGluZykgfHwgMCApOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgIEtleSAgID0+ICRGdWxsU2V0dGluZywKICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlLAogICAgICAgICk7CiAgICB9CgogICAgIyBzdGFydCB0ZW1wbGF0ZSBvdXRwdXQKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNQ2hhbmdlWm9vbScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJXskQ2hhbmdlfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCBmb290ZXIKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMTemplateDelete.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVRlbXBsYXRlRGVsZXRlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgY29uZmlnIGZvciBmcm9udGVuZAogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGVycm9yIHNjcmVlbgogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9uIScsICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259ICksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBuZWVkZWQgVGVtcGxhdGVJRAogICAgbXkgJFRlbXBsYXRlSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAnVGVtcGxhdGVJRCcgKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFRlbXBsYXRlSUQgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgdGVtcGxhdGUgb2JqZWN0CiAgICBteSAkVGVtcGxhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGUnKTsKCiAgICAjIGdldCB0ZW1wbGF0ZSBkYXRhCiAgICBteSAkVGVtcGxhdGUgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlR2V0KAogICAgICAgIFRlbXBsYXRlSUQgPT4gJFRlbXBsYXRlSUQsCiAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZXJyb3IKICAgIGlmICggISRUZW1wbGF0ZSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1RlbXBsYXRlICIlcyIgbm90IGZvdW5kIGluIGRhdGFiYXNlIScsICRUZW1wbGF0ZUlEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdUZW1wbGF0ZURlbGV0ZScgKSB7CgogICAgICAgIG15ICRDb3VsZERlbGV0ZVRlbXBsYXRlID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZURlbGV0ZSgKICAgICAgICAgICAgVGVtcGxhdGVJRCA9PiAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRDb3VsZERlbGV0ZVRlbXBsYXRlKSB7CgogICAgICAgICAgICAjIHJlZGlyZWN0IHRvIHRlbXBsYXRlIG92ZXJ2aWV3IG1hc2ssIHdoZW4gdXBkYXRlIHdhcyBzdWNjZXNzZnVsCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldyIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UsIHdoZW4gZGVsZXRlIGZhaWxlZAogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0KICAgICAgICAgICAgICAgICAgICAtPlRyYW5zbGF0ZSggJ1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIHRlbXBsYXRlICVzIScsICRUZW1wbGF0ZUlEICksCiAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgb3V0cHV0IGNvbnRlbnQKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudElUU01UZW1wbGF0ZURlbGV0ZScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJXskVGVtcGxhdGV9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgYnVpbGQgdGhlIHJldHVybmVkIGRhdGEgc3RydWN0dXJlCiAgICBteSAlRGF0YSA9ICgKICAgICAgICBIVE1MICAgICAgID0+ICRPdXRwdXQsCiAgICAgICAgRGlhbG9nVHlwZSA9PiAnQ29uZmlybWF0aW9uJywKICAgICk7CgogICAgIyByZXR1cm4gSlNPTi1TdHJpbmcgYmVjYXVzZSBvZiBBSkFYLU1vZGUKICAgIG15ICRPdXRwdXRKU09OID0gJExheW91dE9iamVjdC0+SlNPTkVuY29kZSggRGF0YSA9PiBcJURhdGEgKTsKCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICBDb250ZW50VHlwZSA9PiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD0nIC4gJExheW91dE9iamVjdC0+e0NoYXJzZXR9LAogICAgICAgIENvbnRlbnQgICAgID0+ICRPdXRwdXRKU09OLAogICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgIE5vQ2FjaGUgICAgID0+IDEsCiAgICApOwp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMTemplateEdit.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVRlbXBsYXRlRWRpdDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBmb3IgZnJvbnRlbmQKICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBBY3Rpb24gPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnLCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSApLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgbmVlZGVkIFRlbXBsYXRlSUQKICAgIG15ICRUZW1wbGF0ZUlEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1RlbXBsYXRlSUQnICk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRUZW1wbGF0ZUlEICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05vIFRlbXBsYXRlSUQgaXMgZ2l2ZW4hJyksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHRlbXBsYXRlIG9iamVjdAogICAgbXkgJFRlbXBsYXRlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlRlbXBsYXRlJyk7CgogICAgIyBnZXQgdGVtcGxhdGUgZGF0YQogICAgbXkgJFRlbXBsYXRlID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZUdldCgKICAgICAgICBUZW1wbGF0ZUlEID0+ICRUZW1wbGF0ZUlELAogICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGVycm9yCiAgICBpZiAoICEkVGVtcGxhdGUgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdUZW1wbGF0ZSAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnLCAkVGVtcGxhdGVJRCApLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAlR2V0UGFyYW07CgogICAgIyB1cGRhdGUgdGhlIHRlbXBsYXRlCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnVXBkYXRlVGVtcGxhdGUnICkgewoKICAgICAgICAjIHN0b3JlIG5lZWRlZCBwYXJhbWV0ZXJzIGluICVHZXRQYXJhbSB0byBtYWtlIGl0IHJlbG9hZGFibGUKICAgICAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoVGVtcGxhdGVOYW1lIENvbW1lbnQgVmFsaWRJRCkpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtTmFtZSApOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayB2YWxpZGl0eSBvZiB0aGUgdGVtcGxhdGUgbmFtZQogICAgICAgIG15ICRUZW1wbGF0ZU5hbWUgPSAkR2V0UGFyYW17VGVtcGxhdGVOYW1lfSB8fCAkVGVtcGxhdGUtPntOYW1lfTsKCiAgICAgICAgaWYgKCRUZW1wbGF0ZU5hbWUpIHsKCiAgICAgICAgICAgIG15ICRDb3VsZFVwZGF0ZVRlbXBsYXRlID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZVVwZGF0ZSgKICAgICAgICAgICAgICAgIFRlbXBsYXRlSUQgPT4gJFRlbXBsYXRlSUQsCiAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICRUZW1wbGF0ZU5hbWUsCiAgICAgICAgICAgICAgICBDb21tZW50ICAgID0+ICRHZXRQYXJhbXtDb21tZW50fSwKICAgICAgICAgICAgICAgIFZhbGlkSUQgICAgPT4gJEdldFBhcmFte1ZhbGlkSUR9IHx8ICRUZW1wbGF0ZS0+e1ZhbGlkSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJENvdWxkVXBkYXRlVGVtcGxhdGUpIHsKCiAgICAgICAgICAgICAgICAjIGxvYWQgbmV3IFVSTCBpbiBwYXJlbnQgd2luZG93IGFuZCBjbG9zZSBwb3B1cAogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlBvcHVwQ2xvc2UoCiAgICAgICAgICAgICAgICAgICAgVVJMID0+ICJBY3Rpb249QWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldyIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9CiAgICAgICAgICAgICAgICAgICAgICAgIC0+VHJhbnNsYXRlKCAnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBUZW1wbGF0ZSAlcyEnLCAkVGVtcGxhdGVJRCApLAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBubyBzdWJhY3Rpb24KICAgIH0KCiAgICAjIGZpeCB1cCB0aGUgbmFtZQogICAgJFRlbXBsYXRlLT57VGVtcGxhdGVOYW1lfSA9ICRHZXRQYXJhbXtUZW1wbGF0ZU5hbWV9IHx8ICRUZW1wbGF0ZS0+e05hbWV9OwoKICAgICMgb3V0cHV0IGhlYWRlcgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUeXBlICA9PiAnU21hbGwnLAogICAgICAgIFRpdGxlID0+ICRUZW1wbGF0ZS0+e1RlbXBsYXRlTmFtZX0sCiAgICApOwoKICAgICMgZ2V0IHZhbGlkIG9iamVjdAogICAgbXkgJFZhbGlkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CgogICAgbXkgJFZhbGlkU2VsZWN0aW9uU3RyaW5nID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICRWYWxpZE9iamVjdC0+VmFsaWRMaXN0KCksCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdWYWxpZElEJywKICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtWYWxpZElEfQogICAgICAgICAgICB8fCAkVGVtcGxhdGUtPntWYWxpZElEfQogICAgICAgICAgICB8fCAoICRWYWxpZE9iamVjdC0+VmFsaWRJRHNHZXQoKSApWzBdLAogICAgICAgIFNvcnQgID0+ICdOdW1lcmljS2V5JywKICAgICAgICBDbGFzcyA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBzdGFydCB0ZW1wbGF0ZSBvdXRwdXQKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNVGVtcGxhdGVFZGl0JywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAleyRUZW1wbGF0ZX0sCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgVmFsaWRTZWxlY3Rpb25TdHJpbmcgPT4gJFZhbGlkU2VsZWN0aW9uU3RyaW5nLAogICAgICAgIH0sCiAgICApOwoKICAgICMgYWRkIGZvb3RlcgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMTemplateEditCAB.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVRlbXBsYXRlRWRpdENBQjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgojIyBub2ZpbHRlcihUaWR5QWxsOjpQbHVnaW46OlpudW55OjpQZXJsOjpEdW1wZXIpCnVzZSBEYXRhOjpEdW1wZXI7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBBY3Rpb24gPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbiEnLCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSApLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBzdG9yZSBhbGwgbmVlZGVkIHBhcmFtZXRlcnMgaW4gJUdldFBhcmFtIHRvIG1ha2UgaXQgcmVsb2FkYWJsZQogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRQYXJhbU5hbWUgKAogICAgICAgIHF3KFRlbXBsYXRlSUQgVGVtcGxhdGVDb250ZW50IE5ld0NBQk1lbWJlciBOZXdDQUJNZW1iZXJTZWxlY3RlZCBOZXdDQUJNZW1iZXJUeXBlIEFkZENBQk1lbWJlcikKICAgICAgICApCiAgICB7CiAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtTmFtZSApOwogICAgfQoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkR2V0UGFyYW17VGVtcGxhdGVJRH0gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTm8gVGVtcGxhdGVJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgdGVtcGxhdGUgb2JqZWN0CiAgICBteSAkVGVtcGxhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGUnKTsKCiAgICAjIGdldCB0ZW1wbGF0ZSBkYXRhCiAgICBteSAkVGVtcGxhdGUgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlR2V0KAogICAgICAgIFRlbXBsYXRlSUQgPT4gJEdldFBhcmFte1RlbXBsYXRlSUR9LAogICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGVycm9yCiAgICBpZiAoICEkVGVtcGxhdGUgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0KICAgICAgICAgICAgICAgIC0+VHJhbnNsYXRlKCAnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywgJEdldFBhcmFte1RlbXBsYXRlSUR9ICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgb24gZmlyc3QgcGFnZSBsb2FkIHdlIGZpbGwgdGhlIHRlbXBsYXRlIGNvbnRlbnQgc3RyaW5nIHBhcmFtZXRlciBmcm9tIHRoZSB0ZW1wbGF0ZQogICAgaWYgKCAhJFNlbGYtPntTdWJhY3Rpb259ICkgewogICAgICAgICRHZXRQYXJhbXtUZW1wbGF0ZUNvbnRlbnR9ID0gJFRlbXBsYXRlLT57Q29udGVudH07CiAgICB9CgogICAgIyBkZS1zZXJpYWxpemUgdGhlIENBQiBjb250ZW50CiAgICBteSAkQ0FCUmVmZXJlbmNlID0gJFNlbGYtPl9DQUJEZVNlcmlhbGl6ZSgKICAgICAgICBDb250ZW50ID0+ICRHZXRQYXJhbXtUZW1wbGF0ZUNvbnRlbnR9LAogICAgICAgIFVzZXJJRCAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGlzIGNhYiBtZW1iZXIgZGVsZXRlIHJlcXVlc3RlZAogICAgbXkgJURlbGV0ZU1lbWJlciA9ICRTZWxmLT5fSXNNZW1iZXJEZWxldGlvbigKICAgICAgICBDQUJSZWZlcmVuY2UgPT4gJENBQlJlZmVyZW5jZSwKICAgICk7CiAgICBpZiAoJURlbGV0ZU1lbWJlcikgewoKICAgICAgICAjIGZpbmQgdXNlcnMgd2hvIGFyZSBzdGlsbCBtZW1iZXIgb2YgQ0FCCiAgICAgICAgbXkgJFR5cGUgICAgICAgICA9ICREZWxldGVNZW1iZXJ7VHlwZX07CiAgICAgICAgbXkgQFN0aWxsTWVtYmVycyA9IGdyZXAgeyAkXyBuZSAkRGVsZXRlTWVtYmVye0lEfSB9IEB7ICRDQUJSZWZlcmVuY2UtPntDQUJBZGR9LT57JFR5cGV9IH07CgogICAgICAgICMgc3RvcmUgdGhlIHJlbWFpbmluZyBtZW1iZXJzCiAgICAgICAgJENBQlJlZmVyZW5jZS0+e0NBQkFkZH0tPnskVHlwZX0gPSBcQFN0aWxsTWVtYmVyczsKCiAgICAgICAgIyByZXNldCB0aGUgInNhdmUiIHN1YmFjdGlvbiwgYmVjYXVzZSB3ZSBvbmx5IHdhbnQgdG8gc2hvdyB0aGUgdXBkYXRlZCBtZW1iZXIgbGlzdAogICAgICAgICRTZWxmLT57U3ViYWN0aW9ufSA9ICcnOwogICAgfQoKICAgICMgc2VydmVyIGVycm9yIGhhc2gsIHRvIHN0b3JlIHRoZSBpdGVtcyB3aXRoIFNlcnZlckVycm9yIGNsYXNzCiAgICBteSAlU2VydmVyRXJyb3I7CgogICAgIyBSZW1lbWJlciB0aGUgcmVhc29uIHdoeSBzYXZpbmcgd2FzIG5vdCBhdHRlbXB0ZWQuCiAgICAjIFRoZSBlbnRyaWVzIGFyZSB0aGUgbmFtZXMgb2YgdGhlIGR0bCB2YWxpZGF0aW9uIGVycm9yIGJsb2Nrcy4KICAgIG15IEBWYWxpZGF0aW9uRXJyb3JzOwoKICAgICMgYWRkIGEgQ0FCIG1lbWJlcgogICAgaWYgKCAkR2V0UGFyYW17QWRkQ0FCTWVtYmVyfSAmJiAkR2V0UGFyYW17TmV3Q0FCTWVtYmVyfSApIHsKCiAgICAgICAgIyBhZGQgYSBtZW1iZXIKICAgICAgICBteSAlQ0FCVXBkYXRlSW5mbyA9ICRTZWxmLT5fSXNOZXdDQUJNZW1iZXJPaygKICAgICAgICAgICAgQ0FCUmVmZXJlbmNlID0+ICRDQUJSZWZlcmVuY2UsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICApOwoKICAgICAgICAjIGlmIG1lbWJlciBpcyB2YWxpZAogICAgICAgIGlmICglQ0FCVXBkYXRlSW5mbykgewoKICAgICAgICAgICAgIyBhZGQgbmV3IG1lbWJlcgogICAgICAgICAgICAkQ0FCUmVmZXJlbmNlLT57Q0FCQWRkfS0+eyAkR2V0UGFyYW17TmV3Q0FCTWVtYmVyVHlwZX0gfSA9ICRDQUJVcGRhdGVJbmZveyAkR2V0UGFyYW17TmV3Q0FCTWVtYmVyVHlwZX0gfTsKCiAgICAgICAgICAgICMgZG8gbm90IGRpc3BsYXkgYSBuYW1lIGluIGF1dG9jb21wbGV0ZSBmaWVsZAogICAgICAgICAgICAjIGFuZCBkbyBub3Qgc2V0IHZhbHVlcyBpbiBoaWRkZW4gZmllbGRzIGFzIHRoZQogICAgICAgICAgICAjIHVzZXIgd2FzIGFscmVhZHkgYWRkZWQKICAgICAgICAgICAgZGVsZXRlIEBHZXRQYXJhbXtxdyhOZXdDQUJNZW1iZXIgTmV3Q0FCTWVtYmVyU2VsZWN0ZWQgTmV3Q0FCTWVtYmVyVHlwZSl9OwogICAgICAgIH0KCiAgICAgICAgIyBpZiBtZW1iZXIgaXMgaW52YWxpZAogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VydmVyRXJyb3J7TmV3Q0FCTWVtYmVyRXJyb3J9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgICMgcmVzZXQgdGhlICJzYXZlIiBzdWJhY3Rpb24sIGJlY2F1c2Ugd2Ugb25seSB3YW50IHRvIHNob3cgdGhlIHVwZGF0ZWQgbWVtYmVyIGxpc3QKICAgICAgICAkU2VsZi0+e1N1YmFjdGlvbn0gPSAnJzsKICAgIH0KCiAgICAjIHNhdmUgdGhlIENBQiB0ZW1wbGF0ZQogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1NhdmUnICkgewoKICAgICAgICAjIHVwZGF0ZSB0aGUgdGVtcGxhdGUKICAgICAgICBteSAkVXBkYXRlU3VjY2VzcyA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVVcGRhdGUoCiAgICAgICAgICAgIFRlbXBsYXRlSUQgPT4gJEdldFBhcmFte1RlbXBsYXRlSUR9LAogICAgICAgICAgICBDb250ZW50ICAgID0+ICRHZXRQYXJhbXtUZW1wbGF0ZUNvbnRlbnR9LAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoJFVwZGF0ZVN1Y2Nlc3MpIHsKCiAgICAgICAgICAgICMgcmVkaXJlY3QgdG8gdGVtcGxhdGUgb3ZlcnZpZXcKICAgICAgICAgICAgIyBsb2FkIG5ldyBVUkwgaW4gcGFyZW50IHdpbmRvdyBhbmQgY2xvc2UgcG9wdXAKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlBvcHVwQ2xvc2UoCiAgICAgICAgICAgICAgICBVUkwgPT4gIkFjdGlvbj1BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3IiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZQogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0KICAgICAgICAgICAgICAgICAgICAtPlRyYW5zbGF0ZSggJ1dhcyBub3QgYWJsZSB0byB1cGRhdGUgVGVtcGxhdGUgIiVzIiEnLCAkR2V0UGFyYW17VGVtcGxhdGVJRH0gKSwKICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiBDQUIgY29udGFpbnMgYW55b25lCiAgICBpZiAoIEB7ICRDQUJSZWZlcmVuY2UtPntDQUJBZGR9LT57Q0FCQWdlbnRzfSB9IHx8IEB7ICRDQUJSZWZlcmVuY2UtPntDQUJBZGR9LT57Q0FCQ3VzdG9tZXJzfSB9ICkKICAgIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQ0FCTWVtYmVyVGFibGUnICk7CiAgICB9CgogICAgVVNFUklEOgogICAgZm9yIG15ICRVc2VySUQgKCBAeyAkQ0FCUmVmZXJlbmNlLT57Q0FCQWRkfS0+e0NBQkFnZW50c30gfSApIHsKCiAgICAgICAgIyBnZXQgdXNlciBkYXRhCiAgICAgICAgbXkgJVVzZXJEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICk7CgogICAgICAgICMgbmV4dCBpZiBubyB1c2VyIGRhdGEgY2FuIGJlIGZvdW5kCiAgICAgICAgbmV4dCBVU0VSSUQgaWYgISVVc2VyRGF0YTsKCiAgICAgICAgIyBkaXNwbGF5IGNhYiBtZW1iZXIgaW5mbwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdDQUJNZW1iZXJSb3cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFVzZXJUeXBlICAgICAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgICAgIEludGVybmFsVXNlclR5cGUgPT4gJ0NBQkFnZW50cycsCiAgICAgICAgICAgICAgICAlVXNlckRhdGEsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgYWxsIGN1c3RvbWVyIG1lbWJlcnMgb2YgQ0FCCiAgICBDVVNUT01FUkxPR0lOOgogICAgZm9yIG15ICRDdXN0b21lckxvZ2luICggQHsgJENBQlJlZmVyZW5jZS0+e0NBQkFkZH0tPntDQUJDdXN0b21lcnN9IH0gKSB7CgogICAgICAgICMgZ2V0IHVzZXIgZGF0YQogICAgICAgIG15ICVDdXN0b21lclVzZXJEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcicpLT5DdXN0b21lclVzZXJEYXRhR2V0KAogICAgICAgICAgICBVc2VyICA9PiAkQ3VzdG9tZXJMb2dpbiwKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIG5leHQgaWYgbm8gdXNlciBkYXRhIGNhbiBiZSBmb3VuZAogICAgICAgIG5leHQgQ1VTVE9NRVJMT0dJTiBpZiAhJUN1c3RvbWVyVXNlckRhdGE7CgogICAgICAgICMgZGlzcGxheSBjYWIgbWVtYmVyIGluZm8KICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQ0FCTWVtYmVyUm93JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBVc2VyVHlwZSAgICAgICAgID0+ICdDdXN0b21lcicsCiAgICAgICAgICAgICAgICBJbnRlcm5hbFVzZXJUeXBlID0+ICdDQUJDdXN0b21lcnMnLAogICAgICAgICAgICAgICAgJUN1c3RvbWVyVXNlckRhdGEsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNlcmlhbGl6ZSB0aGUgQ0FCIHRvIGJlIHVzZWQgYXMgcGFyYW1ldGVyIGluIGhpZGRlbiBmaWVsZAogICAgJEdldFBhcmFte1RlbXBsYXRlQ29udGVudH0gPSAkU2VsZi0+X0NBQlNlcmlhbGl6ZSgKICAgICAgICBDb250ZW50ID0+ICRDQUJSZWZlcmVuY2UsCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgKTsKCiAgICAjIG91dHB1dCBoZWFkZXIgYW5kIG5hdmlnYXRpb24KICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gVHJhbnNsYXRhYmxlKCdFZGl0IENBQiBUZW1wbGF0ZScpLAogICAgICAgIFR5cGUgID0+ICdTbWFsbCcsCiAgICApOwoKICAgICMgc3RhcnQgdGVtcGxhdGUgb3V0cHV0CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50SVRTTVRlbXBsYXRlRWRpdENBQicsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyRUZW1wbGF0ZX0sCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJVNlcnZlckVycm9yLAogICAgICAgIH0sCiAgICApOwoKICAgICMgYWRkIGZvb3RlcgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoIFR5cGUgPT4gJ1NtYWxsJyApOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX0lzTWVtYmVyRGVsZXRpb24gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGRvIG5vdCBkZXRlY3QgZGVsZXRpb24gd2hlbiBubyBzdWJhY3Rpb24gaXMgZ2l2ZW4KICAgIHJldHVybiBpZiAhJFNlbGYtPntTdWJhY3Rpb259OwoKICAgICMgaW5mbyBhYm91dCB3aGF0IHRvIGRlbGV0ZQogICAgbXkgJURlbGV0ZUluZm87CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgaWYgKCBteSAkSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRGVsZXRlQ0FCTWVtYmVyJyApICkgewogICAgICAgIGlmICggJElEID1+IG17XkNBQkN1c3RvbWVycyguKyl9ICkgewoKICAgICAgICAgICAgIyBzYXZlIGluZm8KICAgICAgICAgICAgJURlbGV0ZUluZm8gPSAoCiAgICAgICAgICAgICAgICBUeXBlID0+ICdDQUJDdXN0b21lcnMnLAogICAgICAgICAgICAgICAgSUQgICA9PiAkMSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAkSUQgPX4gbXteQ0FCQWdlbnRzKC4rKX0gKSB7CgogICAgICAgICAgICAjIHNhdmUgaW5mbwogICAgICAgICAgICAlRGVsZXRlSW5mbyA9ICgKICAgICAgICAgICAgICAgIFR5cGUgPT4gJ0NBQkFnZW50cycsCiAgICAgICAgICAgICAgICBJRCAgID0+ICQxLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJURlbGV0ZUluZm87Cn0KCnN1YiBfSXNOZXdDQUJNZW1iZXJPayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgVGhlIG1lbWJlciBpbmZvIHdpbGwgYmUgcmV0dXJuZWQuCiAgICBteSAlTWVtYmVySW5mbzsKCiAgICAjIENBQkN1c3RvbWVycyBvciBDQUJBZ2VudHM/CiAgICBteSAkTWVtYmVyVHlwZSA9ICRQYXJhbXtOZXdDQUJNZW1iZXJUeXBlfTsKCiAgICAjIG1lbWJlciBsb29rdXAKICAgIG15ICVDdXJyZW50TWVtYmVyTG9va3VwOwoKICAgICMgYW4gYWdlbnQgaXMgcmVxdWVzdGVkIHRvIGJlIGFkZGVkCiAgICBpZiAoICRNZW1iZXJUeXBlIGVxICdDQUJBZ2VudHMnICkgewoKICAgICAgICAjIGdldCB1c2VyIG9iamVjdAogICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgbXkgJVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17TmV3Q0FCTWVtYmVyU2VsZWN0ZWR9LAogICAgICAgICk7CgogICAgICAgIGlmICglVXNlcikgewoKICAgICAgICAgICAgIyBjaGVjayBjdXJyZW50IHVzZXJzCiAgICAgICAgICAgIFVTRVJJRDoKICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKCBAeyAkUGFyYW17Q0FCUmVmZXJlbmNlfS0+e0NBQkFkZH0tPnskTWVtYmVyVHlwZX0gfSApIHsKCiAgICAgICAgICAgICAgICAjIGdldCB1c2VyIGRhdGEKICAgICAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICAgICBWYWxpZCAgPT4gMSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyByZW1vdmUgaW52YWxpZCB1c2VycyBmcm9tIENBQgogICAgICAgICAgICAgICAgbmV4dCBVU0VSSUQgaWYgISRVc2VyRGF0YXtVc2VySUR9OwoKICAgICAgICAgICAgICAgICMgc3RvcmUgaW4gbG9va3VwCiAgICAgICAgICAgICAgICAkQ3VycmVudE1lbWJlckxvb2t1cHskVXNlcklEfSA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgQ29tcGFyZSBpbnB1dCB2YWx1ZSB3aXRoIHVzZXIgZGF0YS4KICAgICAgICAgICAgIyBMb29rIGZvciBleGFjdCBtYXRjaCBhdCBiZWdpbm5pbmcsCiAgICAgICAgICAgICMgYXMgJFVzZXJ7VXNlckxhc3RuYW1lfSBtaWdodCBjb250YWluIGEgdHJhaWxpbmcgJ291dCBvZiBvZmZpY2UnIG5vdGUuCiAgICAgICAgICAgICMgTm90ZSB0aGF0IHRoaXMgd29uJ3QgY2F0Y2ggZGVsZXRpb25zIG9mICRQYXJhbXtOZXdDQUJNZW1iZXJ9IGF0IHRoZSBlbmQuCiAgICAgICAgICAgIG15ICRDaGVja1N0cmluZyA9IHNwcmludGYgJyIlcyIgPCVzPicsCiAgICAgICAgICAgICAgICAkVXNlcntVc2VyRnVsbG5hbWV9LAogICAgICAgICAgICAgICAgJFVzZXJ7VXNlckVtYWlsfTsKICAgICAgICAgICAgaWYgKCBpbmRleCggJENoZWNrU3RyaW5nLCAkUGFyYW17TmV3Q0FCTWVtYmVyfSApID09IDAgKSB7CgogICAgICAgICAgICAgICAgJEN1cnJlbnRNZW1iZXJMb29rdXB7ICRVc2Vye1VzZXJJRH0gfSA9IDE7CgogICAgICAgICAgICAgICAgIyBzYXZlIG1lbWJlciBpbmZvcwogICAgICAgICAgICAgICAgJU1lbWJlckluZm8gPSAoCiAgICAgICAgICAgICAgICAgICAgJE1lbWJlclR5cGUgPT4gWyBzb3J0IGtleXMgJUN1cnJlbnRNZW1iZXJMb29rdXAgXSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBhbiBjdXN0b21lciBpcyByZXF1ZXN0ZWQgdG8gYmUgYWRkZWQKICAgIGVsc2UgewoKICAgICAgICAjIGdldCBjdXN0b21lciB1c2VyIG9iamVjdAogICAgICAgIG15ICRDdXN0b21lclVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyk7CgogICAgICAgICMgY2hlY2sgY3VycmVudCBjdXN0b21lciB1c2VycwogICAgICAgIENVU1RPTUVSVVNFUjoKICAgICAgICBmb3IgbXkgJEN1c3RvbWVyVXNlciAoIEB7ICRQYXJhbXtDQUJSZWZlcmVuY2V9LT57Q0FCQWRkfS0+eyRNZW1iZXJUeXBlfSB9ICkgewoKICAgICAgICAgICAgIyBnZXQgY3VzdG9tZXIgdXNlciBkYXRhCiAgICAgICAgICAgIG15ICVDdXN0b21lclVzZXJEYXRhID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICAgICAgICAgIFVzZXIgID0+ICRDdXN0b21lclVzZXIsCiAgICAgICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyByZW1vdmUgaW52YWxpZCBjdXN0b21lciB1c2VycyBmcm9tIENBQgogICAgICAgICAgICBuZXh0IENVU1RPTUVSVVNFUiBpZiAhJUN1c3RvbWVyVXNlckRhdGE7CgogICAgICAgICAgICAjIHN0b3JlIGluIGxvb2t1cAogICAgICAgICAgICAkQ3VycmVudE1lbWJlckxvb2t1cHskQ3VzdG9tZXJVc2VyfSA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGlmIGN1c3RvbWVyIGNhbiBiZSBmb3VuZAogICAgICAgIG15ICVDdXN0b21lclVzZXIgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lclNlYXJjaCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRQYXJhbXtOZXdDQUJNZW1iZXJTZWxlY3RlZH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkQ3VzdG9tZXJVc2VyeyAkUGFyYW17TmV3Q0FCTWVtYmVyU2VsZWN0ZWR9IH0gKSB7CgogICAgICAgICAgICAkQ3VycmVudE1lbWJlckxvb2t1cHsgJFBhcmFte05ld0NBQk1lbWJlclNlbGVjdGVkfSB9ID0gMTsKCiAgICAgICAgICAgICMgc2F2ZSBtZW1iZXIgaW5mb3MKICAgICAgICAgICAgJU1lbWJlckluZm8gPSAoCiAgICAgICAgICAgICAgICAkTWVtYmVyVHlwZSA9PiBbIHNvcnQga2V5cyAlQ3VycmVudE1lbWJlckxvb2t1cCBdLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJU1lbWJlckluZm87Cn0KCnN1YiBfQ0FCRGVTZXJpYWxpemUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIENvbnRlbnQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IHRoZSBQZXJsIGRhdGFzdHJ1Y3R1cmUKICAgIG15ICRWQVIxOwoKICAgIHJldHVybiBpZiAhZXZhbCAiXCRWQVIxID0gJFBhcmFte0NvbnRlbnR9OyAxOyI7ICAgICMjIG5vIGNyaXRpYwoKICAgIHJldHVybiBpZiAhJFZBUjE7CiAgICByZXR1cm4gaWYgcmVmICRWQVIxIG5lICdIQVNIJzsKCiAgICByZXR1cm4gJFZBUjE7Cn0KCnN1YiBfQ0FCU2VyaWFsaXplIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFVzZXJJRCBDb250ZW50KSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIG5vIGluZGVudGF0aW9uIChzYXZlcyBzcGFjZSkKICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OkluZGVudCA9IDA7CgogICAgIyBkbyBub3QgdXNlIGNyb3NzLXJlZmVyZW5jaW5nCiAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpEZWVwY29weSA9IDE7CgogICAgIyBzZXJpYWxpemUgdGhlIGRhdGEgKGRvIG5vdCB1c2UgJFZBUjEsIGJ1dCAkVGVtcGxhdGVEYXRhIGZvciBEdW1wZXIgb3V0cHV0KQogICAgbXkgJFNlcmlhbGl6ZWREYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+RHVtcCggJFBhcmFte0NvbnRlbnR9LCAnYmluYXJ5JyApOwoKICAgIHJldHVybiAkU2VyaWFsaXplZERhdGE7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMTemplateEditContent.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVRlbXBsYXRlRWRpdENvbnRlbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAjIGdldCBjb25maWcgZm9yIGZyb250ZW5kCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIklUU01DaGFuZ2U6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJENoYW5nZU9iamVjdC0+UGVybWlzc2lvbigKICAgICAgICBUeXBlICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgQWN0aW9uID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZXJyb3Igc2NyZWVuCiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1lvdSBuZWVkICVzIHBlcm1pc3Npb24hJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IG5lZWRlZCBUZW1wbGF0ZUlECiAgICBteSAkVGVtcGxhdGVJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICdUZW1wbGF0ZUlEJyApOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkVGVtcGxhdGVJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBUZW1wbGF0ZUlEIGlzIGdpdmVuIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCB0ZW1wbGF0ZSBvYmplY3QKICAgIG15ICRUZW1wbGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpOwoKICAgICMgZ2V0IHRlbXBsYXRlIGRhdGEKICAgIG15ICRUZW1wbGF0ZSA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVHZXQoCiAgICAgICAgVGVtcGxhdGVJRCA9PiAkVGVtcGxhdGVJRCwKICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBlcnJvcgogICAgaWYgKCAhJFRlbXBsYXRlICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnVGVtcGxhdGUgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywgJFRlbXBsYXRlSUQgKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBjcmVhdGUgYSBuZXcgY2hhbmdlIG9yIHdvcmtvcmRlciBzbyBpdCBjYW4gYmUgZWRpdGVkCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnVGVtcGxhdGVFZGl0Q29udGVudCcgKSB7CgogICAgICAgICMgZ2V0IGN1cnJlbnQgc3lzdGVtIHRpbWUgaW4gZXBvY2ggc2Vjb25kcwogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvRXBvY2goKTsKCiAgICAgICAgIyBnZXQgdXNlciBvYmplY3QKICAgICAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgICMgZ2V0IGV4aXN0aW5nIHVzZXIgcHJlZmVyZW5jZXMKICAgICAgICBteSAlVXNlclByZWZlcmVuY2VzID0gJFVzZXJPYmplY3QtPkdldFByZWZlcmVuY2VzKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHByZWZlcmVuY2UgdG8gc2VlIHdoaWNoIHRlbXBsYXRlcyBhcmUgaW4gZWRpdCBieSB0aGUgdXNlcgogICAgICAgIG15ICRUZW1wbGF0ZUVkaXRQcmVmZXJlbmNlU3RyaW5nID0gJFVzZXJQcmVmZXJlbmNlc3tVc2VySVRTTUNoYW5nZU1hbmFnZW1lbnRUZW1wbGF0ZUVkaXR9IHx8ICcnOwoKICAgICAgICAjIGNvbnZlcnQgdG8gbG9va3VwIGhhc2gKICAgICAgICBteSBARWRpdGVkVGVtcGxhdGVzID0gc3BsaXQgbS87LywgJFRlbXBsYXRlRWRpdFByZWZlcmVuY2VTdHJpbmc7CiAgICAgICAgbXkgJU9iamVjdDJUZW1wbGF0ZTsKICAgICAgICBmb3IgbXkgJFN0cmluZyAoQEVkaXRlZFRlbXBsYXRlcykgewogICAgICAgICAgICBteSAoICRPYmplY3QsICRUZW1wbGF0ZSApID0gc3BsaXQgbS86Oi8sICRTdHJpbmc7CiAgICAgICAgICAgICRPYmplY3QyVGVtcGxhdGV7JE9iamVjdH0gPSAkVGVtcGxhdGU7CiAgICAgICAgfQoKICAgICAgICAjIGVkaXQgYSBjaGFuZ2UgdGVtcGxhdGUKICAgICAgICBpZiAoICRUZW1wbGF0ZS0+e1R5cGV9IGVxICdJVFNNQ2hhbmdlJyApIHsKCiAgICAgICAgICAgICMgY3JlYXRlIGNoYW5nZSBiYXNlZCBvbiB0aGUgdGVtcGxhdGUKICAgICAgICAgICAgbXkgJENoYW5nZUlEID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZURlU2VyaWFsaXplKAogICAgICAgICAgICAgICAgVGVtcGxhdGVJRCAgICAgID0+ICRUZW1wbGF0ZUlELAogICAgICAgICAgICAgICAgTW92ZVRpbWVUeXBlICAgID0+ICdQbGFubmVkU3RhcnRUaW1lJywKICAgICAgICAgICAgICAgIE5ld1RpbWVJbkVwb2NoZSA9PiAkU3lzdGVtVGltZSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZSwgd2hlbiBhZGRpbmcgZmFpbGVkCiAgICAgICAgICAgIGlmICggISRDaGFuZ2VJRCApIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIGZyb20gdGVtcGxhdGUhJyksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzdG9yZSB0aGUgY2hhbmdlIGlkIHRvIHRlbXBsYXRlIGlkIHJlZmVyZW5jZQogICAgICAgICAgICAkT2JqZWN0MlRlbXBsYXRleyAnQ2hhbmdlSUQnIC4gJENoYW5nZUlEIH0gPSAkVGVtcGxhdGVJRDsKCiAgICAgICAgICAgICMgY29udmVydCB0byBzdHJpbmcKICAgICAgICAgICAgJFRlbXBsYXRlRWRpdFByZWZlcmVuY2VTdHJpbmcgPSAnJzsKICAgICAgICAgICAgZm9yIG15ICRPYmplY3QgKCBzb3J0IGtleXMgJU9iamVjdDJUZW1wbGF0ZSApIHsKICAgICAgICAgICAgICAgICRUZW1wbGF0ZUVkaXRQcmVmZXJlbmNlU3RyaW5nIC49ICRPYmplY3QgLiAnOjonIC4gJE9iamVjdDJUZW1wbGF0ZXskT2JqZWN0fSAuICc7JzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzYXZlIHByZWZlcmVuY2VzCiAgICAgICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIEtleSAgICA9PiAnVXNlcklUU01DaGFuZ2VNYW5hZ2VtZW50VGVtcGxhdGVFZGl0JywKICAgICAgICAgICAgICAgIFZhbHVlICA9PiAkVGVtcGxhdGVFZGl0UHJlZmVyZW5jZVN0cmluZywKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHJlZGlyZWN0IHRvIGNoYW5nZSB6b29tIG1hc2ssIHdoZW4gYWRkaW5nIHdhcyBzdWNjZXNzZnVsCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0kQ2hhbmdlSUQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBlZGl0IGEgd29ya29yZGVyIHRlbXBsYXRlCiAgICAgICAgZWxzaWYgKCAkVGVtcGxhdGUtPntUeXBlfSBlcSAnSVRTTVdvcmtPcmRlcicgKSB7CgogICAgICAgICAgICAjIGFkZCBhIGR1bW15IGNoYW5nZSwgbmVlZGVkIHRvIGNvbnRhaW4gdGhlIHdvcmtvcmRlcgogICAgICAgICAgICBteSAkQ2hhbmdlSUQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAkU2VsZi0+e0NvbmZpZ30tPntEZWZhdWx0Q2hhbmdlVGl0bGV9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UsIHdoZW4gYWRkaW5nIGZhaWxlZAogICAgICAgICAgICBpZiAoICEkQ2hhbmdlSUQgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1dhcyBub3QgYWJsZSB0byBjcmVhdGUgY2hhbmdlIScpLAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY3JlYXRlIHdvcmtvcmRlciBiYXNlZCBvbiB0aGUgdGVtcGxhdGUsIGFuZCBhZGQgaXQgdG8gdGhlIGR1bW15IGNoYW5nZQogICAgICAgICAgICBteSAkV29ya09yZGVySUQgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlRGVTZXJpYWxpemUoCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgVGVtcGxhdGVJRCAgICAgID0+ICRUZW1wbGF0ZUlELAogICAgICAgICAgICAgICAgTW92ZVRpbWVUeXBlICAgID0+ICdQbGFubmVkU3RhcnRUaW1lJywKICAgICAgICAgICAgICAgIE5ld1RpbWVJbkVwb2NoZSA9PiAkU3lzdGVtVGltZSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZSwgd2hlbiBhZGRpbmcgZmFpbGVkCiAgICAgICAgICAgIGlmICggISRXb3JrT3JkZXJJRCApIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZSwgd2hlbiBhZGRpbmcgZmFpbGVkCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1dhcyBub3QgYWJsZSB0byBjcmVhdGUgd29ya29yZGVyIGZyb20gdGVtcGxhdGUhJyksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzdG9yZSB0aGUgd29ya29yZGVyIGlkIHRvIHRlbXBsYXRlIGlkIHJlZmVyZW5jZQogICAgICAgICAgICAkT2JqZWN0MlRlbXBsYXRleyAnV29ya09yZGVySUQnIC4gJFdvcmtPcmRlcklEIH0gPSAkVGVtcGxhdGVJRDsKCiAgICAgICAgICAgICMgY29udmVydCB0byBzdHJpbmcKICAgICAgICAgICAgJFRlbXBsYXRlRWRpdFByZWZlcmVuY2VTdHJpbmcgPSAnJzsKICAgICAgICAgICAgZm9yIG15ICRPYmplY3QgKCBzb3J0IGtleXMgJU9iamVjdDJUZW1wbGF0ZSApIHsKICAgICAgICAgICAgICAgICRUZW1wbGF0ZUVkaXRQcmVmZXJlbmNlU3RyaW5nIC49ICRPYmplY3QgLiAnOjonIC4gJE9iamVjdDJUZW1wbGF0ZXskT2JqZWN0fSAuICc7JzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzYXZlIHByZWZlcmVuY2VzCiAgICAgICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIEtleSAgICA9PiAnVXNlcklUU01DaGFuZ2VNYW5hZ2VtZW50VGVtcGxhdGVFZGl0JywKICAgICAgICAgICAgICAgIFZhbHVlICA9PiAkVGVtcGxhdGVFZGl0UHJlZmVyZW5jZVN0cmluZywKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHJlZGlyZWN0IHRvIHdvcmtvcmRlciB6b29tIG1hc2ssIHdoZW4gYWRkaW5nIHdhcyBzdWNjZXNzZnVsCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRJVFNNV29ya09yZGVyWm9vbTtXb3JrT3JkZXJJRD0kV29ya09yZGVySUQiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNob3cgYSBkaWFsb2cgYmVmb3JlIGNyZWF0aW5nIGEgbmV3IGNoYW5nZSBvciB3b3Jrb3JkZXIgdG8gYmUgZWRpdGVkCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnVGVtcGxhdGVFZGl0Q29udGVudFNob3dEaWFsb2cnICkgewoKICAgICAgICAjIHNob3cgdGhlIGVkaXQgY29udGVudCBkaWFsb2cKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRWRpdENvbnRlbnREaWFsb2cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICV7JFRlbXBsYXRlfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgdGhlIGNvcnJlY3QgYmxvY2sgZGVwZW5kaW5nIG9uIHRlbXBsYXRlIHR5cGUKICAgICAgICBpZiAoICRUZW1wbGF0ZS0+e1R5cGV9IGVxICdJVFNNQ2hhbmdlJyApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdDaGFuZ2VUZW1wbGF0ZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAleyRUZW1wbGF0ZX0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRUZW1wbGF0ZS0+e1R5cGV9IGVxICdJVFNNV29ya09yZGVyJyApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdXb3JrT3JkZXJUZW1wbGF0ZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAleyRUZW1wbGF0ZX0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBvdXRwdXQgY29udGVudAogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q29udGVudCcsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAleyRUZW1wbGF0ZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBidWlsZCB0aGUgcmV0dXJuZWQgZGF0YSBzdHJ1Y3R1cmUKICAgICAgICBteSAlRGF0YSA9ICgKICAgICAgICAgICAgSFRNTCAgICAgICA9PiAkT3V0cHV0LAogICAgICAgICAgICBEaWFsb2dUeXBlID0+ICdDb25maXJtYXRpb24nLAogICAgICAgICk7CgogICAgICAgICMgcmV0dXJuIEpTT04tU3RyaW5nIGJlY2F1c2Ugb2YgQUpBWC1Nb2RlCiAgICAgICAgbXkgJE91dHB1dEpTT04gPSAkTGF5b3V0T2JqZWN0LT5KU09ORW5jb2RlKCBEYXRhID0+IFwlRGF0YSApOwoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJE91dHB1dEpTT04sCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CiAgICB9Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMTemplateOverview.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBBY3Rpb24gPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgc3RvcmUgbGFzdCBzY3JlZW4sIHVzZWQgZm9yIGJhY2tsaW5rcwogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyktPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlblRlbXBsYXRlcycsCiAgICAgICAgVmFsdWUgICAgID0+ICRTZWxmLT57UmVxdWVzdGVkVVJMfSwKICAgICk7CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgc29ydGluZyBwYXJhbWV0ZXJzCiAgICBteSAkU29ydEJ5ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRCeScgKQogICAgICAgIHx8ICRTZWxmLT57Q29uZmlnfS0+eydTb3J0Qnk6OkRlZmF1bHQnfQogICAgICAgIHx8ICdUZW1wbGF0ZUlEJzsKCiAgICAjIGdldCBvcmRlcmluZyBwYXJhbWV0ZXJzCiAgICBteSAkT3JkZXJCeSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPcmRlckJ5JyApCiAgICAgICAgfHwgJFNlbGYtPntDb25maWd9LT57J09yZGVyOjpEZWZhdWx0J30KICAgICAgICB8fCAnVXAnOwoKICAgIG15IEBTb3J0QnlBcnJheSAgPSAoJFNvcnRCeSk7CiAgICBteSBAT3JkZXJCeUFycmF5ID0gKCRPcmRlckJ5KTsKCiAgICAjIGludmVzdGlnYXRlIHJlZnJlc2gKICAgIG15ICRSZWZyZXNoID0gJFNlbGYtPntVc2VyUmVmcmVzaFRpbWV9ID8gNjAgKiAkU2VsZi0+e1VzZXJSZWZyZXNoVGltZX0gOiB1bmRlZjsKCiAgICAjIHN0YXJ0aW5nIHdpdGggcGFnZSAuLi4KICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoIFJlZnJlc2ggPT4gJFJlZnJlc2ggKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJExheW91dE9iamVjdC0+UHJpbnQoIE91dHB1dCA9PiBcJE91dHB1dCApOwogICAgJE91dHB1dCA9ICcnOwoKICAgICMgZmluZCBvdXQgd2hpY2ggY29sdW1ucyBzaG91bGQgYmUgc2hvd24KICAgIG15IEBTaG93Q29sdW1uczsKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U2hvd0NvbHVtbnN9ICkgewoKICAgICAgICAjIGdldCBhbGwgcG9zc2libGUgY29sdW1ucyBmcm9tIGNvbmZpZwogICAgICAgIG15ICVQb3NzaWJsZUNvbHVtbiA9ICV7ICRTZWxmLT57Q29uZmlnfS0+e1Nob3dDb2x1bW5zfSB9OwoKICAgICAgICAjIGdldCB0aGUgY29sdW1uIG5hbWVzIHRoYXQgc2hvdWxkIGJlIHNob3duCiAgICAgICAgQFNob3dDb2x1bW5zID0gZ3JlcCB7ICRQb3NzaWJsZUNvbHVtbnskX30gfSBrZXlzICVQb3NzaWJsZUNvbHVtbjsKICAgIH0KCiAgICAjIHRvIHN0b3JlIHRoZSBmaWx0ZXJzCiAgICBteSAlRmlsdGVyczsKCiAgICAjIGdldCB0ZW1wbGF0ZSBvYmplY3QKICAgIG15ICRUZW1wbGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpOwoKICAgICMgc2V0IG90aGVyIGZpbHRlcnMgYmFzZWQgb24gdGVtcGxhdGUgdHlwZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPnsnRmlsdGVyOjpUZW1wbGF0ZVR5cGVzJ30gKSB7CgogICAgICAgICMgZGVmaW5lIHBvc2l0aW9uIG9mIHRoZSBmaWx0ZXIgaW4gdGhlIGZyb250ZW5kCiAgICAgICAgbXkgJFByaW9Db3VudGVyID0gMTAwMDsKCiAgICAgICAgIyBnZXQgYWxsIHRlbXBsYXRlIHR5cGVzIHRoYXQgc2hvdWxkIGJlIHVzZWQgYXMgZmlsdGVycwogICAgICAgIFRFTVBMQVRFVFlQRToKICAgICAgICBmb3IgbXkgJFRlbXBsYXRlVHlwZSAoIEB7ICRTZWxmLT57Q29uZmlnfS0+eydGaWx0ZXI6OlRlbXBsYXRlVHlwZXMnfSB9ICkgewoKICAgICAgICAgICAgIyBkbyBub3QgdXNlIGVtcHR5IHRlbXBsYXRlIHR5cGVzCiAgICAgICAgICAgIG5leHQgVEVNUExBVEVUWVBFIGlmICEkVGVtcGxhdGVUeXBlOwoKICAgICAgICAgICAgIyBjaGVjayBpZiB0aGUgdGVtcGxhdGUgdHlwZSBpcyB2YWxpZCBieSBsb29raW5nIHVwIHRoZSBpZAogICAgICAgICAgICBteSAkVGVtcGxhdGVUeXBlSUQgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlVHlwZUxvb2t1cCgKICAgICAgICAgICAgICAgIFRlbXBsYXRlVHlwZSA9PiAkVGVtcGxhdGVUeXBlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBkbyBub3QgdXNlIGludmFsaWQgdGVtcGxhdGUgdHlwZXMKICAgICAgICAgICAgbmV4dCBURU1QTEFURVRZUEUgaWYgISRUZW1wbGF0ZVR5cGVJRDsKCiAgICAgICAgICAgICMgaW5jcmVhc2UgdGhlIFByaW9Db3VudGVyCiAgICAgICAgICAgICRQcmlvQ291bnRlcisrOwoKICAgICAgICAgICAgIyBhZGQgZmlsdGVyIHdpdGggcGFyYW1zIGZvciB0aGUgc2VhcmNoIG1ldGhvZAogICAgICAgICAgICAkRmlsdGVyc3skVGVtcGxhdGVUeXBlfSA9IHsKICAgICAgICAgICAgICAgIE5hbWUgICA9PiAkVGVtcGxhdGVUeXBlLAogICAgICAgICAgICAgICAgUHJpbyAgID0+ICRQcmlvQ291bnRlciwKICAgICAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVUeXBlcyAgICA9PiBbJFRlbXBsYXRlVHlwZV0sCiAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiBcQFNvcnRCeUFycmF5LAogICAgICAgICAgICAgICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gXEBPcmRlckJ5QXJyYXksCiAgICAgICAgICAgICAgICAgICAgTGltaXQgICAgICAgICAgICA9PiAxMDAwLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgZmlsdGVyIHBhcmFtcwogICAgJFNlbGYtPntGaWx0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0ZpbHRlcicgKSB8fCAnQWxsJzsKCiAgICAjIGlmIG9ubHkgb25lIGZpbHRlciBleGlzdHMKICAgIGlmICggc2NhbGFyIGtleXMgJUZpbHRlcnMgPT0gMSApIHsKCiAgICAgICAgIyBnZXQgdGhlIG5hbWUgb2YgdGhlIG9ubHkgZmlsdGVyCiAgICAgICAgbXkgKCRGaWx0ZXJOYW1lKSA9IGtleXMgJUZpbHRlcnM7CgogICAgICAgICMgYWN0aXZhdGUgdGhpcyBmaWx0ZXIKICAgICAgICAkU2VsZi0+e0ZpbHRlcn0gPSAkRmlsdGVyTmFtZTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGFkZCBkZWZhdWx0IGZpbHRlciwgd2hpY2ggc2hvd3MgYWxsIGl0ZW1zCiAgICAgICAgJEZpbHRlcnN7QWxsfSA9IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdBbGwnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gXEBTb3J0QnlBcnJheSwKICAgICAgICAgICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gXEBPcmRlckJ5QXJyYXksCiAgICAgICAgICAgICAgICBMaW1pdCAgICAgICAgICAgID0+IDEwMDAsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgfSwKICAgICAgICB9OwogICAgfQoKICAgICMgY2hlY2sgaWYgZmlsdGVyIGlzIHZhbGlkCiAgICBpZiAoICEkRmlsdGVyc3sgJFNlbGYtPntGaWx0ZXJ9IH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdJbnZhbGlkIEZpbHRlcjogJXMhJywgJFNlbGYtPntGaWx0ZXJ9ICksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNlYXJjaCB0ZW1wbGF0ZXMgd2hpY2ggbWF0Y2ggdGhlIHNlbGVjdGVkIGZpbHRlcgogICAgbXkgJElEc1JlZiA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVTZWFyY2goCiAgICAgICAgJXsgJEZpbHRlcnN7ICRTZWxmLT57RmlsdGVyfSB9LT57U2VhcmNofSB9LAogICAgKTsKCiAgICAjIGRpc3BsYXkgYWxsIG5hdmJhciBmaWx0ZXJzCiAgICBteSAlTmF2QmFyRmlsdGVyOwogICAgZm9yIG15ICRGaWx0ZXIgKCBzb3J0IGtleXMgJUZpbHRlcnMgKSB7CgogICAgICAgICMgY291bnQgdGhlIG51bWJlciBvZiBpdGVtcyBmb3IgZWFjaCBmaWx0ZXIKICAgICAgICBteSAkQ291bnQgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlU2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBkaXNwbGF5IHRoZSBuYXZiYXIgZmlsdGVyCiAgICAgICAgJE5hdkJhckZpbHRlcnsgJEZpbHRlcnN7JEZpbHRlcn0tPntQcmlvfSB9ID0gewogICAgICAgICAgICBDb3VudCAgPT4gJENvdW50LAogICAgICAgICAgICBGaWx0ZXIgPT4gJEZpbHRlciwKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0gfSwKICAgICAgICB9OwogICAgfQoKICAgICMgc2hvdyB0aGUgbGlzdAogICAgbXkgJExpbmtQYWdlID0gJ0ZpbHRlcj0nCiAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57RmlsdGVyfSApCiAgICAgICAgLiAnO1NvcnRCeT0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkU29ydEJ5ICkKICAgICAgICAuICc7T3JkZXJCeT0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAkT3JkZXJCeSApCiAgICAgICAgLiAnOyc7CiAgICBteSAkTGlua1NvcnQgPSAnRmlsdGVyPScKICAgICAgICAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntGaWx0ZXJ9ICkKICAgICAgICAuICc7JzsKICAgIG15ICRMaW5rRmlsdGVyID0gJ1NvcnRCeT0nCiAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTb3J0QnkgKQogICAgICAgIC4gJztPcmRlckJ5PScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRPcmRlckJ5ICkKICAgICAgICAuICc7JzsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+SVRTTVRlbXBsYXRlTGlzdFNob3coCgogICAgICAgIFRlbXBsYXRlSURzID0+ICRJRHNSZWYsCiAgICAgICAgVG90YWwgICAgICAgPT4gc2NhbGFyIEB7JElEc1JlZn0sCiAgICAgICAgRmlsdGVyICAgICAgPT4gJFNlbGYtPntGaWx0ZXJ9LAogICAgICAgIEZpbHRlcnMgICAgID0+IFwlTmF2QmFyRmlsdGVyLAogICAgICAgIEZpbHRlckxpbmsgID0+ICRMaW5rRmlsdGVyLAoKICAgICAgICBUaXRsZU5hbWUgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdPdmVydmlldzogVGVtcGxhdGUnKSwKCiAgICAgICAgVGl0bGVWYWx1ZSA9PiAkRmlsdGVyc3sgJFNlbGYtPntGaWx0ZXJ9IH0tPntOYW1lfSwKCiAgICAgICAgRW52ICAgICAgPT4gJFNlbGYsCiAgICAgICAgTGlua1BhZ2UgPT4gJExpbmtQYWdlLAogICAgICAgIExpbmtTb3J0ID0+ICRMaW5rU29ydCwKCiAgICAgICAgU2hvd0NvbHVtbnMgPT4gXEBTaG93Q29sdW1ucywKICAgICAgICBPcmRlckJ5ICAgICA9PiAkT3JkZXJCeSwKICAgICAgICBTb3J0QnkgICAgICA9PiAkU29ydEJ5LAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMUserSearch.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVVzZXJTZWFyY2g7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRKU09OID0gJyc7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHNlYXJjaCB1c2VycwogICAgaWYgKCAhJFNlbGYtPntTdWJhY3Rpb259ICkgewoKICAgICAgICAjIGdldCBwYXJhbSBvYmplY3QKICAgICAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgICAgICMgZ2V0IG5lZWRlZCBwYXJhbXMKICAgICAgICBteSAkU2VhcmNoICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUZXJtJyApICAgfHwgJyc7CiAgICAgICAgbXkgJEdyb3VwcyAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnR3JvdXBzJyApIHx8ICcnOwogICAgICAgIG15ICRNYXhSZXN1bHRzID0gaW50KCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTWF4UmVzdWx0cycgKSB8fCAyMCApOwoKICAgICAgICAjIGdldCBhbGwgbWVtYmVycyBvZiB0aGUgZ3JvdXBzCiAgICAgICAgbXkgJUdyb3VwVXNlcnM7CiAgICAgICAgaWYgKCRHcm91cHMpIHsKICAgICAgICAgICAgbXkgQEdyb3VwTmFtZXMgPSBzcGxpdCAvLFxzKy8sICRHcm91cHM7CgogICAgICAgICAgICBHUk9VUE5BTUU6CiAgICAgICAgICAgIGZvciBteSAkR3JvdXBOYW1lIChAR3JvdXBOYW1lcykgewoKICAgICAgICAgICAgICAgICMgYWxsb3cgdHJhaWxpbmcgY29tbWEKICAgICAgICAgICAgICAgIG5leHQgR1JPVVBOQU1FIGlmICEkR3JvdXBOYW1lOwoKICAgICAgICAgICAgICAgICMgZ2V0IGdyb3VwIG9iamVjdAogICAgICAgICAgICAgICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgICAgICAgICAgICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKAogICAgICAgICAgICAgICAgICAgIEdyb3VwID0+ICRHcm91cE5hbWUsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgR1JPVVBOQU1FIGlmICEkR3JvdXBJRDsKCiAgICAgICAgICAgICAgICAjIGdldCB1c2VycyBpbiBncm91cAogICAgICAgICAgICAgICAgbXkgJVVzZXJzID0gJEdyb3VwT2JqZWN0LT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgICAgICAgICAgR3JvdXBJRCA9PiAkR3JvdXBJRCwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdybycsCiAgICAgICAgICAgICAgICAgICAgUmVzdWx0ICA9PiAnSEFTSCcsCiAgICAgICAgICAgICAgICAgICAgQ2FjaGVkICA9PiAxLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSBAVXNlcklEcyA9IGtleXMgJVVzZXJzOwogICAgICAgICAgICAgICAgQEdyb3VwVXNlcnN7QFVzZXJJRHN9ID0gQFVzZXJJRHM7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZ2V0IHVzZXIgb2JqZWN0CiAgICAgICAgbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICAgICAjIGdldCB1c2VyIGxpc3QKICAgICAgICBteSAlVXNlckxpc3QgPSAkVXNlck9iamVjdC0+VXNlclNlYXJjaCgKICAgICAgICAgICAgU2VhcmNoID0+ICRTZWFyY2gsCiAgICAgICAgICAgIFZhbGlkICA9PiAxLAogICAgICAgICk7CgogICAgICAgIG15ICRNYXhSZXN1bHRDb3VudCA9ICRNYXhSZXN1bHRzOwoKICAgICAgICAjIHRoZSBkYXRhIHRoYXQgd2lsbCBiZSBzZW50IGFzIHJlc3BvbnNlCiAgICAgICAgbXkgQERhdGE7CgogICAgICAgIFVTRVJJRDoKICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQgeyAkVXNlckxpc3R7JGF9IGNtcCAkVXNlckxpc3R7JGJ9IH0ga2V5cyAlVXNlckxpc3QgKSB7CgogICAgICAgICAgICAjIGlmIGdyb3VwcyBhcmUgcmVxdWlyZWQgYW5kIHVzZXIgaXMgbm90IG1lbWJlciBvZiBvbmUgb2YgdGhlIGdyb3VwcwogICAgICAgICAgICAjIHRoZW4gc2tpcCB0aGUgdXNlcgogICAgICAgICAgICBpZiAoICRHcm91cHMgJiYgISRHcm91cFVzZXJzeyRVc2VySUR9ICkgewogICAgICAgICAgICAgICAgbmV4dCBVU0VSSUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgVGhlIHZhbHVlcyBpbiAlVXNlckxpc3QgYXJlIGluIHRoZSBmb3JtOiAnbW0gTWF4IE11c3Rlcm1hbm4nLgogICAgICAgICAgICAjIFNvIGFzc2VtYmxlIGEgbmVhdGVyIHN0cmluZyBmb3IgZGlzcGxheS4KICAgICAgICAgICAgIyAoQWN0dWFsbHkgVXNlclNlYXJjaCgpIGNvbnRhaW5zIGNvZGUgZm9yIGZvcm1hdGluZywgYnV0IHRoYXQgaXMgdXN1YWxseSBub3QgY2FsbGVkLikKICAgICAgICAgICAgbXkgJVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgIFZhbGlkICA9PiAkUGFyYW17VmFsaWR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJFVzZXJWYWx1ZSA9IHNwcmludGYgJyIlcyIgPCVzPicsCiAgICAgICAgICAgICAgICAkVXNlcntVc2VyRnVsbG5hbWV9LAogICAgICAgICAgICAgICAgJFVzZXJ7VXNlckVtYWlsfTsKCiAgICAgICAgICAgIHB1c2ggQERhdGEsIHsKICAgICAgICAgICAgICAgIFVzZXJLZXkgICA9PiAkVXNlcklELAogICAgICAgICAgICAgICAgVXNlclZhbHVlID0+ICRVc2VyVmFsdWUsCiAgICAgICAgICAgIH07CgogICAgICAgICAgICAkTWF4UmVzdWx0Q291bnQtLTsKICAgICAgICAgICAgbGFzdCBVU0VSSUQgaWYgJE1heFJlc3VsdENvdW50IDw9IDA7CiAgICAgICAgfQoKICAgICAgICAjIGJ1aWxkIEpTT04gb3V0cHV0CiAgICAgICAgJEpTT04gPSAkTGF5b3V0T2JqZWN0LT5KU09ORW5jb2RlKAogICAgICAgICAgICBEYXRhID0+IFxARGF0YSwKICAgICAgICApOwogICAgfQoKICAgICMgc2VuZCBKU09OIHJlc3BvbnNlCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICBDb250ZW50VHlwZSA9PiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD0nIC4gJExheW91dE9iamVjdC0+e0NoYXJzZXR9LAogICAgICAgIENvbnRlbnQgICAgID0+ICRKU09OIHx8ICcnLAogICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgIE5vQ2FjaGUgICAgID0+IDEsCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMWorkOrderAdd.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVdvcmtPcmRlckFkZDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGdldCBuZWVkZWQgQ2hhbmdlSUQKICAgIG15ICRDaGFuZ2VJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDaGFuZ2VJRCcgKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJENoYW5nZUlEICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05vIENoYW5nZUlEIGlzIGdpdmVuIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlIChXb3Jrb3JkZXJBZGQgaXMgYSBjaGFuZ2UgYWN0aW9uISkKICAgICRTZWxmLT57Q29uZmlnfSA9ICRDb25maWdPYmplY3QtPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGVycm9yIHNjcmVlbgogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlIScsICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259CiAgICAgICAgICAgICksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBjaGFuZ2UgZGF0YQogICAgbXkgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGVycm9yCiAgICBpZiAoICEkQ2hhbmdlICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywgJENoYW5nZUlEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgc3RvcmUgbmVlZGVkIHBhcmFtZXRlcnMgaW4gJUdldFBhcmFtIHRvIG1ha2UgaXQgcmVsb2FkYWJsZQogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRQYXJhbU5hbWUgKAogICAgICAgIHF3KFdvcmtPcmRlclRpdGxlIEluc3RydWN0aW9uIFdvcmtPcmRlclR5cGVJRCBQbGFubmVkRWZmb3J0IEF0dGFjaG1lbnRVcGxvYWQgRmlsZUlEKQogICAgICAgICkKICAgIHsKICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CiAgICB9CgogICAgIyBnZXQgRHluYW1pYyBmaWVsZHMgZnJvbSBQYXJhbU9iamVjdAogICAgbXkgJUR5bmFtaWNGaWVsZFZhbHVlczsKCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBteSAkRHluYW1pY0ZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH0gfHwge30sCiAgICApOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgYmFja2VuZCBvYmplY3QKICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIGV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZnJvbSB0aGUgd2ViIHJlcXVlc3QgYW5kIGFkZCB0aGUgcHJlZml4CiAgICAgICAgJER5bmFtaWNGaWVsZFZhbHVlc3sgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0KICAgICAgICAgICAgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkVmFsdWVHZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgKTsKICAgIH0KCiAgICAjIHN0b3JlIHRpbWUgcmVsYXRlZCBmaWVsZHMgaW4gJUdldFBhcmFtCiAgICBmb3IgbXkgJFRpbWVUeXBlIChxdyhQbGFubmVkU3RhcnRUaW1lIFBsYW5uZWRFbmRUaW1lKSkgewogICAgICAgIGZvciBteSAkVGltZVBhcnQgKHF3KFllYXIgTW9udGggRGF5IEhvdXIgTWludXRlKSkgewogICAgICAgICAgICBteSAkUGFyYW1OYW1lID0gJFRpbWVUeXBlIC4gJFRpbWVQYXJ0OwogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CiAgICAgICAgfQogICAgfQoKICAgICMgUmVtZW1iZXIgdGhlIHJlYXNvbiB3aHkgc2F2aW5nIHdhcyBub3QgYXR0ZW1wdGVkLgogICAgbXkgJVZhbGlkYXRpb25FcnJvcjsKCiAgICAjIGdldCB3b3Jrb3JkZXIgb2JqZWN0CiAgICBteSAkV29ya09yZGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKTsKCiAgICAjIGdldCBmb3JtIGlkCiAgICAkU2VsZi0+e0Zvcm1JRH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRm9ybUlEJyApOwoKICAgICMgZ2V0IHVwbG9hZCBjYWNoZSBvYmplY3QKICAgIG15ICRVcGxvYWRDYWNoZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlVwbG9hZENhY2hlJyk7CgogICAgIyBjcmVhdGUgZm9ybSBpZAogICAgaWYgKCAhJFNlbGYtPntGb3JtSUR9ICkgewogICAgICAgICRTZWxmLT57Rm9ybUlEfSA9ICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlEQ3JlYXRlKCk7CiAgICB9CgogICAgIyBhZGQgdGhlIHdvcmtvcmRlcgogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1NhdmUnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICAjIHRoZSB0aXRsZSBpcyByZXF1aXJlZAogICAgICAgIGlmICggISRHZXRQYXJhbXtXb3JrT3JkZXJUaXRsZX0gKSB7CiAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7V29ya09yZGVyVGl0bGVTZXJ2ZXJFcnJvcn0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBXb3JrT3JkZXJUeXBlSUQKICAgICAgICBteSAkV29ya09yZGVyVHlwZSA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclR5cGVMb29rdXAoCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIFdvcmtPcmRlclR5cGVJRCA9PiAkR2V0UGFyYW17V29ya09yZGVyVHlwZUlEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkV29ya09yZGVyVHlwZSApIHsKICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcntXb3JrT3JkZXJUeXBlSURTZXJ2ZXJFcnJvcn0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgbG9nIG9iamVjdAogICAgICAgIG15ICRMb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CgogICAgICAgICMgY2hlY2sgd2hldGhlciBjb21wbGV0ZSB0aW1lcyBhcmUgcGFzc2VkIGFuZCBidWlsZCB0aGUgdGltZSBzdGFtcHMKICAgICAgICBteSAlU3lzdGVtVGltZTsKICAgICAgICBUSU1FVFlQRToKICAgICAgICBmb3IgbXkgJFRpbWVUeXBlIChxdyhQbGFubmVkU3RhcnRUaW1lIFBsYW5uZWRFbmRUaW1lKSkgewogICAgICAgICAgICBmb3IgbXkgJFRpbWVQYXJ0IChxdyhZZWFyIE1vbnRoIERheSBIb3VyIE1pbnV0ZSkpIHsKICAgICAgICAgICAgICAgIG15ICRQYXJhbU5hbWUgPSAkVGltZVR5cGUgLiAkVGltZVBhcnQ7CiAgICAgICAgICAgICAgICBpZiAoICFkZWZpbmVkICRHZXRQYXJhbXskUGFyYW1OYW1lfSApIHsKICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRQYXJhbU5hbWUhIiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIG5leHQgVElNRVRZUEU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdHJhbnNmb3JtIHdvcmsgb3JkZXIgcGxhbm5lZCB0aW1lLCB0aW1lIHN0YW1wIGJhc2VkIG9uIHVzZXIgdGltZSB6b25lCiAgICAgICAgICAgICVHZXRQYXJhbSA9ICRMYXlvdXRPYmplY3QtPlRyYW5zZm9ybURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICBQcmVmaXggPT4gJFRpbWVUeXBlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBmb3JtYXQgYXMgdGltZXN0YW1wCiAgICAgICAgICAgICRHZXRQYXJhbXskVGltZVR5cGV9ID0gc3ByaW50ZiAnJTA0ZC0lMDJkLSUwMmQgJTAyZDolMDJkOjAwJywKICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1llYXInIH0sCiAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdNb250aCcgfSwKICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ0RheScgfSwKICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ0hvdXInIH0sCiAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdNaW51dGUnIH07CgogICAgICAgICAgICAjIHNhbml0eSBjaGVjayB0aGUgYXNzZW1ibGVkIHRpbWVzdGFtcAogICAgICAgICAgICAkU3lzdGVtVGltZXskVGltZVR5cGV9ID0gJFNlbGYtPl9UaW1lU3RhbXAyRXBvY2goIFRpbWVTdGFtcCA9PiAkR2V0UGFyYW17JFRpbWVUeXBlfSApOwoKICAgICAgICAgICAgIyBkbyBub3Qgc2F2ZSBpZiB0aW1lIGlzIGludmFsaWQKICAgICAgICAgICAgaWYgKCAhJFN5c3RlbVRpbWV7JFRpbWVUeXBlfSApIHsKICAgICAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7ICRUaW1lVHlwZSAuICdJbnZhbGlkJyB9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayB2YWxpZGl0eSBvZiB0aGUgcGxhbm5lZCBzdGFydCBhbmQgZW5kIHRpbWVzCiAgICAgICAgaWYgKCAkU3lzdGVtVGltZXtQbGFubmVkU3RhcnRUaW1lfSAmJiAhJFN5c3RlbVRpbWV7UGxhbm5lZEVuZFRpbWV9ICkgewogICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9ye1BsYW5uZWRFbmRUaW1lSW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7UGxhbm5lZEVuZFRpbWVFcnJvclR5cGV9ID0gJ0dlbmVyaWNTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggISRTeXN0ZW1UaW1le1BsYW5uZWRTdGFydFRpbWV9ICYmICRTeXN0ZW1UaW1le1BsYW5uZWRFbmRUaW1lfSApIHsKICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcntQbGFubmVkU3RhcnRUaW1lSW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7UGxhbm5lZFN0YXJ0VGltZUVycm9yVHlwZX0gPSAnR2VuZXJpY1NlcnZlckVycm9yJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAoICRTeXN0ZW1UaW1le1BsYW5uZWRTdGFydFRpbWV9ICYmICRTeXN0ZW1UaW1le1BsYW5uZWRFbmRUaW1lfSApCiAgICAgICAgICAgICYmICggJFN5c3RlbVRpbWV7UGxhbm5lZEVuZFRpbWV9IDw9ICRTeXN0ZW1UaW1le1BsYW5uZWRTdGFydFRpbWV9ICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcntQbGFubmVkU3RhcnRUaW1lSW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7UGxhbm5lZFN0YXJ0VGltZUVycm9yVHlwZX0gPSAnQmVmb3JlVGhhbkVuZFRpbWVTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGZvcm1hdCBvZiBwbGFubmVkIGVmZm9ydCwgZW1wdHkgaXMgYWxsb3dlZAogICAgICAgIGlmICggJEdldFBhcmFte1BsYW5uZWRFZmZvcnR9ICF+IG17IFxBIFxkKiAoPzogWy5dIFxkezEsMn0gKT8gXHogfXhtcyApIHsKICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcnsnUGxhbm5lZEVmZm9ydEludmFsaWQnfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgIG15ICRWYWxpZGF0aW9uUmVzdWx0ID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkVkaXRGaWVsZFZhbHVlVmFsaWRhdGUoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFZhbGlkYXRpb25SZXN1bHQpICkgewogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAnQ291bGQgbm90IHBlcmZvcm0gdmFsaWRhdGlvbiBvbiBmaWVsZCAlcyEnLCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9CiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHByb3BhZ2F0ZSB2YWxpZGF0aW9uIGVycm9yIHRvIHRoZSBFcnJvciB2YXJpYWJsZSB0byBiZSBkZXRlY3RlZCBieSB0aGUgZnJvbnRlbmQKICAgICAgICAgICAgaWYgKCAkVmFsaWRhdGlvblJlc3VsdC0+e1NlcnZlckVycm9yfSApIHsKICAgICAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gJyBTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgYWRkIG9ubHkgd2hlbiB0aGVyZSBhcmUgbm8gaW5wdXQgdmFsaWRhdGlvbiBlcnJvcnMKICAgICAgICBpZiAoICElVmFsaWRhdGlvbkVycm9yICkgewoKICAgICAgICAgICAgIyBjcmVhdGUgdGhlIHdvcmtvcmRlcgogICAgICAgICAgICBteSAkV29ya09yZGVySUQgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4gJEdldFBhcmFte1dvcmtPcmRlclRpdGxlfSwKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uICAgICAgPT4gJEdldFBhcmFte0luc3RydWN0aW9ufSwKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWUgPT4gJEdldFBhcmFte1BsYW5uZWRTdGFydFRpbWV9LAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWUgICA9PiAkR2V0UGFyYW17UGxhbm5lZEVuZFRpbWV9LAogICAgICAgICAgICAgICAgV29ya09yZGVyVHlwZUlEICA9PiAkR2V0UGFyYW17V29ya09yZGVyVHlwZUlEfSwKICAgICAgICAgICAgICAgIFBsYW5uZWRFZmZvcnQgICAgPT4gJEdldFBhcmFte1BsYW5uZWRFZmZvcnR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAlRHluYW1pY0ZpZWxkVmFsdWVzLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBhZGRpbmcgd2FzIHN1Y2Nlc3NmdWwKICAgICAgICAgICAgaWYgKCRXb3JrT3JkZXJJRCkgewoKICAgICAgICAgICAgICAgICMgbW92ZSBhdHRhY2htZW50cyBmcm9tIGNhY2hlIHRvIHZpcnR1YWwgZnMKICAgICAgICAgICAgICAgIG15IEBDYWNoZWRBdHRhY2htZW50cyA9ICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlER2V0QWxsRmlsZXNEYXRhKAogICAgICAgICAgICAgICAgICAgIEZvcm1JRCA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGZvciBteSAkQ2FjaGVkQXR0YWNobWVudCAoQENhY2hlZEF0dGFjaG1lbnRzKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50QWRkKAogICAgICAgICAgICAgICAgICAgICAgICAleyRDYWNoZWRBdHRhY2htZW50fSwKICAgICAgICAgICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIGRlbGV0ZSBmaWxlIGZyb20gY2FjaGUgaWYgbW92ZSB3YXMgc3VjY2Vzc2Z1bAogICAgICAgICAgICAgICAgICAgIGlmICgkU3VjY2VzcykgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyByZXdyaXRlIFVSTCBmb3IgaW5saW5lIGltYWdlcwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRDYWNoZWRBdHRhY2htZW50LT57Q29udGVudElEfSApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGdldCB0aGUgd29ya29yZGVyIGRhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRXb3JrT3JkZXJEYXRhID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyR2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcGljdHVyZSB1cmwgaW4gdXBsb2FkIGNhY2hlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkU2VhcmNoID0gIkFjdGlvbj1QaWN0dXJlVXBsb2FkIC4rIEZvcm1JRD0kU2VsZi0+e0Zvcm1JRH0gLisgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkNvbnRlbnRJRD0kQ2FjaGVkQXR0YWNobWVudC0+e0NvbnRlbnRJRH0iOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcGljdHVyZSB1cmwgaW4gd29ya29yZGVyIGF0dHRhY2htZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkUmVwbGFjZSA9ICJBY3Rpb249QWdlbnRJVFNNV29ya09yZGVyWm9vbTtTdWJhY3Rpb249RG93bmxvYWRBdHRhY2htZW50OyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJGaWxlbmFtZT0kQ2FjaGVkQXR0YWNobWVudC0+e0ZpbGVuYW1lfTtXb3JrT3JkZXJJRD0kV29ya09yZGVySUQiOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmVwbGFjZSB1cmwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRXb3JrT3JkZXJEYXRhLT57SW5zdHJ1Y3Rpb259ID1+IHN7JFNlYXJjaH17JFJlcGxhY2V9eG1zOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdXBkYXRlIHdvcmtvcmRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJVcGRhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluc3RydWN0aW9uID0+ICRXb3JrT3JkZXJEYXRhLT57SW5zdHJ1Y3Rpb259LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IHVwZGF0ZSB0aGUgaW5saW5lIGltYWdlIFVSTHMgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiZm9yIFdvcmtPcmRlcklEICckV29ya09yZGVySUQnISIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURSZW1vdmVGaWxlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9ybUlEID0+ICRTZWxmLT57Rm9ybUlEfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVJRCA9PiAkQ2FjaGVkQXR0YWNobWVudC0+e0ZpbGVJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Nhbm5vdCBtb3ZlIEZpbGUgZnJvbSBDYWNoZSB0byBWaXJ0dWFsRlMnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiKCR7JENhY2hlZEF0dGFjaG1lbnR9e0ZpbGVuYW1lfSkiLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGdldCByZWRpcmVjdCBzY3JlZW4KICAgICAgICAgICAgICAgIG15ICROZXh0U2NyZWVuID0gJFNlbGYtPntVc2VyQ3JlYXRlV29ya09yZGVyTmV4dE1hc2t9IHx8ICdBZ2VudElUU01Xb3JrT3JkZXJab29tJzsKCiAgICAgICAgICAgICAgICAjIGFkZCB0aGUgY29ycmVjdCBpZAogICAgICAgICAgICAgICAgaWYgKCAkTmV4dFNjcmVlbiBlcSAnQWdlbnRJVFNNV29ya09yZGVyWm9vbScgKSB7CiAgICAgICAgICAgICAgICAgICAgJE5leHRTY3JlZW4gLj0gIjtXb3JrT3JkZXJJRD0kV29ya09yZGVySUQiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkTmV4dFNjcmVlbiBlcSAnQWdlbnRJVFNNQ2hhbmdlWm9vbScgKSB7CiAgICAgICAgICAgICAgICAgICAgJE5leHRTY3JlZW4gLj0gIjtDaGFuZ2VJRD0kQ2hhbmdlSUQiOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgbG9hZCBuZXcgVVJMIGluIHBhcmVudCB3aW5kb3cgYW5kIGNsb3NlIHBvcHVwCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UG9wdXBDbG9zZSgKICAgICAgICAgICAgICAgICAgICBVUkwgPT4gIkFjdGlvbj0kTmV4dFNjcmVlbiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlLCB3aGVuIGFkZGluZyBmYWlsZWQKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnV2FzIG5vdCBhYmxlIHRvIGFkZCB3b3Jrb3JkZXIhJyksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGlmIHRoZXJlIHdhcyBhbiBhdHRhY2htZW50IGRlbGV0ZSBvciB1cGxvYWQKICAgICMgd2UgZG8gbm90IHdhbnQgdG8gc2hvdyB2YWxpZGF0aW9uIGVycm9ycyBmb3Igb3RoZXIgZmllbGRzCiAgICBpZiAoICRWYWxpZGF0aW9uRXJyb3J7QXR0YWNobWVudH0gKSB7CiAgICAgICAgJVZhbGlkYXRpb25FcnJvciA9ICgpOwogICAgfQoKICAgICMgZ2V0IGFsbCBhdHRhY2htZW50cyBtZXRhIGRhdGEKICAgIG15IEBBdHRhY2htZW50cyA9ICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlER2V0QWxsRmlsZXNNZXRhKAogICAgICAgIEZvcm1JRCA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICApOwoKICAgICMgb3V0cHV0IGhlYWRlcgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ0FkZCcpLAogICAgICAgIFR5cGUgID0+ICdTbWFsbCcsCiAgICApOwoKICAgICMgc2V0IHNlbGVjdGVkIHR5cGUKICAgIG15ICVTZWxlY3RlZEluZm8gPSAoCiAgICAgICAgRGVmYXVsdCA9PiAxLAogICAgKTsKCiAgICBpZiAoICRHZXRQYXJhbXtXb3JrT3JkZXJUeXBlSUR9ICkgewogICAgICAgICVTZWxlY3RlZEluZm8gPSAoIFNlbGVjdGVkID0+ICRHZXRQYXJhbXtXb3JrT3JkZXJUeXBlSUR9ICk7CiAgICB9CgogICAgIyBnZXQgV29ya09yZGVyVHlwZSBsaXN0CiAgICBteSAkV29ya09yZGVyVHlwZUxpc3QgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJUeXBlTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICVTZWxlY3RlZEluZm8sCiAgICApIHx8IFtdOwoKICAgICMgYnVpbGQgdGhlIFdvcmtPcmRlclR5cGUgZHJvcGRvd24KICAgICRHZXRQYXJhbXtXb3JrT3JkZXJUeXBlU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBOYW1lICA9PiAnV29ya09yZGVyVHlwZUlEJywKICAgICAgICBEYXRhICA9PiAkV29ya09yZGVyVHlwZUxpc3QsCiAgICAgICAgQ2xhc3MgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CgogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgIyBnZXQgZHluYW1pYyBmaWVsZHMgZGVmYXVsdHMgaWYgcGFnZSBpcyBsb2FkZWQgdGhlIGZpcnN0IHRpbWUKICAgICAgICBpZiAoICEkU2VsZi0+e1N1YmFjdGlvbn0gKSB7CgogICAgICAgICAgICAjIGdldCBkeW5hbWljIGZpZWxkcyBkZWZhdWx0cyBpZiBwYWdlIGlzIGxvYWRlZCB0aGUgZmlyc3QgdGltZQogICAgICAgICAgICBpZiAoICEkU2VsZi0+e1N1YmFjdGlvbn0gKSB7CiAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkVmFsdWVzeyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfQogICAgICAgICAgICAgICAgICAgID0gJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30tPntEZWZhdWx0VmFsdWV9IHx8ICcnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGdldCBmaWVsZCBodG1sCiAgICAgICAgbXkgJER5bmFtaWNGaWVsZEhUTUwgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkUmVuZGVyKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgICAgICAgPT4gJFZhbGlkYXRpb25FcnJvcnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gfHwgJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgICAgICBBSkFYVXBkYXRlICAgICAgICAgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIHNraXAgZmllbGRzIHRoYXQgSFRNTCBjb3VsZCBub3QgYmUgcmV0cmlldmVkCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRIVE1MKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTmFtZSAgPT4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9LAogICAgICAgICAgICAgICAgTGFiZWwgPT4gJER5bmFtaWNGaWVsZEhUTUwtPntMYWJlbH0sCiAgICAgICAgICAgICAgICBGaWVsZCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0ZpZWxkfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGV4YW1wbGUgb2YgZHluYW1pYyBmaWVsZHMgb3JkZXIgY3VzdG9taXphdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgICAgICBMYWJlbCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0xhYmVsfSwKICAgICAgICAgICAgICAgIEZpZWxkID0+ICREeW5hbWljRmllbGRIVE1MLT57RmllbGR9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyB0aW1lIHBlcmlvZCB0aGF0IGNhbiBiZSBzZWxlY3RlZCBmcm9tIHRoZSBHVUkKICAgIG15ICVUaW1lUGVyaW9kID0gJXsgJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNV29ya09yZGVyOjpUaW1lUGVyaW9kJykgfTsKCiAgICAjIHNldCB0aGUgdGltZSBzZWxlY3Rpb25zCiAgICBmb3IgbXkgJFRpbWVUeXBlIChxdyhQbGFubmVkU3RhcnRUaW1lIFBsYW5uZWRFbmRUaW1lKSkgewoKICAgICAgICAjIHNldCBkZWZhdWx0IHZhbHVlIGZvciAkRGlmZlRpbWUKICAgICAgICAjIFdoZW4gbm8gdGltZSBpcyBnaXZlbiB5ZXQsIHRoZW4gdXNlIHRoZSBjdXJyZW50IHRpbWUgcGx1cyB0aGUgZGlmZnRpbWUKICAgICAgICAjIFdoZW4gYW4gZXhwbGljaXQgdGltZSB3YXMgcmV0cmlldmVkLCAkRGlmZlRpbWUgaXMgbm90IHVzZWQKICAgICAgICBteSAkRGlmZlRpbWUgPSAkVGltZVR5cGUgZXEgJ1BsYW5uZWRTdGFydFRpbWUnID8gMCA6IDYwICogNjA7CgogICAgICAgICMgYWRkIHNlbGVjdGlvbiBmb3IgdGhlIHRpbWUKICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdTZWxlY3Rpb25TdHJpbmcnIH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZERhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgRm9ybWF0ICAgICAgICAgICAgICA9PiAnRGF0ZUlucHV0Rm9ybWF0TG9uZycsCiAgICAgICAgICAgIFByZWZpeCAgICAgICAgICAgICAgPT4gJFRpbWVUeXBlLAogICAgICAgICAgICBEaWZmVGltZSAgICAgICAgICAgID0+ICREaWZmVGltZSwKICAgICAgICAgICAgVmFsaWRhdGUgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAkVGltZVR5cGUgLiAnQ2xhc3MnID0+ICdWYWxpZGF0ZV9SZXF1aXJlZCAnCiAgICAgICAgICAgICAgICAuICggJFZhbGlkYXRpb25FcnJvcnsgJFRpbWVUeXBlIC4gJ0ludmFsaWQnIH0gfHwgJycgKSwKICAgICAgICAgICAgJVRpbWVQZXJpb2QsCiAgICAgICAgKTsKCiAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIG1lc3NhZ2VzIGZvciB0aGUgcGxhbm5lZCB0aW1lcwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICRUaW1lVHlwZQogICAgICAgICAgICAgICAgLiAoICRWYWxpZGF0aW9uRXJyb3J7ICRUaW1lVHlwZSAuICdFcnJvclR5cGUnIH0gfHwgJ0dlbmVyaWNTZXJ2ZXJFcnJvcicgKQogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHBsYW5uZWQgZWZmb3J0IGlmIGl0IGlzIGNvbmZpZ3VyZWQKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57UGxhbm5lZEVmZm9ydH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1Nob3dQbGFubmVkRWZmb3J0JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBQbGFubmVkRWZmb3J0ID0+ICRHZXRQYXJhbXtQbGFubmVkRWZmb3J0fSwKICAgICAgICAgICAgICAgICVWYWxpZGF0aW9uRXJyb3IsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAkUGFyYW17QXR0YWNobWVudExpc3R9ID0gXEBBdHRhY2htZW50czsKCiAgICAjIHNob3cgdGhlIGF0dGFjaG1lbnQgdXBsb2FkIGJ1dHRvbgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQXR0YWNobWVudFVwbG9hZCcsCiAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICk7CgogICAgIyBhZGQgcmljaCB0ZXh0IGVkaXRvciBqYXZhc2NyaXB0CiAgICAjIG9ubHkgaWYgYWN0aXZhdGVkIGFuZCB0aGUgYnJvd3NlciBjYW4gaGFuZGxlIGl0CiAgICAjIG90aGVyd2lzZSBqdXN0IGEgdGV4dGFyZWEgaXMgc2hvd24KICAgIGlmICggJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+U2V0UmljaFRleHRQYXJhbWV0ZXJzKAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHN0YXJ0IHRlbXBsYXRlIG91dHB1dAogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudElUU01Xb3JrT3JkZXJBZGQnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXskQ2hhbmdlfSwKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlVmFsaWRhdGlvbkVycm9yLAogICAgICAgICAgICBGb3JtSUQgPT4gJFNlbGYtPntGb3JtSUR9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgYWRkIGZvb3RlcgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoIFR5cGUgPT4gJ1NtYWxsJyApOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX1RpbWVTdGFtcDJFcG9jaCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRUaW1lU3RhbXAgICAgICA9ICRQYXJhbXtUaW1lU3RhbXB9OwogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBTdHJpbmcgPT4gJFRpbWVTdGFtcCwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gJERhdGVUaW1lT2JqZWN0LT5Ub0Vwb2NoKCkgaWYgJERhdGVUaW1lT2JqZWN0OwogICAgcmV0dXJuOwp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMWorkOrderAddFromTemplate.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGdldCBuZWVkZWQgQ2hhbmdlSUQKICAgIG15ICRDaGFuZ2VJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDaGFuZ2VJRCcgKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJENoYW5nZUlEICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05vIENoYW5nZUlEIGlzIGdpdmVuIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlIChXb3Jrb3JkZXJBZGQgaXMgYSBjaGFuZ2UgYWN0aW9uISkKICAgICRTZWxmLT57Q29uZmlnfSA9ICRDb25maWdPYmplY3QtPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGVycm9yIHNjcmVlbgogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyBvbiB0aGUgY2hhbmdlIScsICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259CiAgICAgICAgICAgICksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBjaGFuZ2UgZGF0YQogICAgbXkgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGVycm9yCiAgICBpZiAoICEkQ2hhbmdlICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywgJENoYW5nZUlEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgc3RvcmUgbmVlZGVkIHBhcmFtZXRlcnMgaW4gJUdldFBhcmFtIHRvIG1ha2UgaXQgcmVsb2FkYWJsZQogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRQYXJhbU5hbWUgKAogICAgICAgIHF3KE1vdmVUaW1lVHlwZSBNb3ZlVGltZVllYXIgTW92ZVRpbWVNb250aCBNb3ZlVGltZURheSBNb3ZlVGltZUhvdXIgTW92ZVRpbWVNaW51dGUgVGVtcGxhdGVJRCkKICAgICAgICApCiAgICB7CiAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtTmFtZSApOwogICAgfQoKICAgICMgc3RvcmUgdGltZSByZWxhdGVkIGZpZWxkcyBpbiAlR2V0UGFyYW0KICAgIGZvciBteSAkVGltZVBhcnQgKHF3KFllYXIgTW9udGggRGF5IEhvdXIgTWludXRlKSkgewogICAgICAgIG15ICRQYXJhbU5hbWUgPSAnTW92ZVRpbWUnIC4gJFRpbWVQYXJ0OwogICAgICAgICRHZXRQYXJhbXskUGFyYW1OYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbU5hbWUgKTsKICAgIH0KCiAgICAjIFJlbWVtYmVyIHRoZSByZWFzb24gd2h5IHNhdmluZyB3YXMgbm90IGF0dGVtcHRlZC4KICAgIG15ICVWYWxpZGF0aW9uRXJyb3I7CgogICAgIyBnZXQgdGVtcGxhdGUgb2JqZWN0CiAgICBteSAkVGVtcGxhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGUnKTsKCiAgICAjIGNyZWF0ZSB3b3Jrb3JkZXIgZnJvbSB0ZW1wbGF0ZQogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0NyZWF0ZUZyb21UZW1wbGF0ZScgKSB7CgogICAgICAgIG15ICROZXdUaW1lOwoKICAgICAgICAjIGNoZWNrIHZhbGlkaXR5IG9mIHRoZSB0aW1lIHR5cGUKICAgICAgICBpZiAoCiAgICAgICAgICAgICFkZWZpbmVkICRHZXRQYXJhbXtNb3ZlVGltZVR5cGV9CiAgICAgICAgICAgIHx8ICgKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtNb3ZlVGltZVR5cGV9IG5lICdQbGFubmVkU3RhcnRUaW1lJwogICAgICAgICAgICAgICAgJiYgJEdldFBhcmFte01vdmVUaW1lVHlwZX0gbmUgJ1BsYW5uZWRFbmRUaW1lJwogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7TW92ZVRpbWVUeXBlSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayB0aGUgY29tcGxldGVuZXNzIG9mIHRoZSB0aW1lIHBhcmFtZXRlciBsaXN0LAogICAgICAgICMgb25seSBob3VyIGFuZCBtaW51dGUgYXJlIGFsbG93ZWQgdG8gYmUgJzAnCiAgICAgICAgaWYgKAogICAgICAgICAgICAhJEdldFBhcmFte01vdmVUaW1lWWVhcn0KICAgICAgICAgICAgfHwgISRHZXRQYXJhbXtNb3ZlVGltZU1vbnRofQogICAgICAgICAgICB8fCAhJEdldFBhcmFte01vdmVUaW1lRGF5fQogICAgICAgICAgICB8fCAhZGVmaW5lZCAkR2V0UGFyYW17TW92ZVRpbWVIb3VyfQogICAgICAgICAgICB8fCAhZGVmaW5lZCAkR2V0UGFyYW17TW92ZVRpbWVNaW51dGV9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7TW92ZVRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICAjIGdldCB0aGUgc3lzdGVtIHRpbWUgZnJvbSB0aGUgaW5wdXQsIGlmIGl0IGNhbid0IGJlIGRldGVybWluZWQgd2UgaGF2ZSBhIHZhbGlkYXRpb24gZXJyb3IKICAgICAgICBpZiAoICElVmFsaWRhdGlvbkVycm9yICkgewoKICAgICAgICAgICAgIyB0cmFuc2Zvcm0gd29yayBvcmRlciBwbGFubmVkIHRpbWUsIHRpbWUgc3RhbXAgYmFzZWQgb24gdXNlciB0aW1lIHpvbmUKICAgICAgICAgICAgJUdldFBhcmFtID0gJExheW91dE9iamVjdC0+VHJhbnNmb3JtRGF0ZVNlbGVjdGlvbigKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgIFByZWZpeCA9PiAnTW92ZVRpbWUnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBmb3JtYXQgYXMgdGltZXN0YW1wCiAgICAgICAgICAgIG15ICRQbGFubmVkVGltZSA9IHNwcmludGYgJyUwNGQtJTAyZC0lMDJkICUwMmQ6JTAyZDowMCcsCiAgICAgICAgICAgICAgICAkR2V0UGFyYW17TW92ZVRpbWVZZWFyfSwKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtNb3ZlVGltZU1vbnRofSwKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtNb3ZlVGltZURheX0sCiAgICAgICAgICAgICAgICAkR2V0UGFyYW17TW92ZVRpbWVIb3VyfSwKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtNb3ZlVGltZU1pbnV0ZX07CgogICAgICAgICAgICAjIHNhbml0eSBjaGVjayBvZiB0aGUgYXNzZW1ibGVkIHRpbWVzdGFtcAogICAgICAgICAgICAkTmV3VGltZSA9ICRTZWxmLT5fVGltZVN0YW1wMkVwb2NoKAogICAgICAgICAgICAgICAgVGltZVN0YW1wID0+ICRQbGFubmVkVGltZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggISROZXdUaW1lICkgewogICAgICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcntNb3ZlVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayB3aGV0aGVyIGEgdGVtcGxhdGUgd2FzIHNlbGVjdGVkCiAgICAgICAgaWYgKCAhJEdldFBhcmFte1RlbXBsYXRlSUR9ICkgewogICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9ye1RlbXBsYXRlSURTZXJ2ZXJFcnJvcn0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJVZhbGlkYXRpb25FcnJvciApIHsKCiAgICAgICAgICAgICMgY3JlYXRlIHdvcmtvcmRlciBiYXNlZCBvbiB0aGUgdGVtcGxhdGUKICAgICAgICAgICAgbXkgJFdvcmtPcmRlcklEID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZURlU2VyaWFsaXplKAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgIFRlbXBsYXRlSUQgICAgICA9PiAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVGVtcGxhdGVJRCcgKSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBOZXdUaW1lSW5FcG9jaGUgPT4gJE5ld1RpbWUsCiAgICAgICAgICAgICAgICBNb3ZlVGltZVR5cGUgICAgPT4gJEdldFBhcmFte01vdmVUaW1lVHlwZX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHdvcmtvcmRlciBjb3VsZCBub3QgYmUgY3JlYXRlZAogICAgICAgICAgICBpZiAoICEkV29ya09yZGVySUQgKSB7CgogICAgICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UsIHdoZW4gYWRkaW5nIGZhaWxlZAogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdXYXMgbm90IGFibGUgdG8gY3JlYXRlIHdvcmtvcmRlciBmcm9tIHRlbXBsYXRlIScpLAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IHJlZGlyZWN0IHNjcmVlbgogICAgICAgICAgICBteSAkTmV4dFNjcmVlbiA9ICRTZWxmLT57VXNlckNyZWF0ZVdvcmtPcmRlck5leHRNYXNrfSB8fCAnQWdlbnRJVFNNV29ya09yZGVyWm9vbSc7CgogICAgICAgICAgICAjIGFkZCB0aGUgY29ycmVjdCBpZAogICAgICAgICAgICBpZiAoICROZXh0U2NyZWVuIGVxICdBZ2VudElUU01Xb3JrT3JkZXJab29tJyApIHsKICAgICAgICAgICAgICAgICROZXh0U2NyZWVuIC49ICI7V29ya09yZGVySUQ9JFdvcmtPcmRlcklEIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICROZXh0U2NyZWVuIGVxICdBZ2VudElUU01DaGFuZ2Vab29tJyApIHsKICAgICAgICAgICAgICAgICROZXh0U2NyZWVuIC49ICI7Q2hhbmdlSUQ9JENoYW5nZUlEIjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBsb2FkIG5ldyBVUkwgaW4gcGFyZW50IHdpbmRvdyBhbmQgY2xvc2UgcG9wdXAKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlBvcHVwQ2xvc2UoCiAgICAgICAgICAgICAgICBVUkwgPT4gIkFjdGlvbj0kTmV4dFNjcmVlbiIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgYnVpbGQgdGVtcGxhdGUgZHJvcGRvd24KICAgIG15ICRUZW1wbGF0ZUxpc3QgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlTGlzdCgKICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBDb21tZW50TGVuZ3RoID0+IDE1LAogICAgICAgIFRlbXBsYXRlVHlwZSAgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgKTsKICAgIG15ICRUZW1wbGF0ZVNlbGVjdGlvblN0cmluZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIE5hbWUgICAgICAgICA9PiAnVGVtcGxhdGVJRCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+ICRUZW1wbGF0ZUxpc3QsCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUgVmFsaWRhdGVfUmVxdWlyZWQgJyAuICggJFZhbGlkYXRpb25FcnJvcntUZW1wbGF0ZUlEU2VydmVyRXJyb3J9IHx8ICcnICksCiAgICAgICAgVHJlZVZpZXcgICAgID0+IDEsCiAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICApOwoKICAgICMgYnVpbGQgZHJvcC1kb3duIHdpdGggdGltZSB0eXBlcwogICAgbXkgJE1vdmVUaW1lVHlwZVNlbGVjdGlvblN0cmluZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIE5hbWUgPT4gJ01vdmVUaW1lVHlwZScsCiAgICAgICAgRGF0YSA9PiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICdQbGFubmVkU3RhcnRUaW1lJywKICAgICAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnUGxhbm5lZCBTdGFydCBUaW1lJykKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJ1BsYW5uZWRFbmRUaW1lJywKICAgICAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnUGxhbm5lZCBFbmQgVGltZScpCiAgICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtNb3ZlVGltZVR5cGV9IHx8ICdQbGFubmVkU3RhcnRUaW1lJywKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUgVmFsaWRhdGVfUmVxdWlyZWQgJyAuICggJFZhbGlkYXRpb25FcnJvcntNb3ZlVGltZVR5cGVJbnZhbGlkfSB8fCAnJyApLAogICAgKTsKCiAgICAjIHRpbWUgcGVyaW9kIHRoYXQgY2FuIGJlIHNlbGVjdGVkIGZyb20gdGhlIEdVSQogICAgbXkgJVRpbWVQZXJpb2QgPSAleyAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01Xb3JrT3JkZXI6OlRpbWVQZXJpb2QnKSB9OwoKICAgICMgYWRkIHNlbGVjdGlvbiBmb3IgdGhlIHRpbWUKICAgIG15ICRNb3ZlVGltZVNlbGVjdGlvblN0cmluZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkRGF0ZVNlbGVjdGlvbigKICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgRm9ybWF0ICAgICAgICA9PiAnRGF0ZUlucHV0Rm9ybWF0TG9uZycsCiAgICAgICAgUHJlZml4ICAgICAgICA9PiAnTW92ZVRpbWUnLAogICAgICAgIE1vdmVUaW1lQ2xhc3MgPT4gJ1ZhbGlkYXRlX1JlcXVpcmVkICcgLiAoICRWYWxpZGF0aW9uRXJyb3J7TW92ZVRpbWVJbnZhbGlkfSB8fCAnJyApLAogICAgICAgIFZhbGlkYXRlICAgICAgPT4gMSwKICAgICAgICAlVGltZVBlcmlvZCwKICAgICk7CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnQWRkJyksCiAgICAgICAgVHlwZSAgPT4gJ1NtYWxsJywKICAgICk7CgogICAgIyBzZXQgc2VsZWN0ZWQgdHlwZQogICAgbXkgJVNlbGVjdGVkSW5mbyA9ICgKICAgICAgICBEZWZhdWx0ID0+IDEsCiAgICApOwoKICAgIGlmICggJEdldFBhcmFte1dvcmtPcmRlclR5cGVJRH0gKSB7CiAgICAgICAgJVNlbGVjdGVkSW5mbyA9ICggU2VsZWN0ZWQgPT4gJEdldFBhcmFte1dvcmtPcmRlclR5cGVJRH0gKTsKICAgIH0KCiAgICAjIGdldCBXb3JrT3JkZXJUeXBlIGxpc3QKICAgIG15ICRXb3JrT3JkZXJUeXBlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlclR5cGVMaXN0KAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgJVNlbGVjdGVkSW5mbywKICAgICkgfHwgW107CgogICAgIyBidWlsZCB0aGUgV29ya09yZGVyVHlwZSBkcm9wZG93bgogICAgJEdldFBhcmFte1dvcmtPcmRlclR5cGVTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIE5hbWUgID0+ICdXb3JrT3JkZXJUeXBlSUQnLAogICAgICAgIERhdGEgID0+ICRXb3JrT3JkZXJUeXBlTGlzdCwKICAgICAgICBDbGFzcyA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBnZXQgZm9ybSBpZAogICAgJFNlbGYtPntGb3JtSUR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0Zvcm1JRCcgKTsKCiAgICAjIGNyZWF0ZSBmb3JtIGlkCiAgICBpZiAoICEkU2VsZi0+e0Zvcm1JRH0gKSB7CiAgICAgICAgJFNlbGYtPntGb3JtSUR9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6VXBsb2FkQ2FjaGUnKS0+Rm9ybUlEQ3JlYXRlKCk7CiAgICB9CgogICAgIyBzdGFydCB0ZW1wbGF0ZSBvdXRwdXQKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICV7JENoYW5nZX0sCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgICAgICAgICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVGVtcGxhdGVTZWxlY3Rpb25TdHJpbmcgICAgID0+ICRUZW1wbGF0ZVNlbGVjdGlvblN0cmluZywKICAgICAgICAgICAgTW92ZVRpbWVUeXBlU2VsZWN0aW9uU3RyaW5nID0+ICRNb3ZlVGltZVR5cGVTZWxlY3Rpb25TdHJpbmcsCiAgICAgICAgICAgIE1vdmVUaW1lU2VsZWN0aW9uU3RyaW5nICAgICA9PiAkTW92ZVRpbWVTZWxlY3Rpb25TdHJpbmcsCiAgICAgICAgICAgICVWYWxpZGF0aW9uRXJyb3IsCiAgICAgICAgICAgIEZvcm1JRCA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgfSwKICAgICk7CgogICAgIyBhZGQgZm9vdGVyCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlciggVHlwZSA9PiAnU21hbGwnICk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfVGltZVN0YW1wMkVwb2NoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSwgKSA9IEBfOwoKICAgIG15ICRUaW1lU3RhbXAgICAgICA9ICRQYXJhbXtUaW1lU3RhbXB9OwogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBTdHJpbmcgPT4gJFRpbWVTdGFtcCwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gaWYgISREYXRlVGltZU9iamVjdDsKCiAgICByZXR1cm4gJERhdGVUaW1lT2JqZWN0LT5Ub0Vwb2NoKCk7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMWorkOrderAgent.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVdvcmtPcmRlckFnZW50OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBnZXQgbmVlZGVkIFdvcmtPcmRlcklECiAgICBteSAkV29ya09yZGVySUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnV29ya09yZGVySUQnICk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRXb3JrT3JkZXJJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgd29ya29yZGVyIG9iamVjdAogICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CgogICAgIyBnZXQgd29ya29yZGVyIGRhdGEKICAgIG15ICRXb3JrT3JkZXIgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBlcnJvcgogICAgaWYgKCAhJFdvcmtPcmRlciApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnLCAkV29ya09yZGVySUQgKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgIyBnZXQgY29uZmlnIGZvciBmcm9udGVuZAogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgQWN0aW9uICAgICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIENoYW5nZUlEICAgID0+ICRXb3JrT3JkZXItPntDaGFuZ2VJRH0sCiAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnLCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufQogICAgICAgICAgICApLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KFVzZXIgVXNlclNlbGVjdGVkKSkgewogICAgICAgICRHZXRQYXJhbXskUGFyYW1OYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbU5hbWUgKTsKICAgIH0KCiAgICBteSAkVXNlclNlcnZlckVycm9yID0gJyc7CgogICAgIyBoYW5kbGUgdGhlICdTYXZlJyBzdWJhY3Rpb24KICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdTYXZlJyApIHsKCiAgICAgICAgIyB3b3Jrb3JkZXIgYWdlbnQgaXMgZW1wdHkgYW5kIG5vIGJ1dHRvbiBidXQgdGhlICdTYXZlJyBidXR0b24gaXMgY2xpY2tlZAogICAgICAgIGlmICggISRHZXRQYXJhbXtVc2VyfSApIHsKCiAgICAgICAgICAgICMgc2V0dGluZyB3b3Jrb3JkZXIgYWdlbnQgdG8gZW1wdHkKICAgICAgICAgICAgbXkgJENvdWxkVXBkYXRlV29ya09yZGVyID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyVXBkYXRlKAogICAgICAgICAgICAgICAgV29ya09yZGVySUQgICAgICA9PiAkV29ya09yZGVyLT57V29ya09yZGVySUR9LAogICAgICAgICAgICAgICAgV29ya09yZGVyQWdlbnRJRCA9PiB1bmRlZiwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRDb3VsZFVwZGF0ZVdvcmtPcmRlcikgewoKICAgICAgICAgICAgICAgICMgbG9hZCBuZXcgVVJMIGluIHBhcmVudCB3aW5kb3cgYW5kIGNsb3NlIHBvcHVwCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UG9wdXBDbG9zZSgKICAgICAgICAgICAgICAgICAgICBVUkwgPT4gJFNlbGYtPntMYXN0V29ya09yZGVyVmlld30sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZQogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAnV2FzIG5vdCBhYmxlIHRvIHNldCB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIgIiVzIiB0byBlbXB0eSEnLAogICAgICAgICAgICAgICAgICAgICAgICAkV29ya09yZGVyLT57V29ya09yZGVySUR9CiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIGEgd29ya29yZGVyIGFnZW50IGlzIHNlbGVjdGVkIGFuZCBubyBidXR0b24gYnV0IHRoZSAnU2F2ZScgYnV0dG9uIGlzIGNsaWNrZWQKICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXtVc2VyU2VsZWN0ZWR9ICkgewoKICAgICAgICAgICAgIyB3b3Jrb3JkZXIgYWdlbnQgaXMgcmVxdWlyZWQgZm9yIGFuIHVwZGF0ZQogICAgICAgICAgICBteSAlRXJyb3JBbGxSZXF1aXJlZCA9ICRTZWxmLT5fQ2hlY2tXb3JrT3JkZXJBZ2VudCglR2V0UGFyYW0pOwoKICAgICAgICAgICAgIyBpZiBldmVyeXRoaW5nIGlzIGZpbmUKICAgICAgICAgICAgaWYgKCAhJUVycm9yQWxsUmVxdWlyZWQgKSB7CgogICAgICAgICAgICAgICAgbXkgJENvdWxkVXBkYXRlV29ya09yZGVyID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyVXBkYXRlKAogICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEICAgICAgPT4gJFdvcmtPcmRlci0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJBZ2VudElEID0+ICRHZXRQYXJhbXtVc2VyU2VsZWN0ZWR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoJENvdWxkVXBkYXRlV29ya09yZGVyKSB7CgogICAgICAgICAgICAgICAgICAgICMgbG9hZCBuZXcgVVJMIGluIHBhcmVudCB3aW5kb3cgYW5kIGNsb3NlIHBvcHVwCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlBvcHVwQ2xvc2UoCiAgICAgICAgICAgICAgICAgICAgICAgIFVSTCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1dvcmtPcmRlcklEPSRXb3JrT3JkZXItPntXb3JrT3JkZXJJRH0iLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1dhcyBub3QgYWJsZSB0byB1cGRhdGUgdGhlIHdvcmtvcmRlciAiJXMiIScsICRXb3JrT3JkZXItPntXb3JrT3JkZXJJRH0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoICRFcnJvckFsbFJlcXVpcmVke1VzZXJ9ICkgewogICAgICAgICAgICAgICAgICAgICRVc2VyU2VydmVyRXJyb3IgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2lmICggISRHZXRQYXJhbXtVc2VyU2VsZWN0ZWR9ICkgewogICAgICAgICAgICAkVXNlclNlcnZlckVycm9yID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CiAgICB9CgogICAgIyBzaG93IGN1cnJlbnQgd29ya29yZGVyIGFnZW50CiAgICBpZiAoICRXb3JrT3JkZXItPntXb3JrT3JkZXJBZ2VudElEfSApIHsKICAgICAgICBteSAlVXNlckRhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRXb3JrT3JkZXItPntXb3JrT3JkZXJBZ2VudElEfSwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17VXNlcklEfSA9ICRVc2VyRGF0YXtVc2VySUR9OwogICAgICAgICRQYXJhbXtVc2VyfSAgID0gc3ByaW50ZiAnIiVzIiA8JXM+JywKICAgICAgICAgICAgJFVzZXJEYXRhe1VzZXJGdWxsbmFtZX0sCiAgICAgICAgICAgICRVc2VyRGF0YXtVc2VyRW1haWx9OwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSB0aGF0IHdvcmtvcmRlciBiZWxvbmdzIHRvCiAgICBteSAkQ2hhbmdlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRXb3JrT3JkZXItPntDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIHdoZXRoZXIgY2hhbmdlIHdhcyBmb3VuZAogICAgaWYgKCAhJENoYW5nZSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCBmaW5kIENoYW5nZSBmb3IgV29ya09yZGVyICVzIScsICRXb3JrT3JkZXJJRCApLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdVc2VyU2VhcmNoSW5pdCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIEl0ZW1JRCA9PiAnVXNlcicsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICRXb3JrT3JkZXItPntXb3JrT3JkZXJUaXRsZX0sCiAgICAgICAgVHlwZSAgPT4gJ1NtYWxsJywKICAgICk7CgogICAgIyBzdGFydCB0ZW1wbGF0ZSBvdXRwdXQKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNV29ya09yZGVyQWdlbnQnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgIFVzZXJTZXJ2ZXJFcnJvciA9PiAkVXNlclNlcnZlckVycm9yLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICV7JENoYW5nZX0sCiAgICAgICAgICAgICV7JFdvcmtPcmRlcn0sCiAgICAgICAgfSwKICAgICk7CgogICAgIyBhZGQgZm9vdGVyCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlciggVHlwZSA9PiAnU21hbGwnICk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfQ2hlY2tXb3JrT3JkZXJBZ2VudCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgaGFzaCBmb3IgZXJyb3IgaW5mbwogICAgbXkgJUVycm9yczsKCiAgICAjIGNoZWNrIHdvcmtvcmRlciBhZ2VudAogICAgaWYgKCAhJFBhcmFte1VzZXJ9IHx8ICEkUGFyYW17VXNlclNlbGVjdGVkfSApIHsKICAgICAgICAkRXJyb3Jze1VzZXJ9ID0gMTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGdldCB3b3Jrb3JkZXIgYWdlbnQgZGF0YQogICAgICAgIG15ICVVc2VyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlclNlbGVjdGVkfSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgZXJyb3IgaWYgdXNlciBub3QgZXhpc3RzCiAgICAgICAgaWYgKCAhJVVzZXIgKSB7CiAgICAgICAgICAgICRFcnJvcnN7VXNlcn0gPSAxOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY29tcGFyZSBpbnB1dCB2YWx1ZSB3aXRoIHVzZXIgZGF0YQogICAgICAgICAgICBteSAkQ2hlY2tTdHJpbmcgPSBzcHJpbnRmICciJXMiIDwlcz4nLAogICAgICAgICAgICAgICAgJFVzZXJ7VXNlckZ1bGxuYW1lfSwKICAgICAgICAgICAgICAgICRVc2Vye1VzZXJFbWFpbH07CgogICAgICAgICAgICAjIHNob3cgZXJyb3IKICAgICAgICAgICAgaWYgKCAkQ2hlY2tTdHJpbmcgbmUgJFBhcmFte1VzZXJ9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3tVc2VyfSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVFcnJvcnM7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMWorkOrderDelete.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVdvcmtPcmRlckRlbGV0ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBXb3JrT3JkZXJJRAogICAgbXkgJFdvcmtPcmRlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJ1dvcmtPcmRlcklEJyApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRXb3JrT3JkZXJJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgd29ya29yZGVyIG9iamVjdAogICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CgogICAgIyBnZXQgd29ya29yZGVyIGRhdGEKICAgIG15ICRXb3JrT3JkZXIgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBlcnJvcgogICAgaWYgKCAhJFdvcmtPcmRlciApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnLCAkV29ya09yZGVySUQgKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgQWN0aW9uICAgICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIENoYW5nZUlEICAgID0+ICRXb3JrT3JkZXItPntDaGFuZ2VJRH0sCiAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4sIGRvbid0IHNob3cgd29ya29yZGVyIGRlbGV0ZSBtYXNrCiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgJ1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIG9uIHRoZSBjaGFuZ2UhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0KICAgICAgICAgICAgKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdXb3JrT3JkZXJEZWxldGUnICkgewoKICAgICAgICAjIGRlbGV0ZSB0aGUgd29ya29yZGVyCiAgICAgICAgbXkgJENvdWxkRGVsZXRlV29ya09yZGVyID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyRGVsZXRlKAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVyLT57V29ya09yZGVySUR9LAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRDb3VsZERlbGV0ZVdvcmtPcmRlcikgewoKICAgICAgICAgICAgIyByZWRpcmVjdCB0byBjaGFuZ2UsIHdoZW4gdGhlIGRlbGV0aW9uIHdhcyBzdWNjZXNzZnVsCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0kV29ya09yZGVyLT57Q2hhbmdlSUR9IiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIHNob3cgZXJyb3IgbWVzc2FnZSwgd2hlbiBkZWxldGUgZmFpbGVkCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICdXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSB3b3Jrb3JkZXIgJXMhJywgJFdvcmtPcmRlci0+e1dvcmtPcmRlcklEfQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgY2hhbmdlIHRoYXQgd29ya29yZGVyIGJlbG9uZ3MgdG8KICAgIG15ICRDaGFuZ2UgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlci0+e0NoYW5nZUlEfSwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgY2hhbmdlIGlzIGZvdW5kCiAgICBpZiAoICEkQ2hhbmdlICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJywgJFdvcmtPcmRlcklEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNvbmRpdGlvbiBvYmplY3QKICAgIG15ICRDb25kaXRpb25PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbicpOwoKICAgICMgZ2V0IGFmZmVjdGVkIGNvbmRpdGlvbiBpZHMKICAgIG15ICRBZmZlY3RlZENvbmRpdGlvbklEcyA9ICRDb25kaXRpb25PYmplY3QtPkNvbmRpdGlvbkxpc3RCeU9iamVjdFR5cGUoCiAgICAgICAgT2JqZWN0VHlwZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgU2VsZWN0b3IgICA9PiAkV29ya09yZGVyLT57V29ya09yZGVySUR9LAogICAgICAgIENoYW5nZUlEICAgPT4gJFdvcmtPcmRlci0+e0NoYW5nZUlEfSwKICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICkgfHwgW107CgogICAgIyBzZXQgdGhlIGRpYWxvZyB0eXBlLiBBcyBkZWZhdWx0LCB0aGUgZGlhbG9nIHdpbGwgaGF2ZSAyIGJ1dHRvbnM6IFllcyBhbmQgTm8KICAgIG15ICREaWFsb2dUeXBlID0gJ0NvbmZpcm1hdGlvbic7CgogICAgIyBkaXNwbGF5IGxpc3Qgb2YgYWZmZWN0ZWQgY29uZGl0aW9ucwogICAgaWYgKCBAeyRBZmZlY3RlZENvbmRpdGlvbklEc30gKSB7CgogICAgICAgICMgc2V0IHRoZSBkaWFsb2cgdHlwZSB0byBoYXZlIG9ubHkgMSBidXR0b246IE9rCiAgICAgICAgJERpYWxvZ1R5cGUgPSAnTWVzc2FnZSc7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdXb3JrT3JkZXJJbkNvbmRpdGlvbicsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKCiAgICAgICAgQ09ORElUSU9OSUQ6CiAgICAgICAgZm9yIG15ICRDb25kaXRpb25JRCAoIEB7JEFmZmVjdGVkQ29uZGl0aW9uSURzfSApIHsKCiAgICAgICAgICAgICMgZ2V0IGNvbmRpdGlvbgogICAgICAgICAgICBteSAkQ29uZGl0aW9uID0gJENvbmRpdGlvbk9iamVjdC0+Q29uZGl0aW9uR2V0KAogICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJENvbmRpdGlvbklELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBjaGVjayBjb25kaXRpb24KICAgICAgICAgICAgbmV4dCBDT05ESVRJT05JRCBpZiAhJENvbmRpdGlvbjsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnV29ya09yZGVySW5Db25kaXRpb25Sb3cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJXskQ29uZGl0aW9ufSwKICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb1dvcmtPcmRlckluQ29uZGl0aW9uJywKICAgICAgICAgICAgRGF0YSA9PiAkV29ya09yZGVyLAogICAgICAgICk7CiAgICB9CgogICAgIyBvdXRwdXQgY29udGVudAogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50SVRTTVdvcmtPcmRlckRlbGV0ZScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyRDaGFuZ2V9LAogICAgICAgICAgICAleyRXb3JrT3JkZXJ9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgYnVpbGQgdGhlIHJldHVybmVkIGRhdGEgc3RydWN0dXJlCiAgICBteSAlRGF0YSA9ICgKICAgICAgICBIVE1MICAgICAgID0+ICRPdXRwdXQsCiAgICAgICAgRGlhbG9nVHlwZSA9PiAkRGlhbG9nVHlwZSwKICAgICk7CgogICAgIyByZXR1cm4gSlNPTi1TdHJpbmcgYmVjYXVzZSBvZiBBSkFYLU1vZGUKICAgIG15ICRPdXRwdXRKU09OID0gJExheW91dE9iamVjdC0+SlNPTkVuY29kZSggRGF0YSA9PiBcJURhdGEgKTsKCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICBDb250ZW50VHlwZSA9PiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD0nIC4gJExheW91dE9iamVjdC0+e0NoYXJzZXR9LAogICAgICAgIENvbnRlbnQgICAgID0+ICRPdXRwdXRKU09OLAogICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgIE5vQ2FjaGUgICAgID0+IDEsCiAgICApOwp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMWorkOrderEdit.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVdvcmtPcmRlckVkaXQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGdldCBuZWVkZWQgV29ya09yZGVySUQKICAgIG15ICRXb3JrT3JkZXJJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdXb3JrT3JkZXJJRCcgKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFdvcmtPcmRlcklEICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05vIFdvcmtPcmRlcklEIGlzIGdpdmVuIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCB3b3JrZG9yZGVyIG9iamVjdAogICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CgogICAgIyBnZXQgd29ya29yZGVyIGRhdGEKICAgIG15ICRXb3JrT3JkZXIgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBlcnJvcgogICAgaWYgKCAhJFdvcmtPcmRlciApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1dvcmtPcmRlciAiJXMiIG5vdCBmb3VuZCBpbiBkYXRhYmFzZSEnLCAkV29ya09yZGVySUQgKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJENvbmZpZ09iamVjdC0+R2V0KCJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgQWN0aW9uICAgICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIENoYW5nZUlEICAgID0+ICRXb3JrT3JkZXItPntDaGFuZ2VJRH0sCiAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMgb24gdGhlIGNoYW5nZSEnLCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufQogICAgICAgICAgICApLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBzdG9yZSBuZWVkZWQgcGFyYW1ldGVycyBpbiAlR2V0UGFyYW0gdG8gbWFrZSBpdCByZWxvYWRhYmxlCiAgICBteSAlR2V0UGFyYW07CiAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoV29ya09yZGVyVGl0bGUgSW5zdHJ1Y3Rpb24gUGxhbm5lZEVmZm9ydCBBdHRhY2htZW50VXBsb2FkIEZpbGVJRCkpIHsKICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CiAgICB9CgogICAgIyBnZXQgdGhlIGNoZWNrYm94IHZhbHVlIGFuZCBzdG9yZSBpdCBpbiAlR2V0UGFyYW0gdG8gbWFrZSBpdCByZWxvYWRhYmxlCiAgICAkR2V0UGFyYW17TW92ZUZvbGxvd2luZ1dvcmtPcmRlcnN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ01vdmVGb2xsb3dpbmdXb3JrT3JkZXJzJyApOwoKICAgICMgZ2V0IGFsbCB3b3Jrb3JkZXIgaWRzIGZvciB0aGlzIGNoYW5nZQogICAgbXkgJFdvcmtPcmRlcklEc1JlZiA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckxpc3QoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlci0+e0NoYW5nZUlEfSwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZmluZCBvdXQgdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXIgaWRzCiAgICBteSBARm9sbG93aW5nV29ya09yZGVySURzOwogICAgbXkgJE93bldvcmtPcmRlcklERm91bmQ7CiAgICBXT1JLT1JERVJJRDoKICAgIGZvciBteSAkT3RoZXJXb3JrT3JkZXJJRCAoIEB7JFdvcmtPcmRlcklEc1JlZn0gKSB7CgogICAgICAgICMgY2hlY2sgaWYgdGhlIG90aGVyIHdvcmtvcmRlciBpZCBpcyB0aGUgb3duIHdvcmtvcmRlciBpZAogICAgICAgIGlmICggJE90aGVyV29ya09yZGVySUQgZXEgJFdvcmtPcmRlcklEICkgewogICAgICAgICAgICAkT3duV29ya09yZGVySURGb3VuZCA9IDE7CiAgICAgICAgICAgIG5leHQgV09SS09SREVSSUQ7CiAgICAgICAgfQoKICAgICAgICAjIHdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIGZvbGxvd2luZyB3b3Jrb3JkZXIgaWRzCiAgICAgICAgbmV4dCBXT1JLT1JERVJJRCBpZiAhJE93bldvcmtPcmRlcklERm91bmQ7CgogICAgICAgICMgY29sbGVjdCB0aGUgZm9sbG93aW5nIHdvcmtvcmRlciBpZHMKICAgICAgICBwdXNoIEBGb2xsb3dpbmdXb3JrT3JkZXJJRHMsICRPdGhlcldvcmtPcmRlcklEOwogICAgfQoKICAgICMgZ2V0IER5bmFtaWMgZmllbGRzIGZyb20gUGFyYW1PYmplY3QKICAgIG15ICVEeW5hbWljRmllbGRWYWx1ZXM7CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgbXkgJER5bmFtaWNGaWVsZCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9IHx8IHt9LAogICAgKTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGJhY2tlbmQgb2JqZWN0CiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gdGhlIHdlYiByZXF1ZXN0IGFuZCBhZGQgdGhlIHByZWZpeAogICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9CiAgICAgICAgICAgID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkVkaXRGaWVsZFZhbHVlR2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgUGFyYW1PYmplY3QgICAgICAgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgICk7CiAgICB9CgogICAgIyBzdG9yZSB0aW1lIHJlbGF0ZWQgZmllbGRzIGluICVHZXRQYXJhbQogICAgZm9yIG15ICRUaW1lVHlwZSAocXcoUGxhbm5lZFN0YXJ0VGltZSBQbGFubmVkRW5kVGltZSkpIHsKICAgICAgICBmb3IgbXkgJFRpbWVQYXJ0IChxdyhZZWFyIE1vbnRoIERheSBIb3VyIE1pbnV0ZSkpIHsKICAgICAgICAgICAgbXkgJFBhcmFtTmFtZSA9ICRUaW1lVHlwZSAuICRUaW1lUGFydDsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtTmFtZSApOwogICAgICAgIH0KICAgIH0KCiAgICAjIFJlbWVtYmVyIHRoZSByZWFzb24gd2h5IHNhdmluZyB3YXMgbm90IGF0dGVtcHRlZC4KICAgIG15ICVWYWxpZGF0aW9uRXJyb3I7CgogICAgIyBnZXQgdXBsb2FkIGNhY2hlIG9iamVjdAogICAgbXkgJFVwbG9hZENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6VXBsb2FkQ2FjaGUnKTsKCiAgICAjIGdldCBmb3JtIGlkCiAgICAkU2VsZi0+e0Zvcm1JRH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRm9ybUlEJyApOwoKICAgICMgY3JlYXRlIGZvcm0gaWQKICAgIGlmICggISRTZWxmLT57Rm9ybUlEfSApIHsKICAgICAgICAkU2VsZi0+e0Zvcm1JRH0gPSAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JRENyZWF0ZSgpOwogICAgfQoKICAgICMgdXBkYXRlIHdvcmtvcmRlcgogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1NhdmUnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICAjIHRoZSB0aXRsZSBpcyByZXF1aXJlZAogICAgICAgIGlmICggISRHZXRQYXJhbXtXb3JrT3JkZXJUaXRsZX0gKSB7CiAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7V29ya09yZGVyVGl0bGVTZXJ2ZXJFcnJvcn0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgbG9nIG9iamVjdAogICAgICAgIG15ICRMb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CgogICAgICAgICMgY2hlY2sgd2hldGhlciBjb21wbGV0ZSB0aW1lcyBhcmUgcGFzc2VkIGFuZCBidWlsZCB0aGUgdGltZSBzdGFtcHMKICAgICAgICBteSAlU3lzdGVtVGltZTsKICAgICAgICBUSU1FVFlQRToKICAgICAgICBmb3IgbXkgJFRpbWVUeXBlIChxdyhQbGFubmVkU3RhcnRUaW1lIFBsYW5uZWRFbmRUaW1lKSkgewogICAgICAgICAgICBmb3IgbXkgJFRpbWVQYXJ0IChxdyhZZWFyIE1vbnRoIERheSBIb3VyIE1pbnV0ZSkpIHsKICAgICAgICAgICAgICAgIG15ICRQYXJhbU5hbWUgPSAkVGltZVR5cGUgLiAkVGltZVBhcnQ7CiAgICAgICAgICAgICAgICBpZiAoICFkZWZpbmVkICRHZXRQYXJhbXskUGFyYW1OYW1lfSApIHsKICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRQYXJhbU5hbWUhIiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIG5leHQgVElNRVRZUEU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdHJhbnNmb3JtIHdvcmsgb3JkZXIgcGxhbm5lZCB0aW1lLCB0aW1lIHN0YW1wIGJhc2VkIG9uIHVzZXIgdGltZSB6b25lCiAgICAgICAgICAgICVHZXRQYXJhbSA9ICRMYXlvdXRPYmplY3QtPlRyYW5zZm9ybURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICBQcmVmaXggPT4gJFRpbWVUeXBlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBmb3JtYXQgYXMgdGltZXN0YW1wCiAgICAgICAgICAgICRHZXRQYXJhbXskVGltZVR5cGV9ID0gc3ByaW50ZiAnJTA0ZC0lMDJkLSUwMmQgJTAyZDolMDJkOjAwJywKICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1llYXInIH0sCiAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdNb250aCcgfSwKICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ0RheScgfSwKICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ0hvdXInIH0sCiAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdNaW51dGUnIH07CgogICAgICAgICAgICAjIHNhbml0eSBjaGVjayB0aGUgYXNzZW1ibGVkIHRpbWVzdGFtcAogICAgICAgICAgICAkU3lzdGVtVGltZXskVGltZVR5cGV9ID0gJFNlbGYtPl9UaW1lU3RhbXAyRXBvY2goCiAgICAgICAgICAgICAgICBUaW1lU3RhbXAgPT4gJEdldFBhcmFteyRUaW1lVHlwZX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGRvIG5vdCBzYXZlIGlmIHRpbWUgaXMgaW52YWxpZAogICAgICAgICAgICBpZiAoICEkU3lzdGVtVGltZXskVGltZVR5cGV9ICkgewogICAgICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcnsgJFRpbWVUeXBlIC4gJ0ludmFsaWQnIH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIHZhbGlkaXR5IG9mIHRoZSBwbGFubmVkIHN0YXJ0IGFuZCBlbmQgdGltZXMKICAgICAgICBpZiAoICRTeXN0ZW1UaW1le1BsYW5uZWRTdGFydFRpbWV9ICYmICEkU3lzdGVtVGltZXtQbGFubmVkRW5kVGltZX0gKSB7CiAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7UGxhbm5lZEVuZFRpbWVJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcntQbGFubmVkRW5kVGltZUVycm9yVHlwZX0gPSAnR2VuZXJpY1NlcnZlckVycm9yJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAhJFN5c3RlbVRpbWV7UGxhbm5lZFN0YXJ0VGltZX0gJiYgJFN5c3RlbVRpbWV7UGxhbm5lZEVuZFRpbWV9ICkgewogICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9ye1BsYW5uZWRTdGFydFRpbWVJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcntQbGFubmVkU3RhcnRUaW1lRXJyb3JUeXBlfSA9ICdHZW5lcmljU2VydmVyRXJyb3InOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICggJFN5c3RlbVRpbWV7UGxhbm5lZFN0YXJ0VGltZX0gJiYgJFN5c3RlbVRpbWV7UGxhbm5lZEVuZFRpbWV9ICkKICAgICAgICAgICAgJiYgKCAkU3lzdGVtVGltZXtQbGFubmVkRW5kVGltZX0gPD0gJFN5c3RlbVRpbWV7UGxhbm5lZFN0YXJ0VGltZX0gKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9ye1BsYW5uZWRTdGFydFRpbWVJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcntQbGFubmVkU3RhcnRUaW1lRXJyb3JUeXBlfSA9ICdCZWZvcmVUaGFuRW5kVGltZVNlcnZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgZm9ybWF0IG9mIHBsYW5uZWQgZWZmb3J0LCBlbXB0eSBpcyBhbGxvd2VkCiAgICAgICAgaWYgKAogICAgICAgICAgICAkR2V0UGFyYW17UGxhbm5lZEVmZm9ydH0KICAgICAgICAgICAgJiYgJEdldFBhcmFte1BsYW5uZWRFZmZvcnR9ICF+IG17IFxBIFxkKiAoPzogWy5dIFxkezEsMn0gKT8gXHogfXhtcwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9yeydQbGFubmVkRWZmb3J0SW52YWxpZCd9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgbXkgJFZhbGlkYXRpb25SZXN1bHQgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkVmFsdWVWYWxpZGF0ZSgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgUGFyYW1PYmplY3QgICAgICAgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkVmFsaWRhdGlvblJlc3VsdCkgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICdDb3VsZCBub3QgcGVyZm9ybSB2YWxpZGF0aW9uIG9uIGZpZWxkICVzIScsICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0KICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcHJvcGFnYXRlIHZhbGlkYXRpb24gZXJyb3IgdG8gdGhlIEVycm9yIHZhcmlhYmxlIHRvIGJlIGRldGVjdGVkIGJ5IHRoZSBmcm9udGVuZAogICAgICAgICAgICBpZiAoICRWYWxpZGF0aW9uUmVzdWx0LT57U2VydmVyRXJyb3J9ICkgewogICAgICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPSAnIFNlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBpZiBhbGwgcGFzc2VkIGRhdGEgaXMgdmFsaWQKICAgICAgICBpZiAoICElVmFsaWRhdGlvbkVycm9yICkgewogICAgICAgICAgICBteSAkQ291bGRVcGRhdGVXb3JrT3JkZXIgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJVcGRhdGUoCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCAgICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4gJEdldFBhcmFte1dvcmtPcmRlclRpdGxlfSwKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uICAgICAgPT4gJEdldFBhcmFte0luc3RydWN0aW9ufSwKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWUgPT4gJEdldFBhcmFte1BsYW5uZWRTdGFydFRpbWV9LAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWUgICA9PiAkR2V0UGFyYW17UGxhbm5lZEVuZFRpbWV9LAogICAgICAgICAgICAgICAgUGxhbm5lZEVmZm9ydCAgICA9PiAkR2V0UGFyYW17UGxhbm5lZEVmZm9ydH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICVEeW5hbWljRmllbGRWYWx1ZXMsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHVwZGF0ZSB3YXMgc3VjY2Vzc2Z1bAogICAgICAgICAgICBpZiAoJENvdWxkVXBkYXRlV29ya09yZGVyKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgYWxsIGF0dGFjaG1lbnRzIGZyb20gdXBsb2FkIGNhY2hlCiAgICAgICAgICAgICAgICBteSBAQXR0YWNobWVudHMgPSAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JREdldEFsbEZpbGVzRGF0YSgKICAgICAgICAgICAgICAgICAgICBGb3JtSUQgPT4gJFNlbGYtPntGb3JtSUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIGEgbG9va3VwIGxvb2t1cCBoYXNoIG9mIHRoZSBuZXcgYXR0YWNobWVudHMKICAgICAgICAgICAgICAgIG15ICVOZXdBdHRhY2htZW50OwogICAgICAgICAgICAgICAgZm9yIG15ICRBdHRhY2htZW50IChAQXR0YWNobWVudHMpIHsKCiAgICAgICAgICAgICAgICAgICAgIyB0aGUga2V5IGlzIHRoZSBmaWxlbmFtZSArIGZpbGVzaXplICsgY29udGVudCB0eXBlCiAgICAgICAgICAgICAgICAgICAgbXkgJEtleSA9ICRBdHRhY2htZW50LT57RmlsZW5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEF0dGFjaG1lbnQtPntGaWxlc2l6ZX0KICAgICAgICAgICAgICAgICAgICAgICAgLiAkQXR0YWNobWVudC0+e0NvbnRlbnRUeXBlfTsKCiAgICAgICAgICAgICAgICAgICAgIyBhcHBlbmQgY29udGVudCBpZCBpZiBhdmFpbGFibGUgKGZvciBuZXcgaW5saW5lIGltYWdlcykKICAgICAgICAgICAgICAgICAgICBpZiAoICRBdHRhY2htZW50LT57Q29udGVudElEfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEtleSAuPSAkQXR0YWNobWVudC0+e0NvbnRlbnRJRH07CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIHN0b3JlIGFsbCBvZiB0aGUgbmV3IGF0dGFjaG1lbnQgZGF0YQogICAgICAgICAgICAgICAgICAgICROZXdBdHRhY2htZW50eyRLZXl9ID0gJEF0dGFjaG1lbnQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBnZXQgYWxsIGF0dGFjaG1lbnRzIG1ldGEgZGF0YQogICAgICAgICAgICAgICAgbXkgQEV4aXN0aW5nQXR0YWNobWVudHMgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50TGlzdCgKICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgY2hlY2sgdGhlIGV4aXN0aW5nIGF0dGFjaG1lbnRzCiAgICAgICAgICAgICAgICBGSUxFTkFNRToKICAgICAgICAgICAgICAgIGZvciBteSAkRmlsZW5hbWUgKEBFeGlzdGluZ0F0dGFjaG1lbnRzKSB7CgogICAgICAgICAgICAgICAgICAgICMgZ2V0IHRoZSBleGlzdGluZyBhdHRhY2htZW50IGRhdGEKICAgICAgICAgICAgICAgICAgICBteSAkQXR0YWNobWVudERhdGEgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50R2V0KAogICAgICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVuYW1lICAgID0+ICRGaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgZG8gbm90IGNvbnNpZGVyIGlubGluZSBhdHRhY2htZW50cwogICAgICAgICAgICAgICAgICAgIG5leHQgRklMRU5BTUUgaWYgJEF0dGFjaG1lbnREYXRhLT57UHJlZmVyZW5jZXN9LT57Q29udGVudElEfTsKCiAgICAgICAgICAgICAgICAgICAgIyB0aGUga2V5IGlzIHRoZSBmaWxlbmFtZSArIGZpbGVzaXplICsgY29udGVudCB0eXBlCiAgICAgICAgICAgICAgICAgICAgIyAobm8gY29udGVudCBpZCwgYXMgZXhpc3RpbmcgYXR0YWNobWVudHMgZG9uJ3QgaGF2ZSBpdCkKICAgICAgICAgICAgICAgICAgICBteSAkS2V5ID0gJEF0dGFjaG1lbnREYXRhLT57RmlsZW5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEF0dGFjaG1lbnREYXRhLT57RmlsZXNpemV9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEF0dGFjaG1lbnREYXRhLT57Q29udGVudFR5cGV9OwoKICAgICAgICAgICAgICAgICAgICAjIGF0dGFjaG1lbnQgaXMgYWxyZWFkeSBleGlzdGluZywgd2UgY2FuIGRlbGV0ZSBpdCBmcm9tIHRoZSBuZXcgYXR0YWNobWVudCBoYXNoCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkTmV3QXR0YWNobWVudHskS2V5fSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlICROZXdBdHRhY2htZW50eyRLZXl9OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBleGlzdGluZyBhdHRhY2htZW50IGlzIG5vIGxvbmdlciBpbiBuZXcgYXR0YWNobWVudHMgaGFzaAogICAgICAgICAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBkZWxldGUgdGhlIGV4aXN0aW5nIGF0dGFjaG1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJERlbGV0ZVN1Y2Nlc3NmdWwgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50RGVsZXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgPT4gJFdvcmtPcmRlci0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVuYW1lICAgID0+ICRGaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhJERlbGV0ZVN1Y2Nlc3NmdWwgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgd3JpdGUgdGhlIG5ldyBhdHRhY2htZW50cwogICAgICAgICAgICAgICAgQVRUQUNITUVOVDoKICAgICAgICAgICAgICAgIGZvciBteSAkQXR0YWNobWVudCAoIHZhbHVlcyAlTmV3QXR0YWNobWVudCApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBjaGVjayBpZiBhdHRhY2htZW50IGlzIGFuIGlubGluZSBhdHRhY2htZW50CiAgICAgICAgICAgICAgICAgICAgbXkgJElubGluZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkQXR0YWNobWVudC0+e0NvbnRlbnRJRH0gKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIHJlbWVtYmVyIHRoYXQgaXQgaXMgaW5saW5lCiAgICAgICAgICAgICAgICAgICAgICAgICRJbmxpbmUgPSAxOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyByZW1lbWJlciBpZiB0aGlzIGlubGluZSBhdHRhY2htZW50IGlzIHVzZWQgaW4gdGhlIHdvcmtvcmRlciBpbnN0cnVjdGlvbgogICAgICAgICAgICAgICAgICAgICAgICBteSAkQ29udGVudElERm91bmQ7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIHdvcmtvcmRlciBpbnN0cnVjdGlvbiBmb3IgY29udGVudCBpZAogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRHZXRQYXJhbXtJbnN0cnVjdGlvbn0gPX4gbXsgJEF0dGFjaG1lbnQtPntDb250ZW50SUR9IH14bXMgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmb3VuZCB0aGUgY29udGVudCBpZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENvbnRlbnRJREZvdW5kID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgIyB3ZSBkbyBub3Qgd2FudCB0byBrZWVwIHRoaXMgYXR0YWNobWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgIyBiZWNhdXNlIGl0IHdhcyBkZWxldGVkIGluIHRoZSByaWNodCB0ZXh0IGVkaXRvcgogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IEFUVEFDSE1FTlQgaWYgISRDb250ZW50SURGb3VuZDsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICMgYWRkIGF0dGFjaG1lbnQKICAgICAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckF0dGFjaG1lbnRBZGQoCiAgICAgICAgICAgICAgICAgICAgICAgICV7JEF0dGFjaG1lbnR9LAogICAgICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICAgICAgICAgIENoYW5nZUlEICAgID0+ICRXb3JrT3JkZXItPntDaGFuZ2VJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKCk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBuZXh0IEFUVEFDSE1FTlQgaWYgISRJbmxpbmU7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICEkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fTsKCiAgICAgICAgICAgICAgICAgICAgIyBwaWN0dXJlIHVybCBpbiB1cGxvYWQgY2FjaGUKICAgICAgICAgICAgICAgICAgICBteSAkU2VhcmNoID0gIkFjdGlvbj1QaWN0dXJlVXBsb2FkIC4rIEZvcm1JRD0kU2VsZi0+e0Zvcm1JRH0gLisgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJDb250ZW50SUQ9JEF0dGFjaG1lbnQtPntDb250ZW50SUR9IjsKCiAgICAgICAgICAgICAgICAgICAgIyBwaWN0dXJlIHVybCBpbiB3b3Jrb3JkZXIgYXR0dGFjaG1lbnQKICAgICAgICAgICAgICAgICAgICBteSAkUmVwbGFjZSA9ICJBY3Rpb249QWdlbnRJVFNNV29ya09yZGVyWm9vbTtTdWJhY3Rpb249RG93bmxvYWRBdHRhY2htZW50OyIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiRmlsZW5hbWU9JEF0dGFjaG1lbnQtPntGaWxlbmFtZX07V29ya09yZGVySUQ9JFdvcmtPcmRlcklEIjsKCiAgICAgICAgICAgICAgICAgICAgIyByZXBsYWNlIHVybAogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXtJbnN0cnVjdGlvbn0gPX4gc3skU2VhcmNofXskUmVwbGFjZX14bXM7CgogICAgICAgICAgICAgICAgICAgICMgdXBkYXRlIHdvcmtvcmRlcgogICAgICAgICAgICAgICAgICAgICRTdWNjZXNzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyVXBkYXRlKAogICAgICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICAgICAgICAgIEluc3RydWN0aW9uID0+ICRHZXRQYXJhbXtJbnN0cnVjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IHVwZGF0ZSB0aGUgaW5saW5lIGltYWdlIFVSTHMgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gImZvciBXb3JrT3JkZXJJRCAnJFdvcmtPcmRlcklEJyEhIiwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBpZiB0aGVyZSBhcmUgYW55IGZvbGxvd2luZyB3b3Jrb3JkZXJzCiAgICAgICAgICAgICAgICAjIGFuZCBpZiB0aGUgZm9sbG93aW5nIHdvcmtvcmRlcnMgc2hvdWxkIGJlIG1vdmVkLAogICAgICAgICAgICAgICAgIyB0aGF0IG1lYW5zIHdlIHdhbnQgdG8ga2VlcCB0aGUgZGlmZmVyZW5jZQogICAgICAgICAgICAgICAgIyBiZXR3ZWVuIHRoZSBwbGFubmVkIGVuZCBkYXRlIG9mIHRoaXMgd29ya29yZGVyIGFuZCB0aGUgdGhlIHBsYW5uZWQgc3RhcnQgZGF0ZXMgb2YgQUxMIExBVEVSIHdvcmtvcmRlcnMKICAgICAgICAgICAgICAgIGlmICggQEZvbGxvd2luZ1dvcmtPcmRlcklEcyAmJiAkR2V0UGFyYW17TW92ZUZvbGxvd2luZ1dvcmtPcmRlcnN9ICkgewoKICAgICAgICAgICAgICAgICAgICAjIGNvbnZlcnQgdGhlIE9MRCBwbGFubmVkIGVuZCB0aW1lIG9mIHRoaXMgd29ya29yZGVyCiAgICAgICAgICAgICAgICAgICAgIyBpbnRvIHN5c3RlbSB0aW1lIChlcG9jaCBzZWNvbmRzKQogICAgICAgICAgICAgICAgICAgIG15ICRPbGRQbGFubmVkRW5kVGltZVN5c3RlbVRpbWUgPSAkU2VsZi0+X1RpbWVTdGFtcDJFcG9jaCgKICAgICAgICAgICAgICAgICAgICAgICAgVGltZVN0YW1wID0+ICRXb3JrT3JkZXItPntQbGFubmVkRW5kVGltZX0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBjb252ZXJ0IHRoZSBORVcgcGxhbm5lZCBlbmQgdGltZSBvZiB0aGlzIHdvcmtvcmRlcgogICAgICAgICAgICAgICAgICAgICMgaW50byBzeXN0ZW0gdGltZSAoZXBvY2ggc2Vjb25kcykKICAgICAgICAgICAgICAgICAgICBteSAkTmV3UGxhbm5lZEVuZFRpbWVTeXN0ZW1UaW1lID0gJFNlbGYtPl9UaW1lU3RhbXAyRXBvY2goCiAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVTdGFtcCA9PiAkR2V0UGFyYW17UGxhbm5lZEVuZFRpbWV9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgY2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlIHRpbWUKICAgICAgICAgICAgICAgICAgICBteSAkRGlmZlRpbWUgPSAkTmV3UGxhbm5lZEVuZFRpbWVTeXN0ZW1UaW1lIC0gJE9sZFBsYW5uZWRFbmRUaW1lU3lzdGVtVGltZTsKCiAgICAgICAgICAgICAgICAgICAgIyBtb2RpZnkgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzCiAgICAgICAgICAgICAgICAgICAgV09SS09SREVSSUQ6CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRXb3JrT3JkZXJJRCAoQEZvbGxvd2luZ1dvcmtPcmRlcklEcykgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBnZXQgd29ya29yZGVyIGRhdGEKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFdvcmtPcmRlciA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckdldCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgY2FsY3VsYXRlIHRoZSBuZXcgcGxhbm5lZCBzdGFydCBhbmQgZW5kIHRpbWUgZm9yIHRoaXMgZm9sbG93aW5nIHdvcmtvcmRlcgogICAgICAgICAgICAgICAgICAgICAgICBteSAlVGltZURhdGE7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBteSAkVGltZVR5cGUgKHF3KFBsYW5uZWRTdGFydFRpbWUgUGxhbm5lZEVuZFRpbWUpKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjb252ZXJ0IHRoZSBvbGQgcGxhbm5lZCB0aW1lcyBvZiB0aGUgd29ya29yZGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGludG8gc3lzdGVtIHRpbWUgKGVwb2NoIHNlY29uZHMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGltZURhdGF7JFRpbWVUeXBlfSA9ICRTZWxmLT5fVGltZVN0YW1wMkVwb2NoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVTdGFtcCA9PiAkV29ya09yZGVyLT57JFRpbWVUeXBlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhZGQgdGhlIGRpZmZlcmVuY2UgYW5kIGNvbnZlcnQgdGltZSB0byB0aW1lc3RhbXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lRGF0YXskVGltZVR5cGV9ID0gJFNlbGYtPl9FcG9jaDJUaW1lU3RhbXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXBvY2ggPT4gJFRpbWVEYXRheyRUaW1lVHlwZX0gKyAkRGlmZlRpbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAjIHVwZGF0ZSB0aGUgd29ya29yZGVyIHdpdGggdGhlIG5ldyB0aW1lcwogICAgICAgICAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVUaW1lRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlLCBpZiB1cGRhdGUgZmFpbGVkCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJywgJFdvcmtPcmRlcklECiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgZGVsZXRlIHRoZSB1cGxvYWQgY2FjaGUKICAgICAgICAgICAgICAgICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlEUmVtb3ZlKCBGb3JtSUQgPT4gJFNlbGYtPntGb3JtSUR9ICk7CgogICAgICAgICAgICAgICAgIyBsb2FkIG5ldyBVUkwgaW4gcGFyZW50IHdpbmRvdyBhbmQgY2xvc2UgcG9wdXAKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Qb3B1cENsb3NlKAogICAgICAgICAgICAgICAgICAgIFVSTCA9PiAiQWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlclpvb207V29ya09yZGVySUQ9JFdvcmtPcmRlcklEIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UsIHdoZW4gdXBkYXRlIGZhaWxlZAogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fQogICAgICAgICAgICAgICAgICAgICAgICAtPlRyYW5zbGF0ZSggJ1dhcyBub3QgYWJsZSB0byB1cGRhdGUgV29ya09yZGVyICVzIScsICRXb3JrT3JkZXJJRCApLAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZWxzZSB7CgogICAgICAgICMgZGVsZXRlIGFsbCBrZXlzIGZyb20gR2V0UGFyYW0gd2hlbiBpdCBpcyBubyBTdWJhY3Rpb24KICAgICAgICAlR2V0UGFyYW0gPSAoKTsKCiAgICAgICAgIyBhbHNvIHJlc2V0IHRoZSB0aW1lIGZpZWxkcwogICAgICAgIGZvciBteSAkVGltZVR5cGUgKHF3KFBsYW5uZWRTdGFydFRpbWUgUGxhbm5lZEVuZFRpbWUpKSB7CgogICAgICAgICAgICBpZiAoICRXb3JrT3JkZXItPnskVGltZVR5cGV9ICkgewoKICAgICAgICAgICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRXb3JrT3JkZXItPnskVGltZVR5cGV9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgc2V0IHRoZSBwYXJhbWV0ZXIgaGFzaCBmb3IgQnVpbGREYXRlU2VsZWN0aW9uKCkKICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ01pbnV0ZScgfSA9ICREYXRlVGltZU9iamVjdC0+Rm9ybWF0KAogICAgICAgICAgICAgICAgICAgIEZvcm1hdCA9PiAnJU0nLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ0hvdXInIH0gPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgICAgICAgICBGb3JtYXQgPT4gJyVIJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdEYXknIH0gPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgICAgICAgICBGb3JtYXQgPT4gJyVkJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdNb250aCcgfSA9ICREYXRlVGltZU9iamVjdC0+Rm9ybWF0KAogICAgICAgICAgICAgICAgICAgIEZvcm1hdCA9PiAnJW0nLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1llYXInIH0gPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgICAgICAgICBGb3JtYXQgPT4gJyVZJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZ2V0IGFsbCBhdHRhY2htZW50cyBtZXRhIGRhdGEKICAgICAgICBteSBARXhpc3RpbmdBdHRhY2htZW50cyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckF0dGFjaG1lbnRMaXN0KAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBjb3B5IGFsbCBleGlzdGluZyBhdHRhY2htZW50cyB0byB1cGxvYWQgY2FjaGUKICAgICAgICBGSUxFTkFNRToKICAgICAgICBmb3IgbXkgJEZpbGVuYW1lIChARXhpc3RpbmdBdHRhY2htZW50cykgewoKICAgICAgICAgICAgIyBnZXQgdGhlIGV4aXN0aW5nIGF0dGFjaG1lbnQgZGF0YQogICAgICAgICAgICBteSAkQXR0YWNobWVudERhdGEgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50R2V0KAogICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gJEZpbGVuYW1lLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBkbyBub3QgY29uc2lkZXIgaW5saW5lIGF0dGFjaG1lbnRzCiAgICAgICAgICAgIG5leHQgRklMRU5BTUUgaWYgJEF0dGFjaG1lbnREYXRhLT57UHJlZmVyZW5jZXN9LT57Q29udGVudElEfTsKCiAgICAgICAgICAgICMgYWRkIGF0dGFjaG1lbnQgdG8gdGhlIHVwbG9hZCBjYWNoZQogICAgICAgICAgICAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JREFkZEZpbGUoCiAgICAgICAgICAgICAgICBGb3JtSUQgICAgICA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgICAgICAgICBGaWxlbmFtZSAgICA9PiAkQXR0YWNobWVudERhdGEtPntGaWxlbmFtZX0sCiAgICAgICAgICAgICAgICBDb250ZW50ICAgICA9PiAkQXR0YWNobWVudERhdGEtPntDb250ZW50fSwKICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICRBdHRhY2htZW50RGF0YS0+e0NvbnRlbnRUeXBlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgY2hhbmdlIHRoYXQgd29ya29yZGVyIGJlbG9uZ3MgdG8KICAgIG15ICRDaGFuZ2UgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlci0+e0NoYW5nZUlEfSwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgd2hldGhlciBjaGFuZ2Ugd2FzIGZvdW5kCiAgICBpZiAoICEkQ2hhbmdlICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJywgJFdvcmtPcmRlcklEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgaWYgdGhlcmUgd2FzIGFuIGF0dGFjaG1lbnQgZGVsZXRlIG9yIHVwbG9hZAogICAgIyB3ZSBkbyBub3Qgd2FudCB0byBzaG93IHZhbGlkYXRpb24gZXJyb3JzIGZvciBvdGhlciBmaWVsZHMKICAgIGlmICggJFZhbGlkYXRpb25FcnJvcntBdHRhY2htZW50fSApIHsKICAgICAgICAlVmFsaWRhdGlvbkVycm9yID0gKCk7CiAgICB9CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICRXb3JrT3JkZXItPntXb3JrT3JkZXJUaXRsZX0sCiAgICAgICAgVHlwZSAgPT4gJ1NtYWxsJywKICAgICk7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkfSApIHsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIGdldCB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgZnJvbSB3b3Jrb3JkZXIgaWYgcGFnZSBpcyBsb2FkZWQgdGhlIGZpcnN0IHRpbWUKICAgICAgICBpZiAoICEkU2VsZi0+e1N1YmFjdGlvbn0gKSB7CiAgICAgICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9CiAgICAgICAgICAgICAgICA9ICRXb3JrT3JkZXItPnsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH07CiAgICAgICAgfQoKICAgICAgICAjIGdldCBmaWVsZCBodG1sCiAgICAgICAgbXkgJER5bmFtaWNGaWVsZEhUTUwgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkUmVuZGVyKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgICAgICAgPT4gJFZhbGlkYXRpb25FcnJvcnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gfHwgJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgICAgICBBSkFYVXBkYXRlICAgICAgICAgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIHNraXAgZmllbGRzIHRoYXQgSFRNTCBjb3VsZCBub3QgYmUgcmV0cmlldmVkCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRIVE1MKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTmFtZSAgPT4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9LAogICAgICAgICAgICAgICAgTGFiZWwgPT4gJER5bmFtaWNGaWVsZEhUTUwtPntMYWJlbH0sCiAgICAgICAgICAgICAgICBGaWVsZCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0ZpZWxkfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGV4YW1wbGUgb2YgZHluYW1pYyBmaWVsZHMgb3JkZXIgY3VzdG9taXphdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgICAgICBMYWJlbCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0xhYmVsfSwKICAgICAgICAgICAgICAgIEZpZWxkID0+ICREeW5hbWljRmllbGRIVE1MLT57RmllbGR9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyB0aW1lIHBlcmlvZCB0aGF0IGNhbiBiZSBzZWxlY3RlZCBmcm9tIHRoZSBHVUkKICAgIG15ICVUaW1lUGVyaW9kID0gJXsgJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNV29ya09yZGVyOjpUaW1lUGVyaW9kJykgfTsKCiAgICAjIHNldCB0aGUgdGltZSBzZWxlY3Rpb25zCiAgICBmb3IgbXkgJFRpbWVUeXBlIChxdyhQbGFubmVkU3RhcnRUaW1lIFBsYW5uZWRFbmRUaW1lKSkgewoKICAgICAgICAjIHNldCBkZWZhdWx0IHZhbHVlIGZvciAkRGlmZlRpbWUKICAgICAgICAjIFdoZW4gbm8gdGltZSBpcyBnaXZlbiB5ZXQsIHRoZW4gdXNlIHRoZSBjdXJyZW50IHRpbWUgcGx1cyB0aGUgZGlmZnRpbWUKICAgICAgICAjIFdoZW4gYW4gZXhwbGljaXQgdGltZSB3YXMgcmV0cmlldmVkLCAkRGlmZlRpbWUgaXMgbm90IHVzZWQKICAgICAgICBteSAkRGlmZlRpbWUgPSAkVGltZVR5cGUgZXEgJ1BsYW5uZWRTdGFydFRpbWUnID8gMCA6IDYwICogNjA7CgogICAgICAgICMgYWRkIHNlbGVjdGlvbiBmb3IgdGhlIHRpbWUKICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdTZWxlY3Rpb25TdHJpbmcnIH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZERhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgRm9ybWF0ICAgICAgICAgICAgICA9PiAnRGF0ZUlucHV0Rm9ybWF0TG9uZycsCiAgICAgICAgICAgIFByZWZpeCAgICAgICAgICAgICAgPT4gJFRpbWVUeXBlLAogICAgICAgICAgICBEaWZmVGltZSAgICAgICAgICAgID0+ICREaWZmVGltZSwKICAgICAgICAgICAgVmFsaWRhdGUgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAkVGltZVR5cGUgLiAnQ2xhc3MnID0+ICdWYWxpZGF0ZV9SZXF1aXJlZCAnCiAgICAgICAgICAgICAgICAuICggJFZhbGlkYXRpb25FcnJvcnsgJFRpbWVUeXBlIC4gJ0ludmFsaWQnIH0gfHwgJycgKSwKICAgICAgICAgICAgJVRpbWVQZXJpb2QsCiAgICAgICAgKTsKCiAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIG1lc3NhZ2VzIGZvciB0aGUgcGxhbm5lZCB0aW1lcwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICRUaW1lVHlwZQogICAgICAgICAgICAgICAgLiAoICRWYWxpZGF0aW9uRXJyb3J7ICRUaW1lVHlwZSAuICdFcnJvclR5cGUnIH0gfHwgJ0dlbmVyaWNTZXJ2ZXJFcnJvcicgKQogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHBsYW5uZWQgZWZmb3J0IGlmIGl0IGlzIGNvbmZpZ3VyZWQKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57UGxhbm5lZEVmZm9ydH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1Nob3dQbGFubmVkRWZmb3J0JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAleyRXb3JrT3JkZXJ9LAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgJVZhbGlkYXRpb25FcnJvciwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyB0aGUgY2hlY2tib3ggZm9yIE1vdmVGb2xsb3dpbmdXb3JrT3JkZXJzIGlmIGl0IGlzIGNvbmZpZ3VyZWQKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57TW92ZUZvbGxvd2luZ1dvcmtPcmRlcnN9ICkgewoKICAgICAgICAjIHNldCBjaGVja2JveCBmb3IgTW92ZUZvbGxvd2luZ1dvcmtPcmRlcnMKICAgICAgICBpZiAoICRHZXRQYXJhbXtNb3ZlRm9sbG93aW5nV29ya09yZGVyc30gKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXtNb3ZlRm9sbG93aW5nV29ya09yZGVyc30gPSAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ01vdmVGb2xsb3dpbmdXb3JrT3JkZXJzJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBhbGwgYXR0YWNobWVudHMgbWV0YSBkYXRhCiAgICAkUGFyYW17QXR0YWNobWVudExpc3R9ID0gWwogICAgICAgICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlER2V0QWxsRmlsZXNNZXRhKAogICAgICAgICAgICBGb3JtSUQgPT4gJFNlbGYtPntGb3JtSUR9LAogICAgICAgICkKICAgIF07CgogICAgIyBzaG93IHRoZSBhdHRhY2htZW50IHVwbG9hZCBidXR0b24KICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0F0dGFjaG1lbnRVcGxvYWQnLAogICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICApOwoKICAgICMgYWRkIHJpY2ggdGV4dCBlZGl0b3IgamF2YXNjcmlwdAogICAgIyBvbmx5IGlmIGFjdGl2YXRlZCBhbmQgdGhlIGJyb3dzZXIgY2FuIGhhbmRsZSBpdAogICAgIyBvdGhlcndpc2UganVzdCBhIHRleHRhcmVhIGlzIHNob3duCiAgICBpZiAoICRMYXlvdXRPYmplY3QtPntCcm93c2VyUmljaFRleHR9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPlNldFJpY2hUZXh0UGFyYW1ldGVycygKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgIyBzdGFydCB0ZW1wbGF0ZSBvdXRwdXQKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNV29ya09yZGVyRWRpdCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyRDaGFuZ2V9LAogICAgICAgICAgICAleyRXb3JrT3JkZXJ9LAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVWYWxpZGF0aW9uRXJyb3IsCiAgICAgICAgICAgIEZvcm1JRCA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgfSwKICAgICk7CgogICAgIyBhZGQgZm9vdGVyCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlciggVHlwZSA9PiAnU21hbGwnICk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfVGltZVN0YW1wMkVwb2NoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSwgKSA9IEBfOwoKICAgIG15ICRUaW1lU3RhbXAgICAgICA9ICRQYXJhbXtUaW1lU3RhbXB9OwogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBTdHJpbmcgPT4gJFRpbWVTdGFtcCwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gJERhdGVUaW1lT2JqZWN0LT5Ub0Vwb2NoKCkgaWYgJERhdGVUaW1lT2JqZWN0OwogICAgcmV0dXJuOwp9CgpzdWIgX0Vwb2NoMlRpbWVTdGFtcCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0sICkgPSBAXzsKCiAgICBteSAkRXBvY2ggICAgICAgICAgPSAkUGFyYW17RXBvY2h9OwogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBFcG9jaCA9PiAkRXBvY2gsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuICREYXRlVGltZU9iamVjdC0+VG9TdHJpbmcoKSBpZiAkRGF0ZVRpbWVPYmplY3Q7CiAgICByZXR1cm47Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMWorkOrderHistory.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnk7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgd29ya29yZGVyIGlkCiAgICBteSAkV29ya09yZGVySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAnV29ya09yZGVySUQnICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFdvcmtPcmRlcklEICkgewoKICAgICAgICAjIGVycm9yIHBhZ2UKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRDb25maWdPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CiAgICBteSAkSGlzdG9yeU9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Okhpc3RvcnknKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoIklUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJFdvcmtPcmRlck9iamVjdC0+UGVybWlzc2lvbigKICAgICAgICBUeXBlICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBBY3Rpb24gICAgICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHdvcmtvcmRlciBpbmZvcm1hdGlvbgogICAgbXkgJFdvcmtPcmRlciA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckdldCgKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGVycm9yCiAgICBpZiAoICEkV29ya09yZGVyICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnLCAkV29ya09yZGVySUQgKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY2hhbmdlIGluZm9ybWF0aW9uCiAgICBteSAkQ2hhbmdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRXb3JrT3JkZXItPntDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGVycm9yCiAgICBpZiAoICEkQ2hhbmdlICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9CiAgICAgICAgICAgICAgICAtPlRyYW5zbGF0ZSggJ0NoYW5nZSAiJXMiIG5vdCBmb3VuZCBpbiB0aGUgZGF0YWJhc2UhJywgJFdvcmtPcmRlci0+e0NoYW5nZUlEfSApLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBoaXN0b3J5IGVudHJpZXMKICAgIG15ICRIaXN0b3J5RW50cmllc1JlZiA9ICRIaXN0b3J5T2JqZWN0LT5Xb3JrT3JkZXJIaXN0b3J5R2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApIHx8IFtdOwoKICAgICMgZ2V0IG9yZGVyIGRpcmVjdGlvbgogICAgbXkgQEhpc3RvcnlMaW5lcyA9IEB7JEhpc3RvcnlFbnRyaWVzUmVmfTsKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNQ2hhbmdlOjpGcm9udGVuZDo6SGlzdG9yeU9yZGVyJykgZXEgJ3JldmVyc2UnICkgewogICAgICAgIEBIaXN0b3J5TGluZXMgPSByZXZlcnNlIEB7JEhpc3RvcnlFbnRyaWVzUmVmfTsKICAgIH0KCiAgICAjIG1heCBsZW5ndGggb2Ygc3RyaW5ncwogICAgbXkgJE1heExlbmd0aCA9IDMwOwoKICAgICMgR2V0IHRyYW5zbGF0YWJsZSBoaXN0b3J5IHN0cmluZ3MuCiAgICBteSAlSGlzdG9yeVN0cmluZ3MgPSAkSGlzdG9yeU9iamVjdC0+SGlzdG9yeVN0cmluZ3NMaXN0KCk7CgogICAgIyBjcmVhdGUgdGFibGUKICAgIG15ICRDb3VudGVyID0gMTsKICAgIGZvciBteSAkSGlzdG9yeUVudHJ5IChASGlzdG9yeUxpbmVzKSB7CiAgICAgICAgJENvdW50ZXIrKzsKCiAgICAgICAgIyBkYXRhIGZvciBhIHNpbmdsZSByb3csIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBkdGwKICAgICAgICBteSAlRGF0YSA9ICV7JEhpc3RvcnlFbnRyeX07CgogICAgICAgICMgZGV0ZXJtaW5lIHdoYXQgc2hvdWxkIGJlIHNob3duCiAgICAgICAgbXkgJEhpc3RvcnlUeXBlID0gJEhpc3RvcnlFbnRyeS0+e0hpc3RvcnlUeXBlfTsKICAgICAgICBpZiAoICRIaXN0b3J5VHlwZSBlcSAnV29ya09yZGVyVXBkYXRlJyApIHsKCiAgICAgICAgICAgICMgVGhlIGRpc3BsYXllZCBmaWVsZG5hbWUgbWlnaHQgYmUgY2hhbmdlZCBpbiB0aGUgZm9sbG93aW5nIGxvb3AKICAgICAgICAgICAgbXkgJERpc3BsYXllZEZpZWxkbmFtZSA9ICRIaXN0b3J5RW50cnktPntGaWVsZG5hbWV9OwoKICAgICAgICAgICAgIyBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIHNvbWUga2V5cwogICAgICAgICAgICBmb3IgbXkgJENvbnRlbnROZXdPck9sZCAocXcoQ29udGVudE5ldyBDb250ZW50T2xkKSkgewogICAgICAgICAgICAgICAgaWYgKCAhZGVmaW5lZCAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEhpc3RvcnlFbnRyeS0+eyRDb250ZW50TmV3T3JPbGR9ID0gJyc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgIyBmb3IgdGhlIElEIGZpZWxkcywgd2UgcmVwbGFjZSBJRCB3aXRoIGl0cyB0ZXh0dWFsIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICBteSAoJFR5cGUpID0gJEhpc3RvcnlFbnRyeS0+e0ZpZWxkbmFtZX0gPX4gbXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxBICAgICAgICAgICMgc3RyaW5nIHN0YXJ0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICAgICAgICAgICAjIHN0YXJ0IGNhcHR1cmUgb2YgJFR5cGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZSB8IFdvcmtPcmRlclR5cGUgfCBXb3JrT3JkZXJBZ2VudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAgICAgICAgICAgIyBlbmQgY2FwdHVyZSBvZiAkVHlwZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSUQgICAgICAgICAgIyBwcm9jZXNzaW5nIG9ubHkgZm9yIHRoZSAnSUQnIGZpZWxkcwogICAgICAgICAgICAgICAgICAgICAgICB9eG1zCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJEhpc3RvcnlFbnRyeS0+eyRDb250ZW50TmV3T3JPbGR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFRyYW5zbGF0aW9uTmVlZGVkID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJFR5cGUgZXEgJ1dvcmtPcmRlclN0YXRlJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVmFsdWUgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJTdGF0ZUxvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV29ya09yZGVyU3RhdGVJRCA9PiAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2lmICggJFR5cGUgZXEgJ1dvcmtPcmRlclR5cGUnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRWYWx1ZSA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclR5cGVMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlclR5cGVJRCA9PiAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2lmICggJFR5cGUgZXEgJ1dvcmtPcmRlckFnZW50JyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVmFsdWUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJEhpc3RvcnlFbnRyeS0+eyRDb250ZW50TmV3T3JPbGR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdGhlIGxvZ2luIG5hbWVzIGFyZSBub3QgdG8gYmUgdHJhbnNsYXRlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUcmFuc2xhdGlvbk5lZWRlZCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT5UcmFuc2xhdGUoICdVbmtub3duIHR5cGUgIiVzIiBlbmNvdW50ZXJlZCEnLCAkVHlwZSApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEUuZy4gdGhlIHVzZXJuYW1lcyBzaG91bGQgbm90IGJlIHRyYW5zbGF0ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRUcmFuc2xhdGVkVmFsdWUgPSAkVHJhbnNsYXRpb25OZWVkZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRWYWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFZhbHVlOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRIaXN0b3J5RW50cnktPnskQ29udGVudE5ld09yT2xkfSA9IHNwcmludGYgJyVzIChJRD0lcyknLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUcmFuc2xhdGVkVmFsdWUsICRIaXN0b3J5RW50cnktPnskQ29udGVudE5ld09yT2xkfTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRIaXN0b3J5RW50cnktPnskQ29udGVudE5ld09yT2xkfSA9ICcnOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAjIFRoZSBjb250ZW50IGhhcyBjaGFuZ2VkLCBzbyBjaGFuZ2UgdGhlIGRpc3BsYXllZCBmaWVsZG5hbWUgYXMgd2VsbAogICAgICAgICAgICAgICAgICAgICAgICAkRGlzcGxheWVkRmllbGRuYW1lID0gJFR5cGU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIHJlcGxhY2UgSFRNTCBicmVha3Mgd2l0aCBzaW5nbGUgc3BhY2UKICAgICAgICAgICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnROZXdPck9sZH0gPX4gc3sgPCBiciBccyogLz8gPiB9eyB9eG1zZzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyB0cmFuc2xhdGUgZmllbGRuYW1lIGZvciBkaXNwbGF5CiAgICAgICAgICAgICREaXNwbGF5ZWRGaWVsZG5hbWUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAkRGlzcGxheWVkRmllbGRuYW1lLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgSFRNTCB1dGlscyBvYmplY3QKICAgICAgICAgICAgbXkgJEhUTUxVdGlsc09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpIVE1MVXRpbHMnKTsKCiAgICAgICAgICAgICMgdHJpbSBzdHJpbmdzIHRvIGEgbWF4IGxlbmd0aCBvZiAkTWF4TGVuZ3RoCiAgICAgICAgICAgIG15ICRDb250ZW50TmV3ID0gJEhUTUxVdGlsc09iamVjdC0+VG9Bc2NpaSgKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkSGlzdG9yeUVudHJ5LT57Q29udGVudE5ld30gfHwgJycsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDb250ZW50T2xkID0gJEhUTUxVdGlsc09iamVjdC0+VG9Bc2NpaSgKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkSGlzdG9yeUVudHJ5LT57Q29udGVudE9sZH0gfHwgJycsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgWy4uLl0gZm9yIHRvbyBsb25nIHN0cmluZ3MKICAgICAgICAgICAgZm9yIG15ICRDb250ZW50ICggJENvbnRlbnROZXcsICRDb250ZW50T2xkICkgewogICAgICAgICAgICAgICAgaWYgKCAkQ29udGVudCAmJiAoIGxlbmd0aCAkQ29udGVudCA+ICRNYXhMZW5ndGggKSApIHsKICAgICAgICAgICAgICAgICAgICAkQ29udGVudCA9IHN1YnN0ciggJENvbnRlbnQsIDAsICRNYXhMZW5ndGggKSAuICdbLi4uXSc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2V0IGRlc2NyaXB0aW9uCiAgICAgICAgICAgICREYXRhe0NvbnRlbnR9ID0gam9pbiAnJSUnLCAkRGlzcGxheWVkRmllbGRuYW1lLCAkQ29udGVudE5ldywgJENvbnRlbnRPbGQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkRGF0YXtDb250ZW50fSA9ICRIaXN0b3J5RW50cnktPntDb250ZW50TmV3fTsKICAgICAgICB9CgogICAgICAgICMgcmVwbGFjZSB0ZXh0CiAgICAgICAgaWYgKCAkRGF0YXtDb250ZW50fSApIHsKCiAgICAgICAgICAgICMgcmVtb3ZlIGxlYWRpbmcgJSUKICAgICAgICAgICAgJERhdGF7Q29udGVudH0gPX4gc3sgXEEgJSUgfXt9eG1zZzsKCiAgICAgICAgICAgICMgc3BsaXQgdGhlIGNvbnRlbnQgYnkgJSUKICAgICAgICAgICAgbXkgQFZhbHVlcyA9IHNwbGl0KCAvJSUvLCAkRGF0YXtDb250ZW50fSApOwoKICAgICAgICAgICAgIyBzaG93ICduaWNlJyBvdXRwdXQgd2l0aCB2YXJpYWJsZSBzdWJzdGl0dXRpb24KICAgICAgICAgICAgIyBzYW1wbGUgaW5wdXQ6CiAgICAgICAgICAgICMgQ2hhbmdlSGlzdG9yeTo6Q2hhbmdlTGlua0FkZCIsICJUaWNrZXQiLCAiMQogICAgICAgICAgICAkRGF0YXtDb250ZW50fSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICRIaXN0b3J5U3RyaW5nc3sgJ1dvcmtPcmRlckhpc3Rvcnk6OicgLiAkRGF0YXtIaXN0b3J5VHlwZX0gfSwKICAgICAgICAgICAgICAgIEBWYWx1ZXMsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHJlbW92ZSBub3QgbmVlZGVkIHBsYWNlIGhvbGRlcgogICAgICAgICAgICAkRGF0YXtDb250ZW50fSA9fiBzeyAlIHMgfXt9eG1zZzsKICAgICAgICB9CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdSb3cnLAogICAgICAgICAgICBEYXRhID0+IHslRGF0YX0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGEgJ21vcmUgaW5mbycgbGluawogICAgICAgIGlmICgKICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgJEhpc3RvcnlFbnRyeS0+e0NvbnRlbnROZXd9CiAgICAgICAgICAgICAgICAmJiBsZW5ndGgoICRIaXN0b3J5RW50cnktPntDb250ZW50TmV3fSApID4gJE1heExlbmd0aAogICAgICAgICAgICApCiAgICAgICAgICAgIHx8CiAgICAgICAgICAgICgKICAgICAgICAgICAgICAgICRIaXN0b3J5RW50cnktPntDb250ZW50T2xkfQogICAgICAgICAgICAgICAgJiYgbGVuZ3RoKCAkSGlzdG9yeUVudHJ5LT57Q29udGVudE9sZH0gKSA+ICRNYXhMZW5ndGgKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBzaG93IGhpc3Rvcnl6b29tIGJsb2NrCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU2hvd0hpc3Rvcnlab29tJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVEYXRhfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZG9uJ3Qgc2hvdyBhIGxpbmsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb0hpc3Rvcnlab29tJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdTaG93V29ya09yZGVyWm9vbScsCiAgICAgICAgICAgIERhdGEgPT4geyVEYXRhfSwKICAgICAgICApOwoKICAgIH0KCiAgICAjIG91dHB1dCBoZWFkZXIKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVHlwZSAgPT4gJ1NtYWxsJywKICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ1dvcmtPcmRlciBIaXN0b3J5JyksCiAgICApOwoKICAgICMgc3RhcnQgdGVtcGxhdGUgb3V0cHV0CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50SVRTTVdvcmtPcmRlckhpc3RvcnknLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXskQ2hhbmdlfSwKICAgICAgICAgICAgJXskV29ya09yZGVyfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCBmb290ZXIKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKAogICAgICAgIFR5cGUgPT4gJ1NtYWxsJywKICAgICk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMWorkOrderHistoryZoom.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIGNoYW5nZSBpZAogICAgbXkgJEhpc3RvcnlFbnRyeUlEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJ0hpc3RvcnlFbnRyeUlEJyApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRIaXN0b3J5RW50cnlJRCApIHsKCiAgICAgICAgIyBlcnJvciBwYWdlCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IHNob3cgaGlzdG9yeSB6b29tLCBubyBIaXN0b3J5RW50cnlJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgaGlzdG9yeSBlbnRyaWVzCiAgICBteSAkSGlzdG9yeUVudHJ5ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Okhpc3RvcnknKS0+SGlzdG9yeUVudHJ5R2V0KAogICAgICAgIEhpc3RvcnlFbnRyeUlEID0+ICRIaXN0b3J5RW50cnlJRCwKICAgICAgICBVc2VySUQgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIGlmICggISRIaXN0b3J5RW50cnkgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICdIaXN0b3J5IGVudHJ5ICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnLCAkSGlzdG9yeUVudHJ5SUQKICAgICAgICAgICAgKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgd29ya29yZGVyIG9iamVjdAogICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPlBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgQWN0aW9uICAgICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIFdvcmtPcmRlcklEID0+ICRIaXN0b3J5RW50cnktPntXb3JrT3JkZXJJRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGVycm9yIHNjcmVlbgogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyEnLCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSApLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgd29ya29yZGVyIGluZm9ybWF0aW9uCiAgICBteSAkV29ya09yZGVyID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRIaXN0b3J5RW50cnktPntXb3JrT3JkZXJJRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGVycm9yCiAgICBpZiAoICEkV29ya09yZGVyICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAnV29ya09yZGVyICIlcyIgbm90IGZvdW5kIGluIHRoZSBkYXRhYmFzZSEnLCAkSGlzdG9yeUVudHJ5LT57V29ya09yZGVySUR9CiAgICAgICAgICAgICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBpbmZvcm1hdGlvbgogICAgbXkgJENoYW5nZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkSGlzdG9yeUVudHJ5LT57Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBlcnJvcgogICAgaWYgKCAhJFdvcmtPcmRlciApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fQogICAgICAgICAgICAgICAgLT5UcmFuc2xhdGUoICdDaGFuZ2UgIiVzIiBub3QgZm91bmQgaW4gdGhlIGRhdGFiYXNlIScsICRIaXN0b3J5RW50cnktPntDaGFuZ2VJRH0gKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IGRhc2ggKCctJykgd2hlbiB0aGUgZmllbGQgaXMgZW1wdHkKICAgIGZvciBteSAkRmllbGQgKHF3KENvbnRlbnROZXcgQ29udGVudE9sZCkpIHsKICAgICAgICAkSGlzdG9yeUVudHJ5LT57JEZpZWxkfSB8fD0gJy0nOwogICAgfQoKICAgICMgb3V0cHV0IGhlYWRlcgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUeXBlICA9PiAnU21hbGwnLAogICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnV29ya09yZGVyIEhpc3RvcnkgWm9vbScpLAogICAgKTsKCiAgICAjIHN0YXJ0IHRlbXBsYXRlIG91dHB1dAogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyRDaGFuZ2V9LAogICAgICAgICAgICAleyRXb3JrT3JkZXJ9LAogICAgICAgICAgICAleyRIaXN0b3J5RW50cnl9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgYWRkIGZvb3RlcgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoCiAgICAgICAgVHlwZSA9PiAnU21hbGwnLAogICAgKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMWorkOrderReport.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVdvcmtPcmRlclJlcG9ydDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGdldCBuZWVkZWQgV29ya09yZGVySUQKICAgIG15ICRXb3JrT3JkZXJJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdXb3JrT3JkZXJJRCcgKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFdvcmtPcmRlcklEICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05vIFdvcmtPcmRlcklEIGlzIGdpdmVuIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoIklUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJFdvcmtPcmRlck9iamVjdC0+UGVybWlzc2lvbigKICAgICAgICBUeXBlICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBBY3Rpb24gICAgICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHdvcmtvcmRlciBkYXRhCiAgICBteSAkV29ya09yZGVyID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZXJyb3IKICAgIGlmICggISRXb3JrT3JkZXIgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywgJFdvcmtPcmRlcklEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgc3RvcmUgbmVlZGVkIHBhcmFtZXRlcnMgaW4gJUdldFBhcmFtIHRvIG1ha2UgdGhpcyBwYWdlIHJlbG9hZGFibGUKICAgIG15ICVHZXRQYXJhbTsKICAgIGZvciBteSAkUGFyYW1OYW1lIChxdyhSZXBvcnQgV29ya09yZGVyU3RhdGVJRCBBY2NvdW50ZWRUaW1lIEF0dGFjaG1lbnRVcGxvYWQgRmlsZUlEKSkgewogICAgICAgICRHZXRQYXJhbXskUGFyYW1OYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbU5hbWUgKTsKICAgIH0KCiAgICAjIGdldCBEeW5hbWljIGZpZWxkcyBmcm9tIFBhcmFtT2JqZWN0CiAgICBteSAlRHluYW1pY0ZpZWxkVmFsdWVzOwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIG15ICREeW5hbWljRmllbGQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfSB8fCB7fSwKICAgICk7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBiYWNrZW5kIG9iamVjdAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICMgZXh0cmFjdCB0aGUgZHluYW1pYyBmaWVsZCB2YWx1ZSBmcm9tIHRoZSB3ZWIgcmVxdWVzdCBhbmQgYWRkIHRoZSBwcmVmaXgKICAgICAgICAkRHluYW1pY0ZpZWxkVmFsdWVzeyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfQogICAgICAgICAgICA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5FZGl0RmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICApOwogICAgfQoKICAgICMgc3RvcmUgYWN0dWFsIHRpbWUgcmVsYXRlZCBmaWVsZHMgaW4gJUdldFBhcmFtCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e0FjdHVhbFRpbWVTcGFufSApIHsKICAgICAgICBmb3IgbXkgJFRpbWVUeXBlIChxdyhBY3R1YWxTdGFydFRpbWUgQWN0dWFsRW5kVGltZSkpIHsKICAgICAgICAgICAgZm9yIG15ICRUaW1lUGFydCAocXcoWWVhciBNb250aCBEYXkgSG91ciBNaW51dGUgVXNlZCkpIHsKICAgICAgICAgICAgICAgIG15ICRQYXJhbU5hbWUgPSAkVGltZVR5cGUgLiAkVGltZVBhcnQ7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBSZW1lbWJlciB0aGUgcmVhc29uIHdoeSBwZXJmb21pbmcgdGhlIHN1YmFjdGlvbiB3YXMgbm90IGF0dGVtcHRlZC4KICAgICMgVGhlIGVudHJpZXMgYXJlIHRoZSBuYW1lcyBvZiB0aGUgZHRsIHZhbGlkYXRpb24gZXJyb3IgYmxvY2tzLgogICAgbXkgJVZhbGlkYXRpb25FcnJvcjsKCiAgICAjIGdldCB1cGxvYWQgY2FjaGUgb2JqZWN0CiAgICBteSAkVXBsb2FkQ2FjaGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpVcGxvYWRDYWNoZScpOwoKICAgICMgZ2V0IGZvcm0gaWQKICAgICRTZWxmLT57Rm9ybUlEfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdGb3JtSUQnICk7CgogICAgIyBjcmVhdGUgZm9ybSBpZAogICAgaWYgKCAhJFNlbGYtPntGb3JtSUR9ICkgewogICAgICAgICRTZWxmLT57Rm9ybUlEfSA9ICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlEQ3JlYXRlKCk7CiAgICB9CgogICAgIyB1cGRhdGUgd29ya29yZGVyCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU2F2ZScgKSB7CgogICAgICAgICMgdmFsaWRhdGUgdGhlIGFjdHVhbCB0aW1lIHJlbGF0ZWQgcGFyYW1ldGVycwogICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57QWN0dWFsVGltZVNwYW59ICkgewogICAgICAgICAgICBteSAlU3lzdGVtVGltZTsKICAgICAgICAgICAgZm9yIG15ICRUaW1lVHlwZSAocXcoQWN0dWFsU3RhcnRUaW1lIEFjdHVhbEVuZFRpbWUpKSB7CgogICAgICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVXNlZCcgfSApIHsKCiAgICAgICAgICAgICAgICAgICAgIyB3aGVuIHRoZSBidXR0b24gd2FzIG5vdCBjaGVja2VkLCB0aGVuIGNsZWFyIHRoZSB0aW1lCiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyRUaW1lVHlwZX0gPSB1bmRlZjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICgKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdZZWFyJyB9CiAgICAgICAgICAgICAgICAgICAgJiYgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnTW9udGgnIH0KICAgICAgICAgICAgICAgICAgICAmJiAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdEYXknIH0KICAgICAgICAgICAgICAgICAgICAmJiBkZWZpbmVkICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ0hvdXInIH0KICAgICAgICAgICAgICAgICAgICAmJiBkZWZpbmVkICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ01pbnV0ZScgfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgIyB0cmFuc2Zvcm0gd29yayBvcmRlciBhY3R1YWwgdGltZSwgdGltZSBzdGFtcCBiYXNlZCBvbiB1c2VyIHRpbWUgem9uZQogICAgICAgICAgICAgICAgICAgICVHZXRQYXJhbSA9ICRMYXlvdXRPYmplY3QtPlRyYW5zZm9ybURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgUHJlZml4ID0+ICRUaW1lVHlwZSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIGZvcm1hdCBhcyB0aW1lc3RhbXAsIHdoZW4gYWxsIHJlcXVpcmVkIHRpbWUgcGFyYW1zIHdlcmUgcGFzc2VkCiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyRUaW1lVHlwZX0gPSBzcHJpbnRmICclMDRkLSUwMmQtJTAyZCAlMDJkOiUwMmQ6MDAnLAogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdZZWFyJyB9LAogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdNb250aCcgfSwKICAgICAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnRGF5JyB9LAogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdIb3VyJyB9LAogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdNaW51dGUnIH07CgogICAgICAgICAgICAgICAgICAgICMgc2FuaXR5IGNoZWNrIG9mIHRoZSBhc3NlbWJsZWQgdGltZXN0YW1wCiAgICAgICAgICAgICAgICAgICAgJFN5c3RlbVRpbWV7JFRpbWVUeXBlfSA9ICRTZWxmLT5fVGltZVN0YW1wMkVwb2NoKAogICAgICAgICAgICAgICAgICAgICAgICBUaW1lU3RhbXAgPT4gJEdldFBhcmFteyRUaW1lVHlwZX0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBkbyBub3Qgc2F2ZSBpZiB0aW1lIGlzIGludmFsaWQKICAgICAgICAgICAgICAgICAgICBpZiAoICEkU3lzdGVtVGltZXskVGltZVR5cGV9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9yeyAkVGltZVR5cGUgLiAnSW52YWxpZCcgfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICMgaXQgd2FzIGluZGljYXRlZCB0aGF0IHRoZSB0aW1lIHNob3VsZCBiZSBzZXQsCiAgICAgICAgICAgICAgICAgICAgIyBidXQgYXQgbGVhc3Qgb25lIG9mIHRoZSByZXF1aXJlZCB0aW1lIHBhcmFtcyBpcyBtaXNzaW5nCiAgICAgICAgICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcnsgJFRpbWVUeXBlIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcnsgJFRpbWVUeXBlIC4gJ0Vycm9yVHlwZScgfSA9ICdHZW5lcmljU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIHZhbGlkaXR5IG9mIHRoZSBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcwogICAgICAgICAgICBpZiAoICRTeXN0ZW1UaW1le0FjdHVhbEVuZFRpbWV9ICYmICEkU3lzdGVtVGltZXtBY3R1YWxTdGFydFRpbWV9ICkgewogICAgICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcntBY3R1YWxTdGFydFRpbWVJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7QWN0dWFsU3RhcnRUaW1lRXJyb3JUeXBlfSA9ICdTZXRTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAgICAgKCAkU3lzdGVtVGltZXtBY3R1YWxFbmRUaW1lfSAmJiAkU3lzdGVtVGltZXtBY3R1YWxTdGFydFRpbWV9ICkKICAgICAgICAgICAgICAgICYmICggJFN5c3RlbVRpbWV7QWN0dWFsRW5kVGltZX0gPCAkU3lzdGVtVGltZXtBY3R1YWxTdGFydFRpbWV9ICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJFZhbGlkYXRpb25FcnJvcntBY3R1YWxTdGFydFRpbWVJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7QWN0dWFsU3RhcnRUaW1lRXJyb3JUeXBlfSA9ICdCZWZvcmVUaGFuRW5kVGltZVNlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyB2YWxpZGF0ZSBmb3JtYXQgb2YgYWNjb3VudGVkIHRpbWUKICAgICAgICBpZiAoCiAgICAgICAgICAgICRHZXRQYXJhbXtBY2NvdW50ZWRUaW1lfQogICAgICAgICAgICAmJiAkR2V0UGFyYW17QWNjb3VudGVkVGltZX0gIX4gbXsgXEEgLT8gXGQqICg/OiBbLl0gXGR7MSwyfSApPyBceiB9eG1zCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRWYWxpZGF0aW9uRXJyb3J7J0FjY291bnRlZFRpbWVJbnZhbGlkJ30gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICAgICBteSAkVmFsaWRhdGlvblJlc3VsdCA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5FZGl0RmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH0tPnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPT0gMiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRWYWxpZGF0aW9uUmVzdWx0KSApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgJ0NvdWxkIG5vdCBwZXJmb3JtIHZhbGlkYXRpb24gb24gZmllbGQgJXMhJywgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBwcm9wYWdhdGUgdmFsaWRhdGlvbiBlcnJvciB0byB0aGUgRXJyb3IgdmFyaWFibGUgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhlIGZyb250ZW5kCiAgICAgICAgICAgIGlmICggJFZhbGlkYXRpb25SZXN1bHQtPntTZXJ2ZXJFcnJvcn0gKSB7CiAgICAgICAgICAgICAgICAkVmFsaWRhdGlvbkVycm9yeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9ICcgU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHVwZGF0ZSBvbmx5IHdoZW4gdGhlcmUgYXJlIG5vIGlucHV0IHZhbGlkYXRpb24gZXJyb3JzCiAgICAgICAgaWYgKCAhJVZhbGlkYXRpb25FcnJvciApIHsKCiAgICAgICAgICAgICMgdGhlIGFjdHVhbCB0aW1lIHJlbGF0ZWQgZmllbGRzIGFyZSBjb25maWd1cmFibGUKICAgICAgICAgICAgbXkgJUFkZGl0aW9uYWxQYXJhbTsKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntBY3R1YWxUaW1lU3Bhbn0gKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJFRpbWVUeXBlIChxdyhBY3R1YWxTdGFydFRpbWUgQWN0dWFsRW5kVGltZSkpIHsKCiAgICAgICAgICAgICAgICAgICAgIyAkR2V0UGFyYW17JFRpbWVUeXBlfSBpcyBlaXRoZXIgYSB2YWxpZCB0aW1lc3RhbXAgb3IgdW5kZWYKICAgICAgICAgICAgICAgICAgICAkQWRkaXRpb25hbFBhcmFteyRUaW1lVHlwZX0gPSAkR2V0UGFyYW17JFRpbWVUeXBlfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyB1cGRhdGUgdGhlIHdvcmtvcmRlcgogICAgICAgICAgICBteSAkQ291bGRVcGRhdGVXb3JrT3JkZXIgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJVcGRhdGUoCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCAgICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgICAgPT4gJEdldFBhcmFte1JlcG9ydH0sCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICRHZXRQYXJhbXtXb3JrT3JkZXJTdGF0ZUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgQWNjb3VudGVkVGltZSAgICA9PiAkR2V0UGFyYW17QWNjb3VudGVkVGltZX0sCiAgICAgICAgICAgICAgICAlQWRkaXRpb25hbFBhcmFtLAogICAgICAgICAgICAgICAgJUR5bmFtaWNGaWVsZFZhbHVlcywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgaWYgd29ya29yZGVyIHVwZGF0ZSB3YXMgc3VjY2Vzc2Z1bAogICAgICAgICAgICBpZiAoJENvdWxkVXBkYXRlV29ya09yZGVyKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgYWxsIGF0dGFjaG1lbnRzIGZyb20gdXBsb2FkIGNhY2hlCiAgICAgICAgICAgICAgICBteSBAQXR0YWNobWVudHMgPSAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JREdldEFsbEZpbGVzRGF0YSgKICAgICAgICAgICAgICAgICAgICBGb3JtSUQgPT4gJFNlbGYtPntGb3JtSUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIGEgbG9va3VwIGxvb2t1cCBoYXNoIG9mIHRoZSBuZXcgYXR0YWNobWVudHMKICAgICAgICAgICAgICAgIG15ICVOZXdBdHRhY2htZW50OwogICAgICAgICAgICAgICAgZm9yIG15ICRBdHRhY2htZW50IChAQXR0YWNobWVudHMpIHsKCiAgICAgICAgICAgICAgICAgICAgIyB0aGUga2V5IGlzIHRoZSBmaWxlbmFtZSArIGZpbGVzaXplICsgY29udGVudCB0eXBlCiAgICAgICAgICAgICAgICAgICAgbXkgJEtleSA9ICRBdHRhY2htZW50LT57RmlsZW5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEF0dGFjaG1lbnQtPntGaWxlc2l6ZX0KICAgICAgICAgICAgICAgICAgICAgICAgLiAkQXR0YWNobWVudC0+e0NvbnRlbnRUeXBlfTsKCiAgICAgICAgICAgICAgICAgICAgIyBhcHBlbmQgY29udGVudCBpZCBpZiBhdmFpbGFibGUgKGZvciBuZXcgaW5saW5lIGltYWdlcykKICAgICAgICAgICAgICAgICAgICBpZiAoICRBdHRhY2htZW50LT57Q29udGVudElEfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEtleSAuPSAkQXR0YWNobWVudC0+e0NvbnRlbnRJRH07CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIHN0b3JlIGFsbCBvZiB0aGUgbmV3IGF0dGFjaG1lbnQgZGF0YQogICAgICAgICAgICAgICAgICAgICROZXdBdHRhY2htZW50eyRLZXl9ID0gJEF0dGFjaG1lbnQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBnZXQgYWxsIHJlcG9ydCBhdHRhY2htZW50cyBtZXRhIGRhdGEKICAgICAgICAgICAgICAgIG15IEBFeGlzdGluZ0F0dGFjaG1lbnRzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyUmVwb3J0QXR0YWNobWVudExpc3QoCiAgICAgICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIHRoZSBleGlzdGluZyBhdHRhY2htZW50cwogICAgICAgICAgICAgICAgRklMRU5BTUU6CiAgICAgICAgICAgICAgICBmb3IgbXkgJEZpbGVuYW1lIChARXhpc3RpbmdBdHRhY2htZW50cykgewoKICAgICAgICAgICAgICAgICAgICAjIGdldCB0aGUgZXhpc3RpbmcgYXR0YWNobWVudCBkYXRhCiAgICAgICAgICAgICAgICAgICAgbXkgJEF0dGFjaG1lbnREYXRhID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyQXR0YWNobWVudEdldCgKICAgICAgICAgICAgICAgICAgICAgICAgV29ya09yZGVySUQgICAgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgICAgICAgICBGaWxlbmFtZSAgICAgICA9PiAkRmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIEF0dGFjaG1lbnRUeXBlID0+ICdXb3JrT3JkZXJSZXBvcnQnLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgZG8gbm90IGNvbnNpZGVyIGlubGluZSBhdHRhY2htZW50cwogICAgICAgICAgICAgICAgICAgIG5leHQgRklMRU5BTUUgaWYgJEF0dGFjaG1lbnREYXRhLT57UHJlZmVyZW5jZXN9LT57Q29udGVudElEfTsKCiAgICAgICAgICAgICAgICAgICAgIyB0aGUga2V5IGlzIHRoZSBmaWxlbmFtZSArIGZpbGVzaXplICsgY29udGVudCB0eXBlCiAgICAgICAgICAgICAgICAgICAgIyAobm8gY29udGVudCBpZCwgYXMgZXhpc3RpbmcgYXR0YWNobWVudHMgZG9uJ3QgaGF2ZSBpdCkKICAgICAgICAgICAgICAgICAgICBteSAkS2V5ID0gJEF0dGFjaG1lbnREYXRhLT57RmlsZW5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEF0dGFjaG1lbnREYXRhLT57RmlsZXNpemV9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEF0dGFjaG1lbnREYXRhLT57Q29udGVudFR5cGV9OwoKICAgICAgICAgICAgICAgICAgICAjIGF0dGFjaG1lbnQgaXMgYWxyZWFkeSBleGlzdGluZywgd2UgY2FuIGRlbGV0ZSBpdCBmcm9tIHRoZSBuZXcgYXR0YWNobWVudCBoYXNoCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkTmV3QXR0YWNobWVudHskS2V5fSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlICROZXdBdHRhY2htZW50eyRLZXl9OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBleGlzdGluZyBhdHRhY2htZW50IGlzIG5vIGxvbmdlciBpbiBuZXcgYXR0YWNobWVudHMgaGFzaAogICAgICAgICAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBkZWxldGUgdGhlIGV4aXN0aW5nIGF0dGFjaG1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJERlbGV0ZVN1Y2Nlc3NmdWwgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50RGVsZXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJFdvcmtPcmRlci0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dGFjaG1lbnRUeXBlID0+ICdXb3JrT3JkZXJSZXBvcnQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZW5hbWUgICAgICAgPT4gJEZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICEkRGVsZXRlU3VjY2Vzc2Z1bCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyB3cml0ZSB0aGUgbmV3IGF0dGFjaG1lbnRzCiAgICAgICAgICAgICAgICBBVFRBQ0hNRU5UOgogICAgICAgICAgICAgICAgZm9yIG15ICRBdHRhY2htZW50ICggdmFsdWVzICVOZXdBdHRhY2htZW50ICkgewoKICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIGF0dGFjaG1lbnQgaXMgYW4gaW5saW5lIGF0dGFjaG1lbnQKICAgICAgICAgICAgICAgICAgICBteSAkSW5saW5lID0gMDsKICAgICAgICAgICAgICAgICAgICBpZiAoICRBdHRhY2htZW50LT57Q29udGVudElEfSApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgY2hlY2sgd29ya29yZGVyIHJlcG9ydCBmb3IgY29udGVudCBpZAogICAgICAgICAgICAgICAgICAgICAgICAjIHdlIGRvIG5vdCB3YW50IHRvIGtlZXAgdGhpcyBhdHRhY2htZW50LAogICAgICAgICAgICAgICAgICAgICAgICAjIGlmIGl0IHdhcyBkZWxldGVkIGluIHRoZSByaWNoIHRleHQgZWRpdG9yCiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgQVRUQUNITUVOVCBpZiAkR2V0UGFyYW17UmVwb3J0fSAhfiBteyAkQXR0YWNobWVudC0+e0NvbnRlbnRJRH0gfXhtczsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgcmVtZW1iZXIgdGhhdCBpdCBpcyBpbmxpbmUKICAgICAgICAgICAgICAgICAgICAgICAgJElubGluZSA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIGFkZCBhdHRhY2htZW50CiAgICAgICAgICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50QWRkKAogICAgICAgICAgICAgICAgICAgICAgICAleyRBdHRhY2htZW50fSwKICAgICAgICAgICAgICAgICAgICAgICAgV29ya09yZGVySUQgICAgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkV29ya09yZGVyLT57Q2hhbmdlSUR9LAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgIEF0dGFjaG1lbnRUeXBlID0+ICdXb3JrT3JkZXJSZXBvcnQnLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigpIGlmICEkU3VjY2VzczsKCiAgICAgICAgICAgICAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICEkSW5saW5lOwogICAgICAgICAgICAgICAgICAgIG5leHQgQVRUQUNITUVOVCBpZiAhJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH07CgogICAgICAgICAgICAgICAgICAgICMgcGljdHVyZSB1cmwgaW4gdXBsb2FkIGNhY2hlCiAgICAgICAgICAgICAgICAgICAgbXkgJFNlYXJjaCA9ICJBY3Rpb249UGljdHVyZVVwbG9hZCAuKyBGb3JtSUQ9JFNlbGYtPntGb3JtSUR9IC4rICIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiQ29udGVudElEPSRBdHRhY2htZW50LT57Q29udGVudElEfSI7CgogICAgICAgICAgICAgICAgICAgICMgcGljdHVyZSB1cmwgaW4gd29ya29yZGVyIHJlcG9ydCBhdHRhY2htZW50CiAgICAgICAgICAgICAgICAgICAgbXkgJFJlcGxhY2UgPSAiQWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlclpvb207U3ViYWN0aW9uPURvd25sb2FkQXR0YWNobWVudDsiCiAgICAgICAgICAgICAgICAgICAgICAgIC4gIkZpbGVuYW1lPSRBdHRhY2htZW50LT57RmlsZW5hbWV9O1dvcmtPcmRlcklEPSRXb3JrT3JkZXJJRDtUeXBlPVdvcmtPcmRlclJlcG9ydCI7CgogICAgICAgICAgICAgICAgICAgICMgcmVwbGFjZSB1cmwKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17UmVwb3J0fSA9fiBzeyRTZWFyY2h9eyRSZXBsYWNlfXhtczsKCiAgICAgICAgICAgICAgICAgICAgIyB1cGRhdGUgd29ya29yZGVyCiAgICAgICAgICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJVcGRhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgPT4gJEdldFBhcmFte1JlcG9ydH0sCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3QgdXBkYXRlIHRoZSBpbmxpbmUgaW1hZ2UgVVJMcyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiZm9yIFdvcmtPcmRlcklEICckV29ya09yZGVySUQnISEiLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGRlbGV0ZSB0aGUgdXBsb2FkIGNhY2hlCiAgICAgICAgICAgICAgICAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JRFJlbW92ZSggRm9ybUlEID0+ICRTZWxmLT57Rm9ybUlEfSApOwoKICAgICAgICAgICAgICAgICMgbG9hZCBuZXcgVVJMIGluIHBhcmVudCB3aW5kb3cgYW5kIGNsb3NlIHBvcHVwCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UG9wdXBDbG9zZSgKICAgICAgICAgICAgICAgICAgICBVUkwgPT4gIkFjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1dvcmtPcmRlcklEPSRXb3JrT3JkZXJJRCIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9CiAgICAgICAgICAgICAgICAgICAgICAgIC0+VHJhbnNsYXRlKCAnV2FzIG5vdCBhYmxlIHRvIHVwZGF0ZSBXb3JrT3JkZXIgJXMhJywgJFdvcmtPcmRlcklEICksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGRlbGV0ZSBhbGwga2V5cyBmcm9tIEdldFBhcmFtIHdoZW4gaXQgaXMgbm8gU3ViYWN0aW9uCiAgICAgICAgJUdldFBhcmFtID0gKCk7CgogICAgICAgICMgaW5pdGlhbGl6ZSB0aGUgYWN0dWFsIHRpbWUgcmVsYXRlZCBmaWVsZHMKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e0FjdHVhbFRpbWVTcGFufSApIHsKICAgICAgICAgICAgVElNRVRZUEU6CiAgICAgICAgICAgIGZvciBteSAkVGltZVR5cGUgKHF3KEFjdHVhbFN0YXJ0VGltZSBBY3R1YWxFbmRUaW1lKSkgewoKICAgICAgICAgICAgICAgIG5leHQgVElNRVRZUEUgaWYgISRXb3JrT3JkZXItPnskVGltZVR5cGV9OwoKICAgICAgICAgICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRXb3JrT3JkZXItPnskVGltZVR5cGV9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgc2V0IHRoZSBwYXJhbWV0ZXIgaGFzaCBmb3IgQnVpbGREYXRlU2VsZWN0aW9uKCkKICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1VzZWQnIH0gICA9IDE7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdNaW51dGUnIH0gPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgICAgICAgICBGb3JtYXQgPT4gJyVNJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdIb3VyJyB9ID0gJERhdGVUaW1lT2JqZWN0LT5Gb3JtYXQoCiAgICAgICAgICAgICAgICAgICAgRm9ybWF0ID0+ICclSCcsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnRGF5JyB9ID0gJERhdGVUaW1lT2JqZWN0LT5Gb3JtYXQoCiAgICAgICAgICAgICAgICAgICAgRm9ybWF0ID0+ICclZCcsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnTW9udGgnIH0gPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgICAgICAgICBGb3JtYXQgPT4gJyVtJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdZZWFyJyB9ID0gJERhdGVUaW1lT2JqZWN0LT5Gb3JtYXQoCiAgICAgICAgICAgICAgICAgICAgRm9ybWF0ID0+ICclWScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGdldCBhbGwgcmVwb3J0IGF0dGFjaG1lbnRzIG1ldGEgZGF0YQogICAgICAgIG15IEBFeGlzdGluZ0F0dGFjaG1lbnRzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyUmVwb3J0QXR0YWNobWVudExpc3QoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICApOwoKICAgICAgICAjIGNvcHkgYWxsIGV4aXN0aW5nIHJlcG9ydCBhdHRhY2htZW50cyB0byB1cGxvYWQgY2FjaGUKICAgICAgICBGSUxFTkFNRToKICAgICAgICBmb3IgbXkgJEZpbGVuYW1lIChARXhpc3RpbmdBdHRhY2htZW50cykgewoKICAgICAgICAgICAgIyBnZXQgdGhlIGV4aXN0aW5nIGF0dGFjaG1lbnQgZGF0YQogICAgICAgICAgICBteSAkQXR0YWNobWVudERhdGEgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50R2V0KAogICAgICAgICAgICAgICAgV29ya09yZGVySUQgICAgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgRmlsZW5hbWUgICAgICAgPT4gJEZpbGVuYW1lLAogICAgICAgICAgICAgICAgQXR0YWNobWVudFR5cGUgPT4gJ1dvcmtPcmRlclJlcG9ydCcsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGRvIG5vdCBjb25zaWRlciBpbmxpbmUgYXR0YWNobWVudHMKICAgICAgICAgICAgbmV4dCBGSUxFTkFNRSBpZiAkQXR0YWNobWVudERhdGEtPntQcmVmZXJlbmNlc30tPntDb250ZW50SUR9OwoKICAgICAgICAgICAgIyBhZGQgYXR0YWNobWVudCB0byB0aGUgdXBsb2FkIGNhY2hlCiAgICAgICAgICAgICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlEQWRkRmlsZSgKICAgICAgICAgICAgICAgIEZvcm1JRCAgICAgID0+ICRTZWxmLT57Rm9ybUlEfSwKICAgICAgICAgICAgICAgIEZpbGVuYW1lICAgID0+ICRBdHRhY2htZW50RGF0YS0+e0ZpbGVuYW1lfSwKICAgICAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRBdHRhY2htZW50RGF0YS0+e0NvbnRlbnR9LAogICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJEF0dGFjaG1lbnREYXRhLT57Q29udGVudFR5cGV9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBjaGFuZ2UgdGhhdCB0aGUgd29ya29yZGVyIGJlbG9uZ3MgdG8KICAgIG15ICRDaGFuZ2UgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlci0+e0NoYW5nZUlEfSwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgbm8gY2hhbmdlIGZvdW5kCiAgICBpZiAoICEkQ2hhbmdlICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJywgJFdvcmtPcmRlcklEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgaWYgdGhlcmUgd2FzIGFuIGF0dGFjaG1lbnQgZGVsZXRlIG9yIHVwbG9hZAogICAgIyB3ZSBkbyBub3Qgd2FudCB0byBzaG93IHZhbGlkYXRpb24gZXJyb3JzIGZvciBvdGhlciBmaWVsZHMKICAgIGlmICggJFZhbGlkYXRpb25FcnJvcntBdHRhY2htZW50fSApIHsKICAgICAgICAlVmFsaWRhdGlvbkVycm9yID0gKCk7CiAgICB9CgogICAgIyBnZXQgd29ya29yZGVyIHN0YXRlIGxpc3QKICAgIG15ICRXb3JrT3JkZXJQb3NzaWJsZVN0YXRlcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclBvc3NpYmxlU3RhdGVzR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgYnVpbGQgZHJvcC1kb3duIHdpdGggd29ya29yZGVyIHN0YXRlcwogICAgJFBhcmFte1N0YXRlU2VsZWN0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gJFdvcmtPcmRlclBvc3NpYmxlU3RhdGVzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ1dvcmtPcmRlclN0YXRlSUQnLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFdvcmtPcmRlci0+e1dvcmtPcmRlclN0YXRlSUR9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgc2hvdyBzdGF0ZSBkcm9wZG93bgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnU3RhdGUnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICk7CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICRXb3JrT3JkZXItPntXb3JrT3JkZXJUaXRsZX0sCiAgICAgICAgVHlwZSAgPT4gJ1NtYWxsJywKICAgICk7CgogICAgIyBhZGQgcmljaCB0ZXh0IGVkaXRvcgogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Zyb250ZW5kOjpSaWNoVGV4dCcpICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPlNldFJpY2hUZXh0UGFyYW1ldGVycygKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkfSApIHsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIGdldCB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgZnJvbSB3b3Jrb3JkZXIgaWYgcGFnZSBpcyBsb2FkZWQgdGhlIGZpcnN0IHRpbWUKICAgICAgICBpZiAoICEkU2VsZi0+e1N1YmFjdGlvbn0gKSB7CiAgICAgICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9CiAgICAgICAgICAgICAgICA9ICRXb3JrT3JkZXItPnsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH07CiAgICAgICAgfQoKICAgICAgICAjIGdldCBmaWVsZCBodG1sCiAgICAgICAgbXkgJER5bmFtaWNGaWVsZEhUTUwgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkUmVuZGVyKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgICAgICAgPT4gJFZhbGlkYXRpb25FcnJvcnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gfHwgJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgICAgICBBSkFYVXBkYXRlICAgICAgICAgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIHNraXAgZmllbGRzIHRoYXQgSFRNTCBjb3VsZCBub3QgYmUgcmV0cmlldmVkCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRIVE1MKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTmFtZSAgPT4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9LAogICAgICAgICAgICAgICAgTGFiZWwgPT4gJER5bmFtaWNGaWVsZEhUTUwtPntMYWJlbH0sCiAgICAgICAgICAgICAgICBGaWVsZCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0ZpZWxkfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGV4YW1wbGUgb2YgZHluYW1pYyBmaWVsZHMgb3JkZXIgY3VzdG9taXphdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgICAgICBMYWJlbCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0xhYmVsfSwKICAgICAgICAgICAgICAgIEZpZWxkID0+ICREeW5hbWljRmllbGRIVE1MLT57RmllbGR9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayBpZiBhY3R1YWwgdGltZXMgc2hvdWxkIGJlIHNob3duCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e0FjdHVhbFRpbWVTcGFufSApIHsKCiAgICAgICAgZm9yIG15ICRUaW1lVHlwZSAocXcoQWN0dWFsRW5kVGltZSBBY3R1YWxTdGFydFRpbWUpKSB7CgogICAgICAgICAgICAjIHRpbWUgcGVyaW9kIHRoYXQgY2FuIGJlIHNlbGVjdGVkIGZyb20gdGhlIEdVSQogICAgICAgICAgICBteSAlVGltZVBlcmlvZCA9ICV7ICRDb25maWdPYmplY3QtPkdldCgnSVRTTVdvcmtPcmRlcjo6VGltZVBlcmlvZCcpIH07CgogICAgICAgICAgICAjIGFkZCBzZWxlY3Rpb24gZm9yIHRoZSB0aW1lCiAgICAgICAgICAgIG15ICRUaW1lU2VsZWN0aW9uU3RyaW5nID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgRm9ybWF0ICAgICAgICAgICAgICAgID0+ICdEYXRlSW5wdXRGb3JtYXRMb25nJywKICAgICAgICAgICAgICAgIFByZWZpeCAgICAgICAgICAgICAgICA9PiAkVGltZVR5cGUsCiAgICAgICAgICAgICAgICAiJHtUaW1lVHlwZX1PcHRpb25hbCIgPT4gMSwKICAgICAgICAgICAgICAgICRUaW1lVHlwZSAuICdDbGFzcycgICA9PiAkVmFsaWRhdGlvbkVycm9yeyAkVGltZVR5cGUgLiAnSW52YWxpZCcgfSB8fCAnJywKICAgICAgICAgICAgICAgIFZhbGlkYXRlICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgJVRpbWVQZXJpb2QsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgdGltZSBmaWVsZAogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJFRpbWVUeXBlLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJFRpbWVUeXBlIC4gJ1NlbGVjdGlvblN0cmluZycgPT4gJFRpbWVTZWxlY3Rpb25TdHJpbmcsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIG1lc3NhZ2VzIGZvciB0aGUgYWN0dWFsIHN0YXJ0IHRpbWUKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQWN0dWFsU3RhcnRUaW1lJwogICAgICAgICAgICAgICAgLiAoICRWYWxpZGF0aW9uRXJyb3J7QWN0dWFsU3RhcnRUaW1lRXJyb3JUeXBlfSB8fCAnR2VuZXJpY1NlcnZlckVycm9yJyApCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgYWNjb3VudGVkIHRpbWUgb25seSB3aGVuIGZvcm0gd2FzIHN1Ym1pdHRlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntBY2NvdW50ZWRUaW1lfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU2hvd0FjY291bnRlZFRpbWUnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEFjY291bnRlZFRpbWUgPT4gJEdldFBhcmFte0FjY291bnRlZFRpbWV9LAogICAgICAgICAgICAgICAgJVZhbGlkYXRpb25FcnJvciwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBhY2NvdW50ZWQgdGltZSBvbmx5IHdoZW4gZm9ybSB3YXMgc3VibWl0dGVkCiAgICBteSAkQWNjb3VudGVkVGltZSA9ICcnOwogICAgaWYgKCAkR2V0UGFyYW17QWNjb3VudGVkVGltZX0gKSB7CiAgICAgICAgJEFjY291bnRlZFRpbWUgPSAkR2V0UGFyYW17QWNjb3VudGVkVGltZX07CiAgICB9CgogICAgIyBnZXQgYWxsIHJlcG9ydCBhdHRhY2htZW50cyBtZXRhIGRhdGEKICAgICRQYXJhbXtBdHRhY2htZW50TGlzdH0gPSBbCiAgICAgICAgJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURHZXRBbGxGaWxlc01ldGEoCiAgICAgICAgICAgIEZvcm1JRCA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgKQogICAgXTsKCiAgICAjIHNob3cgdGhlIGF0dGFjaG1lbnQgdXBsb2FkIGJ1dHRvbgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQXR0YWNobWVudFVwbG9hZCcsCiAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICk7CgogICAgIyBzdGFydCB0ZW1wbGF0ZSBvdXRwdXQKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNV29ya09yZGVyUmVwb3J0JywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICV7JENoYW5nZX0sCiAgICAgICAgICAgICV7JFdvcmtPcmRlcn0sCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJVZhbGlkYXRpb25FcnJvciwKICAgICAgICAgICAgQWNjb3VudGVkVGltZSA9PiAkQWNjb3VudGVkVGltZSwKICAgICAgICAgICAgRm9ybUlEICAgICAgICA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgfSwKICAgICk7CgogICAgIyBhZGQgZm9vdGVyCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlciggVHlwZSA9PiAnU21hbGwnICk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfVGltZVN0YW1wMkVwb2NoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSwgKSA9IEBfOwoKICAgIG15ICRUaW1lU3RhbXAgICAgICA9ICRQYXJhbXtUaW1lU3RhbXB9OwogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBTdHJpbmcgPT4gJFRpbWVTdGFtcCwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gJERhdGVUaW1lT2JqZWN0LT5Ub0Vwb2NoKCkgaWYgJERhdGVUaW1lT2JqZWN0OwogICAgcmV0dXJuOwp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMWorkOrderTake.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVdvcmtPcmRlclRha2U7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgV29ya09yZGVySUQKICAgIG15ICRXb3JrT3JkZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICdXb3JrT3JkZXJJRCcgKTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkV29ya09yZGVySUQgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTm8gV29ya09yZGVySUQgaXMgZ2l2ZW4hJyksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHdvcmtvcmRlciBvYmplY3QKICAgIG15ICRXb3JrT3JkZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpOwoKICAgICMgZ2V0IHdvcmtvcmRlciBkYXRhCiAgICBteSAkV29ya09yZGVyID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZXJyb3IKICAgIGlmICggISRXb3JrT3JkZXIgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywgJFdvcmtPcmRlcklEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTVdvcmtPcmRlcjo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgICMgcXVlcnkgdGhlIHBlcm1pc3Npb24gbW9kdWxlcyByZWdpc3RlcmVkIGluICdJVFNNV29ya09yZGVyOjpUYWtlUGVybWlzc2lvbicKICAgIG15ICRBY2Nlc3MgPSAkV29ya09yZGVyT2JqZWN0LT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgICAgICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBBY3Rpb24gICAgICAgICAgICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIFBlcm1pc3Npb25SZWdpc3RyeSA9PiAnSVRTTVdvcmtPcmRlcjo6VGFrZVBlcm1pc3Npb24nLAogICAgICAgIFdvcmtPcmRlcklEICAgICAgICA9PiAkV29ya09yZGVySUQsCiAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdXb3JrT3JkZXJUYWtlJyApIHsKCiAgICAgICAgIyBzZXQgdGhlIGN1cnJlbnQgdXNlciBhcyB0aGUgd29ya29yZGVyIGFnZW50CiAgICAgICAgbXkgJENvdWxkVXBkYXRlV29ya09yZGVyID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyVXBkYXRlKAogICAgICAgICAgICBXb3JrT3JkZXJJRCAgICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgV29ya09yZGVyQWdlbnRJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIGlmICgkQ291bGRVcGRhdGVXb3JrT3JkZXIpIHsKCiAgICAgICAgICAgICMgcmVkaXJlY3QgdG8gd29ya29yZGVyLCB3aGVuIHRoZSB1cGRhdGUgd2FzIHN1Y2Nlc3NmdWwKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1dvcmtPcmRlcklEPSRXb3JrT3JkZXJJRCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9CiAgICAgICAgICAgICAgICAgICAgLT5UcmFuc2xhdGUoICdXYXMgbm90IGFibGUgdG8gdGFrZSB0aGUgd29ya29yZGVyICVzIScsICRXb3JrT3JkZXJJRCApLAogICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIExvZ2luIG5hbWUgb2YgdGhlIGN1cnJlbnQgd29ya29yZGVyIGFnZW50CiAgICBteSAkV29ya09yZGVyQWdlbnQgPSAnLSc7CiAgICBpZiAoICRXb3JrT3JkZXItPntXb3JrT3JkZXJBZ2VudElEfSApIHsKICAgICAgICAkV29ya09yZGVyQWdlbnQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VySUQgPT4gJFdvcmtPcmRlci0+e1dvcmtPcmRlckFnZW50SUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY2hhbmdlIHRoYXQgd29ya29yZGVyIGJlbG9uZ3MgdG8KICAgIG15ICRDaGFuZ2UgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlci0+e0NoYW5nZUlEfSwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgY2hhbmdlIGlzIGZvdW5kCiAgICBpZiAoICEkQ2hhbmdlICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ291bGQgbm90IGZpbmQgQ2hhbmdlIGZvciBXb3JrT3JkZXIgJXMhJywgJFdvcmtPcmRlcklEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgb3V0cHV0IGNvbnRlbnQKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudElUU01Xb3JrT3JkZXJUYWtlJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICV7JENoYW5nZX0sCiAgICAgICAgICAgICV7JFdvcmtPcmRlcn0sCiAgICAgICAgICAgIFdvcmtPcmRlckFnZW50ID0+ICRXb3JrT3JkZXJBZ2VudCwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGJ1aWxkIHRoZSByZXR1cm5lZCBkYXRhIHN0cnVjdHVyZQogICAgbXkgJURhdGEgPSAoCiAgICAgICAgSFRNTCAgICAgICA9PiAkT3V0cHV0LAogICAgICAgIERpYWxvZ1R5cGUgPT4gJ0NvbmZpcm1hdGlvbicsCiAgICApOwoKICAgICMgcmV0dXJuIEpTT04tU3RyaW5nIGJlY2F1c2Ugb2YgQUpBWC1Nb2RlCiAgICBteSAkT3V0cHV0SlNPTiA9ICRMYXlvdXRPYmplY3QtPkpTT05FbmNvZGUoIERhdGEgPT4gXCVEYXRhICk7CgogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICBDb250ZW50ICAgICA9PiAkT3V0cHV0SlNPTiwKICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgKTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMWorkOrderTemplate.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBnZXQgbmVlZGVkIFdvcmtPcmRlcklECiAgICBteSAkV29ya09yZGVySUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnV29ya09yZGVySUQnICk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRXb3JrT3JkZXJJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBXb3JrT3JkZXJJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgd29ya29yZGVyIGRhdGEKICAgIG15ICRXb3JrT3JkZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBpZiBMYXlvdXRPYmplY3QgaGFzIFRyYW5zbGF0aW9uT2JqZWN0CiAgICBpZiAoICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0gKSB7CgogICAgICAgICMgdHJhbnNsYXRlIHdvcmtvcmRlciB0eXBlCiAgICAgICAgJFdvcmtPcmRlci0+e1dvcmtPcmRlclR5cGV9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAkV29ya09yZGVyLT57V29ya09yZGVyVHlwZX0KICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgZXJyb3IKICAgIGlmICggISRXb3JrT3JkZXIgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywgJFdvcmtPcmRlcklEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBvYmplY3QKICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTVdvcmtPcmRlcjo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIEFjdGlvbiAgICAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBDaGFuZ2VJRCAgICA9PiAkV29ya09yZGVyLT57Q2hhbmdlSUR9LAogICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZXJyb3Igc2NyZWVuCiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1lvdSBuZWVkICVzIHBlcm1pc3Npb25zIScsICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259ICksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHN0b3JlIG5lZWRlZCBwYXJhbWV0ZXJzIGluICVHZXRQYXJhbSB0byBtYWtlIGl0IHJlbG9hZGFibGUKICAgIG15ICVHZXRQYXJhbTsKICAgIGZvciBteSAkUGFyYW1OYW1lICgKICAgICAgICBxdyhUZW1wbGF0ZU5hbWUgQ29tbWVudCBWYWxpZElEIFN0YXRlUmVzZXQgT3ZlcndyaXRlVGVtcGxhdGUgRGVsZXRlV29ya09yZGVyKQogICAgICAgICkKICAgIHsKICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CiAgICB9CgogICAgIyBnZXQgdXNlciBvYmplY3QKICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIGdldCBleGlzdGluZyB1c2VyIHByZWZlcmVuY2VzCiAgICBteSAlVXNlclByZWZlcmVuY2VzID0gJFVzZXJPYmplY3QtPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IHByZWZlcmVuY2UgdG8gc2VlIHdoaWNoIHRlbXBsYXRlcyBhcmUgaW4gZWRpdCBieSB0aGUgdXNlcgogICAgbXkgJFRlbXBsYXRlRWRpdFByZWZlcmVuY2VTdHJpbmcgPSAkVXNlclByZWZlcmVuY2Vze1VzZXJJVFNNQ2hhbmdlTWFuYWdlbWVudFRlbXBsYXRlRWRpdH0gfHwgJyc7CgogICAgIyBjb252ZXJ0IHRvIGxvb2t1cCBoYXNoCiAgICBteSBARWRpdGVkVGVtcGxhdGVzID0gc3BsaXQgbS87LywgJFRlbXBsYXRlRWRpdFByZWZlcmVuY2VTdHJpbmc7CiAgICBteSAlT2JqZWN0MlRlbXBsYXRlOwogICAgZm9yIG15ICRTdHJpbmcgKEBFZGl0ZWRUZW1wbGF0ZXMpIHsKICAgICAgICBteSAoICRPYmplY3QsICRUZW1wbGF0ZSApID0gc3BsaXQgbS86Oi8sICRTdHJpbmc7CiAgICAgICAgJE9iamVjdDJUZW1wbGF0ZXskT2JqZWN0fSA9ICRUZW1wbGF0ZTsKICAgIH0KCiAgICAjIGdldCB0ZW1wbGF0ZSBpZCBmcm9tIHVzZXIgcHJlZmVyZW5jZXMKICAgIG15ICRUZW1wbGF0ZUlEID0gJE9iamVjdDJUZW1wbGF0ZXsgJ1dvcmtPcmRlcklEJyAuICRXb3JrT3JkZXJJRCB9OwoKICAgICMgZ2V0IHRlbXBsYXRlIG9iamVjdAogICAgbXkgJFRlbXBsYXRlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlRlbXBsYXRlJyk7CgogICAgIyBjaGVjayBpZiB0aGlzIHdvcmtvcmRlciB3YXMgY3JlYXRlZCBieSB0aGlzIHVzZXIgdXNpbmcgYSB0ZW1wbGF0ZQogICAgaWYgKCRUZW1wbGF0ZUlEKSB7CgogICAgICAgICMgZ2V0IHRlbXBsYXRlIGRhdGEKICAgICAgICBteSAkVGVtcGxhdGVEYXRhID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZUdldCgKICAgICAgICAgICAgVGVtcGxhdGVJRCA9PiAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgIGlmICgkVGVtcGxhdGVEYXRhKSB7CgogICAgICAgICAgICAjIG92ZXJ3cml0ZSBlbXB0eSB2YWx1ZXMgd2l0aCB0ZW1wbGF0ZSBkYXRhCiAgICAgICAgICAgICRHZXRQYXJhbXtUZW1wbGF0ZU5hbWV9IHx8PSAkVGVtcGxhdGVEYXRhLT57TmFtZX07CiAgICAgICAgICAgICRHZXRQYXJhbXtDb21tZW50fSAgICAgIHx8PSAkVGVtcGxhdGVEYXRhLT57Q29tbWVudH07CiAgICAgICAgICAgICRHZXRQYXJhbXtWYWxpZElEfSAgICAgIHx8PSAkVGVtcGxhdGVEYXRhLT57VmFsaWRJRH07CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkVGVtcGxhdGVJRCA9ICcnOwogICAgICAgIH0KICAgIH0KCiAgICAjIENoZWNrIHJlcXVpcmVkIGZpZWxkcyB0byBsb29rIGZvciBlcnJvcnMuCiAgICBteSAlRXJyb3I7CgogICAgIyBhZGQgYSB0ZW1wbGF0ZQogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFRlbXBsYXRlJyApIHsKCiAgICAgICAgIyBjaGVjayB2YWxpZGl0eSBvZiB0aGUgdGVtcGxhdGUgbmFtZQogICAgICAgIGlmICggISRHZXRQYXJhbXtUZW1wbGF0ZU5hbWV9ICkgewogICAgICAgICAgICAkRXJyb3J7J1RlbXBsYXRlTmFtZUludmFsaWQnfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICBpZiAoICElRXJyb3IgKSB7CgogICAgICAgICAgICAjIHNlcmlhbGl6ZSB0aGUgd29ya29yZGVyCiAgICAgICAgICAgIG15ICRUZW1wbGF0ZUNvbnRlbnQgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlU2VyaWFsaXplKAogICAgICAgICAgICAgICAgVGVtcGxhdGVUeXBlID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgICAgIFN0YXRlUmVzZXQgICA9PiAkR2V0UGFyYW17U3RhdGVSZXNldH0gfHwgMCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEICA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzaG93IGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgaWYgKCAhJFRlbXBsYXRlQ29udGVudCApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgJ1RoZSB3b3Jrb3JkZXIgIiVzIiBjb3VsZCBub3QgYmUgc2VyaWFsaXplZC4nLCAkV29ya09yZGVySUQKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaWYgdGhpcyB3b3Jrb3JkZXIgd2FzIGNyZWF0ZWQgZnJvbSBhIHRlbXBsYXRlIGFuZCBzaG91bGQgYmUgc2F2ZWQgYmFjawogICAgICAgICAgICBpZiAoICRUZW1wbGF0ZUlEICYmICRHZXRQYXJhbXtPdmVyd3JpdGVUZW1wbGF0ZX0gKSB7CgogICAgICAgICAgICAgICAgbXkgJFVwZGF0ZVN1Y2Nlc3MgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlVXBkYXRlKAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlSUQgPT4gJFRlbXBsYXRlSUQsCiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAkR2V0UGFyYW17VGVtcGxhdGVOYW1lfSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ICAgID0+ICRHZXRQYXJhbXtDb21tZW50fSwKICAgICAgICAgICAgICAgICAgICBWYWxpZElEICAgID0+ICRHZXRQYXJhbXtWYWxpZElEfSwKICAgICAgICAgICAgICAgICAgICBDb250ZW50ICAgID0+ICRUZW1wbGF0ZUNvbnRlbnQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICBpZiAoICEkVXBkYXRlU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLT5UcmFuc2xhdGUoICdDb3VsZCBub3QgdXBkYXRlIHRoZSB0ZW1wbGF0ZSAiJXMiLicsICRUZW1wbGF0ZUlEICksCiAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICMgc3RvcmUgdGhlIHNlcmlhbGl6ZWQgd29ya29yZGVyIGFzIGEgbmV3IHRlbXBsYXRlCiAgICAgICAgICAgICAgICAkVGVtcGxhdGVJRCA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVBZGQoCiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRHZXRQYXJhbXtUZW1wbGF0ZU5hbWV9LAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgICAgICA9PiAkR2V0UGFyYW17Q29tbWVudH0sCiAgICAgICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgID0+ICRHZXRQYXJhbXtWYWxpZElEfSwKICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZVR5cGUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICAgICA9PiAkVGVtcGxhdGVDb250ZW50LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICBpZiAoICEkVGVtcGxhdGVJRCApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDb3VsZCBub3QgYWRkIHRoZSB0ZW1wbGF0ZS4nKSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZGVmaW5lIHJlZGlyZWN0IFVSTAogICAgICAgICAgICBteSAkUmVkaXJlY3RVUkwgPSAiQWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlclpvb207V29ya09yZGVySUQ9JFdvcmtPcmRlcklEIjsKCiAgICAgICAgICAgICMgaWYgdGhlIG9yaWdpbmFsIGNoYW5nZSBhbmQgYWxsIHdvcmtvcmRlcnMgc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17RGVsZXRlV29ya09yZGVyfSApIHsKCiAgICAgICAgICAgICAgICAjIGRlbGV0ZSB0aGUgY2hhbmdlIGFuZCBhbGwgd29ya29yZGVycyAoaW5jbHVkaW5nIHRoaXMgb25lKQogICAgICAgICAgICAgICAgbXkgJERlbGV0ZVN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlci0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICBpZiAoICEkRGVsZXRlU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvdWxkIG5vdCBkZWxldGUgY2hhbmdlICIlcyIuJywgJFdvcmtPcmRlci0+e0NoYW5nZUlEfQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGRlbGV0ZSB0aGUgdXNlciBwcmVmZXJlbmNlIGVudHJ5CiAgICAgICAgICAgICAgICBkZWxldGUgJE9iamVjdDJUZW1wbGF0ZXsgJ1dvcmtPcmRlcklEJyAuICRXb3JrT3JkZXJJRCB9OwoKICAgICAgICAgICAgICAgICMgcmVkaXJlY3QgdG8gdGVtcGxhdGUgb3ZlcnZpZXcKICAgICAgICAgICAgICAgICRSZWRpcmVjdFVSTCA9ICdBY3Rpb249QWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdXBkYXRlIHRoZSB1c2VyIHByZWZlcmVuY2Ugd2l0aCB0aGUgbmV3IHRlbXBsYXRlIGlkCiAgICAgICAgICAgIGVsc2lmICggJE9iamVjdDJUZW1wbGF0ZXsgJ1dvcmtPcmRlcklEJyAuICRXb3JrT3JkZXJJRCB9ICkgewogICAgICAgICAgICAgICAgJE9iamVjdDJUZW1wbGF0ZXsgJ1dvcmtPcmRlcklEJyAuICRXb3JrT3JkZXJJRCB9ID0gJFRlbXBsYXRlSUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY29udmVydCB0byBzdHJpbmcKICAgICAgICAgICAgJFRlbXBsYXRlRWRpdFByZWZlcmVuY2VTdHJpbmcgPSAnJzsKICAgICAgICAgICAgZm9yIG15ICRPYmplY3QgKCBzb3J0IGtleXMgJU9iamVjdDJUZW1wbGF0ZSApIHsKICAgICAgICAgICAgICAgICRUZW1wbGF0ZUVkaXRQcmVmZXJlbmNlU3RyaW5nIC49ICRPYmplY3QgLiAnOjonIC4gJE9iamVjdDJUZW1wbGF0ZXskT2JqZWN0fSAuICc7JzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzYXZlIHByZWZlcmVuY2VzCiAgICAgICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIEtleSAgICA9PiAnVXNlcklUU01DaGFuZ2VNYW5hZ2VtZW50VGVtcGxhdGVFZGl0JywKICAgICAgICAgICAgICAgIFZhbHVlICA9PiAkVGVtcGxhdGVFZGl0UHJlZmVyZW5jZVN0cmluZywKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGxvYWQgbmV3IFVSTCBpbiBwYXJlbnQgd2luZG93IGFuZCBjbG9zZSBwb3B1cAogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UG9wdXBDbG9zZSgKICAgICAgICAgICAgICAgIFVSTCA9PiAkUmVkaXJlY3RVUkwsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGNoYW5nZSB0aGF0IHRoZSB3b3Jrb3JkZXIgYmVsb25ncyB0bwogICAgbXkgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkV29ya09yZGVyLT57Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBubyBjaGFuZ2UgZm91bmQKICAgIGlmICggISRDaGFuZ2UgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDb3VsZCBub3QgZmluZCBDaGFuZ2UgZm9yIFdvcmtPcmRlciAlcyEnLCAkV29ya09yZGVySUQgKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFR5cGUgID0+ICdTbWFsbCcsCiAgICAgICAgVGl0bGUgPT4gVHJhbnNsYXRhYmxlKCdUZW1wbGF0ZScpLAogICAgKTsKCiAgICAjIGdldCB2YWxpZCBvYmplY3QKICAgIG15ICRWYWxpZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpOwoKICAgICMgYnVpbGQgdmFsaWQgc2VsZWN0aW9uCiAgICBteSAkVmFsaWRTZWxlY3Rpb25TdHJpbmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJFZhbGlkT2JqZWN0LT5WYWxpZExpc3QoKSwKICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgPT4gJ1ZhbGlkSUQnLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJEdldFBhcmFte1ZhbGlkSUR9IHx8ICggJFZhbGlkT2JqZWN0LT5WYWxpZElEc0dldCgpIClbMF0sCiAgICAgICAgU29ydCAgICAgICA9PiAnTnVtZXJpY0tleScsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBidWlsZCBzZWxlY3Rpb24gc3RyaW5nIGZvciBzdGF0ZSByZXNldAogICAgbXkgJFN0YXRlUmVzZXRTZWxlY3Rpb25TdHJpbmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ05vJyksCiAgICAgICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCdZZXMnKSwKICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgPT4gJ1N0YXRlUmVzZXQnLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJEdldFBhcmFte1N0YXRlUmVzZXR9IC8vIDEsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBzaG93IGRyb3Bkb3ducyBvbmx5IGlmIHRoaXMgd29ya29yZGVyIHdhcyBjcmVhdGVkIGZyb20gYSB0ZW1wbGF0ZQogICAgaWYgKCRUZW1wbGF0ZUlEKSB7CgogICAgICAgICMgYnVpbGQgc2VsZWN0aW9uIHN0cmluZyBmb3IgdGVtcGxhdGUgb3ZlcndyaXRlLCBkZWZhdWx0IGlzIHllcwogICAgICAgIG15ICRPdmVyd3JpdGVUZW1wbGF0ZVNlbGVjdGlvblN0cmluZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdObycpLAogICAgICAgICAgICAgICAgMSA9PiBUcmFuc2xhdGFibGUoJ1llcycpLAogICAgICAgICAgICB9LAogICAgICAgICAgICBOYW1lICAgICAgID0+ICdPdmVyd3JpdGVUZW1wbGF0ZScsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJEdldFBhcmFte092ZXJ3cml0ZVRlbXBsYXRlfSAvLyAxLAogICAgICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICk7CgogICAgICAgICMgc2hvdyBvdmVyd3JpdGUgb3JpZ2luYWwgdGVtcGxhdGUgZHJvcGRvd24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcndyaXRlVGVtcGxhdGUnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgIE92ZXJ3cml0ZVRlbXBsYXRlU2VsZWN0aW9uU3RyaW5nID0+ICRPdmVyd3JpdGVUZW1wbGF0ZVNlbGVjdGlvblN0cmluZywKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGJ1aWxkIHNlbGVjdGlvbiBzdHJpbmcgZm9yIGRlbGV0ZSB3b3Jrb3JkZXIKICAgICAgICBteSAkRGVsZXRlV29ya09yZGVyU2VsZWN0aW9uU3RyaW5nID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ05vJyksCiAgICAgICAgICAgICAgICAxID0+IFRyYW5zbGF0YWJsZSgnWWVzJyksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJ0RlbGV0ZVdvcmtPcmRlcicsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJEdldFBhcmFte0RlbGV0ZVdvcmtPcmRlcn0gLy8gMSwKICAgICAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwoKICAgICAgICAjIHNob3cgZGVsZXRlIFdvcmtPcmRlciBkcm9wZG93bgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdEZWxldGVXb3JrT3JkZXInLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgIERlbGV0ZVdvcmtPcmRlclNlbGVjdGlvblN0cmluZyA9PiAkRGVsZXRlV29ya09yZGVyU2VsZWN0aW9uU3RyaW5nLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzdGFydCB0ZW1wbGF0ZSBvdXRwdXQKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJXskQ2hhbmdlfSwKICAgICAgICAgICAgJXskV29ya09yZGVyfSwKICAgICAgICAgICAgVmFsaWRTZWxlY3Rpb25TdHJpbmcgICAgICA9PiAkVmFsaWRTZWxlY3Rpb25TdHJpbmcsCiAgICAgICAgICAgIFN0YXRlUmVzZXRTZWxlY3Rpb25TdHJpbmcgPT4gJFN0YXRlUmVzZXRTZWxlY3Rpb25TdHJpbmcsCiAgICAgICAgICAgICVFcnJvciwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCBmb290ZXIKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCBUeXBlID0+ICdTbWFsbCcgKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentITSMWorkOrderZoom.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50SVRTTVdvcmtPcmRlclpvb207Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGdldCBuZWVkZWQgV29ya09yZGVySUQKICAgIG15ICRXb3JrT3JkZXJJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdXb3JrT3JkZXJJRCcgKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFdvcmtPcmRlcklEICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05vIFdvcmtPcmRlcklEIGlzIGdpdmVuIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoIklUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJFdvcmtPcmRlck9iamVjdC0+UGVybWlzc2lvbigKICAgICAgICBUeXBlICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBBY3Rpb24gICAgICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnWW91IG5lZWQgJXMgcGVybWlzc2lvbnMhJywgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHdvcmtvcmRlciBkYXRhCiAgICBteSAkV29ya09yZGVyID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZXJyb3IKICAgIGlmICggISRXb3JrT3JkZXIgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdXb3JrT3JkZXIgIiVzIiBub3QgZm91bmQgaW4gZGF0YWJhc2UhJywgJFdvcmtPcmRlcklEICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgY2xlYW4gdGhlIHJpY2ggdGV4dCBmaWVsZHMgZnJvbSBhY3RpdmUgSFRNTCBjb250ZW50CiAgICBBVFRSSUJVVEU6CiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAocXcoSW5zdHJ1Y3Rpb24gUmVwb3J0KSkgewoKICAgICAgICBuZXh0IEFUVFJJQlVURSBpZiAhJFdvcmtPcmRlci0+eyRBdHRyaWJ1dGV9OwoKICAgICAgICAjIHJlbW92ZSBhY3RpdmUgaHRtbCBjb250ZW50IChzY3JpcHRzLCBhcHBsZXRzLCBldGMuLi4pCiAgICAgICAgbXkgJVNhZmVDb250ZW50ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5TYWZldHkoCiAgICAgICAgICAgIFN0cmluZyAgICAgICA9PiAkV29ya09yZGVyLT57JEF0dHJpYnV0ZX0sCiAgICAgICAgICAgIE5vQXBwbGV0ICAgICA9PiAxLAogICAgICAgICAgICBOb09iamVjdCAgICAgPT4gMSwKICAgICAgICAgICAgTm9FbWJlZCAgICAgID0+IDEsCiAgICAgICAgICAgIE5vSW50U3JjTG9hZCA9PiAwLAogICAgICAgICAgICBOb0V4dFNyY0xvYWQgPT4gMCwKICAgICAgICAgICAgTm9KYXZhU2NyaXB0ID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyB0YWtlIHRoZSBzYWZlIGNvbnRlbnQgaWYgbmVjY2Vzc2FyeQogICAgICAgIGlmICggJFNhZmVDb250ZW50e1JlcGxhY2V9ICkgewogICAgICAgICAgICAkV29ya09yZGVyLT57JEF0dHJpYnV0ZX0gPSAkU2FmZUNvbnRlbnR7U3RyaW5nfTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgbG9nIG9iamVjdAogICAgbXkgJExvZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKCiAgICAjIGhhbmRsZSBIVE1MVmlldwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0hUTUxWaWV3JyApIHsKCiAgICAgICAgIyBnZXQgcGFyYW0KICAgICAgICBteSAkRmllbGQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAiRmllbGQiICk7CgogICAgICAgICMgbmVlZGVkIHBhcmFtCiAgICAgICAgaWYgKCAhJEZpZWxkICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZGVkIFBhcmFtOiAkRmllbGQhIiwKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgZXJyb3IgY2hlY2tpbmcKICAgICAgICBpZiAoICRGaWVsZCBuZSAnSW5zdHJ1Y3Rpb24nICYmICRGaWVsZCBuZSAnUmVwb3J0JyApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVua25vd24gZmllbGQ6ICRGaWVsZCEgRmllbGQgbXVzdCBiZSBlaXRoZXIgSW5zdHJ1Y3Rpb24gb3IgUmVwb3J0ISIsCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGdldCB0aGUgRmllbGQgY29udGVudAogICAgICAgIG15ICRGaWVsZENvbnRlbnQgPSAkV29ya09yZGVyLT57JEZpZWxkfTsKCiAgICAgICAgIyBidWlsZCBiYXNlIFVSTCBmb3IgaW4tbGluZSBpbWFnZXMgaWYgbm8gc2Vzc2lvbiBjb29raWVzIGFyZSB1c2VkCiAgICAgICAgbXkgJFNlc3Npb25JRCA9ICcnOwogICAgICAgIGlmICggJFNlbGYtPntTZXNzaW9uSUR9ICYmICEkU2VsZi0+e1Nlc3Npb25JRENvb2tpZX0gKSB7CiAgICAgICAgICAgICRTZXNzaW9uSUQgPSAnOycgLiAkU2VsZi0+e1Nlc3Npb25OYW1lfSAuICc9JyAuICRTZWxmLT57U2Vzc2lvbklEfTsKICAgICAgICAgICAgJEZpZWxkQ29udGVudCA9fiBzewogICAgICAgICAgICAgICAgKEFjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1N1YmFjdGlvbj1Eb3dubG9hZEF0dGFjaG1lbnQ7RmlsZW5hbWU9Lis7V29ya09yZGVySUQ9XGQrKQogICAgICAgICAgICB9eyQxJFNlc3Npb25JRH1nbXN4OwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgSFRNTCB1dGlscyBvYmplY3QKICAgICAgICBteSAkSFRNTFV0aWxzT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpOwoKICAgICAgICAjIGRldGVjdCBhbGwgcGxhaW4gdGV4dCBsaW5rcyBhbmQgcHV0IHRoZW0gaW50byBhbiBIVE1MIDxhPiB0YWcKICAgICAgICAkRmllbGRDb250ZW50ID0gJEhUTUxVdGlsc09iamVjdC0+TGlua1F1b3RlKAogICAgICAgICAgICBTdHJpbmcgPT4gJEZpZWxkQ29udGVudCwKICAgICAgICApOwoKICAgICAgICAjIHNldCB0YXJnZXQ9Il9ibGFuayIgYXR0cmlidXRlIHRvIGFsbCBIVE1MIDxhPiB0YWdzCiAgICAgICAgIyB0aGUgTGlua1F1b3RlIGZ1bmN0aW9uIG5lZWRzIHRvIGJlIGNhbGxlZCBhZ2FpbgogICAgICAgICRGaWVsZENvbnRlbnQgPSAkSFRNTFV0aWxzT2JqZWN0LT5MaW5rUXVvdGUoCiAgICAgICAgICAgIFN0cmluZyAgICA9PiAkRmllbGRDb250ZW50LAogICAgICAgICAgICBUYXJnZXRBZGQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCBuZWVkZWQgSFRNTCBoZWFkZXJzCiAgICAgICAgJEZpZWxkQ29udGVudCA9ICRIVE1MVXRpbHNPYmplY3QtPkRvY3VtZW50Q29tcGxldGUoCiAgICAgICAgICAgIFN0cmluZyAgPT4gJEZpZWxkQ29udGVudCwKICAgICAgICAgICAgQ2hhcnNldCA9PiAndXRmLTgnLAogICAgICAgICk7CgogICAgICAgICMgcmV0dXJuIGNvbXBsZXRlIEhUTUwgYXMgYW4gYXR0YWNobWVudAogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRGaWVsZENvbnRlbnQsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGhhbmRsZSBEb3dubG9hZEF0dGFjaG1lbnQKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdEb3dubG9hZEF0dGFjaG1lbnQnICkgewoKICAgICAgICAjIGdldCBkYXRhIGZvciBhdHRhY2htZW50CiAgICAgICAgbXkgJEZpbGVuYW1lICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0ZpbGVuYW1lJyApOwogICAgICAgIG15ICRUeXBlICAgICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUeXBlJyApOwogICAgICAgIG15ICRBdHRhY2htZW50RGF0YSA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckF0dGFjaG1lbnRHZXQoCiAgICAgICAgICAgIFdvcmtPcmRlcklEICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgRmlsZW5hbWUgICAgICAgPT4gJEZpbGVuYW1lLAogICAgICAgICAgICBBdHRhY2htZW50VHlwZSA9PiAkVHlwZSwKICAgICAgICApOwoKICAgICAgICAjIHJldHVybiBlcnJvciBpZiBmaWxlIGRvZXMgbm90IGV4aXN0CiAgICAgICAgaWYgKCAhJEF0dGFjaG1lbnREYXRhICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gc3VjaCBhdHRhY2htZW50ICgkRmlsZW5hbWUpISBNYXkgYmUgYW4gYXR0YWNrISEhIiwKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgICV7JEF0dGFjaG1lbnREYXRhfSwKICAgICAgICAgICAgVHlwZSA9PiAnYXR0YWNobWVudCcsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIExheW91dE9iamVjdCBoYXMgVHJhbnNsYXRpb25PYmplY3QKICAgIGlmICggJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fSApIHsKCiAgICAgICAgIyB0cmFuc2xhdGUgcGFyYW1ldGVyCiAgICAgICAgUEFSQU06CiAgICAgICAgZm9yIG15ICRQYXJhbSAocXcoV29ya09yZGVyVHlwZSkpIHsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHBhcmFtZXRlcgogICAgICAgICAgICBuZXh0IFBBUkFNIGlmICEkV29ya09yZGVyLT57JFBhcmFtfTsKCiAgICAgICAgICAgICMgdHJhbnNsYXRlCiAgICAgICAgICAgICRXb3JrT3JkZXItPnskUGFyYW19ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgJFdvcmtPcmRlci0+eyRQYXJhbX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IHNlc3Npb24gb2JqZWN0CiAgICBteSAkU2Vzc2lvbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpOwoKICAgICMgU3RvcmUgTGFzdFdvcmtPcmRlclZpZXcsIGZvciBiYWNrbGlua3MgZnJvbSB3b3Jrb3JkZXIgc3BlY2lmaWMgcGFnZXMKICAgICRTZXNzaW9uT2JqZWN0LT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RXb3JrT3JkZXJWaWV3JywKICAgICAgICBWYWx1ZSAgICAgPT4gJFNlbGYtPntSZXF1ZXN0ZWRVUkx9LAogICAgKTsKCiAgICAjIFN0b3JlIExhc3RTY3JlZW5PdmVydmlldywgZm9yIGJhY2tsaW5rcyBmcm9tIEFnZW50TGlua09iamVjdAogICAgJFNlc3Npb25PYmplY3QtPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlbk92ZXJWaWV3JywKICAgICAgICBWYWx1ZSAgICAgPT4gJFNlbGYtPntSZXF1ZXN0ZWRVUkx9LAogICAgKTsKCiAgICAjIFN0b3JlIExhc3RTY3JlZW5PdmVydmlldywgZm9yIGJhY2tsaW5rcyBmcm9tICdBZ2VudExpbmtPYmplY3QnCiAgICAkU2Vzc2lvbk9iamVjdC0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuVmlldycsCiAgICAgICAgVmFsdWUgICAgID0+ICRTZWxmLT57UmVxdWVzdGVkVVJMfSwKICAgICk7CgogICAgIyBnZXQgdGhlIGNoYW5nZSB0aGF0IHdvcmtvcmRlciBiZWxvbmdzIHRvCiAgICBteSAkQ2hhbmdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRXb3JrT3JkZXItPntDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIHJ1biB3b3Jrb3JkZXIgbWVudSBtb2R1bGVzCiAgICBpZiAoIHJlZiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjpNZW51TW9kdWxlJykgZXEgJ0hBU0gnICkgewoKICAgICAgICAjIGdldCBpdGVtcyBmb3IgbWVudQogICAgICAgIG15ICVNZW51cyAgID0gJXsgJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6TWVudU1vZHVsZScpIH07CiAgICAgICAgbXkgJENvdW50ZXIgPSAwOwoKICAgICAgICBmb3IgbXkgJE1lbnUgKCBzb3J0IGtleXMgJU1lbnVzICkgewoKICAgICAgICAgICAgIyBsb2FkIG1vZHVsZQogICAgICAgICAgICBpZiAoICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPlJlcXVpcmUoICRNZW51c3skTWVudX0tPntNb2R1bGV9ICkgKSB7CiAgICAgICAgICAgICAgICBteSAkT2JqZWN0ID0gJE1lbnVzeyRNZW51fS0+e01vZHVsZX0tPm5ldygKICAgICAgICAgICAgICAgICAgICAleyRTZWxmfSwKICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVyLT57V29ya09yZGVySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNldCBjbGFzc2VzCiAgICAgICAgICAgICAgICBpZiAoICRNZW51c3skTWVudX0tPntUYXJnZXR9ICkgewoKICAgICAgICAgICAgICAgICAgICBpZiAoICRNZW51c3skTWVudX0tPntUYXJnZXR9IGVxICdQb3BVcCcgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRNZW51c3skTWVudX0tPntNZW51Q2xhc3N9ID0gJ0FzUG9wdXAnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRNZW51c3skTWVudX0tPntUYXJnZXR9IGVxICdCYWNrJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJE1lbnVzeyRNZW51fS0+e01lbnVDbGFzc30gPSAnSGlzdG9yeUJhY2snOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHJ1biBtb2R1bGUKICAgICAgICAgICAgICAgICRDb3VudGVyID0gJE9iamVjdC0+UnVuKAogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXIgICAgPT4gJFdvcmtPcmRlciwKICAgICAgICAgICAgICAgICAgICBDb3VudGVyICAgICAgPT4gJENvdW50ZXIsCiAgICAgICAgICAgICAgICAgICAgQ29uZmlnICAgICAgID0+ICRNZW51c3skTWVudX0sCiAgICAgICAgICAgICAgICAgICAgTWVudUlEICAgICAgID0+ICRNZW51LAogICAgICAgICAgICAgICAgICAgIENoYW5nZU51bWJlciA9PiAkQ2hhbmdlLT57Q2hhbmdlTnVtYmVyfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgb3V0cHV0IGhlYWRlcgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiAkV29ya09yZGVyLT57V29ya09yZGVyVGl0bGV9LAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICMgZ2V0IHVzZXIgb2JqZWN0CiAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgIyBnZXQgY3JlYXRlIHVzZXIgZGF0YQogICAgbXkgJUNyZWF0ZVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgVXNlcklEID0+ICRXb3JrT3JkZXItPntDcmVhdGVCeX0sCiAgICAgICAgQ2FjaGVkID0+IDEsCiAgICApOwoKICAgICMgZ2V0IENyZWF0ZUJ5IHVzZXIgaW5mb3JtYXRpb24KICAgIGZvciBteSAkUG9zdGZpeCAocXcoVXNlckZ1bGxuYW1lKSkgewogICAgICAgICRXb3JrT3JkZXItPnsgJ0NyZWF0ZScgLiAkUG9zdGZpeCB9ID0gJENyZWF0ZVVzZXJ7JFBvc3RmaXh9OwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSB1c2VyIGRhdGEKICAgIG15ICVDaGFuZ2VVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgIFVzZXJJRCA9PiAkV29ya09yZGVyLT57Q2hhbmdlQnl9LAogICAgICAgIENhY2hlZCA9PiAxLAogICAgKTsKCiAgICAjIGdldCBDaGFuZ2VCeSB1c2VyIGluZm9ybWF0aW9uCiAgICBmb3IgbXkgJFBvc3RmaXggKHF3KFVzZXJGdWxsbmFtZSkpIHsKICAgICAgICAkV29ya09yZGVyLT57ICdDaGFuZ2UnIC4gJFBvc3RmaXggfSA9ICRDaGFuZ2VVc2VyeyRQb3N0Zml4fTsKICAgIH0KCiAgICAjIG91dHB1dCBtZXRhIGJsb2NrCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdNZXRhJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJXskV29ya09yZGVyfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIHNob3cgdmFsdWVzIG9yIGRhc2ggKCctJykKICAgIGZvciBteSAkQmxvY2tOYW1lICgKICAgICAgICBxdyhXb3JrT3JkZXJUeXBlIFBsYW5uZWRTdGFydFRpbWUgUGxhbm5lZEVuZFRpbWUgQWN0dWFsU3RhcnRUaW1lIEFjdHVhbEVuZFRpbWUpCiAgICAgICAgKQogICAgewogICAgICAgIGlmICggJFdvcmtPcmRlci0+eyRCbG9ja05hbWV9ICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJEJsb2NrTmFtZSwKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICRCbG9ja05hbWUgPT4gJFdvcmtPcmRlci0+eyRCbG9ja05hbWV9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRW1wdHknIC4gJEJsb2NrTmFtZSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzaG93IGNvbmZpZ3VyYWJsZSBibG9ja3MKICAgIEJMT0NLTkFNRToKICAgIGZvciBteSAkQmxvY2tOYW1lIChxdyhQbGFubmVkRWZmb3J0IEFjY291bnRlZFRpbWUpKSB7CgogICAgICAgICMgc2tpcCBpZiBibG9jayBpcyBzd2l0Y2hlZCBvZmYgaW4gU3lzQ29uZmlnCiAgICAgICAgbmV4dCBCTE9DS05BTUUgaWYgISRTZWxmLT57Q29uZmlnfS0+eyRCbG9ja05hbWV9OwoKICAgICAgICAjIHNob3cgYmxvY2sKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU2hvdycgLiAkQmxvY2tOYW1lLAogICAgICAgICk7CgogICAgICAgICMgc2hvdyB2YWx1ZSBvciBkYXNoCiAgICAgICAgaWYgKCAkV29ya09yZGVyLT57JEJsb2NrTmFtZX0gKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAkQmxvY2tOYW1lLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJEJsb2NrTmFtZSA9PiAkV29ya09yZGVyLT57JEJsb2NrTmFtZX0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdFbXB0eScgLiAkQmxvY2tOYW1lLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBteSAkRHluYW1pY0ZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH0gfHwge30sCiAgICApOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgYmFja2VuZCBvYmplY3QKICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMKICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgIG15ICRWYWx1ZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZUdldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkV29ya09yZGVySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgcHJpbnQgc3RyaW5nIGZvciB0aGlzIGR5bmFtaWMgZmllbGQKICAgICAgICBteSAkVmFsdWVTdHJnID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkRpc3BsYXlWYWx1ZVJlbmRlcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkVmFsdWUsCiAgICAgICAgICAgIFZhbHVlTWF4Q2hhcnMgICAgICA9PiAxMDAsCiAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICk7CgogICAgICAgICMgZm9yIGVtcHR5IHZhbHVlcwogICAgICAgIGlmICggISRWYWx1ZVN0cmctPntWYWx1ZX0gKSB7CiAgICAgICAgICAgICRWYWx1ZVN0cmctPntWYWx1ZX0gPSAnLSc7CiAgICAgICAgfQoKICAgICAgICBteSAkTGFiZWwgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9OwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBMYWJlbCA9PiAkTGFiZWwsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkVmFsdWVTdHJnLT57TGlua30gKSB7CgogICAgICAgICAgICAjIG91dHB1dCBsaW5rIGVsZW1lbnQKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdEeW5hbWljRmllbGRMaW5rJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICV7JFdvcmtPcmRlcn0sCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgICAgICAgID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAgICAgICAgICAgICAgTGluayAgICAgICAgICAgICAgICAgICAgICAgID0+ICRWYWx1ZVN0cmctPntMaW5rfSwKICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gPT4gJFZhbHVlU3RyZy0+e1RpdGxlfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIG91dHB1dCBub24gbGluayBlbGVtZW50CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRHluYW1pY0ZpZWxkUGxhaW4nLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlU3RyZy0+e1ZhbHVlfSwKICAgICAgICAgICAgICAgICAgICBUaXRsZSA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZXhhbXBsZSBvZiBkeW5hbWljIGZpZWxkcyBvcmRlciBjdXN0b21pemF0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZCcgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTGFiZWwgPT4gJExhYmVsLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlU3RyZy0+e1ZhbHVlfSwKICAgICAgICAgICAgICAgIFRpdGxlID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBjaGFuZ2UgYnVpbGRlciB1c2VyCiAgICBteSAlQ2hhbmdlQnVpbGRlclVzZXI7CiAgICBpZiAoICRDaGFuZ2UtPntDaGFuZ2VCdWlsZGVySUR9ICkgewogICAgICAgICVDaGFuZ2VCdWlsZGVyVXNlciA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRDaGFuZ2UtPntDaGFuZ2VCdWlsZGVySUR9LAogICAgICAgICAgICBDYWNoZWQgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBidWlsZGVyIGluZm9ybWF0aW9uCiAgICBmb3IgbXkgJFBvc3RmaXggKHF3KFVzZXJGdWxsbmFtZSkpIHsKICAgICAgICAkV29ya09yZGVyLT57ICdDaGFuZ2VCdWlsZGVyJyAuICRQb3N0Zml4IH0gPSAkQ2hhbmdlQnVpbGRlclVzZXJ7JFBvc3RmaXh9IHx8ICcnOwogICAgfQoKICAgICMgb3V0cHV0IGNoYW5nZSBidWlsZGVyIGJsb2NrCiAgICBpZiAoJUNoYW5nZUJ1aWxkZXJVc2VyKSB7CgogICAgICAgICMgc2hvdyBuYW1lIGFuZCBtYWlsIGFkZHJlc3MgaWYgdXNlciBleGlzdHMKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQ2hhbmdlQnVpbGRlcicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJXskV29ya09yZGVyfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgc2hvdyBkYXNoIGlmIG5vIGNoYW5nZSBidWlsZGVyIGV4aXN0cwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdFbXB0eUNoYW5nZUJ1aWxkZXInLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgd29ya29yZGVyIGFnZW50IHVzZXIKICAgIGlmICggJFdvcmtPcmRlci0+e1dvcmtPcmRlckFnZW50SUR9ICkgewogICAgICAgIG15ICVXb3JrT3JkZXJBZ2VudFVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkV29ya09yZGVyLT57V29ya09yZGVyQWdlbnRJRH0sCiAgICAgICAgICAgIENhY2hlZCA9PiAxLAogICAgICAgICk7CgogICAgICAgIGlmICglV29ya09yZGVyQWdlbnRVc2VyKSB7CgogICAgICAgICAgICAjIGdldCBXb3JrT3JkZXJBZ2VudCBpbmZvcm1hdGlvbgogICAgICAgICAgICBmb3IgbXkgJFBvc3RmaXggKHF3KFVzZXJGdWxsbmFtZSkpIHsKICAgICAgICAgICAgICAgICRXb3JrT3JkZXItPnsgJ1dvcmtPcmRlckFnZW50JyAuICRQb3N0Zml4IH0gPSAkV29ya09yZGVyQWdlbnRVc2VyeyRQb3N0Zml4fSB8fCAnJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBvdXRwdXQgV29ya09yZGVyQWdlbnQgaW5mb3JtYXRpb24KICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdXb3JrT3JkZXJBZ2VudCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAleyRXb3JrT3JkZXJ9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBvdXRwdXQgaWYgbm8gV29ya09yZGVyQWdlbnQgaXMgZm91bmQKICAgIGlmICggISRXb3JrT3JkZXItPntXb3JrT3JkZXJBZ2VudFVzZXJGdWxsbmFtZX0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0VtcHR5V29ya09yZGVyQWdlbnQnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgYWdlbnRzIHByZWZlcmVuY2VzCiAgICBteSAlVXNlclByZWZlcmVuY2VzID0gJFVzZXJPYmplY3QtPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgcmVtZW1iZXIgaWYgdXNlciBhbHJlYWR5IGNsb3NlZCBtZXNzYWdlIGFib3V0IGxpbmtzIGluIGlmcmFtZXMKICAgIGlmICggIWRlZmluZWQgJFNlbGYtPntEb05vdFNob3dCcm93c2VyTGlua01lc3NhZ2V9ICkgewogICAgICAgIGlmICggJFVzZXJQcmVmZXJlbmNlc3tVc2VyQWdlbnREb05vdFNob3dCcm93c2VyTGlua01lc3NhZ2V9ICkgewogICAgICAgICAgICAkU2VsZi0+e0RvTm90U2hvd0Jyb3dzZXJMaW5rTWVzc2FnZX0gPSAxOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlbGYtPntEb05vdFNob3dCcm93c2VyTGlua01lc3NhZ2V9ID0gMDsKICAgICAgICB9CiAgICB9CgogICAgIyBzaG93IG1lc3NhZ2UgYWJvdXQgbGlua3MgaW4gaWZyYW1lcywgaWYgdXNlciBkaWRuJ3QgY2xvc2UgaXQgYWxyZWFkeQogICAgaWYgKCAhJFNlbGYtPntEb05vdFNob3dCcm93c2VyTGlua01lc3NhZ2V9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdCcm93c2VyTGlua01lc3NhZ2UnLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgc2VjdXJpdHkgcmVzdHJpY3Rpb24gc2V0dGluZyBmb3IgaWZyYW1lcwogICAgIyBzZWN1cml0eT0icmVzdHJpY3RlZCIgbWF5IGJyZWFrIFNTTyAtIGRpc2FibGUgdGhpcyBmZWF0dXJlIGlmIHJlcXVlc3RlZAogICAgbXkgJE1TU2VjdXJpdHlSZXN0cmljdGVkOwogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Rpc2FibGVNU0lGcmFtZVNlY3VyaXR5UmVzdHJpY3RlZCcpICkgewogICAgICAgICRQYXJhbXtNU1NlY3VyaXR5UmVzdHJpY3RlZH0gPSAnJzsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtNU1NlY3VyaXR5UmVzdHJpY3RlZH0gPSAnc2VjdXJpdHk9InJlc3RyaWN0ZWQiJzsKICAgIH0KCiAgICAjIHNob3cgdGhlIEhUTUwgZmllbGQgYmxvY2tzIGFzIGlmcmFtZXMKICAgIGZvciBteSAkRmllbGQgKHF3KEluc3RydWN0aW9uIFJlcG9ydCkpIHsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Db250ZW50JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCAgICAgICAgICA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICBGaWVsZCAgICAgICAgICAgICAgICA9PiAkRmllbGQsCiAgICAgICAgICAgICAgICBNU1NlY3VyaXR5UmVzdHJpY3RlZCA9PiAkTVNTZWN1cml0eVJlc3RyaWN0ZWQsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBsaW5rZWQgb2JqZWN0cwogICAgbXkgJExpbmtMaXN0V2l0aERhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcpLT5MaW5rTGlzdFdpdGhEYXRhKAogICAgICAgIE9iamVjdCA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgS2V5ICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICBTdGF0ZSAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBsaW5rIHRhYmxlIHZpZXcgbW9kZQogICAgbXkgJExpbmtUYWJsZVZpZXdNb2RlID0gJENvbmZpZ09iamVjdC0+R2V0KCdMaW5rT2JqZWN0OjpWaWV3TW9kZScpOwoKICAgICMgY3JlYXRlIHRoZSBsaW5rIHRhYmxlCiAgICBteSAkTGlua1RhYmxlU3RyZyA9ICRMYXlvdXRPYmplY3QtPkxpbmtPYmplY3RUYWJsZUNyZWF0ZSgKICAgICAgICBMaW5rTGlzdFdpdGhEYXRhID0+ICRMaW5rTGlzdFdpdGhEYXRhLAogICAgICAgIFZpZXdNb2RlICAgICAgICAgPT4gJExpbmtUYWJsZVZpZXdNb2RlLAogICAgICAgIE9iamVjdCAgICAgICAgICAgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgIEtleSAgICAgICAgICAgICAgPT4gJFdvcmtPcmRlcklELAogICAgKTsKCiAgICAjIG91dHB1dCB0aGUgbGluayB0YWJsZQogICAgaWYgKCRMaW5rVGFibGVTdHJnKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0xpbmtUYWJsZScgLiAkTGlua1RhYmxlVmlld01vZGUsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTGlua1RhYmxlU3RyZyA9PiAkTGlua1RhYmxlU3RyZywKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGF0dGFjaG1lbnRzCiAgICBteSBAQXR0YWNobWVudHMgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50TGlzdCgKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICApOwoKICAgICMgc2hvdyBhdHRhY2htZW50cwogICAgQVRUQUNITUVOVDoKICAgIGZvciBteSAkRmlsZW5hbWUgKEBBdHRhY2htZW50cykgewoKICAgICAgICAjIGdldCBpbmZvIGFib3V0IGZpbGUKICAgICAgICBteSAkQXR0YWNobWVudERhdGEgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50R2V0KAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgIEZpbGVuYW1lICAgID0+ICRGaWxlbmFtZSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGZvciBhdHRhY2htZW50IGluZm9ybWF0aW9uCiAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICEkQXR0YWNobWVudERhdGE7CgogICAgICAgICMgZG8gbm90IHNob3cgaW5saW5lIGF0dGFjaG1lbnRzIGluIGF0dGFjaG1lbnRzIGxpc3QgKHRoZXkgaGF2ZSBhIGNvbnRlbnQgaWQpCiAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICRBdHRhY2htZW50RGF0YS0+e1ByZWZlcmVuY2VzfS0+e0NvbnRlbnRJRH07CgogICAgICAgICMgc2hvdyBibG9jawogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBdHRhY2htZW50Um93JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAleyRXb3JrT3JkZXJ9LAogICAgICAgICAgICAgICAgJXskQXR0YWNobWVudERhdGF9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgcmVwb3J0IGF0dGFjaG1lbnRzCiAgICBteSBAUmVwb3J0QXR0YWNobWVudHMgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJSZXBvcnRBdHRhY2htZW50TGlzdCgKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICApOwoKICAgICMgc2hvdyByZXBvcnQgYXR0YWNobWVudHMKICAgIEFUVEFDSE1FTlQ6CiAgICBmb3IgbXkgJEZpbGVuYW1lIChAUmVwb3J0QXR0YWNobWVudHMpIHsKCiAgICAgICAgIyBnZXQgaW5mbyBhYm91dCBmaWxlCiAgICAgICAgbXkgJEF0dGFjaG1lbnREYXRhID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyQXR0YWNobWVudEdldCgKICAgICAgICAgICAgV29ya09yZGVySUQgICAgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBGaWxlbmFtZSAgICAgICA9PiAkRmlsZW5hbWUsCiAgICAgICAgICAgIEF0dGFjaG1lbnRUeXBlID0+ICdXb3JrT3JkZXJSZXBvcnQnLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgZm9yIGF0dGFjaG1lbnQgaW5mb3JtYXRpb24KICAgICAgICBuZXh0IEFUVEFDSE1FTlQgaWYgISRBdHRhY2htZW50RGF0YTsKCiAgICAgICAgIyBkbyBub3Qgc2hvdyBpbmxpbmUgYXR0YWNobWVudHMgaW4gYXR0YWNobWVudHMgbGlzdCAodGhleSBoYXZlIGEgY29udGVudCBpZCkKICAgICAgICBuZXh0IEFUVEFDSE1FTlQgaWYgJEF0dGFjaG1lbnREYXRhLT57UHJlZmVyZW5jZXN9LT57Q29udGVudElEfTsKCiAgICAgICAgIyBzaG93IGJsb2NrCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1JlcG9ydEF0dGFjaG1lbnRSb3cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICV7JFdvcmtPcmRlcn0sCiAgICAgICAgICAgICAgICAleyRBdHRhY2htZW50RGF0YX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBmb3IgbXkgJEhlaWdodFNldHRpbmcgKHF3KERlZmF1bHQgTWF4KSkgewogICAgICAgIG15ICRGdWxsU2V0dGluZyA9ICdJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRIVE1MRmllbGRIZWlnaHQnIC4gJEhlaWdodFNldHRpbmc7CiAgICAgICAgbXkgJFZhbHVlICAgICAgID0gaW50KCAkQ29uZmlnT2JqZWN0LT5HZXQoJEZ1bGxTZXR0aW5nKSB8fCAwICk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgS2V5ICAgPT4gJEZ1bGxTZXR0aW5nLAogICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWUsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHN0YXJ0IHRlbXBsYXRlIG91dHB1dAogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudElUU01Xb3JrT3JkZXJab29tJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAleyRDaGFuZ2V9LAogICAgICAgICAgICAleyRXb3JrT3JkZXJ9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgYWRkIGZvb3RlcgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/CustomerITSMChangeSchedule.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkN1c3RvbWVySVRTTUNoYW5nZVNjaGVkdWxlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICBpZiAoCiAgICAgICAgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpLT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgICAgIEtleSAgICAgICA9PiAnTGFzdENoYW5nZVZpZXcnLAogICAgICAgICAgICBWYWx1ZSAgICAgPT4gJFNlbGYtPntSZXF1ZXN0ZWRVUkx9LAogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVySGVhZGVyKAogICAgICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ0Vycm9yJyksCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRXJyb3IoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyBjaGVjayBuZWVkZWQgQ3VzdG9tZXJJRAogICAgaWYgKCAhJFNlbGYtPntVc2VyQ3VzdG9tZXJJRH0gKSB7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVySGVhZGVyKAogICAgICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ0Vycm9yJyksCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIEN1c3RvbWVySUQhJyksCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgc29ydGluZyBwYXJhbWV0ZXJzCiAgICBteSAkU29ydEJ5ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRCeScgKQogICAgICAgIHx8ICRTZWxmLT57Q29uZmlnfS0+eydTb3J0Qnk6OkRlZmF1bHQnfQogICAgICAgIHx8ICdQbGFubmVkU3RhcnRUaW1lJzsKCiAgICAjIGdldCBvcmRlcmluZyBwYXJhbWV0ZXJzCiAgICBteSAkT3JkZXJCeSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPcmRlckJ5JyApCiAgICAgICAgfHwgJFNlbGYtPntDb25maWd9LT57J09yZGVyOjpEZWZhdWx0J30KICAgICAgICB8fCAnVXAnOwoKICAgIG15IEBTb3J0QnlBcnJheSAgPSAoJFNvcnRCeSk7CiAgICBteSBAT3JkZXJCeUFycmF5ID0gKCRPcmRlckJ5KTsKCiAgICAjIGludmVzdGlnYXRlIHJlZnJlc2gKICAgIG15ICRSZWZyZXNoID0gJFNlbGYtPntVc2VyUmVmcmVzaFRpbWV9ID8gNjAgKiAkU2VsZi0+e1VzZXJSZWZyZXNoVGltZX0gOiB1bmRlZjsKCiAgICAjIHN0YXJ0aW5nIHdpdGggcGFnZSAuLi4KICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckhlYWRlcigKICAgICAgICBSZWZyZXNoID0+ICRSZWZyZXNoLAogICAgICAgIFRpdGxlICAgPT4gJycsCiAgICApOwoKICAgICMgYnVpbGQgTmF2aWdhdGlvbkJhcgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lck5hdmlnYXRpb25CYXIoKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5QcmludCggT3V0cHV0ID0+IFwkT3V0cHV0ICk7CiAgICAkT3V0cHV0ID0gJyc7CgogICAgIyBmaW5kIG91dCB3aGljaCBjb2x1bW5zIHNob3VsZCBiZSBzaG93bgogICAgbXkgQFNob3dDb2x1bW5zOwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTaG93Q29sdW1uc30gKSB7CgogICAgICAgICMgZ2V0IGFsbCBwb3NzaWJsZSBjb2x1bW5zIGZyb20gY29uZmlnCiAgICAgICAgbXkgJVBvc3NpYmxlQ29sdW1uID0gJXsgJFNlbGYtPntDb25maWd9LT57U2hvd0NvbHVtbnN9IH07CgogICAgICAgICMgZ2V0IHRoZSBjb2x1bW4gbmFtZXMgdGhhdCBzaG91bGQgYmUgc2hvd24KICAgICAgICBDT0xVTU5OQU1FOgogICAgICAgIGZvciBteSAkTmFtZSAoIHNvcnQga2V5cyAlUG9zc2libGVDb2x1bW4gKSB7CiAgICAgICAgICAgIG5leHQgQ09MVU1OTkFNRSBpZiAhJFBvc3NpYmxlQ29sdW1ueyROYW1lfTsKICAgICAgICAgICAgcHVzaCBAU2hvd0NvbHVtbnMsICROYW1lOwogICAgICAgIH0KICAgIH0KCiAgICAjIHRvIHN0b3JlIHRoZSBmaWx0ZXJzCiAgICBteSAlRmlsdGVyczsKCiAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAjIHNldCBvdGhlciBmaWx0ZXJzIGJhc2VkIG9uIGNoYW5nZSBzdGF0ZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPnsnRmlsdGVyOjpDaGFuZ2VTdGF0ZXMnfSApIHsKCiAgICAgICAgIyBkZWZpbmUgcG9zaXRpb24gb2YgdGhlIGZpbHRlciBpbiB0aGUgZnJvbnRlbmQKICAgICAgICBteSAkUHJpb0NvdW50ZXIgPSAxMDAwOwoKICAgICAgICAjIGdldCBhbGwgY2hhbmdlIHN0YXRlcyB0aGF0IHNob3VsZCBiZSB1c2VkIGFzIGZpbHRlcnMKICAgICAgICBDSEFOR0VTVEFURToKICAgICAgICBmb3IgbXkgJENoYW5nZVN0YXRlICggQHsgJFNlbGYtPntDb25maWd9LT57J0ZpbHRlcjo6Q2hhbmdlU3RhdGVzJ30gfSApIHsKCiAgICAgICAgICAgICMgZG8gbm90IHVzZSBlbXB0eSBjaGFuZ2Ugc3RhdGVzCiAgICAgICAgICAgIG5leHQgQ0hBTkdFU1RBVEUgaWYgISRDaGFuZ2VTdGF0ZTsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgc3RhdGUgaXMgdmFsaWQgYnkgbG9va2luZyB1cCB0aGUgc3RhdGUgaWQKICAgICAgICAgICAgbXkgJENoYW5nZVN0YXRlSUQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTdGF0ZUxvb2t1cCgKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlID0+ICRDaGFuZ2VTdGF0ZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZG8gbm90IHVzZSBpbnZhbGlkIGNoYW5nZSBzdGF0ZXMKICAgICAgICAgICAgbmV4dCBDSEFOR0VTVEFURSBpZiAhJENoYW5nZVN0YXRlSUQ7CgogICAgICAgICAgICAjIGluY3JlYXNlIHRoZSBQcmlvQ291bnRlcgogICAgICAgICAgICAkUHJpb0NvdW50ZXIrKzsKCiAgICAgICAgICAgICMgYWRkIGZpbHRlciBmb3IgdGhlIGN1cnJlbnQgY2hhbmdlIHN0YXRlCiAgICAgICAgICAgICRGaWx0ZXJzeyRDaGFuZ2VTdGF0ZX0gPSB7CiAgICAgICAgICAgICAgICBOYW1lICAgPT4gJENoYW5nZVN0YXRlLAogICAgICAgICAgICAgICAgUHJpbyAgID0+ICRQcmlvQ291bnRlciwKICAgICAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVzICAgICA9PiBbJENoYW5nZVN0YXRlXSwKICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFxAU29ydEJ5QXJyYXksCiAgICAgICAgICAgICAgICAgICAgT3JkZXJCeURpcmVjdGlvbiA9PiBcQE9yZGVyQnlBcnJheSwKICAgICAgICAgICAgICAgICAgICBMaW1pdCAgICAgICAgICAgID0+IDEwMDAsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgZmlsdGVyIGFuZCB2aWV3IHBhcmFtcwogICAgJFNlbGYtPntGaWx0ZXJ9ICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0ZpbHRlcicgKSB8fCAnQWxsJzsKICAgICRTZWxmLT57Vmlld30gICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdWaWV3JyApICAgfHwgJyc7CiAgICAkU2VsZi0+e1N0YXJ0SGl0fSAgPSBpbnQoICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdGFydEhpdCcgKSB8fCAxICk7CiAgICAkU2VsZi0+e1BhZ2VTaG93bn0gPSAkU2VsZi0+e1VzZXJTaG93VGlja2V0c30gfHwgMTsKCiAgICAjIGlmIG9ubHkgb25lIGZpbHRlciBleGlzdHMKICAgIGlmICggc2NhbGFyIGtleXMgJUZpbHRlcnMgPT0gMSApIHsKCiAgICAgICAgIyBnZXQgdGhlIG5hbWUgb2YgdGhlIG9ubHkgZmlsdGVyCiAgICAgICAgbXkgKCRGaWx0ZXJOYW1lKSA9IGtleXMgJUZpbHRlcnM7CgogICAgICAgICMgYWN0aXZhdGUgdGhpcyBmaWx0ZXIKICAgICAgICAkU2VsZi0+e0ZpbHRlcn0gPSAkRmlsdGVyTmFtZTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGFkZCBkZWZhdWx0IGZpbHRlcgogICAgICAgICRGaWx0ZXJze0FsbH0gPSB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnQWxsJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDAsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZXMgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+eydGaWx0ZXI6OkNoYW5nZVN0YXRlcyd9LAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiBcQFNvcnRCeUFycmF5LAogICAgICAgICAgICAgICAgT3JkZXJCeURpcmVjdGlvbiA9PiBcQE9yZGVyQnlBcnJheSwKICAgICAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgPT4gMTAwMCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9OwogICAgfQoKICAgICMgY2hlY2sgaWYgZmlsdGVyIGlzIHZhbGlkCiAgICBpZiAoICEkRmlsdGVyc3sgJFNlbGYtPntGaWx0ZXJ9IH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdJbnZhbGlkIEZpbHRlcjogJXMhJywgJFNlbGYtPntGaWx0ZXJ9ICksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNlYXJjaCBjaGFuZ2VzIHdoaWNoIG1hdGNoIHRoZSBzZWxlY3RlZCBmaWx0ZXIKICAgIG15ICRDaGFuZ2VJRHNSZWYgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgJXsgJEZpbHRlcnN7ICRTZWxmLT57RmlsdGVyfSB9LT57U2VhcmNofSB9LAogICAgKTsKICAgIG15IEBDaGFuZ2VJRHMgPSBAeyRDaGFuZ2VJRHNSZWZ9OwoKICAgIG15ICVDdXN0b21lclVzZXJTZXJ2aWNlczsKICAgIG15ICVDb3VudEJ5Q2hhbmdlU3RhdGU7CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRMaW5rT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnKTsKICAgIG15ICRTZXJ2aWNlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlcnZpY2UnKTsKCiAgICAjIGlmIGNvbmZpZ3VyZWQsIGdldCBvbmx5IGNoYW5nZXMgd2hpY2ggaGF2ZSB3b3Jrb3JkZXJzIHRoYXQgYXJlIGxpbmtlZCB3aXRoIGEgc2VydmljZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTaG93T25seUNoYW5nZXNXaXRoQWxsb3dlZFNlcnZpY2VzfSApIHsKCiAgICAgICAgIyBnZXQgYWxsIHNlcnZpY2VzIHRoZSBjdXN0b21lciB1c2VyIGlzIGFsbG93ZWQgdG8gdXNlCiAgICAgICAgJUN1c3RvbWVyVXNlclNlcnZpY2VzID0gJFNlcnZpY2VPYmplY3QtPkN1c3RvbWVyVXNlclNlcnZpY2VNZW1iZXJMaXN0KAogICAgICAgICAgICBDdXN0b21lclVzZXJMb2dpbiA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIFJlc3VsdCAgICAgICAgICAgID0+ICdIQVNIJywKICAgICAgICAgICAgRGVmYXVsdFNlcnZpY2VzICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICBteSAlVW5pcXVlQ2hhbmdlSURzOwogICAgICAgIENIQU5HRUlEOgogICAgICAgIGZvciBteSAkQ2hhbmdlSUQgKEBDaGFuZ2VJRHMpIHsKCiAgICAgICAgICAgICMgZ2V0IGNoYW5nZSBkYXRhCiAgICAgICAgICAgIG15ICRDaGFuZ2UgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VHZXQoCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCB3b3Jrb3JkZXIgaWRzCiAgICAgICAgICAgIG15IEBXb3JrT3JkZXJJRHMgPSBAeyAkQ2hhbmdlLT57V29ya09yZGVySURzfSB9OwoKICAgICAgICAgICAgIyBkb24ndCBzaG93IGNoYW5nZXMgd2l0aCBubyB3b3Jrb3JkZXJzIChhcyB0aGV5IGNhbiBub3QgYmUgbGlua2VkIHdpdGggYSBzZXJ2aWNlKQogICAgICAgICAgICBuZXh0IENIQU5HRUlEIGlmICFAV29ya09yZGVySURzOwoKICAgICAgICAgICAgV09SS09SREVSSUQ6CiAgICAgICAgICAgIGZvciBteSAkV29ya09yZGVySUQgKEBXb3JrT3JkZXJJRHMpIHsKCiAgICAgICAgICAgICAgICAjIGdldCB0aGUgbGlzdCBvZiBsaW5rZWQgc2VydmljZXMKICAgICAgICAgICAgICAgIG15ICVMaW5rS2V5TGlzdCA9ICRMaW5rT2JqZWN0LT5MaW5rS2V5TGlzdCgKICAgICAgICAgICAgICAgICAgICBPYmplY3QxID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgICAgICAgICBLZXkxICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICAgICBPYmplY3QyID0+ICdTZXJ2aWNlJywKICAgICAgICAgICAgICAgICAgICBTdGF0ZSAgID0+ICdWYWxpZCcsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHdvcmtvcmRlciBoYXMgbm8gbGlua2VkIHNlcnZpY2UKICAgICAgICAgICAgICAgIG5leHQgV09SS09SREVSSUQgaWYgISVMaW5rS2V5TGlzdDsKCiAgICAgICAgICAgICAgICBTRVJWSUNFSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJFNlcnZpY2VJRCAoIHNvcnQga2V5cyAlTGlua0tleUxpc3QgKSB7CgogICAgICAgICAgICAgICAgICAgICMgb25seSB1c2Ugc2VydmljZXMgd2hlcmUgdGhlIGN1c3RvbWVyIGlzIGFsbG93ZWQgdG8gdXNlIHRoZSBzZXJ2aWNlCiAgICAgICAgICAgICAgICAgICAgbmV4dCBTRVJWSUNFSUQgaWYgISRDdXN0b21lclVzZXJTZXJ2aWNlc3skU2VydmljZUlEfTsKCiAgICAgICAgICAgICAgICAgICAgIyBhZGQgY2hhbmdlIGlkIHRvIGxpc3Qgb2YgdmlzaWJsZSBjaGFuZ2VzIGZvciB0aGUgY3VzdG9tZXIKICAgICAgICAgICAgICAgICAgICAkVW5pcXVlQ2hhbmdlSURzeyRDaGFuZ2VJRH0rKzsKCiAgICAgICAgICAgICAgICAgICAgIyBjb3VudCB0aGUgdmlzaWJsZSBjaGFuZ2VzIHBlciBzdGF0ZQogICAgICAgICAgICAgICAgICAgICRDb3VudEJ5Q2hhbmdlU3RhdGV7ICRDaGFuZ2UtPntDaGFuZ2VTdGF0ZX0gfSsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBAQ2hhbmdlSURzID0ga2V5cyAlVW5pcXVlQ2hhbmdlSURzOwoKICAgICAgICAjIGFkZCB0aGUgYWxsIGNvdW50CiAgICAgICAgJENvdW50QnlDaGFuZ2VTdGF0ZXtBbGx9ID0gc2NhbGFyIEBDaGFuZ2VJRHM7CiAgICB9CgogICAgIyBkaXNwbGF5IGFsbCBuYXZiYXIgZmlsdGVycwogICAgbXkgJU5hdkJhckZpbHRlcjsKICAgIG15ICRDb3VudGVyOwogICAgbXkgJEFsbENoYW5nZXM7CiAgICBteSAkQWxsQ2hhbmdlc1RvdGFsOwoKICAgICMgc3RvcmUgdGhlIG51bWJlciBvZiBmaWx0ZXJzCiAgICBteSAkTnVtYmVyT2ZGaWx0ZXJzID0ga2V5cyAlRmlsdGVyczsKCiAgICAjIGFycmF5IHRvIHNvcnQgdGhlIGZpbHRlcnMgYnkgaXRzIHByaW9yaXR5CiAgICBteSBATmF2QmFyRmlsdGVycyA9IHNvcnQgeyAkRmlsdGVyc3skYX0tPntQcmlvfSA8PT4gJEZpbHRlcnN7JGJ9LT57UHJpb30gfSBrZXlzICVGaWx0ZXJzOwoKICAgIEZJTFRFUjoKICAgIGZvciBteSAkRmlsdGVyTmFtZSAoQE5hdkJhckZpbHRlcnMpIHsKICAgICAgICAkQ291bnRlcisrOwoKICAgICAgICAjIGR1ZSB0byBzZXJ2aWNlIHJlc3RyaWN0aW9ucyBmb3IgY3VzdG9tZXIgdXNlcnMKICAgICAgICAjIHdlIG5lZWQgdG8gY291bnQgZGlmZmVyZW50bHkgaWYgdGhlIGZlYXR1cmUgIlNob3dPbmx5Q2hhbmdlc1dpdGhBbGxvd2VkU2VydmljZXMiCiAgICAgICAgIyBpcyBhY3RpdmF0ZWQKICAgICAgICBteSAkQ291bnQ7CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTaG93T25seUNoYW5nZXNXaXRoQWxsb3dlZFNlcnZpY2VzfSApIHsKICAgICAgICAgICAgJENvdW50ID0gJENvdW50QnlDaGFuZ2VTdGF0ZXskRmlsdGVyTmFtZX0gfHwgMDsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNvdW50IHRoZSBudW1iZXIgb2YgY2hhbmdlcyBmb3IgZWFjaCBmaWx0ZXIKICAgICAgICAgICAgJENvdW50ID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlck5hbWV9LT57U2VhcmNofSB9LAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoICRGaWx0ZXJOYW1lIG5lICdBbGwnICYmICEkQ291bnQgKSB7CiAgICAgICAgICAgIG5leHQgRklMVEVSOwogICAgICAgIH0KCiAgICAgICAgbXkgJENsYXNzTEkgPSAnJzsKICAgICAgICBteSAkQ2xhc3NBICA9ICcnOwogICAgICAgIGlmICggJEZpbHRlck5hbWUgZXEgJFNlbGYtPntGaWx0ZXJ9ICkgewogICAgICAgICAgICAkQ2xhc3NBICAgICA9ICdTZWxlY3RlZCc7CiAgICAgICAgICAgICRBbGxDaGFuZ2VzID0gJENvdW50IHx8IDA7CiAgICAgICAgfQogICAgICAgIGlmICggJE51bWJlck9mRmlsdGVycyA9PSAkQ291bnRlciApIHsKICAgICAgICAgICAgJENsYXNzTEkgPSAnTGFzdCc7CiAgICAgICAgfQogICAgICAgIGlmICggJEZpbHRlck5hbWUgZXEgJ0FsbCcgKSB7CiAgICAgICAgICAgICRBbGxDaGFuZ2VzVG90YWwgPSAkQ291bnQ7CiAgICAgICAgfQoKICAgICAgICAjIHNldCBjb3VudGVyIHN0cmluZyAoZW10eSBzdHJpbmcgaWYgQ291bnQgaXMgdW5kZWZpbmVkKQogICAgICAgIG15ICRDb3VudFN0cmc7CiAgICAgICAgaWYgKCBkZWZpbmVkICRDb3VudCApIHsKICAgICAgICAgICAgJENvdW50U3RyZyA9ICcoJyAuICRDb3VudCAuICcpJzsKICAgICAgICB9CgogICAgICAgICMgZGlzcGxheSB0aGUgbmF2YmFyIGZpbHRlcgogICAgICAgICROYXZCYXJGaWx0ZXJ7ICRGaWx0ZXJzeyRGaWx0ZXJOYW1lfS0+e1ByaW99IH0gPSB7CiAgICAgICAgICAgIENvdW50U3RyZyA9PiAkQ291bnRTdHJnLAogICAgICAgICAgICBGaWx0ZXIgICAgPT4gJEZpbHRlck5hbWUsCiAgICAgICAgICAgIENsYXNzTEkgICA9PiAkQ2xhc3NMSSwKICAgICAgICAgICAgQ2xhc3NBICAgID0+ICRDbGFzc0EsCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJOYW1lfSB9LAogICAgICAgIH07CiAgICB9CgogICAgIyBzZXQgbWV0YS1saW5rIGZvciBwYWdpbmF0aW9uCiAgICBteSAkTGluayA9ICdTb3J0Qnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApCiAgICAgICAgLiAnO09yZGVyQnk9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKQogICAgICAgIC4gJztGaWx0ZXI9JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntGaWx0ZXJ9ICkKICAgICAgICAuICc7U3ViYWN0aW9uPScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57U3ViYWN0aW9ufSApCiAgICAgICAgLiAnOyc7CgogICAgIyBjcmVhdGUgcGFnaW5hdGlvbgogICAgbXkgJVBhZ2VOYXYgPSAkTGF5b3V0T2JqZWN0LT5QYWdlTmF2QmFyKAogICAgICAgIExpbWl0ICAgICA9PiAxMDAwMCwKICAgICAgICBTdGFydEhpdCAgPT4gJFNlbGYtPntTdGFydEhpdH0sCiAgICAgICAgUGFnZVNob3duID0+ICRTZWxmLT57UGFnZVNob3dufSwKICAgICAgICBBbGxIaXRzICAgPT4gc2NhbGFyKEBDaGFuZ2VJRHMpLCAgICAgICAgICAgICAgICAgICAgIyRBbGxDaGFuZ2VzLAogICAgICAgIEFjdGlvbiAgICA9PiAnQWN0aW9uPUN1c3RvbWVySVRTTUNoYW5nZVNjaGVkdWxlJywKICAgICAgICBMaW5rICAgICAgPT4gJExpbmssCiAgICAgICAgSURQcmVmaXggID0+ICdDdXN0b21lcklUU01DaGFuZ2VTY2hlZHVsZScsCiAgICApOwoKICAgICMgc2hvdyBjaGFuZ2VzIGlzIGRhdGEgaWYgYW55CiAgICBpZiAoIHNjYWxhciBAQ2hhbmdlSURzICkgewoKICAgICAgICAjIHNob3cgaGVhZGVyIGZpbHRlcgogICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVOYXZCYXJGaWx0ZXIgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRmlsdGVySGVhZGVyJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICV7ICROYXZCYXJGaWx0ZXJ7JEtleX0gfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoIHNjYWxhciBAU2hvd0NvbHVtbnMgKSB7CgogICAgICAgICAgICAjIHNldCBoZWFkZXJzCiAgICAgICAgICAgIGZvciBteSAkQ29sdW1uTmFtZSAoQFNob3dDb2x1bW5zKSB7CgogICAgICAgICAgICAgICAgIyBjcmVhdGUgbmVlZGVkIHZlcmlhYmxlcwogICAgICAgICAgICAgICAgbXkgJENTUyA9ICcnOwogICAgICAgICAgICAgICAgbXkgJFNldE9yZGVyQnk7CgogICAgICAgICAgICAgICAgIyByZW1vdmUgSUQgaWYgbmVjZXNhcnkKICAgICAgICAgICAgICAgIGlmICgkU29ydEJ5KSB7CiAgICAgICAgICAgICAgICAgICAgJFNvcnRCeSA9ICggJFNvcnRCeSBlcSAnUHJpb3JpdHlJRCcgKQogICAgICAgICAgICAgICAgICAgICAgICA/ICdQcmlvcml0eScKICAgICAgICAgICAgICAgICAgICAgICAgOiAoICRTb3J0QnkgZXEgJ0NhdGVnb3J5SUQnICkgICAgICAgPyAnQ2F0ZWdvcnknCiAgICAgICAgICAgICAgICAgICAgICAgIDogKCAkU29ydEJ5IGVxICdDaGFuZ2VCdWlsZGVySUQnICkgID8gJ0NoYW5nZUJ1aWxkZXInCiAgICAgICAgICAgICAgICAgICAgICAgIDogKCAkU29ydEJ5IGVxICdDaGFuZ2VNYW5hZ2VySUQnICkgID8gJ0NoYW5nZU1hbmFnZXInCiAgICAgICAgICAgICAgICAgICAgICAgIDogKCAkU29ydEJ5IGVxICdDaGFuZ2VTdGF0ZUlEJyApICAgID8gJ0NoYW5nZVN0YXRlJwogICAgICAgICAgICAgICAgICAgICAgICA6ICggJFNvcnRCeSBlcSAnSW1wYWN0SUQnICkgICAgICAgICA/ICdJbXBhY3QnCiAgICAgICAgICAgICAgICAgICAgICAgIDogKCAkU29ydEJ5IGVxICdXb3JrT3JkZXJBZ2VudElEJyApID8gJ1dvcmtPcmRlckFnZW50JwogICAgICAgICAgICAgICAgICAgICAgICA6ICggJFNvcnRCeSBlcSAnV29ya09yZGVyU3RhdGVJRCcgKSA/ICdXb3JrT3JkZXJTdGF0ZScKICAgICAgICAgICAgICAgICAgICAgICAgOiAoICRTb3J0QnkgZXEgJ1dvcmtPcmRlclR5cGVJRCcgKSAgPyAnV29ya09yZGVyVHlwZScKICAgICAgICAgICAgICAgICAgICAgICAgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU29ydEJ5OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc2V0IHRoZSBjb3JyZWN0IFNldCBDU1MgY2xhc3MgYW5kIG9yZGVyIGJ5IGxpbmsKICAgICAgICAgICAgICAgIGlmICggJFNvcnRCeSAmJiAoICRTb3J0QnkgZXEgJENvbHVtbk5hbWUgKSApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICRPcmRlckJ5ICYmICggJE9yZGVyQnkgZXEgJ1VwJyApICkgewogICAgICAgICAgICAgICAgICAgICAgICAkU2V0T3JkZXJCeSA9ICdEb3duJzsKICAgICAgICAgICAgICAgICAgICAgICAgJENTUyAuPSAnIFNvcnREZXNjZW5kaW5nJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRTZXRPcmRlckJ5ID0gJ1VwJzsKICAgICAgICAgICAgICAgICAgICAgICAgJENTUyAuPSAnIFNvcnRBc2NlbmRpbmcnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRTZXRPcmRlckJ5ID0gJ1VwJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmQnIC4gJENvbHVtbk5hbWUgLiAnSGVhZGVyJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgQ1NTICAgICA9PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ID0+ICRTZXRPcmRlckJ5LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGRlZmluZSBpbmNpZGVudCBzaWduYWxzLCBuZWVkZWQgZm9yIHNlcnZpY2VzCiAgICAgICAgbXkgJUluY2lTaWduYWxzID0gKAogICAgICAgICAgICBvcGVyYXRpb25hbCA9PiAnZ3JlZW5sZWQnLAogICAgICAgICAgICB3YXJuaW5nICAgICA9PiAneWVsbG93bGVkJywKICAgICAgICAgICAgaW5jaWRlbnQgICAgPT4gJ3JlZGxlZCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGNoYW5nZXMncwogICAgICAgICRDb3VudGVyID0gMDsKCiAgICAgICAgSUQ6CiAgICAgICAgZm9yIG15ICRDaGFuZ2VJRCAoQENoYW5nZUlEcykgewogICAgICAgICAgICAkQ291bnRlcisrOwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkQ291bnRlciA+PSAkU2VsZi0+e1N0YXJ0SGl0fQogICAgICAgICAgICAgICAgJiYgJENvdW50ZXIgPCAoICRTZWxmLT57UGFnZVNob3dufSArICRTZWxmLT57U3RhcnRIaXR9ICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICMgdG8gc3RvcmUgYWxsIGRhdGEKICAgICAgICAgICAgICAgIG15ICVEYXRhOwoKICAgICAgICAgICAgICAgICMgdG8gc3RvcmUgZGF0YSBvZiBzdWItZWxlbWVudHMKICAgICAgICAgICAgICAgIG15ICVTdWJFbGVtZW50RGF0YTsKCiAgICAgICAgICAgICAgICBteSAkQ2hhbmdlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRDaGFuZ2U7CgogICAgICAgICAgICAgICAgIyBhZGQgY2hhbmdlIGRhdGEsCiAgICAgICAgICAgICAgICAjICggbGV0IHdvcmtvcmRlciBkYXRhIG92ZXJ3cml0ZQogICAgICAgICAgICAgICAgIyBzb21lIGNoYW5nZSBhdHRyaWJ1dGVzLCBpLmUuIFBsYW5uZWRTdGFydFRpbWUsIGV0Yy4uLiApCiAgICAgICAgICAgICAgICAlRGF0YSA9ICggJXskQ2hhbmdlfSwgJURhdGEgKTsKCiAgICAgICAgICAgICAgICAjIGdldCB1c2VyIGRhdGEgZm9yIG5lZWRlZCB1c2VyIHR5cGVzCiAgICAgICAgICAgICAgICBVU0VSVFlQRToKICAgICAgICAgICAgICAgIGZvciBteSAkVXNlclR5cGUgKHF3KENoYW5nZUJ1aWxkZXIgQ2hhbmdlTWFuYWdlciBXb3JrT3JkZXJBZ2VudCkpIHsKCiAgICAgICAgICAgICAgICAgICAgIyBjaGVjayBpZiBVc2VyVHlwZSBhdHRyaWJ1dGUgZXhpc3RzIGVpdGhlciBpbiBjaGFuZ2Ugb3Igd29ya29yZGVyCiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJENoYW5nZS0+eyAkVXNlclR5cGUgLiAnSUQnIH0gJiYgISREYXRheyAkVXNlclR5cGUgLiAnSUQnIH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgVVNFUlRZUEU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIGdldCB1c2VyIGRhdGEKICAgICAgICAgICAgICAgICAgICBteSAlVXNlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJENoYW5nZS0+eyAkVXNlclR5cGUgLiAnSUQnIH0gfHwgJERhdGF7ICRVc2VyVHlwZSAuICdJRCcgfSwKICAgICAgICAgICAgICAgICAgICAgICAgQ2FjaGVkID0+IDEsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBzZXQgdXNlciBkYXRhCiAgICAgICAgICAgICAgICAgICAgJERhdGF7ICRVc2VyVHlwZSAuICdVc2VyTG9naW4nIH0gICAgID0gJFVzZXJ7VXNlckxvZ2lufTsKICAgICAgICAgICAgICAgICAgICAkRGF0YXsgJFVzZXJUeXBlIC4gJ1VzZXJGaXJzdG5hbWUnIH0gPSAkVXNlcntVc2VyRmlyc3RuYW1lfTsKICAgICAgICAgICAgICAgICAgICAkRGF0YXsgJFVzZXJUeXBlIC4gJ1VzZXJMYXN0bmFtZScgfSAgPSAkVXNlcntVc2VyTGFzdG5hbWV9OwogICAgICAgICAgICAgICAgICAgICREYXRheyAkVXNlclR5cGUgLiAnVXNlckZ1bGxuYW1lJyB9ICA9ICRVc2Vye1VzZXJGdWxsbmFtZX07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyB0byBzdG9yZSB0aGUgbGlua2VkIHNlcnZpY2UgZGF0YQogICAgICAgICAgICAgICAgbXkgJExpbmtMaXN0V2l0aERhdGEgPSB7fTsKCiAgICAgICAgICAgICAgICBteSBAV29ya09yZGVySURzOwoKICAgICAgICAgICAgICAgICMgc3RvcmUgdGhlIGNvbWJpbmVkIGxpbmtlZCBzZXJ2aWNlcyBkYXRhIGZyb20gYWxsIHdvcmtvcmRlcnMgb2YgdGhpcyBjaGFuZ2UKICAgICAgICAgICAgICAgIEBXb3JrT3JkZXJJRHMgPSBAeyAkQ2hhbmdlLT57V29ya09yZGVySURzfSB9OwoKICAgICAgICAgICAgICAgICMgc3RvcmUgdGhlIGNvbWJpbmVkIGxpbmtlZCBzZXJ2aWNlcyBkYXRhCiAgICAgICAgICAgICAgICBmb3IgbXkgJFdvcmtPcmRlcklEIChAV29ya09yZGVySURzKSB7CgogICAgICAgICAgICAgICAgICAgICMgZ2V0IGxpbmtlZCBvYmplY3RzIG9mIHRoaXMgd29ya29yZGVyCiAgICAgICAgICAgICAgICAgICAgbXkgJExpbmtMaXN0V2l0aERhdGFXb3JrT3JkZXIgPSAkTGlua09iamVjdC0+TGlua0xpc3RXaXRoRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0ID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICAgICAgICAgU3RhdGUgID0+ICdWYWxpZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgT0JKRUNUOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkT2JqZWN0ICggc29ydCBrZXlzICV7JExpbmtMaXN0V2l0aERhdGFXb3JrT3JkZXJ9ICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBvbmx5IHNob3cgbGlua2VkIHNlcnZpY2VzIG9mIHdvcmtvcmRlcgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRPYmplY3QgbmUgJ1NlcnZpY2UnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBPQkpFQ1Q7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIExJTktUWVBFOgogICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJExpbmtUeXBlICggc29ydCBrZXlzICV7ICRMaW5rTGlzdFdpdGhEYXRhV29ya09yZGVyLT57JE9iamVjdH0gfSApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBESVJFQ1RJT046CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJERpcmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydCBrZXlzICV7ICRMaW5rTGlzdFdpdGhEYXRhV29ya09yZGVyLT57JE9iamVjdH0tPnskTGlua1R5cGV9IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0IGtleXMgJXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRMaW5rTGlzdFdpdGhEYXRhV29ya09yZGVyLT57JE9iamVjdH0tPnskTGlua1R5cGV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT57JERpcmVjdGlvbn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjb21iaW5lIHRoZSBsaW5rZWQgb2JqZWN0IGRhdGEgZnJvbSBhbGwgd29ya29yZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTGlua0xpc3RXaXRoRGF0YS0+eyRPYmplY3R9LT57JExpbmtUeXBlfS0+eyREaXJlY3Rpb259LT57JElEfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkTGlua0xpc3RXaXRoRGF0YVdvcmtPcmRlci0+eyRPYmplY3R9LT57JExpbmtUeXBlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT57JERpcmVjdGlvbn0tPnskSUR9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGdldCB1bmlxdWUgc2VydmljZSBpZHMKICAgICAgICAgICAgICAgIG15ICVVbmlxdWVTZXJ2aWNlSURzOwogICAgICAgICAgICAgICAgbXkgJFNlcnZpY2VzUmVmID0gJExpbmtMaXN0V2l0aERhdGEtPntTZXJ2aWNlfSB8fCB7fTsKICAgICAgICAgICAgICAgIGZvciBteSAkTGlua1R5cGUgKCBzb3J0IGtleXMgJXskU2VydmljZXNSZWZ9ICkgewoKICAgICAgICAgICAgICAgICAgICAjIGV4dHJhY3QgbGluayB0eXBlIExpc3QKICAgICAgICAgICAgICAgICAgICBteSAkTGlua1R5cGVMaXN0ID0gJFNlcnZpY2VzUmVmLT57JExpbmtUeXBlfTsKCiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICREaXJlY3Rpb24gKCBzb3J0IGtleXMgJXskTGlua1R5cGVMaXN0fSApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgZXh0cmFjdCBkaXJlY3Rpb24gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICBteSAkRGlyZWN0aW9uTGlzdCA9ICRTZXJ2aWNlc1JlZi0+eyRMaW5rVHlwZX0tPnskRGlyZWN0aW9ufTsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgY29sbGVjdCB1bmlxdWUgc2VydmljZSBpZHMKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRTZXJ2aWNlSUQgKCBzb3J0IGtleXMgJXskRGlyZWN0aW9uTGlzdH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVW5pcXVlU2VydmljZUlEc3skU2VydmljZUlEfSsrOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgZ2V0IHRoZSBkYXRhIGZvciBlYWNoIHNlcnZpY2UKICAgICAgICAgICAgICAgIG15IEBTZXJ2aWNlc0RhdGE7CiAgICAgICAgICAgICAgICBTRVJWSUNFSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJFNlcnZpY2VJRCAoIHNvcnQga2V5cyAlVW5pcXVlU2VydmljZUlEcyApIHsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTaG93T25seUNoYW5nZXNXaXRoQWxsb3dlZFNlcnZpY2VzfSApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgZG8gbm90IHNob3cgdGhpcyBzZXJ2aWNlIGlmIGN1c3RvbWVyIGlzIG5vdCBhbGxvd2VkIHRvIHVzZSBpdAogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IFNFUlZJQ0VJRCBpZiAhJEN1c3RvbWVyVXNlclNlcnZpY2VzeyRTZXJ2aWNlSUR9OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBnZXQgc2VydmljZSBkYXRhCiAgICAgICAgICAgICAgICAgICAgbXkgJVNlcnZpY2VEYXRhID0gJFNlcnZpY2VPYmplY3QtPlNlcnZpY2VHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZpY2VJRCAgICAgPT4gJFNlcnZpY2VJRCwKICAgICAgICAgICAgICAgICAgICAgICAgSW5jaWRlbnRTdGF0ZSA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIGFkZCBjdXJyZW50IGluY2lkZW50IHNpZ25hbAogICAgICAgICAgICAgICAgICAgICRTZXJ2aWNlRGF0YXtDdXJJbmNpU2lnbmFsfSA9ICRJbmNpU2lnbmFsc3sgJFNlcnZpY2VEYXRhe0N1ckluY2lTdGF0ZVR5cGV9IHx8ICcnIH0gfHwgJyc7CgogICAgICAgICAgICAgICAgICAgICMgc3RvcmUgc2VydmljZSBkYXRhCiAgICAgICAgICAgICAgICAgICAgcHVzaCBAU2VydmljZXNEYXRhLCBcJVNlcnZpY2VEYXRhOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc29ydCBzZXJ2aWNlcyBkYXRhIGJ5IHNlcnZpY2UgbmFtZQogICAgICAgICAgICAgICAgQFNlcnZpY2VzRGF0YSA9IHNvcnQgeyAkYS0+e05hbWV9IGNtcCAkYi0+e05hbWV9IH0gQFNlcnZpY2VzRGF0YTsKCiAgICAgICAgICAgICAgICAjIGRvIG5vdCBzaG93IHRoZSBjaGFuZ2UgaWYgaXQgaGFzIG5vIHNlcnZpY2VzCiAgICAgICAgICAgICAgICBuZXh0IElEIGlmICFAU2VydmljZXNEYXRhOwoKICAgICAgICAgICAgICAgICMgc3RvcmUgc2VydmljZXMgZGF0YQogICAgICAgICAgICAgICAgJFN1YkVsZW1lbnREYXRhe1NlcnZpY2VzfSA9IFxAU2VydmljZXNEYXRhOwoKICAgICAgICAgICAgICAgICMgYWRkIGJsb2NrCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmQnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmIChAU2hvd0NvbHVtbnMpIHsKICAgICAgICAgICAgICAgICAgICBDT0xVTU46CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRDb2x1bW5OYW1lIChAU2hvd0NvbHVtbnMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmQnIC4gJENvbHVtbk5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIHRoaXMgY29sdW1uIGNvbnRhaW5zIHN1Yi1lbGVtZW50cwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU3ViRWxlbWVudERhdGF7JENvbHVtbk5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiByZWYgJFN1YkVsZW1lbnREYXRheyRDb2x1bW5OYW1lfSBlcSAnQVJSQVknCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJFN1YkVsZW1lbnQgKCBAeyAkU3ViRWxlbWVudERhdGF7JENvbHVtbk5hbWV9IH0gKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgc2hvdyBzdWItZWxlbWVudHMgb2YgY29sdW1uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcgLiAkQ29sdW1uTmFtZSAuICdTdWJFbGVtZW50JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICV7JFN1YkVsZW1lbnR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggIUBTZXJ2aWNlc0RhdGEgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmQnIC4gJENvbHVtbk5hbWUgLiAnU3ViRWxlbWVudEVtcHR5JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIG90aGVyd2lzZSBzaG93IG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQ3VzdG9tZXJJVFNNQ2hhbmdlT3ZlcnZpZXcnLAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAjIGdldCBwYWdlIGZvb3RlcgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckZvb3RlcigpOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/ITSMChange/MenuChangeDelete.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTUNoYW5nZTo6TWVudUNoYW5nZURlbGV0ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6Okxhbmd1YWdlJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBVc2VySUQgcGFyYW0KICAgICRTZWxmLT57VXNlcklEfSA9ICRQYXJhbXtVc2VySUR9IHx8IGRpZSAiR290IG5vIFVzZXJJRCEiOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17Q2hhbmdlfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ2hhbmdlIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgY29uZmlnIGZvciB0aGUgcmVsZXZhbnQgYWN0aW9uCiAgICBteSAkRnJvbnRlbmRDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoIklUU01DaGFuZ2U6OkZyb250ZW5kOjokUGFyYW17Q29uZmlnfS0+e0FjdGlvbn0iKTsKCiAgICAjIGdldCB0aGUgcmVxdWlyZWQgcHJpdmlsZWdlLCAncm8nIG9yICdydycKICAgIG15ICRSZXF1aXJlZFByaXY7CiAgICBpZiAoJEZyb250ZW5kQ29uZmlnKSB7CgogICAgICAgICMgZ2V0IHRoZSByZXF1aXJlZCBwcml2IGZyb20gdGhlIGZyb250ZW5kIGNvbmZpZ3VyYXRpb24KICAgICAgICAkUmVxdWlyZWRQcml2ID0gJEZyb250ZW5kQ29uZmlnLT57UGVybWlzc2lvbn07CiAgICB9CgogICAgIyBEaXNwbGF5IHRoZSBtZW51LWxpbmssIHdoZW4gbm8gcHJpdmlsZWdlIGlzIHJlcXVpcmVkCiAgICBteSAkQWNjZXNzID0gMTsKCiAgICBpZiAoJFJlcXVpcmVkUHJpdikgewoKICAgICAgICAjIGdldCB0aGUgcmVxdWlyZWQgZ3JvdXAgZm9yIHRoZSBmcm9udGVuZCBtb2R1bGUKICAgICAgICBteSAkR3JvdXAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+eyAkUGFyYW17Q29uZmlnfS0+e0FjdGlvbn0gfQogICAgICAgICAgICAtPntHcm91cFJvfS0+WzBdOwoKICAgICAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIHRoZSBncm91cCBpcyBub3QgZm91bmQKICAgICAgICByZXR1cm4gJFBhcmFte0NvdW50ZXJ9IGlmICEkR3JvdXA7CgogICAgICAgICMgZ2V0IGdyb3VwIG9iamVjdAogICAgICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICAgICAjIGdldCB0aGUgZ3JvdXAgaWQKICAgICAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoIEdyb3VwID0+ICRHcm91cCApOwoKICAgICAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIHRoZSBncm91cCBpcyBub3QgZm91bmQKICAgICAgICByZXR1cm4gJFBhcmFte0NvdW50ZXJ9IGlmICEkR3JvdXBJRDsKCiAgICAgICAgIyBnZXQgdXNlciBncm91cHMsIHdoZXJlIHRoZSB1c2VyIGhhcyB0aGUgYXBwcm9wcmlhdGUgcHJpdmlsZWdlCiAgICAgICAgbXkgJUdyb3VwcyA9ICRHcm91cE9iamVjdC0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBUeXBlICAgPT4gJFJlcXVpcmVkUHJpdiwKICAgICAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICAgICApOwoKICAgICAgICAjIGdyYW50IGFjY2VzcyBpZiB0aGUgYWdlbnQgaGFzIHRoZSBhcHByb3ByaWF0ZSB0eXBlIGluIHRoZSBhcHByb3ByaWF0ZSBncm91cAogICAgICAgIGlmICggJEdyb3Vwc3skR3JvdXBJRH0gKSB7CiAgICAgICAgICAgICRBY2Nlc3MgPSAxOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJFBhcmFte0NvdW50ZXJ9IGlmICEkQWNjZXNzOwoKICAgICMgYnVpbGQgYSBsb29rdXAgaGFzaCBmb3IgdGhlIGFsbG93ZWQgY2hhbmdlIHN0YXRlcwogICAgbXkgJUFsbG93ZWRDaGFuZ2VTdGF0ZXMgPSBtYXAgeyAkXyA9PiAxIH0gQHsgJEZyb250ZW5kQ29uZmlnLT57Q2hhbmdlU3RhdGVzfSB9OwoKICAgICMgb25seSBzaG93IHRoZSBkZWxldGUgbGluayBmb3IgY2hhbmdlcyBpbiB0aGUgYWxsb3dlZCBjaGFuZ2Ugc3RhdGVzCiAgICByZXR1cm4gJFBhcmFte0NvdW50ZXJ9IGlmICEkQWxsb3dlZENoYW5nZVN0YXRlc3sgJFBhcmFte0NoYW5nZX0tPntDaGFuZ2VTdGF0ZX0gfTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgb3V0cHV0IG1lbnUgYmxvY2sKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdNZW51JyApOwoKICAgICMgb3V0cHV0IHNlcGVyYXRvciwgd2hlbiB0aGlzIGlzIG5vdCB0aGUgZmlyc3QgbWVudSBpdGVtCiAgICBpZiAoICRQYXJhbXtDb3VudGVyfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnTWVudUl0ZW1TcGxpdCcgKTsKICAgIH0KCiAgICAjIG91dHB1dCBtZW51IGl0ZW0KICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ01lbnVJdGVtJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyAkUGFyYW17Q2hhbmdlfSB9LAogICAgICAgICAgICAleyAkUGFyYW17Q29uZmlnfSB9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgYSBkaWFsb2cgaGFzIHRvIGJlIHNob3duCiAgICBpZiAoICRQYXJhbXtDb25maWd9LT57RGlhbG9nVGl0bGV9ICkgewogICAgICAgIG15ICRDb25maWdPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICAgICAgbXkgJExhbmd1YWdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpMYW5ndWFnZScpOwoKICAgICAgICBteSAlSlNEYXRhID0gKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICV7ICRQYXJhbXtDaGFuZ2V9IH0sCiAgICAgICAgICAgICV7ICRQYXJhbXtDb25maWd9IH0sCiAgICAgICAgKTsKCiAgICAgICAgZGVsZXRlICRKU0RhdGF7Q29uZmlnfTsKICAgICAgICBkZWxldGUgJEpTRGF0YXtDaGFuZ2V9OwoKICAgICAgICAkSlNEYXRhe0VsZW1lbnRTZWxlY3Rvcn0gICAgICAgICAgICA9fiBzL1xbJVxzKkRhdGFcLk1lbnVJRFxzKlx8XHMqaHRtbFxzKiVcXS8kSlNEYXRhe01lbnVJRH0vaTsKICAgICAgICAkSlNEYXRhe0RpYWxvZ0NvbnRlbnRRdWVyeVN0cmluZ30gICA9fiBzL1xbJVxzKkRhdGFcLkNoYW5nZUlEXHMqXHxccypodG1sXHMqJVxdLyRKU0RhdGF7Q2hhbmdlSUR9L2k7CiAgICAgICAgJEpTRGF0YXtDb25maXJtZWRBY3Rpb25RdWVyeVN0cmluZ30gPX4gcy9cWyVccypEYXRhXC5DaGFuZ2VJRFxzKlx8XHMqaHRtbFxzKiVcXS8kSlNEYXRhe0NoYW5nZUlEfS9pOwoKICAgICAgICAkSlNEYXRhe0RpYWxvZ1RpdGxlfSA9fiBzL1xbJVxzKlRyYW5zbGF0ZVwoIiguKikiXClccypcfFxzKmh0bWxccyolXF0vJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJDEpL2VpOwogICAgICAgICRKU0RhdGF7RGlhbG9nVGl0bGV9ID1+IHMvXFslXHMqQ29uZmlnXCgiKC4qKSJcKVxzKiVcXS8kQ29uZmlnT2JqZWN0LT5HZXQoJDEpL2VpOwogICAgICAgICRKU0RhdGF7RGlhbG9nVGl0bGV9ID1+IHMvXFslXHMqRGF0YS5DaGFuZ2VOdW1iZXJccypcfFxzKmh0bWxccyolXF0vJEpTRGF0YXtDaGFuZ2VOdW1iZXJ9L2VpOwoKICAgICAgICAkSlNEYXRhe01lbnVJRH0gPSAnTWVudScgLiAkSlNEYXRhe01lbnVJRH07CgogICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgS2V5ICAgPT4gJ0lUU01TaG93Q29uZmlybURpYWxvZy4nIC4gJFBhcmFte01lbnVJRH0sCiAgICAgICAgICAgIFZhbHVlID0+IFwlSlNEYXRhLAogICAgICAgICk7CiAgICB9CgogICAgJFBhcmFte0NvdW50ZXJ9Kys7CgogICAgcmV0dXJuICRQYXJhbXtDb3VudGVyfTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Output/HTML/ITSMChange/MenuGeneric.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTUNoYW5nZTo6TWVudUdlbmVyaWM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpMYW5ndWFnZScsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBVc2VySUQgcGFyYW0KICAgICRTZWxmLT57VXNlcklEfSA9ICRQYXJhbXtVc2VySUR9IHx8IGRpZSAiR290IG5vIFVzZXJJRCEiOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17Q2hhbmdlfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ2hhbmdlIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgY29uZmlnIGZvciB0aGUgcmVsZXZhbnQgYWN0aW9uCiAgICBteSAkRnJvbnRlbmRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIklUU01DaGFuZ2U6OkZyb250ZW5kOjokUGFyYW17Q29uZmlnfS0+e0FjdGlvbn0iKTsKCiAgICAjIGdldCB0aGUgcmVxdWlyZWQgcHJpdmlsZWdlLCAncm8nIG9yICdydycKICAgIG15ICRSZXF1aXJlZFByaXY7CiAgICBpZiAoICRGcm9udGVuZENvbmZpZyAmJiAkRnJvbnRlbmRDb25maWctPntQZXJtaXNzaW9ufSApIHsKCiAgICAgICAgIyBnZXQgdGhlIHJlcXVpcmVkIHByaXYgZnJvbSB0aGUgZnJvbnRlbmQgY29uZmlndXJhdGlvbgogICAgICAgICRSZXF1aXJlZFByaXYgPSAkRnJvbnRlbmRDb25maWctPntQZXJtaXNzaW9ufTsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte0NvbmZpZ30tPntBY3Rpb259IGVxICdBZ2VudExpbmtPYmplY3QnICkgewoKICAgICAgICAjIHRoZSBMaW5rLWxpbmsgaXMgYSBzcGVjaWFsIGNhc2UsIGFzIGl0IGlzIG5vdCBzcGVjaWZpYyB0byBJVFNNQ2hhbmdlCiAgICAgICAgJFJlcXVpcmVkUHJpdiA9ICdydyc7CiAgICB9CgogICAgIyBEaXNwbGF5IHRoZSBtZW51LWxpbmssIHdoZW4gbm8gcHJpdmlsZWdlIGlzIHJlcXVpcmVkCiAgICBteSAkQWNjZXNzID0gMTsKCiAgICBpZiAoJFJlcXVpcmVkUHJpdikgewoKICAgICAgICAjIGNoZWNrIHBlcm1pc3Npb25zLCBiYXNlZCBvbiB0aGUgcmVxdWlyZWQgcHJpdmlsZWdlCiAgICAgICAgJEFjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPlBlcm1pc3Npb24oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICRSZXF1aXJlZFByaXYsCiAgICAgICAgICAgIEFjdGlvbiAgID0+ICRQYXJhbXtDb25maWd9LT57QWN0aW9ufSwKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0NoYW5nZX0tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgTG9nTm8gICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkUGFyYW17Q291bnRlcn0gaWYgISRBY2Nlc3M7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIG91dHB1dCBtZW51IGJsb2NrCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnTWVudScgKTsKCiAgICAjIG91dHB1dCBzZXBlcmF0b3IsIHdoZW4gdGhpcyBpcyBub3QgdGhlIGZpcnN0IG1lbnUgaXRlbQogICAgaWYgKCAkUGFyYW17Q291bnRlcn0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ01lbnVJdGVtU3BsaXQnICk7CiAgICB9CgogICAgIyBvdXRwdXQgbWVudSBpdGVtCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdNZW51SXRlbScsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXsgJFBhcmFte0NoYW5nZX0gfSwKICAgICAgICAgICAgJXsgJFBhcmFte0NvbmZpZ30gfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGNoZWNrIGlmIGEgZGlhbG9nIGhhcyB0byBiZSBzaG93bgogICAgaWYgKCAkUGFyYW17Q29uZmlnfS0+e0RpYWxvZ1RpdGxlfSApIHsKICAgICAgICBteSAkQ29uZmlnT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgICAgIG15ICRMYW5ndWFnZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6TGFuZ3VhZ2UnKTsKCiAgICAgICAgbXkgJUpTRGF0YSA9ICgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyAkUGFyYW17Q2hhbmdlfSB9LAogICAgICAgICAgICAleyAkUGFyYW17Q29uZmlnfSB9LAogICAgICAgICk7CgogICAgICAgIGRlbGV0ZSAkSlNEYXRhe0NvbmZpZ307CiAgICAgICAgZGVsZXRlICRKU0RhdGF7Q2hhbmdlfTsKCiAgICAgICAgJEpTRGF0YXtFbGVtZW50U2VsZWN0b3J9ICAgICAgICAgICAgPX4gcy9cWyVccypEYXRhXC5NZW51SURccypcfFxzKmh0bWxccyolXF0vJEpTRGF0YXtNZW51SUR9L2k7CiAgICAgICAgJEpTRGF0YXtEaWFsb2dDb250ZW50UXVlcnlTdHJpbmd9ICAgPX4gcy9cWyVccypEYXRhXC5DaGFuZ2VJRFxzKlx8XHMqaHRtbFxzKiVcXS8kSlNEYXRhe0NoYW5nZUlEfS9pOwogICAgICAgICRKU0RhdGF7Q29uZmlybWVkQWN0aW9uUXVlcnlTdHJpbmd9ID1+IHMvXFslXHMqRGF0YVwuQ2hhbmdlSURccypcfFxzKmh0bWxccyolXF0vJEpTRGF0YXtDaGFuZ2VJRH0vaTsKCiAgICAgICAgJEpTRGF0YXtEaWFsb2dUaXRsZX0gPX4gcy9cWyVccypUcmFuc2xhdGVcKCIoLiopIlwpXHMqXHxccypodG1sXHMqJVxdLyRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCQxKS9laTsKICAgICAgICAkSlNEYXRhe0RpYWxvZ1RpdGxlfSA9fiBzL1xbJVxzKkNvbmZpZ1woIiguKikiXClccyolXF0vJENvbmZpZ09iamVjdC0+R2V0KCQxKS9laTsKICAgICAgICAkSlNEYXRhe0RpYWxvZ1RpdGxlfSA9fiBzL1xbJVxzKkRhdGEuQ2hhbmdlTnVtYmVyXHMqXHxccypodG1sXHMqJVxdLyRKU0RhdGF7Q2hhbmdlTnVtYmVyfS9laTsKCiAgICAgICAgJEpTRGF0YXtNZW51SUR9ID0gJ01lbnUnIC4gJEpTRGF0YXtNZW51SUR9OwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgIEtleSAgID0+ICdJVFNNU2hvd0NvbmZpcm1EaWFsb2cuJyAuICRQYXJhbXtNZW51SUR9LAogICAgICAgICAgICBWYWx1ZSA9PiBcJUpTRGF0YSwKICAgICAgICApOwogICAgfQoKICAgICRQYXJhbXtDb3VudGVyfSsrOwoKICAgIHJldHVybiAkUGFyYW17Q291bnRlcn07Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/ITSMChange/MenuTimeSlot.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTUNoYW5nZTo6TWVudVRpbWVTbG90OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgVXNlcklEIHBhcmFtCiAgICAkU2VsZi0+e1VzZXJJRH0gPSAkUGFyYW17VXNlcklEfSB8fCBkaWUgIkdvdCBubyBVc2VySUQhIjsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0NoYW5nZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIENoYW5nZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgd2hldGhlciB0aGVyZSBhcmUgYW55IHdvcmtvcmRlcnMgeWV0CiAgICByZXR1cm4gJFBhcmFte0NvdW50ZXJ9IGlmICEkUGFyYW17Q2hhbmdlfS0+e1dvcmtPcmRlckNvdW50fTsKCiAgICAjIFRoZSBjaGFuZ2UgY2FuIG5vIGxvbmdlciBiZSBtb3ZlZCwgd2hlbiB0aGUgY2hhbmdlIGhhcyBhbHJlYWR5IHN0YXJ0ZWQuCiAgICByZXR1cm4gJFBhcmFte0NvdW50ZXJ9IGlmICRQYXJhbXtDaGFuZ2V9LT57QWN0dWFsU3RhcnRUaW1lfTsKCiAgICAjIGdldCBjb25maWcgZm9yIHRoZSByZWxldmFudCBhY3Rpb24KICAgIG15ICRGcm9udGVuZENvbmZpZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRQYXJhbXtDb25maWd9LT57QWN0aW9ufSIpOwoKICAgICMgZ2V0IHRoZSByZXF1aXJlZCBwcml2aWxlZ2UsICdybycgb3IgJ3J3JwogICAgbXkgJFJlcXVpcmVkUHJpdjsKICAgIGlmICgkRnJvbnRlbmRDb25maWcpIHsKCiAgICAgICAgIyBnZXQgdGhlIHJlcXVpcmVkIHByaXYgZnJvbSB0aGUgZnJvbnRlbmQgY29uZmlndXJhdGlvbgogICAgICAgICRSZXF1aXJlZFByaXYgPSAkRnJvbnRlbmRDb25maWctPntQZXJtaXNzaW9ufTsKICAgIH0KCiAgICAjIERpc3BsYXkgdGhlIG1lbnUtbGluaywgd2hlbiBubyBwcml2aWxlZ2UgaXMgcmVxdWlyZWQKICAgIG15ICRBY2Nlc3MgPSAxOwoKICAgIGlmICgkUmVxdWlyZWRQcml2KSB7CgogICAgICAgICMgY2hlY2sgcGVybWlzc2lvbnMsIGJhc2VkIG9uIHRoZSByZXF1aXJlZCBwcml2aWxlZ2UKICAgICAgICAkQWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+UGVybWlzc2lvbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJFJlcXVpcmVkUHJpdiwKICAgICAgICAgICAgQWN0aW9uICAgPT4gJFBhcmFte0NvbmZpZ30tPntBY3Rpb259LAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkUGFyYW17Q2hhbmdlfS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBMb2dObyAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuICRQYXJhbXtDb3VudGVyfSBpZiAhJEFjY2VzczsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgb3V0cHV0IG1lbnUgYmxvY2sKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdNZW51JyApOwoKICAgICMgb3V0cHV0IHNlcGVyYXRvciwgd2hlbiB0aGlzIGlzIG5vdCB0aGUgZmlyc3QgbWVudSBpdGVtCiAgICBpZiAoICRQYXJhbXtDb3VudGVyfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnTWVudUl0ZW1TcGxpdCcgKTsKICAgIH0KCiAgICAjIG91dHB1dCBtZW51IGl0ZW0KICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ01lbnVJdGVtJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyAkUGFyYW17Q2hhbmdlfSB9LAogICAgICAgICAgICAleyAkUGFyYW17Q29uZmlnfSB9LAogICAgICAgIH0sCiAgICApOwogICAgJFBhcmFte0NvdW50ZXJ9Kys7CgogICAgcmV0dXJuICRQYXJhbXtDb3VudGVyfTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Output/HTML/ITSMChange/MenuWorkOrdersNeeded.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTUNoYW5nZTo6TWVudVdvcmtPcmRlcnNOZWVkZWQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIEFzIG9mIDIwMTAtMDMtMTkgdGhpcyBtb2R1bGUgaXMgdW51c2VkLgojIEJ1dCBpdCBpcyBrZXB0IGluIHRoZSBkaXN0cmlidXRpb24sIGFzIGl0IHByb3ZpZGVzIHVzZWZ1bCBmdW5jdGlvbmFsaXR5IGZvciBmdXR1cmUgdXNlLgoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgVXNlcklEIHBhcmFtCiAgICAkU2VsZi0+e1VzZXJJRH0gPSAkUGFyYW17VXNlcklEfSB8fCBkaWUgIkdvdCBubyBVc2VySUQhIjsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0NoYW5nZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIENoYW5nZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgd2hldGhlciB0aGVyZSBhcmUgYW55IHdvcmtvcmRlcnMgeWV0CiAgICByZXR1cm4gJFBhcmFte0NvdW50ZXJ9IGlmICEkUGFyYW17Q2hhbmdlfS0+e1dvcmtPcmRlckNvdW50fTsKCiAgICAjIGdldCBjb25maWcgZm9yIHRoZSByZWxldmFudCBhY3Rpb24KICAgIG15ICRGcm9udGVuZENvbmZpZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRQYXJhbXtDb25maWd9LT57QWN0aW9ufSIpOwoKICAgICMgZ2V0IHRoZSByZXF1aXJlZCBwcml2aWxlZ2UsICdybycgb3IgJ3J3JwogICAgbXkgJFJlcXVpcmVkUHJpdjsKICAgIGlmICgkRnJvbnRlbmRDb25maWcpIHsKCiAgICAgICAgIyBnZXQgdGhlIHJlcXVpcmVkIHByaXYgZnJvbSB0aGUgZnJvbnRlbmQgY29uZmlndXJhdGlvbgogICAgICAgICRSZXF1aXJlZFByaXYgPSAkRnJvbnRlbmRDb25maWctPntQZXJtaXNzaW9ufTsKICAgIH0KCiAgICAjIERpc3BsYXkgdGhlIG1lbnUtbGluaywgd2hlbiBubyBwcml2aWxlZ2UgaXMgcmVxdWlyZWQKICAgIG15ICRBY2Nlc3MgPSAxOwoKICAgIGlmICgkUmVxdWlyZWRQcml2KSB7CgogICAgICAgICMgY2hlY2sgcGVybWlzc2lvbnMsIGJhc2VkIG9uIHRoZSByZXF1aXJlZCBwcml2aWxlZ2UKICAgICAgICAkQWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+UGVybWlzc2lvbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJFJlcXVpcmVkUHJpdiwKICAgICAgICAgICAgQWN0aW9uICAgPT4gJFBhcmFte0NvbmZpZ30tPntBY3Rpb259LAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkUGFyYW17Q2hhbmdlfS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBMb2dObyAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuICRQYXJhbXtDb3VudGVyfSBpZiAhJEFjY2VzczsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgb3V0cHV0IG1lbnUgYmxvY2sKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdNZW51JyApOwoKICAgICMgb3V0cHV0IHNlcGVyYXRvciwgd2hlbiB0aGlzIGlzIG5vdCB0aGUgZmlyc3QgbWVudSBpdGVtCiAgICBpZiAoICRQYXJhbXtDb3VudGVyfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnTWVudUl0ZW1TcGxpdCcgKTsKICAgIH0KCiAgICAjIG91dHB1dCBtZW51IGl0ZW0KICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ01lbnVJdGVtJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyAkUGFyYW17Q2hhbmdlfSB9LAogICAgICAgICAgICAleyAkUGFyYW17Q29uZmlnfSB9LAogICAgICAgIH0sCiAgICApOwogICAgJFBhcmFte0NvdW50ZXJ9Kys7CgogICAgcmV0dXJuICRQYXJhbXtDb3VudGVyfTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Output/HTML/ITSMChange/OverviewSmall.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTUNoYW5nZTo6T3ZlcnZpZXdTbWFsbDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTZXJ2aWNlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IFVzZXJJRCBwYXJhbQogICAgJFNlbGYtPntVc2VySUR9ID0gJFBhcmFte1VzZXJJRH0gfHwgZGllICJHb3Qgbm8gVXNlcklEISI7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbG9nIG9iamVjdAogICAgbXkgJExvZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KFBhZ2VTaG93biBTdGFydEhpdCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBuZWVkIENoYW5nZUlEcyBvciBXb3JrT3JkZXJJRHMKICAgIGlmICggISRQYXJhbXtDaGFuZ2VJRHN9ICYmICEkUGFyYW17V29ya09yZGVySURzfSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIHRoZSBDaGFuZ2VJRHMgb3IgdGhlIFdvcmtPcmRlcklEcyEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgb25seSBvbmUgb2YgQ2hhbmdlSURzIG9yIFdvcmtPcmRlcklEcyBjYW4gYmUgdXNlZAogICAgaWYgKCAkUGFyYW17Q2hhbmdlSURzfSAmJiAkUGFyYW17V29ya09yZGVySURzfSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIGVpdGhlciB0aGUgQ2hhbmdlSURzIG9yIHRoZSBXb3JrT3JkZXJJRHMsIG5vdCBib3RoIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgc2VydmljZSBvYmplY3QKICAgIG15ICRTZXJ2aWNlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlcnZpY2UnKTsKCiAgICAjIGluIHRoZSBjdXN0b21lciBmcm9udGVuZAogICAgbXkgJUN1c3RvbWVyVXNlclNlcnZpY2VzOwogICAgaWYgKCAkUGFyYW17RnJvbnRlbmR9IGVxICdDdXN0b21lcicgJiYgJFNlbGYtPntDb25maWd9LT57U2hvd09ubHlDaGFuZ2VzV2l0aEFsbG93ZWRTZXJ2aWNlc30gKSB7CgogICAgICAgICMgZ2V0IGFsbCBzZXJ2aWNlcyB0aGUgY3VzdG9tZXIgdXNlciBpcyBhbGxvd2VkIHRvIHVzZQogICAgICAgICVDdXN0b21lclVzZXJTZXJ2aWNlcyA9ICRTZXJ2aWNlT2JqZWN0LT5DdXN0b21lclVzZXJTZXJ2aWNlTWVtYmVyTGlzdCgKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyTG9naW4gPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBSZXN1bHQgICAgICAgICAgICA9PiAnSEFTSCcsCiAgICAgICAgICAgIERlZmF1bHRTZXJ2aWNlcyAgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGRlZmluZSBpbmNpZGVudCBzaWduYWxzLCBuZWVkZWQgZm9yIHNlcnZpY2VzCiAgICBteSAlSW5jaVNpZ25hbHMgPSAoCiAgICAgICAgb3BlcmF0aW9uYWwgPT4gJ2dyZWVubGVkJywKICAgICAgICB3YXJuaW5nICAgICA9PiAneWVsbG93bGVkJywKICAgICAgICBpbmNpZGVudCAgICA9PiAncmVkbGVkJywKICAgICk7CgogICAgIyBzdG9yZSBlaXRoZXIgdGhlIENoYW5nZUlEcyBvciB0aGUgV29ya09yZGVySURzCiAgICBteSBASURzOwogICAgaWYgKCAkUGFyYW17Q2hhbmdlSURzfSAmJiByZWYgJFBhcmFte0NoYW5nZUlEc30gZXEgJ0FSUkFZJyApIHsKICAgICAgICBASURzID0gQHsgJFBhcmFte0NoYW5nZUlEc30gfTsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte1dvcmtPcmRlcklEc30gJiYgcmVmICRQYXJhbXtXb3JrT3JkZXJJRHN9IGVxICdBUlJBWScgKSB7CiAgICAgICAgQElEcyA9IEB7ICRQYXJhbXtXb3JrT3JkZXJJRHN9IH07CiAgICB9CgogICAgIyBjaGVjayBTaG93Q29sdW1ucyBwYXJhbWV0ZXIKICAgIG15IEBTaG93Q29sdW1uczsKICAgIG15ICVEeW5hbWljRmllbGRDb2x1bW5zOwogICAgaWYgKCAkUGFyYW17U2hvd0NvbHVtbnN9ICYmIHJlZiAkUGFyYW17U2hvd0NvbHVtbnN9IGVxICdBUlJBWScgKSB7CgogICAgICAgIGZvciBteSAkQ29sdW1uICggc29ydCBAeyAkUGFyYW17U2hvd0NvbHVtbnN9IH0gKSB7CgogICAgICAgICAgICAjIHJlbWVtYmVyIHRoZSBkeW5hbWljIGZpZWxkIG5hbWUKICAgICAgICAgICAgaWYgKCAkQ29sdW1uID1+IG17IFxBIER5bmFtaWNGaWVsZF8gKC4rKSBceiB9eG1zICkgewogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZENvbHVtbnN7JDF9ID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyByZW1lbWJlciBub3JtYWwgZmllbGRzCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgcHVzaCBAU2hvd0NvbHVtbnMsICRDb2x1bW47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBvYmplY3QKICAgIG15ICREeW5hbWljRmllbGRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGQgbGlzdCBvZiBjaGFuZ2UgYW5kIHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcwogICAgbXkgJER5bmFtaWNGaWVsZExpc3QgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gWyAnSVRTTUNoYW5nZScsICdJVFNNV29ya09yZGVyJyBdLAogICAgICAgIEZpZWxkRmlsdGVyID0+IFwlRHluYW1pY0ZpZWxkQ29sdW1ucywKICAgICk7CgogICAgIyBhZGQgdGhlIGFscmVhZHkgc29ydGVkIGR5bmFtaWMgZmllbGRzCiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZCAoIEB7JER5bmFtaWNGaWVsZExpc3R9ICkgewogICAgICAgIHB1c2ggQFNob3dDb2x1bW5zLCAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkLT57TmFtZX07CiAgICB9CgogICAgIyBidWlsZCBsb29rdXAgaGFzaCBmb3IgU2hvd0NvbHVtbnMKICAgIG15ICVTaG93Q29sdW1uc0xvb2t1cCA9IG1hcCB7ICRfID0+IDEgfSBAU2hvd0NvbHVtbnM7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGJ1aWxkIGNvbHVtbiBoZWFkZXIgYmxvY2tzCiAgICBpZiAoQFNob3dDb2x1bW5zKSB7CgogICAgICAgIENPTFVNTjoKICAgICAgICBmb3IgbXkgJENvbHVtbiAoQFNob3dDb2x1bW5zKSB7CgogICAgICAgICAgICAjIGNyZWF0ZSBuZWVkZWQgdmVyaWFibGVzCiAgICAgICAgICAgIG15ICRDU1MgPSAnT3ZlcnZpZXdIZWFkZXInOwogICAgICAgICAgICBteSAkT3JkZXJCeTsKCiAgICAgICAgICAgICMgcmVtb3ZlIElEIGlmIG5lY2VzYXJ5CiAgICAgICAgICAgIGlmICggJFBhcmFte1NvcnRCeX0gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17U29ydEJ5fSA9ICggJFBhcmFte1NvcnRCeX0gZXEgJ1ByaW9yaXR5SUQnICkKICAgICAgICAgICAgICAgICAgICA/ICdQcmlvcml0eScKICAgICAgICAgICAgICAgICAgICA6ICggJFBhcmFte1NvcnRCeX0gZXEgJ0NhdGVnb3J5SUQnICkgICAgICAgPyAnQ2F0ZWdvcnknCiAgICAgICAgICAgICAgICAgICAgOiAoICRQYXJhbXtTb3J0Qnl9IGVxICdDaGFuZ2VCdWlsZGVySUQnICkgID8gJ0NoYW5nZUJ1aWxkZXInCiAgICAgICAgICAgICAgICAgICAgOiAoICRQYXJhbXtTb3J0Qnl9IGVxICdDaGFuZ2VNYW5hZ2VySUQnICkgID8gJ0NoYW5nZU1hbmFnZXInCiAgICAgICAgICAgICAgICAgICAgOiAoICRQYXJhbXtTb3J0Qnl9IGVxICdDaGFuZ2VTdGF0ZUlEJyApICAgID8gJ0NoYW5nZVN0YXRlJwogICAgICAgICAgICAgICAgICAgIDogKCAkUGFyYW17U29ydEJ5fSBlcSAnSW1wYWN0SUQnICkgICAgICAgICA/ICdJbXBhY3QnCiAgICAgICAgICAgICAgICAgICAgOiAoICRQYXJhbXtTb3J0Qnl9IGVxICdXb3JrT3JkZXJBZ2VudElEJyApID8gJ1dvcmtPcmRlckFnZW50JwogICAgICAgICAgICAgICAgICAgIDogKCAkUGFyYW17U29ydEJ5fSBlcSAnV29ya09yZGVyU3RhdGVJRCcgKSA/ICdXb3JrT3JkZXJTdGF0ZScKICAgICAgICAgICAgICAgICAgICA6ICggJFBhcmFte1NvcnRCeX0gZXEgJ1dvcmtPcmRlclR5cGVJRCcgKSAgPyAnV29ya09yZGVyVHlwZScKICAgICAgICAgICAgICAgICAgICA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGFyYW17U29ydEJ5fTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzZXQgdGhlIGNvcnJlY3QgU2V0IENTUyBjbGFzcyBhbmQgb3JkZXIgYnkgbGluawogICAgICAgICAgICBpZiAoICRQYXJhbXtTb3J0Qnl9ICYmICggJFBhcmFte1NvcnRCeX0gZXEgJENvbHVtbiApICkgewogICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17T3JkZXJCeX0gJiYgKCAkUGFyYW17T3JkZXJCeX0gZXEgJ1VwJyApICkgewogICAgICAgICAgICAgICAgICAgICRPcmRlckJ5ID0gJ0Rvd24nOwogICAgICAgICAgICAgICAgICAgICRDU1MgLj0gJyBTb3J0RGVzY2VuZGluZ0xhcmdlJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRPcmRlckJ5ID0gJ1VwJzsKICAgICAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29ydEFzY2VuZGluZ0xhcmdlJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRPcmRlckJ5ID0gJ1VwJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBoYW5kbGUgZHluYW1pYyBmaWVsZHMKICAgICAgICAgICAgaWYgKCAkQ29sdW1uID1+IG17IFxBIER5bmFtaWNGaWVsZF8gKC4rKSBceiB9eG1zICkgewoKICAgICAgICAgICAgICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgZGF0YQogICAgICAgICAgICAgICAgbXkgJER5bmFtaWNGaWVsZCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEdldCgKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICQxLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmREeW5hbWljRmllbGRIZWFkZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAleyREeW5hbWljRmllbGR9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgQ09MVU1OOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGhhbmRsZSAibm9ybWFsIiBmaWVsZHMKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmQnIC4gJENvbHVtbiAuICdIZWFkZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIENTUyAgICAgPT4gJENTUywKICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSA9PiAkT3JkZXJCeSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBteSAkT3V0cHV0ICA9ICcnOwogICAgbXkgJENvdW50ZXIgPSAwOwoKICAgICMgc2hvdyBjaGFuZ2VzIGlmIHRoZXJlIGFyZSBzb21lCiAgICBpZiAoQElEcykgewoKICAgICAgICBJRDoKICAgICAgICBmb3IgbXkgJElEIChASURzKSB7CiAgICAgICAgICAgICRDb3VudGVyKys7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRDb3VudGVyID49ICRQYXJhbXtTdGFydEhpdH0KICAgICAgICAgICAgICAgICYmICRDb3VudGVyIDwgKCAkUGFyYW17UGFnZVNob3dufSArICRQYXJhbXtTdGFydEhpdH0gKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgIyB0byBzdG9yZSBhbGwgZGF0YQogICAgICAgICAgICAgICAgbXkgJURhdGE7CgogICAgICAgICAgICAgICAgIyB0byBzdG9yZSBkYXRhIG9mIHN1Yi1lbGVtZW50cwogICAgICAgICAgICAgICAgbXkgJVN1YkVsZW1lbnREYXRhOwoKICAgICAgICAgICAgICAgIG15ICRDaGFuZ2VJRDsKICAgICAgICAgICAgICAgIGlmICggJFBhcmFte0NoYW5nZUlEc30gKSB7CgogICAgICAgICAgICAgICAgICAgICMgc2V0IGNoYW5nZSBpZAogICAgICAgICAgICAgICAgICAgICRDaGFuZ2VJRCA9ICRJRDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJFBhcmFte1dvcmtPcmRlcklEc30gKSB7CgogICAgICAgICAgICAgICAgICAgICMgZ2V0IHdvcmtvcmRlciBkYXRhCiAgICAgICAgICAgICAgICAgICAgbXkgJFdvcmtPcmRlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckdldCgKICAgICAgICAgICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJElELAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJFdvcmtPcmRlcjsKCiAgICAgICAgICAgICAgICAgICAgIyBhZGQgd29ya29yZGVyIGRhdGEKICAgICAgICAgICAgICAgICAgICAlRGF0YSA9ICggJURhdGEsICV7JFdvcmtPcmRlcn0gKTsKCiAgICAgICAgICAgICAgICAgICAgIyBzZXQgY2hhbmdlIGlkIGZyb20gd29ya29yZGVyIGRhdGEKICAgICAgICAgICAgICAgICAgICAkQ2hhbmdlSUQgPSAkV29ya09yZGVyLT57Q2hhbmdlSUR9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgZ2V0IGNoYW5nZSBkYXRhCiAgICAgICAgICAgICAgICBteSAkQ2hhbmdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlR2V0KAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRDaGFuZ2U7CgogICAgICAgICAgICAgICAgIyBhZGQgY2hhbmdlIGRhdGEsCiAgICAgICAgICAgICAgICAjICggbGV0IHdvcmtvcmRlciBkYXRhIG92ZXJ3cml0ZQogICAgICAgICAgICAgICAgIyBzb21lIGNoYW5nZSBhdHRyaWJ1dGVzLCBpLmUuIFBsYW5uZWRTdGFydFRpbWUsIGV0Yy4uLiApCiAgICAgICAgICAgICAgICAlRGF0YSA9ICggJXskQ2hhbmdlfSwgJURhdGEgKTsKCiAgICAgICAgICAgICAgICAjIGdldCB1c2VyIGRhdGEgZm9yIG5lZWRlZCB1c2VyIHR5cGVzCiAgICAgICAgICAgICAgICBVU0VSVFlQRToKICAgICAgICAgICAgICAgIGZvciBteSAkVXNlclR5cGUgKHF3KENoYW5nZUJ1aWxkZXIgQ2hhbmdlTWFuYWdlciBXb3JrT3JkZXJBZ2VudCkpIHsKCiAgICAgICAgICAgICAgICAgICAgIyBvbmx5IHNob3cgdGhlIGRhdGEgaWYgZW5hYmxlZCBpbiBTaG93Q29sdW1ucyBjb25maWcKICAgICAgICAgICAgICAgICAgICBuZXh0IFVTRVJUWVBFIGlmICEkU2hvd0NvbHVtbnNMb29rdXB7JFVzZXJUeXBlfTsKCiAgICAgICAgICAgICAgICAgICAgIyBjaGVjayBpZiBVc2VyVHlwZSBhdHRyaWJ1dGUgZXhpc3RzIGVpdGhlciBpbiBjaGFuZ2Ugb3Igd29ya29yZGVyCiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJENoYW5nZS0+eyAkVXNlclR5cGUgLiAnSUQnIH0gJiYgISREYXRheyAkVXNlclR5cGUgLiAnSUQnIH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgVVNFUlRZUEU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIGdldCB1c2VyIG9iamVjdAogICAgICAgICAgICAgICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgICAgICAgICAgICAgIyB3aGVuIGNhbGxlZCBmcm9tIHRoZSBjdXN0b21lciBpbnRlcmZhY2UKICAgICAgICAgICAgICAgICAgICBpZiAoICEkVXNlck9iamVjdC0+Y2FuKCdHZXRVc2VyRGF0YScpICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyB3b3JrYXJvdW5kIGZvciBjdXN0b21lciBpbnRlcmZhY2UKICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlIHRoZSBVc2VyT2JqZWN0IGlzIGluIGZhY3QgdGhlIEN1c3RvbWVyVXNlck9iamVjdAogICAgICAgICAgICAgICAgICAgICAgICAjIHNvIHdlIG5lZWQgdG8gY29ycmVjdCB0aGlzIGhlcmUgYnkgY3JlYXRpbmcgYSBuZXcgVXNlck9iamVjdAogICAgICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e0N1c3RvbWVyVXNlck9iamVjdH0gPSAkVXNlck9iamVjdDsKICAgICAgICAgICAgICAgICAgICAgICAgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBnZXQgdXNlciBkYXRhCiAgICAgICAgICAgICAgICAgICAgbXkgJVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkQ2hhbmdlLT57ICRVc2VyVHlwZSAuICdJRCcgfSB8fCAkRGF0YXsgJFVzZXJUeXBlIC4gJ0lEJyB9LAogICAgICAgICAgICAgICAgICAgICAgICBDYWNoZWQgPT4gMSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIHNldCB1c2VyIGRhdGEKICAgICAgICAgICAgICAgICAgICAkRGF0YXsgJFVzZXJUeXBlIC4gJ1VzZXJMb2dpbicgfSAgICAgPSAkVXNlcntVc2VyTG9naW59OwogICAgICAgICAgICAgICAgICAgICREYXRheyAkVXNlclR5cGUgLiAnVXNlckZpcnN0bmFtZScgfSA9ICRVc2Vye1VzZXJGaXJzdG5hbWV9OwogICAgICAgICAgICAgICAgICAgICREYXRheyAkVXNlclR5cGUgLiAnVXNlckxhc3RuYW1lJyB9ICA9ICRVc2Vye1VzZXJMYXN0bmFtZX07CiAgICAgICAgICAgICAgICAgICAgJERhdGF7ICRVc2VyVHlwZSAuICdVc2VyRnVsbG5hbWUnIH0gID0gJFVzZXJ7VXNlckZ1bGxuYW1lfTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGlmIHRoZSBzZXJ2aWNlcyBjb2x1bW4gc2hvdWxkIGJlIHNob3duCiAgICAgICAgICAgICAgICBpZiAoICRTaG93Q29sdW1uc0xvb2t1cHtTZXJ2aWNlc30gKSB7CgogICAgICAgICAgICAgICAgICAgICMgdG8gc3RvcmUgdGhlIGxpbmtlZCBzZXJ2aWNlIGRhdGEKICAgICAgICAgICAgICAgICAgICBteSAkTGlua0xpc3RXaXRoRGF0YSA9IHt9OwoKICAgICAgICAgICAgICAgICAgICBteSBAV29ya09yZGVySURzOwoKICAgICAgICAgICAgICAgICAgICAjIHN0b3JlIHRoZSBjb21iaW5lZCBsaW5rZWQgc2VydmljZXMgZGF0YSBmcm9tIGFsbCB3b3Jrb3JkZXJzIG9mIHRoaXMgY2hhbmdlCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17Q2hhbmdlSURzfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgQFdvcmtPcmRlcklEcyA9IEB7ICRDaGFuZ2UtPntXb3JrT3JkZXJJRHN9IH07CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIHN0b3JlIG9ubHkgdGhlIGxpbmtlZCBzZXJ2aWNlcyBmb3IgdGhpcyB3b3Jrb3JkZXIKICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRQYXJhbXtXb3JrT3JkZXJJRHN9ICkgewogICAgICAgICAgICAgICAgICAgICAgICBAV29ya09yZGVySURzID0gKCRJRCk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIHN0b3JlIHRoZSBjb21iaW5lZCBsaW5rZWQgc2VydmljZXMgZGF0YQogICAgICAgICAgICAgICAgICAgIGZvciBteSAkV29ya09yZGVySUQgKEBXb3JrT3JkZXJJRHMpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgZ2V0IGxpbmtlZCBvYmplY3RzIG9mIHRoaXMgd29ya29yZGVyCiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRMaW5rTGlzdFdpdGhEYXRhV29ya09yZGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0JyktPkxpbmtMaXN0V2l0aERhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXRlICA9PiAnVmFsaWQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICBPQkpFQ1Q6CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBteSAkT2JqZWN0ICggc29ydCBrZXlzICV7JExpbmtMaXN0V2l0aERhdGFXb3JrT3JkZXJ9ICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb25seSBzaG93IGxpbmtlZCBzZXJ2aWNlcyBvZiB3b3Jrb3JkZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJE9iamVjdCBuZSAnU2VydmljZScgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBPQkpFQ1Q7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgTElOS1RZUEU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJExpbmtUeXBlICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0IGtleXMgJXsgJExpbmtMaXN0V2l0aERhdGFXb3JrT3JkZXItPnskT2JqZWN0fSB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBESVJFQ1RJT046CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG15ICREaXJlY3Rpb24gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXMgJXsgJExpbmtMaXN0V2l0aERhdGFXb3JrT3JkZXItPnskT2JqZWN0fS0+eyRMaW5rVHlwZX0gfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydCBrZXlzICV7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJExpbmtMaXN0V2l0aERhdGFXb3JrT3JkZXItPnskT2JqZWN0fS0+eyRMaW5rVHlwZX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT57JERpcmVjdGlvbn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgY29tYmluZSB0aGUgbGlua2VkIG9iamVjdCBkYXRhIGZyb20gYWxsIHdvcmtvcmRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRMaW5rTGlzdFdpdGhEYXRhLT57JE9iamVjdH0tPnskTGlua1R5cGV9LT57JERpcmVjdGlvbn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPnskSUR9ID0gJExpbmtMaXN0V2l0aERhdGFXb3JrT3JkZXItPnskT2JqZWN0fS0+eyRMaW5rVHlwZX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPnskRGlyZWN0aW9ufS0+eyRJRH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICMgZ2V0IHVuaXF1ZSBzZXJ2aWNlIGlkcwogICAgICAgICAgICAgICAgICAgIG15ICVVbmlxdWVTZXJ2aWNlSURzOwogICAgICAgICAgICAgICAgICAgIG15ICRTZXJ2aWNlc1JlZiA9ICRMaW5rTGlzdFdpdGhEYXRhLT57U2VydmljZX0gfHwge307CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRMaW5rVHlwZSAoIHNvcnQga2V5cyAleyRTZXJ2aWNlc1JlZn0gKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGV4dHJhY3QgbGluayB0eXBlIExpc3QKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJExpbmtUeXBlTGlzdCA9ICRTZXJ2aWNlc1JlZi0+eyRMaW5rVHlwZX07CgogICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJERpcmVjdGlvbiAoIHNvcnQga2V5cyAleyRMaW5rVHlwZUxpc3R9ICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZXh0cmFjdCBkaXJlY3Rpb24gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJERpcmVjdGlvbkxpc3QgPSAkU2VydmljZXNSZWYtPnskTGlua1R5cGV9LT57JERpcmVjdGlvbn07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjb2xsZWN0IHVuaXF1ZSBzZXJ2aWNlIGlkcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRTZXJ2aWNlSUQgKCBzb3J0IGtleXMgJXskRGlyZWN0aW9uTGlzdH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFVuaXF1ZVNlcnZpY2VJRHN7JFNlcnZpY2VJRH0rKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBnZXQgdGhlIGRhdGEgZm9yIGVhY2ggc2VydmljZQogICAgICAgICAgICAgICAgICAgIG15IEBTZXJ2aWNlc0RhdGE7CiAgICAgICAgICAgICAgICAgICAgU0VSVklDRUlEOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkU2VydmljZUlEICggc29ydCBrZXlzICVVbmlxdWVTZXJ2aWNlSURzICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiB0aGUgY3VzdG9tZXIgZnJvbnRlbmQKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBhcmFte0Zyb250ZW5kfSBlcSAnQ3VzdG9tZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAkU2VsZi0+e0NvbmZpZ30tPntTaG93T25seUNoYW5nZXNXaXRoQWxsb3dlZFNlcnZpY2VzfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBkbyBub3Qgc2hvdyB0aGlzIHNlcnZpY2UgaWYgY3VzdG9tZXIgaXMgbm90IGFsbG93ZWQgdG8gdXNlIGl0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0IFNFUlZJQ0VJRCBpZiAhJEN1c3RvbWVyVXNlclNlcnZpY2VzeyRTZXJ2aWNlSUR9OwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAjIGdldCBzZXJ2aWNlIGRhdGEKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJVNlcnZpY2VEYXRhID0gJFNlcnZpY2VPYmplY3QtPlNlcnZpY2VHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgICAgID0+ICRTZXJ2aWNlSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmNpZGVudFN0YXRlID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgYWRkIGN1cnJlbnQgaW5jaWRlbnQgc2lnbmFsCiAgICAgICAgICAgICAgICAgICAgICAgICRTZXJ2aWNlRGF0YXtDdXJJbmNpU2lnbmFsfSA9ICRJbmNpU2lnbmFsc3sgJFNlcnZpY2VEYXRhe0N1ckluY2lTdGF0ZVR5cGV9IH07CgogICAgICAgICAgICAgICAgICAgICAgICAjIHN0b3JlIHNlcnZpY2UgZGF0YQogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBTZXJ2aWNlc0RhdGEsIFwlU2VydmljZURhdGE7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIHNvcnQgc2VydmljZXMgZGF0YSBieSBzZXJ2aWNlIG5hbWUKICAgICAgICAgICAgICAgICAgICBAU2VydmljZXNEYXRhID0gc29ydCB7ICRhLT57TmFtZX0gY21wICRiLT57TmFtZX0gfSBAU2VydmljZXNEYXRhOwoKICAgICAgICAgICAgICAgICAgICAjIGluIHRoZSBjdXN0b21lciBmcm9udGVuZAogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgJFBhcmFte0Zyb250ZW5kfSBlcSAnQ3VzdG9tZXInCiAgICAgICAgICAgICAgICAgICAgICAgICYmICRTZWxmLT57Q29uZmlnfS0+e1Nob3dPbmx5Q2hhbmdlc1dpdGhBbGxvd2VkU2VydmljZXN9CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGRvIG5vdCBzaG93IHRoZSBjaGFuZ2UgaWYgaXQgaGFzIG5vIHNlcnZpY2VzCiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgIUBTZXJ2aWNlc0RhdGE7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIHN0b3JlIHNlcnZpY2VzIGRhdGEKICAgICAgICAgICAgICAgICAgICAkU3ViRWxlbWVudERhdGF7U2VydmljZXN9ID0gXEBTZXJ2aWNlc0RhdGE7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBidWlsZCByZWNvcmQgYmxvY2sKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgJURhdGEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBidWlsZCBjb2x1bW4gcmVjb3JkIGJsb2NrcwogICAgICAgICAgICAgICAgaWYgKEBTaG93Q29sdW1ucykgewoKICAgICAgICAgICAgICAgICAgICBDT0xVTU46CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRDb2x1bW4gKEBTaG93Q29sdW1ucykgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBoYW5kbGUgZHluYW1pYyBmaWVsZHMKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkQ29sdW1uID1+IG17IFxBIER5bmFtaWNGaWVsZF8gKC4rKSBceiB9eG1zICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgZGF0YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJER5bmFtaWNGaWVsZCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEdldCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICQxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGdldCBkeW5hbWljIGZpZWxkIGJhY2tlbmQgb2JqZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGdldCBmaWVsZCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFZhbHVlID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlR2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRWYWx1ZVN0cmcgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RGlzcGxheVZhbHVlUmVuZGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkVmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVNYXhDaGFycyAgICAgID0+IDIwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmREeW5hbWljRmllbGQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZER5bmFtaWNGaWVsZFBsYWluJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlU3RyZy0+e1ZhbHVlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgIyBoYW5kbGUgIm5vcm1hbCIgZmllbGRzCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcgLiAkQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIHRoaXMgY29sdW1uIGNvbnRhaW5zIHN1Yi1lbGVtZW50cwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRTdWJFbGVtZW50RGF0YXskQ29sdW1ufSAmJiByZWYgJFN1YkVsZW1lbnREYXRheyRDb2x1bW59IGVxICdBUlJBWScgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRTdWJFbGVtZW50ICggQHsgJFN1YkVsZW1lbnREYXRheyRDb2x1bW59IH0gKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgc2hvdyBzdWItZWxlbWVudHMgb2YgY29sdW1uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcgLiAkQ29sdW1uIC4gJ1N1YkVsZW1lbnQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJXskU3ViRWxlbWVudH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhJFN1YkVsZW1lbnREYXRhe1NlcnZpY2VzfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcgLiAkQ29sdW1uIC4gJ1N1YkVsZW1lbnRFbXB0eScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICMgZG8gbm90IGRpc3BsYXkgY29sdW1ucyBhcyBsaW5rcyBpbiB0aGUgY3VzdG9tZXIgZnJvbnRlbmQKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBDT0xVTU4gaWYgJFBhcmFte0Zyb250ZW5kfSBlcSAnQ3VzdG9tZXInOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyBzaG93IGxpbmtzIGlmIGF2YWlsYWJsZQogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcgLiAkQ29sdW1uIC4gJ0xpbmtTdGFydCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJURhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcgLiAkQ29sdW1uIC4gJ0xpbmtFbmQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBpZiB0aGVyZSBhcmUgbm8gY2hhbmdlcyB0byBzaG93LCBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZSBpcyBkaXNwbGF5ZWQgaW4gdGhlIHRhYmxlCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmRNc2cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFRvdGFsQ29sdW1ucyA9PiBzY2FsYXIgQFNob3dDb2x1bW5zLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyB1c2UgdGVtcGxhdGUKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNQ2hhbmdlT3ZlcnZpZXdTbWFsbCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAkU2VsZi0+e1ZpZXdUeXBlfSwKICAgICAgICAgICAgQ29sdW1uQ291bnQgPT4gc2NhbGFyIEBTaG93Q29sdW1ucywKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Output/HTML/ITSMTemplate/OverviewSmall.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTVRlbXBsYXRlOjpPdmVydmlld1NtYWxsOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6TGFuZ3VhZ2UnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlRlbXBsYXRlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OlZhbGlkJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgVXNlcklEIHBhcmFtCiAgICAkU2VsZi0+e1VzZXJJRH0gPSAkUGFyYW17VXNlcklEfSB8fCBkaWUgIkdvdCBubyBVc2VySUQhIjsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsb2cgb2JqZWN0CiAgICBteSAkTG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoUGFnZVNob3duIFN0YXJ0SGl0KSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIG5lZWQgVGVtcGxhdGVJRHMKICAgIGlmICggISRQYXJhbXtUZW1wbGF0ZUlEc30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCB0aGUgVGVtcGxhdGVJRHMhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHN0b3JlIHRoZSB0ZW1wbGF0ZSBJRHMKICAgIG15IEBJRHMgPSBAeyAkUGFyYW17VGVtcGxhdGVJRHN9IH07CgogICAgIyBjaGVjayBTaG93Q29sdW1ucyBwYXJhbWV0ZXIKICAgIG15IEBTaG93Q29sdW1uczsKICAgIGlmICggJFBhcmFte1Nob3dDb2x1bW5zfSAmJiByZWYgJFBhcmFte1Nob3dDb2x1bW5zfSBlcSAnQVJSQVknICkgewogICAgICAgIEBTaG93Q29sdW1ucyA9IEB7ICRQYXJhbXtTaG93Q29sdW1uc30gfTsKICAgIH0KCiAgICAjIGZvciB0aGUgdGVtcGxhdGUgZGVsZXRpb24gbGluayB3ZSBuZWVkIHRvIGNoZWNrIHRoZSBwZXJtaXNzaW9ucwogICAgbXkgJERlbGV0ZUZvdW5kID0gZ3JlcCB7ICRfIGVxICdEZWxldGUnIH0gQFNob3dDb2x1bW5zOwogICAgaWYgKCREZWxldGVGb3VuZCkgewogICAgICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgICAgIG15ICRHcm91cE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKICAgICAgICBteSAkTW9kdWxlUmVnICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdGcm9udGVuZDo6TW9kdWxlJyktPntBZ2VudElUU01UZW1wbGF0ZURlbGV0ZX07CgogICAgICAgIG15ICVHcm91cHM7CiAgICAgICAgJEdyb3Vwc3tHcm91cFJvfSA9IHsKICAgICAgICAgICAgcmV2ZXJzZSAkR3JvdXBPYmplY3QtPlBlcm1pc3Npb25Vc2VyR2V0KAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgIFR5cGUgICA9PiAncm8nLAogICAgICAgICAgICApCiAgICAgICAgfTsKICAgICAgICAkR3JvdXBze0dyb3VwfSA9IHsKICAgICAgICAgICAgcmV2ZXJzZSAkR3JvdXBPYmplY3QtPlBlcm1pc3Npb25Vc2VyR2V0KAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgIFR5cGUgICA9PiAncncnLAogICAgICAgICAgICApCiAgICAgICAgfTsKCiAgICAgICAgbXkgJEFjY2Vzc09rOwogICAgICAgIGZvciBteSAkR3JvdXBUeXBlIChxdyhHcm91cCBHcm91cFJvKSkgewoKICAgICAgICAgICAgUEVSTUlTU0lPTjoKICAgICAgICAgICAgZm9yIG15ICRHcm91cCAoIEB7ICRNb2R1bGVSZWctPnskR3JvdXBUeXBlfSB8fCBbXSB9ICkgewogICAgICAgICAgICAgICAgbmV4dCBQRVJNSVNTSU9OIGlmICEkR3JvdXBzeyRHcm91cFR5cGV9LT57JEdyb3VwfTsKCiAgICAgICAgICAgICAgICAkQWNjZXNzT2sgPSAxOwoKICAgICAgICAgICAgICAgIGxhc3QgUEVSTUlTU0lPTjsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJEFjY2Vzc09rICkgewogICAgICAgICAgICBAU2hvd0NvbHVtbnMgPSBncmVwIHsgJF8gbmUgJ0RlbGV0ZScgfSBAU2hvd0NvbHVtbnM7CiAgICAgICAgfQogICAgfQoKICAgIG15IEBDb2wgPSAocXcoTmFtZSBUZW1wbGF0ZVR5cGVJRCBWYWxpZElEIENyZWF0ZVRpbWUgQ2hhbmdlVGltZSkpOwogICAgbXkgJU9yZGVyOwogICAgbXkgJUNTUzsKCiAgICBmb3IgbXkgJEtleSAoQENvbCkgewogICAgICAgIGlmICggJFBhcmFte1NvcnRCeX0gJiYgKCAkUGFyYW17U29ydEJ5fSBlcSAkS2V5ICkgKSB7CiAgICAgICAgICAgIGlmICggJFBhcmFte09yZGVyQnl9ICYmICggJFBhcmFte09yZGVyQnl9IGVxICdVcCcgKSApIHsKICAgICAgICAgICAgICAgICRPcmRlcnsgJ09yZGVyQnknIC4gJEtleSB9ID0gJ0Rvd24nOwogICAgICAgICAgICAgICAgJENTU3sgJ1NvcnQnIC4gJEtleSB9ICAgICAgPSAnIFNvcnREZXNjZW5kaW5nJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRPcmRlcnsgJ09yZGVyQnknIC4gJEtleSB9ID0gJ1VwJzsKICAgICAgICAgICAgICAgICRDU1N7ICdTb3J0JyAuICRLZXkgfSAgICAgID0gJyBTb3J0QXNjZW5kaW5nJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgYnVpbGQgY29sdW1uIGhlYWRlciBibG9ja3MKICAgIGZvciBteSAkQ29sdW1uIChAU2hvd0NvbHVtbnMpIHsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcgLiAkQ29sdW1uIC4gJ0hlYWRlcicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJU9yZGVyLAogICAgICAgICAgICAgICAgJUNTUywKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRPdXRwdXQgID0gJyc7CiAgICBteSAkQ291bnRlciA9IDA7CgogICAgIyBzaG93IHRlbXBsYXRlcyBpZiB0aGVyZSBhcmUgc29tZQogICAgaWYgKEBJRHMpIHsKCiAgICAgICAgSUQ6CiAgICAgICAgZm9yIG15ICRJRCAoQElEcykgewogICAgICAgICAgICAkQ291bnRlcisrOwoKICAgICAgICAgICAgbmV4dCBJRCBpZiAkQ291bnRlciA8ICRQYXJhbXtTdGFydEhpdH07CiAgICAgICAgICAgIGxhc3QgSUQgaWYgJENvdW50ZXIgPj0gKCAkUGFyYW17UGFnZVNob3dufSArICRQYXJhbXtTdGFydEhpdH0gKTsKCiAgICAgICAgICAgICMgZGlzcGxheSB0aGUgdGVtcGxhdGUgZGF0YQogICAgICAgICAgICBteSAkVGVtcGxhdGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGUnKS0+VGVtcGxhdGVHZXQoCiAgICAgICAgICAgICAgICBUZW1wbGF0ZUlEID0+ICRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBteSAlRGF0YSA9ICV7JFRlbXBsYXRlfTsKCiAgICAgICAgICAgICMgaHVtYW4gcmVhZGFibGUgdmFsaWRpdHkKICAgICAgICAgICAgJERhdGF7VmFsaWR9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTG9va3VwKCBWYWxpZElEID0+ICREYXRhe1ZhbGlkSUR9ICk7CgogICAgICAgICAgICAjIGdldCB1c2VyIGRhdGEgZm9yIG5lZWRlZCB1c2VyIHR5cGVzCiAgICAgICAgICAgIFVTRVJUWVBFOgogICAgICAgICAgICBmb3IgbXkgJFVzZXJUeXBlIChxdyhDcmVhdGVCeSBDaGFuZ2VCeSkpIHsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIFVzZXJUeXBlIGF0dHJpYnV0ZSBleGlzdHMgaW4gdGhlIHRlbXBsYXRlCiAgICAgICAgICAgICAgICBuZXh0IFVTRVJUWVBFIGlmICEkRGF0YXskVXNlclR5cGV9OwoKICAgICAgICAgICAgICAgICMgZ2V0IHVzZXIgZGF0YQogICAgICAgICAgICAgICAgbXkgJVVzZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJERhdGF7JFVzZXJUeXBlfSwKICAgICAgICAgICAgICAgICAgICBDYWNoZWQgPT4gMSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBzZXQgdXNlciBkYXRhCiAgICAgICAgICAgICAgICAkRGF0YXsgJFVzZXJUeXBlIC4gJ1VzZXJMb2dpbicgfSAgICAgPSAkVXNlcntVc2VyTG9naW59OwogICAgICAgICAgICAgICAgJERhdGF7ICRVc2VyVHlwZSAuICdVc2VyRmlyc3RuYW1lJyB9ID0gJFVzZXJ7VXNlckZpcnN0bmFtZX07CiAgICAgICAgICAgICAgICAkRGF0YXsgJFVzZXJUeXBlIC4gJ1VzZXJMYXN0bmFtZScgfSAgPSAkVXNlcntVc2VyTGFzdG5hbWV9OwogICAgICAgICAgICAgICAgJERhdGF7ICRVc2VyVHlwZSAuICdVc2VyRnVsbG5hbWUnIH0gID0gJFVzZXJ7VXNlckZ1bGxuYW1lfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBidWlsZCByZWNvcmQgYmxvY2sKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmQnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgYnVpbGQgY29sdW1uIHJlY29yZCBibG9ja3MKICAgICAgICAgICAgQ09MVU1OOgogICAgICAgICAgICBmb3IgbXkgJENvbHVtbiAoQFNob3dDb2x1bW5zKSB7CiAgICAgICAgICAgICAgICBpZiAoICRDb2x1bW4gZXEgJ0VkaXRDb250ZW50JyAmJiAkRGF0YXtUeXBlfSBlcSAnQ0FCJyApIHsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkRWRpdENvbnRlbnRDQUInLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIG5leHQgQ09MVU1OOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggJENvbHVtbiBlcSAnRWRpdENvbnRlbnQnIHx8ICRDb2x1bW4gZXEgJ0RlbGV0ZScgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJENvbmZpZ09iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgICAgICAgICAgICAgICAgICBteSAkTGFuZ3VhZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxhbmd1YWdlJyk7CgogICAgICAgICAgICAgICAgICAgIG15ICVKU0RhdGEgPSAoKTsKCiAgICAgICAgICAgICAgICAgICAgJEpTRGF0YXtFbGVtZW50SUR9ICAgICAgID0gJENvbHVtbiAuICdUZW1wbGF0ZUlEJyAuICREYXRhe1RlbXBsYXRlSUR9OwogICAgICAgICAgICAgICAgICAgICRKU0RhdGF7RWxlbWVudFNlbGVjdG9yfSA9ICcjJyAuICRKU0RhdGF7RWxlbWVudElEfTsKCiAgICAgICAgICAgICAgICAgICAgJEpTRGF0YXtEaWFsb2dDb250ZW50UXVlcnlTdHJpbmd9ID0gc3ByaW50ZigKICAgICAgICAgICAgICAgICAgICAgICAgJ0FjdGlvbj1BZ2VudElUU01UZW1wbGF0ZSVzOyVzVGVtcGxhdGVJRD0lcycsCiAgICAgICAgICAgICAgICAgICAgICAgICRDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgICggJENvbHVtbiBlcSAnRWRpdENvbnRlbnQnID8gJ1N1YmFjdGlvbj1UZW1wbGF0ZUVkaXRDb250ZW50U2hvd0RpYWxvZzsnIDogJycgKSwKICAgICAgICAgICAgICAgICAgICAgICAgJERhdGF7VGVtcGxhdGVJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgJEpTRGF0YXtDb25maXJtZWRBY3Rpb25RdWVyeVN0cmluZ30gPSBzcHJpbnRmKAogICAgICAgICAgICAgICAgICAgICAgICAnQWN0aW9uPUFnZW50SVRTTVRlbXBsYXRlJXM7U3ViYWN0aW9uPVRlbXBsYXRlJXM7VGVtcGxhdGVJRD0lcycsCiAgICAgICAgICAgICAgICAgICAgICAgICRDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgICRDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgICREYXRhe1RlbXBsYXRlSUR9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICRKU0RhdGF7RGlhbG9nVGl0bGV9ID0gJENvbHVtbiBlcSAnRGVsZXRlJwogICAgICAgICAgICAgICAgICAgICAgICA/ICdEZWxldGUgVGVtcGxhdGUnCiAgICAgICAgICAgICAgICAgICAgICAgIDogJ0VkaXQgVGVtcGxhdGUgQ29udGVudCc7CgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJ0lUU01DaGFuZ2VUZW1wbGF0ZU92ZXJ2aWV3Q29uZmlybURpYWxvZy4nIC4gJEpTRGF0YXtFbGVtZW50SUR9LAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiBcJUpTRGF0YSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcgLiAkQ29sdW1uLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgaWYgdGhlcmUgYXJlIG5vIHRlbXBsYXRlcyB0byBzaG93LCBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZSBpcyBkaXNwbGF5ZWQgaW4gdGhlIHRhYmxlCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmRNc2cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFRvdGFsQ29sdW1ucyA9PiBzY2FsYXIgQFNob3dDb2x1bW5zLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyB1c2UgdGVtcGxhdGUKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRJVFNNVGVtcGxhdGVPdmVydmlld1NtYWxsJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICRTZWxmLT57Vmlld1R5cGV9LAogICAgICAgICAgICBDb2x1bW5Db3VudCA9PiBzY2FsYXIgQFNob3dDb2x1bW5zLAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/ITSMWorkOrder/MenuGeneric.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTVdvcmtPcmRlcjo6TWVudUdlbmVyaWM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpMYW5ndWFnZScsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBVc2VySUQgcGFyYW0KICAgICRTZWxmLT57VXNlcklEfSA9ICRQYXJhbXtVc2VySUR9IHx8IGRpZSAiR290IG5vIFVzZXJJRCEiOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17V29ya09yZGVyfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgV29ya09yZGVyIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgY29uZmlnIGZvciB0aGUgcmVsZXZhbnQgYWN0aW9uCiAgICBteSAkRnJvbnRlbmRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIklUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjokUGFyYW17Q29uZmlnfS0+e0FjdGlvbn0iKTsKCiAgICAjIGdldCB0aGUgcmVxdWlyZWQgcHJpdmlsZWdlLCAncm8nIG9yICdydycKICAgIG15ICRSZXF1aXJlZFByaXY7CiAgICBpZiAoICRGcm9udGVuZENvbmZpZyAmJiAkRnJvbnRlbmRDb25maWctPntQZXJtaXNzaW9ufSApIHsKCiAgICAgICAgIyBnZXQgdGhlIHJlcXVpcmVkIHByaXYgZnJvbSB0aGUgZnJvbnRlbmQgY29uZmlndXJhdGlvbgogICAgICAgICRSZXF1aXJlZFByaXYgPSAkRnJvbnRlbmRDb25maWctPntQZXJtaXNzaW9ufTsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte0NvbmZpZ30tPntBY3Rpb259IGVxICdBZ2VudExpbmtPYmplY3QnICkgewoKICAgICAgICAjIHRoZSBMaW5rLWxpbmsgaXMgYSBzcGVjaWFsIGNhc2UsIGFzIGl0IGlzIG5vdCBzcGVjaWZpYyB0byBJVFNNQ2hhbmdlCiAgICAgICAgJFJlcXVpcmVkUHJpdiA9ICdydyc7CiAgICB9CgogICAgbXkgJEFjY2VzczsKICAgIGlmICggISRSZXF1aXJlZFByaXYgKSB7CgogICAgICAgICMgRGlzcGxheSB0aGUgbWVudS1saW5rLCB3aGVuIG5vIHByaXZpbGVnZSBpcyByZXF1aXJlZAogICAgICAgICRBY2Nlc3MgPSAxOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgY2hlY2sgcGVybWlzc2lvbnMsIGJhc2VkIG9uIHRoZSByZXF1aXJlZCBwcml2aWxlZ2UKICAgICAgICAkQWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+UGVybWlzc2lvbigKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJFJlcXVpcmVkUHJpdiwKICAgICAgICAgICAgQWN0aW9uICAgICAgPT4gJFBhcmFte0NvbmZpZ30tPntBY3Rpb259LAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkUGFyYW17V29ya09yZGVyfS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBMb2dObyAgICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuICRQYXJhbXtDb3VudGVyfSBpZiAhJEFjY2VzczsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgb3V0cHV0IG1lbnUgYmxvY2sKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdNZW51JyApOwoKICAgICMgb3V0cHV0IHNlcGVyYXRvciwgd2hlbiB0aGlzIGlzIG5vdCB0aGUgZmlyc3QgbWVudSBpdGVtCiAgICBpZiAoICRQYXJhbXtDb3VudGVyfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnTWVudUl0ZW1TcGxpdCcgKTsKICAgIH0KCiAgICAjIG91dHB1dCBtZW51IGl0ZW0KICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ01lbnVJdGVtJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyAkUGFyYW17V29ya09yZGVyfSB9LAogICAgICAgICAgICAleyAkUGFyYW17Q29uZmlnfSB9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgYSBkaWFsb2cgaGFzIHRvIGJlIHNob3duCiAgICBpZiAoICRQYXJhbXtDb25maWd9LT57RGlhbG9nVGl0bGV9ICkgewogICAgICAgIG15ICRDb25maWdPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICAgICAgbXkgJExhbmd1YWdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpMYW5ndWFnZScpOwoKICAgICAgICBteSAlSlNEYXRhID0gKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICV7ICRQYXJhbXtXb3JrT3JkZXJ9IH0sCiAgICAgICAgICAgICV7ICRQYXJhbXtDb25maWd9IH0sCiAgICAgICAgKTsKCiAgICAgICAgZGVsZXRlICRKU0RhdGF7Q29uZmlnfTsKICAgICAgICBkZWxldGUgJEpTRGF0YXtXb3JrT3JkZXJ9OwoKICAgICAgICAkSlNEYXRhe0VsZW1lbnRTZWxlY3Rvcn0gICAgICAgICAgICA9fiBzL1xbJVxzKkRhdGFcLk1lbnVJRFxzKlx8XHMqaHRtbFxzKiVcXS8kSlNEYXRhe01lbnVJRH0vaTsKICAgICAgICAkSlNEYXRhe0RpYWxvZ0NvbnRlbnRRdWVyeVN0cmluZ30gICA9fiBzL1xbJVxzKkRhdGFcLldvcmtPcmRlcklEXHMqXHxccypodG1sXHMqJVxdLyRKU0RhdGF7V29ya09yZGVySUR9L2k7CiAgICAgICAgJEpTRGF0YXtDb25maXJtZWRBY3Rpb25RdWVyeVN0cmluZ30gPX4gcy9cWyVccypEYXRhXC5Xb3JrT3JkZXJJRFxzKlx8XHMqaHRtbFxzKiVcXS8kSlNEYXRhe1dvcmtPcmRlcklEfS9pOwoKICAgICAgICAkSlNEYXRhe0RpYWxvZ1RpdGxlfSA9fiBzL1xbJVxzKlRyYW5zbGF0ZVwoIiguKikiXClccypcfFxzKmh0bWxccyolXF0vJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJDEpL2VpOwogICAgICAgICRKU0RhdGF7RGlhbG9nVGl0bGV9ID1+IHMvXFslXHMqQ29uZmlnXCgiKC4qKSJcKVxzKiVcXS8kQ29uZmlnT2JqZWN0LT5HZXQoJDEpL2VpOwogICAgICAgICRKU0RhdGF7RGlhbG9nVGl0bGV9ID1+IHMvXFslXHMqRGF0YS5DaGFuZ2VOdW1iZXJccypcfFxzKmh0bWxccyolXF0vJEpTRGF0YXtDaGFuZ2VOdW1iZXJ9L2VpOwogICAgICAgICRKU0RhdGF7RGlhbG9nVGl0bGV9ID1+IHMvXFslXHMqRGF0YS5Xb3JrT3JkZXJOdW1iZXJccypcfFxzKmh0bWxccyolXF0vJEpTRGF0YXtXb3JrT3JkZXJOdW1iZXJ9L2VpOwoKICAgICAgICAkSlNEYXRhe01lbnVJRH0gPSAnTWVudScgLiAkSlNEYXRhe01lbnVJRH07CgogICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgS2V5ICAgPT4gJ0lUU01TaG93Q29uZmlybURpYWxvZy4nIC4gJFBhcmFte01lbnVJRH0sCiAgICAgICAgICAgIFZhbHVlID0+IFwlSlNEYXRhLAogICAgICAgICk7CiAgICB9CgogICAgJFBhcmFte0NvdW50ZXJ9Kys7CgogICAgcmV0dXJuICRQYXJhbXtDb3VudGVyfTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Output/HTML/ITSMWorkOrder/MenuWithPermissionFromChange.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTVdvcmtPcmRlcjo6TWVudVdpdGhQZXJtaXNzaW9uRnJvbUNoYW5nZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6Okxhbmd1YWdlJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IFVzZXJJRCBwYXJhbQogICAgJFNlbGYtPntVc2VySUR9ID0gJFBhcmFte1VzZXJJRH0gfHwgZGllICJHb3Qgbm8gVXNlcklEISI7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtXb3JrT3JkZXJ9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBXb3JrT3JkZXIhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBjb25maWcgZm9yIHRoZSByZWxldmFudCBhY3Rpb24KICAgIG15ICRGcm9udGVuZENvbmZpZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTVdvcmtPcmRlcjo6RnJvbnRlbmQ6OiRQYXJhbXtDb25maWd9LT57QWN0aW9ufSIpOwoKICAgICMgZ2V0IHRoZSByZXF1aXJlZCBwcml2aWxlZ2UsICdybycgb3IgJ3J3JwogICAgbXkgJFJlcXVpcmVkUHJpdjsKICAgIGlmICgkRnJvbnRlbmRDb25maWcpIHsKCiAgICAgICAgIyBnZXQgdGhlIHJlcXVpcmVkIHByaXYgZnJvbSB0aGUgZnJvbnRlbmQgY29uZmlndXJhdGlvbgogICAgICAgICRSZXF1aXJlZFByaXYgPSAkRnJvbnRlbmRDb25maWctPntQZXJtaXNzaW9ufTsKICAgIH0KCiAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICBteSAkQWNjZXNzOwogICAgaWYgKCAhJFJlcXVpcmVkUHJpdiApIHsKCiAgICAgICAgIyBEaXNwbGF5IHRoZSBtZW51LWxpbmssIHdoZW4gbm8gcHJpdmlsZWdlIGlzIHJlcXVpcmVkCiAgICAgICAgJEFjY2VzcyA9IDE7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBjaGVjayBwZXJtaXNzaW9ucywgYmFzZWQgb24gdGhlIHJlcXVpcmVkIHByaXZpbGVnZQogICAgICAgICRBY2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5QZXJtaXNzaW9uKAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAkUmVxdWlyZWRQcml2LAogICAgICAgICAgICBBY3Rpb24gICAgICA9PiAkUGFyYW17Q29uZmlnfS0+e0FjdGlvbn0sCiAgICAgICAgICAgIENoYW5nZUlEICAgID0+ICRQYXJhbXtXb3JrT3JkZXJ9LT57Q2hhbmdlSUR9LAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkUGFyYW17V29ya09yZGVyfS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBMb2dObyAgICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuICRQYXJhbXtDb3VudGVyfSBpZiAhJEFjY2VzczsKCiAgICAjIGdldCB0aGUgY2hhbmdlIGRhdGEKICAgIG15ICRDaGFuZ2UgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte1dvcmtPcmRlcn0tPntDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgb3V0cHV0IG1lbnUgYmxvY2sKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdNZW51JyApOwoKICAgICMgb3V0cHV0IG1lbnUgaXRlbQogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnTWVudUl0ZW0nLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICV7JENoYW5nZX0sCiAgICAgICAgICAgICV7ICRQYXJhbXtXb3JrT3JkZXJ9IH0sCiAgICAgICAgICAgICV7ICRQYXJhbXtDb25maWd9IH0sCiAgICAgICAgfSwKICAgICk7CgogICAgIyBjaGVjayBpZiBhIGRpYWxvZyBoYXMgdG8gYmUgc2hvd24KICAgIGlmICggJFBhcmFte0NvbmZpZ30tPntEaWFsb2dUaXRsZX0gKSB7CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgICAgICBteSAkTGFuZ3VhZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxhbmd1YWdlJyk7CgogICAgICAgICMgUmVwbGFjZSB0aGUgdGVtcGxhdGUgdG9vbGtpdCBleHByZXNzaW9ucyB3aXRoIHRoZSBmaW5hbCB2YWx1ZS4KICAgICAgICBteSAlSlNEYXRhID0gKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICV7ICRQYXJhbXtXb3JrT3JkZXJ9IH0sCiAgICAgICAgICAgICV7ICRQYXJhbXtDb25maWd9IH0sCiAgICAgICAgKTsKCiAgICAgICAgZGVsZXRlICRKU0RhdGF7Q29uZmlnfTsKICAgICAgICBkZWxldGUgJEpTRGF0YXtXb3JrT3JkZXJ9OwoKICAgICAgICAkSlNEYXRhe0VsZW1lbnRTZWxlY3Rvcn0gICAgICAgICAgICA9fiBzL1xbJVxzKkRhdGFcLk1lbnVJRFxzKlx8XHMqaHRtbFxzKiVcXS8kSlNEYXRhe01lbnVJRH0vaTsKICAgICAgICAkSlNEYXRhe0RpYWxvZ0NvbnRlbnRRdWVyeVN0cmluZ30gICA9fiBzL1xbJVxzKkRhdGFcLldvcmtPcmRlcklEXHMqXHxccypodG1sXHMqJVxdLyRKU0RhdGF7V29ya09yZGVySUR9L2k7CiAgICAgICAgJEpTRGF0YXtDb25maXJtZWRBY3Rpb25RdWVyeVN0cmluZ30gPX4gcy9cWyVccypEYXRhXC5Xb3JrT3JkZXJJRFxzKlx8XHMqaHRtbFxzKiVcXS8kSlNEYXRhe1dvcmtPcmRlcklEfS9pOwoKICAgICAgICAkSlNEYXRhe0RpYWxvZ1RpdGxlfSA9fiBzL1xbJVxzKlRyYW5zbGF0ZVwoIiguKikiXClccypcfFxzKmh0bWxccyolXF0vJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJDEpL2VpOwogICAgICAgICRKU0RhdGF7RGlhbG9nVGl0bGV9ID1+IHMvXFslXHMqQ29uZmlnXCgiKC4qKSJcKVxzKiVcXS8kQ29uZmlnT2JqZWN0LT5HZXQoJDEpL2VpOwogICAgICAgICRKU0RhdGF7RGlhbG9nVGl0bGV9ID1+IHMvXFslXHMqRGF0YS5DaGFuZ2VOdW1iZXJccypcfFxzKmh0bWxccyolXF0vJEpTRGF0YXtDaGFuZ2VOdW1iZXJ9L2VpOwogICAgICAgICRKU0RhdGF7RGlhbG9nVGl0bGV9ID1+IHMvXFslXHMqRGF0YS5Xb3JrT3JkZXJOdW1iZXJccypcfFxzKmh0bWxccyolXF0vJEpTRGF0YXtXb3JrT3JkZXJOdW1iZXJ9L2VpOwoKICAgICAgICAkSlNEYXRhe01lbnVJRH0gPSAnTWVudScgLiAkSlNEYXRhe01lbnVJRH07CgogICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgS2V5ICAgPT4gJ0lUU01TaG93Q29uZmlybURpYWxvZy4nIC4gJFBhcmFte01lbnVJRH0sCiAgICAgICAgICAgIFZhbHVlID0+IFwlSlNEYXRhLAogICAgICAgICk7CiAgICB9CgogICAgJFBhcmFte0NvdW50ZXJ9Kys7CgogICAgcmV0dXJuICRQYXJhbXtDb3VudGVyfTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Output/HTML/ITSMWorkOrder/MenuWithTakePermission.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6SVRTTVdvcmtPcmRlcjo6TWVudVdpdGhUYWtlUGVybWlzc2lvbjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6Okxhbmd1YWdlJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IFVzZXJJRCBwYXJhbQogICAgJFNlbGYtPntVc2VySUR9ID0gJFBhcmFte1VzZXJJRH0gfHwgZGllICJHb3Qgbm8gVXNlcklEISI7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtXb3JrT3JkZXJ9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBXb3JrT3JkZXIhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBjb25maWcgZm9yIHRoZSByZWxldmFudCBhY3Rpb24KICAgIG15ICRGcm9udGVuZENvbmZpZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiSVRTTVdvcmtPcmRlcjo6RnJvbnRlbmQ6OiRQYXJhbXtDb25maWd9LT57QWN0aW9ufSIpOwoKICAgICMgZ2V0IHRoZSByZXF1aXJlZCBwcml2aWxlZ2UsICdybycgb3IgJ3J3JwogICAgbXkgJFJlcXVpcmVkUHJpdjsKICAgIGlmICggJEZyb250ZW5kQ29uZmlnICYmICRGcm9udGVuZENvbmZpZy0+e1Blcm1pc3Npb259ICkgewoKICAgICAgICAjIGdldCB0aGUgcmVxdWlyZWQgcHJpdiBmcm9tIHRoZSBmcm9udGVuZCBjb25maWd1cmF0aW9uCiAgICAgICAgJFJlcXVpcmVkUHJpdiA9ICRGcm9udGVuZENvbmZpZy0+e1Blcm1pc3Npb259OwogICAgfQoKICAgIG15ICRBY2Nlc3M7CiAgICBpZiAoICEkUmVxdWlyZWRQcml2ICkgewoKICAgICAgICAjIERpc3BsYXkgdGhlIG1lbnUtbGluaywgd2hlbiBubyBwcml2aWxlZ2UgaXMgcmVxdWlyZWQKICAgICAgICAkQWNjZXNzID0gMTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGNoZWNrIHBlcm1pc3Npb25zLCBiYXNlZCBvbiB0aGUgcmVxdWlyZWQgcHJpdmlsZWdlCiAgICAgICAgIyBxdWVyeSB0aGUgcGVybWlzc2lvbiBtb2R1bGVzIHJlZ2lzdGVyZWQgaW4gJ0lUU01Xb3JrT3JkZXI6OlRha2VQZXJtaXNzaW9uJwogICAgICAgICRBY2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5QZXJtaXNzaW9uKAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgPT4gJFJlcXVpcmVkUHJpdiwKICAgICAgICAgICAgQWN0aW9uICAgICAgICAgICAgID0+ICRQYXJhbXtDb25maWd9LT57QWN0aW9ufSwKICAgICAgICAgICAgUGVybWlzc2lvblJlZ2lzdHJ5ID0+ICdJVFNNV29ya09yZGVyOjpUYWtlUGVybWlzc2lvbicsCiAgICAgICAgICAgIFdvcmtPcmRlcklEICAgICAgICA9PiAkUGFyYW17V29ya09yZGVyfS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgTG9nTm8gICAgICAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJFBhcmFte0NvdW50ZXJ9IGlmICEkQWNjZXNzOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBvdXRwdXQgbWVudSBibG9jawogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ01lbnUnICk7CgogICAgIyBvdXRwdXQgbWVudSBpdGVtCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdNZW51SXRlbScsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXsgJFBhcmFte1dvcmtPcmRlcn0gfSwKICAgICAgICAgICAgJXsgJFBhcmFte0NvbmZpZ30gfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGNoZWNrIGlmIGEgZGlhbG9nIGhhcyB0byBiZSBzaG93bgogICAgaWYgKCAkUGFyYW17Q29uZmlnfS0+e0RpYWxvZ1RpdGxlfSApIHsKICAgICAgICBteSAkQ29uZmlnT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgICAgIG15ICRMYW5ndWFnZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6TGFuZ3VhZ2UnKTsKCiAgICAgICAgIyBSZXBsYWNlIHRoZSB0ZW1wbGF0ZSB0b29sa2l0IGV4cHJlc3Npb25zIHdpdGggdGhlIGZpbmFsIHZhbHVlLgogICAgICAgIG15ICVKU0RhdGEgPSAoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXsgJFBhcmFte1dvcmtPcmRlcn0gfSwKICAgICAgICAgICAgJXsgJFBhcmFte0NvbmZpZ30gfSwKICAgICAgICApOwoKICAgICAgICBkZWxldGUgJEpTRGF0YXtDb25maWd9OwogICAgICAgIGRlbGV0ZSAkSlNEYXRhe1dvcmtPcmRlcn07CgogICAgICAgICRKU0RhdGF7RWxlbWVudFNlbGVjdG9yfSAgICAgICAgICAgID1+IHMvXFslXHMqRGF0YVwuTWVudUlEXHMqXHxccypodG1sXHMqJVxdLyRKU0RhdGF7TWVudUlEfS9pOwogICAgICAgICRKU0RhdGF7RGlhbG9nQ29udGVudFF1ZXJ5U3RyaW5nfSAgID1+IHMvXFslXHMqRGF0YVwuV29ya09yZGVySURccypcfFxzKmh0bWxccyolXF0vJEpTRGF0YXtXb3JrT3JkZXJJRH0vaTsKICAgICAgICAkSlNEYXRhe0NvbmZpcm1lZEFjdGlvblF1ZXJ5U3RyaW5nfSA9fiBzL1xbJVxzKkRhdGFcLldvcmtPcmRlcklEXHMqXHxccypodG1sXHMqJVxdLyRKU0RhdGF7V29ya09yZGVySUR9L2k7CgogICAgICAgICRKU0RhdGF7RGlhbG9nVGl0bGV9ID1+IHMvXFslXHMqVHJhbnNsYXRlXCgiKC4qKSJcKVxzKlx8XHMqaHRtbFxzKiVcXS8kTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSgkMSkvZWk7CiAgICAgICAgJEpTRGF0YXtEaWFsb2dUaXRsZX0gPX4gcy9cWyVccypDb25maWdcKCIoLiopIlwpXHMqJVxdLyRDb25maWdPYmplY3QtPkdldCgkMSkvZWk7CiAgICAgICAgJEpTRGF0YXtEaWFsb2dUaXRsZX0gPX4gcy9cWyVccypEYXRhLkNoYW5nZU51bWJlclxzKlx8XHMqaHRtbFxzKiVcXS8kSlNEYXRhe0NoYW5nZU51bWJlcn0vZWk7CiAgICAgICAgJEpTRGF0YXtEaWFsb2dUaXRsZX0gPX4gcy9cWyVccypEYXRhLldvcmtPcmRlck51bWJlclxzKlx8XHMqaHRtbFxzKiVcXS8kSlNEYXRhe1dvcmtPcmRlck51bWJlcn0vZWk7CgogICAgICAgICRKU0RhdGF7TWVudUlEfSA9ICdNZW51JyAuICRKU0RhdGF7TWVudUlEfTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgICAgICBLZXkgICA9PiAnSVRTTVNob3dDb25maXJtRGlhbG9nLicgLiAkUGFyYW17TWVudUlEfSwKICAgICAgICAgICAgVmFsdWUgPT4gXCVKU0RhdGEsCiAgICAgICAgKTsKICAgIH0KCiAgICAkUGFyYW17Q291bnRlcn0rKzsKCiAgICByZXR1cm4gJFBhcmFte0NvdW50ZXJ9Owp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Layout/ITSMChange.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0OjpJVFNNQ2hhbmdlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCj1oZWFkMiBJVFNNQ2hhbmdlQnVpbGRXb3JrT3JkZXJHcmFwaCgpCgpyZXR1cm5zIGEgb3V0cHV0IHN0cmluZyBmb3IgV29ya09yZGVyIGdyYXBoCgogICAgbXkgJFN0cmluZyA9ICRMYXlvdXRPYmplY3QtPklUU01DaGFuZ2VCdWlsZFdvcmtPcmRlckdyYXBoKAogICAgICAgIENoYW5nZSAgICAgICAgICAgICA9PiAkQ2hhbmdlUmVmLAogICAgICAgIFdvcmtPcmRlck9iamVjdCAgICA9PiAkV29ya09yZGVyT2JqZWN0LAogICAgICAgIER5bmFtaWNGaWVsZE9iamVjdCA9PiAkRHluYW1pY0ZpZWxkT2JqZWN0LAogICAgICAgIEJhY2tlbmRPYmplY3QgICAgICA9PiAkQmFja2VuZE9iamVjdCwKICAgICk7Cgo9Y3V0CgpzdWIgSVRTTUNoYW5nZUJ1aWxkV29ya09yZGVyR3JhcGggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsb2cgb2JqZWN0CiAgICBteSAkTG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwoKICAgICMgY2hlY2sgZm9yIGNoYW5nZQogICAgbXkgJENoYW5nZSA9ICRQYXJhbXtDaGFuZ2V9OwogICAgaWYgKCAhJENoYW5nZSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIENoYW5nZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgd29ya29yZGVyIG9iamVjdAogICAgaWYgKCAhJFBhcmFte1dvcmtPcmRlck9iamVjdH0gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBXb3JrT3JkZXJPYmplY3QhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHN0b3JlIHdvcmtvcmRlciBvYmplY3QgbG9jYWxseQogICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRQYXJhbXtXb3JrT3JkZXJPYmplY3R9OwoKICAgICMgY2hlY2sgaWYgd29ya29yZGVycyBhcmUgYXZhaWxhYmxlCiAgICByZXR1cm4gaWYgISRDaGFuZ2UtPntXb3JrT3JkZXJDb3VudH07CgogICAgIyBleHRyYSBjaGVjayBmb3IgQVJSQVktcmVmCiAgICByZXR1cm4gaWYgcmVmICRDaGFuZ2UtPntXb3JrT3JkZXJJRHN9IG5lICdBUlJBWSc7CgogICAgIyBoYXNoIGZvciBzbWFsbGVzdCB0aW1lCiAgICBteSAlVGltZTsKCiAgICBUSU1FVFlQRToKICAgIGZvciBteSAkVGltZVR5cGUgKHF3KFN0YXJ0IEVuZCkpIHsKCiAgICAgICAgIyBhY3R1YWwgdGltZSBub3Qgc2V0LCBzbyB3ZSBjYW4gdXNlIHBsYW5uZWQKICAgICAgICBpZiAoICEkQ2hhbmdlLT57IkFjdHVhbCR7VGltZVR5cGV9VGltZSJ9ICkgewoKICAgICAgICAgICAgIyBjaGVjayBpZiB0aW1lIGlzIHNldAogICAgICAgICAgICBuZXh0IFRJTUVUWVBFIGlmICEkQ2hhbmdlLT57IlBsYW5uZWQke1RpbWVUeXBlfVRpbWUifTsKCiAgICAgICAgICAgICMgdHJhbnNsYXRlIHRvIHN5c3RlbS10aW1lL2Vwb2NoCiAgICAgICAgICAgICRUaW1leyIke1RpbWVUeXBlfVRpbWUifSA9ICRTZWxmLT5fVGltZVN0YW1wMkVwb2NoKAogICAgICAgICAgICAgICAgVGltZVN0YW1wID0+ICRDaGFuZ2UtPnsiUGxhbm5lZCR7VGltZVR5cGV9VGltZSJ9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBqdW1wIHRvIG5leHQgdHlwZQogICAgICAgICAgICBuZXh0IFRJTUVUWVBFOwogICAgICAgIH0KCiAgICAgICAgIyB0cmFuc2xhdGUgcGxhbm5lZCB0aW1lIHRvIHRpbWVzdGFtcCBmb3IgZXF1YXRpb24KICAgICAgICAkVGltZXsiUGxhbm5lZCR7VGltZVR5cGV9VGltZSJ9ID0gJFNlbGYtPl9UaW1lU3RhbXAyRXBvY2goCiAgICAgICAgICAgIFRpbWVTdGFtcCA9PiAkQ2hhbmdlLT57IlBsYW5uZWQke1RpbWVUeXBlfVRpbWUifSwKICAgICAgICApOwoKICAgICAgICAjIHRyYW5zbGF0ZSBhY3R1YWwgdGltZSB0byB0aW1lc3RhbXAgZm9yIGVxdWF0aW9uCiAgICAgICAgJFRpbWV7IkFjdHVhbCR7VGltZVR5cGV9VGltZSJ9ID0gJFNlbGYtPl9UaW1lU3RhbXAyRXBvY2goCiAgICAgICAgICAgIFRpbWVTdGFtcCA9PiAkQ2hhbmdlLT57IkFjdHVhbCR7VGltZVR5cGV9VGltZSJ9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgdGltZSBhdHRyaWJ1dGVzIHRvIGVtcHR5IHN0cmluZyBpZiBub3QgZGVmaW5lZAogICAgZm9yIG15ICRUaW1lQXR0cmlidXRlIChxdyhQbGFubmVkU3RhcnRUaW1lIFBsYW5uZWRFbmRUaW1lIEFjdHVhbFN0YXJ0VGltZSBBY3R1YWxFbmRUaW1lKSkgewogICAgICAgICRUaW1leyRUaW1lQXR0cmlidXRlfSAvLz0gJyc7CiAgICB9CgogICAgIyBnZXQgc21hbGxlc3Qgc3RhcnQgdGltZQogICAgaWYgKCAhJFRpbWV7U3RhcnRUaW1lfSApIHsKICAgICAgICAkVGltZXtTdGFydFRpbWV9ID0gKCAkVGltZXtQbGFubmVkU3RhcnRUaW1lfSBsdCAkVGltZXtBY3R1YWxTdGFydFRpbWV9ICkKICAgICAgICAgICAgPyAkVGltZXtQbGFubmVkU3RhcnRUaW1lfQogICAgICAgICAgICA6ICRUaW1le0FjdHVhbFN0YXJ0VGltZX07CiAgICB9CgogICAgIyBnZXQgaGlnaGVzdCBlbmQgdGltZQogICAgaWYgKCAhJFRpbWV7RW5kVGltZX0gKSB7CiAgICAgICAgJFRpbWV7RW5kVGltZX0gPSAoICRUaW1le1BsYW5uZWRFbmRUaW1lfSBndCAkVGltZXtBY3R1YWxFbmRUaW1lfSApCiAgICAgICAgICAgID8gJFRpbWV7UGxhbm5lZEVuZFRpbWV9CiAgICAgICAgICAgIDogJFRpbWV7QWN0dWFsRW5kVGltZX07CiAgICB9CgogICAgIyBHZXQgY3VycmVudCBzeXN0ZW0gdW5peCB0aW1lIChlcG9jaCkuCiAgICBteSAkU3lzdGVtVGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScKICAgICktPlRvRXBvY2goKTsKCiAgICAjIGNoZWNrIGZvciByZWFsIGVuZCBvZiBlbmQgdGltZSBmb3Igc2NhbGUgYW5kIGdyYXBoIGl0ZW1zCiAgICAjIG9ubHkgaWYgQWN0dWFsU3RhcnRUaW1lIGlzIHNldAogICAgaWYgKAogICAgICAgICRUaW1le0FjdHVhbFN0YXJ0VGltZX0KICAgICAgICAmJiAhJFRpbWV7QWN0dWFsRW5kVGltZX0KICAgICAgICAmJiAoICRUaW1le0VuZFRpbWV9IGx0ICRTeXN0ZW1UaW1lICkKICAgICAgICApCiAgICB7CiAgICAgICAgJFRpbWV7RW5kVGltZX0gPSAkU3lzdGVtVGltZTsKICAgIH0KCiAgICAjIGNhbGN1bGF0ZSB0aWNrcyBmb3IgY2hhbmdlCiAgICBteSAkQ2hhbmdlVGlja3MgPSAkU2VsZi0+X0lUU01DaGFuZ2VHZXRDaGFuZ2VUaWNrcygKICAgICAgICBTdGFydCA9PiAkVGltZXtTdGFydFRpbWV9LAogICAgICAgIEVuZCAgID0+ICRUaW1le0VuZFRpbWV9LAogICAgKTsKCiAgICAjIGNoZWNrIGZvciB2YWxpZCB0aWNrcwogICAgaWYgKCAhJENoYW5nZVRpY2tzICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1VuYWJsZSB0byBjYWxjdWxhdGUgdGltZSBzY2FsZS4nLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgd29ya29yZGVycyBvZiBjaGFuZ2UKICAgIG15IEBXb3JrT3JkZXJzOwogICAgV09SS09SREVSSUQ6CiAgICBmb3IgbXkgJFdvcmtPcmRlcklEICggQHsgJENoYW5nZS0+e1dvcmtPcmRlcklEc30gfSApIHsKICAgICAgICBteSAkV29ya09yZGVyID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyR2V0KAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgICAgIG5leHQgV09SS09SREVSSUQgaWYgISRXb3JrT3JkZXI7CgogICAgICAgIHB1c2ggQFdvcmtPcmRlcnMsICRXb3JrT3JkZXI7CiAgICB9CgogICAgIyBnZXQgY29uZmlnIHNldHRpbmdzCiAgICBteSAkQ2hhbmdlWm9vbUNvbmZpZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVpvb20nKTsKCiAgICAjIGNoZWNrIGNvbmZpZyBzZXR0aW5nCiAgICBpZiAoICEkQ2hhbmdlWm9vbUNvbmZpZyApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN5c0NvbmZpZyBzZXR0aW5ncyBmb3IgSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVpvb20hJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIGdyYXBoIGNvbmZpZyBzZXR0aW5nCiAgICBpZiAoICEkQ2hhbmdlWm9vbUNvbmZpZy0+e1dvcmtPcmRlckdyYXBofSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN5c0NvbmZpZyBzZXR0aW5ncyBmb3IgJwogICAgICAgICAgICAgICAgLiAnSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVpvb20jIyNXb3JrT3JkZXJHcmFwaCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgdmFsaWRpdHkgc2V0dGluZ3Mgb2YgZ3JhcGggc2V0dGluZ3MKICAgIG15ICVXb3JrT3JkZXJHcmFwaENoZWNrID0gKAogICAgICAgIFRpbWVMaW5lQ29sb3IgICAgICAgICAgID0+ICcjW2EtZkEtRlxkXXs2fScsCiAgICAgICAgVGltZUxpbmVXaWR0aCAgICAgICAgICAgPT4gJ1xkezEsMn0nLAogICAgICAgIHVuZGVmaW5lZF9wbGFubmVkX2NvbG9yID0+ICcjW2EtZkEtRlxkXXs2fScsCiAgICAgICAgdW5kZWZpbmVkX2FjdHVhbF9jb2xvciAgPT4gJyNbYS1mQS1GXGRdezZ9JywKICAgICk7CgogICAgIyBjaGVjayB2YWxpZGl0eSBvZiBncmFwaCBzZXR0aW5ncwogICAgbXkgJFdvcmtPcmRlckdyYXBoQ29uZmlnID0gJENoYW5nZVpvb21Db25maWctPntXb3JrT3JkZXJHcmFwaH07CiAgICBmb3IgbXkgJEdyYXBoU2V0dGluZyAoIHNvcnQga2V5cyAlV29ya09yZGVyR3JhcGhDaGVjayApIHsKCiAgICAgICAgIyBjaGVjayBleGlzdGVuc2Ugb2YgY29uZmlnIHNldHRpbmcKICAgICAgICBpZiAoICEkV29ya09yZGVyR3JhcGhDb25maWctPnskR3JhcGhTZXR0aW5nfSApIHsKCiAgICAgICAgICAgICMgZGlzcGxheSBlcnJvciBhbmQgcmV0dXJuCiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBTeXNDb25maWcgc2V0dGluZyAnJEdyYXBoU2V0dGluZycgaW4gIgogICAgICAgICAgICAgICAgICAgIC4gIklUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2Vab29tIyMjV29ya09yZGVyR3JhcGghIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayB2YWxpZGl0eSBvZiBjb25maWcgc2V0dGluZwogICAgICAgIGlmICgKICAgICAgICAgICAgJFdvcmtPcmRlckdyYXBoQ29uZmlnLT57JEdyYXBoU2V0dGluZ30KICAgICAgICAgICAgIX4gbXsgXEEgJFdvcmtPcmRlckdyYXBoQ2hlY2t7JEdyYXBoU2V0dGluZ30gXHogfXhtcwogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBkaXNwbGF5IGVycm9yIGFuZCByZXR1cm4KICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJTeXNDb25maWcgc2V0dGluZyAnJEdyYXBoU2V0dGluZycgaXMgaW52YWxpZCBpbiAiCiAgICAgICAgICAgICAgICAgICAgLiAiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVpvb20jIyNXb3JrT3JkZXJHcmFwaCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY29tcHV0ZSBlZmZlY2l2ZSBsYWJlbCB3aWR0aAogICAgbXkgJExhYmVsV2lkdGggPSA2MDsKICAgIGlmICggJENoYW5nZVpvb21Db25maWctPntXb3JrT3JkZXJTdGF0ZX0gJiYgJENoYW5nZVpvb21Db25maWctPntXb3JrT3JkZXJUaXRsZX0gKSB7CiAgICAgICAgJExhYmVsV2lkdGggKz0gMTgwOwogICAgfQogICAgZWxzaWYgKCAkQ2hhbmdlWm9vbUNvbmZpZy0+e1dvcmtPcmRlclN0YXRlfSApIHsKICAgICAgICAkTGFiZWxXaWR0aCArPSA3MDsKICAgIH0KICAgIGVsc2lmICggJENoYW5nZVpvb21Db25maWctPntXb3JrT3JkZXJUaXRsZX0gKSB7CiAgICAgICAgJExhYmVsV2lkdGggKz0gMTI1OwogICAgfQoKICAgICMgbG9hZCBncmFwaCBza2VsZXRvbgogICAgJFNlbGYtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1dvcmtPcmRlckdyYXBoJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgTGFiZWxXaWR0aCAgPT4gJExhYmVsV2lkdGgsCiAgICAgICAgICAgIExhYmVsTWFyZ2luID0+ICRMYWJlbFdpZHRoICsgMiwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGNyZWF0ZSBjb2xvciBkZWZpbml0aW9ucyBmb3IgYWxsIGNvbmZpZ3VyZWQgd29ya29yZGVyIHR5cGVzCiAgICBteSAkV29ya09yZGVyVHlwZXMgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJUeXBlTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKSB8fCBbXTsKCiAgICAjIGNyZWF0ZSBjc3MgZGVmaW5pdGlvbnMgZm9yIHdvcmtvcmRlciB0eXBlcwogICAgV09SS09SREVSVFlQRToKICAgIGZvciBteSAkV29ya09yZGVyVHlwZSAoIEB7JFdvcmtPcmRlclR5cGVzfSApIHsKCiAgICAgICAgIyBjaGVjayB3b3Jrb3JkZXIgdHlwZQogICAgICAgIG5leHQgV09SS09SREVSVFlQRSBpZiAhJFdvcmtPcmRlclR5cGU7CiAgICAgICAgbmV4dCBXT1JLT1JERVJUWVBFIGlmICEkV29ya09yZGVyVHlwZS0+e1ZhbHVlfTsKCiAgICAgICAgIyBnZXQgbmFtZSBvZiB3b3Jrb3JkZXIgdHlwZQogICAgICAgIG15ICRXb3JrT3JkZXJUeXBlTmFtZSA9ICRXb3JrT3JkZXJUeXBlLT57VmFsdWV9OwoKICAgICAgICAjIGNoZWNrIGNvbnRlbnRzIG9mIG5hbWUKICAgICAgICBuZXh0IFdPUktPUkRFUlRZUEUgaWYgISRXb3JrT3JkZXJUeXBlTmFtZTsKCiAgICAgICAgZm9yIG15ICRXb3JrT3JkZXJDb2xvciAocXcoIF9wbGFubmVkIF9hY3R1YWwgKSkgewoKICAgICAgICAgICAgIyBnZXQgY29uZmlndXJlZCBvciBmYWxsYmFjayBwbGFubmVkIGNvbG9yIGZvciB3b3Jrb3JkZXIKICAgICAgICAgICAgbXkgJFdvcmtPcmRlclR5cGVDb2xvciA9ICRXb3JrT3JkZXJHcmFwaENvbmZpZy0+eyIke1dvcmtPcmRlclR5cGVOYW1lfSR7V29ya09yZGVyQ29sb3J9X2NvbG9yIn07CgogICAgICAgICAgICAjIHNldCBkZWZhdWx0IGNvbG9yIGlmIG5vIGNvbG9yIGlzIGZvdW5kCiAgICAgICAgICAgICRXb3JrT3JkZXJUeXBlQ29sb3IgfHw9ICRXb3JrT3JkZXJHcmFwaENvbmZpZy0+eyJ1bmRlZmluZWQke1dvcmtPcmRlckNvbG9yfV9jb2xvciJ9OwoKICAgICAgICAgICAgIyBjaGVjayB2YWxpZGl0eSBvZiB3b3Jrb3JkZXIgY29sb3IKICAgICAgICAgICAgaWYgKCAkV29ya09yZGVyVHlwZUNvbG9yICF+IG17IFxBICMgW0EtWmEtelxkXXs2fSBceiB9eG1zICkgewogICAgICAgICAgICAgICAgJFdvcmtPcmRlclR5cGVDb2xvciA9ICRXb3JrT3JkZXJHcmFwaENvbmZpZy0+eyJ1bmRlZmluZWQke1dvcmtPcmRlckNvbG9yfV9jb2xvciJ9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGRpc3BsYXkgY3NzIGRlZmluaXRpb25zIGZvciBwbGFubmVkCiAgICAgICAgICAgICRTZWxmLT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NTU1dvcmtPcmRlclR5cGUnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgV29ya09yZGVyVHlwZU5hbWUgID0+ICRXb3JrT3JkZXJUeXBlTmFtZSAuICRXb3JrT3JkZXJDb2xvciwKICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJUeXBlQ29sb3IgPT4gJFdvcmtPcmRlclR5cGVDb2xvciwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgY2FsY3VsYXRlIHRpbWUgbGluZSBwYXJhbWV0ZXIKICAgIG15ICRUaW1lTGluZSA9ICRTZWxmLT5fSVRTTUNoYW5nZUdldFRpbWVMaW5lKAogICAgICAgIFN0YXJ0VGltZSA9PiAkVGltZXtTdGFydFRpbWV9LAogICAgICAgIEVuZFRpbWUgICA9PiAkVGltZXtFbmRUaW1lfSwKICAgICAgICBUaWNrcyAgICAgPT4gJENoYW5nZVRpY2tzLAogICAgKTsKCiAgICBpZiAoICRUaW1lTGluZSAmJiBkZWZpbmVkICRUaW1lTGluZS0+e1RpbWVMaW5lTGVmdH0gKSB7CgogICAgICAgICMgY2FsY3VsYXRlIGhlaWdodCBvZiB0aW1lIGxpbmUKICAgICAgICBteSAkV29ya09yZGVySGVpZ2h0ID0gMTY7CiAgICAgICAgbXkgJFNjYWxlTWFyZ2luICAgICA9IDExOwogICAgICAgICRUaW1lTGluZS0+e1RpbWVMaW5lSGVpZ2h0fSA9ICggKCBzY2FsYXIgQFdvcmtPcmRlcnMgKSAqICRXb3JrT3JkZXJIZWlnaHQgKSArICRTY2FsZU1hcmdpbjsKCiAgICAgICAgIyBkaXNwbGF5IGNzcyBvZiB0aW1lbGluZQogICAgICAgICRTZWxmLT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQ1NTVGltZUxpbmUnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICV7JFRpbWVMaW5lfSwKICAgICAgICAgICAgICAgICV7JFdvcmtPcmRlckdyYXBoQ29uZmlnfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGRpc3BsYXkgdGltZWxpbmUgY29udGFpbmVyCiAgICAgICAgJFNlbGYtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdUaW1lTGluZScsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNvcnQgd29ya29yZGVyIGFzY2VuZGluZyB0byBXb3JrT3JkZXJOdW1iZXIKICAgIEBXb3JrT3JkZXJzID0gc29ydCB7ICRhLT57V29ya09yZGVyTnVtYmVyfSA8PT4gJGItPntXb3JrT3JkZXJOdW1iZXJ9IH0gQFdvcmtPcmRlcnM7CgogICAgIyBidWlsZCBncmFwaCBvZiBlYWNoIHdvcmtvcmRlcgogICAgV09SS09SREVSOgogICAgZm9yIG15ICRXb3JrT3JkZXIgKEBXb3JrT3JkZXJzKSB7CiAgICAgICAgbmV4dCBXT1JLT1JERVIgaWYgISRXb3JrT3JkZXI7CgogICAgICAgICRTZWxmLT5fSVRTTUNoYW5nZUdldFdvcmtPcmRlckdyYXBoKAogICAgICAgICAgICBXb3JrT3JkZXIgICAgICAgICAgPT4gJFdvcmtPcmRlciwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkT2JqZWN0ID0+ICRQYXJhbXtEeW5hbWljRmllbGRPYmplY3R9LAogICAgICAgICAgICBCYWNrZW5kT2JqZWN0ICAgICAgPT4gJFBhcmFte0JhY2tlbmRPYmplY3R9LAogICAgICAgICAgICBTdGFydFRpbWUgICAgICAgICAgPT4gJFRpbWV7U3RhcnRUaW1lfSwKICAgICAgICAgICAgRW5kVGltZSAgICAgICAgICAgID0+ICRUaW1le0VuZFRpbWV9LAogICAgICAgICAgICBUaWNrcyAgICAgICAgICAgICAgPT4gJENoYW5nZVRpY2tzLAogICAgICAgICk7CiAgICB9CgogICAgIyBidWlsZCBzY2FsZSBvZiBncmFwaAogICAgJFNlbGYtPl9JVFNNQ2hhbmdlR2V0Q2hhbmdlU2NhbGUoCiAgICAgICAgU3RhcnRUaW1lICAgPT4gJFRpbWV7U3RhcnRUaW1lfSwKICAgICAgICBFbmRUaW1lICAgICA9PiAkVGltZXtFbmRUaW1lfSwKICAgICAgICBUaWNrcyAgICAgICA9PiAkQ2hhbmdlVGlja3MsCiAgICAgICAgTGFiZWxNYXJnaW4gPT4gJExhYmVsV2lkdGggKyAyLAogICAgKTsKCiAgICAjIHJlbmRlciBncmFwaCBhbmQgcmV0dXJuIEhUTUwgd2l0aCBJVFNNQ2hhbmdlLmR0bCB0ZW1wbGF0ZQogICAgcmV0dXJuICRTZWxmLT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICApOwp9Cgo9aGVhZDIgSVRTTUNoYW5nZUxpc3RTaG93KCkKClJldHVybnMgYSBsaXN0IG9mIGNoYW5nZXMgYXMgQzxzb3J0YWJsZT4gbGlzdCB3aXRoIHBhZ2luYXRpb24uCgpUaGlzIGZ1bmN0aW9uIGlzIHNpbWlsYXIgdG8gTDxLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0VGlja2V0OjpUaWNrZXRMaXN0U2hvdygpPgppbiBGPEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXRUaWNrZXQucG0+LgoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5JVFNNQ2hhbmdlTGlzdFNob3coCiAgICAgICAgQ2hhbmdlSURzICA9PiAkQ2hhbmdlSURzUmVmLCAgICAgICAgICAgICAgICAgICAgICAjIHRvdGFsIGxpc3Qgb2YgY2hhbmdlIGlkcywgdGhhdCBjYW4gYmUgbGlzdGVkCiAgICAgICAgVG90YWwgICAgICA9PiBzY2FsYXIgQHsgJENoYW5nZUlEc1JlZiB9LCAgICAgICAgICAjIHRvdGFsIG51bWJlciBvZiBsaXN0IGl0ZW1zLCBjaGFuZ2VzIGluIHRoaXMgY2FzZQogICAgICAgIFZpZXcgICAgICAgPT4gJFNlbGYtPntWaWV3fSwgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCwgdGhlIGRlZmF1bHQgdmFsdWUgaXMgJ1NtYWxsJwogICAgICAgIEZpbHRlciAgICAgPT4gJ0FsbCcsCiAgICAgICAgRmlsdGVycyAgICA9PiBcJU5hdkJhckZpbHRlciwKICAgICAgICBGaWx0ZXJMaW5rID0+ICRMaW5rRmlsdGVyLAogICAgICAgIFRpdGxlTmFtZSAgPT4gJ092ZXJ2aWV3OiBDaGFuZ2VzJywKICAgICAgICBUaXRsZVZhbHVlID0+ICRTZWxmLT57RmlsdGVyfSwKICAgICAgICBFbnYgICAgICAgID0+ICRTZWxmLAogICAgICAgIExpbmtQYWdlICAgPT4gJExpbmtQYWdlLAogICAgICAgIExpbmtTb3J0ICAgPT4gJExpbmtTb3J0LAogICAgICAgIEZyb250ZW5kICAgPT4gJ0FnZW50JywgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIChBZ2VudHxDdXN0b21lciksIGRlZmF1bHQ6IEFnZW50LCBpbmRpY2F0ZXMgZnJvbSB3aGljaCBmcm9udGVuZCB0aGlzIGZ1bmN0aW9uIHdhcyBjYWxsZWQKICAgICk7Cgo9Y3V0CgpzdWIgSVRTTUNoYW5nZUxpc3RTaG93IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIG9iamVjdCByZWYgdG8gbG9jYWwsIHJlbW92ZSBpdCBmcm9tICVQYXJhbSAocHJldmVudCBtZW1vcnkgbGVhaykKICAgIG15ICRFbnYgPSBkZWxldGUgJFBhcmFte0Vudn07CgogICAgIyBsb29rdXAgbGF0ZXN0IHVzZWQgdmlldyBtb2RlCiAgICBpZiAoICEkUGFyYW17Vmlld30gJiYgJFNlbGYtPnsgJ1VzZXJJVFNNQ2hhbmdlT3ZlcnZpZXcnIC4gJEVudi0+e0FjdGlvbn0gfSApIHsKICAgICAgICAkUGFyYW17Vmlld30gPSAkU2VsZi0+eyAnVXNlcklUU01DaGFuZ2VPdmVydmlldycgLiAkRW52LT57QWN0aW9ufSB9OwogICAgfQoKICAgICMgc2V0IGZyb250ZW5kCiAgICBteSAkRnJvbnRlbmQgPSAkUGFyYW17RnJvbnRlbmR9IHx8ICdBZ2VudCc7CgogICAgIyBzZXQgZGVmYXV0IHZpZXcgbW9kZSB0byAnc21hbGwnCiAgICBteSAkVmlldyA9ICRQYXJhbXtWaWV3fSB8fCAnU21hbGwnOwoKICAgICMgc3RvcmUgbGF0ZXN0IHZpZXcgbW9kZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyktPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgIEtleSAgICAgICA9PiAnVXNlcklUU01DaGFuZ2VPdmVydmlldycgLiAkRW52LT57QWN0aW9ufSwKICAgICAgICBWYWx1ZSAgICAgPT4gJFZpZXcsCiAgICApOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGdldCBiYWNrZW5kIGZyb20gY29uZmlnCiAgICBteSAkQmFja2VuZHMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01DaGFuZ2U6OkZyb250ZW5kOjpPdmVydmlldycpOwogICAgaWYgKCAhJEJhY2tlbmRzICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICdOZWVkIGNvbmZpZyBvcHRpb24gJXMhJywKICAgICAgICAgICAgICAgICdJVFNNQ2hhbmdlOjpGcm9udGVuZDo6T3ZlcnZpZXcnLAogICAgICAgICAgICApLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIGZvciBoYXNoLXJlZgogICAgaWYgKCByZWYgJEJhY2tlbmRzIG5lICdIQVNIJyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAnQ29uZmlnIG9wdGlvbiAlcyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmIScsCiAgICAgICAgICAgICAgICAnSVRTTUNoYW5nZTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3JywKICAgICAgICAgICAgKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayBmb3IgY29uZmlnIGtleQogICAgaWYgKCAhJEJhY2tlbmRzLT57JFZpZXd9ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJywgJFZpZXcgKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBuYXYgYmFyCiAgICBteSAkU3RhcnRIaXQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKAogICAgICAgIFBhcmFtID0+ICdTdGFydEhpdCcsCiAgICApIHx8IDE7CgogICAgIyBnZXQgcGVyc29uYWwgcGFnZSBzaG93biBjb3VudAogICAgbXkgJFBhZ2VTaG93blByZWZlcmVuY2VzS2V5ID0gJ1VzZXJDaGFuZ2VPdmVydmlldycgLiAkVmlldyAuICdQYWdlU2hvd24nOwogICAgbXkgJFBhZ2VTaG93biAgICAgICAgICAgICAgID0gJFNlbGYtPnskUGFnZVNob3duUHJlZmVyZW5jZXNLZXl9IHx8IDEwOwogICAgbXkgJEdyb3VwICAgICAgICAgICAgICAgICAgID0gJ0NoYW5nZU92ZXJ2aWV3JyAuICRWaWV3IC4gJ1BhZ2VTaG93bic7CgogICAgIyBjaGVjayBzdGFydCBvcHRpb24sIGlmIGhpZ2hlciB0aGVuIGVsZW1lbnRzIGF2YWlsYWJsZSwgc2V0CiAgICAjIGl0IHRvIHRoZSBsYXN0IG92ZXJ2aWV3IHBhZ2UgKFRoYW5rcyB0byBTdGVmYW4gU2NobWlkdCEpCiAgICBpZiAoICRTdGFydEhpdCA+ICRQYXJhbXtUb3RhbH0gKSB7CiAgICAgICAgbXkgJFBhZ2VzID0gaW50KCAoICRQYXJhbXtUb3RhbH0gLyAkUGFnZVNob3duICkgKyAwLjk5OTk5ICk7CiAgICAgICAgJFN0YXJ0SGl0ID0gKCAoICRQYWdlcyAtIDEgKSAqICRQYWdlU2hvd24gKSArIDE7CiAgICB9CgogICAgIyBnZXQgZGF0YSBzZWxlY3Rpb24KICAgIG15ICVEYXRhOwogICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnUHJlZmVyZW5jZXNHcm91cHMnKTsKICAgIGlmICggJENvbmZpZyAmJiAkQ29uZmlnLT57JEdyb3VwfSAmJiAkQ29uZmlnLT57JEdyb3VwfS0+e0RhdGF9ICkgewogICAgICAgICVEYXRhID0gJXsgJENvbmZpZy0+eyRHcm91cH0tPntEYXRhfSB9OwogICAgfQoKICAgICMgc2V0IHBhZ2UgbGltaXQgYW5kIGJ1aWxkIHBhZ2UgbmF2CiAgICBteSAkTGltaXQgICA9ICRQYXJhbXtMaW1pdH0gfHwgMjBfMDAwOwogICAgbXkgJVBhZ2VOYXYgPSAkTGF5b3V0T2JqZWN0LT5QYWdlTmF2QmFyKAogICAgICAgIExpbWl0ICAgICA9PiAkTGltaXQsCiAgICAgICAgU3RhcnRIaXQgID0+ICRTdGFydEhpdCwKICAgICAgICBQYWdlU2hvd24gPT4gJFBhZ2VTaG93biwKICAgICAgICBBbGxIaXRzICAgPT4gJFBhcmFte1RvdGFsfSB8fCAwLAogICAgICAgIEFjdGlvbiAgICA9PiAnQWN0aW9uPScgLiAkTGF5b3V0T2JqZWN0LT57QWN0aW9ufSwKICAgICAgICBMaW5rICAgICAgPT4gJFBhcmFte0xpbmtQYWdlfSwKICAgICk7CgogICAgIyBidWlsZCBzaG93biB0aWNrZXQgYSBwYWdlCiAgICAkUGFyYW17UmVxdWVzdGVkVVJMfSAgICA9ICRQYXJhbXtSZXF1ZXN0ZWRVUkx9IHx8ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IjsKICAgICRQYXJhbXtHcm91cH0gICAgICAgICAgID0gJEdyb3VwOwogICAgJFBhcmFte1ByZWZlcmVuY2VzS2V5fSAgPSAkUGFnZVNob3duUHJlZmVyZW5jZXNLZXk7CiAgICAkUGFyYW17UGFnZVNob3duU3RyaW5nfSA9ICRTZWxmLT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBOYW1lICAgICAgICA9PiAkUGFnZVNob3duUHJlZmVyZW5jZXNLZXksCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFBhZ2VTaG93biwKICAgICAgICBEYXRhICAgICAgICA9PiBcJURhdGEsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICBTb3J0ICAgICAgICA9PiAnTnVtZXJpY1ZhbHVlJywKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBidWlsZCBuYXZiYXIgY29udGVudAogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXInLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgIyBiYWNrIGxpbmsKICAgIGlmICggJFBhcmFte0xpbmtCYWNrfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJQYWdlQmFjaycsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgIEtleSAgID0+ICdJVFNNQ2hhbmdlTWdtdENoYW5nZVNlYXJjaCcsCiAgICAgICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgICAgIFByb2ZpbGUgPT4gJFBhcmFte1Byb2ZpbGV9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgZmlsdGVycwogICAgaWYgKCAkUGFyYW17RmlsdGVyc30gKSB7CgogICAgICAgICMgZ2V0IGdpdmVuIGZpbHRlcnMKICAgICAgICBteSBATmF2QmFyRmlsdGVyczsKICAgICAgICBmb3IgbXkgJFByaW8gKCBzb3J0IGtleXMgJXsgJFBhcmFte0ZpbHRlcnN9IH0gKSB7CiAgICAgICAgICAgIHB1c2ggQE5hdkJhckZpbHRlcnMsICRQYXJhbXtGaWx0ZXJzfS0+eyRQcmlvfTsKICAgICAgICB9CgogICAgICAgICMgYnVpbGQgZmlsdGVyIGNvbnRlbnQKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJGaWx0ZXInLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGxvb3Agb3ZlciBmaWx0ZXJzCiAgICAgICAgbXkgJENvdW50ID0gMDsKICAgICAgICBmb3IgbXkgJEZpbHRlciAoQE5hdkJhckZpbHRlcnMpIHsKCiAgICAgICAgICAgICMgaW5jcmVtZW50IGZpbHRlciBjb3VudCBhbmQgYnVpbGQgZmlsdGVyIGl0ZW0KICAgICAgICAgICAgJENvdW50Kys7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAleyRGaWx0ZXJ9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZmlsdGVyIGlzIHNlbGVjdGVkCiAgICAgICAgICAgIGlmICggJEZpbHRlci0+e0ZpbHRlcn0gZXEgJFBhcmFte0ZpbHRlcn0gKSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhckZpbHRlckl0ZW1TZWxlY3RlZCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgJXskRmlsdGVyfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhckZpbHRlckl0ZW1TZWxlY3RlZE5vdCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgJXskRmlsdGVyfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBsb29wIG92ZXIgY29uZmlndXJlZCBiYWNrZW5kcwogICAgZm9yIG15ICRCYWNrZW5kICggc29ydCBrZXlzICV7JEJhY2tlbmRzfSApIHsKCiAgICAgICAgIyBidWlsZCBuYXZiYXIgdmlldyBtb2RlCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyVmlld01vZGUnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICV7ICRCYWNrZW5kcy0+eyRCYWNrZW5kfSB9LAogICAgICAgICAgICAgICAgRmlsdGVyID0+ICRQYXJhbXtGaWx0ZXJ9LAogICAgICAgICAgICAgICAgVmlldyAgID0+ICRCYWNrZW5kLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3VycmVudCB2aWV3IGlzIGNvbmZpZ3VyZWQgaW4gYmFja2VuZAogICAgICAgIGlmICggJFZpZXcgZXEgJEJhY2tlbmQgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZVNlbGVjdGVkJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAleyAkQmFja2VuZHMtPnskQmFja2VuZH0gfSwKICAgICAgICAgICAgICAgICAgICBGaWx0ZXIgPT4gJFBhcmFte0ZpbHRlcn0sCiAgICAgICAgICAgICAgICAgICAgVmlldyAgID0+ICRCYWNrZW5kLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZU5vdFNlbGVjdGVkJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAleyAkQmFja2VuZHMtPnskQmFja2VuZH0gfSwKICAgICAgICAgICAgICAgICAgICBGaWx0ZXIgPT4gJFBhcmFte0ZpbHRlcn0sCiAgICAgICAgICAgICAgICAgICAgVmlldyAgID0+ICRCYWNrZW5kLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiBwYWdlIG5hdiBpcyBhdmFpbGFibGUKICAgIGlmICglUGFnZU5hdikgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhclBhZ2VOYXZCYXInLAogICAgICAgICAgICBEYXRhID0+IFwlUGFnZU5hdiwKICAgICAgICApOwoKICAgICAgICAjIGRvbid0IHNob3cgY29udGV4dCBzZXR0aW5ncyBpbiBBSkFYIGNhc2UgKGUuIGcuIGluIGN1c3RvbWVyIHRpY2tldCBoaXN0b3J5KSwKICAgICAgICAjICAgYmVjYXVzZSB0aGUgc3VibWl0IHdpdGggcGFnZSByZWxvYWQgd2lsbCBub3Qgd29yayB0aGVyZQogICAgICAgIGlmICggISRQYXJhbXtBSkFYfSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZXh0U2V0dGluZ3MnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhZ2VOYXYsCiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBidWlsZCBodG1sIGNvbnRlbnQKICAgIG15ICRPdXRwdXROYXZCYXIgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudElUU01DaGFuZ2VPdmVydmlld05hdkJhcicsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHslUGFyYW19LAogICAgKTsKCiAgICAjIGNyZWF0ZSBvdXRwdXQKICAgIG15ICRPdXRwdXRSYXcgPSAnJzsKICAgIGlmICggISRQYXJhbXtPdXRwdXR9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPlByaW50KAogICAgICAgICAgICBPdXRwdXQgPT4gXCRPdXRwdXROYXZCYXIsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRPdXRwdXRSYXcgLj0gJE91dHB1dE5hdkJhcjsKICAgIH0KCiAgICAjIGxvYWQgbW9kdWxlCiAgICBpZiAoICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5SZXF1aXJlKCAkQmFja2VuZHMtPnskVmlld30tPntNb2R1bGV9ICkgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkZhdGFsRXJyb3IoKTsKICAgIH0KCiAgICAjIGNoZWNrIGZvciBiYWNrZW5kIG9iamVjdAogICAgbXkgJE9iamVjdCA9ICRCYWNrZW5kcy0+eyRWaWV3fS0+e01vZHVsZX0tPm5ldyggJXskRW52fSApOwogICAgcmV0dXJuIGlmICEkT2JqZWN0OwoKICAgICMgcnVuIG1vZHVsZQogICAgbXkgJE91dHB1dCA9ICRPYmplY3QtPlJ1bigKICAgICAgICAlUGFyYW0sCiAgICAgICAgTGltaXQgICAgID0+ICRMaW1pdCwKICAgICAgICBTdGFydEhpdCAgPT4gJFN0YXJ0SGl0LAogICAgICAgIFBhZ2VTaG93biA9PiAkUGFnZVNob3duLAogICAgICAgIEFsbEhpdHMgICA9PiAkUGFyYW17VG90YWx9IHx8IDAsCiAgICAgICAgRnJvbnRlbmQgID0+ICRGcm9udGVuZCwKICAgICk7CgogICAgIyBjcmVhdGUgb3V0cHV0CiAgICBpZiAoICEkUGFyYW17T3V0cHV0fSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5QcmludCgKICAgICAgICAgICAgT3V0cHV0ID0+IFwkT3V0cHV0LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkT3V0cHV0UmF3IC49ICRPdXRwdXQ7CiAgICB9CgogICAgIyBjcmVhdGUgb3ZlcnZpZXcgbmF2IGJhcgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXInLAogICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICApOwoKICAgICMgcmV0dXJuIGNvbnRlbnQgaWYgYXZhaWxhYmxlCiAgICByZXR1cm4gJE91dHB1dFJhdzsKfQoKPWhlYWQxIFBSSVZBVEUgSU5URVJGQUNFCgo9aGVhZDIgX0lUU01DaGFuZ2VHZXRDaGFuZ2VUaWNrcygpCgphIGhlbHBlciBtZXRob2QgZm9yIHRoZSBDPHdvcmtvcmRlcj4gZ3JhcGggb2YgYSBjaGFuZ2UKCj1jdXQKCnN1YiBfSVRTTUNoYW5nZUdldENoYW5nZVRpY2tzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBmb3Igc3RhcnQgYW5kIGVuZAogICAgcmV0dXJuIGlmICEkUGFyYW17U3RhcnR9IHx8ICEkUGFyYW17RW5kfTsKCiAgICAjIG1ha2Ugc3VyZSB3ZSBnb3QgaW50ZWdlcnMKICAgIHJldHVybiBpZiAkUGFyYW17U3RhcnR9ICF+IG17IFxBIFxkKyBceiB9eG1zOwogICAgcmV0dXJuIGlmICRQYXJhbXtFbmR9ICAgIX4gbXsgXEEgXGQrIFx6IH14bXM7CgogICAgIyBjYWxjdWxhdGUgdGltZSBzcGFuIGluIHNlYwogICAgbXkgJFRpY2tzID0gJFBhcmFte0VuZH0gLSAkUGFyYW17U3RhcnR9OwoKICAgICMgY2hlY2sgZm9yIGNvbXB1dGluZyBlcnJvcgogICAgcmV0dXJuIGlmICRUaWNrcyA8PSAwOwoKICAgICMgZ2V0IHNlY29uZHMgcGVyIHBlcmNlbnQgYW5kIHJvdW5kIGRvd24KICAgICRUaWNrcyA9IHNwcmludGYoICIlLmYiLCAkVGlja3MgLyAxMDAgKTsKCiAgICByZXR1cm4gJFRpY2tzOwp9Cgo9aGVhZDIgX0lUU01DaGFuZ2VHZXRDaGFuZ2VTY2FsZSgpCgphIGhlbHBlciBtZXRob2QgZm9yIHRoZSBDPHdvcmtvcmRlcj4gZ3JhcGggb2YgYSBjaGFuZ2UKCj1jdXQKCnN1YiBfSVRTTUNoYW5nZUdldENoYW5nZVNjYWxlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBmb3Igc3RhcnQgdGltZQogICAgcmV0dXJuIGlmICEkUGFyYW17U3RhcnRUaW1lfTsKCiAgICAjIGNoZWNrIGZvciBzdGFydCB0aW1lIGlzIGFuIGludGVnZXIgdmFsdWUKICAgIHJldHVybiBpZiAkUGFyYW17U3RhcnRUaW1lfSAhfiBteyBcQSBcZCsgXHogfXhtczsKCiAgICAjIGFkZCBzdGFydCBhbmQgZW5kIHRpbWUgYW5kIGNhbGN1bGF0ZSBzY2FsZSBuYW1pbmcKICAgIG15ICVTY2FsZU5hbWUgPSAoCiAgICAgICAgU3RhcnRUaW1lID0+ICRQYXJhbXtTdGFydFRpbWV9LAogICAgICAgIEVuZFRpbWUgICA9PiAkUGFyYW17RW5kVGltZX0sCiAgICAgICAgU2NhbGUxNSAgID0+ICggJFBhcmFte1N0YXJ0VGltZX0gKyAyMCAqICRQYXJhbXtUaWNrc30gKSwKICAgICAgICBTY2FsZTM1ICAgPT4gKCAkUGFyYW17U3RhcnRUaW1lfSArIDQwICogJFBhcmFte1RpY2tzfSApLAogICAgICAgIFNjYWxlNTUgICA9PiAoICRQYXJhbXtTdGFydFRpbWV9ICsgNjAgKiAkUGFyYW17VGlja3N9ICksCiAgICAgICAgU2NhbGU3NSAgID0+ICggJFBhcmFte1N0YXJ0VGltZX0gKyA4MCAqICRQYXJhbXtUaWNrc30gKSwKICAgICk7CgogICAgIyB0cmFuc2xhdGUgdGltZXN0YW1wcyBpbiBkYXRlIGZvcm1hdAogICAgbWFwIHsKICAgICAgICAkU2NhbGVOYW1leyRffSA9ICRTZWxmLT5fRXBvY2gyVGltZVN0YW1wKAogICAgICAgICAgICBFcG9jaCA9PiAkU2NhbGVOYW1leyRffSwKICAgICAgICApCiAgICB9IGtleXMgJVNjYWxlTmFtZTsKCiAgICAjIGNyZWF0ZSBzY2FsZSBibG9jawogICAgJFNlbGYtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1NjYWxlJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVNjYWxlTmFtZSwKICAgICAgICAgICAgTGFiZWxNYXJnaW4gPT4gJFBhcmFte0xhYmVsTWFyZ2lufSwKICAgICAgICB9LAogICAgKTsKCiAgICBJTlRFUlZBTDoKICAgIGZvciBteSAkSW50ZXJ2YWwgKCBzb3J0IGtleXMgJVNjYWxlTmFtZSApIHsKCiAgICAgICAgIyBkbyBub3QgZGlzcGxheSBzY2FsZSBpZiB0cmFuc2xhdGluZyBmYWlsZWQKICAgICAgICBuZXh0IElOVEVSVkFMIGlmICEkU2NhbGVOYW1leyRJbnRlcnZhbH07CgogICAgICAgICMgZG8gbm90IGRpc3BsYXkgc3RhcnQgb3IgZW5kCiAgICAgICAgbmV4dCBJTlRFUlZBTCBpZiAkSW50ZXJ2YWwgPX4gbXsgXEEgKCBTdGFydCB8IEVuZCApIFRpbWUgXHogfXhtczsKCiAgICAgICAgIyBidWlsZCBzY2FsZSBsYWJlbCBibG9jawogICAgICAgICRTZWxmLT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU2NhbGVMYWJlbCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgU2NhbGVMYWJlbCA9PiAkU2NhbGVOYW1leyRJbnRlcnZhbH0sCiAgICAgICAgICAgICAgICBTY2FsZUNsYXNzID0+ICRJbnRlcnZhbCwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX0lUU01DaGFuZ2VHZXRXb3JrT3JkZXJHcmFwaCgpCgphIGhlbHBlciBtZXRob2QgZm9yIHRoZSBDPHdvcmtvcmRlcj4gZ3JhcGggb2YgYSBjaGFuZ2UKCj1jdXQKCnN1YiBfSVRTTUNoYW5nZUdldFdvcmtPcmRlckdyYXBoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBmb3Igd29ya29yZGVyCiAgICByZXR1cm4gaWYgISRQYXJhbXtXb3JrT3JkZXJ9OwoKICAgICMgZXh0cmFjdCB3b3Jrb3JkZXIKICAgIG15ICRXb3JrT3JkZXIgPSAkUGFyYW17V29ya09yZGVyfTsKCiAgICAjIHNhdmUgb3JpZyB3b3Jrb3JkZXIgZm9yIHdvcmtvcmRlciBpbmZvcm1hdGlvbgogICAgbXkgJVdvcmtPcmRlckluZm9ybWF0aW9uID0gJXskV29ya09yZGVyfTsKCiAgICAjIHRyYW5zbGF0ZSB3b3Jrb3JkZXIgdHlwZQogICAgJFdvcmtPcmRlci0+e1RyYW5zbGF0ZWRXb3JrT3JkZXJUeXBlfSA9ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICRXb3JrT3JkZXItPntXb3JrT3JkZXJUeXBlfSApOwoKICAgICMgYnVpbGQgbGFiZWwgZm9yIGxpbmsgaW4gZ3JhcGgKICAgICRXb3JrT3JkZXItPntXb3JrT3JkZXJMYWJlbH0gPSAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICdUaXRsZTogJXMgfCBUeXBlOiAlcycsCiAgICAgICAgJFdvcmtPcmRlci0+e1dvcmtPcmRlclRpdGxlfSwKICAgICAgICAkV29ya09yZGVyLT57VHJhbnNsYXRlZFdvcmtPcmRlclR5cGV9LAogICAgKTsKCiAgICAjIGNyZWF0ZSB3b3Jrb3JkZXIgaXRlbQogICAgJFNlbGYtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1dvcmtPcmRlckl0ZW0nLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAleyRXb3JrT3JkZXJ9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgZ2V0IGNvbmZpZyBzZXR0aW5ncwogICAgbXkgJENoYW5nZVpvb21Db25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0lUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2Vab29tJyk7CgogICAgIyBhZGQgd29ya29yZGVyIHN0YXRlCiAgICBpZiAoICRDaGFuZ2Vab29tQ29uZmlnLT57V29ya09yZGVyU3RhdGV9ICkgewogICAgICAgICRTZWxmLT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnV29ya09yZGVySXRlbVN0YXRlJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAleyRXb3JrT3JkZXJ9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBhZGQgd29ya29yZGVyIHRpdGxlCiAgICBpZiAoICRDaGFuZ2Vab29tQ29uZmlnLT57V29ya09yZGVyVGl0bGV9ICkgewogICAgICAgICRTZWxmLT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnV29ya09yZGVySXRlbVRpdGxlJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAleyRXb3JrT3JkZXJ9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayBpZiB0aWNrcyBhcmUgY2FsY3VsYXRlZAogICAgcmV0dXJuIGlmICEkUGFyYW17VGlja3N9OwoKICAgICMgc2V0IHBsYW5uZWQgaWYgbm8gYWN0dWFsIHRpbWUgaXMgc2V0CiAgICBpZiAoICEkV29ya09yZGVyLT57QWN0dWFsU3RhcnRUaW1lfSApIHsKICAgICAgICAkV29ya09yZGVyLT57QWN0dWFsU3RhcnRUaW1lfSA9ICRXb3JrT3JkZXItPntQbGFubmVkU3RhcnRUaW1lfTsKICAgICAgICAkV29ya09yZGVyLT57QWN0dWFsRW5kVGltZX0gICA9ICRXb3JrT3JkZXItPntQbGFubmVkRW5kVGltZX07CiAgICB9CgogICAgIyBzZXQgY3VycmVudCB0aW1lIGlmIG5vIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQKICAgIGlmICggJFdvcmtPcmRlci0+e0FjdHVhbFN0YXJ0VGltZX0gJiYgISRXb3JrT3JkZXItPntBY3R1YWxFbmRUaW1lfSApIHsKICAgICAgICAkV29ya09yZGVyLT57QWN0dWFsRW5kVGltZX0gPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICApLT5Ub1N0cmluZygpOwogICAgfQoKICAgICMgc2V0IG5pY2UgZGlzcGxheSBvZiB1bmRlZiBhY3R1YWwgdGltZXMKICAgIGZvciBteSAkVGltZVR5cGUgKHF3KEFjdHVhbFN0YXJ0VGltZSBBY3R1YWxFbmRUaW1lKSkgewogICAgICAgIGlmICggISRXb3JrT3JkZXJJbmZvcm1hdGlvbnskVGltZVR5cGV9ICkgewogICAgICAgICAgICAkV29ya09yZGVySW5mb3JtYXRpb257IkVtcHR5JHtUaW1lVHlwZX0ifSA9ICctJzsKICAgICAgICB9CiAgICB9CgogICAgIyBoYXNoIGZvciB0aW1lIHZhbHVlcwogICAgbXkgJVRpbWU7CgogICAgZm9yIG15ICRUaW1lVHlwZSAocXcoUGxhbm5lZFN0YXJ0VGltZSBQbGFubmVkRW5kVGltZSBBY3R1YWxTdGFydFRpbWUgQWN0dWFsRW5kVGltZSkpIHsKCiAgICAgICAgIyB0cmFuc2xhdGUgdGltZQogICAgICAgICRUaW1leyRUaW1lVHlwZX0gPSAkU2VsZi0+X1RpbWVTdGFtcDJFcG9jaCgKICAgICAgICAgICAgVGltZVN0YW1wID0+ICRXb3JrT3JkZXItPnskVGltZVR5cGV9LAogICAgICAgICk7CiAgICB9CgogICAgIyBkZXRlcm1pbmUgbGVuZ3RoIG9mIHdvcmtvcmRlcgogICAgbXkgJVRpY2tWYWx1ZTsKCiAgICBmb3IgbXkgJFRpbWVUeXBlIChxdyggUGxhbm5lZCBBY3R1YWwgKSkgewoKICAgICAgICAjIGdldCB2YWx1ZXMgZm9yIHBhZGRpbmcgc3BhbgogICAgICAgIG15ICRTdGFydFBhZGRpbmcgPSBzcHJpbnRmKAogICAgICAgICAgICAiJS4xZiIsCiAgICAgICAgICAgICggJFRpbWV7IiR7VGltZVR5cGV9U3RhcnRUaW1lIn0gLSAkUGFyYW17U3RhcnRUaW1lfSApIC8gJFBhcmFte1RpY2tzfQogICAgICAgICk7CiAgICAgICAgJFN0YXJ0UGFkZGluZyAgICAgICAgICAgICAgICAgICAgPSAoICRTdGFydFBhZGRpbmcgPD0gMCApICAgPyAwICAgIDogJFN0YXJ0UGFkZGluZzsKICAgICAgICAkU3RhcnRQYWRkaW5nICAgICAgICAgICAgICAgICAgICA9ICggJFN0YXJ0UGFkZGluZyA+PSAxMDAgKSA/IDk5LjkgOiAkU3RhcnRQYWRkaW5nOwogICAgICAgICRUaWNrVmFsdWV7IiR7VGltZVR5cGV9UGFkZGluZyJ9ID0gJFN0YXJ0UGFkZGluZzsKCiAgICAgICAgIyBnZXQgdmFsdWVzIGZvciB0cmFpbGluZyBzcGFuCiAgICAgICAgbXkgJEVuZFRyYWlsaW5nID0gc3ByaW50ZiggIiUuMWYiLCAoICRQYXJhbXtFbmRUaW1lfSAtICRUaW1leyIke1RpbWVUeXBlfUVuZFRpbWUifSApIC8gJFBhcmFte1RpY2tzfSApOwogICAgICAgICRFbmRUcmFpbGluZyAgICAgICAgICAgICAgICAgICAgICA9ICggJEVuZFRyYWlsaW5nIDw9IDAgKSAgID8gMCAgICA6ICRFbmRUcmFpbGluZzsKICAgICAgICAkRW5kVHJhaWxpbmcgICAgICAgICAgICAgICAgICAgICAgPSAoICRFbmRUcmFpbGluZyA+PSAxMDAgKSA/IDk5LjkgOiAkRW5kVHJhaWxpbmc7CiAgICAgICAgJFRpY2tWYWx1ZXsiJHtUaW1lVHlwZX1UcmFpbGluZyJ9ID0gJEVuZFRyYWlsaW5nOwoKICAgICAgICAjIGdldCB2YWx1ZXMgZm9yIGRpc3BsYXkgc3BhbgogICAgICAgIG15ICRUaW1lVGlja3MgPSAxMDAgLSAoICRUaWNrVmFsdWV7IiR7VGltZVR5cGV9UGFkZGluZyJ9ICsgJFRpY2tWYWx1ZXsiJHtUaW1lVHlwZX1UcmFpbGluZyJ9ICk7CiAgICAgICAgJFRpbWVUaWNrcyAgICAgICAgICAgICAgICAgICAgID0gKCAkVGltZVRpY2tzIDw9IDAgKSAgID8gMC4xICA6ICRUaW1lVGlja3M7CiAgICAgICAgJFRpbWVUaWNrcyAgICAgICAgICAgICAgICAgICAgID0gKCAkVGltZVRpY2tzID49IDEwMCApID8gOTkuOSA6ICRUaW1lVGlja3M7CiAgICAgICAgJFRpY2tWYWx1ZXsiJHtUaW1lVHlwZX1UaWNrcyJ9ID0gc3ByaW50ZiggIiUuMWYiLCAkVGltZVRpY2tzICk7CiAgICB9CgogICAgIyBzZXQgd29ya29yZGVyIGFzIGluYWN0aXZlIGlmIGl0IGlzIG5vdCBzdGFydGVkIGpldAogICAgaWYgKCAhJFdvcmtPcmRlckluZm9ybWF0aW9ue0FjdHVhbFN0YXJ0VGltZX0gKSB7CiAgICAgICAgJFdvcmtPcmRlckluZm9ybWF0aW9ue1dvcmtPcmRlck9wYWNpdHl9ID0gJ1dvcmtvcmRlckluYWN0aXZlJzsKICAgIH0KCiAgICAjIHNldCB3b3Jrb3JkZXIgYWdlbnQKICAgIGlmICggJFdvcmtPcmRlckluZm9ybWF0aW9ue1dvcmtPcmRlckFnZW50SUR9ICkgewogICAgICAgIG15ICVXb3JrT3JkZXJBZ2VudERhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRXb3JrT3JkZXJJbmZvcm1hdGlvbntXb3JrT3JkZXJBZ2VudElEfSwKICAgICAgICAgICAgQ2FjaGVkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCVXb3JrT3JkZXJBZ2VudERhdGEpIHsKCiAgICAgICAgICAgICMgZ2V0IFdvcmtPcmRlckFnZW50IGluZm9ybWF0aW9uCiAgICAgICAgICAgIGZvciBteSAkUG9zdGZpeCAocXcoVXNlckxvZ2luIFVzZXJGdWxsbmFtZSkpIHsKICAgICAgICAgICAgICAgICRXb3JrT3JkZXJJbmZvcm1hdGlvbnsiV29ya09yZGVyQWdlbnQkUG9zdGZpeCJ9ID0gJFdvcmtPcmRlckFnZW50RGF0YXskUG9zdGZpeH0KICAgICAgICAgICAgICAgICAgICB8fCAnJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCB0aGUgZ3JhcGggZGlyZWN0aW9uIChMVFI6IGxlZnQsIFJUTDogcmlnaHQpCiAgICBpZiAoICRTZWxmLT57VGV4dERpcmVjdGlvbn0gJiYgJFNlbGYtPntUZXh0RGlyZWN0aW9ufSBlcSAncnRsJyApIHsKICAgICAgICAkV29ya09yZGVySW5mb3JtYXRpb257IkdyYXBoRGlyZWN0aW9uIn0gPSAncmlnaHQnOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFdvcmtPcmRlckluZm9ybWF0aW9ueyJHcmFwaERpcmVjdGlvbiJ9ID0gJ2xlZnQnOwogICAgfQoKICAgICMgY3JlYXRlIGdyYXBoIG9mIHdvcmtvcmRlciBpdGVtCiAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnV29ya09yZGVySXRlbUdyYXBoJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVdvcmtPcmRlckluZm9ybWF0aW9uLAogICAgICAgICAgICAlVGlja1ZhbHVlLAogICAgICAgIH0sCiAgICApOwoKICAgICMgZ2V0IHRoZSB3b3Jrb3JkZXIgYXR0cmlidXRlIG5hbWVzIHRoYXQgc2hvdWxkIGJlIHNob3duIGluIHRoZSB0b29sdGlwCiAgICBteSAlVG9vbHRpcEF0dHJpYnV0ZXMgPSAleyAkQ2hhbmdlWm9vbUNvbmZpZy0+eydUb29sdGlwOjpXb3JrT3JkZXJBdHRyaWJ1dGVzJ30gfTsKICAgIG15IEBTaG93QXR0cmlidXRlcyAgICA9IGdyZXAgeyAkVG9vbHRpcEF0dHJpYnV0ZXN7JF99IH0ga2V5cyAlVG9vbHRpcEF0dHJpYnV0ZXM7CgogICAgIyBidWlsZCBhdHRyaWJ1dCBibG9ja3MKICAgIGlmIChAU2hvd0F0dHJpYnV0ZXMpIHsKCiAgICAgICAgQVRUUklCVVRFOgogICAgICAgIGZvciBteSAkQXR0cmlidXRlICggc29ydCBAU2hvd0F0dHJpYnV0ZXMgKSB7CgogICAgICAgICAgICAjIHNwZWNpYWwgaGFuZGxpbmcgZm9yIHdvcmtvcmRlciBhZ2VudAogICAgICAgICAgICBpZiAoICRBdHRyaWJ1dGUgZXEgJ1dvcmtPcmRlckFnZW50JyApIHsKCiAgICAgICAgICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnV29ya09yZGVyQWdlbnRCbG9jaycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVXb3JrT3JkZXJJbmZvcm1hdGlvbiwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIHRoZSBsYXN0IHRoaW5nOiBVc2VyTG9naW4KICAgICAgICAgICAgICAgIGlmICggJFdvcmtPcmRlckluZm9ybWF0aW9ue1dvcmtPcmRlckFnZW50VXNlckxvZ2lufSApIHsKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1dvcmtPcmRlckFnZW50JywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlV29ya09yZGVySW5mb3JtYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRTZWxmLT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnRW1wdHlXb3JrT3JkZXJBZ2VudCcsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJVdvcmtPcmRlckluZm9ybWF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaGFuZGxlIHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcwogICAgICAgICAgICBlbHNpZiAoICRBdHRyaWJ1dGUgPX4gbXsgXEEgRHluYW1pY0ZpZWxkXyAoLispIH14bXMgKSB7CgogICAgICAgICAgICAgICAgbXkgJER5bmFtaWNGaWVsZE5hbWUgPSAkMTsKCiAgICAgICAgICAgICAgICAjIG9ubHkgaWYgdGhlIHdvcmtvcmRlciBkeW5hbWljIGZpZWxkIGNvbnRhaW5zIHNvbWV0aGluZwogICAgICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgISRXb3JrT3JkZXJJbmZvcm1hdGlvbnsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZE5hbWUgfTsKCiAgICAgICAgICAgICAgICAjIGdldCBjb25maWcgZm9yIHRoaXMgZHluYW1pYyBmaWVsZAogICAgICAgICAgICAgICAgbXkgJER5bmFtaWNGaWVsZENvbmZpZyA9ICRQYXJhbXtEeW5hbWljRmllbGRPYmplY3R9LT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgISREeW5hbWljRmllbGRDb25maWc7CgogICAgICAgICAgICAgICAgIyBnZXQgcHJpbnQgc3RyaW5nIGZvciB0aGlzIGR5bmFtaWMgZmllbGQKICAgICAgICAgICAgICAgIG15ICRWYWx1ZVN0cmcgPSAkUGFyYW17QmFja2VuZE9iamVjdH0tPkRpc3BsYXlWYWx1ZVJlbmRlcigKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJFdvcmtPcmRlckluZm9ybWF0aW9ueyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkTmFtZSB9LAogICAgICAgICAgICAgICAgICAgIFZhbHVlTWF4Q2hhcnMgICAgICA9PiA1MCwKICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJFNlbGYsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRTZWxmLT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdEeW5hbWljRmllbGQnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9LAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFsbCBvdGhlciBhdHRyaWJ1dGVzCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFNlbGYtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJEF0dHJpYnV0ZSwKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVdvcmtPcmRlckluZm9ybWF0aW9uLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX0lUU01DaGFuZ2VHZXRUaW1lTGluZSgpCgphIGhlbHBlciBtZXRob2QgZm9yIHRoZSBDPHdvcmtvcmRlcj4gZ3JhcGggb2YgYSBjaGFuZ2UKCj1jdXQKCnN1YiBfSVRTTUNoYW5nZUdldFRpbWVMaW5lIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBmb3Igc3RhcnQgdGltZQogICAgcmV0dXJuIGlmICEkUGFyYW17U3RhcnRUaW1lfTsKCiAgICAjIGNoZWNrIGZvciBzdGFydCB0aW1lIGlzIGFuIGludGVnZXIgdmFsdWUKICAgIHJldHVybiBpZiAkUGFyYW17U3RhcnRUaW1lfSAhfiBteyBcQSBcZCsgXHogfXhtczsKCiAgICAjIGNoZWNrIGZvciBlbmQgdGltZQogICAgcmV0dXJuIGlmICEkUGFyYW17RW5kVGltZX07CgogICAgIyBjaGVjayBmb3IgZW5kIHRpbWUgaXMgYW4gaW50ZWdlciB2YWx1ZQogICAgcmV0dXJuIGlmICRQYXJhbXtFbmRUaW1lfSAhfiBteyBcQSBcZCsgXHogfXhtczsKCiAgICAjIGNoZWNrIGZvciB0aWNrcwogICAgcmV0dXJuIGlmICEkUGFyYW17VGlja3N9OwoKICAgICMgY2hlY2sgZm9yIHRpY2tzIGlzIGFuIGludGVnZXIgdmFsdWUKICAgIHJldHVybiBpZiAkUGFyYW17VGlja3N9ICF+IG17IFxBIFxkKyBceiB9eG1zOwoKICAgICMgZ2V0IGN1cnJlbnQgc3lzdGVtIHRpbWUKICAgIG15ICRDdXJyZW50VGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpLT5Ub0Vwb2NoKCk7CgogICAgIyBjaGVjayBmb3Igc3lzdGVtIHRpbWUKICAgIHJldHVybiBpZiAhJEN1cnJlbnRUaW1lOwoKICAgICMgY2hlY2sgaWYgY3VycmVudCB0aW1lIGlzIGluIGNoYW5nZSB0aW1lIGludGVydmFsCiAgICByZXR1cm4gaWYgJEN1cnJlbnRUaW1lIDwgJFBhcmFte1N0YXJ0VGltZX07CiAgICByZXR1cm4gaWYgJEN1cnJlbnRUaW1lID4gJFBhcmFte0VuZFRpbWV9OwoKICAgICMgdGltZSBsaW5lIGRhdGEKICAgIG15ICVUaW1lTGluZTsKCiAgICAjIGNhbGN1bGF0ZSBwZXJjZW50IG9mIHRpbWVsaW5lCiAgICBteSAkUmVsYXRpdmVFbmQgICA9ICRQYXJhbXtFbmRUaW1lfSAtICRQYXJhbXtTdGFydFRpbWV9OwogICAgbXkgJFJlbGF0aXZlU3RhcnQgPSAkQ3VycmVudFRpbWUgLSAkUGFyYW17U3RhcnRUaW1lfTsKCiAgICAjIGdldCB0aW1lbGluZSBpbmRlbnQgd2l0aCAxIGRpZ2l0IGFmdGVyIGRlY2ltYWwgcG9pbnQKICAgICRUaW1lTGluZXtUaW1lTGluZUxlZnR9ID0gc3ByaW50ZiggIiUuMWYiLCAoICRSZWxhdGl2ZVN0YXJ0IC8gJFJlbGF0aXZlRW5kICkgKiAxMDAgKTsKCiAgICAjIHZlcmlmeSBwZXJjZW50IHZhbHVlcwogICAgaWYgKCAkVGltZUxpbmV7VGltZUxpbmVMZWZ0fSA8PSAwICkgewogICAgICAgICRUaW1lTGluZXtUaW1lTGluZUxlZnR9ID0gMDsKICAgIH0KICAgIGlmICggJFRpbWVMaW5le1RpbWVMaW5lTGVmdH0gPj0gMTAwICkgewogICAgICAgICRUaW1lTGluZXtUaW1lTGluZUxlZnR9ID0gOTkuOTsKICAgIH0KCiAgICByZXR1cm4gXCVUaW1lTGluZTsKfQoKPWhlYWQyIF9UaW1lU3RhbXAyRXBvY2goKQoKQ29udmVydCBhIHRpbWVzdGFtcCB0byBhIGVwb2NoICh1bml4IHRpbWUpLgoKPWN1dAoKc3ViIF9UaW1lU3RhbXAyRXBvY2ggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17VGltZVN0YW1wfSwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gJERhdGVUaW1lT2JqZWN0LT5Ub0Vwb2NoKCkgaWYgJERhdGVUaW1lT2JqZWN0OwogICAgcmV0dXJuOwp9Cgo9aGVhZDIgX0Vwb2NoMlRpbWVTdGFtcCgpCgpDb252ZXJ0IGEgZXBvY2ggKHVuaXggdGltZSkgdG8gYSB0aW1lc3RhbXAgKEM8eXl5eS1tbS1kZCBoaDptbTpzcz4pLgoKPWN1dAoKc3ViIF9FcG9jaDJUaW1lU3RhbXAgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIEVwb2NoID0+ICRQYXJhbXtFcG9jaH0sCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuICREYXRlVGltZU9iamVjdC0+VG9TdHJpbmcoKSBpZiAkRGF0ZVRpbWVPYmplY3Q7CiAgICByZXR1cm47Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Layout/ITSMTemplate.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0OjpJVFNNVGVtcGxhdGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwp1c2UgUE9TSVggICAgICAgICAgICBxdyhjZWlsKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCj1oZWFkMiBJVFNNVGVtcGxhdGVMaXN0U2hvdygpCgpSZXR1cm5zIGEgbGlzdCBvZiB0ZW1wbGF0ZXMgYXMgQzxzb3J0YWJsZT4gbGlzdCB3aXRoIHBhZ2luYXRpb24uCgpUaGlzIGZ1bmN0aW9uIGlzIHNpbWlsYXIgdG8gTDxLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0OjpJVFNNQ2hhbmdlOjpJVE1DaGFuZ2VMaXN0U2hvdygpPgppbiBGPEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXRJVFNNQ2hhbmdlLnBtPi4KCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SVRTTVRlbXBsYXRlTGlzdFNob3coCiAgICAgICAgVGVtcGxhdGVJRHMgID0+ICRUZW1wbGF0ZUlEc1JlZiwgICAgICAgICAgICAgICAgICAjIHRvdGFsIGxpc3Qgb2YgdGVtcGxhdGUgaWRzLCB0aGF0IGNhbiBiZSBsaXN0ZWQKICAgICAgICBUb3RhbCAgICAgID0+IHNjYWxhciBAeyAkVGVtcGxhdGVJRHNSZWYgfSwgICAgICAgICMgdG90YWwgbnVtYmVyIG9mIGxpc3QgaXRlbXMsIHRlbXBsYXRlcyBpbiB0aGlzIGNhc2UKICAgICAgICBGaWx0ZXIgICAgID0+ICdBbGwnLAogICAgICAgIEZpbHRlcnMgICAgPT4gXCVOYXZCYXJGaWx0ZXIsCiAgICAgICAgRmlsdGVyTGluayA9PiAkTGlua0ZpbHRlciwKICAgICAgICBUaXRsZU5hbWUgID0+ICdPdmVydmlldzogVGVtcGxhdGUnLAogICAgICAgIFRpdGxlVmFsdWUgPT4gJFNlbGYtPntGaWx0ZXJ9LAogICAgICAgIEVudiAgICAgICAgPT4gJFNlbGYsCiAgICAgICAgTGlua1BhZ2UgICA9PiAkTGlua1BhZ2UsCiAgICAgICAgTGlua1NvcnQgICA9PiAkTGlua1NvcnQsCiAgICApOwoKPWN1dAoKc3ViIElUU01UZW1wbGF0ZUxpc3RTaG93IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIG9iamVjdCByZWYgdG8gbG9jYWwsIHJlbW92ZSBpdCBmcm9tICVQYXJhbSAocHJldmVudCBtZW1vcnkgbGVhaykKICAgIG15ICRFbnYgPSBkZWxldGUgJFBhcmFte0Vudn07CgogICAgIyBmb3Igbm93IHRoZXJlIGlzIG9ubHkgdGhlICdTbWFsbCcgdmlldwogICAgbXkgJFZpZXcgPSAnU21hbGwnOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBnZXQgYmFja2VuZCBmcm9tIGNvbmZpZwogICAgbXkgJEJhY2tlbmRzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdJVFNNQ2hhbmdlOjpGcm9udGVuZDo6VGVtcGxhdGVPdmVydmlldycpOwogICAgaWYgKCAhJEJhY2tlbmRzICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICdOZWVkIGNvbmZpZyBvcHRpb24gJXMhJywKICAgICAgICAgICAgICAgICdJVFNNQ2hhbmdlOjpGcm9udGVuZDo6VGVtcGxhdGVPdmVydmlldycsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgZm9yIGhhc2gtcmVmCiAgICBpZiAoIHJlZiAkQmFja2VuZHMgbmUgJ0hBU0gnICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICdDb25maWcgb3B0aW9uICVzIG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJywKICAgICAgICAgICAgICAgICdJVFNNQ2hhbmdlOjpGcm9udGVuZDo6VGVtcGxhdGVPdmVydmlldycsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgZm9yIGNvbmZpZyBrZXkKICAgIGlmICggISRCYWNrZW5kcy0+eyRWaWV3fSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiIScsICRWaWV3ICksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgbmF2IGJhcgogICAgbXkgJFN0YXJ0SGl0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N0YXJ0SGl0JyApIHx8IDE7CgogICAgIyBjaGVjayBzdGFydCBvcHRpb24sIGlmIGhpZ2hlciB0aGVuIGVsZW1lbnRzIGF2YWlsYWJsZSwgc2V0CiAgICAjIGl0IHRvIHRoZSBsYXN0IG92ZXJ2aWV3IHBhZ2UgKFRoYW5rcyB0byBTdGVmYW4gU2NobWlkdCEpCiAgICBteSAkUGFnZVNob3duID0gJEJhY2tlbmRzLT57JFZpZXd9LT57UGFnZVNob3dufTsKICAgIGlmICggJFN0YXJ0SGl0ID4gJFBhcmFte1RvdGFsfSApIHsKICAgICAgICBteSAkUGFnZXMgPSBpbnQoICggJFBhcmFte1RvdGFsfSAvICRQYWdlU2hvd24gKSArIDAuOTk5OTkgKTsKICAgICAgICAkU3RhcnRIaXQgPSAoICggJFBhZ2VzIC0gMSApICogJFBhZ2VTaG93biApICsgMTsKICAgIH0KCiAgICAjIHNldCBwYWdlIGxpbWl0IGFuZCBidWlsZCBwYWdlIG5hdgogICAgbXkgJExpbWl0ICAgPSAkUGFyYW17TGltaXR9IHx8IDIwXzAwMDsKICAgIG15ICVQYWdlTmF2ID0gJExheW91dE9iamVjdC0+UGFnZU5hdkJhcigKICAgICAgICBMaW1pdCAgICAgPT4gJExpbWl0LAogICAgICAgIFN0YXJ0SGl0ICA9PiAkU3RhcnRIaXQsCiAgICAgICAgUGFnZVNob3duID0+ICRQYWdlU2hvd24sCiAgICAgICAgQWxsSGl0cyAgID0+ICRQYXJhbXtUb3RhbH0gfHwgMCwKICAgICAgICBBY3Rpb24gICAgPT4gJ0FjdGlvbj0nIC4gJExheW91dE9iamVjdC0+e0FjdGlvbn0sCiAgICAgICAgTGluayAgICAgID0+ICRQYXJhbXtMaW5rUGFnZX0sCiAgICApOwoKICAgICMgYnVpbGQgbmF2YmFyIGNvbnRlbnQKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICMgYmFjayBsaW5rCiAgICBpZiAoICRQYXJhbXtMaW5rQmFja30gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyUGFnZUJhY2snLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBmaWx0ZXJzCiAgICBpZiAoICRQYXJhbXtGaWx0ZXJzfSApIHsKCiAgICAgICAgIyBnZXQgZ2l2ZW4gZmlsdGVycwogICAgICAgIG15IEBOYXZCYXJGaWx0ZXJzOwogICAgICAgIGZvciBteSAkUHJpbyAoIHNvcnQga2V5cyAleyAkUGFyYW17RmlsdGVyc30gfSApIHsKICAgICAgICAgICAgcHVzaCBATmF2QmFyRmlsdGVycywgJFBhcmFte0ZpbHRlcnN9LT57JFByaW99OwogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBmaWx0ZXIgY29udGVudAogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhckZpbHRlcicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgbG9vcCBvdmVyIGZpbHRlcnMKICAgICAgICBteSAkQ291bnQgPSAwOwogICAgICAgIGZvciBteSAkRmlsdGVyIChATmF2QmFyRmlsdGVycykgewoKICAgICAgICAgICAgIyBpbmNyZW1lbnQgZmlsdGVyIGNvdW50IGFuZCBidWlsZCBmaWx0ZXIgaXRlbQogICAgICAgICAgICAkQ291bnQrKzsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhckZpbHRlckl0ZW0nLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICV7JEZpbHRlcn0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBmaWx0ZXIgaXMgc2VsZWN0ZWQKICAgICAgICAgICAgaWYgKCAkRmlsdGVyLT57RmlsdGVyfSBlcSAkUGFyYW17RmlsdGVyfSApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyRmlsdGVySXRlbVNlbGVjdGVkJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAleyRGaWx0ZXJ9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU2VsZWN0ZWROb3QnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICV7JEZpbHRlcn0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBsb29wIG92ZXIgY29uZmlndXJlZCBiYWNrZW5kcywgd2hlbiB0aGVyZSBpcyBtb3JlIHRoYW4gYSBzaW5nbGUgYmFja2VuZAogICAgZm9yIG15ICRCYWNrZW5kICggc29ydCBrZXlzICV7JEJhY2tlbmRzfSApIHsKCiAgICAgICAgIyBidWlsZCBuYXZiYXIgdmlldyBtb2RlCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyVmlld01vZGUnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICV7ICRCYWNrZW5kcy0+eyRCYWNrZW5kfSB9LAogICAgICAgICAgICAgICAgRmlsdGVyID0+ICRQYXJhbXtGaWx0ZXJ9LAogICAgICAgICAgICAgICAgVmlldyAgID0+ICRCYWNrZW5kLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3VycmVudCB2aWV3IGlzIGNvbmZpZ3VyZWQgaW4gYmFja2VuZAogICAgICAgIGlmICggJFZpZXcgZXEgJEJhY2tlbmQgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZVNlbGVjdGVkJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAleyAkQmFja2VuZHMtPnskQmFja2VuZH0gfSwKICAgICAgICAgICAgICAgICAgICBGaWx0ZXIgPT4gJFBhcmFte0ZpbHRlcn0sCiAgICAgICAgICAgICAgICAgICAgVmlldyAgID0+ICRCYWNrZW5kLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZU5vdFNlbGVjdGVkJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAleyAkQmFja2VuZHMtPnskQmFja2VuZH0gfSwKICAgICAgICAgICAgICAgICAgICBGaWx0ZXIgPT4gJFBhcmFte0ZpbHRlcn0sCiAgICAgICAgICAgICAgICAgICAgVmlldyAgID0+ICRCYWNrZW5kLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiBwYWdlIG5hdiBpcyBhdmFpbGFibGUKICAgIGlmICglUGFnZU5hdikgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhclBhZ2VOYXZCYXInLAogICAgICAgICAgICBEYXRhID0+IFwlUGFnZU5hdiwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgaWYgbmF2IGJhciBpcyBhdmFpbGFibGUKICAgIGlmICggJFBhcmFte05hdkJhcn0gKSB7CiAgICAgICAgaWYgKCAkUGFyYW17TmF2QmFyfS0+e01haW5OYW1lfSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhck1haW4nLAogICAgICAgICAgICAgICAgRGF0YSA9PiAkUGFyYW17TmF2QmFyfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBidWlsZCBodG1sIGNvbnRlbnQKICAgIG15ICRPdXRwdXROYXZCYXIgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3TmF2QmFyJywKICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICApOwoKICAgICMgY3JlYXRlIG91dHB1dAogICAgbXkgJE91dHB1dFJhdyA9ICcnOwogICAgaWYgKCAhJFBhcmFte091dHB1dH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+UHJpbnQoCiAgICAgICAgICAgIE91dHB1dCA9PiBcJE91dHB1dE5hdkJhciwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJE91dHB1dFJhdyAuPSAkT3V0cHV0TmF2QmFyOwogICAgfQoKICAgICMgbG9hZCBtb2R1bGUKICAgIGlmICggISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPlJlcXVpcmUoICRCYWNrZW5kcy0+eyRWaWV3fS0+e01vZHVsZX0gKSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigpOwogICAgfQoKICAgICMgY2hlY2sgZm9yIGJhY2tlbmQgb2JqZWN0CiAgICBteSAkT2JqZWN0ID0gJEJhY2tlbmRzLT57JFZpZXd9LT57TW9kdWxlfS0+bmV3KCAleyRFbnZ9ICk7CiAgICByZXR1cm4gaWYgISRPYmplY3Q7CgogICAgIyBydW4gbW9kdWxlCiAgICBteSAkT3V0cHV0ID0gJE9iamVjdC0+UnVuKAogICAgICAgICVQYXJhbSwKICAgICAgICBMaW1pdCAgICAgPT4gJExpbWl0LAogICAgICAgIFN0YXJ0SGl0ICA9PiAkU3RhcnRIaXQsCiAgICAgICAgUGFnZVNob3duID0+ICRQYWdlU2hvd24sCiAgICAgICAgQWxsSGl0cyAgID0+ICRQYXJhbXtUb3RhbH0gfHwgMCwKICAgICk7CgogICAgIyBjcmVhdGUgb3V0cHV0CiAgICBpZiAoICEkUGFyYW17T3V0cHV0fSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5QcmludCgKICAgICAgICAgICAgT3V0cHV0ID0+IFwkT3V0cHV0LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkT3V0cHV0UmF3IC49ICRPdXRwdXQ7CiAgICB9CgogICAgIyBjcmVhdGUgb3ZlcnZpZXcgbmF2IGJhcgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXInLAogICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICApOwoKICAgICMgcmV0dXJuIGNvbnRlbnQgaWYgYXZhaWxhYmxlCiAgICByZXR1cm4gJE91dHB1dFJhdzsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Output/HTML/LinkObject/ITSMChange.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGlua09iamVjdDo6SVRTTUNoYW5nZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CnVzZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Owp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpMYW5ndWFnZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkpTT04nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJywKICAgICdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGlua09iamVjdDo6SVRTTUNoYW5nZSAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQoKPWhlYWQxIERFU0NSSVBUSU9OCgpBbGwgbGF5b3V0IGZ1bmN0aW9ucyBvZiBsaW5rIG9iamVjdCAoY2hhbmdlKQoKPWhlYWQyIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgJEJhY2tlbmRPYmplY3QgPSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGlua09iamVjdDo6SVRTTUNoYW5nZS0+bmV3KAogICAgICAgIFVzZXJMYW5ndWFnZSA9PiAnZW4nLAogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICROZWVkZWQgKHF3KFVzZXJMYW5ndWFnZSBVc2VySUQpKSB7CiAgICAgICAgJFNlbGYtPnskTmVlZGVkfSA9ICRQYXJhbXskTmVlZGVkfSB8fCBkaWUgIkdvdCBubyAkTmVlZGVkISI7CiAgICB9CgogICAgIyBXZSBuZWVkIG91ciBvd24gTGF5b3V0T2JqZWN0IGluc3RhbmNlIHRvIGF2b2lkIGJsb2NrZGF0YSBjb2xsaXNpb25zCiAgICAjICAgd2l0aCB0aGUgbWFpbiBwYWdlLgogICAgJFNlbGYtPntMYXlvdXRPYmplY3R9ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dC0+bmV3KCAleyRTZWxmfSApOwoKICAgICMgZGVmaW5lIG5lZWRlZCB2YXJpYWJsZXMKICAgICRTZWxmLT57T2JqZWN0RGF0YX0gPSB7CiAgICAgICAgT2JqZWN0ICAgICA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgUmVhbG5hbWUgICA9PiAnQ2hhbmdlJywKICAgICAgICBPYmplY3ROYW1lID0+ICdTb3VyY2VPYmplY3RJRCcsCiAgICB9OwoKICAgICMgZ2V0IGNvbmZpZwogICAgJFNlbGYtPntDaGFuZ2VIb29rfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSVRTTUNoYW5nZTo6SG9vaycpOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIFRhYmxlQ3JlYXRlQ29tcGxleCgpCgpyZXR1cm4gYW4gYXJyYXkgd2l0aCB0aGUgYmxvY2sgZGF0YQoKUmV0dXJuCgogICAgQEJsb2NrRGF0YSA9ICgKCiAgICAgICAgT2JqZWN0TmFtZSAgPT4gJ0NoYW5nZUlEJywKICAgICAgICBPYmplY3RJRCAgICA9PiAnMTIzJywKCiAgICAgICAgT2JqZWN0ICAgID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBCbG9ja25hbWUgPT4gJ0NoYW5nZScsCiAgICAgICAgSGVhZGxpbmUgID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ29udGVudCA9PiAnJywKICAgICAgICAgICAgICAgIFdpZHRoICAgPT4gMjAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJ0NoYW5nZSMnLAogICAgICAgICAgICAgICAgV2lkdGggICA9PiAyMDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJ0NoYW5nZSBUaXRsZScsCiAgICAgICAgICAgICAgICBXaWR0aCAgID0+IDIwMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ29udGVudCA9PiAnQ2hhbmdlIFN0YXRlJywKICAgICAgICAgICAgICAgIFdpZHRoICAgPT4gMTAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDb250ZW50ID0+ICdDaGFuZ2VkJywKICAgICAgICAgICAgICAgIFdpZHRoICAgPT4gMTUwLAogICAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgSXRlbUxpc3QgPT4gWwogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ0NoYW5nZVN0YXRlU2lnbmFsJywKICAgICAgICAgICAgICAgICAgICBLZXkgICAgICAgICA9PiAxMjMsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJ2dyYXlsZWQnLAogICAgICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlID0+ICdyZXF1ZXN0ZWQnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdMaW5rJywKICAgICAgICAgICAgICAgICAgICBDb250ZW50ID0+ICcyMDA5MTAwMTEyMzQ1Nzc4JywKICAgICAgICAgICAgICAgICAgICBMaW5rICAgID0+ICdBY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0xMjMnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgPT4gJ1RleHQnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICA9PiAnQ2hhbmdlIFRpdGxlJywKICAgICAgICAgICAgICAgICAgICBNYXhMZW5ndGggPT4gNzAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCAgID0+ICdyZXF1ZXN0ZWQnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdUaW1lTG9uZycsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCA9PiAnMjAwOC0wMS0wMSAxMjoxMjowMCcsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ0NoYW5nZVN0YXRlU2lnbmFsJywKICAgICAgICAgICAgICAgICAgICBLZXkgICAgICAgICA9PiA0NTYsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJ2dyZWVubGVkJywKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZSA9PiAnY2xvc2VkJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnTGluaycsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCA9PiAnMjAwOTEwMDExMjM0NTc3NCcsCiAgICAgICAgICAgICAgICAgICAgTGluayAgICA9PiAnQWN0aW9uPUFnZW50SVRTTUNoYW5nZVpvb207Q2hhbmdlSUQ9NDU2JywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgICAgICAgICBDb250ZW50ICAgPT4gJ0NoYW5nZSBUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgTWF4TGVuZ3RoID0+IDcwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgPT4gJ1RleHQnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICA9PiAnY2xvc2VkJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnVGltZUxvbmcnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJzIwMDgtMDEtMDEgMTI6MTI6MDAnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICBdLAogICAgKTsKCiAgICBAQmxvY2tEYXRhID0gJExpbmtPYmplY3QtPlRhYmxlQ3JlYXRlQ29tcGxleCgKICAgICAgICBPYmplY3RMaW5rTGlzdFdpdGhEYXRhID0+ICRPYmplY3RMaW5rTGlzdFJlZiwKICAgICk7Cgo9Y3V0CgpzdWIgVGFibGVDcmVhdGVDb21wbGV4IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtPYmplY3RMaW5rTGlzdFdpdGhEYXRhfSB8fCByZWYgJFBhcmFte09iamVjdExpbmtMaXN0V2l0aERhdGF9IG5lICdIQVNIJyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgT2JqZWN0TGlua0xpc3RXaXRoRGF0YSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY29udmVydCB0aGUgbGlzdAogICAgbXkgJUxpbmtMaXN0OwogICAgZm9yIG15ICRMaW5rVHlwZSAoIHNvcnQga2V5cyAleyAkUGFyYW17T2JqZWN0TGlua0xpc3RXaXRoRGF0YX0gfSApIHsKCiAgICAgICAgIyBleHRyYWN0IGxpbmsgdHlwZSBMaXN0CiAgICAgICAgbXkgJExpbmtUeXBlTGlzdCA9ICRQYXJhbXtPYmplY3RMaW5rTGlzdFdpdGhEYXRhfS0+eyRMaW5rVHlwZX07CgogICAgICAgIGZvciBteSAkRGlyZWN0aW9uICggc29ydCBrZXlzICV7JExpbmtUeXBlTGlzdH0gKSB7CgogICAgICAgICAgICAjIGV4dHJhY3QgZGlyZWN0aW9uIGxpc3QKICAgICAgICAgICAgbXkgJERpcmVjdGlvbkxpc3QgPSAkUGFyYW17T2JqZWN0TGlua0xpc3RXaXRoRGF0YX0tPnskTGlua1R5cGV9LT57JERpcmVjdGlvbn07CgogICAgICAgICAgICBmb3IgbXkgJENoYW5nZUlEICggc29ydCBrZXlzICV7JERpcmVjdGlvbkxpc3R9ICkgewoKICAgICAgICAgICAgICAgICRMaW5rTGlzdHskQ2hhbmdlSUR9LT57RGF0YX0gPSAkRGlyZWN0aW9uTGlzdC0+eyRDaGFuZ2VJRH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJENvbXBsZXhUYWJsZURhdGEgPSAkQ29uZmlnT2JqZWN0LT5HZXQoIkxpbmtPYmplY3Q6OkNvbXBsZXhUYWJsZSIpOwogICAgbXkgJERlZmF1bHRDb2x1bW5zOwogICAgaWYgKAogICAgICAgICRDb21wbGV4VGFibGVEYXRhCiAgICAgICAgJiYgSXNIYXNoUmVmV2l0aERhdGEoJENvbXBsZXhUYWJsZURhdGEpCiAgICAgICAgJiYgJENvbXBsZXhUYWJsZURhdGEtPntJVFNNQ2hhbmdlfQogICAgICAgICYmIElzSGFzaFJlZldpdGhEYXRhKCAkQ29tcGxleFRhYmxlRGF0YS0+e0lUU01DaGFuZ2V9ICkKICAgICAgICApCiAgICB7CiAgICAgICAgJERlZmF1bHRDb2x1bW5zID0gJENvbXBsZXhUYWJsZURhdGEtPnsiSVRTTUNoYW5nZSJ9LT57IkRlZmF1bHRDb2x1bW5zIn07CiAgICB9CgogICAgbXkgQFRpbWVMb25nVHlwZXMgPSAoCiAgICAgICAgJ0NyZWF0ZVRpbWUnLAogICAgICAgICdDaGFuZ2VUaW1lJywKICAgICAgICAnUGxhbm5lZFN0YXJ0VGltZScsCiAgICAgICAgJ1BsYW5uZWRFbmRUaW1lJywKICAgICAgICAnQWN0dWFsU3RhcnRUaW1lJywKICAgICAgICAnQWN0dWFsRW5kVGltZScsCiAgICAgICAgJ1JlcXVlc3RlZFRpbWUnLAogICAgKTsKCiAgICBteSBAVHJhbnNsYXRlVHlwZXMgPSAoCiAgICAgICAgJ0NhdGVnb3J5JywKICAgICAgICAnSW1wYWN0JywKICAgICAgICAnUHJpb3JpdHknLAogICAgKTsKCiAgICAjIGFsd2F5cyBzaG93IHRoZSBjaGFuZ2Ugc3RhdGUgZmxhZyBhbmQgdGhlIGNoYW5nZSBudW1iZXIKICAgIG15IEBIZWFkbGluZSA9ICgKICAgICAgICB7CiAgICAgICAgICAgIENvbnRlbnQgPT4gJ0NoYW5nZVN0YXRlJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQ29udGVudCA9PiAkU2VsZi0+e0NoYW5nZUhvb2t9LAogICAgICAgIH0sCiAgICApOwoKICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIExvYWQgdXNlciBwcmVmZXJlbmNlcy4KICAgIG15ICVQcmVmZXJlbmNlcyA9ICRVc2VyT2JqZWN0LT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBpZiAoICEkRGVmYXVsdENvbHVtbnMgfHwgIUlzSGFzaFJlZldpdGhEYXRhKCREZWZhdWx0Q29sdW1ucykgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdNaXNzaW5nIGNvbmZpZ3VyYXRpb24gZm9yIExpbmtPYmplY3Q6OkNvbXBsZXhUYWJsZSMjI0lUU01DaGFuZ2UhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIEdldCBkZWZhdWx0IGNvbHVtbiBwcmlvcml0eSBmcm9tIFN5c0NvbmZpZy4KICAgICMgRWFjaCBjb2x1bW4gaW4gdGFibGUgKFRpdGxlLCBTdGF0ZSwuLi4pIGhhcyBkZWZpbmVkIFByaW9yaXR5IGluIFN5c0NvbmZpZy4gU3lzdGVtIHVzZSB0aGlzCiAgICAjICAgcHJpb3JpdHkgdG8gc29ydCBjb2x1bW5zLCBpZiB1c2VyIGRvZXNuJ3QgaGF2ZSBvd24gc2V0dGluZ3MuCiAgICBteSAlU29ydE9yZGVyOwogICAgaWYgKAogICAgICAgICRDb21wbGV4VGFibGVEYXRhLT57IklUU01DaGFuZ2UifS0+eyJQcmlvcml0eSJ9CiAgICAgICAgJiYgSXNIYXNoUmVmV2l0aERhdGEoICRDb21wbGV4VGFibGVEYXRhLT57IklUU01DaGFuZ2UifS0+eyJQcmlvcml0eSJ9ICkKICAgICAgICApCiAgICB7CiAgICAgICAgJVNvcnRPcmRlciA9ICV7ICRDb21wbGV4VGFibGVEYXRhLT57IklUU01DaGFuZ2UifS0+eyJQcmlvcml0eSJ9IH07CiAgICB9CgogICAgbXkgJVVzZXJDb2x1bW5zID0gJXskRGVmYXVsdENvbHVtbnN9OwoKICAgIGlmICggJFByZWZlcmVuY2VzeydMaW5rT2JqZWN0OjpDb21wbGV4VGFibGUtSVRTTUNoYW5nZSd9ICkgewoKICAgICAgICBteSAkQ29sdW1uc0VuYWJsZWQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SlNPTicpLT5EZWNvZGUoCiAgICAgICAgICAgIERhdGEgPT4gJFByZWZlcmVuY2VzeydMaW5rT2JqZWN0OjpDb21wbGV4VGFibGUtSVRTTUNoYW5nZSd9LAogICAgICAgICk7CgogICAgICAgIGlmICgKICAgICAgICAgICAgJENvbHVtbnNFbmFibGVkCiAgICAgICAgICAgICYmIElzSGFzaFJlZldpdGhEYXRhKCRDb2x1bW5zRW5hYmxlZCkKICAgICAgICAgICAgJiYgJENvbHVtbnNFbmFibGVkLT57T3JkZXJ9CiAgICAgICAgICAgICYmIElzQXJyYXlSZWZXaXRoRGF0YSggJENvbHVtbnNFbmFibGVkLT57T3JkZXJ9ICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgIyBDbGVhciBzb3J0IG9yZGVyLgogICAgICAgICAgICAlU29ydE9yZGVyID0gKCk7CgogICAgICAgICAgICBERUZBVUxUQ09MVU1OOgogICAgICAgICAgICBmb3IgbXkgJERlZmF1bHRDb2x1bW4gKCBzb3J0IGtleXMgJVVzZXJDb2x1bW5zICkgewogICAgICAgICAgICAgICAgbXkgJEluZGV4ID0gMDsKCiAgICAgICAgICAgICAgICBmb3IgbXkgJFVzZXJTZXR0aW5nICggQHsgJENvbHVtbnNFbmFibGVkLT57T3JkZXJ9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEluZGV4Kys7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkRGVmYXVsdENvbHVtbiBlcSAkVXNlclNldHRpbmcgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRVc2VyQ29sdW1uc3skRGVmYXVsdENvbHVtbn0gPSAyOwogICAgICAgICAgICAgICAgICAgICAgICAkU29ydE9yZGVyeyREZWZhdWx0Q29sdW1ufSAgID0gJEluZGV4OwoKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBERUZBVUxUQ09MVU1OOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIE5vdCBmb3VuZCwgbWVhbnMgdXNlciBjaG9zZSB0byBoaWRlIHRoaXMgaXRlbS4KICAgICAgICAgICAgICAgIGlmICggJFVzZXJDb2x1bW5zeyREZWZhdWx0Q29sdW1ufSA9PSAyICkgewogICAgICAgICAgICAgICAgICAgICRVc2VyQ29sdW1uc3skRGVmYXVsdENvbHVtbn0gPSAxOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggISRTb3J0T3JkZXJ7JERlZmF1bHRDb2x1bW59ICkgewogICAgICAgICAgICAgICAgICAgICRTb3J0T3JkZXJ7JERlZmF1bHRDb2x1bW59ID0gMDsgICAgIyBTZXQgMCwgaXQgc3lzdGVtIHdpbGwgaGlkZSB0aGlzIGl0ZW0gYW55d2F5cwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgVXNlciBoYXMgbm8gb3duIHNldHRpbmdzLgogICAgICAgIGZvciBteSAkQ29sdW1uICggc29ydCBrZXlzICVVc2VyQ29sdW1ucyApIHsKICAgICAgICAgICAgaWYgKCAhJFNvcnRPcmRlcnskQ29sdW1ufSApIHsKICAgICAgICAgICAgICAgICRTb3J0T3JkZXJ7JENvbHVtbn0gPSAwOyAgICAjIFNldCAwLCBpdCBzeXN0ZW0gd2lsbCBoaWRlIHRoaXMgaXRlbSBhbnl3YXlzCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBEZWZpbmUgSGVhZGxpbmUgY29sdW1ucy4KICAgIG15IEBBbGxDb2x1bW5zOwogICAgQ09MVU1OOgogICAgZm9yIG15ICRDb2x1bW4gKCBzb3J0IHsgJFNvcnRPcmRlcnskYX0gPD0+ICRTb3J0T3JkZXJ7JGJ9IH0ga2V5cyAlVXNlckNvbHVtbnMgKSB7CgogICAgICAgIG15ICRDb2x1bW5UcmFuc2xhdGUgPSAkQ29sdW1uOwogICAgICAgIGlmICggJENvbHVtbiBlcSAnQ3JlYXRlVGltZScgKSB7CiAgICAgICAgICAgICRDb2x1bW5UcmFuc2xhdGUgPSBUcmFuc2xhdGFibGUoJ0NyZWF0ZWQnKTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAkQ29sdW1uIGVxICdDaGFuZ2VUaW1lJyApIHsKICAgICAgICAgICAgJENvbHVtblRyYW5zbGF0ZSA9IFRyYW5zbGF0YWJsZSgnQ2hhbmdlZCcpOwogICAgICAgIH0KCiAgICAgICAgcHVzaCBAQWxsQ29sdW1ucywgewogICAgICAgICAgICBDb2x1bW5OYW1lICAgICAgPT4gJENvbHVtbiwKICAgICAgICAgICAgQ29sdW1uVHJhbnNsYXRlID0+ICRDb2x1bW5UcmFuc2xhdGUsCiAgICAgICAgfTsKCiAgICAgICAgIyBpZiBlbmFibGVkIGJ5IGRlZmF1bHQuCiAgICAgICAgaWYgKCAkVXNlckNvbHVtbnN7JENvbHVtbn0gPT0gMiApIHsKICAgICAgICAgICAgcHVzaCBASGVhZGxpbmUsIHsKICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJENvbHVtblRyYW5zbGF0ZSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgdGhlIGl0ZW0gbGlzdCwgc29ydCBieSBDaGFuZ2VJRCBEb3duCiAgICBteSBASXRlbUxpc3Q7CiAgICBmb3IgbXkgJENoYW5nZUlEICgKICAgICAgICBzb3J0IHsKICAgICAgICAgICAgJExpbmtMaXN0eyRifXtEYXRhfS0+e0NoYW5nZUlEfSA8PT4gJExpbmtMaXN0eyRhfXtEYXRhfS0+e0NoYW5nZUlEfQogICAgICAgIH0ga2V5cyAlTGlua0xpc3QKICAgICAgICApCiAgICB7CgogICAgICAgICMgZXh0cmFjdCBjaGFuZ2UgZGF0YQogICAgICAgIG15ICRDaGFuZ2UgPSAkTGlua0xpc3R7JENoYW5nZUlEfS0+e0RhdGF9OwoKICAgICAgICBteSBASXRlbUNvbHVtbnMgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdDaGFuZ2VTdGF0ZVNpZ25hbCcsCiAgICAgICAgICAgICAgICBLZXkgICAgICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICBDb250ZW50ICAgICA9PiAkQ2hhbmdlLT57Q2hhbmdlU3RhdGVTaWduYWx9LAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGUgPT4gJENoYW5nZS0+e0NoYW5nZVN0YXRlfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnTGluaycsCiAgICAgICAgICAgICAgICBDb250ZW50ID0+ICRDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9LAogICAgICAgICAgICAgICAgTGluayAgICA9PiAkU2VsZi0+e0xheW91dE9iamVjdH0tPntCYXNlbGlua30KICAgICAgICAgICAgICAgICAgICAuICdBY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0nCiAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICBUaXRsZSA9PiAiQ2hhbmdlIyAkQ2hhbmdlLT57Q2hhbmdlTnVtYmVyfTogJENoYW5nZS0+e0NoYW5nZVRpdGxlfSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgQ09MVU1OOgogICAgICAgIGZvciBteSAkQ29sdW1uICggc29ydCB7ICRTb3J0T3JkZXJ7JGF9IDw9PiAkU29ydE9yZGVyeyRifSB9IGtleXMgJVVzZXJDb2x1bW5zICkgewoKICAgICAgICAgICAgIyBpZiBlbmFibGVkIGJ5IGRlZmF1bHQKICAgICAgICAgICAgaWYgKCAkVXNlckNvbHVtbnN7JENvbHVtbn0gPT0gMiApIHsKCiAgICAgICAgICAgICAgICBteSAlSGFzaDsKICAgICAgICAgICAgICAgIGlmICggZ3JlcCB7ICRfIGVxICRDb2x1bW4gfSBAVGltZUxvbmdUeXBlcyApIHsKICAgICAgICAgICAgICAgICAgICAkSGFzaHsnVHlwZSd9ID0gJ1RpbWVMb25nJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRIYXNoeydUeXBlJ30gPSAnVGV4dCc7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCBncmVwIHsgJF8gZXEgJENvbHVtbiB9IEBUcmFuc2xhdGVUeXBlcyApIHsKICAgICAgICAgICAgICAgICAgICAkSGFzaHsnVHJhbnNsYXRlJ30gPSAxOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRIYXNoeydDb250ZW50J30gPSAkQ2hhbmdlLT57JENvbHVtbn07CgogICAgICAgICAgICAgICAgcHVzaCBASXRlbUNvbHVtbnMsIFwlSGFzaDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcHVzaCBASXRlbUxpc3QsIFxASXRlbUNvbHVtbnM7CiAgICB9CgogICAgcmV0dXJuIGlmICFASXRlbUxpc3Q7CgogICAgIyBEZWZpbmUgdGhlIGJsb2NrIGRhdGEuCiAgICBteSAlQmxvY2sgPSAoCiAgICAgICAgT2JqZWN0ICAgICA9PiAkU2VsZi0+e09iamVjdERhdGF9LT57T2JqZWN0fSwKICAgICAgICBCbG9ja25hbWUgID0+ICRTZWxmLT57T2JqZWN0RGF0YX0tPntPYmplY3R9LAogICAgICAgIE9iamVjdE5hbWUgPT4gJFNlbGYtPntPYmplY3REYXRhfS0+e09iamVjdE5hbWV9LAogICAgICAgIE9iamVjdElEICAgPT4gJFBhcmFte09iamVjdElEfSwKICAgICAgICBIZWFkbGluZSAgID0+IFxASGVhZGxpbmUsCiAgICAgICAgSXRlbUxpc3QgICA9PiBcQEl0ZW1MaXN0LAogICAgICAgIEFsbENvbHVtbnMgPT4gXEBBbGxDb2x1bW5zLAogICAgKTsKCiAgICByZXR1cm4gKCBcJUJsb2NrICk7Cgp9Cgo9aGVhZDIgVGFibGVDcmVhdGVTaW1wbGUoKQoKcmV0dXJuIGEgaGFzaCB3aXRoIHRoZSBsaW5rIG91dHB1dCBkYXRhCgpSZXR1cm4KCiAgICAlTGlua091dHB1dERhdGEgPSAoCiAgICAgICAgTm9ybWFsOjpTb3VyY2UgPT4gewogICAgICAgICAgICBJVFNNQ2hhbmdlID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdMaW5rJywKICAgICAgICAgICAgICAgICAgICBDb250ZW50ID0+ICdDSDoyMDA5MTAwMTEyMzU0MzIxLTEnLAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgPT4gJ0NoYW5nZSMgMjAwOTEwMTYxMDAwNTQwMjogVGhlIENoYW5nZSBUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgQ3NzICAgICA9PiAnc3R5bGU9InRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoIicsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ0xpbmsnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJ0NIOjIwMDkxMDAxMTIzNTQzMjEtNicsCiAgICAgICAgICAgICAgICAgICAgVGl0bGUgICA9PiAnQ2hhbmdlIyAyMDA5MTAxNjEwMDA3NjM0OiBUaGUgQ2hhbmdlIFRpdGxlJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICBQYXJlbnRDaGlsZDo6VGFyZ2V0ID0+IHsKICAgICAgICAgICAgSVRTTUNoYW5nZSA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnTGluaycsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCA9PiAnQ0g6MjAwOTEwMDExMjM1NDMyMS0zJywKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgID0+ICdDaGFuZ2UjIDIwMDkxMDE2MTAwMDQ0MzMxOiBUaGUgQ2hhbmdlIFRpdGxlJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICk7CgogICAgJUxpbmtPdXRwdXREYXRhID0gJExpbmtPYmplY3QtPlRhYmxlQ3JlYXRlU2ltcGxlKAogICAgICAgIE9iamVjdExpbmtMaXN0V2l0aERhdGEgPT4gJE9iamVjdExpbmtMaXN0UmVmLAogICAgKTsKCj1jdXQKCnN1YiBUYWJsZUNyZWF0ZVNpbXBsZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17T2JqZWN0TGlua0xpc3RXaXRoRGF0YX0gfHwgcmVmICRQYXJhbXtPYmplY3RMaW5rTGlzdFdpdGhEYXRhfSBuZSAnSEFTSCcgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE9iamVjdExpbmtMaXN0V2l0aERhdGEhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAlTGlua091dHB1dERhdGE7CiAgICBmb3IgbXkgJExpbmtUeXBlICggc29ydCBrZXlzICV7ICRQYXJhbXtPYmplY3RMaW5rTGlzdFdpdGhEYXRhfSB9ICkgewoKICAgICAgICAjIGV4dHJhY3QgbGluayB0eXBlIExpc3QKICAgICAgICBteSAkTGlua1R5cGVMaXN0ID0gJFBhcmFte09iamVjdExpbmtMaXN0V2l0aERhdGF9LT57JExpbmtUeXBlfTsKCiAgICAgICAgZm9yIG15ICREaXJlY3Rpb24gKCBzb3J0IGtleXMgJXskTGlua1R5cGVMaXN0fSApIHsKCiAgICAgICAgICAgICMgZXh0cmFjdCBkaXJlY3Rpb24gbGlzdAogICAgICAgICAgICBteSAkRGlyZWN0aW9uTGlzdCA9ICRQYXJhbXtPYmplY3RMaW5rTGlzdFdpdGhEYXRhfS0+eyRMaW5rVHlwZX0tPnskRGlyZWN0aW9ufTsKCiAgICAgICAgICAgICMgY3JlYXRlIHRoZSBpdGVtIGxpc3QsIHNvcnQgYnkgQ2hhbmdlSUQgRG93bgogICAgICAgICAgICBteSBASXRlbUxpc3Q7CiAgICAgICAgICAgIGZvciBteSAkQ2hhbmdlSUQgKAogICAgICAgICAgICAgICAgc29ydCB7CiAgICAgICAgICAgICAgICAgICAgJERpcmVjdGlvbkxpc3QtPnskYn0tPntDaGFuZ2VJRH0gPD0+ICREaXJlY3Rpb25MaXN0LT57JGF9LT57Q2hhbmdlSUR9CiAgICAgICAgICAgICAgICB9IGtleXMgJXskRGlyZWN0aW9uTGlzdH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICMgZXh0cmFjdCBjaGFuZ2UgZGF0YQogICAgICAgICAgICAgICAgbXkgJENoYW5nZSA9ICREaXJlY3Rpb25MaXN0LT57JENoYW5nZUlEfTsKCiAgICAgICAgICAgICAgICAjIGRlZmluZSBpdGVtIGRhdGEKICAgICAgICAgICAgICAgIG15ICVJdGVtID0gKAogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ0xpbmsnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJ0NIOicgLiAkQ2hhbmdlLT57Q2hhbmdlTnVtYmVyfSwKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICIkU2VsZi0+e0NoYW5nZUhvb2t9ICRDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9OiAkQ2hhbmdlLT57Q2hhbmdlVGl0bGV9IiwKICAgICAgICAgICAgICAgICAgICBMaW5rID0+ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+e0Jhc2VsaW5rfQogICAgICAgICAgICAgICAgICAgICAgICAuICdBY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgICAgIE1heExlbmd0aCA9PiAyMCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgcHVzaCBASXRlbUxpc3QsIFwlSXRlbTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBhZGQgaXRlbSBsaXN0IHRvIGxpbmsgb3V0cHV0IGRhdGEKICAgICAgICAgICAgJExpbmtPdXRwdXREYXRheyAkTGlua1R5cGUgLiAnOjonIC4gJERpcmVjdGlvbiB9LT57SVRTTUNoYW5nZX0gPSBcQEl0ZW1MaXN0OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJUxpbmtPdXRwdXREYXRhOwp9Cgo9aGVhZDIgQ29udGVudFN0cmluZ0NyZWF0ZSgpCgpyZXR1cm4gYSBvdXRwdXQgc3RyaW5nCgogICAgbXkgJFN0cmluZyA9ICRMYXlvdXRPYmplY3QtPkNvbnRlbnRTdHJpbmdDcmVhdGUoCiAgICAgICAgQ29udGVudERhdGEgPT4gJEhhc2hSZWYsCiAgICApOwoKPWN1dAoKc3ViIENvbnRlbnRTdHJpbmdDcmVhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0NvbnRlbnREYXRhfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ29udGVudERhdGEhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGV4dHJhY3QgY29udGVudAogICAgbXkgJENvbnRlbnQgPSAkUGFyYW17Q29udGVudERhdGF9OwoKICAgIHJldHVybiBpZiAkQ29udGVudC0+e1R5cGV9IG5lICdDaGFuZ2VTdGF0ZVNpZ25hbCc7CgogICAgIyBidWlsZCBodG1sIGZvciBzaWduYWwgTEVECiAgICBteSAkU3RyaW5nID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGUgPT4gJzxkaXYgY2xhc3M9IkZsYWcgU21hbGwiIHRpdGxlPSJbJSBEYXRhLkNoYW5nZVN0YXRlIHwgaHRtbCAlXSI+ICcKICAgICAgICAgICAgLiAnPHNwYW4gY2xhc3M9IlslIERhdGEuQ2hhbmdlU3RhdGVTaWduYWwgfCBodG1sICVdIj48L3NwYW4+IDwvZGl2PicsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZVN0YXRlU2lnbmFsID0+ICRDb250ZW50LT57Q29udGVudH0sCiAgICAgICAgICAgIENoYW5nZVN0YXRlICAgICAgID0+ICRDb250ZW50LT57Q2hhbmdlU3RhdGV9IHx8ICcnLAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAkU3RyaW5nOwp9Cgo9aGVhZDIgU2VsZWN0YWJsZU9iamVjdExpc3QoKQoKcmV0dXJuIGFuIGFycmF5IGhhc2ggd2l0aCBDPHNlbGVjdGFibGU+IG9iamVjdHMKClJldHVybgoKICAgIEBTZWxlY3RhYmxlT2JqZWN0TGlzdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICAgICAgVmFsdWUgPT4gJ0NoYW5nZScsCiAgICAgICAgfSwKICAgICk7CgogICAgQFNlbGVjdGFibGVPYmplY3RMaXN0ID0gJExpbmtPYmplY3QtPlNlbGVjdGFibGVPYmplY3RMaXN0KAogICAgICAgIFNlbGVjdGVkID0+ICRJZGVudGlmaWVyLCAgIyAob3B0aW9uYWwpCiAgICApOwoKPWN1dAoKc3ViIFNlbGVjdGFibGVPYmplY3RMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNlbGVjdGVkOwogICAgaWYgKCAkUGFyYW17U2VsZWN0ZWR9ICYmICRQYXJhbXtTZWxlY3RlZH0gZXEgJFNlbGYtPntPYmplY3REYXRhfS0+e09iamVjdH0gKSB7CiAgICAgICAgJFNlbGVjdGVkID0gMTsKICAgIH0KCiAgICAjIG9iamVjdCBzZWxlY3QgbGlzdAogICAgbXkgQE9iamVjdFNlbGVjdExpc3QgPSAoCiAgICAgICAgewogICAgICAgICAgICBLZXkgPT4gJFNlbGYtPntPYmplY3REYXRhfS0+e09iamVjdH0sCgogICAgICAgICAgICAjIGFsc28gdXNlIHRoZSBvYmplY3QgaGVyZSBhbmQgbm90IHRoZSByZWFsIG5hbWUsIGZvciB0cmFuc2xhdGlvbiBpc3N1ZXMKICAgICAgICAgICAgVmFsdWUgPT4gJFNlbGYtPntPYmplY3REYXRhfS0+e09iamVjdH0sCgogICAgICAgICAgICBTZWxlY3RlZCA9PiAkU2VsZWN0ZWQsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIEBPYmplY3RTZWxlY3RMaXN0Owp9Cgo9aGVhZDIgU2VhcmNoT3B0aW9uTGlzdCgpCgpyZXR1cm4gYW4gYXJyYXkgaGFzaCB3aXRoIHNlYXJjaCBvcHRpb25zCgpSZXR1cm4KCiAgICBAU2VhcmNoT3B0aW9uTGlzdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgICAgICA9PiAnQ2hhbmdlTnVtYmVyJywKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdDaGFuZ2UjJywKICAgICAgICAgICAgSW5wdXRTdHJnID0+ICRGb3JtU3RyaW5nLAogICAgICAgICAgICBGb3JtRGF0YSAgPT4gJzEyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgICAgID0+ICdDaGFuZ2VUaXRsZScsCiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnQ2hhbmdlIFRpdGxlJywKICAgICAgICAgICAgSW5wdXRTdHJnID0+ICRGb3JtU3RyaW5nLAogICAgICAgICAgICBGb3JtRGF0YSAgPT4gJ01haWxTZXJ2ZXIgbmVlZHMgdXBkYXRlJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgICAgID0+ICdXb3JrT3JkZXJUaXRsZScsCiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnV29ya29yZGVyIFRpdGxlJywKICAgICAgICAgICAgSW5wdXRTdHJnID0+ICRGb3JtU3RyaW5nLAogICAgICAgICAgICBGb3JtRGF0YSAgPT4gJ1NodXRkb3duIG9sZCBtYWlsIHNlcnZlcicsCiAgICAgICAgfSwKICAgICk7CgogICAgQFNlYXJjaE9wdGlvbkxpc3QgPSAkTGlua09iamVjdC0+U2VhcmNoT3B0aW9uTGlzdCgpOwoKPWN1dAoKc3ViIFNlYXJjaE9wdGlvbkxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHNlYXJjaCBvcHRpb24gbGlzdAogICAgbXkgQFNlYXJjaE9wdGlvbkxpc3QgPSAoCiAgICAgICAgewogICAgICAgICAgICBLZXkgID0+ICdDaGFuZ2VOdW1iZXInLAogICAgICAgICAgICBOYW1lID0+ICRTZWxmLT57Q2hhbmdlSG9va30sCiAgICAgICAgICAgIFR5cGUgPT4gJ1RleHQnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgID0+ICdDaGFuZ2VUaXRsZScsCiAgICAgICAgICAgIE5hbWUgPT4gJ0NoYW5nZVRpdGxlJywKICAgICAgICAgICAgVHlwZSA9PiAnVGV4dCcsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgPT4gJ1dvcmtPcmRlclRpdGxlJywKICAgICAgICAgICAgTmFtZSA9PiAnV29ya09yZGVyVGl0bGUnLAogICAgICAgICAgICBUeXBlID0+ICdUZXh0JywKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCBmb3Jta2V5CiAgICBmb3IgbXkgJFJvdyAoQFNlYXJjaE9wdGlvbkxpc3QpIHsKICAgICAgICAkUm93LT57Rm9ybUtleX0gPSAnU0VBUkNIOjonIC4gJFJvdy0+e0tleX07CiAgICB9CgogICAgIyBhZGQgZm9ybSBkYXRhIGFuZCBpbnB1dCBzdHJpbmcKICAgIFJPVzoKICAgIGZvciBteSAkUm93IChAU2VhcmNoT3B0aW9uTGlzdCkgewoKICAgICAgICAjIGdldCBmb3JtIGRhdGEKICAgICAgICAkUm93LT57Rm9ybURhdGF9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSgKICAgICAgICAgICAgUGFyYW0gPT4gJFJvdy0+e0Zvcm1LZXl9LAogICAgICAgICk7CgogICAgICAgICMgcGFyc2UgdGhlIGlucHV0IHRleHQgYmxvY2sKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdJbnB1dFRleHQnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICRSb3ctPntGb3JtS2V5fSwKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRSb3ctPntGb3JtRGF0YX0gfHwgJycsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBhZGQgdGhlIGlucHV0IHN0cmluZwogICAgICAgICRSb3ctPntJbnB1dFN0cmd9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnTGlua09iamVjdCcsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBST1c7CiAgICB9CgogICAgcmV0dXJuIEBTZWFyY2hPcHRpb25MaXN0Owp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/LinkObject/ITSMWorkOrder.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGlua09iamVjdDo6SVRTTVdvcmtPcmRlcjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CnVzZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Owp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpMYW5ndWFnZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkpTT04nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJywKICAgICdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGlua09iamVjdDo6SVRTTVdvcmtPcmRlciAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQoKPWhlYWQxIERFU0NSSVBUSU9OCgpBbGwgbGF5b3V0IGZ1bmN0aW9ucyBvZiBsaW5rIG9iamVjdCAoQzx3b3Jrb3JkZXI+KQoKPWhlYWQyIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgJEJhY2tlbmRPYmplY3QgPSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGlua09iamVjdDo6SVRTTVdvcmtPcmRlci0+bmV3KAogICAgICAgIFVzZXJMYW5ndWFnZSA9PiAnZW4nLAogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICROZWVkZWQgKHF3KFVzZXJMYW5ndWFnZSBVc2VySUQpKSB7CiAgICAgICAgJFNlbGYtPnskTmVlZGVkfSA9ICRQYXJhbXskTmVlZGVkfSB8fCBkaWUgIkdvdCBubyAkTmVlZGVkISI7CiAgICB9CgogICAgIyBXZSBuZWVkIG91ciBvd24gTGF5b3V0T2JqZWN0IGluc3RhbmNlIHRvIGF2b2lkIGJsb2NrZGF0YSBjb2xsaXNpb25zCiAgICAjICAgd2l0aCB0aGUgbWFpbiBwYWdlLgogICAgJFNlbGYtPntMYXlvdXRPYmplY3R9ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dC0+bmV3KCAleyRTZWxmfSApOwoKICAgICMgZGVmaW5lIG5lZWRlZCB2YXJpYWJsZXMKICAgICRTZWxmLT57T2JqZWN0RGF0YX0gPSB7CiAgICAgICAgT2JqZWN0ICAgICA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgUmVhbG5hbWUgICA9PiAnV29ya29yZGVyJywKICAgICAgICBPYmplY3ROYW1lID0+ICdTb3VyY2VPYmplY3RJRCcsCiAgICB9OwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZ2V0IGNvbmZpZwogICAgJFNlbGYtPntDaGFuZ2VIb29rfSAgICA9ICRDb25maWdPYmplY3QtPkdldCgnSVRTTUNoYW5nZTo6SG9vaycpOwogICAgJFNlbGYtPntXb3JrT3JkZXJIb29rfSA9ICRDb25maWdPYmplY3QtPkdldCgnSVRTTVdvcmtPcmRlcjo6SG9vaycpOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIFRhYmxlQ3JlYXRlQ29tcGxleCgpCgpyZXR1cm4gYW4gYXJyYXkgd2l0aCB0aGUgYmxvY2sgZGF0YQoKUmV0dXJuCgogICAgQEJsb2NrRGF0YSA9ICgKICAgICAgICBPYmplY3QgICAgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgIEJsb2NrbmFtZSA9PiAnV29ya09yZGVyJywKICAgICAgICBIZWFkbGluZSAgPT4gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDb250ZW50ID0+ICcnLAogICAgICAgICAgICAgICAgV2lkdGggICA9PiAyMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ29udGVudCA9PiAnV29ya29yZGVyIycsCiAgICAgICAgICAgICAgICBXaWR0aCAgID0+IDIwMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ29udGVudCA9PiAnV29ya29yZGVyIFRpdGxlJywKICAgICAgICAgICAgICAgIFdpZHRoICAgPT4gMjAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDb250ZW50ID0+ICdDaGFuZ2UgVGl0bGUnLAogICAgICAgICAgICAgICAgV2lkdGggICA9PiAyMDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJ1dvcmtvcmRlciBTdGF0ZScsCiAgICAgICAgICAgICAgICBXaWR0aCAgID0+IDEwMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ29udGVudCA9PiAnQ2hhbmdlZCcsCiAgICAgICAgICAgICAgICBXaWR0aCAgID0+IDE1MCwKICAgICAgICAgICAgfSwKICAgICAgICBdLAogICAgICAgIEl0ZW1MaXN0ID0+IFsKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICAgICAgID0+ICdXb3JrT3JkZXJTdGF0ZVNpZ25hbCcsCiAgICAgICAgICAgICAgICAgICAgS2V5ICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgICAgICAgICBDb250ZW50ICAgICAgICA9PiAnZ3JlZW5sZWQnLAogICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlID0+ICdyZWFkeScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ0xpbmsnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJzIwMDkxMDAxMTIzNDU3NzgtMycsCiAgICAgICAgICAgICAgICAgICAgTGluayAgICA9PiAnQWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlclpvb207V29ya09yZGVySUQ9MicsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCAgID0+ICdXb3Jrb3JkZXIgVGl0bGUnLAogICAgICAgICAgICAgICAgICAgIE1heExlbmd0aCA9PiA3MCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgICAgICAgICBDb250ZW50ICAgPT4gJ0NoYW5nZSBUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgTWF4TGVuZ3RoID0+IDcwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdUZXh0JywKICAgICAgICAgICAgICAgICAgICBDb250ZW50ID0+ICdyZWFkeScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ1RpbWVMb25nJywKICAgICAgICAgICAgICAgICAgICBDb250ZW50ID0+ICcyMDA5LTAxLTAxIDEyOjEyOjAwJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICA9PiAnV29ya09yZGVyU3RhdGVTaWduYWwnLAogICAgICAgICAgICAgICAgICAgIEtleSAgICAgICAgICAgID0+IDQsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCAgICAgICAgPT4gJ3JlZGxlZCcsCiAgICAgICAgICAgICAgICAgICAgV29ya09yZGVyU3RhdGUgPT4gJ2NhbmNlbGQnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdMaW5rJywKICAgICAgICAgICAgICAgICAgICBDb250ZW50ID0+ICcyMDA5MTAwMTEyMzQ1Nzc4LTQnLAogICAgICAgICAgICAgICAgICAgIExpbmsgICAgPT4gJ0FjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1dvcmtPcmRlcklEPTQnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgPT4gJ1RleHQnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICA9PiAnV29ya29yZGVyIFRpdGxlJywKICAgICAgICAgICAgICAgICAgICBNYXhMZW5ndGggPT4gNzAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCAgID0+ICdDaGFuZ2UgVGl0bGUnLAogICAgICAgICAgICAgICAgICAgIE1heExlbmd0aCA9PiA3MCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCA9PiAnYWNjZXB0ZWQnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdUaW1lTG9uZycsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCA9PiAnMjAwOS0wMi0wMiAxMzoxMzowMCcsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgIF0sCiAgICApOwoKICAgIEBCbG9ja0RhdGEgPSAkTGlua09iamVjdC0+VGFibGVDcmVhdGVDb21wbGV4KAogICAgICAgIE9iamVjdExpbmtMaXN0V2l0aERhdGEgPT4gJE9iamVjdExpbmtMaXN0UmVmLAogICAgKTsKCj1jdXQKCnN1YiBUYWJsZUNyZWF0ZUNvbXBsZXggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte09iamVjdExpbmtMaXN0V2l0aERhdGF9IHx8IHJlZiAkUGFyYW17T2JqZWN0TGlua0xpc3RXaXRoRGF0YX0gbmUgJ0hBU0gnICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBPYmplY3RMaW5rTGlzdFdpdGhEYXRhIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjb252ZXJ0IHRoZSBsaXN0CiAgICBteSAlTGlua0xpc3Q7CiAgICBmb3IgbXkgJExpbmtUeXBlICggc29ydCBrZXlzICV7ICRQYXJhbXtPYmplY3RMaW5rTGlzdFdpdGhEYXRhfSB9ICkgewoKICAgICAgICAjIGV4dHJhY3QgbGluayB0eXBlIExpc3QKICAgICAgICBteSAkTGlua1R5cGVMaXN0ID0gJFBhcmFte09iamVjdExpbmtMaXN0V2l0aERhdGF9LT57JExpbmtUeXBlfTsKCiAgICAgICAgZm9yIG15ICREaXJlY3Rpb24gKCBzb3J0IGtleXMgJXskTGlua1R5cGVMaXN0fSApIHsKCiAgICAgICAgICAgICMgZXh0cmFjdCBkaXJlY3Rpb24gbGlzdAogICAgICAgICAgICBteSAkRGlyZWN0aW9uTGlzdCA9ICRQYXJhbXtPYmplY3RMaW5rTGlzdFdpdGhEYXRhfS0+eyRMaW5rVHlwZX0tPnskRGlyZWN0aW9ufTsKCiAgICAgICAgICAgIGZvciBteSAkV29ya09yZGVySUQgKCBzb3J0IGtleXMgJXskRGlyZWN0aW9uTGlzdH0gKSB7CgogICAgICAgICAgICAgICAgJExpbmtMaXN0eyRXb3JrT3JkZXJJRH0tPntEYXRhfSA9ICREaXJlY3Rpb25MaXN0LT57JFdvcmtPcmRlcklEfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkQ29tcGxleFRhYmxlRGF0YSA9ICRDb25maWdPYmplY3QtPkdldCgiTGlua09iamVjdDo6Q29tcGxleFRhYmxlIik7CiAgICBteSAkRGVmYXVsdENvbHVtbnM7CiAgICBpZiAoCiAgICAgICAgJENvbXBsZXhUYWJsZURhdGEKICAgICAgICAmJiBJc0hhc2hSZWZXaXRoRGF0YSgkQ29tcGxleFRhYmxlRGF0YSkKICAgICAgICAmJiAkQ29tcGxleFRhYmxlRGF0YS0+e0lUU01Xb3JrT3JkZXJ9CiAgICAgICAgJiYgSXNIYXNoUmVmV2l0aERhdGEoICRDb21wbGV4VGFibGVEYXRhLT57SVRTTVdvcmtPcmRlcn0gKQogICAgICAgICkKICAgIHsKICAgICAgICAkRGVmYXVsdENvbHVtbnMgPSAkQ29tcGxleFRhYmxlRGF0YS0+eyJJVFNNV29ya09yZGVyIn0tPnsiRGVmYXVsdENvbHVtbnMifTsKICAgIH0KCiAgICBteSBAVGltZUxvbmdUeXBlcyA9ICgKICAgICAgICAnQ3JlYXRlVGltZScsCiAgICAgICAgJ0NoYW5nZVRpbWUnLAogICAgICAgICdQbGFubmVkU3RhcnRUaW1lJywKICAgICAgICAnUGxhbm5lZEVuZFRpbWUnLAogICAgICAgICdBY3R1YWxTdGFydFRpbWUnLAogICAgICAgICdBY3R1YWxFbmRUaW1lJywKICAgICk7CgogICAgbXkgQFRyYW5zbGF0ZVR5cGVzID0gKCk7CgogICAgIyBhbHdheXMgc2hvdyB0aGUgY2hhbmdlIHN0YXRlIGZsYWcgYW5kIHRoZSBjaGFuZ2UgbnVtYmVyCiAgICBteSBASGVhZGxpbmUgPSAoCiAgICAgICAgewogICAgICAgICAgICBDb250ZW50ID0+ICdXb3JrT3JkZXJTdGF0ZScsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIENvbnRlbnQgPT4gJFNlbGYtPntXb3JrT3JkZXJIb29rfSwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgIyBMb2FkIHVzZXIgcHJlZmVyZW5jZXMuCiAgICBteSAlUHJlZmVyZW5jZXMgPSAkVXNlck9iamVjdC0+R2V0UHJlZmVyZW5jZXMoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgaWYgKCAhJERlZmF1bHRDb2x1bW5zIHx8ICFJc0hhc2hSZWZXaXRoRGF0YSgkRGVmYXVsdENvbHVtbnMpICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTWlzc2luZyBjb25maWd1cmF0aW9uIGZvciBMaW5rT2JqZWN0OjpDb21wbGV4VGFibGUjIyNJVFNNV29ya09yZGVyIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBHZXQgZGVmYXVsdCBjb2x1bW4gcHJpb3JpdHkgZnJvbSBTeXNDb25maWcuCiAgICAjIEVhY2ggY29sdW1uIGluIHRhYmxlIChUaXRsZSwgU3RhdGUsLi4uKSBoYXMgZGVmaW5lZCBQcmlvcml0eSBpbiBTeXNDb25maWcuIFN5c3RlbSB1c2UgdGhpcwogICAgIyAgIHByaW9yaXR5IHRvIHNvcnQgY29sdW1ucywgaWYgdXNlciBkb2Vzbid0IGhhdmUgb3duIHNldHRpbmdzLgogICAgbXkgJVNvcnRPcmRlcjsKICAgIGlmICgKICAgICAgICAkQ29tcGxleFRhYmxlRGF0YS0+eyJJVFNNV29ya09yZGVyIn0tPnsiUHJpb3JpdHkifQogICAgICAgICYmIElzSGFzaFJlZldpdGhEYXRhKCAkQ29tcGxleFRhYmxlRGF0YS0+eyJJVFNNV29ya09yZGVyIn0tPnsiUHJpb3JpdHkifSApCiAgICAgICAgKQogICAgewogICAgICAgICVTb3J0T3JkZXIgPSAleyAkQ29tcGxleFRhYmxlRGF0YS0+eyJJVFNNV29ya09yZGVyIn0tPnsiUHJpb3JpdHkifSB9OwogICAgfQoKICAgIG15ICVVc2VyQ29sdW1ucyA9ICV7JERlZmF1bHRDb2x1bW5zfTsKCiAgICBpZiAoICRQcmVmZXJlbmNlc3snTGlua09iamVjdDo6Q29tcGxleFRhYmxlLUlUU01Xb3JrT3JkZXInfSApIHsKCiAgICAgICAgbXkgJENvbHVtbnNFbmFibGVkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkpTT04nKS0+RGVjb2RlKAogICAgICAgICAgICBEYXRhID0+ICRQcmVmZXJlbmNlc3snTGlua09iamVjdDo6Q29tcGxleFRhYmxlLUlUU01Xb3JrT3JkZXInfSwKICAgICAgICApOwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICRDb2x1bW5zRW5hYmxlZAogICAgICAgICAgICAmJiBJc0hhc2hSZWZXaXRoRGF0YSgkQ29sdW1uc0VuYWJsZWQpCiAgICAgICAgICAgICYmICRDb2x1bW5zRW5hYmxlZC0+e09yZGVyfQogICAgICAgICAgICAmJiBJc0FycmF5UmVmV2l0aERhdGEoICRDb2x1bW5zRW5hYmxlZC0+e09yZGVyfSApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICMgQ2xlYXIgc29ydCBvcmRlci4KICAgICAgICAgICAgJVNvcnRPcmRlciA9ICgpOwoKICAgICAgICAgICAgREVGQVVMVENPTFVNTjoKICAgICAgICAgICAgZm9yIG15ICREZWZhdWx0Q29sdW1uICggc29ydCBrZXlzICVVc2VyQ29sdW1ucyApIHsKICAgICAgICAgICAgICAgIG15ICRJbmRleCA9IDA7CgogICAgICAgICAgICAgICAgZm9yIG15ICRVc2VyU2V0dGluZyAoIEB7ICRDb2x1bW5zRW5hYmxlZC0+e09yZGVyfSB9ICkgewogICAgICAgICAgICAgICAgICAgICRJbmRleCsrOwogICAgICAgICAgICAgICAgICAgIGlmICggJERlZmF1bHRDb2x1bW4gZXEgJFVzZXJTZXR0aW5nICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVXNlckNvbHVtbnN7JERlZmF1bHRDb2x1bW59ID0gMjsKICAgICAgICAgICAgICAgICAgICAgICAgJFNvcnRPcmRlcnskRGVmYXVsdENvbHVtbn0gICA9ICRJbmRleDsKCiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgREVGQVVMVENPTFVNTjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBOb3QgZm91bmQsIG1lYW5zIHVzZXIgY2hvc2UgdG8gaGlkZSB0aGlzIGl0ZW0uCiAgICAgICAgICAgICAgICBpZiAoICRVc2VyQ29sdW1uc3skRGVmYXVsdENvbHVtbn0gPT0gMiApIHsKICAgICAgICAgICAgICAgICAgICAkVXNlckNvbHVtbnN7JERlZmF1bHRDb2x1bW59ID0gMTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICEkU29ydE9yZGVyeyREZWZhdWx0Q29sdW1ufSApIHsKICAgICAgICAgICAgICAgICAgICAkU29ydE9yZGVyeyREZWZhdWx0Q29sdW1ufSA9IDA7ICAgICMgU2V0IDAsIGl0IHN5c3RlbSB3aWxsIGhpZGUgdGhpcyBpdGVtIGFueXdheXMKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIFVzZXIgaGFzIG5vIG93biBzZXR0aW5ncy4KICAgICAgICBmb3IgbXkgJENvbHVtbiAoIHNvcnQga2V5cyAlVXNlckNvbHVtbnMgKSB7CiAgICAgICAgICAgIGlmICggISRTb3J0T3JkZXJ7JENvbHVtbn0gKSB7CiAgICAgICAgICAgICAgICAkU29ydE9yZGVyeyRDb2x1bW59ID0gMDsgICAgIyBTZXQgMCwgaXQgc3lzdGVtIHdpbGwgaGlkZSB0aGlzIGl0ZW0gYW55d2F5cwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgRGVmaW5lIEhlYWRsaW5lIGNvbHVtbnMuCiAgICBteSBAQWxsQ29sdW1uczsKICAgIENPTFVNTjoKICAgIGZvciBteSAkQ29sdW1uICggc29ydCB7ICRTb3J0T3JkZXJ7JGF9IDw9PiAkU29ydE9yZGVyeyRifSB9IGtleXMgJVVzZXJDb2x1bW5zICkgewoKICAgICAgICBteSAkQ29sdW1uVHJhbnNsYXRlID0gJENvbHVtbjsKICAgICAgICBpZiAoICRDb2x1bW4gZXEgJ0NyZWF0ZVRpbWUnICkgewogICAgICAgICAgICAkQ29sdW1uVHJhbnNsYXRlID0gVHJhbnNsYXRhYmxlKCdDcmVhdGVkJyk7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnQ2hhbmdlVGltZScgKSB7CiAgICAgICAgICAgICRDb2x1bW5UcmFuc2xhdGUgPSBUcmFuc2xhdGFibGUoJ0NoYW5nZWQnKTsKICAgICAgICB9CgogICAgICAgIHB1c2ggQEFsbENvbHVtbnMsIHsKICAgICAgICAgICAgQ29sdW1uTmFtZSAgICAgID0+ICRDb2x1bW4sCiAgICAgICAgICAgIENvbHVtblRyYW5zbGF0ZSA9PiAkQ29sdW1uVHJhbnNsYXRlLAogICAgICAgIH07CgogICAgICAgICMgaWYgZW5hYmxlZCBieSBkZWZhdWx0LgogICAgICAgIGlmICggJFVzZXJDb2x1bW5zeyRDb2x1bW59ID09IDIgKSB7CiAgICAgICAgICAgIHB1c2ggQEhlYWRsaW5lLCB7CiAgICAgICAgICAgICAgICBDb250ZW50ID0+ICRDb2x1bW5UcmFuc2xhdGUsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgY3JlYXRlIHRoZSBpdGVtIGxpc3QsIHNvcnQgYnkgQ2hhbmdlSUQgRG93biwgdGhlbiBieSBXb3JrT3JkZXJJRCBVcAogICAgbXkgQEl0ZW1MaXN0OwogICAgZm9yIG15ICRXb3JrT3JkZXJJRCAoCiAgICAgICAgc29ydCB7CiAgICAgICAgICAgICRMaW5rTGlzdHskYn17RGF0YX0tPntDaGFuZ2VJRH0gPD0+ICRMaW5rTGlzdHskYX17RGF0YX0tPntDaGFuZ2VJRH0KICAgICAgICAgICAgICAgIHx8ICRhIDw9PiAkYgogICAgICAgIH0ga2V5cyAlTGlua0xpc3QKICAgICAgICApCiAgICB7CgogICAgICAgICMgZXh0cmFjdCB3b3Jrb3JkZXIgZGF0YQogICAgICAgIG15ICRXb3JrT3JkZXIgPSAkTGlua0xpc3R7JFdvcmtPcmRlcklEfS0+e0RhdGF9OwoKICAgICAgICBteSBASXRlbUNvbHVtbnMgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFR5cGUgICAgICAgICAgID0+ICdXb3JrT3JkZXJTdGF0ZVNpZ25hbCcsCiAgICAgICAgICAgICAgICBLZXkgICAgICAgICAgICA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICBDb250ZW50ICAgICAgICA9PiAkV29ya09yZGVyLT57V29ya09yZGVyU3RhdGVTaWduYWx9LAogICAgICAgICAgICAgICAgV29ya09yZGVyU3RhdGUgPT4gJFdvcmtPcmRlci0+e1dvcmtPcmRlclN0YXRlfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnTGluaycsCiAgICAgICAgICAgICAgICBDb250ZW50ID0+ICRXb3JrT3JkZXItPntDaGFuZ2VEYXRhfS0+e0NoYW5nZU51bWJlcn0KICAgICAgICAgICAgICAgICAgICAuICctJyAuICRXb3JrT3JkZXItPntXb3JrT3JkZXJOdW1iZXJ9LAogICAgICAgICAgICAgICAgTGluayA9PiAkU2VsZi0+e0xheW91dE9iamVjdH0tPntCYXNlbGlua30KICAgICAgICAgICAgICAgICAgICAuICdBY3Rpb249QWdlbnRJVFNNV29ya09yZGVyWm9vbTtXb3JrT3JkZXJJRD0nCiAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICBUaXRsZSA9PiAkU2VsZi0+e0NoYW5nZUhvb2t9IC4gJFdvcmtPcmRlci0+e0NoYW5nZURhdGF9LT57Q2hhbmdlTnVtYmVyfSAuICctJwogICAgICAgICAgICAgICAgICAgIC4gJFNlbGYtPntXb3JrT3JkZXJIb29rfQogICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlci0+e1dvcmtPcmRlck51bWJlcn0gLiAnOiAnCiAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVyLT57V29ya09yZGVyVGl0bGV9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIENPTFVNTjoKICAgICAgICBmb3IgbXkgJENvbHVtbiAoIHNvcnQgeyAkU29ydE9yZGVyeyRhfSA8PT4gJFNvcnRPcmRlcnskYn0gfSBrZXlzICVVc2VyQ29sdW1ucyApIHsKCiAgICAgICAgICAgICMgaWYgZW5hYmxlZCBieSBkZWZhdWx0CiAgICAgICAgICAgIGlmICggJFVzZXJDb2x1bW5zeyRDb2x1bW59ID09IDIgKSB7CgogICAgICAgICAgICAgICAgbXkgJUhhc2g7CiAgICAgICAgICAgICAgICBpZiAoIGdyZXAgeyAkXyBlcSAkQ29sdW1uIH0gQFRpbWVMb25nVHlwZXMgKSB7CiAgICAgICAgICAgICAgICAgICAgJEhhc2h7J1R5cGUnfSA9ICdUaW1lTG9uZyc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkSGFzaHsnVHlwZSd9ID0gJ1RleHQnOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggZ3JlcCB7ICRfIGVxICRDb2x1bW4gfSBAVHJhbnNsYXRlVHlwZXMgKSB7CiAgICAgICAgICAgICAgICAgICAgJEhhc2h7J1RyYW5zbGF0ZSd9ID0gMTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkSGFzaHsnQ29udGVudCd9ID0gJFdvcmtPcmRlci0+eyRDb2x1bW59OwoKICAgICAgICAgICAgICAgIHB1c2ggQEl0ZW1Db2x1bW5zLCBcJUhhc2g7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHB1c2ggQEl0ZW1MaXN0LCBcQEl0ZW1Db2x1bW5zOwogICAgfQoKICAgIHJldHVybiBpZiAhQEl0ZW1MaXN0OwoKICAgICMgRGVmaW5lIHRoZSBibG9jayBkYXRhLgogICAgbXkgJUJsb2NrID0gKAogICAgICAgIE9iamVjdCAgICAgPT4gJFNlbGYtPntPYmplY3REYXRhfS0+e09iamVjdH0sCiAgICAgICAgQmxvY2tuYW1lICA9PiAkU2VsZi0+e09iamVjdERhdGF9LT57T2JqZWN0fSwKICAgICAgICBPYmplY3ROYW1lID0+ICRTZWxmLT57T2JqZWN0RGF0YX0tPntPYmplY3ROYW1lfSwKICAgICAgICBPYmplY3RJRCAgID0+ICRQYXJhbXtPYmplY3RJRH0sCiAgICAgICAgSGVhZGxpbmUgICA9PiBcQEhlYWRsaW5lLAogICAgICAgIEl0ZW1MaXN0ICAgPT4gXEBJdGVtTGlzdCwKICAgICAgICBBbGxDb2x1bW5zID0+IFxAQWxsQ29sdW1ucywKICAgICk7CgogICAgcmV0dXJuICggXCVCbG9jayApOwoKfQoKPWhlYWQyIFRhYmxlQ3JlYXRlU2ltcGxlKCkKCnJldHVybiBhIGhhc2ggd2l0aCB0aGUgbGluayBvdXRwdXQgZGF0YQoKUmV0dXJuCgogICAgJUxpbmtPdXRwdXREYXRhID0gKAogICAgICAgIE5vcm1hbDo6U291cmNlID0+IHsKICAgICAgICAgICAgSVRTTVdvcmtPcmRlciA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnTGluaycsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCA9PiAnV086MjAwOTEwMDExMjM1NDMyMS0xJywKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgID0+ICdDaGFuZ2UjIDIwMDkxMDE2MTAwMDU0MDIgLSBXb3Jrb3JkZXIjIDE6IFRoZSBXb3JrT3JkZXIgVGl0bGUnLAogICAgICAgICAgICAgICAgICAgIENzcyAgICAgPT4gJ3N0eWxlPSJ0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaCInLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdMaW5rJywKICAgICAgICAgICAgICAgICAgICBDb250ZW50ID0+ICdXTzoyMDA5MTAwMTEyMzU0MzIxLTYnLAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgPT4gJ0NoYW5nZSMgMjAwOTEwMTYxMDAwNzYzNCAtIFdvcmtvcmRlciMgNjogVGhlIFdvcmtPcmRlciBUaXRsZScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgUGFyZW50Q2hpbGQ6OlRhcmdldCA9PiB7CiAgICAgICAgICAgIElUU01Xb3JrT3JkZXIgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ0xpbmsnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJ1dPOjIwMDkxMDAxMTIzNTQzMjEtMycsCiAgICAgICAgICAgICAgICAgICAgVGl0bGUgICA9PiAnQ2hhbmdlIyAyMDA5MTAxNjEwMDA0NDMzMSAtIFdvcmtvcmRlciMgMzogVGhlIFdvcmtPcmRlciBUaXRsZScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICApOwoKICAgICVMaW5rT3V0cHV0RGF0YSA9ICRMaW5rT2JqZWN0LT5UYWJsZUNyZWF0ZVNpbXBsZSgKICAgICAgICBPYmplY3RMaW5rTGlzdFdpdGhEYXRhID0+ICRPYmplY3RMaW5rTGlzdFJlZiwKICAgICk7Cgo9Y3V0CgpzdWIgVGFibGVDcmVhdGVTaW1wbGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte09iamVjdExpbmtMaXN0V2l0aERhdGF9IHx8IHJlZiAkUGFyYW17T2JqZWN0TGlua0xpc3RXaXRoRGF0YX0gbmUgJ0hBU0gnICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBPYmplY3RMaW5rTGlzdFdpdGhEYXRhIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJUxpbmtPdXRwdXREYXRhOwogICAgZm9yIG15ICRMaW5rVHlwZSAoIHNvcnQga2V5cyAleyAkUGFyYW17T2JqZWN0TGlua0xpc3RXaXRoRGF0YX0gfSApIHsKCiAgICAgICAgIyBleHRyYWN0IGxpbmsgdHlwZSBMaXN0CiAgICAgICAgbXkgJExpbmtUeXBlTGlzdCA9ICRQYXJhbXtPYmplY3RMaW5rTGlzdFdpdGhEYXRhfS0+eyRMaW5rVHlwZX07CgogICAgICAgIGZvciBteSAkRGlyZWN0aW9uICggc29ydCBrZXlzICV7JExpbmtUeXBlTGlzdH0gKSB7CgogICAgICAgICAgICAjIGV4dHJhY3QgZGlyZWN0aW9uIGxpc3QKICAgICAgICAgICAgbXkgJERpcmVjdGlvbkxpc3QgPSAkUGFyYW17T2JqZWN0TGlua0xpc3RXaXRoRGF0YX0tPnskTGlua1R5cGV9LT57JERpcmVjdGlvbn07CgogICAgICAgICAgICAjIGNyZWF0ZSB0aGUgaXRlbSBsaXN0LCBzb3J0IGJ5IENoYW5nZUlEIERvd24sIHRoZW4gYnkgV29ya09yZGVyTnVtYmVyIFVwCiAgICAgICAgICAgIG15IEBJdGVtTGlzdDsKICAgICAgICAgICAgZm9yIG15ICRXb3JrT3JkZXJJRCAoCiAgICAgICAgICAgICAgICBzb3J0IHsKICAgICAgICAgICAgICAgICAgICAkRGlyZWN0aW9uTGlzdC0+eyRifS0+e0NoYW5nZUlEfSA8PT4gJERpcmVjdGlvbkxpc3QtPnskYX0tPntDaGFuZ2VJRH0KICAgICAgICAgICAgICAgICAgICAgICAgfHwgJGEgPD0+ICRiCiAgICAgICAgICAgICAgICB9IGtleXMgJXskRGlyZWN0aW9uTGlzdH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICMgZXh0cmFjdCB3b3Jrb3JkZXIgZGF0YQogICAgICAgICAgICAgICAgbXkgJFdvcmtPcmRlciA9ICREaXJlY3Rpb25MaXN0LT57JFdvcmtPcmRlcklEfTsKCiAgICAgICAgICAgICAgICAjIGRlZmluZSBpdGVtIGRhdGEKICAgICAgICAgICAgICAgIG15ICVJdGVtID0gKAogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ0xpbmsnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJ1dPOicgLiAkV29ya09yZGVyLT57Q2hhbmdlRGF0YX0tPntDaGFuZ2VOdW1iZXJ9IC4gJy0nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlci0+e1dvcmtPcmRlck51bWJlcn0sCiAgICAgICAgICAgICAgICAgICAgVGl0bGUgPT4gJFNlbGYtPntDaGFuZ2VIb29rfSAuICRXb3JrT3JkZXItPntDaGFuZ2VEYXRhfS0+e0NoYW5nZU51bWJlcn0gLiAnLScKICAgICAgICAgICAgICAgICAgICAgICAgLiAkU2VsZi0+e1dvcmtPcmRlckhvb2t9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlci0+e1dvcmtPcmRlck51bWJlcn0gLiAnOiAnCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlci0+e1dvcmtPcmRlclRpdGxlfSwKICAgICAgICAgICAgICAgICAgICBMaW5rID0+ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+e0Jhc2VsaW5rfQogICAgICAgICAgICAgICAgICAgICAgICAuICdBY3Rpb249QWdlbnRJVFNNV29ya09yZGVyWm9vbTtXb3JrT3JkZXJJRD0nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgICAgIE1heExlbmd0aCA9PiAyMCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgcHVzaCBASXRlbUxpc3QsIFwlSXRlbTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBhZGQgaXRlbSBsaXN0IHRvIGxpbmsgb3V0cHV0IGRhdGEKICAgICAgICAgICAgJExpbmtPdXRwdXREYXRheyAkTGlua1R5cGUgLiAnOjonIC4gJERpcmVjdGlvbiB9LT57SVRTTVdvcmtPcmRlcn0gPSBcQEl0ZW1MaXN0OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJUxpbmtPdXRwdXREYXRhOwp9Cgo9aGVhZDIgQ29udGVudFN0cmluZ0NyZWF0ZSgpCgpyZXR1cm4gYSBvdXRwdXQgc3RyaW5nCgogICAgbXkgJFN0cmluZyA9ICRMYXlvdXRPYmplY3QtPkNvbnRlbnRTdHJpbmdDcmVhdGUoCiAgICAgICAgQ29udGVudERhdGEgPT4gJEhhc2hSZWYsCiAgICApOwoKPWN1dAoKc3ViIENvbnRlbnRTdHJpbmdDcmVhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0NvbnRlbnREYXRhfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ29udGVudERhdGEhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGV4dHJhY3QgY29udGVudAogICAgbXkgJENvbnRlbnQgPSAkUGFyYW17Q29udGVudERhdGF9OwoKICAgIHJldHVybiBpZiAkQ29udGVudC0+e1R5cGV9IG5lICdXb3JrT3JkZXJTdGF0ZVNpZ25hbCc7CgogICAgIyBidWlsZCBodG1sIGZvciBzaWduYWwgTEVECiAgICBteSAkU3RyaW5nID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGUgPT4gJzxkaXYgY2xhc3M9IkZsYWcgU21hbGwiIHRpdGxlPSJbJSBEYXRhLldvcmtPcmRlclN0YXRlIHwgaHRtbCAlXSI+ICcKICAgICAgICAgICAgLiAnPHNwYW4gY2xhc3M9IlslIERhdGEuV29ya09yZGVyU3RhdGVTaWduYWwgfCBodG1sICVdIj48L3NwYW4+IDwvZGl2PicsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlU2lnbmFsID0+ICRDb250ZW50LT57Q29udGVudH0sCiAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlICAgICAgID0+ICRDb250ZW50LT57V29ya09yZGVyU3RhdGV9IHx8ICcnLAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAkU3RyaW5nOwp9Cgo9aGVhZDIgU2VsZWN0YWJsZU9iamVjdExpc3QoKQoKcmV0dXJuIGFuIGFycmF5IGhhc2ggd2l0aCBDPHNlbGVjdGFibGU+IG9iamVjdHMKClJldHVybgoKICAgIEBTZWxlY3RhYmxlT2JqZWN0TGlzdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgVmFsdWUgPT4gJ1dvcmtPcmRlcicsCiAgICAgICAgfSwKICAgICk7CgogICAgQFNlbGVjdGFibGVPYmplY3RMaXN0ID0gJExpbmtPYmplY3QtPlNlbGVjdGFibGVPYmplY3RMaXN0KAogICAgICAgIFNlbGVjdGVkID0+ICRJZGVudGlmaWVyLCAgIyAob3B0aW9uYWwpCiAgICApOwoKPWN1dAoKc3ViIFNlbGVjdGFibGVPYmplY3RMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNlbGVjdGVkOwogICAgaWYgKCAkUGFyYW17U2VsZWN0ZWR9ICYmICRQYXJhbXtTZWxlY3RlZH0gZXEgJFNlbGYtPntPYmplY3REYXRhfS0+e09iamVjdH0gKSB7CiAgICAgICAgJFNlbGVjdGVkID0gMTsKICAgIH0KCiAgICAjIG9iamVjdCBzZWxlY3QgbGlzdAogICAgbXkgQE9iamVjdFNlbGVjdExpc3QgPSAoCiAgICAgICAgewogICAgICAgICAgICBLZXkgICAgICA9PiAkU2VsZi0+e09iamVjdERhdGF9LT57T2JqZWN0fSwKICAgICAgICAgICAgVmFsdWUgICAgPT4gJFNlbGYtPntPYmplY3REYXRhfS0+e1JlYWxuYW1lfSwKICAgICAgICAgICAgU2VsZWN0ZWQgPT4gJFNlbGVjdGVkLAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiBAT2JqZWN0U2VsZWN0TGlzdDsKfQoKPWhlYWQyIFNlYXJjaE9wdGlvbkxpc3QoKQoKcmV0dXJuIGFuIGFycmF5IGhhc2ggd2l0aCBzZWFyY2ggb3B0aW9ucwoKUmV0dXJuCgogICAgQFNlYXJjaE9wdGlvbkxpc3QgPSAoCiAgICAgICAgewogICAgICAgICAgICBLZXkgICAgICAgPT4gJ0NoYW5nZU51bWJlcicsCiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnQ2hhbmdlIycsCiAgICAgICAgICAgIElucHV0U3RyZyA9PiAkRm9ybVN0cmluZywKICAgICAgICAgICAgRm9ybURhdGEgID0+ICcyMDA5MTAwMTEyMzU0MzIxJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgICAgID0+ICdDaGFuZ2VUaXRsZScsCiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnQ2hhbmdlIFRpdGxlJywKICAgICAgICAgICAgSW5wdXRTdHJnID0+ICRGb3JtU3RyaW5nLAogICAgICAgICAgICBGb3JtRGF0YSAgPT4gJ01haWwgc2VydmVyIG5lZWRzIHVwZGF0ZScsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgICAgICA9PiAnV29ya09yZGVyTnVtYmVyJywKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdXb3Jrb3JkZXIjJywKICAgICAgICAgICAgSW5wdXRTdHJnID0+ICRGb3JtU3RyaW5nLAogICAgICAgICAgICBGb3JtRGF0YSAgPT4gJzEyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgICAgID0+ICdXb3JrT3JkZXJUaXRsZScsCiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnV29ya09yZGVyIFRpdGxlJywKICAgICAgICAgICAgSW5wdXRTdHJnID0+ICRGb3JtU3RyaW5nLAogICAgICAgICAgICBGb3JtRGF0YSAgPT4gJ1NodXRkb3duIG9sZCBtYWlsIHNlcnZlcicsCiAgICAgICAgfSwKICAgICk7CgogICAgQFNlYXJjaE9wdGlvbkxpc3QgPSAkTGlua09iamVjdC0+U2VhcmNoT3B0aW9uTGlzdCgpOwoKPWN1dAoKc3ViIFNlYXJjaE9wdGlvbkxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHNlYXJjaCBvcHRpb24gbGlzdAogICAgbXkgQFNlYXJjaE9wdGlvbkxpc3QgPSAoCiAgICAgICAgewogICAgICAgICAgICBLZXkgID0+ICdDaGFuZ2VOdW1iZXInLAogICAgICAgICAgICBOYW1lID0+ICRTZWxmLT57Q2hhbmdlSG9va30sCiAgICAgICAgICAgIFR5cGUgPT4gJ1RleHQnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgID0+ICdDaGFuZ2VUaXRsZScsCiAgICAgICAgICAgIE5hbWUgPT4gJ0NoYW5nZVRpdGxlJywKICAgICAgICAgICAgVHlwZSA9PiAnVGV4dCcsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgPT4gJ1dvcmtPcmRlck51bWJlcicsCiAgICAgICAgICAgIE5hbWUgPT4gJFNlbGYtPntXb3JrT3JkZXJIb29rfSwKICAgICAgICAgICAgVHlwZSA9PiAnVGV4dCcsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgPT4gJ1dvcmtPcmRlclRpdGxlJywKICAgICAgICAgICAgTmFtZSA9PiAnV29ya09yZGVyVGl0bGUnLAogICAgICAgICAgICBUeXBlID0+ICdUZXh0JywKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCBmb3Jta2V5CiAgICBmb3IgbXkgJFJvdyAoQFNlYXJjaE9wdGlvbkxpc3QpIHsKICAgICAgICAkUm93LT57Rm9ybUtleX0gPSAnU0VBUkNIOjonIC4gJFJvdy0+e0tleX07CiAgICB9CgogICAgIyBhZGQgZm9ybSBkYXRhIGFuZCBpbnB1dCBzdHJpbmcKICAgIFJPVzoKICAgIGZvciBteSAkUm93IChAU2VhcmNoT3B0aW9uTGlzdCkgewoKICAgICAgICAjIGdldCBmb3JtIGRhdGEKICAgICAgICAkUm93LT57Rm9ybURhdGF9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSgKICAgICAgICAgICAgUGFyYW0gPT4gJFJvdy0+e0Zvcm1LZXl9LAogICAgICAgICk7CgogICAgICAgICMgcGFyc2UgdGhlIGlucHV0IHRleHQgYmxvY2sKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdJbnB1dFRleHQnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICRSb3ctPntGb3JtS2V5fSwKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRSb3ctPntGb3JtRGF0YX0gfHwgJycsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBhZGQgdGhlIGlucHV0IHN0cmluZwogICAgICAgICRSb3ctPntJbnB1dFN0cmd9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnTGlua09iamVjdCcsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBST1c7CiAgICB9CgogICAgcmV0dXJuIEBTZWFyY2hPcHRpb25MaXN0Owp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/TicketMenu/ITSMChange.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VGlja2V0TWVudTo6SVRTTUNoYW5nZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgVXNlcklEIHBhcmFtCiAgICAkU2VsZi0+e1VzZXJJRH0gPSAkUGFyYW17VXNlcklEfSB8fCBkaWUgIkdvdCBubyBVc2VySUQhIjsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1RpY2tldH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFRpY2tldCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgaWYgYW4gYWN0aW9uIHBhcmFtZXRlciB3YXMgZ2l2ZW4KICAgIGlmICggJFBhcmFte0NvbmZpZ30tPntBY3Rpb259ICkgewoKICAgICAgICAjIGNoZWNrIGlmIGZyb250ZW5kIG1vZHVsZSBpcyByZWdpc3RlcmVkLCBpZiBub3QsIGRvIG5vdCBzaG93IGFjdGlvbgogICAgICAgIG15ICRNb2R1bGUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+eyAkUGFyYW17Q29uZmlnfS0+e0FjdGlvbn0gfTsKICAgICAgICByZXR1cm4gaWYgISRNb2R1bGU7CgogICAgICAgICMgY2hlY2sgaWYgY3VycmVudCB1c2VyIGhhcyB0aGUgcGVybWlzc2lvbiBmb3IgdGhlIGdpdmVuIGFjdGlvbgogICAgICAgIGlmICggJE1vZHVsZS0+e0dyb3VwUm99ICYmIHJlZiAkTW9kdWxlLT57R3JvdXBSb30gZXEgJ0FSUkFZJyAmJiBAeyAkTW9kdWxlLT57R3JvdXBSb30gfSApIHsKCiAgICAgICAgICAgIG15ICRBY2Nlc3M7CgogICAgICAgICAgICBHUk9VUDoKICAgICAgICAgICAgZm9yIG15ICRHcm91cCAoIEB7ICRNb2R1bGUtPntHcm91cFJvfSB9ICkgewoKICAgICAgICAgICAgICAgICMgZ2V0IGdyb3VwIG9iamVjdAogICAgICAgICAgICAgICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgICAgICAgICAgICAgIyBsb29rdXAgdGhlIGdyb3VwIGlkCiAgICAgICAgICAgICAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgR3JvdXAgPT4gJEdyb3VwLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGRvIG5vdCBncmFudCBhY2Nlc3MsIHdoZW4gdGhlIGdyb3VwIGlzIG5vdCBmb3VuZAogICAgICAgICAgICAgICAgbmV4dCBHUk9VUCBpZiAhJEdyb3VwSUQ7CgogICAgICAgICAgICAgICAgIyBnZXQgdXNlciBncm91cHMsIHdoZXJlIHRoZSB1c2VyIGhhcyB0aGUgJ3JvJyBwcml2aWxlZ2UKICAgICAgICAgICAgICAgIG15ICVHcm91cHMgPSAkR3JvdXBPYmplY3QtPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIFR5cGUgICA9PiAncm8nLAogICAgICAgICAgICAgICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgcmVtZW1iZXIgdGhhdCB0aGUgdXNlciBoYXMgYWNjZXNzCiAgICAgICAgICAgICAgICBpZiAoICRHcm91cHN7JEdyb3VwSUR9ICkgewogICAgICAgICAgICAgICAgICAgICRBY2Nlc3MgPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGRvIG5vdCBncmFudCBhY2Nlc3MgaWYgdGhlIGFnZW50IGRvZXNuJ3QgaGF2ZSB0aGUgJ3JvJyByaWdodHMgaW4gdGhlIGdyb3VwCiAgICAgICAgICAgIHJldHVybiBpZiAhJEFjY2VzczsKICAgICAgICB9CiAgICB9CgogICAgIyB0aGUgbGluayBpcyBzaG93biBvbmx5IGZvciB0aGUgY29uZmlndXJlZCB0aWNrZXQgdHlwZXMsCiAgICAjIHNvIHRoZSB0aWNrZXQgbmVlZHMgdG8gaGF2ZSBhIHR5cGUuCiAgICByZXR1cm4gaWYgISRQYXJhbXtUaWNrZXR9LT57VHlwZX07CgogICAgIyBnZXQgYW5kIGNoZWNrIHRoZSBsaXN0IG9mIHJlbGV2YW50IHRpY2tldCB0eXBlcwogICAgbXkgJEFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcyA9ICRDb25maWdPYmplY3QtPkdldCgnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzJyk7CgogICAgcmV0dXJuIGlmICEkQWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzOwogICAgcmV0dXJuIGlmIHJlZiAkQWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzIG5lICdBUlJBWSc7CiAgICByZXR1cm4gaWYgIUB7JEFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc307CgogICAgIyBjaGVjayB3aGV0aGVyIHRoZSB0aWNrZXQncyB0eXBlIGlzIHJlbGV2YW50CiAgICBteSAlSXNSZWxldmFudCA9IG1hcCB7ICRfID0+IDEgfSBAeyRBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXN9OwoKICAgIHJldHVybiBpZiAhJElzUmVsZXZhbnR7ICRQYXJhbXtUaWNrZXR9LT57VHlwZX0gfTsKCiAgICAjIGNoZWNrIHBlcm1pc3Npb24KICAgIG15ICRGcm9udGVuZENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRQYXJhbXtDb25maWd9LT57QWN0aW9ufSIpOwoKICAgIGlmICggJEZyb250ZW5kQ29uZmlnICYmICRGcm9udGVuZENvbmZpZy0+e1Blcm1pc3Npb259ICkgewoKICAgICAgICBteSAkQWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+UGVybWlzc2lvbigKICAgICAgICAgICAgVHlwZSAgID0+ICRGcm9udGVuZENvbmZpZy0+e1Blcm1pc3Npb259LAogICAgICAgICAgICBBY3Rpb24gPT4gJFBhcmFte0NvbmZpZ30tPntBY3Rpb259LAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBMb2dObyAgPT4gMSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gaWYgISRBY2Nlc3M7CiAgICB9CgogICAgcmV0dXJuIHsgJXsgJFBhcmFte0NvbmZpZ30gfSwgJXsgJFBhcmFte1RpY2tldH0gfSwgJVBhcmFtLCB9Owp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/ToolBar/ChangeManager.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VG9vbEJhcjo6Q2hhbmdlTWFuYWdlcjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBVc2VySUQgcGFyYW0KICAgICRTZWxmLT57VXNlcklEfSA9ICRQYXJhbXtVc2VySUR9IHx8IGRpZSAiR290IG5vIFVzZXJJRCEiOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVmaW5lIGFjdGlvbiwgZ3JvdXAsIGxhYmVsLCBpbWFnZSBhbmQgcHJpbwogICAgbXkgJEFjdGlvbiA9ICdBZ2VudElUU01DaGFuZ2VNYW5hZ2VyJzsKICAgIG15ICRHcm91cCAgPSAnaXRzbS1jaGFuZ2UtbWFuYWdlcic7CiAgICBteSAkSWNvbiAgID0gJFBhcmFte0NvbmZpZ30tPntJY29ufTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGRvIG5vdCBzaG93IGljb24gaWYgZnJvbnRlbmQgbW9kdWxlIGlzIG5vdCByZWdpc3RlcmVkCiAgICByZXR1cm4gaWYgISRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6Ok1vZHVsZScpLT57JEFjdGlvbn07CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRBY3Rpb24iKTsKCiAgICAjIGdldCBncm91cCBvYmplY3QKICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICMgZ2V0IHRoZSBncm91cCBpZAogICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKCBHcm91cCA9PiAkR3JvdXAgKTsKCiAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIHRoZSBncm91cCBpcyBub3QgZm91bmQKICAgIHJldHVybiBpZiAhJEdyb3VwSUQ7CgogICAgIyBnZXQgdXNlciBncm91cHMsIHdoZXJlIHRoZSB1c2VyIGhhcyB0aGUgYXBwcm9wcmlhdGUgcHJpdmlsZWdlCiAgICBteSAlR3JvdXBzID0gJEdyb3VwT2JqZWN0LT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBUeXBlICAgPT4gJENvbmZpZy0+e1Blcm1pc3Npb259LAogICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICApOwoKICAgICMgZGVueSBhY2Nlc3MgaWYgdGhlIGFnZW50IGRvZXNuJ3QgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgdHlwZSBpbiB0aGUgYXBwcm9wcmlhdGUgZ3JvdXAKICAgIHJldHVybiBpZiAhJEdyb3Vwc3skR3JvdXBJRH07CgogICAgIyBnZXQgdGhlIG51bWJlciBvZiB2aWV3YWJsZSBjaGFuZ2VzCiAgICBteSAkQ291bnQgPSAwOwogICAgaWYgKCAkQ29uZmlnLT57J0ZpbHRlcjo6Q2hhbmdlU3RhdGVzJ30gJiYgQHsgJENvbmZpZy0+eydGaWx0ZXI6OkNoYW5nZVN0YXRlcyd9IH0gKSB7CgogICAgICAgICMgcmVtb3ZlIGVtcHR5IGNoYW5nZSBzdGF0ZXMKICAgICAgICBteSBAQ2hhbmdlU3RhdGVzOwogICAgICAgIENIQU5HRVNUQVRFOgogICAgICAgIGZvciBteSAkQ2hhbmdlU3RhdGUgKCBAeyAkQ29uZmlnLT57J0ZpbHRlcjo6Q2hhbmdlU3RhdGVzJ30gfSApIHsKICAgICAgICAgICAgbmV4dCBDSEFOR0VTVEFURSBpZiAhJENoYW5nZVN0YXRlOwogICAgICAgICAgICBwdXNoIEBDaGFuZ2VTdGF0ZXMsICRDaGFuZ2VTdGF0ZTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHRoZSBjYWNoZSB0eXBlIGFuZCBUVEwgKGluIHNlY29uZHMpCiAgICAgICAgJFNlbGYtPntDYWNoZVR5cGV9ID0gJ0lUU01DaGFuZ2VNYW5hZ2VtZW50VG9vbEJhckNoYW5nZU1hbmFnZXInIC4gJFNlbGYtPntVc2VySUR9OwogICAgICAgICRTZWxmLT57Q2FjaGVUVEx9ICA9ICRDb25maWdPYmplY3QtPkdldCgnSVRTTUNoYW5nZTo6VG9vbEJhcjo6Q2FjaGVUVEwnKSAqIDYwOwoKICAgICAgICAjIGdldCBjYWNoZSBvYmplY3QKICAgICAgICBteSAkQ2FjaGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKCiAgICAgICAgIyBjaGVjayBjYWNoZQogICAgICAgIG15ICRDYWNoZUtleSA9IGpvaW4gJywnLCBzb3J0IENoYW5nZVN0YXRlczsKICAgICAgICBteSAkQ2FjaGUgICAgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgIEtleSAgPT4gJENhY2hlS2V5LAogICAgICAgICk7CgogICAgICAgIGlmICggZGVmaW5lZCAkQ2FjaGUgKSB7CiAgICAgICAgICAgICRDb3VudCA9ICRDYWNoZTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNvdW50IHRoZSBudW1iZXIgb2Ygdmlld2FibGUgY2hhbmdlcwogICAgICAgICAgICAkQ291bnQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VTZWFyY2goCiAgICAgICAgICAgICAgICBDaGFuZ2VNYW5hZ2VySURzID0+IFsgJFNlbGYtPntVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZXMgICAgID0+IFxAQ2hhbmdlU3RhdGVzLAogICAgICAgICAgICAgICAgTGltaXQgICAgICAgICAgICA9PiAxMDAwLAogICAgICAgICAgICAgICAgUmVzdWx0ICAgICAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICAgICAgTWlycm9yREIgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNldCBjYWNoZQogICAgICAgICAgICAkQ2FjaGVPYmplY3QtPlNldCgKICAgICAgICAgICAgICAgIFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRDb3VudCwKICAgICAgICAgICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZ2V0IFRvb2xCYXIgb2JqZWN0IHBhcmFtZXRlcnMKICAgIG15ICRDbGFzcyA9ICRQYXJhbXtDb25maWd9LT57Q3NzQ2xhc3N9OwogICAgbXkgJFRleHQgID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDaGFuZ2UgTWFuYWdlcicpOwoKICAgICMgc2V0IFRvb2xCYXIgb2JqZWN0CiAgICBteSAkVVJMICAgICAgPSAkTGF5b3V0T2JqZWN0LT57QmFzZWxpbmt9OwogICAgbXkgJFByaW9yaXR5ID0gJFBhcmFte0NvbmZpZ30tPntQcmlvcml0eX07CiAgICBteSAlUmV0dXJuOwogICAgaWYgKCRDb3VudCkgewogICAgICAgICRSZXR1cm57JFByaW9yaXR5fSA9IHsKICAgICAgICAgICAgQmxvY2sgICAgICAgPT4gJ1Rvb2xCYXJJdGVtJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJFRleHQsCiAgICAgICAgICAgIENvdW50ICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJENsYXNzLAogICAgICAgICAgICBJY29uICAgICAgICA9PiAkSWNvbiwKICAgICAgICAgICAgTGluayAgICAgICAgPT4gJFVSTCAuICdBY3Rpb249JyAuICRBY3Rpb24sCiAgICAgICAgICAgIEFjY2Vzc0tleSAgID0+ICcnLAogICAgICAgIH07CiAgICB9CgogICAgcmV0dXJuICVSZXR1cm47Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/ToolBar/MyCAB.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VG9vbEJhcjo6TXlDQUI7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgVXNlcklEIHBhcmFtCiAgICAkU2VsZi0+e1VzZXJJRH0gPSAkUGFyYW17VXNlcklEfSB8fCBkaWUgIkdvdCBubyBVc2VySUQhIjsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGRlZmluZSBhY3Rpb24sIGdyb3VwLCBsYWJlbCwgaW1hZ2UgYW5kIHByaW8KICAgIG15ICRBY3Rpb24gPSAnQWdlbnRJVFNNQ2hhbmdlTXlDQUInOwogICAgbXkgJEdyb3VwICA9ICdpdHNtLWNoYW5nZSc7CiAgICBteSAkSWNvbiAgID0gJFBhcmFte0NvbmZpZ30tPntJY29ufTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGRvIG5vdCBzaG93IGljb24gaWYgZnJvbnRlbmQgbW9kdWxlIGlzIG5vdCByZWdpc3RlcmVkCiAgICByZXR1cm4gaWYgISRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6Ok1vZHVsZScpLT57JEFjdGlvbn07CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgiSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OiRBY3Rpb24iKTsKCiAgICAjIGdldCBncm91cCBvYmplY3QKICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICMgZ2V0IHRoZSBncm91cCBpZAogICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKCBHcm91cCA9PiAkR3JvdXAgKTsKCiAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIHRoZSBncm91cCBpcyBub3QgZm91bmQKICAgIHJldHVybiBpZiAhJEdyb3VwSUQ7CgogICAgIyBnZXQgdXNlciBncm91cHMsIHdoZXJlIHRoZSB1c2VyIGhhcyB0aGUgYXBwcm9wcmlhdGUgcHJpdmlsZWdlCiAgICBteSAlR3JvdXBzID0gJEdyb3VwT2JqZWN0LT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBUeXBlICAgPT4gJENvbmZpZy0+e1Blcm1pc3Npb259LAogICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICApOwoKICAgICMgZGVueSBhY2Nlc3MgaWYgdGhlIGFnZW50IGRvZXNuJ3QgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgdHlwZSBpbiB0aGUgYXBwcm9wcmlhdGUgZ3JvdXAKICAgIHJldHVybiBpZiAhJEdyb3Vwc3skR3JvdXBJRH07CgogICAgIyBnZXQgdGhlIG51bWJlciBvZiB2aWV3YWJsZSBjaGFuZ2VzCiAgICBteSAkQ291bnQgPSAwOwogICAgaWYgKCAkQ29uZmlnLT57J0ZpbHRlcjo6Q2hhbmdlU3RhdGVzJ30gJiYgQHsgJENvbmZpZy0+eydGaWx0ZXI6OkNoYW5nZVN0YXRlcyd9IH0gKSB7CgogICAgICAgICMgcmVtb3ZlIGVtcHR5IGNoYW5nZSBzdGF0ZXMKICAgICAgICBteSBAQ2hhbmdlU3RhdGVzOwogICAgICAgIENIQU5HRVNUQVRFOgogICAgICAgIGZvciBteSAkQ2hhbmdlU3RhdGUgKCBAeyAkQ29uZmlnLT57J0ZpbHRlcjo6Q2hhbmdlU3RhdGVzJ30gfSApIHsKICAgICAgICAgICAgbmV4dCBDSEFOR0VTVEFURSBpZiAhJENoYW5nZVN0YXRlOwogICAgICAgICAgICBwdXNoIEBDaGFuZ2VTdGF0ZXMsICRDaGFuZ2VTdGF0ZTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHRoZSBjYWNoZSB0eXBlIGFuZCBUVEwgKGluIHNlY29uZHMpCiAgICAgICAgJFNlbGYtPntDYWNoZVR5cGV9ID0gJ0lUU01DaGFuZ2VNYW5hZ2VtZW50VG9vbEJhck15Q0FCJyAuICRTZWxmLT57VXNlcklEfTsKICAgICAgICAkU2VsZi0+e0NhY2hlVFRMfSAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01DaGFuZ2U6OlRvb2xCYXI6OkNhY2hlVFRMJykgKiA2MDsKCiAgICAgICAgIyBnZXQgY2FjaGUgb2JqZWN0CiAgICAgICAgbXkgJENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CgogICAgICAgICMgY2hlY2sgY2FjaGUKICAgICAgICBteSAkQ2FjaGVLZXkgPSBqb2luICcsJywgc29ydCBAQ2hhbmdlU3RhdGVzOwogICAgICAgIG15ICRDYWNoZSAgICA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCBkZWZpbmVkICRDYWNoZSApIHsKICAgICAgICAgICAgJENvdW50ID0gJENhY2hlOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY291bnQgdGhlIG51bWJlciBvZiB2aWV3YWJsZSBjaGFuZ2VzCiAgICAgICAgICAgICRDb3VudCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZVNlYXJjaCgKICAgICAgICAgICAgICAgIENBQkFnZW50cyAgICA9PiBbICRTZWxmLT57VXNlcklEfSBdLAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVzID0+IFxAQ2hhbmdlU3RhdGVzLAogICAgICAgICAgICAgICAgTGltaXQgICAgICAgID0+IDEwMDAsCiAgICAgICAgICAgICAgICBSZXN1bHQgICAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgICAgIE1pcnJvckRCICAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2V0IGNhY2hlCiAgICAgICAgICAgICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgICAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJENvdW50IHx8IDAsCiAgICAgICAgICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGdldCBUb29sQmFyIG9iamVjdCBwYXJhbWV0ZXJzCiAgICBteSAkQ2xhc3MgPSAkUGFyYW17Q29uZmlnfS0+e0Nzc0NsYXNzfTsKICAgIG15ICRUZXh0ICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTXkgQ0FCcycpOwoKICAgICMgc2V0IFRvb2xCYXIgb2JqZWN0CiAgICBteSAkVVJMICAgICAgPSAkTGF5b3V0T2JqZWN0LT57QmFzZWxpbmt9OwogICAgbXkgJFByaW9yaXR5ID0gJFBhcmFte0NvbmZpZ30tPntQcmlvcml0eX07CiAgICBteSAlUmV0dXJuOwogICAgaWYgKCRDb3VudCkgewogICAgICAgICRSZXR1cm57JFByaW9yaXR5fSA9IHsKICAgICAgICAgICAgQmxvY2sgICAgICAgPT4gJ1Rvb2xCYXJJdGVtJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJFRleHQsCiAgICAgICAgICAgIENvdW50ICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJENsYXNzLAogICAgICAgICAgICBJY29uICAgICAgICA9PiAkSWNvbiwKICAgICAgICAgICAgTGluayAgICAgICAgPT4gJFVSTCAuICdBY3Rpb249JyAuICRBY3Rpb24sCiAgICAgICAgICAgIEFjY2Vzc0tleSAgID0+ICcnLAogICAgICAgIH07CiAgICB9CgogICAgcmV0dXJuICVSZXR1cm47Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/ToolBar/MyChanges.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VG9vbEJhcjo6TXlDaGFuZ2VzOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IFVzZXJJRCBwYXJhbQogICAgJFNlbGYtPntVc2VySUR9ID0gJFBhcmFte1VzZXJJRH0gfHwgZGllICJHb3Qgbm8gVXNlcklEISI7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWZpbmUgYWN0aW9uLCBncm91cCwgbGFiZWwsIGltYWdlIGFuZCBwcmlvCiAgICBteSAkQWN0aW9uID0gJ0FnZW50SVRTTUNoYW5nZU15Q2hhbmdlcyc7CiAgICBteSAkR3JvdXAgID0gJ2l0c20tY2hhbmdlLWJ1aWxkZXInOwogICAgbXkgJEljb24gICA9ICRQYXJhbXtDb25maWd9LT57SWNvbn07CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBkbyBub3Qgc2hvdyBpY29uIGlmIGZyb250ZW5kIG1vZHVsZSBpcyBub3QgcmVnaXN0ZXJlZAogICAgcmV0dXJuIGlmICEkQ29uZmlnT2JqZWN0LT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+eyRBY3Rpb259OwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgIG15ICRDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoIklUU01DaGFuZ2U6OkZyb250ZW5kOjokQWN0aW9uIik7CgogICAgIyBnZXQgZ3JvdXAgb2JqZWN0CiAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAjIGdldCB0aGUgZ3JvdXAgaWQKICAgIG15ICRHcm91cElEID0gJEdyb3VwT2JqZWN0LT5Hcm91cExvb2t1cCggR3JvdXAgPT4gJEdyb3VwICk7CgogICAgIyBkZW55IGFjY2Vzcywgd2hlbiB0aGUgZ3JvdXAgaXMgbm90IGZvdW5kCiAgICByZXR1cm4gaWYgISRHcm91cElEOwoKICAgICMgZ2V0IHVzZXIgZ3JvdXBzLCB3aGVyZSB0aGUgdXNlciBoYXMgdGhlIGFwcHJvcHJpYXRlIHByaXZpbGVnZQogICAgbXkgJUdyb3VwcyA9ICRHcm91cE9iamVjdC0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgVHlwZSAgID0+ICRDb25maWctPntQZXJtaXNzaW9ufSwKICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzIGlmIHRoZSBhZ2VudCBkb2Vzbid0IGhhdmUgdGhlIGFwcHJvcHJpYXRlIHR5cGUgaW4gdGhlIGFwcHJvcHJpYXRlIGdyb3VwCiAgICByZXR1cm4gaWYgISRHcm91cHN7JEdyb3VwSUR9OwoKICAgICMgZ2V0IHRoZSBudW1iZXIgb2Ygdmlld2FibGUgY2hhbmdlcwogICAgbXkgJENvdW50ID0gMDsKICAgIGlmICggJENvbmZpZy0+eydGaWx0ZXI6OkNoYW5nZVN0YXRlcyd9ICYmIEB7ICRDb25maWctPnsnRmlsdGVyOjpDaGFuZ2VTdGF0ZXMnfSB9ICkgewoKICAgICAgICAjIHJlbW92ZSBlbXB0eSBjaGFuZ2Ugc3RhdGVzCiAgICAgICAgbXkgQENoYW5nZVN0YXRlczsKICAgICAgICBDSEFOR0VTVEFURToKICAgICAgICBmb3IgbXkgJENoYW5nZVN0YXRlICggQHsgJENvbmZpZy0+eydGaWx0ZXI6OkNoYW5nZVN0YXRlcyd9IH0gKSB7CiAgICAgICAgICAgIG5leHQgQ0hBTkdFU1RBVEUgaWYgISRDaGFuZ2VTdGF0ZTsKICAgICAgICAgICAgcHVzaCBAQ2hhbmdlU3RhdGVzLCAkQ2hhbmdlU3RhdGU7CiAgICAgICAgfQoKICAgICAgICAjIGdldCB0aGUgY2FjaGUgdHlwZSBhbmQgVFRMIChpbiBzZWNvbmRzKQogICAgICAgICRTZWxmLT57Q2FjaGVUeXBlfSA9ICdJVFNNQ2hhbmdlTWFuYWdlbWVudFRvb2xCYXJNeUNoYW5nZXMnIC4gJFNlbGYtPntVc2VySUR9OwogICAgICAgICRTZWxmLT57Q2FjaGVUVEx9ICA9ICRDb25maWdPYmplY3QtPkdldCgnSVRTTUNoYW5nZTo6VG9vbEJhcjo6Q2FjaGVUVEwnKSAqIDYwOwoKICAgICAgICAjIGdldCBjYWNoZSBvYmplY3QKICAgICAgICBteSAkQ2FjaGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKCiAgICAgICAgIyBjaGVjayBjYWNoZQogICAgICAgIG15ICRDYWNoZUtleSA9IGpvaW4gJywnLCBzb3J0IEBDaGFuZ2VTdGF0ZXM7CiAgICAgICAgbXkgJENhY2hlICAgID0gJENhY2hlT2JqZWN0LT5HZXQoCiAgICAgICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICAgICApOwoKICAgICAgICBpZiAoIGRlZmluZWQgJENhY2hlICkgewogICAgICAgICAgICAkQ291bnQgPSAkQ2FjaGU7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBjb3VudCB0aGUgbnVtYmVyIG9mIHZpZXdhYmxlIGNoYW5nZXMKICAgICAgICAgICAgJENvdW50ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlU2VhcmNoKAogICAgICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEcyA9PiBbICRTZWxmLT57VXNlcklEfSBdLAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVzICAgICA9PiBcQENoYW5nZVN0YXRlcywKICAgICAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgPT4gMTAwMCwKICAgICAgICAgICAgICAgIFJlc3VsdCAgICAgICAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgICAgIE1pcnJvckRCICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzZXQgY2FjaGUKICAgICAgICAgICAgJENhY2hlT2JqZWN0LT5TZXQoCiAgICAgICAgICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXksCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkQ291bnQsCiAgICAgICAgICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGdldCBUb29sQmFyIG9iamVjdCBwYXJhbWV0ZXJzCiAgICBteSAkQ2xhc3MgPSAkUGFyYW17Q29uZmlnfS0+e0Nzc0NsYXNzfTsKICAgIG15ICRUZXh0ICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTXkgQ2hhbmdlcycpOwoKICAgICMgc2V0IFRvb2xCYXIgb2JqZWN0CiAgICBteSAkVVJMICAgICAgPSAkTGF5b3V0T2JqZWN0LT57QmFzZWxpbmt9OwogICAgbXkgJFByaW9yaXR5ID0gJFBhcmFte0NvbmZpZ30tPntQcmlvcml0eX07CiAgICBteSAlUmV0dXJuOwogICAgaWYgKCRDb3VudCkgewogICAgICAgICRSZXR1cm57JFByaW9yaXR5fSA9IHsKICAgICAgICAgICAgQmxvY2sgICAgICAgPT4gJ1Rvb2xCYXJJdGVtJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJFRleHQsCiAgICAgICAgICAgIENvdW50ICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJENsYXNzLAogICAgICAgICAgICBJY29uICAgICAgICA9PiAkSWNvbiwKICAgICAgICAgICAgTGluayAgICAgICAgPT4gJFVSTCAuICdBY3Rpb249JyAuICRBY3Rpb24sCiAgICAgICAgICAgIEFjY2Vzc0tleSAgID0+ICcnLAogICAgICAgIH07CiAgICB9CgogICAgcmV0dXJuICVSZXR1cm47Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/ToolBar/MyWorkOrders.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VG9vbEJhcjo6TXlXb3JrT3JkZXJzOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IFVzZXJJRCBwYXJhbQogICAgJFNlbGYtPntVc2VySUR9ID0gJFBhcmFte1VzZXJJRH0gfHwgZGllICJHb3Qgbm8gVXNlcklEISI7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWZpbmUgYWN0aW9uCiAgICBteSAkQWN0aW9uID0gJ0FnZW50SVRTTUNoYW5nZU15V29ya09yZGVycyc7CiAgICBteSAkR3JvdXAgID0gJ2l0c20tY2hhbmdlJzsKICAgIG15ICRJY29uICAgPSAkUGFyYW17Q29uZmlnfS0+e0ljb259OwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZG8gbm90IHNob3cgaWNvbiBpZiBmcm9udGVuZCBtb2R1bGUgaXMgbm90IHJlZ2lzdGVyZWQKICAgIHJldHVybiBpZiAhJENvbmZpZ09iamVjdC0+R2V0KCdGcm9udGVuZDo6TW9kdWxlJyktPnskQWN0aW9ufTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICBteSAkQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCJJVFNNQ2hhbmdlOjpGcm9udGVuZDo6JEFjdGlvbiIpOwoKICAgICMgZ2V0IGdyb3VwIG9iamVjdAogICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgIyBnZXQgdGhlIGdyb3VwIGlkCiAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoIEdyb3VwID0+ICRHcm91cCApOwoKICAgICMgZGVueSBhY2Nlc3MsIHdoZW4gdGhlIGdyb3VwIGlzIG5vdCBmb3VuZAogICAgcmV0dXJuIGlmICEkR3JvdXBJRDsKCiAgICAjIGdldCB1c2VyIGdyb3Vwcywgd2hlcmUgdGhlIHVzZXIgaGFzIHRoZSBhcHByb3ByaWF0ZSBwcml2aWxlZ2UKICAgIG15ICVHcm91cHMgPSAkR3JvdXBPYmplY3QtPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgIFR5cGUgICA9PiAkQ29uZmlnLT57UGVybWlzc2lvbn0sCiAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICk7CgogICAgIyBkZW55IGFjY2VzcyBpZiB0aGUgYWdlbnQgZG9lc24ndCBoYXZlIHRoZSBhcHByb3ByaWF0ZSB0eXBlIGluIHRoZSBhcHByb3ByaWF0ZSBncm91cAogICAgcmV0dXJuIGlmICEkR3JvdXBzeyRHcm91cElEfTsKCiAgICAjIGdldCB0aGUgbnVtYmVyIG9mIHZpZXdhYmxlIGNoYW5nZXMKICAgIG15ICRDb3VudCA9IDA7CiAgICBpZiAoICRDb25maWctPnsnRmlsdGVyOjpXb3JrT3JkZXJTdGF0ZXMnfSAmJiBAeyAkQ29uZmlnLT57J0ZpbHRlcjo6V29ya09yZGVyU3RhdGVzJ30gfSApIHsKCiAgICAgICAgIyByZW1vdmUgZW1wdHkgd29ya29yZGVyIHN0YXRlcwogICAgICAgIG15IEBXb3JrT3JkZXJTdGF0ZXM7CiAgICAgICAgV09SS09SREVSU1RBVEU6CiAgICAgICAgZm9yIG15ICRXb3JrT3JkZXJTdGF0ZSAoIEB7ICRDb25maWctPnsnRmlsdGVyOjpXb3JrT3JkZXJTdGF0ZXMnfSB9ICkgewogICAgICAgICAgICBuZXh0IFdPUktPUkRFUlNUQVRFIGlmICEkV29ya09yZGVyU3RhdGU7CiAgICAgICAgICAgIHB1c2ggQFdvcmtPcmRlclN0YXRlcywgJFdvcmtPcmRlclN0YXRlOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgdGhlIGNhY2hlIHR5cGUgYW5kIFRUTCAoaW4gc2Vjb25kcykKICAgICAgICAkU2VsZi0+e0NhY2hlVHlwZX0gPSAnSVRTTUNoYW5nZU1hbmFnZW1lbnRUb29sQmFyTXlXb3JrT3JkZXJzJyAuICRTZWxmLT57VXNlcklEfTsKICAgICAgICAkU2VsZi0+e0NhY2hlVFRMfSAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01DaGFuZ2U6OlRvb2xCYXI6OkNhY2hlVFRMJykgKiA2MDsKCiAgICAgICAgIyBjaGVjayBjYWNoZQogICAgICAgIG15ICRDYWNoZUtleSA9IGpvaW4gJywnLCBzb3J0IEBXb3JrT3JkZXJTdGF0ZXM7CgogICAgICAgIG15ICRDYWNoZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICAgICApOwoKICAgICAgICBpZiAoIGRlZmluZWQgJENhY2hlICkgewogICAgICAgICAgICAkQ291bnQgPSAkQ2FjaGU7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBjb3VudCB0aGUgbnVtYmVyIG9mIHZpZXdhYmxlIHdvcmtvcmRlcnMKICAgICAgICAgICAgJENvdW50ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyU2VhcmNoKAogICAgICAgICAgICAgICAgV29ya09yZGVyQWdlbnRJRHMgPT4gWyAkU2VsZi0+e1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlcyAgID0+IFxAV29ya09yZGVyU3RhdGVzLAogICAgICAgICAgICAgICAgTGltaXQgICAgICAgICAgICAgPT4gMTAwMCwKICAgICAgICAgICAgICAgIFJlc3VsdCAgICAgICAgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgICAgICBNaXJyb3JEQiAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzZXQgY2FjaGUKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICAgICAgICAgIFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRDb3VudCwKICAgICAgICAgICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZ2V0IFRvb2xCYXIgb2JqZWN0IHBhcmFtZXRlcnMKICAgIG15ICRDbGFzcyA9ICRQYXJhbXtDb25maWd9LT57Q3NzQ2xhc3N9OwogICAgbXkgJFRleHQgID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdNeSBXb3JrIE9yZGVycycpOwoKICAgICMgc2V0IFRvb2xCYXIgb2JqZWN0CiAgICBteSAkVVJMICAgICAgPSAkTGF5b3V0T2JqZWN0LT57QmFzZWxpbmt9OwogICAgbXkgJFByaW9yaXR5ID0gJFBhcmFte0NvbmZpZ30tPntQcmlvcml0eX07CiAgICBteSAlUmV0dXJuOwogICAgaWYgKCRDb3VudCkgewogICAgICAgICRSZXR1cm57JFByaW9yaXR5fSA9IHsKICAgICAgICAgICAgQmxvY2sgICAgICAgPT4gJ1Rvb2xCYXJJdGVtJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJFRleHQsCiAgICAgICAgICAgIENvdW50ICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJENsYXNzLAogICAgICAgICAgICBJY29uICAgICAgICA9PiAkSWNvbiwKICAgICAgICAgICAgTGluayAgICAgICAgPT4gJFVSTCAuICdBY3Rpb249JyAuICRBY3Rpb24sCiAgICAgICAgICAgIEFjY2Vzc0tleSAgID0+ICcnLAogICAgICAgIH07CiAgICB9CgogICAgcmV0dXJuICVSZXR1cm47Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AdminITSMChangeCIPAllocate.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4gTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJGaXJzdCI+CiAgICA8aDEgY2xhc3M9IkhlYWRlciI+WyUgVHJhbnNsYXRlKCJDYXRlZ29yeSDihpQgSW1wYWN0IOKGlCBQcmlvcml0eSIpIHwgaHRtbCAlXTwvaDE+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj48aDI+WyUgVHJhbnNsYXRlKCJOb3RlIikgfCBodG1sICVdPC9oMj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJNYW5hZ2UgdGhlIHByaW9yaXR5IHJlc3VsdCBvZiBjb21iaW5hdGluZyBDYXRlZ29yeSDihpQgSW1wYWN0LiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJQcmlvcml0eSBhbGxvY2F0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iQ0lQQWxsb2NhdGUiLz4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBEYXRhVGFibGVOb0hpZ2hsaWdodCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyQ29sdW1uRGVzY3JpcHRpb24iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuT2JqZWN0VHlwZSkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckNvbHVtbkRlc2NyaXB0aW9uIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyQ2VsbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5PYmplY3RPcHRpb24pIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJDZWxsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KClslIFJlbmRlckJsb2NrU3RhcnQoIlJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkRlc2NyaXB0aW9uQ2VsbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5PYmplY3RPcHRpb24pIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJEZXNjcmlwdGlvbkNlbGwiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50Q2VsbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk9wdGlvblN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudENlbGwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiBpZD0iU3VibWl0QW5kQ29udGludWUiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AdminITSMChangeNotification.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXciKSAlXQo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQiKSB8IGh0bWwgJV08L2gxPgoKWyUtCiAgICBCcmVhZGNydW1iUGF0aCA9IFsKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdJVFNNIENoYW5nZU1hbmFnZW1lbnQgTm90aWZpY2F0aW9uIE1hbmFnZW1lbnQnKSwKICAgICAgICAgICAgTGluayA9PiBFbnYoIkFjdGlvbiIpLAogICAgICAgIH0KICAgIF07CgogICAgSUYgRGF0YS5BY3Rpb24gPT0gJ0FkZCc7CiAgICAgICAgQnJlYWRjcnVtYlBhdGgucHVzaCh7CiAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdBZGQgTm90aWZpY2F0aW9uIFJ1bGUnKSwKICAgICAgICB9KTsKICAgIEVMU0lGIERhdGEuQWN0aW9uID09ICdDaGFuZ2UnOwogICAgICAgIEJyZWFkY3J1bWJQYXRoLnB1c2goewogICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSgnRWRpdCBOb3RpZmljYXRpb24gUnVsZScpLAogICAgICAgIH0pOwogICAgRU5EOwoKJV0KClslIElOQ0xVREUgIkJyZWFkY3J1bWIudHQiIFBhdGggPSBCcmVhZGNydW1iUGF0aCAlXQoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uTGlzdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlldyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkFkZCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249QWRkIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPlslIFRyYW5zbGF0ZSgiQWRkIE5vdGlmaWNhdGlvbiBSdWxlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkIikgJV0KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uTGlzdCIpICVdCiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzIwcGMiPlslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJFdmVudCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJBdHRyaWJ1dGUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUnVsZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJSZWNpcGllbnRzIikgfCBodG1sICVdPC90aD4KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2VudGVyIFcxMHBjIj5bJSBUcmFuc2xhdGUoIkNvcHkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDZW50ZXIgVzEwcGMiPlslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgWyUgSUYgRGF0YS5WYWxpZElEICE9IDElXWNsYXNzPSJJbnZhbGlkIlslIEVORCAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUNoYW5nZTtJRD1bJSBEYXRhLklEIHwgdXJpICVdIj5bJSBEYXRhLk5hbWUgfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuRXZlbnQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BdHRyaWJ1dGUgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlJ1bGUgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlJlY2lwaWVudHMgfCBodG1sICVdPC90ZD4KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5Db21tZW50IHwgdHJ1bmNhdGUoMjApIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuVmFsaWQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPU5vdGlmaWNhdGlvbkNvcHk7SUQ9WyUgRGF0YS5JRCB8IHVyaSAlXTtbJSBFbnYoIkNoYWxsZW5nZVRva2VuUGFyYW0iKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jb3B5Ij48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiQ29weSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJDZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJUcmFzaENhbiBOb3RpZmljYXRpb25EZWxldGUiIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1EZWxldGU7SUQ9WyUgRGF0YS5JRCB8IHVyaSAlXTtbJSBFbnYoIkNoYWxsZW5nZVRva2VuUGFyYW0iKSB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbiIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10cmFzaC1vIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZSIpICVdCiAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIiBuYW1lPSJDaGFuZ2VOb3RpZmljYXRpb24iIGlkPSJDaGFuZ2VOb3RpZmljYXRpb24iPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZShEYXRhLkFjdGlvbkxhYmVsKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgdXJpICVdQWN0aW9uIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iSUQiIHZhbHVlPSJbJSBEYXRhLklEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNvbnRpbnVlQWZ0ZXJTYXZlIiBpZD0iQ29udGludWVBZnRlclNhdmUiIHZhbHVlPSIiLz4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5hbWUiIGNsYXNzPSJNYW5kYXRvcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJOYW1lIiBuYW1lPSJOYW1lIiBjbGFzcz0iVmFsaWRhdGVfUmVxdWlyZWQgVzUwcGMgWyUgRGF0YS5OYW1lSW52YWxpZCB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBtYXhsZW5ndGg9IjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOYW1lRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkEgbm90aWZpY2F0aW9uIHNob3VsZCBoYXZlIGEgbmFtZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOYW1lU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIk5hbWUgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRXZlbnRJRCIgY2xhc3M9Ik1hbmRhdG9yeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJFdmVudCIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRXZlbnRPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkF0dHJpYnV0ZSI+WyUgVHJhbnNsYXRlKCJBdHRyaWJ1dGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJBdHRyaWJ1dGUiIG5hbWU9IkF0dHJpYnV0ZSIgdmFsdWU9IlslIERhdGEuQXR0cmlidXRlIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJSdWxlIj5bJSBUcmFuc2xhdGUoIlJ1bGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJSdWxlIiBuYW1lPSJSdWxlIiB2YWx1ZT0iWyUgRGF0YS5SdWxlIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJSZWNpcGllbnRJRHMiPlslIFRyYW5zbGF0ZSgiUmVjaXBpZW50cyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlJlY2lwaWVudE9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVmFsaWRJRCI+WyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZhbGlkT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDb21tZW50Ij5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJDb21tZW50IiBuYW1lPSJDb21tZW50IiB2YWx1ZT0iWyUgRGF0YS5Db21tZW50IHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjE1MCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIaWRkZW4gVGVtcGxhdGUgTm90aWZpY2F0aW9uTGFuZ3VhZ2UiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiVG9nZ2xlIHRoaXMgd2lkZ2V0IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iVGl0bGUiPjwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkFkZGl0aW9uYWxJbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSB2YWx1ZT0iUmVtb3ZlIExhbmd1YWdlIiBjbGFzcz0iUmVtb3ZlQnV0dG9uIExhbmd1YWdlUmVtb3ZlIiBpZD0iVGVtcGxhdGVfTGFuZ3VhZ2VfUmVtb3ZlIiBocmVmPSIiIG5hbWU9IlRlbXBsYXRlX0xhbmd1YWdlX1JlbW92ZSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIE5vdGlmaWNhdGlvbiBMYW5ndWFnZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIiIGNsYXNzPSJMYW5ndWFnZUlEIiB2YWx1ZT0iIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJUZW1wbGF0ZV9TdWJqZWN0IiBpZD0iVGVtcGxhdGVfTGFiZWxfU3ViamVjdCIgY2xhc3M9Ik1hbmRhdG9yeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlN1YmplY3QiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJUZW1wbGF0ZV9TdWJqZWN0IiBpZD0iVGVtcGxhdGVfU3ViamVjdCIgdmFsdWU9IiIgY2xhc3M9Ilc3NXBjIiBtYXhsZW5ndGg9IjIwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRlbXBsYXRlX1N1YmplY3RFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVGVtcGxhdGVfQm9keSIgaWQ9IlRlbXBsYXRlX0xhYmVsX0JvZHkiIGNsYXNzPSJNYW5kYXRvcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUZXh0IikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJpY2hUZXh0RmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iVGVtcGxhdGVfQm9keSIgY2xhc3M9IiIgbmFtZT0iVGVtcGxhdGVfQm9keSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTWVzc2FnZSBib2R5IikgfCBodG1sICVdIiByb3dzPSIxNSIgY29scz0iWyUgQ29uZmlnKCJUaWNrZXQ6OkZyb250ZW5kOjpUZXh0QXJlYU5vdGUiKSAlXSI+PC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUZW1wbGF0ZV9Cb2R5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKClslIFJlbmRlckJsb2NrU3RhcnQoIk5vdGlmaWNhdGlvblR5cGUiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJUb2dnbGUgdGhpcyB3aWRnZXQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIk5vdGlmaWNhdGlvbiIpIHwgaHRtbCAlXSAoWyUgVHJhbnNsYXRlKERhdGEuVHlwZSkgfCBodG1sICVdKTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJOb3RpZmljYXRpb25MYW5ndWFnZUNvbnRhaW5lciIgaWQ9IlslIERhdGEuVHlwZSB8IGh0bWwgJV1Ob3RpZmljYXRpb25MYW5ndWFnZUNvbnRhaW5lciI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb3RpZmljYXRpb25MYW5ndWFnZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ik5vdGlmaWNhdGlvbkxhbmd1YWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlRvZ2dsZSB0aGlzIHdpZGdldCIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iPjwvaT48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9IlRpdGxlIj5bJSBUcmFuc2xhdGUoRGF0YS5MYW5ndWFnZSkgfCBodG1sICVdPC9oMj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiTm90aWZpY2F0aW9uTGFuZ3VhZ2VSZW1vdmVCdXR0b24iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJBZGRpdGlvbmFsSW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgdmFsdWU9IlJlbW92ZSBMYW5ndWFnZSIgY2xhc3M9IlJlbW92ZUJ1dHRvbiBMYW5ndWFnZVJlbW92ZSBbJSBEYXRhLlR5cGUgfCBodG1sICVdTGFuZ3VhZ2VSZW1vdmUiIGlkPSJbJSBEYXRhLlR5cGUgfCBodG1sICVdX1slIERhdGEuTGFuZ3VhZ2VJRCB8IGh0bWwgJV1fTGFuZ3VhZ2VfUmVtb3ZlIiBocmVmPSIiIG5hbWU9IlslIERhdGEuVHlwZSB8IGh0bWwgJV1fWyUgRGF0YS5MYW5ndWFnZUlEIHwgaHRtbCAlXV9MYW5ndWFnZV9SZW1vdmUiPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSBOb3RpZmljYXRpb24gTGFuZ3VhZ2UiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vdGlmaWNhdGlvbkxhbmd1YWdlUmVtb3ZlQnV0dG9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iWyUgRGF0YS5UeXBlIHwgaHRtbCAlXV9MYW5ndWFnZUlEIiBjbGFzcz0iTGFuZ3VhZ2VJRCIgdmFsdWU9IlslIERhdGEuTGFuZ3VhZ2VJRCB8IGh0bWwgJV0iLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLlR5cGUgfCBodG1sICVdX1slIERhdGEuTGFuZ3VhZ2VJRCB8IGh0bWwgJV1fU3ViamVjdCIgaWQ9IlslIERhdGEuVHlwZSB8IGh0bWwgJV1fWyUgRGF0YS5MYW5ndWFnZUlEIHwgaHRtbCAlXV9MYWJlbF9TdWJqZWN0IiBjbGFzcz0iTWFuZGF0b3J5Ij4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiU3ViamVjdCIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlslIERhdGEuVHlwZSB8IGh0bWwgJV1fWyUgRGF0YS5MYW5ndWFnZUlEIHwgaHRtbCAlXV9TdWJqZWN0IiBpZD0iWyUgRGF0YS5UeXBlIHwgaHRtbCAlXV9bJSBEYXRhLkxhbmd1YWdlSUQgfCBodG1sICVdX1N1YmplY3QiIHZhbHVlPSJbJSBEYXRhLlN1YmplY3QgfCBodG1sICVdIiBjbGFzcz0iVzc1cGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5TdWJqZWN0U2VydmVyRXJyb3IgfCBodG1sICVdIiBtYXhsZW5ndGg9IjIwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlslIERhdGEuVHlwZSB8IGh0bWwgJV1fWyUgRGF0YS5MYW5ndWFnZUlEIHwgaHRtbCAlXV9TdWJqZWN0RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJbJSBEYXRhLlR5cGUgfCBodG1sICVdX1slIERhdGEuTGFuZ3VhZ2VJRCB8IGh0bWwgJV1fU3ViamVjdFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iWyUgRGF0YS5UeXBlIHwgaHRtbCAlXV9bJSBEYXRhLkxhbmd1YWdlSUQgfCBodG1sICVdX0JvZHkiIGlkPSJbJSBEYXRhLlR5cGUgfCBodG1sICVdX1slIERhdGEuTGFuZ3VhZ2VJRCB8IGh0bWwgJV1fTGFiZWxfQm9keSIgY2xhc3M9Ik1hbmRhdG9yeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGV4dCIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSaWNoVGV4dEZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgbmFtZT0iWyUgRGF0YS5UeXBlIHwgaHRtbCAlXV9bJSBEYXRhLkxhbmd1YWdlSUQgfCBodG1sICVdX0JvZHkiIGlkPSJbJSBEYXRhLlR5cGUgfCBodG1sICVdX1slIERhdGEuTGFuZ3VhZ2VJRCB8IGh0bWwgJV1fQm9keSIgY2xhc3M9IlJpY2hUZXh0IFZhbGlkYXRlX1JlcXVpcmVkUmljaFRleHQgWyUgRGF0YS5Cb2R5U2VydmVyRXJyb3IgfCBodG1sICVdIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJNZXNzYWdlIGJvZHkiKSB8IGh0bWwgJV0iIHJvd3M9IjE1IiBjb2xzPSJbJSBDb25maWcoIlRpY2tldDo6RnJvbnRlbmQ6OlRleHRBcmVhTm90ZSIpICVdIj5bJSBEYXRhLkJvZHkgfCBodG1sICVdPC90ZXh0YXJlYT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iWyUgRGF0YS5UeXBlIHwgaHRtbCAlXV9bJSBEYXRhLkxhbmd1YWdlSUQgfCBodG1sICVdX0JvZHlFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlslIERhdGEuVHlwZSB8IGh0bWwgJV1fWyUgRGF0YS5MYW5ndWFnZUlEIHwgaHRtbCAlXV9Cb2R5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vdGlmaWNhdGlvbkxhbmd1YWdlIikgJV0KCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb3RpZmljYXRpb25MYW5ndWFnZUFkZCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJMYW5ndWFnZSI+WyUgVHJhbnNsYXRlKCJBZGQgbmV3IG5vdGlmaWNhdGlvbiBsYW5ndWFnZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkxhbmd1YWdlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5MYW5ndWFnZU9yaWdTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb3RpZmljYXRpb25MYW5ndWFnZUFkZCIpICVdCgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm90aWZpY2F0aW9uVHlwZSIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiU2F2ZSBDaGFuZ2VzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIFNhdmVCdXR0b25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgaWQ9IlN1Ym1pdEFuZENvbnRpbnVlIiB0eXBlPSJidXR0b24iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUgYW5kIGZpbmlzaCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgPC9mb3JtPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGUiKSAlXQogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXciKSAlXQo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AdminITSMStateMachine.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXciKSAlXQo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJBZG1pbiBTdGF0ZSBNYWNoaW5lIikgfCBodG1sICVdPC9oMT4KWyUtCiAgICBCcmVhZGNydW1iUGF0aCA9IFsKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdBZG1pbiBTdGF0ZSBNYWNoaW5lJyksCiAgICAgICAgICAgIExpbmsgPT4gRW52KCJBY3Rpb24iKSwKICAgICAgICB9LAogICAgXTsKCiAgICBJRiBEYXRhLkFjdGlvbiA9PSAnU3RhdGVUcmFuc2l0aW9uQWRkJzsKICAgICAgICBCcmVhZGNydW1iUGF0aC5wdXNoKHsKICAgICAgICAgICAgTmFtZSA9PiAnQWRkIFN0YXRlIFRyYW5zaXRpb24nLAogICAgICAgIH0pOwogICAgRUxTSUYgRGF0YS5BY3Rpb24gPT0gJ1N0YXRlVHJhbnNpdGlvblVwZGF0ZSc7CiAgICAgICAgQnJlYWRjcnVtYlBhdGgucHVzaCh7CiAgICAgICAgICAgIE5hbWUgPT4gJ0VkaXQgU3RhdGUgVHJhbnNpdGlvbicsCiAgICAgICAgfSk7CiAgICBFTFNJRiBEYXRhLkNsYXNzOwogICAgICAgIEJyZWFkY3J1bWJQYXRoLnB1c2goewogICAgICAgICAgICBOYW1lID0+ICdTdGF0ZSBUcmFuc2l0aW9ucyBmb3IgJyBfIERhdGEuQ2xhc3MsCiAgICAgICAgfSk7CiAgICBFTkQ7CgolXQoKWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRTdGF0ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0iZ2V0IiBjbGFzcz0iVmFsaWRhdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiAgICB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTdGF0ZVRyYW5zaXRpb25BZGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBEYXRhLkNsYXNzU2VsZWN0aW9uU3RyaW5nICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDbGFzc0Vycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJTZWxlY3QgYSBjYXRhbG9nIGNsYXNzISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNsYXNzU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkEgY2F0YWxvZyBjbGFzcyBpcyByZXF1aXJlZCEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJBZGQiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZSgiQWRkIGEgc3RhdGUgdHJhbnNpdGlvbiIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFN0YXRlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uT3ZlcnZpZXciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+WyUgVHJhbnNsYXRlKCJHbyB0byBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbk92ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdDbGFzc2VzIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkxpc3QiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDYXRhbG9nIENsYXNzIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIk9iamVjdCBOYW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdDbGFzc2VzUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtDbGFzcz1bJSBEYXRhLkNsYXNzIHwgdXJpICVdIj5bJSBEYXRhLkNsYXNzIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5DbGFzc1Nob3J0TmFtZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdDbGFzc2VzUm93IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdDbGFzc2VzIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3U3RhdGVUcmFuc2l0aW9ucyIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJPdmVydmlldyBvdmVyIHN0YXRlIHRyYW5zaXRpb25zIGZvciIpIHwgaHRtbCAlXSBbJSBEYXRhLkNsYXNzIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlN0YXRlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIk5leHQgc3RhdGUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhdGVUcmFuc2l0aW9uUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249U3RhdGVUcmFuc2l0aW9uVXBkYXRlO0NsYXNzPVslIERhdGEuQ2xhc3MgfCB1cmkgJV07U3RhdGVJRD1bJSBEYXRhLlN0YXRlSUQgfCB1cmkgJV07TmV4dFN0YXRlSUQ9WyUgRGF0YS5OZXh0U3RhdGVJRCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLlN0YXRlTmFtZSkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5OZXh0U3RhdGVOYW1lKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJDZW50ZXIgTGFzdCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YXRlVHJhbnNpdGlvbkRlbGV0ZUJ1dHRvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPVN0YXRlVHJhbnNpdGlvbkRlbGV0ZTtDbGFzcz1bJSBEYXRhLkNsYXNzIHwgdXJpICVdO1N0YXRlSUQ9WyUgRGF0YS5TdGF0ZUlEIHwgdXJpICVdO05leHRTdGF0ZUlEPVslIERhdGEuTmV4dFN0YXRlSUQgfCB1cmkgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkRlbGV0ZSB0aGlzIHN0YXRlIHRyYW5zaXRpb24iKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdHJhc2gtbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJEZWxldGUgdGhpcyBzdGF0ZSB0cmFuc2l0aW9uIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhdGVUcmFuc2l0aW9uRGVsZXRlQnV0dG9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJTdGF0ZVRyYW5zaXRpb25Sb3ciKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3U3RhdGVUcmFuc2l0aW9ucyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YXRlVHJhbnNpdGlvbkFkZCIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBZGQgYSBuZXcgc3RhdGUgdHJhbnNpdGlvbiBmb3IiKSB8IGh0bWwgJV0gWyUgRGF0YS5DbGFzcyB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iSVRTTVN0YXRlTWFjaGluZUFkZCIgY2xhc3M9IlZhbGlkYXRlIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iICAgIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iWyUgRGF0YS5BY3Rpb24gfCBodG1sICVdQWN0aW9uIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ2xhc3MiICAgICB2YWx1ZT0iWyUgRGF0YS5DbGFzcyB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDb250aW51ZUFmdGVyU2F2ZSIgaWQ9IkNvbnRpbnVlQWZ0ZXJTYXZlIiB2YWx1ZT0iIi8+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU3RhdGVJRCI+WyUgVHJhbnNsYXRlKCJTdGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlN0YXRlU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTdGF0ZUlERXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlBsZWFzZSBzZWxlY3QgYSBzdGF0ZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTdGF0ZUlEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlBsZWFzZSBzZWxlY3QgYSBzdGF0ZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJOZXh0IHN0YXRlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmV4dFN0YXRlU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOZXh0U3RhdGVJREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOZXh0U3RhdGVJRFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJQbGVhc2Ugc2VsZWN0IGEgbmV4dCBzdGF0ZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIFNhdmVCdXR0b25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgaWQ9IlN1Ym1pdEFuZENvbnRpbnVlIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUgYW5kIGZpbmlzaCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhdGVUcmFuc2l0aW9uQWRkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhdGVUcmFuc2l0aW9uVXBkYXRlIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkVkaXQgYSBzdGF0ZSB0cmFuc2l0aW9uIGZvciIpIHwgaHRtbCAlXSBbJSBEYXRhLkNsYXNzIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBuYW1lPSJJVFNNU3RhdGVNYWNoaW5lVXBkYXRlIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iICAgICAgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iICAgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXUFjdGlvbiIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNsYXNzIiAgICAgICB2YWx1ZT0iWyUgRGF0YS5DbGFzcyB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdGF0ZUlEIiAgICAgdmFsdWU9IlslIERhdGEuU3RhdGVJRCB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJOZXh0U3RhdGVJRCIgdmFsdWU9IlslIERhdGEuTmV4dFN0YXRlSUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ29udGludWVBZnRlclNhdmUiIGlkPSJDb250aW51ZUFmdGVyU2F2ZSIgdmFsdWU9IiIvPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlN0YXRlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLlN0YXRlTmFtZSkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJOZXh0IHN0YXRlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmV4dFN0YXRlU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AgU2F2ZUJ1dHRvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiBpZD0iU3VibWl0QW5kQ29udGludWUiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSBhbmQgZmluaXNoIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJTdGF0ZVRyYW5zaXRpb25VcGRhdGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGF0ZVRyYW5zaXRpb25EZWxldGUiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uIikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+WyUgVHJhbnNsYXRlKERhdGEuU3RhdGVOYW1lKSB8IGh0bWwgJV08L3N0cm9uZz4gJiM4NTk0OwogICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+WyUgVHJhbnNsYXRlKERhdGEuTmV4dFN0YXRlTmFtZSkgfCBodG1sICVdPC9zdHJvbmc+PwogICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJDYWxsRm9yQWN0aW9uIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtDbGFzcz1bJSBEYXRhLkNsYXNzIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZSgiTm8iKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkNhbGxGb3JBY3Rpb24iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1bJSBEYXRhLkFjdGlvbiB8IHVyaSAlXUFjdGlvbjtDbGFzcz1bJSBEYXRhLkNsYXNzIHwgdXJpICVdO1N0YXRlSUQ9WyUgRGF0YS5TdGF0ZUlEIHwgdXJpICVdO05leHRTdGF0ZUlEPVslIERhdGEuTmV4dFN0YXRlSUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+WyUgVHJhbnNsYXRlKCJZZXMiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXRlVHJhbnNpdGlvbkRlbGV0ZSIpICVdCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlldyIpICVdCg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeAdd.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4iPgoKICAgIDxoMT5bJSBUcmFuc2xhdGUoIkFkZCBDaGFuZ2UiKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiSVRTTSBDaGFuZ2UiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9ImNvbXBvc2UiIGlkPSJDaGFuZ2VGb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiAgICB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlNhdmUiLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUaWNrZXRJRCIgIHZhbHVlPSJbJSBEYXRhLlRpY2tldElEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkZvcm1JRCIgICAgdmFsdWU9IlslIERhdGEuRm9ybUlEIHwgaHRtbCAlXSIvPgoKICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iQ2hhbmdlVGl0bGUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPiogPC9zcGFuPlslIFRyYW5zbGF0ZSgiVGl0bGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkNoYW5nZVRpdGxlIiBpZD0iQ2hhbmdlVGl0bGUiIHZhbHVlPSJbJSBEYXRhLkNoYW5nZVRpdGxlIHwgaHRtbCAlXSIgY2xhc3M9Ilc3NXBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuQ2hhbmdlVGl0bGVUaXRsZVNlcnZlckVycm9yIHwgaHRtbCAlXSIgbWF4bGVuZ3RoPSIyNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNoYW5nZVRpdGxlRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ2hhbmdlVGl0bGVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlJpY2hUZXh0MSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJEZXNjcmlwdGlvbiIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSaWNoVGV4dEZpZWxkIEZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iUmljaFRleHQxIiBjbGFzcz0iUmljaFRleHQgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5EZXNjcmlwdGlvbkludmFsaWQgJV0iIG5hbWU9IkRlc2NyaXB0aW9uIiByb3dzPSIxNSIgY29scz0iWyUgQ29uZmlnKCJUaWNrZXQ6OkZyb250ZW5kOjpUZXh0QXJlYU5vdGUiKSAlXSI+WyUgRGF0YS5EZXNjcmlwdGlvbiB8IGh0bWwgJV08L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmljaFRleHQxRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmljaFRleHQxU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUmljaFRleHQyIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkp1c3RpZmljYXRpb24iKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUmljaFRleHRGaWVsZCBGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9IlJpY2hUZXh0MiIgY2xhc3M9IlJpY2hUZXh0IFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuSnVzdGlmaWNhdGlvbkludmFsaWQgJV0iIG5hbWU9Ikp1c3RpZmljYXRpb24iIHJvd3M9IjE1IiBjb2xzPSJbJSBDb25maWcoIlRpY2tldDo6RnJvbnRlbmQ6OlRleHRBcmVhTm90ZSIpICVdIj5bJSBEYXRhLkp1c3RpZmljYXRpb24gfCBodG1sICVdPC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlJpY2hUZXh0MkVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlJpY2hUZXh0MlNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkNhdGVnb3J5SUQiPlslIFRyYW5zbGF0ZSgiQ2F0ZWdvcnkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5DYXRlZ29yeVNlbGVjdGlvblN0cmluZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ2F0ZWdvcnlJRFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnB1dCBpbnZhbGlkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iSW1wYWN0SUQiPlslIFRyYW5zbGF0ZSgiSW1wYWN0IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuSW1wYWN0U2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJJbXBhY3RJRFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnB1dCBpbnZhbGlkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUHJpb3JpdHlJRCI+WyUgVHJhbnNsYXRlKCJQcmlvcml0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByaW9yaXR5U2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQcmlvcml0eUlEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIklucHV0IGludmFsaWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJvdyBSb3dfRHluYW1pY0ZpZWxkX1slIERhdGEuTmFtZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5MYWJlbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZCIpICVdCgojIGV4YW1wbGUgb2YgaG93IHRvIHVzZSBmaXhlZCBkeW5hbWljIGZpZWxkIGJsb2NrcyBmb3IgY3VzdG9taXphdGlvbnMKIyBOb3RlOiBGaWVsZDEgYW5kIEZpZWxkMiBhcmUgdGhlIG5hbWVzIG9mIHRoZSBmaWVsZHMgYW5kIGhhZCB0byBiZSByZXBsYWNlZCB3aXRoIHRoZSBhY3R1YWwKIyBmaWVsZCBuYW1lcwojWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkX0ZpZWxkMSIpICVdCiMgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJvdyBSb3dfRHluYW1pY0ZpZWxkX1slIERhdGEuTmFtZSB8IGh0bWwgJV0iPgojICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5MYWJlbCAlXQojICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgojICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgojICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgojICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KI1slIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRfRmllbGQxIikgJV0KI1slIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZF9GaWVsZDIiKSAlXQojICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSb3cgUm93X0R5bmFtaWNGaWVsZF9bJSBEYXRhLk5hbWUgfCBodG1sICVdIj4KIyAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTGFiZWwgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZpZWxkICVdCiMgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KIyAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KIyAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiNbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkX0ZpZWxkMiIpICVdCgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVxdWVzdGVkVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlJlcXVlc3RlZCBEYXRlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUmVxdWVzdGVkVGltZVN0cmluZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmVxdWVzdGVkVGltZURheUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmVxdWVzdGVkVGltZUhvdXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVxdWVzdGVkVGltZUdlbmVyaWNTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSZXF1ZXN0ZWRUaW1lRGF5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZGF0ZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSZXF1ZXN0ZWRUaW1lSG91clNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVxdWVzdGVkVGltZUdlbmVyaWNTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJSZXF1ZXN0ZWRUaW1lIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkF0dGFjaG1lbnRVcGxvYWQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJBdHRhY2htZW50cyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJTkNMVURFICJGb3JtRWxlbWVudHMvQXR0YWNobWVudExpc3QudHQiICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBdHRhY2htZW50VXBsb2FkIikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiBpZD0iU3VibWl0Q2hhbmdlQWRkIiBuYW1lPSJDaGFuZ2VBZGQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkNyZWF0ZSIpIHwgaHRtbCAlXSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJDcmVhdGUiKSB8IGh0bWwgJV0iPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jaGVjay1zcXVhcmUtbyI+PC9pPiBbJSBUcmFuc2xhdGUoIkNyZWF0ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeAddFromTemplate.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4iPgoKICAgIDxoMT5bJSBUcmFuc2xhdGUoIkFkZCBDaGFuZ2UiKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiU2VsZWN0IENoYW5nZSBUZW1wbGF0ZSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0idGVtcGxhdGUiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iICAgIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iQ3JlYXRlRnJvbVRlbXBsYXRlIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ2hhbmdlSUQiICB2YWx1ZT0iWyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUaWNrZXRJRCIgIHZhbHVlPSJbJSBEYXRhLlRpY2tldElEIHwgaHRtbCAlXSIvPgoKICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iVGVtcGxhdGVJRCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+KiA8L3NwYW4+WyUgVHJhbnNsYXRlKCJUZW1wbGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlRlbXBsYXRlU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUZW1wbGF0ZUlERXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGVtcGxhdGVJRFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJNb3ZlVGltZVR5cGUiPlslIFRyYW5zbGF0ZSgiVGltZSB0eXBlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTW92ZVRpbWVUeXBlU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJNb3ZlVGltZVR5cGVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCB0aW1lIHR5cGUuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIk5ldyB0aW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTW92ZVRpbWVTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgaWQ9IlN1Ym1pdEFkZFRlbXBsYXRlIiBhY2Nlc3NrZXk9ImciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSAoZykiIHR5cGU9InN1Ym1pdCIgbmFtZT0iQWRkVGVtcGxhdGUiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeCABTemplate.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9ImNvbXBvc2UiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgICAgICAgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iICAgIHZhbHVlPSJBZGRUZW1wbGF0ZSIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNoYW5nZUlEIiAgICAgdmFsdWU9IlslIERhdGEuQ2hhbmdlSUQgfCBodG1sICVdIiAvPgoKICAgIDxkaXYgY2xhc3M9IkxheW91dFBvcHVwIEFSSUFSb2xlTWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgPGgxIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSIpIHwgaHRtbCAlXSA6IFslIENvbmZpZygiSVRTTUNoYW5nZTo6SG9vayIpICVdOiBbJSBEYXRhLkNoYW5nZU51bWJlciAlXSBbJSBEYXRhLkNoYW5nZVRpdGxlIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNhdmUgQ2hhbmdlIENBQiBhcyB0ZW1wbGF0ZSIpIHwgaHRtbCAlXSA6IFslIENvbmZpZygiSVRTTUNoYW5nZTo6SG9vayIpICVdOiBbJSBEYXRhLkNoYW5nZU51bWJlciAlXSBbJSBEYXRhLkNoYW5nZVRpdGxlIHwgaHRtbCAlXQogICAgICAgICAgICA8L2gxPgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCAmIGNsb3NlIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucztDaGFuZ2VJRD1bJSBEYXRhLkNoYW5nZUlEIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoImdvIHRvIGludm9sdmVkIHBlcnNvbnMgc2NyZWVuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50IFNwYWNpbmdCb3R0b20iPgogICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlRlbXBsYXRlTmFtZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJUZW1wbGF0ZSBOYW1lIikgfCBodG1sICVdOiA8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iVGVtcGxhdGVOYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJUZW1wbGF0ZU5hbWUiIHZhbHVlPSJbJSBEYXRhLlRlbXBsYXRlTmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJXNzVwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLlRlbXBsYXRlTmFtZVNlcnZlckVycm9yICVdIi8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUZW1wbGF0ZU5hbWVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZCIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGVtcGxhdGVOYW1lU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgTmFtZSIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkNvbW1lbnQiPiBbJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV06IDwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJDb21tZW50IiB0eXBlPSJ0ZXh0IiBuYW1lPSJDb21tZW50IiB2YWx1ZT0iWyUgRGF0YS5Db21tZW50IHwgaHRtbCAlXSIgY2xhc3M9Ilc3NXBjIi8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJWYWxpZElEIj4gWyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTogPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZhbGlkU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkZvb3RlciI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkiIHR5cGU9InN1Ym1pdCIgaWQ9IlN1Ym1pdEFkZFRlbXBsYXRlIiBuYW1lPSJBZGRUZW1wbGF0ZSIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQWRkIikgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Zvcm0+Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeCondition.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9ImNvbXBvc2UiPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iIi8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDaGFuZ2VJRCIgdmFsdWU9IlslIERhdGEuQ2hhbmdlSUQgfCBodG1sICVdIi8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDb25kaXRpb25JRCIgdmFsdWU9IlslIERhdGEuQ29uZGl0aW9uSUQgfCBodG1sICVdIi8+CgogICAgPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICA8aDE+CiAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk92ZXJ2aWV3IikgfCBodG1sICVdOiBbJSBUcmFuc2xhdGUoIkNvbmRpdGlvbnMgYW5kIEFjdGlvbnMiKSB8IGh0bWwgJV0gOiBbJSBDb25maWcoIklUU01DaGFuZ2U6Okhvb2siKSAlXTogWyUgRGF0YS5DaGFuZ2VOdW1iZXIgfCBodG1sICVdIFslIERhdGEuQ2hhbmdlVGl0bGUgfCB0cnVuY2F0ZSg3MCkgfCBodG1sICVdCiAgICAgICAgICAgIDwvaDE+CiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGEgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAiIGhyZWY9IiMiPlslIFRyYW5zbGF0ZSgiQ2FuY2VsICYgY2xvc2UiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgU3BhY2luZ1RvcFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzUwcGMiPlslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDZW50ZXIiPlslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNoYW5nZWQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2VudGVyIFcxMHBjIj5bJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBbJSBJRiBEYXRhLlZhbGlkSUQgIT0gMSVdY2xhc3M9IkludmFsaWQiWyUgRU5EICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQ7Q2hhbmdlSUQ9WyUgRGF0YS5DaGFuZ2VJRCB8IHVyaSAlXTtDb25kaXRpb25JRD1bJSBEYXRhLkNvbmRpdGlvbklEIHwgdXJpICVdIiBjbGFzcz0iQXNCbG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5Db21tZW50KSB8IHRydW5jYXRlKDIwKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iQ2VudGVyIj5bJSBUcmFuc2xhdGUoRGF0YS5WYWxpZCkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5DaGFuZ2VUaW1lIHwgTG9jYWxpemUoIlRpbWVMb25nIikgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iQ2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07Q2hhbmdlSUQ9WyUgRGF0YS5DaGFuZ2VJRCB8IHVyaSAlXTtDb25kaXRpb25JRD1bJSBEYXRhLkNvbmRpdGlvbklEIHwgdXJpICVdO0RlbGV0ZUNvbmRpdGlvbklEOjpbJSBEYXRhLkNvbmRpdGlvbklEIHwgdXJpICVdPURlbGV0ZSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdIiBjbGFzcz0iRGVsZXRlQ29uZGl0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10cmFzaC1vIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJEZWxldGUgQ29uZGl0aW9uIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJMYXlvdXRHcmlkIFNwYWNpbmdUb3BTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlcxMDBwYyBSaWdodCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiQWRkIG5ldyBjb25kaXRpb24iKSB8IGh0bWwgJV0iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkFkZCIpIHwgaHRtbCAlXSIgbmFtZT0iQWRkQ29uZGl0aW9uIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQbHVzIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkFkZCBuZXcgY29uZGl0aW9uIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iRm9vdGVyIj48L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2Zvcm0+Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeConditionEdit.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGlkPSJOZXdDb25kaXRpb24iIG5hbWU9Ik5ld0NvbmRpdGlvbiIgY2xhc3M9IlZhbGlkYXRlIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlNhdmUiLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNoYW5nZUlEIiB2YWx1ZT0iWyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV0iLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNvbmRpdGlvbklEIiB2YWx1ZT0iWyUgRGF0YS5Db25kaXRpb25JRCB8IGh0bWwgJV0iLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkRlbGV0ZUV4cHJlc3Npb25JRCIgaWQ9IkRlbGV0ZUV4cHJlc3Npb25JRCIgdmFsdWU9IiIvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRGVsZXRlQWN0aW9uSUQiIGlkPSJEZWxldGVBY3Rpb25JRCIgdmFsdWU9IiIvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWRkRXhwcmVzc2lvbiIgYXV0b2NvbXBsZXRlPSJvZmYiIGlkPSJBZGRFeHByZXNzaW9uIiB2YWx1ZT0iIi8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBZGRBY3Rpb24iIGF1dG9jb21wbGV0ZT0ib2ZmIiBpZD0iQWRkQWN0aW9uIiB2YWx1ZT0iIi8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTYXZlIiBhdXRvY29tcGxldGU9Im9mZiIgaWQ9IlNhdmUiIHZhbHVlPSIiLz4KCiAgICA8ZGl2IGNsYXNzPSJMYXlvdXRQb3B1cCBBUklBUm9sZU1haW4iPgogICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgIDxoMT4KICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRWRpdCBDb25kaXRpb24iKSB8IGh0bWwgJV06IFslIENvbmZpZygiSVRTTUNoYW5nZTo6SG9vayIpICVdOiBbJSBEYXRhLkNoYW5nZU51bWJlciB8IGh0bWwgJV0gWyUgRGF0YS5DaGFuZ2VUaXRsZSB8IHRydW5jYXRlKDcwKSB8IGh0bWwgJV0KICAgICAgICAgICAgPC9oMT4KICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uO0NoYW5nZUlEPVslIERhdGEuQ2hhbmdlSUQgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQmFjayIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIiBocmVmPSIjIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCAmIGNsb3NlIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJDb25kaXRpb24iKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWwiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTmFtZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+KiA8L3NwYW4+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iTmFtZSIgbmFtZT0iTmFtZSIgdmFsdWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkludmFsaWROYW1lIHwgaHRtbCAlXSBbJSBEYXRhLkR1cGxpY2F0ZU5hbWUgfCBodG1sICVdIiBtYXhsZW5ndGg9IjI1MCIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5hbWVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiID48cD5bJSBUcmFuc2xhdGUoIk5lZWQgYSB2YWxpZCBuYW1lLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW52YWxpZE5hbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJBIHZhbGlkIG5hbWUgaXMgbmVlZGVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkludmFsaWROYW1lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRHVwbGljYXRlTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOYW1lU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkR1cGxpY2F0ZSBuYW1lOiIpIHwgaHRtbCAlXSAnWyUgRGF0YS5OYW1lIHwgaHRtbCAlXScuIFslIFRyYW5zbGF0ZSgiVGhpcyBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGNvbmRpdGlvbi4iKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEdXBsaWNhdGVOYW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIk1hdGNoaW5nIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSJFeHByZXNzaW9uQ29uanVuY3Rpb24iIHR5cGU9InJhZGlvIiB2YWx1ZT0iYW55IiBbJSBEYXRhLmFueXNlbGVjdGVkICVdIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFueSBleHByZXNzaW9uIChPUikiKSB8IGh0bWwgJV0iLz4gWyUgVHJhbnNsYXRlKCJBbnkgZXhwcmVzc2lvbiAoT1IpIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0iRXhwcmVzc2lvbkNvbmp1bmN0aW9uIiB0eXBlPSJyYWRpbyIgdmFsdWU9ImFsbCIgWyUgRGF0YS5hbGxzZWxlY3RlZCAlXSB0aXRsZT0iWyUgVHJhbnNsYXRlKCJBbGwgZXhwcmVzc2lvbnMgKEFORCkiKSB8IGh0bWwgJV0iLz4gWyUgVHJhbnNsYXRlKCJBbGwgZXhwcmVzc2lvbnMgKEFORCkiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlZhbGlkSUQiPlslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWxpZE9wdGlvblN0cmluZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICBmb3I9IkNvbW1lbnQiPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9IkNvbW1lbnQiIG5hbWU9IkNvbW1lbnQiIGNsYXNzPSJXNTBwYyIgcm93cz0iNSIgY29scz0iNjAiIG1heGxlbmd0aD0iMjUwIj5bJSBEYXRhLkNvbW1lbnQgfCBodG1sICVdPC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFeHByZXNzaW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBEYXRhVGFibGVOb0hpZ2hsaWdodCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlcxNXBjIj5bJSBUcmFuc2xhdGUoIk9iamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJXMjBwYyI+WyUgVHJhbnNsYXRlKCJTZWxlY3RvciIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJXMjBwYyI+WyUgVHJhbnNsYXRlKCJBdHRyaWJ1dGUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzIwcGMiPlslIFRyYW5zbGF0ZSgiT3BlcmF0b3IiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzIwcGMiPlslIFRyYW5zbGF0ZSgiVmFsdWUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzVwYyI+WyUgVHJhbnNsYXRlKCJEZWxldGUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFeHByZXNzaW9uT3ZlcnZpZXdSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFeHByZXNzaW9uT3ZlcnZpZXdSb3dFbGVtZW50T2JqZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5PYmplY3RPcHRpb25TdHJpbmcgJV08L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiRXhwcmVzc2lvbk92ZXJ2aWV3Um93RWxlbWVudE9iamVjdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFeHByZXNzaW9uT3ZlcnZpZXdSb3dFbGVtZW50U2VsZWN0b3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlNlbGVjdG9yT3B0aW9uU3RyaW5nICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkV4cHJlc3Npb25PdmVydmlld1Jvd0VsZW1lbnRTZWxlY3RvciIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFeHByZXNzaW9uT3ZlcnZpZXdSb3dFbGVtZW50QXR0cmlidXRlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BdHRyaWJ1dGVPcHRpb25TdHJpbmcgJV08L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiRXhwcmVzc2lvbk92ZXJ2aWV3Um93RWxlbWVudEF0dHJpYnV0ZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cHJlc3Npb25PdmVydmlld1Jvd0VsZW1lbnRPcGVyYXRvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuT3BlcmF0b3JPcHRpb25TdHJpbmcgJV08L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiRXhwcmVzc2lvbk92ZXJ2aWV3Um93RWxlbWVudE9wZXJhdG9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkV4cHJlc3Npb25JRC1bJSBEYXRhLkV4cHJlc3Npb25JRCB8IGh0bWwgJV0tQ29tcGFyZVZhbHVlLURpdiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cHJlc3Npb25PdmVydmlld1Jvd0VsZW1lbnRDb21wYXJlVmFsdWVUZXh0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iRXhwcmVzc2lvbklELVslIERhdGEuRXhwcmVzc2lvbklEIHwgaHRtbCAlXS1Db21wYXJlVmFsdWUiIG5hbWU9IkV4cHJlc3Npb25JRC1bJSBEYXRhLkV4cHJlc3Npb25JRCB8IGh0bWwgJV0tQ29tcGFyZVZhbHVlIiB2YWx1ZT0iWyUgRGF0YS5Db21wYXJlVmFsdWUgfCBodG1sICVdIiBjbGFzcz0iVzEwMHBjIiBtYXhsZW5ndGg9IjI1MCIgLz4KWyUgUmVuZGVyQmxvY2tFbmQoIkV4cHJlc3Npb25PdmVydmlld1Jvd0VsZW1lbnRDb21wYXJlVmFsdWVUZXh0IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRXhwcmVzc2lvbk92ZXJ2aWV3Um93RWxlbWVudENvbXBhcmVWYWx1ZVNlbGVjdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZhbHVlT3B0aW9uU3RyaW5nICVdClslIFJlbmRlckJsb2NrRW5kKCJFeHByZXNzaW9uT3ZlcnZpZXdSb3dFbGVtZW50Q29tcGFyZVZhbHVlU2VsZWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJEZWxldGVFeHByZXNzaW9uIiBpZD0iRGVsZXRlRXhwcmVzc2lvbklELVslIERhdGEuRXhwcmVzc2lvbklEIHwgdXJpICVdIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJEZWxldGUgRXhwcmVzc2lvbiIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdHJhc2gtbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiRGVsZXRlIEV4cHJlc3Npb24iKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkV4cHJlc3Npb25PdmVydmlld1JvdyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFeHByZXNzaW9uT3ZlcnZpZXdSb3dOb0RhdGEiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBFeHByZXNzaW9ucyBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkV4cHJlc3Npb25PdmVydmlld1Jvd05vRGF0YSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlcxMDBwYyBSaWdodCBTcGFjaW5nVG9wU21hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiQWRkIG5ldyBleHByZXNzaW9uIikgfCBodG1sICVdIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJBZGQgbmV3IGV4cHJlc3Npb24iKSB8IGh0bWwgJV0iIG5hbWU9IkFkZEV4cHJlc3Npb25CdXR0b24iIGlkPSJBZGRFeHByZXNzaW9uQnV0dG9uIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQbHVzIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkFkZCBuZXcgZXhwcmVzc2lvbiIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBEYXRhVGFibGVOb0hpZ2hsaWdodCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlcxNXBjIj5bJSBUcmFuc2xhdGUoIk9iamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJXMjBwYyI+WyUgVHJhbnNsYXRlKCJTZWxlY3RvciIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJXMjBwYyI+WyUgVHJhbnNsYXRlKCJBdHRyaWJ1dGUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzIwcGMiPlslIFRyYW5zbGF0ZSgiT3BlcmF0b3IiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzIwcGMiPlslIFRyYW5zbGF0ZSgiVmFsdWUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzVwYyI+WyUgVHJhbnNsYXRlKCJEZWxldGUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlld1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbk92ZXJ2aWV3Um93RWxlbWVudE9iamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuT2JqZWN0T3B0aW9uU3RyaW5nICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbk92ZXJ2aWV3Um93RWxlbWVudE9iamVjdCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbk92ZXJ2aWV3Um93RWxlbWVudFNlbGVjdG9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5TZWxlY3Rvck9wdGlvblN0cmluZyAlXTwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlld1Jvd0VsZW1lbnRTZWxlY3RvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbk92ZXJ2aWV3Um93RWxlbWVudEF0dHJpYnV0ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQXR0cmlidXRlT3B0aW9uU3RyaW5nICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbk92ZXJ2aWV3Um93RWxlbWVudEF0dHJpYnV0ZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbk92ZXJ2aWV3Um93RWxlbWVudE9wZXJhdG9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5PcGVyYXRvck9wdGlvblN0cmluZyAlXTwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlld1Jvd0VsZW1lbnRPcGVyYXRvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJBY3Rpb25JRC1bJSBEYXRhLkFjdGlvbklEIHwgaHRtbCAlXS1BY3Rpb25WYWx1ZS1EaXYiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlld1Jvd0VsZW1lbnRBY3Rpb25WYWx1ZVRleHQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJBY3Rpb25JRC1bJSBEYXRhLkFjdGlvbklEIHwgaHRtbCAlXS1BY3Rpb25WYWx1ZSIgbmFtZT0iQWN0aW9uSUQtWyUgRGF0YS5BY3Rpb25JRCB8IGh0bWwgJV0tQWN0aW9uVmFsdWUiIHZhbHVlPSJbJSBEYXRhLkFjdGlvblZhbHVlIHwgaHRtbCAlXSIgY2xhc3M9IlcxMDBwYyIgbWF4bGVuZ3RoPSIyNTAiIC8+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlld1Jvd0VsZW1lbnRBY3Rpb25WYWx1ZVRleHQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlld1Jvd0VsZW1lbnRBY3Rpb25WYWx1ZVNlbGVjdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZhbHVlT3B0aW9uU3RyaW5nICVdClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlld1Jvd0VsZW1lbnRBY3Rpb25WYWx1ZVNlbGVjdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJDZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iRGVsZXRlQWN0aW9uIiBpZD0iRGVsZXRlQWN0aW9uSUQtWyUgRGF0YS5BY3Rpb25JRCB8IHVyaSAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRGVsZXRlIEFjdGlvbiIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdHJhc2gtbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiRGVsZXRlIEFjdGlvbiIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uT3ZlcnZpZXdSb3ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uT3ZlcnZpZXdSb3dOb0RhdGEiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBBY3Rpb25zIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uT3ZlcnZpZXdSb3dOb0RhdGEiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXMTAwcGMgUmlnaHQgU3BhY2luZ1RvcFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFkZCBuZXcgYWN0aW9uIikgfCBodG1sICVdIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJBZGQgbmV3IGFjdGlvbiIpIHwgaHRtbCAlXSIgbmFtZT0iQWRkQWN0aW9uQnV0dG9uIiBpZD0iQWRkQWN0aW9uQnV0dG9uIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQbHVzIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkFkZCBuZXcgYWN0aW9uIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJGb290ZXIiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIGFjY2Vzc2tleT0iZyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIChnKSIgdHlwZT0ic3VibWl0IiBuYW1lPSJTYXZlQnV0dG9uIiBpZD0iU2F2ZUJ1dHRvbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jaGVjay1zcXVhcmUtbyI+PC9pPiBbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9mb3JtPgo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeDelete.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgVzMwMHB4Ij4KICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlRpdGxlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICA8cCBjbGFzcz0iVmFsdWUiPgogICAgICAgIFslIERhdGEuQ2hhbmdlVGl0bGUgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZmllbGRzZXQ+CjxwIGNsYXNzPSJTcGFjaW5nVG9wIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkRvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjaGFuZ2U/IikgfCBodG1sICVdCjwvcD4K</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeEdit.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KCiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMT5bJSBUcmFuc2xhdGUoIkVkaXQgJXMlcyIsIENvbmZpZygiSVRTTUNoYW5nZTo6SG9vayIpLCBEYXRhLkNoYW5nZU51bWJlcikgfCBodG1sICVdICZuZGFzaDsgWyUgRGF0YS5DaGFuZ2VUaXRsZSB8IGh0bWwgJV08L2gxPgogICAgICAgIDxwPgogICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iQ2FuY2VsQ2xvc2VQb3B1cCI+WyUgVHJhbnNsYXRlKCJDYW5jZWwgJiBjbG9zZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBuYW1lPSJjb21wb3NlIiBpZD0iQ2hhbmdlRm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiAgICB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iU2F2ZSIvPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ2hhbmdlSUQiICB2YWx1ZT0iWyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkZvcm1JRCIgICAgdmFsdWU9IlslIERhdGEuRm9ybUlEIHwgaHRtbCAlXSIvPgoKICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWxTbWFsbCI+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkNoYW5nZVRpdGxlIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qIDwvc3Bhbj5bJSBUcmFuc2xhdGUoIlRpdGxlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iQ2hhbmdlVGl0bGUiIGlkPSJDaGFuZ2VUaXRsZSIgdmFsdWU9IlslIERhdGEuQ2hhbmdlVGl0bGUgfCBodG1sICVdIiBjbGFzcz0iVzc1cGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5DaGFuZ2VUaXRsZVRpdGxlU2VydmVyRXJyb3IgfCBodG1sICVdIiBtYXhsZW5ndGg9IjI1MCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDaGFuZ2VUaXRsZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ2hhbmdlVGl0bGVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlJpY2hUZXh0MSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJEZXNjcmlwdGlvbiIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJpY2hUZXh0RmllbGQgRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9IlJpY2hUZXh0MSIgY2xhc3M9IlJpY2hUZXh0IFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuRGVzY3JpcHRpb25JbnZhbGlkICVdIiBuYW1lPSJEZXNjcmlwdGlvbiIgcm93cz0iMTUiIGNvbHM9IlslIENvbmZpZygiVGlja2V0OjpGcm9udGVuZDo6VGV4dEFyZWFOb3RlIikgJV0iPlslIERhdGEuRGVzY3JpcHRpb24gfCBodG1sICVdPC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmljaFRleHQxRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSaWNoVGV4dDFTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJSaWNoVGV4dDIiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiSnVzdGlmaWNhdGlvbiIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJpY2hUZXh0RmllbGQgRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9IlJpY2hUZXh0MiIgY2xhc3M9IlJpY2hUZXh0IFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuSnVzdGlmaWNhdGlvbkludmFsaWQgJV0iIG5hbWU9Ikp1c3RpZmljYXRpb24iIHJvd3M9IjE1IiBjb2xzPSJbJSBDb25maWcoIlRpY2tldDo6RnJvbnRlbmQ6OlRleHRBcmVhTm90ZSIpICVdIj5bJSBEYXRhLkp1c3RpZmljYXRpb24gfCBodG1sICVdPC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmljaFRleHQyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSaWNoVGV4dDJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDYXRlZ29yeUlEIj5bJSBUcmFuc2xhdGUoIkNhdGVnb3J5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNhdGVnb3J5U2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ2F0ZWdvcnlJRFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnB1dCBpbnZhbGlkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkltcGFjdElEIj5bJSBUcmFuc2xhdGUoIkltcGFjdCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5JbXBhY3RTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJJbXBhY3RJRFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnB1dCBpbnZhbGlkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlByaW9yaXR5SUQiPlslIFRyYW5zbGF0ZSgiUHJpb3JpdHkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUHJpb3JpdHlTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQcmlvcml0eUlEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIklucHV0IGludmFsaWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSb3cgUm93X0R5bmFtaWNGaWVsZF9bJSBEYXRhLk5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5MYWJlbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZpZWxkICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGQiKSAlXQoKIyBleGFtcGxlIG9mIGhvdyB0byB1c2UgZml4ZWQgZHluYW1pYyBmaWVsZCBibG9ja3MgZm9yIGN1c3RvbWl6YXRpb25zCiMgTm90ZTogRmllbGQxIGFuZCBGaWVsZDIgYXJlIHRoZSBuYW1lcyBvZiB0aGUgZmllbGRzIGFuZCBoYWQgdG8gYmUgcmVwbGFjZWQgd2l0aCB0aGUgYWN0dWFsCiMgZmllbGQgbmFtZXMKI1slIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZF9GaWVsZDEiKSAlXQojICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSb3cgUm93X0R5bmFtaWNGaWVsZF9bJSBEYXRhLk5hbWUgfCBodG1sICVdIj4KIyAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTGFiZWwgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZpZWxkICVdCiMgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KIyAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KIyAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiNbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkX0ZpZWxkMSIpICVdCiNbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGRfRmllbGQyIikgJV0KIyAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUm93IFJvd19EeW5hbWljRmllbGRfWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSI+CiMgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkxhYmVsICVdCiMgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5GaWVsZCAlXQojICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiMgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiMgICAgICAgICAgICAgICAgICAgIDwvZGl2PgojWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZF9GaWVsZDIiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQ2hhbmdlU3RhdGUiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkNoYW5nZVN0YXRlSUQiPlslIFRyYW5zbGF0ZSgiU3RhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU3RhdGVTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDaGFuZ2VTdGF0ZUlEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIklucHV0IGludmFsaWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkNoYW5nZVN0YXRlIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlJlcXVlc3RlZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlJlcXVlc3RlZCBEYXRlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlJlcXVlc3RlZFRpbWVTdHJpbmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmVxdWVzdGVkVGltZURheUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSZXF1ZXN0ZWRUaW1lSG91ckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZXF1ZXN0ZWRUaW1lR2VuZXJpY1NlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmVxdWVzdGVkVGltZURheVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSZXF1ZXN0ZWRUaW1lSG91clNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVxdWVzdGVkVGltZUdlbmVyaWNTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVxdWVzdGVkVGltZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBdHRhY2htZW50VXBsb2FkIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJBdHRhY2htZW50IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBJTkNMVURFICJGb3JtRWxlbWVudHMvQXR0YWNobWVudExpc3QudHQiICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQXR0YWNobWVudFVwbG9hZCIpICVdCgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIGlkPSJTdWJtaXRDaGFuZ2VFZGl0IiBhY2Nlc3NrZXk9ImciIG5hbWU9IkNoYW5nZUVkaXQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSAoZykiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgPC9mb3JtPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeHistory.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KCiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMT4KICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJIaXN0b3J5IG9mICVzJXMiLCBDb25maWcoIklUU01DaGFuZ2U6Okhvb2siKSwgRGF0YS5DaGFuZ2VOdW1iZXIpIHwgaHRtbCAlXSAmbmRhc2g7IFslIERhdGEuQ2hhbmdlVGl0bGUgfCB0cnVuY2F0ZSg2MCkgfCBodG1sICVdCiAgICAgICAgPC9oMT4KICAgICAgICA8cD4KICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAiPlslIFRyYW5zbGF0ZSgiQ2FuY2VsICYgY2xvc2UiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgPC9wPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkhpc3RvcnkgQ29udGVudCIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQWN0aW9uIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRGV0YWlscyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJXb3Jrb3JkZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVXNlciIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDcmVhdGV0aW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KClslIFJlbmRlckJsb2NrU3RhcnQoIlJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkhpc3RvcnlUeXBlIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB0aXRsZT0iWyUgRGF0YS5Db250ZW50IHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Db250ZW50IHwgdHJ1bmNhdGUoMTAwKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5vSGlzdG9yeVpvb20iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0KWyUgUmVuZGVyQmxvY2tFbmQoIk5vSGlzdG9yeVpvb20iKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTaG93SGlzdG9yeVpvb20iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRJVFNNWyUgRGF0YS5ab29tVHlwZSAlXUhpc3Rvcnlab29tO0hpc3RvcnlFbnRyeUlEPVslIERhdGEuSGlzdG9yeUVudHJ5SUQgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiU2hvdyBkZXRhaWxzIikgfCBodG1sICVdPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiU2hvd0hpc3Rvcnlab29tIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5vV29ya09yZGVyWm9vbSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLQpbJSBSZW5kZXJCbG9ja0VuZCgiTm9Xb3JrT3JkZXJab29tIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU2hvd1dvcmtPcmRlclpvb20iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJMaW5rSVRTTVdvcmtPcmRlclpvb21WaWV3IEFzQmxvY2siIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1dvcmtPcmRlcklEPVslIERhdGEuV29ya09yZGVySUQgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiU2hvdyB3b3Jrb3JkZXIiKSB8IGh0bWwgJV08L2E+ClslIFJlbmRlckJsb2NrRW5kKCJTaG93V29ya09yZGVyWm9vbSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVXNlckZ1bGxuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNyZWF0ZVRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJvdyIpICVdCgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iRm9vdGVyIj4KICAgIDwvZGl2Pgo8L2Rpdj4K</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeHistoryZoom.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KCiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMT4KICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJIaXN0b3J5IG9mICVzJXMiLCBDb25maWcoIklUU01DaGFuZ2U6Okhvb2siKSwgRGF0YS5DaGFuZ2VOdW1iZXIpIHwgaHRtbCAlXSAmbmRhc2g7IFslIERhdGEuQ2hhbmdlVGl0bGUgfCB0cnVuY2F0ZSg2MCkgfCBodG1sICVdCiAgICAgICAgPC9oMT4KICAgICAgICA8cD4KICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50SVRTTUNoYW5nZUhpc3Rvcnk7Q2hhbmdlSUQ9WyUgRGF0YS5DaGFuZ2VJRCB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKCJCYWNrIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgIDxhIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIiBocmVmPSIjIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCAmIGNsb3NlIikgfCBodG1sICVdPC9hPgogICAgICAgIDwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgJXMiLCBEYXRhLkhpc3RvcnlUeXBlKSB8IGh0bWwgJV08L2gyPgoKICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KCiAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIk1vZGlmaWVkIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGRuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiT2xkIFZhbHVlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgIFslIERhdGEuQ29udGVudE9sZCAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiTmV3IFZhbHVlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgIFslIERhdGEuQ29udGVudE5ldyAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQ2hhbmdlZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICBbJSBEYXRhLkNoYW5nZVRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQ2hhbmdlZCBieSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgdGl0bGU9IlslIERhdGEuVXNlckZ1bGxuYW1lIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICBbJSBEYXRhLlVzZXJGdWxsbmFtZSB8IGh0bWwgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgPC9maWVsZHNldD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iRm9vdGVyIj4KICAgIDwvZGl2Pgo8L2Rpdj4K</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeInvolvedPersons.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9ImNvbXBvc2UiIGNsYXNzPSJWYWxpZGF0ZSI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iU2F2ZSIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNoYW5nZUlEIiB2YWx1ZT0iWyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV0iIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJtaXQiIHZhbHVlPSIiIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBZGRDQUJUZW1wbGF0ZSIgdmFsdWU9IiIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik5ld1RlbXBsYXRlIiB2YWx1ZT0iIiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWRkQ0FCTWVtYmVyIiB2YWx1ZT0iIiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRGVsZXRlQ0FCTWVtYmVyIiB2YWx1ZT0iIiAvPgoKICAgIDxkaXYgY2xhc3M9IkxheW91dFBvcHVwIEFSSUFSb2xlTWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgPGgxIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkVkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzIiwgQ29uZmlnKCJJVFNNQ2hhbmdlOjpIb29rIiksIERhdGEuQ2hhbmdlTnVtYmVyKSB8IGh0bWwgJV0gJm5kYXNoOyBbJSBEYXRhLkNoYW5nZVRpdGxlIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkVkaXQgSW52b2x2ZWQgUGVyc29ucyBvZiAlcyVzIiwgQ29uZmlnKCJJVFNNQ2hhbmdlOjpIb29rIiksIERhdGEuQ2hhbmdlTnVtYmVyKSB8IGh0bWwgJV0gJm5kYXNoOyBbJSBEYXRhLkNoYW5nZVRpdGxlIHwgdHJ1bmNhdGUoNzApIHwgaHRtbCAlXQogICAgICAgICAgICA8L2gxPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iQ2FuY2VsQ2xvc2VQb3B1cCI+WyUgVHJhbnNsYXRlKCJDYW5jZWwgJiBjbG9zZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50IFNwYWNpbmdCb3R0b20iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJJbnZvbHZlZCBQZXJzb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkNoYW5nZU1hbmFnZXIiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiQ2hhbmdlTWFuYWdlciIpIHwgaHRtbCAlXTogPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJDaGFuZ2VNYW5hZ2VyIiBuYW1lPSJDaGFuZ2VNYW5hZ2VyIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iWyUgRGF0YS5DaGFuZ2VNYW5hZ2VyIHwgaHRtbCAlXSIgY2xhc3M9Ilc3NXBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuQ2hhbmdlTWFuYWdlckVycm9yICVdIFVzZXJTZWFyY2giIGRhdGEtYXV0b2NvbXBsZXRlZ3JvdXBzPSJpdHNtLWNoYW5nZS1tYW5hZ2VyIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJDaGFuZ2VNYW5hZ2VyU2VsZWN0ZWQiIG5hbWU9IkNoYW5nZU1hbmFnZXJTZWxlY3RlZCIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iWyUgRGF0YS5DaGFuZ2VNYW5hZ2VySUQgfCBodG1sICVdIiAvPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNoYW5nZU1hbmFnZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDaGFuZ2VNYW5hZ2VyU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlVzZXIgaW52YWxpZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkNoYW5nZUJ1aWxkZXIiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiQ2hhbmdlQnVpbGRlciIpIHwgaHRtbCAlXTogPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJDaGFuZ2VCdWlsZGVyIiBuYW1lPSJDaGFuZ2VCdWlsZGVyIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iWyUgRGF0YS5DaGFuZ2VCdWlsZGVyIHwgaHRtbCAlXSIgY2xhc3M9Ilc3NXBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuQ2hhbmdlQnVpbGRlckVycm9yICVdIFVzZXJTZWFyY2giIGRhdGEtYXV0b2NvbXBsZXRlZ3JvdXBzPSJpdHNtLWNoYW5nZS1idWlsZGVyIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJDaGFuZ2VCdWlsZGVyU2VsZWN0ZWQiIHR5cGU9ImhpZGRlbiIgbmFtZT0iQ2hhbmdlQnVpbGRlclNlbGVjdGVkIiB2YWx1ZT0iWyUgRGF0YS5DaGFuZ2VCdWlsZGVySUQgfCBodG1sICVdIiAvPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNoYW5nZUJ1aWxkZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDaGFuZ2VCdWlsZGVyU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlVzZXIgaW52YWxpZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiBhY2Nlc3NrZXk9ImciIG5hbWU9IlN1Ym1pdEJ1dHRvbiIgaWQ9IlN1Ym1pdEJ1dHRvbiIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIChnKSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgoKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkNoYW5nZSBBZHZpc29yeSBCb2FyZCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWwiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQ0FCVGVtcGxhdGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJUZW1wbGF0ZUlEIj4gWyUgVHJhbnNsYXRlKCJDQUIgVGVtcGxhdGUiKSB8IGh0bWwgJV06IDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ0FCVGVtcGxhdGVTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIG5hbWU9IkFkZENBQlRlbXBsYXRlQnV0dG9uIiBpZD0iQWRkQ0FCVGVtcGxhdGVCdXR0b24iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkFwcGx5IFRlbXBsYXRlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkFwcGx5IFRlbXBsYXRlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOZXdUZW1wbGF0ZUJ1dHRvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIG5hbWU9Ik5ld1RlbXBsYXRlQnV0dG9uIiBpZD0iTmV3VGVtcGxhdGVCdXR0b24iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIk5ld1RlbXBsYXRlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUgdGhpcyBDQUIgYXMgdGVtcGxhdGUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+ClslIFJlbmRlckJsb2NrRW5kKCJOZXdUZW1wbGF0ZUJ1dHRvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQ0FCVGVtcGxhdGUiKSAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3Q0FCTWVtYmVyIj4gWyUgVHJhbnNsYXRlKCJBZGQgdG8gQ0FCIikgfCBodG1sICVdOiA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Ik5ld0NBQk1lbWJlciIgbmFtZT0iTmV3Q0FCTWVtYmVyIiB0eXBlPSJ0ZXh0IiAgIHZhbHVlPSJbJSBEYXRhLk5ld0NBQk1lbWJlciB8IGh0bWwgJV0iIGNsYXNzPSJXNzVwYyBDQUJNZW1iZXJTZWFyY2ggWyUgRGF0YS5OZXdDQUJNZW1iZXJFcnJvciAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iTmV3Q0FCTWVtYmVyU2VsZWN0ZWQiIG5hbWU9Ik5ld0NBQk1lbWJlclNlbGVjdGVkIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJbJSBEYXRhLk5ld0NBQk1lbWJlcklEIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iTmV3Q0FCTWVtYmVyVHlwZSIgbmFtZT0iTmV3Q0FCTWVtYmVyVHlwZSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iWyUgRGF0YS5DQUJNZW1iZXJUeXBlIHwgaHRtbCAlXSIgLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOZXdDQUJNZW1iZXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVXNlciBpbnZhbGlkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIGlkPSJBZGRDQUJNZW1iZXJCdXR0b24iIG5hbWU9IkFkZENBQk1lbWJlckJ1dHRvbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQWRkIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkFkZCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJVc2VyU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBVc2VyIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkN1cnJlbnQgQ0FCIikgfCBodG1sICVdOjwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDQUJNZW1iZXJUYWJsZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlR5cGUiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJMb2dpbiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDZW50ZXIgTGFzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ0FCTWVtYmVyUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLlVzZXJUeXBlKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB0aXRsZT0iWyUgRGF0YS5Vc2VyRnVsbG5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Vc2VyRnVsbG5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkNlbnRlciBMYXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9IlslIERhdGEuSW50ZXJuYWxVc2VyVHlwZSAlXS1bJSBEYXRhLlVzZXJJRCB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXSIgY2xhc3M9IlRyYXNoQ2FuIERlbGV0ZUNBQk1lbWJlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdHJhc2gtbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJDQUJNZW1iZXJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrRW5kKCJDQUJNZW1iZXJUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iRm9vdGVyIj48L2Rpdj4KICAgIDwvZGl2Pgo8L2Zvcm0+Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeOverviewNavBar.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld05hdkJhciIpICVdCjxkaXYgY2xhc3M9Ik92ZXJ2aWV3Qm94IEFSSUFSb2xlTWFpbiBbJSBEYXRhLlZpZXcgfCBodG1sICVdIj4KICAgIDxoMT5bJSBUcmFuc2xhdGUoRGF0YS5UaXRsZU5hbWUpIHwgaHRtbCAlXTogWyUgVHJhbnNsYXRlKERhdGEuVGl0bGVWYWx1ZSkgfCBodG1sICVdPC9oMT4KCiAgICBbJSBEYXRhLkRhdGFJblRoZU1pZGRsZSAlXQoKICAgIDxkaXYgY2xhc3M9Ik92ZXJ2aWV3Q29udHJvbCIgaWQ9Ik92ZXJ2aWV3Q29udHJvbCI+CiAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udHJvbFJvdyI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3TmF2QmFyRmlsdGVyIikgJV0KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iVGFicyI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3TmF2QmFyRmlsdGVySXRlbSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3TmF2QmFyRmlsdGVySXRlbVNlbGVjdGVkIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IkFjdGl2ZSBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkZpbHRlckxpbmsgJV1GaWx0ZXI9WyUgRGF0YS5GaWx0ZXIgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZShEYXRhLk5hbWUpIHwgaHRtbCAlXTxzcGFuPlslIERhdGEuQ291bnQgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU2VsZWN0ZWQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld05hdkJhckZpbHRlckl0ZW1TZWxlY3RlZE5vdCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkZpbHRlckxpbmsgJV1GaWx0ZXI9WyUgRGF0YS5GaWx0ZXIgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZShEYXRhLk5hbWUpIHwgaHRtbCAlXTxzcGFuPlslIERhdGEuQ291bnQgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU2VsZWN0ZWROb3QiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld05hdkJhckZpbHRlckl0ZW1TcGxpdCIpICVdCiAgICAgICAgICAgICAgICAgICAgLQpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU3BsaXQiKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtIikgJV0KICAgICAgICAgICAgICAgIDwvdWw+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhckZpbHRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3TmF2QmFyUGFnZUJhY2siKSAlXQogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJUYWJzIj4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlkPSJDaGFuZ2VTZWFyY2giIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua0JhY2sgJV0iPlslIFRyYW5zbGF0ZSgiQ2hhbmdlIHNlYXJjaCBvcHRpb25zIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdOYXZCYXJQYWdlQmFjayIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZXh0U2V0dGluZ3MiKSAlXQogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJDb250ZXh0RnVuY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IkNvbnRleHRTZXR0aW5ncyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJTaG93Q29udGV4dFNldHRpbmdzRGlhbG9nIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJDb250ZXh0IFNldHRpbmdzIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1jb2ciPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZSgiQ29udGV4dCBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbnRleHRTZXR0aW5nc0RpYWxvZ0NvbnRhaW5lciIgY2xhc3M9IkhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGlkPSJDb250ZXh0U2V0dGluZ3NEaWFsb2ciPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJBZ2VudFByZWZlcmVuY2VzIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlVwZGF0ZSIvPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJHcm91cCIgdmFsdWU9IlslIERhdGEuR3JvdXAgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlJlZGlyZWN0VVJMIiB2YWx1ZT0iWyUgRGF0YS5SZXF1ZXN0ZWRVUkwgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlslIERhdGEuUHJlZmVyZW5jZXNLZXkgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoIkNoYW5nZXMgcGVyIHBhZ2UiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlBhZ2VTaG93blN0cmluZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZXh0U2V0dGluZ3MiKSAlXQoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkFjdGlvblJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJPdmVydmlld0FjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuQWN0aW9uUm93ICVdCiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJPdmVydmlld1pvb20iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld05hdkJhclZpZXdNb2RlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZVNlbGVjdGVkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJBY3RpdmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIG5hbWU9Ik92ZXJ2aWV3Q29udHJvbCIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07RmlsdGVyPVslIERhdGEuRmlsdGVyIHwgdXJpICVdO1ZpZXc9WyUgRGF0YS5WaWV3IHwgdXJpICVdO1slIERhdGEuTGlua0ZpbHRlciAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLk5hbWUpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuTmFtZVNob3J0KSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3TmF2QmFyVmlld01vZGVTZWxlY3RlZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3TmF2QmFyVmlld01vZGVOb3RTZWxlY3RlZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBuYW1lPSJPdmVydmlld0NvbnRyb2wiIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO0ZpbHRlcj1bJSBEYXRhLkZpbHRlciB8IHVyaSAlXTtWaWV3PVslIERhdGEuVmlldyB8IHVyaSAlXTtbJSBEYXRhLkxpbmtGaWx0ZXIgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5OYW1lKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLk5hbWVTaG9ydCkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhclZpZXdNb2RlTm90U2VsZWN0ZWQiKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iUGFnaW5hdGlvbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3TmF2QmFyUGFnZU5hdkJhciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUmVzdWx0TG9uZyAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlNpdGVOYXZCYXJMb25nICVdClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhclBhZ2VOYXZCYXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhckxlZnQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiMgc29ydCBvcmRlciBiYXIgaWYgbmVlZGVkCiAgICAgICAgICAgICAgICBbJSBEYXRhLlNvcnRPcmRlckJhciAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3TmF2QmFyIikgJV0K</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeOverviewSmall.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBpZD0iT3ZlcnZpZXdCb2R5IiBjbGFzcz0iT3ZlcnZpZXcgVGlja2V0TGlzdCI+CiAgICA8dGFibGUgY2xhc3M9IlRhYmxlU21hbGwiIHN1bW1hcnk9IkEgZ2VuZXJpYyBJVFNNIENoYW5nZSB0YWJsZSI+CiAgICAgICAgPHRoZWFkPgogICAgICAgICAgICA8dHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZVN0YXRlU2lnbmFsSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj5bJSBUcmFuc2xhdGUoIlN0YXRlIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENoYW5nZVN0YXRlU2lnbmFsSGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkV29ya09yZGVyU3RhdGVTaWduYWxIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZSgiU3RhdGUiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkV29ya09yZGVyU3RhdGVTaWduYWxIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDaGFuZ2VOdW1iZXJIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDaGFuZ2VOdW1iZXIgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1DaGFuZ2VOdW1iZXI7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIENvbmZpZygiSVRTTUNoYW5nZTo6SG9vayIpICVdPC9hPgogICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENoYW5nZU51bWJlckhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFdvcmtPcmRlck51bWJlckhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IldvcmtPcmRlck51bWJlciBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PVdvcmtPcmRlck51bWJlcjtPcmRlckJ5PVslIERhdGEuT3JkZXJCeSB8IHVyaSAlXSI+WyUgQ29uZmlnKCJJVFNNV29ya09yZGVyOjpIb29rIikgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkV29ya09yZGVyTnVtYmVySGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkV29ya09yZGVyVGl0bGVIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJXb3JrT3JkZXJUaXRsZSBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PVdvcmtPcmRlclRpdGxlO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoIldvcmtvcmRlciBUaXRsZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRXb3JrT3JkZXJUaXRsZUhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZVRpdGxlSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2hhbmdlVGl0bGUgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1DaGFuZ2VUaXRsZTtPcmRlckJ5PVslIERhdGEuT3JkZXJCeSB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKCJDaGFuZ2UgVGl0bGUiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlVGl0bGVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRXb3JrT3JkZXJBZ2VudEhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IldvcmtPcmRlckFnZW50SUQgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1Xb3JrT3JkZXJBZ2VudElEO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoIldvcmtvcmRlciBBZ2VudCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRXb3JrT3JkZXJBZ2VudEhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZUJ1aWxkZXJIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDaGFuZ2VCdWlsZGVySUQgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1DaGFuZ2VCdWlsZGVySUQ7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQ2hhbmdlIEJ1aWxkZXIiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlQnVpbGRlckhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZU1hbmFnZXJIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDaGFuZ2VCdWlsZGVySUQgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1DaGFuZ2VNYW5hZ2VySUQ7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQ2hhbmdlIE1hbmFnZXIiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlTWFuYWdlckhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFdvcmtPcmRlckNvdW50SGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aD48c3Bhbj5bJSBUcmFuc2xhdGUoIldvcmtvcmRlcnMiKSB8IGh0bWwgJV08L3NwYW4+PC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFdvcmtPcmRlckNvdW50SGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2hhbmdlU3RhdGVIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDaGFuZ2VTdGF0ZUlEIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rU29ydCAlXTtTb3J0Qnk9Q2hhbmdlU3RhdGVJRDtPcmRlckJ5PVslIERhdGEuT3JkZXJCeSB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKCJDaGFuZ2UgU3RhdGUiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlU3RhdGVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRXb3JrT3JkZXJTdGF0ZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IldvcmtPcmRlclN0YXRlSUQgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1Xb3JrT3JkZXJTdGF0ZUlEO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoIldvcmtvcmRlciBTdGF0ZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRXb3JrT3JkZXJTdGF0ZUhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFdvcmtPcmRlclR5cGVIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJXb3JrT3JkZXJUeXBlSUQgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1Xb3JrT3JkZXJUeXBlSUQ7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiV29ya29yZGVyIFR5cGUiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkV29ya09yZGVyVHlwZUhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENhdGVnb3J5SGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2F0ZWdvcnlJRCBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUNhdGVnb3J5SUQ7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQ2F0ZWdvcnkiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2F0ZWdvcnlIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRJbXBhY3RIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJJbXBhY3RJRCBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUltcGFjdElEO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoIkltcGFjdCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRJbXBhY3RIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRQcmlvcml0eUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlByaW9yaXR5SUQgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1Qcmlvcml0eUlEO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoIlByaW9yaXR5IikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFByaW9yaXR5SGVhZGVyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFNlcnZpY2VzSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aD48c3Bhbj5bJSBUcmFuc2xhdGUoIlNlcnZpY2VzIikgfCBodG1sICVdPC9zcGFuPjwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRTZXJ2aWNlc0hlYWRlciIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmREeW5hbWljRmllbGRIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoPjxzcGFuPlslIERhdGEuTGFiZWwgfCBUcmFuc2xhdGUgfCBodG1sICVdPC9zcGFuPjwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmREeW5hbWljRmllbGRIZWFkZXIiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkUmVxdWVzdGVkVGltZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlJlcXVlc3RlZFRpbWUgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1SZXF1ZXN0ZWRUaW1lO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoIlJlcXVlc3RlZCBUaW1lIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFJlcXVlc3RlZFRpbWVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRQbGFubmVkU3RhcnRUaW1lSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iUGxhbm5lZFN0YXJ0VGltZSBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PVBsYW5uZWRTdGFydFRpbWU7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiUGxhbm5lZCBTdGFydCBUaW1lIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFBsYW5uZWRTdGFydFRpbWVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRQbGFubmVkRW5kVGltZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlBsYW5uZWRFbmRUaW1lIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rU29ydCAlXTtTb3J0Qnk9UGxhbm5lZEVuZFRpbWU7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiUGxhbm5lZCBFbmQgVGltZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRQbGFubmVkRW5kVGltZUhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZEFjdHVhbFN0YXJ0VGltZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkFjdHVhbFN0YXJ0VGltZSBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUFjdHVhbFN0YXJ0VGltZTtPcmRlckJ5PVslIERhdGEuT3JkZXJCeSB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKCJBY3R1YWwgU3RhcnQgVGltZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRBY3R1YWxTdGFydFRpbWVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRBY3R1YWxFbmRUaW1lSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQWN0dWFsRW5kVGltZSBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUFjdHVhbEVuZFRpbWU7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQWN0dWFsIEVuZCBUaW1lIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZEFjdHVhbEVuZFRpbWVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDcmVhdGVUaW1lSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ3JlYXRlVGltZSBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUNyZWF0ZVRpbWU7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQ3JlYXRlZCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDcmVhdGVUaW1lSGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2hhbmdlVGltZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkNoYW5nZVRpbWUgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1DaGFuZ2VUaW1lO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoIkNoYW5nZWQiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlVGltZUhlYWRlciIpICVdCiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90aGVhZD4KICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5vRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IlslIERhdGEuVG90YWxDb2x1bW5zIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vRGF0YUZvdW5kTXNnIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkIikgJV0KICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDaGFuZ2VTdGF0ZVNpZ25hbCIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmxhZyBTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJbJSBEYXRhLkNoYW5nZVN0YXRlU2lnbmFsIHwgaHRtbCAlXSIgdGl0bGU9IlslIERhdGEuQ2hhbmdlU3RhdGUgfCBodG1sICVdIj5bJSBEYXRhLkNoYW5nZVN0YXRlIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDaGFuZ2VTdGF0ZVNpZ25hbCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFdvcmtPcmRlclN0YXRlU2lnbmFsIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGbGFnIFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IlslIERhdGEuV29ya09yZGVyU3RhdGVTaWduYWwgfCBodG1sICVdIiB0aXRsZT0iWyUgRGF0YS5Xb3JrT3JkZXJTdGF0ZSB8IGh0bWwgJV0iPlslIERhdGEuV29ya09yZGVyU3RhdGUgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFdvcmtPcmRlclN0YXRlU2lnbmFsIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2hhbmdlTnVtYmVyIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2hhbmdlTnVtYmVyTGlua1N0YXJ0IikgJV0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD1bJSBEYXRhLkNoYW5nZUlEIHwgdXJpICVdIiBjbGFzcz0iTWFzdGVyQWN0aW9uTGluayI+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDaGFuZ2VOdW1iZXJMaW5rU3RhcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNoYW5nZU51bWJlciB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2hhbmdlTnVtYmVyTGlua0VuZCIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlTnVtYmVyTGlua0VuZCIpICVdCiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlTnVtYmVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkV29ya09yZGVyTnVtYmVyIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkV29ya09yZGVyTnVtYmVyTGlua1N0YXJ0IikgJV0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRJVFNNV29ya09yZGVyWm9vbTtXb3JrT3JkZXJJRD1bJSBEYXRhLldvcmtPcmRlcklEIHwgdXJpICVdIiBjbGFzcz0iTWFzdGVyQWN0aW9uTGluayI+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRXb3JrT3JkZXJOdW1iZXJMaW5rU3RhcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNoYW5nZU51bWJlciB8IGh0bWwgJV0tWyUgRGF0YS5Xb3JrT3JkZXJOdW1iZXIgfCBodG1sICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFdvcmtPcmRlck51bWJlckxpbmtFbmQiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFdvcmtPcmRlck51bWJlckxpbmtFbmQiKSAlXQogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFdvcmtPcmRlck51bWJlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFdvcmtPcmRlclRpdGxlIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBEYXRhLldvcmtPcmRlclRpdGxlIHwgaHRtbCAlXSI+WyUgRGF0YS5Xb3JrT3JkZXJUaXRsZSB8IHRydW5jYXRlKDQwKSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRXb3JrT3JkZXJUaXRsZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZVRpdGxlIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2hhbmdlVGl0bGVMaW5rU3RhcnQiKSAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPVslIERhdGEuQ2hhbmdlSUQgfCB1cmkgJV0iIHRpdGxlPSJbJSBEYXRhLkNoYW5nZVRpdGxlIHwgaHRtbCAlXSI+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDaGFuZ2VUaXRsZUxpbmtTdGFydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2hhbmdlVGl0bGUgfCB0cnVuY2F0ZSg0MCkgfCBodG1sICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZVRpdGxlTGlua0VuZCIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlVGl0bGVMaW5rRW5kIikgJV0KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDaGFuZ2VUaXRsZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFdvcmtPcmRlckFnZW50IikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBEYXRhLldvcmtPcmRlckFnZW50VXNlckZ1bGxuYW1lIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuV29ya09yZGVyQWdlbnRVc2VyRnVsbG5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkV29ya09yZGVyQWdlbnQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDaGFuZ2VCdWlsZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBEYXRhLkNoYW5nZUJ1aWxkZXJVc2VyRnVsbG5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5DaGFuZ2VCdWlsZGVyVXNlckZ1bGxuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENoYW5nZUJ1aWxkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDaGFuZ2VNYW5hZ2VyIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBEYXRhLkNoYW5nZU1hbmFnZXJVc2VyRnVsbG5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5DaGFuZ2VNYW5hZ2VyVXNlckZ1bGxuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENoYW5nZU1hbmFnZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRXb3JrT3JkZXJDb3VudCIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2VudGVyIj5bJSBEYXRhLldvcmtPcmRlckNvdW50IHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFdvcmtPcmRlckNvdW50IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2hhbmdlU3RhdGUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgVHJhbnNsYXRlKERhdGEuQ2hhbmdlU3RhdGUpIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENoYW5nZVN0YXRlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkV29ya09yZGVyU3RhdGUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgVHJhbnNsYXRlKERhdGEuV29ya09yZGVyU3RhdGUpIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFdvcmtPcmRlclN0YXRlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkV29ya09yZGVyVHlwZSIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBUcmFuc2xhdGUoRGF0YS5Xb3JrT3JkZXJUeXBlKSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRXb3JrT3JkZXJUeXBlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2F0ZWdvcnkiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgVHJhbnNsYXRlKERhdGEuQ2F0ZWdvcnkpIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENhdGVnb3J5IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkSW1wYWN0IikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2PlslIFRyYW5zbGF0ZShEYXRhLkltcGFjdCkgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkSW1wYWN0IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkUHJpb3JpdHkiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgVHJhbnNsYXRlKERhdGEuUHJpb3JpdHkpIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFByaW9yaXR5IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkU2VydmljZXMiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iSVRTTUZsYWciPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRTZXJ2aWNlc1N1YkVsZW1lbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5OYW1lKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmxhZyBTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iWyUgRGF0YS5DdXJJbmNpU2lnbmFsIHwgaHRtbCAlXSI+IlslIERhdGEuQ3VyckluY2lTdGF0ZSB8IGh0bWwgJV0iPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFNlcnZpY2VzU3ViRWxlbWVudCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFNlcnZpY2VzU3ViRWxlbWVudEVtcHR5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPiZuYnNwOzwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRTZXJ2aWNlc1N1YkVsZW1lbnRFbXB0eSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRTZXJ2aWNlcyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmREeW5hbWljRmllbGQiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRHluYW1pY0ZpZWxkUGxhaW4iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWx1ZSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkRHluYW1pY0ZpZWxkUGxhaW4iKSAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZER5bmFtaWNGaWVsZCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRSZXF1ZXN0ZWRUaW1lIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2PlslIERhdGEuUmVxdWVzdGVkVGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkUmVxdWVzdGVkVGltZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFBsYW5uZWRTdGFydFRpbWUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgRGF0YS5QbGFubmVkU3RhcnRUaW1lIHwgTG9jYWxpemUoIlRpbWVMb25nIikgJV08L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRQbGFubmVkU3RhcnRUaW1lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkUGxhbm5lZEVuZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgRGF0YS5QbGFubmVkRW5kVGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkUGxhbm5lZEVuZFRpbWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRBY3R1YWxTdGFydFRpbWUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgRGF0YS5BY3R1YWxTdGFydFRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXTwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZEFjdHVhbFN0YXJ0VGltZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZEFjdHVhbEVuZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgRGF0YS5BY3R1YWxFbmRUaW1lIHwgTG9jYWxpemUoIlRpbWVMb25nIikgJV08L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRBY3R1YWxFbmRUaW1lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ3JlYXRlVGltZSIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBEYXRhLkNyZWF0ZVRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXTwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENyZWF0ZVRpbWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDaGFuZ2VUaW1lIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2PlslIERhdGEuQ2hhbmdlVGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlVGltZSIpICVdCiAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmQiKSAlXQogICAgICAgIDwvdGJvZHk+CiAgICA8L3RhYmxlPgo8L2Rpdj4K</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeReset.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgVzMwMHB4Ij4KICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlRpdGxlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICA8cCBjbGFzcz0iVmFsdWUiPgogICAgICAgIFslIERhdGEuQ2hhbmdlVGl0bGUgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZmllbGRzZXQ+CjxwIGNsYXNzPSJTcGFjaW5nVG9wIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkRvIHlvdSByZWFsbHkgd2FudCB0byByZXNldCB0aGlzIGNoYW5nZT8iKSB8IGh0bWwgJV0KPC9wPgo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeSearch.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU2VhcmNoQUpBWCIpICVdCjxkaXYgY2xhc3M9IklubmVyQ29udGVudCI+CiAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgaWQ9IlNlYXJjaEZvcm0iPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIGlkPSJTZWFyY2hBY3Rpb24iLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTZWFyY2giLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJFbXB0eVNlYXJjaCIgdmFsdWU9IlslIERhdGEuRW1wdHlTZWFyY2ggfCBodG1sICVdIiBpZD0iRW1wdHlTZWFyY2giLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTaG93bkF0dHJpYnV0ZXMiIHZhbHVlPSIiIGlkPSJTaG93bkF0dHJpYnV0ZXMiPgogICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgPGxlZ2VuZD48c3Bhbj5bJSBUcmFuc2xhdGUoIlRlbXBsYXRlcyIpIHwgaHRtbCAlXTwvc3Bhbj48L2xlZ2VuZD4KICAgICAgICAgICAgPGxhYmVsIGZvcj0iU2VhcmNoUHJvZmlsZSI+WyUgVHJhbnNsYXRlKCJTZWFyY2ggdGVtcGxhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm9maWxlc1N0cmcgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlNlYXJjaFByb2ZpbGVBZGRCbG9jayI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Ik5hbWUiIGlkPSJTZWFyY2hQcm9maWxlQWRkTmFtZSIvPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiQ3JlYXRlIFRlbXBsYXRlIikgfCBodG1sICVdIiBpZD0iU2VhcmNoUHJvZmlsZUFkZEFjdGlvbiI+PHNwYW4+WyUgVHJhbnNsYXRlKCJBZGQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9IlNlYXJjaFByb2ZpbGVOZXciIGNsYXNzPSJDYWxsRm9yQWN0aW9uIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJDcmVhdGUgTmV3IikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkNyZWF0ZSBOZXciKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJTZWFyY2hQcm9maWxlRGVsZXRlIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBIaWRkZW4iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJEZWxldGUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJTZWFyY2hQcm9maWxlQXNMaW5rIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBIaWRkZW4iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlByb2ZpbGUgbGluayIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJQcm9maWxlIGxpbmsiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlNhdmUgY2hhbmdlcyBpbiB0ZW1wbGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlNhdmVQcm9maWxlIiBpZD0iU2F2ZVByb2ZpbGUiIHZhbHVlPSIxIi8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiIGlkPSJTZWFyY2hJbnNlcnQiPgogICAgICAgICAgICA8bGVnZW5kPjxzcGFuPlslIFRyYW5zbGF0ZSgiRmlsdGVycyBpbiB1c2UiKSB8IGh0bWwgJV08L3NwYW4+PC9sZWdlbmQ+CiAgICAgICAgPC9maWVsZHNldD4KICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgIDxsZWdlbmQ+PHNwYW4+WyUgVHJhbnNsYXRlKCJBZGRpdGlvbmFsIGZpbHRlcnMiKSB8IGh0bWwgJV08L3NwYW4+PC9sZWdlbmQ+CiAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkFkZCBhbm90aGVyIGF0dHJpYnV0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICBbJSBEYXRhLkF0dHJpYnV0ZXNTdHJnICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIk91dHB1dCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICBbJSBEYXRhLlJlc3VsdEZvcm1TdHJnICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZmllbGRzZXQ+CiAgICA8L2Zvcm0+CgogICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgSGlkZGVuIiBpZD0iU2VhcmNoQXR0cmlidXRlc0hpZGRlbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IkZ1bGx0ZXh0IiBpZD0iTGFiZWxGdWxsdGV4dCI+WyUgVHJhbnNsYXRlKCJGdWxsdGV4dCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkZ1bGx0ZXh0IiB2YWx1ZT0iWyUgRGF0YS5GdWxsdGV4dCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgLz4KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8bGFiZWwgZm9yPSJDaGFuZ2VOdW1iZXIiIGlkPSJMYWJlbENoYW5nZU51bWJlciI+WyUgQ29uZmlnKCJJVFNNQ2hhbmdlOjpIb29rIikgJV0gWyUgVHJhbnNsYXRlKCIoZS5nLiAxMCo1MTU1IG9yIDEwNTY1OCopIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iQ2hhbmdlTnVtYmVyIiB2YWx1ZT0iWyUgRGF0YS5DaGFuZ2VOdW1iZXIgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiLz4KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IkNoYW5nZVRpdGxlIiBpZD0iTGFiZWxDaGFuZ2VUaXRsZSI+WyUgVHJhbnNsYXRlKCJDaGFuZ2UgVGl0bGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJDaGFuZ2VUaXRsZSIgdmFsdWU9IlslIERhdGEuQ2hhbmdlVGl0bGUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiLz4KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IldvcmtPcmRlclRpdGxlIiBpZD0iTGFiZWxXb3JrT3JkZXJUaXRsZSI+WyUgVHJhbnNsYXRlKCJXb3Jrb3JkZXIgVGl0bGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJXb3JrT3JkZXJUaXRsZSIgdmFsdWU9IlslIERhdGEuV29ya09yZGVyVGl0bGUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiLz4KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IkNBQkFnZW50IiBpZD0iTGFiZWxDQUJBZ2VudCI+WyUgVHJhbnNsYXRlKCJDQUIgQWdlbnQiKSB8IGh0bWwgJV0gKFslIFRyYW5zbGF0ZSgiZS5nLiIpIHwgaHRtbCAlXSAyMzQyMzEpOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQ0FCQWdlbnRTZWxlY3RlZCIgdmFsdWU9IlslIERhdGEuQ0FCQWdlbnQgfCBodG1sICVdIiBuYW1lPSJDQUJBZ2VudCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJDQUJBZ2VudFNlYXJjaCIgdmFsdWU9IlslIERhdGEuQ0FCQWdlbnRTZWFyY2ggfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgSVRTTVVzZXJTZWFyY2giLz4KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IkNBQkN1c3RvbWVyIiBpZD0iTGFiZWxDQUJDdXN0b21lciI+WyUgVHJhbnNsYXRlKCJDQUIgQ3VzdG9tZXIiKSB8IGh0bWwgJV0gKFslIFRyYW5zbGF0ZSgiZS5nLiIpIHwgaHRtbCAlXSBVUzQyMzEpOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQ0FCQ3VzdG9tZXJTZWxlY3RlZCIgdmFsdWU9IlslIERhdGEuQ0FCQ3VzdG9tZXIgfCBodG1sICVdIiBuYW1lPSJDQUJDdXN0b21lciI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJDQUJDdXN0b21lclNlYXJjaCIgdmFsdWU9IlslIERhdGEuQ0FCQ3VzdG9tZXJTZWFyY2ggfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgSVRTTUN1c3RvbWVyU2VhcmNoIi8+CiAgICAgICAgICAgIDxhIGNsYXNzPSJSZW1vdmVCdXR0b24iIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbW92ZSB0aGlzIGVudHJ5IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8bGFiZWwgZm9yPSJEZXNjcmlwdGlvbiIgaWQ9IkxhYmVsRGVzY3JpcHRpb24iPlslIFRyYW5zbGF0ZSgiSVRTTSBDaGFuZ2UiKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJEZXNjcmlwdGlvbiIpIHwgaHRtbCAlXSAoWyUgVHJhbnNsYXRlKCJlLmcuIikgfCBodG1sICVdICJNYXIqaW4iIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0gIkJhdWUqIik6PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJEZXNjcmlwdGlvbiIgdmFsdWU9IlslIERhdGEuRGVzY3JpcHRpb24gfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiLz4KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9Ikp1c3RpZmljYXRpb24iIGlkPSJMYWJlbEp1c3RpZmljYXRpb24iPlslIFRyYW5zbGF0ZSgiSVRTTSBDaGFuZ2UiKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJKdXN0aWZpY2F0aW9uIikgfCBodG1sICVdIChbJSBUcmFuc2xhdGUoImUuZy4iKSB8IGh0bWwgJV0gIk1hcippbiIgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXSAiQmF1ZSoiKTo8L2xhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Ikp1c3RpZmljYXRpb24iIHZhbHVlPSJbJSBEYXRhLkp1c3RpZmljYXRpb24gfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiLz4KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IldvcmtPcmRlckluc3RydWN0aW9uIiBpZD0iTGFiZWxXb3JrT3JkZXJJbnN0cnVjdGlvbiI+WyUgVHJhbnNsYXRlKCJJVFNNIFdvcmtvcmRlciBJbnN0cnVjdGlvbiIpIHwgaHRtbCAlXSAoWyUgVHJhbnNsYXRlKCJlLmcuIikgfCBodG1sICVdICJNYXIqaW4iIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0gIkJhdWUqIik6PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJXb3JrT3JkZXJJbnN0cnVjdGlvbiIgdmFsdWU9IlslIERhdGEuV29ya09yZGVySW5zdHJ1Y3Rpb24gfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiLz4KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IldvcmtPcmRlclJlcG9ydCIgaWQ9IkxhYmVsV29ya09yZGVyUmVwb3J0Ij5bJSBUcmFuc2xhdGUoIklUU00gV29ya29yZGVyIFJlcG9ydCIpIHwgaHRtbCAlXSAoWyUgVHJhbnNsYXRlKCJlLmcuIikgfCBodG1sICVdICJNYXIqaW4iIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0gIkJhdWUqIik6PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJXb3JrT3JkZXJSZXBvcnQiIHZhbHVlPSJbJSBEYXRhLldvcmtPcmRlclJlcG9ydCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIvPgogICAgICAgICAgICA8YSBjbGFzcz0iUmVtb3ZlQnV0dG9uIiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1vdmUgdGhpcyBlbnRyeSIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIFslIERhdGEuTGFiZWwgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkIikgJV0KCiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IlByaW9yaXR5SURzIiBpZD0iTGFiZWxQcmlvcml0eUlEcyI+WyUgVHJhbnNsYXRlKCJJVFNNIENoYW5nZSBQcmlvcml0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgWyUgRGF0YS5DaGFuZ2VQcmlvcml0eVNlbGVjdGlvblN0cmluZyAlXQogICAgICAgICAgICA8YSBjbGFzcz0iUmVtb3ZlQnV0dG9uIiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1vdmUgdGhpcyBlbnRyeSIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgPGxhYmVsIGZvcj0iSW1wYWN0SURzIiBpZD0iTGFiZWxJbXBhY3RJRHMiPlslIFRyYW5zbGF0ZSgiSVRTTSBDaGFuZ2UgSW1wYWN0IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICBbJSBEYXRhLkNoYW5nZUltcGFjdFNlbGVjdGlvblN0cmluZyAlXQogICAgICAgICAgICA8YSBjbGFzcz0iUmVtb3ZlQnV0dG9uIiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1vdmUgdGhpcyBlbnRyeSIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgPGxhYmVsIGZvcj0iQ2F0ZWdvcnlJRHMiIGlkPSJMYWJlbENhdGVnb3J5SURzIj5bJSBUcmFuc2xhdGUoIkNoYW5nZSBDYXRlZ29yeSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgWyUgRGF0YS5DaGFuZ2VDYXRlZ29yeVNlbGVjdGlvblN0cmluZyAlXQogICAgICAgICAgICA8YSBjbGFzcz0iUmVtb3ZlQnV0dG9uIiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1vdmUgdGhpcyBlbnRyeSIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgPGxhYmVsIGZvcj0iQ2hhbmdlU3RhdGVJRHMiIGlkPSJMYWJlbENoYW5nZVN0YXRlSURzIj5bJSBUcmFuc2xhdGUoIkNoYW5nZSBTdGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgWyUgRGF0YS5DaGFuZ2VTdGF0ZVNlbGVjdGlvblN0cmluZyAlXQogICAgICAgICAgICA8YSBjbGFzcz0iUmVtb3ZlQnV0dG9uIiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1vdmUgdGhpcyBlbnRyeSIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgPGxhYmVsIGZvcj0iQ2hhbmdlTWFuYWdlcklEcyIgaWQ9IkxhYmVsQ2hhbmdlTWFuYWdlcklEcyI+WyUgVHJhbnNsYXRlKCJDaGFuZ2UgTWFuYWdlciIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgWyUgRGF0YS5DaGFuZ2VNYW5hZ2VyU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgIDxhIGNsYXNzPSJSZW1vdmVCdXR0b24iIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbW92ZSB0aGlzIGVudHJ5IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8bGFiZWwgZm9yPSJDaGFuZ2VCdWlsZGVySURzIiBpZD0iTGFiZWxDaGFuZ2VCdWlsZGVySURzIj5bJSBUcmFuc2xhdGUoIkNoYW5nZSBCdWlsZGVyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICBbJSBEYXRhLkNoYW5nZUJ1aWxkZXJTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IkNyZWF0ZUJ5IiBpZD0iTGFiZWxDcmVhdGVCeSI+WyUgVHJhbnNsYXRlKCJDcmVhdGVkIGJ5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICBbJSBEYXRhLkNyZWF0ZUJ5U2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgIDxhIGNsYXNzPSJSZW1vdmVCdXR0b24iIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbW92ZSB0aGlzIGVudHJ5IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8bGFiZWwgZm9yPSJXb3JrT3JkZXJTdGF0ZUlEcyIgaWQ9IkxhYmVsV29ya09yZGVyU3RhdGVJRHMiPlslIFRyYW5zbGF0ZSgiV29ya29yZGVyIFN0YXRlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICBbJSBEYXRhLldvcmtPcmRlclN0YXRlU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgIDxhIGNsYXNzPSJSZW1vdmVCdXR0b24iIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbW92ZSB0aGlzIGVudHJ5IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8bGFiZWwgZm9yPSJXb3JrT3JkZXJUeXBlSURzIiBpZD0iTGFiZWxXb3JrT3JkZXJUeXBlSURzIj5bJSBUcmFuc2xhdGUoIldvcmtvcmRlciBUeXBlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICBbJSBEYXRhLldvcmtPcmRlclR5cGVTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IldvcmtPcmRlckFnZW50SURzIiBpZD0iTGFiZWxXb3JrT3JkZXJBZ2VudElEcyI+WyUgVHJhbnNsYXRlKCJXb3Jrb3JkZXIgQWdlbnQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIFslIERhdGEuV29ya09yZGVyQWdlbnRJRFNlbGVjdGlvblN0cmluZyAlXQogICAgICAgICAgICA8YSBjbGFzcz0iUmVtb3ZlQnV0dG9uIiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1vdmUgdGhpcyBlbnRyeSIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIlRpbWVTZWxlY3Rpb24iKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLlByZWZpeCAlXVRpbWVQb2ludEZpZWxkIiBpZD0iTGFiZWxbJSBEYXRhLlByZWZpeCAlXVRpbWVQb2ludEZpZWxkIj5bJSBUcmFuc2xhdGUoRGF0YS5UaXRsZSkgfCBodG1sICVdIFslIFRyYW5zbGF0ZSgiKGJlZm9yZS9hZnRlcikiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlslIERhdGEuUHJlZml4ICVdVGltZVNlYXJjaFR5cGUiIHZhbHVlPSJUaW1lUG9pbnQiIFslIERhdGEuaXRlbSgiVGltZVNlYXJjaFR5cGU6OlRpbWVQb2ludCIpICVdLz4KICAgICAgICAgICAgWyUgRGF0YS5UaW1lUG9pbnRTdGFydCAlXSBbJSBEYXRhLlRpbWVQb2ludCAlXSBbJSBEYXRhLlRpbWVQb2ludEZvcm1hdCAlXQogICAgICAgICAgICA8YSBjbGFzcz0iUmVtb3ZlQnV0dG9uIiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1vdmUgdGhpcyBlbnRyeSIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgPGxhYmVsIGZvcj0iWyUgRGF0YS5QcmVmaXggJV1UaW1lU2xvdEZpZWxkIiBpZD0iTGFiZWxbJSBEYXRhLlByZWZpeCAlXVRpbWVTbG90RmllbGQiPlslIFRyYW5zbGF0ZShEYXRhLlRpdGxlKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCIoYmV0d2VlbikiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlslIERhdGEuUHJlZml4ICVdVGltZVNlYXJjaFR5cGUiIHZhbHVlPSJUaW1lU2xvdCIgWyUgRGF0YS5pdGVtKCJUaW1lU2VhcmNoVHlwZTo6VGltZVNsb3QiKSAlXS8+CiAgICAgICAgICAgIFslIERhdGEuVGltZVN0YXJ0ICVdIFslIFRyYW5zbGF0ZSgiYW5kIikgfCBodG1sICVdIFslIERhdGEuVGltZVN0b3AgJV0KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJUaW1lU2VsZWN0aW9uIikgJV0KCiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIFslIERhdGEuQXR0cmlidXRlc09yaWdTdHJnICVdCiAgICA8L2ZpZWxkc2V0Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9IkNvbnRlbnRGb290ZXIgQ2VudGVyIj4KICAgIDxidXR0b24gaWQ9IlNlYXJjaEZvcm1TdWJtaXQiIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHZhbHVlPSJSdW4gc2VhcmNoIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtc2VhcmNoIj48L2k+IFslIFRyYW5zbGF0ZSgiUnVuIHNlYXJjaCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KPC9kaXY+CgpbJSBSZW5kZXJCbG9ja0VuZCgiU2VhcmNoQUpBWCIpICVdCg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeTemplate.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9ImNvbXBvc2UiIGlkPSJDb21wb3NlIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iICAgICAgIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgICAgdmFsdWU9IkFkZFRlbXBsYXRlIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNoYW5nZUlEIiAgICAgdmFsdWU9IlslIERhdGEuQ2hhbmdlSUQgfCBodG1sICVdIj4KCiAgICA8ZGl2IGNsYXNzPSJMYXlvdXRQb3B1cCBBUklBUm9sZU1haW4iPgogICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgIDxoMT5bJSBUcmFuc2xhdGUoIlNhdmUgQ2hhbmdlIGFzIFRlbXBsYXRlIikgfCBodG1sICVdOiBbJSBDb25maWcoIklUU01DaGFuZ2U6Okhvb2siKSAlXSBbJSBEYXRhLkNoYW5nZU51bWJlciAlXTogWyUgRGF0YS5DaGFuZ2VUaXRsZSB8IGh0bWwgJV08L2gxPgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCAmIGNsb3NlIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlRlbXBsYXRlTmFtZSI+WyUgVHJhbnNsYXRlKCJUZW1wbGF0ZSBOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJUZW1wbGF0ZU5hbWUiIG5hbWU9IlRlbXBsYXRlTmFtZSIgdmFsdWU9IlslIERhdGEuVGVtcGxhdGVOYW1lIHwgaHRtbCAlXSIgY2xhc3M9Ilc3NXBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuVGVtcGxhdGVOYW1lSW52YWxpZCB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGVtcGxhdGVOYW1lRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIiA+PHA+WyUgVHJhbnNsYXRlKCJBIHRlbXBsYXRlIHNob3VsZCBoYXZlIGEgbmFtZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGVtcGxhdGVOYW1lU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkNvbW1lbnQiPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iQ29tbWVudCIgbmFtZT0iQ29tbWVudCIgdmFsdWU9IlslIERhdGEuQ29tbWVudCB8IGh0bWwgJV0iIGNsYXNzPSJXNzVwYyIgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlN0YXRlUmVzZXQiPlslIFRyYW5zbGF0ZSgiUmVzZXQgU3RhdGVzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGF0ZVJlc2V0U2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ3cml0ZVRlbXBsYXRlIikgJV0KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik92ZXJ3cml0ZVRlbXBsYXRlIj5bJSBUcmFuc2xhdGUoIk92ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuT3ZlcndyaXRlVGVtcGxhdGVTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcndyaXRlVGVtcGxhdGUiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRGVsZXRlQ2hhbmdlIikgJV0KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkRlbGV0ZUNoYW5nZSI+WyUgVHJhbnNsYXRlKCJEZWxldGUgb3JpZ2luYWwgY2hhbmdlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EZWxldGVDaGFuZ2VTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRGVsZXRlQ2hhbmdlIikgJV0KCiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJWYWxpZElEIj5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWxpZFNlbGVjdGlvblN0cmluZyAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkZvb3RlciI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgaWQ9IlN1Ym1pdEFkZFRlbXBsYXRlIiBhY2Nlc3NrZXk9ImciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSAoZykiIHR5cGU9InN1Ym1pdCIgbmFtZT0iQWRkVGVtcGxhdGUiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZm9ybT4K</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeTimeSlot.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9ImNvbXBvc2UiIGlkPSJNb3ZlVGltZVNsb3RGb3JtIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iICAgIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iTW92ZVRpbWVTbG90IiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ2hhbmdlSUQiICB2YWx1ZT0iWyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV0iIC8+CgogICAgPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICA8aDE+WyUgVHJhbnNsYXRlKCJNb3ZlIFRpbWUgU2xvdCIpIHwgaHRtbCAlXSBbJSBDb25maWcoIklUU01DaGFuZ2U6Okhvb2siKSAlXSBbJSBEYXRhLkNoYW5nZU51bWJlciAlXTwvaDE+CiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGEgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAiIGhyZWY9IiMiPlslIFRyYW5zbGF0ZSgiQ2FuY2VsICYgY2xvc2UiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbCI+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJNb3ZlVGltZVR5cGUiPlslIFRyYW5zbGF0ZSgiVGltZSB0eXBlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Nb3ZlVGltZVR5cGVTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIk5ldyB0aW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Nb3ZlVGltZVNlbGVjdGlvblN0cmluZyAlXQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik1vdmVUaW1lRGF5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkRhdGUgaW52YWxpZCEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTW92ZVRpbWVIb3VyU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkRhdGUgaW52YWxpZCEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJGb290ZXIiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIGlkPSJTdWJtaXRNb3ZlVGltZVNsb3QiIGFjY2Vzc2tleT0iZyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTW92ZSIpIHwgaHRtbCAlXSAoZykiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiTW92ZSIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJNb3ZlIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Zvcm0+Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMChangeZoom.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4iPgogICAgPGRpdiBjbGFzcz0iQ2xlYXJMZWZ0Ij48L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkhlYWRsaW5lIj4KICAgICAgICA8ZGl2IGNsYXNzPSJGbGFnIiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuQ2hhbmdlU3RhdGUpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJbJSBEYXRhLkNoYW5nZVN0YXRlU2lnbmFsIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuQ2hhbmdlU3RhdGUpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8aDEgdGl0bGU9IlslIENvbmZpZygiSVRTTUNoYW5nZTo6SG9vayIpICVdOiBbJSBEYXRhLkNoYW5nZU51bWJlciB8IGh0bWwgJV0gJm5kYXNoOyBbJSBEYXRhLkNoYW5nZVRpdGxlIHwgaHRtbCAlXSI+CiAgICAgICAgICAgIFslIENvbmZpZygiSVRTTUNoYW5nZTo6SG9vayIpICVdOiBbJSBEYXRhLkNoYW5nZU51bWJlciB8IGh0bWwgJV0gPHNwYW4+Jm1kYXNoOzwvc3Bhbj4gWyUgRGF0YS5DaGFuZ2VUaXRsZSB8IHRydW5jYXRlKDcwKSB8IGh0bWwgJV0KICAgICAgICA8L2gxPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJMYXN0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNob3cgb3IgaGlkZSB0aGUgY29udGVudCIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iPjwvaT48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQ2hhbmdlIEluZm9ybWF0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJNZXRhIikgJV0KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJDaGFuZ2UgU3RhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVmFsdWUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmxhZyBTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IlslIERhdGEuQ2hhbmdlU3RhdGVTaWduYWwgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5DaGFuZ2VTdGF0ZSkgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5DaGFuZ2VTdGF0ZSkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiUGxhbm5lZCBTdGFydCBUaW1lIikgfCBodG1sICVdOjwvbGFiZWw+ClslIFJlbmRlckJsb2NrU3RhcnQoIkVtcHR5UGxhbm5lZFN0YXJ0VGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9Ii0iPi08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbXB0eVBsYW5uZWRTdGFydFRpbWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQbGFubmVkU3RhcnRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLlBsYW5uZWRTdGFydFRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlBsYW5uZWRTdGFydFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJQbGFubmVkIEVuZCBUaW1lIikgfCBodG1sICVdOiA8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbXB0eVBsYW5uZWRFbmRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iLSI+LTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVtcHR5UGxhbm5lZEVuZFRpbWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQbGFubmVkRW5kVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5QbGFubmVkRW5kVGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiUGxhbm5lZEVuZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJBY3R1YWwgU3RhcnQgVGltZSIpIHwgaHRtbCAlXTogPC9sYWJlbD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW1wdHlBY3R1YWxTdGFydFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSItIj4tPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW1wdHlBY3R1YWxTdGFydFRpbWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3R1YWxTdGFydFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuQWN0dWFsU3RhcnRUaW1lIHwgTG9jYWxpemUoIlRpbWVMb25nIikgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJBY3R1YWxTdGFydFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJBY3R1YWwgRW5kIFRpbWUiKSB8IGh0bWwgJV06IDwvbGFiZWw+ClslIFJlbmRlckJsb2NrU3RhcnQoIkVtcHR5QWN0dWFsRW5kVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9Ii0iPi08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbXB0eUFjdHVhbEVuZFRpbWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3R1YWxFbmRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLkFjdHVhbEVuZFRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdHVhbEVuZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KClslIFJlbmRlckJsb2NrU3RhcnQoIlNob3dSZXF1ZXN0ZWRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJSZXF1ZXN0ZWQgRGF0ZSIpIHwgaHRtbCAlXTogPC9sYWJlbD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW1wdHlSZXF1ZXN0ZWRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iLSI+LTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVtcHR5UmVxdWVzdGVkVGltZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlcXVlc3RlZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuUmVxdWVzdGVkVGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVxdWVzdGVkVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgpbJSBSZW5kZXJCbG9ja0VuZCgiU2hvd1JlcXVlc3RlZFRpbWUiKSAlXQoKICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTaG93UGxhbm5lZEVmZm9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlBsYW5uZWQgRWZmb3J0IikgfCBodG1sICVdOiA8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbXB0eVBsYW5uZWRFZmZvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSItIj4tPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW1wdHlQbGFubmVkRWZmb3J0IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGxhbm5lZEVmZm9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5QbGFubmVkRWZmb3J0IHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlBsYW5uZWRFZmZvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJTaG93UGxhbm5lZEVmZm9ydCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTaG93QWNjb3VudGVkVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkFjY291bnRlZCBUaW1lIikgfCBodG1sICVdOiA8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbXB0eUFjY291bnRlZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSItIj4tPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW1wdHlBY2NvdW50ZWRUaW1lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWNjb3VudGVkVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5BY2NvdW50ZWRUaW1lIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjY291bnRlZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJTaG93QWNjb3VudGVkVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWxTbWFsbCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkNhdGVnb3J5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQ2F0ZWdvcnkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBUcmFuc2xhdGUoRGF0YS5DYXRlZ29yeSkgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJDYXRlZ29yeSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBhY3QiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJJbXBhY3QiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBUcmFuc2xhdGUoRGF0YS5JbXBhY3QpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW1wYWN0IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlByaW9yaXR5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiUHJpb3JpdHkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBUcmFuc2xhdGUoRGF0YS5Qcmlvcml0eSkgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQcmlvcml0eSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiMgc2hvdyBkeW5hbWljIGZpZWxkcwogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWxTbWFsbCBOYXJyb3ciPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKERhdGEuTGFiZWwpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGRMaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSI+PGEgaHJlZj0iWyUgRGF0YS5MaW5rIHwgSW50ZXJwb2xhdGUgJV0iIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iRHluYW1pY0ZpZWxkTGluayI+WyUgRGF0YS5WYWx1ZSAlXTwvYT48L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRMaW5rIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkUGxhaW4iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIj5bJSBEYXRhLlZhbHVlICVdPC9zcGFuPgpbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkUGxhaW4iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZCIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiMgZXhhbXBsZSBvZiBob3cgdG8gdXNlIGZpeGVkIGR5bmFtaWMgZmllbGQgYmxvY2tzIGZvciBjdXN0b21pemF0aW9ucwojIE5vdGU6IEZpZWxkMSBhbmQgRmllbGQyIGFyZSB0aGUgbmFtZXMgb2YgdGhlIGZpZWxkcyBhbmQgaGFkIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGFjdHVhbAojIGZpZWxkIG5hbWVzCiMgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWxTbWFsbCBOYXJyb3ciPgojWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkX0ZpZWxkMSIpICVdCiMgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKERhdGEuTGFiZWwpIHwgaHRtbCAlXTo8L2xhYmVsPgojICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj4KI1slIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZF9GaWVsZDFfTGluayIpICVdCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIj48YSBocmVmPSJbJSBEYXRhLkxpbmsgJV0iIHRhcmdldD0iX2JsYW5rIj5bJSBEYXRhLlZhbHVlICVdPC9hPjwvc3Bhbj4KI1slIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRfRmllbGQxX0xpbmsiKSAlXQojWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkX0ZpZWxkMV9QbGFpbiIpICVdCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIj5bJSBEYXRhLlZhbHVlICVdPC9zcGFuPgojWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZF9GaWVsZDFfUGxhaW4iKSAlXQojICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgojWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZF9GaWVsZDEiKSAlXQojICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgojICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwgTmFycm93Ij4KI1slIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZF9GaWVsZDIiKSAlXQojICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV06PC9sYWJlbD4KIyAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+CiNbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGRfRmllbGQyX0xpbmsiKSAlXQojICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSI+PGEgaHJlZj0iWyUgRGF0YS5MaW5rICVdIiB0YXJnZXQ9Il9ibGFuayI+WyUgRGF0YS5WYWx1ZSAlXTwvYT48L3NwYW4+CiNbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkX0ZpZWxkMl9MaW5rIikgJV0KI1slIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZF9GaWVsZDJfUGxhaW4iKSAlXQojICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSI+WyUgRGF0YS5WYWx1ZSAlXTwvc3Bhbj4KI1slIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRfRmllbGQyX1BsYWluIikgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KI1slIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRfRmllbGQyIikgJV0KIyAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQ2hhbmdlIEluaXRpYXRvcihzKSIpIHwgaHRtbCAlXTo8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbXB0eUNoYW5nZUluaXRpYXRvcnMiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSItIj4tPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW1wdHlDaGFuZ2VJbml0aWF0b3JzIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ2hhbmdlSW5pdGlhdG9yRXhpc3RzIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ2hhbmdlSW5pdGlhdG9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iWyUgRGF0YS5Vc2VyRnVsbG5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVXNlckZ1bGxuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3A+ClslIFJlbmRlckJsb2NrRW5kKCJDaGFuZ2VJbml0aWF0b3IiKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiQ2hhbmdlSW5pdGlhdG9yRXhpc3RzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWxTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkNoYW5nZSBNYW5hZ2VyIikgfCBodG1sICVdOjwvbGFiZWw+ClslIFJlbmRlckJsb2NrU3RhcnQoIkVtcHR5Q2hhbmdlTWFuYWdlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9Ii0iPi08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbXB0eUNoYW5nZU1hbmFnZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDaGFuZ2VNYW5hZ2VyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iWyUgRGF0YS5DaGFuZ2VNYW5hZ2VyVXNlckZ1bGxuYW1lIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNoYW5nZU1hbmFnZXJVc2VyRnVsbG5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNoYW5nZU1hbmFnZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQ2hhbmdlIEJ1aWxkZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iWyUgRGF0YS5DaGFuZ2VCdWlsZGVyVXNlckZ1bGxuYW1lIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNoYW5nZUJ1aWxkZXJVc2VyRnVsbG5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWxTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkNBQiIpIHwgaHRtbCAlXTo8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbXB0eUNBQiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9Ii0iPi08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbXB0eUNBQiIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkNBQiIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkNBQkFnZW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iWyUgRGF0YS5DQUJBZ2VudFVzZXJGdWxsbmFtZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5DQUJBZ2VudFVzZXJGdWxsbmFtZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ0FCQWdlbnQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDQUJDdXN0b21lciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9IlslIERhdGEuQ0FCQ3VzdG9tZXJVc2VyRnVsbG5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ0FCQ3VzdG9tZXJVc2VyRnVsbG5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNBQkN1c3RvbWVyIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkNBQiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgoKICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJDcmVhdGVkIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9IlslIERhdGEuQ3JlYXRlVGltZSB8IGh0bWwgJV0iPlslIERhdGEuQ3JlYXRlVGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJDcmVhdGVkIGJ5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9IlslIERhdGEuQ3JlYXRlVXNlckZ1bGxuYW1lIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNyZWF0ZVVzZXJGdWxsbmFtZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiTGFzdCBjaGFuZ2VkIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9IlslIERhdGEuQ2hhbmdlVGltZSB8IGh0bWwgJV0iPlslIERhdGEuQ2hhbmdlVGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJMYXN0IGNoYW5nZWQgYnkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iWyUgRGF0YS5DaGFuZ2VVc2VyRnVsbG5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2hhbmdlVXNlckZ1bGxuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkxpbmtUYWJsZVNpbXBsZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTGlua1RhYmxlU3RyZyAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiTGlua1RhYmxlU2ltcGxlIikgJV0KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgpbJSBSZW5kZXJCbG9ja0VuZCgiTWV0YSIpICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250cm9sUm93Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQWN0aW9uUm93Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9ucyI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk1lbnUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJNZW51SXRlbSIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1bJSBEYXRhLkxpbmsgfCBJbnRlcnBvbGF0ZSAlXSIgaWQ9Ik1lbnVbJSBEYXRhLk1lbnVJRCB8IGh0bWwgJV0iIGNsYXNzPSJbJSBEYXRhLk1lbnVDbGFzcyB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5EZXNjcmlwdGlvbikgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5OYW1lKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIk1lbnVJdGVtIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIk1lbnUiKSAlXQogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJXb3JrT3JkZXJHcmFwaCIpICVdCiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICBbJSBEYXRhLldvcmtPcmRlckdyYXBoICVdCiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiV29ya09yZGVyR3JhcGgiKSAlXQoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AgRXhwYW5kZWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj48YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTaG93IG9yIGhpZGUgdGhlIGNvbnRlbnQuIikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJJVFNNIENoYW5nZSIpIHwgaHRtbCAlXSAtIFslIERhdGEuQ2hhbmdlVGl0bGUgfCB0cnVuY2F0ZSg3MCkgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkJyb3dzZXJMaW5rTWVzc2FnZSIpICVdCiMgU2hvdyBpbmZvLCB0aGF0IGxpbmtzIHdpdGhpbiB0aGUgaWZyYW1lIG11c3QgYmUgY2xpY2tlZCB3aXRoIHN0cmcvY21kL3NoaWZ0IChkZXBlbmRpbmcgb24gdGhlIHVzZWQgYnJvd3NlciBhbmQgb3MpCiMgdG8gb3BlbiB0aGUgbGlua3MgaW4gYSBuZXcgd2luZG93IHdpdGhvdXQgdGhlIHNlY3VyaXR5IHBlcm1pc3Npb25zIGdpdmVuIHRvIHRoZSBpZnJhbWUKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSVRTTU1lc3NhZ2VCcm93c2VyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQ2xvc2UiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkNsb3NlIHRoaXMgbWVzc2FnZSIpIHwgaHRtbCAlXSIgaHJlZj0iIyI+PGkgY2xhc3M9ImZhIGZhLXRpbWVzIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkJyb3dzZXJMaW5rTWVzc2FnZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJVFNNQ29udGVudCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIERhdGEuRmllbGQgKSB8IGh0bWwgJV06IDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiMgVXNlIHRoZSBIVE1MNSBzYW5kYm94IGF0dHJpYnV0ZSB0byBwcmV2ZW50IHBsdWdpbnMgYW5kIHNjcmlwdHMgZnJvbSBiZWluZyBleGVjdXRlZCBpbiB0aGUgYnJvd3Nlci4KIyBVc2UgSUUncyAobm9uLXN0YW5kYXJkKSBzZWN1cml0eSBhdHRyaWJ1dGUgdG8gYWNoaWV2ZSBzb21ldGhpbmcgc2ltaWxhciBpbiBvbGRlciBJRSBicm93c2Vycy4gQXBwZW5kIHNlc3Npb24gaW5mbyB0byBVUkwgYmVjYXVzZSBJRSB3aWxsIG5vdCBzZW5kIGNvb2tpZXMuCiMgU2V0ICdhbGxvdy1wb3B1cHMnIHRvIGFsbG93IElFMTArIHRvIG9wZW4gbGlua3MuIHJlZjogaHR0cDovL3d3dy53My5vcmcvaHRtbC93Zy93aWtpL0NoYW5nZVByb3Bvc2Fscy9zYW5kYm94X2FsbG93X3BvcHVwcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1wb3B1cHMgYWxsb3ctcG9wdXBzLXRvLWVzY2FwZS1zYW5kYm94IiBbJSBEYXRhLk1TU2VjdXJpdHlSZXN0cmljdGVkICVdIGNsYXNzPSJGaWVsZCIgaWQ9IklmcmFtZUlUU01bJSBEYXRhLkZpZWxkIHwgaHRtbCAlXSIgb25sb2FkPSJpZiAodHlwZW9mIElUU00gPT09ICdvYmplY3QnICYmIHR5cGVvZiBJVFNNLkFnZW50ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Llpvb20gPT09ICdvYmplY3QnKSB7IElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5ab29tLklmcmFtZUF1dG9IZWlnaHQoJCgnI0lmcmFtZUlUU01bJSBEYXRhLkZpZWxkIHwgaHRtbCAlXScpKTsgfTsiIHNyYz0iIyIgZGF0YS1zcmM9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO1N1YmFjdGlvbj1IVE1MVmlldztDaGFuZ2VJRD1bJSBEYXRhLkNoYW5nZUlEIHwgaHRtbCAlXTtGaWVsZD1bJSBEYXRhLkZpZWxkIHwgaHRtbCAlXTtbJSBFbnYoIlNlc3Npb25OYW1lIikgfCBodG1sICVdPVslIEVudigiU2Vzc2lvbklEIikgfCBodG1sICVdIj48L2lmcmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIklUU01Db250ZW50IikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkF0dGFjaG1lbnQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBdHRhY2htZW50Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJEb3dubG9hZEF0dGFjaG1lbnQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkRvd25sb2FkIEF0dGFjaG1lbnQiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1Eb3dubG9hZEF0dGFjaG1lbnQ7RmlsZW5hbWU9WyUgRGF0YS5GaWxlbmFtZSB8IHVyaSAlXTtDaGFuZ2VJRD1bJSBEYXRhLkNoYW5nZUlEIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5GaWxlbmFtZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFslIERhdGEuRmlsZXNpemUgfCBMb2NhbGl6ZSgnRmlsZXNpemUnKSB8IGh0bWwgJV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgpbJSBSZW5kZXJCbG9ja0VuZCgiQXR0YWNobWVudFJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIkxpbmtUYWJsZUNvbXBsZXgiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIFslIERhdGEuTGlua1RhYmxlU3RyZyAlXQogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkxpbmtUYWJsZUNvbXBsZXgiKSAlXQogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMTemplateDelete.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgVzMwMHB4Ij4KICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgIDxwIGNsYXNzPSJWYWx1ZSI+CiAgICAgICAgWyUgRGF0YS5OYW1lIHwgaHRtbCAlXQogICAgPC9wPgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlR5cGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgIDxwIGNsYXNzPSJWYWx1ZSI+CiAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuVHlwZSkgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBEYXRhLkNvbW1lbnQgfCB0cnVuY2F0ZSg0MCkgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZmllbGRzZXQ+CjxwIGNsYXNzPSJTcGFjaW5nVG9wIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkRvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyB0ZW1wbGF0ZT8iKSB8IGh0bWwgJV0KPC9wPgo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMTemplateEdit.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9ImNvbXBvc2UiIGlkPSJDb21wb3NlIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iICAgICAgIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgICAgdmFsdWU9IlVwZGF0ZVRlbXBsYXRlIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlRlbXBsYXRlSUQiICAgdmFsdWU9IlslIERhdGEuVGVtcGxhdGVJRCB8IGh0bWwgJV0iPgoKICAgIDxkaXYgY2xhc3M9IkxheW91dFBvcHVwIEFSSUFSb2xlTWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgPGgxPlslIFRyYW5zbGF0ZSgiRWRpdCIpIHwgaHRtbCAlXSBbJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJUZW1wbGF0ZSIpIHwgaHRtbCAlXTogWyUgRGF0YS5OYW1lIHwgaHRtbCAlXTwvaDE+CiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAiPlslIFRyYW5zbGF0ZSgiQ2FuY2VsICYgY2xvc2UiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWwiPgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVGVtcGxhdGVOYW1lIj5bJSBUcmFuc2xhdGUoIlRlbXBsYXRlIE5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IlRlbXBsYXRlTmFtZSIgbmFtZT0iVGVtcGxhdGVOYW1lIiB2YWx1ZT0iWyUgRGF0YS5UZW1wbGF0ZU5hbWUgfCBodG1sICVdIiBjbGFzcz0iVzc1cGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5UZW1wbGF0ZU5hbWVJbnZhbGlkIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUZW1wbGF0ZU5hbWVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiID48cD5bJSBUcmFuc2xhdGUoIkEgdGVtcGxhdGUgc2hvdWxkIGhhdmUgYSBuYW1lISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUZW1wbGF0ZU5hbWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhlIHRlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ29tbWVudCI+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJDb21tZW50IiBuYW1lPSJDb21tZW50IiB2YWx1ZT0iWyUgRGF0YS5Db21tZW50IHwgaHRtbCAlXSIgY2xhc3M9Ilc3NXBjIiAvPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVmFsaWRJRCI+WyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuVmFsaWRTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJGb290ZXIiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIFByaW1hcnkiIGlkPSJzdWJtaXRFZGl0VGVtcGxhdGUiIGFjY2Vzc2tleT0iZyIgdHlwZT0ic3VibWl0IiBuYW1lPSJFZGl0VGVtcGxhdGUiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Zvcm0+Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMTemplateEditCAB.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9ImNvbXBvc2UiIGNsYXNzPSJWYWxpZGF0ZSI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iICAgICAgICAgICAgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iICAgICAgICAgdmFsdWU9IlNhdmUiIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUZW1wbGF0ZUlEIiAgICAgICAgdmFsdWU9IlslIERhdGEuVGVtcGxhdGVJRCB8IGh0bWwgJV0iIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUZW1wbGF0ZUNvbnRlbnQiICAgdmFsdWU9IlslIERhdGEuVGVtcGxhdGVDb250ZW50IHwgaHRtbCAlXSIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkRlbGV0ZUNBQk1lbWJlciIgICB2YWx1ZT0iIiAvPgoKICAgIDxkaXYgY2xhc3M9IkxheW91dFBvcHVwIEFSSUFSb2xlTWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgPGgxIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkVkaXQgQ0FCIFRlbXBsYXRlIikgfCBodG1sICVdIC0gWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkVkaXQgQ0FCIFRlbXBsYXRlIikgfCBodG1sICVdIC0gWyUgRGF0YS5OYW1lIHwgaHRtbCAlXQogICAgICAgICAgICA8L2gxPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iQ2FuY2VsQ2xvc2VQb3B1cCI+WyUgVHJhbnNsYXRlKCJDYW5jZWwgJiBjbG9zZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50IFNwYWNpbmdCb3R0b20iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJDaGFuZ2UgQWR2aXNvcnkgQm9hcmQiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld0NBQk1lbWJlciI+IFslIFRyYW5zbGF0ZSgiQWRkIHRvIENBQiIpIHwgaHRtbCAlXTogPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJOZXdDQUJNZW1iZXIiIG5hbWU9Ik5ld0NBQk1lbWJlciIgdHlwZT0idGV4dCIgdmFsdWU9IlslIERhdGEuTmV3Q0FCTWVtYmVyIHwgaHRtbCAlXSIgY2xhc3M9Ilc3NXBjIENBQk1lbWJlclNlYXJjaCBbJSBEYXRhLk5ld0NBQk1lbWJlckVycm9yICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJOZXdDQUJNZW1iZXJTZWxlY3RlZCIgbmFtZT0iTmV3Q0FCTWVtYmVyU2VsZWN0ZWQiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IlslIERhdGEuTmV3Q0FCTWVtYmVySUQgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJOZXdDQUJNZW1iZXJUeXBlIiBuYW1lPSJOZXdDQUJNZW1iZXJUeXBlIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJbJSBEYXRhLkNBQk1lbWJlclR5cGUgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJBZGRDQUJNZW1iZXIiIG5hbWU9IkFkZENBQk1lbWJlciIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiAvPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5ld0NBQk1lbWJlclNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJVc2VyIGludmFsaWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCIgaWQ9IkJ0bkFkZENBQk1lbWJlciIgbmFtZT0iYnRuQWRkQ0FCTWVtYmVyIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJBZGQiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiQWRkIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlVzZXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIFVzZXIiKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQ3VycmVudCBDQUIiKSB8IGh0bWwgJV06PC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkNBQk1lbWJlclRhYmxlIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVHlwZSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkxvZ2luIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ0FCTWVtYmVyUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLlVzZXJUeXBlKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB0aXRsZT0iWyUgRGF0YS5Vc2VyRnVsbG5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Vc2VyRnVsbG5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkNlbnRlciBMYXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9IlslIERhdGEuSW50ZXJuYWxVc2VyVHlwZSAlXVslIERhdGEuVXNlcklEIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdIiBjbGFzcz0iVHJhc2hDYW4gRGVsZXRlQ0FCTWVtYmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10cmFzaC1vIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJEZWxldGUiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkNBQk1lbWJlclJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tFbmQoIkNBQk1lbWJlclRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCBTcGFjaW5nQm90dG9tIFNwYWNpbmdMZWZ0Ij4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCIgTmFtZT0iU3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iRm9vdGVyIj48L2Rpdj4KICAgIDwvZGl2Pgo8L2Zvcm0+Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMTemplateEditContent.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRWRpdENvbnRlbnREaWFsb2ciKSAlXQo8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBXMzAwcHgiPgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBEYXRhLk5hbWUgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiVHlwZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV0KICAgIDwvcD4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICA8cCBjbGFzcz0iVmFsdWUiPgogICAgICAgIFslIERhdGEuQ29tbWVudCB8IHRydW5jYXRlKDQwKSB8IGh0bWwgJV0KICAgIDwvcD4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPC9maWVsZHNldD4KClslIFJlbmRlckJsb2NrU3RhcnQoIkNoYW5nZVRlbXBsYXRlIikgJV0KPHAgY2xhc3M9IlNwYWNpbmdUb3AiPgogICAgWyUgVHJhbnNsYXRlKCJUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGNoYW5nZSBmcm9tIHRoaXMgdGVtcGxhdGUsIHNvIHlvdSBjYW4gZWRpdCBhbmQgc2F2ZSBpdC4iKSB8IGh0bWwgJV08YnIvPgogICAgWyUgVHJhbnNsYXRlKCJUaGUgbmV3IGNoYW5nZSB3aWxsIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdCBoYXMgYmVlbiBzYXZlZCBhcyB0ZW1wbGF0ZS4iKSB8IGh0bWwgJV0KPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ2hhbmdlVGVtcGxhdGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJXb3JrT3JkZXJUZW1wbGF0ZSIpICVdCjxwIGNsYXNzPSJTcGFjaW5nVG9wIj4KICAgIFslIFRyYW5zbGF0ZSgiVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyB3b3Jrb3JkZXIgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuIikgfCBodG1sICVdPGJyLz4KICAgIFslIFRyYW5zbGF0ZSgiQSB0ZW1wb3JhcnkgY2hhbmdlIHdpbGwgYmUgY3JlYXRlZCB3aGljaCBjb250YWlucyB0aGUgd29ya29yZGVyLiIpIHwgaHRtbCAlXTxici8+CiAgICBbJSBUcmFuc2xhdGUoIlRoZSB0ZW1wb3JhcnkgY2hhbmdlIGFuZCBuZXcgd29ya29yZGVyIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB3b3Jrb3JkZXIgaGFzIGJlZW4gc2F2ZWQgYXMgdGVtcGxhdGUuIikgfCBodG1sICVdPGJyLz4KPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiV29ya09yZGVyVGVtcGxhdGUiKSAlXQoKPHAgY2xhc3M9IlNwYWNpbmdUb3AgQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiRG8geW91IHdhbnQgdG8gcHJvY2VlZD8iKSB8IGh0bWwgJV0KPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRWRpdENvbnRlbnREaWFsb2ciKSAlXQo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMTemplateOverviewNavBar.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdOYXZCYXIiKSAlXQo8ZGl2IGNsYXNzPSJPdmVydmlld0JveCBBUklBUm9sZU1haW4iPgogICAgPGgxPlslIFRyYW5zbGF0ZShEYXRhLlRpdGxlTmFtZSkgfCBodG1sICVdOiBbJSBUcmFuc2xhdGUoRGF0YS5UaXRsZVZhbHVlKSB8IGh0bWwgJV08L2gxPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdOYXZCYXJNYWluIikgJV0KCiAgICA8aDE+WyUgVHJhbnNsYXRlKERhdGEuTWFpbk5hbWUpIHwgaHRtbCAlXTogWyUgRGF0YS5NYWluQ29udGVudCAlXTwvaDE+CgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdOYXZCYXJNYWluIikgJV0KCiAgICA8ZGl2IGNsYXNzPSJPdmVydmlld0NvbnRyb2wiIGlkPSJPdmVydmlld0NvbnRyb2wiPgogICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRyb2xSb3ciPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRmlsdGVyIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkFjdGlvblJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJPdmVydmlld0FjdGlvbnMiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld05hdkJhckZpbHRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25zIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU2VsZWN0ZWQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IkFjdGlvbkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5hbWU9Ik92ZXJ2aWV3Q29udHJvbCIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5GaWx0ZXJMaW5rICVdRmlsdGVyPVslIERhdGEuRmlsdGVyIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5OYW1lKSB8IGh0bWwgJV0gKFslIERhdGEuQ291bnQgfCBodG1sICVdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU2VsZWN0ZWQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld05hdkJhckZpbHRlckl0ZW1TZWxlY3RlZE5vdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iQWN0aW9uRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgbmFtZT0iT3ZlcnZpZXdDb250cm9sIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkZpbHRlckxpbmsgJV1GaWx0ZXI9WyUgRGF0YS5GaWx0ZXIgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLk5hbWUpIHwgaHRtbCAlXSAoWyUgRGF0YS5Db3VudCB8IGh0bWwgJV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhckZpbHRlckl0ZW1TZWxlY3RlZE5vdCIpICVdClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhckZpbHRlckl0ZW0iKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdWw+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhckZpbHRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJPdmVydmlld1pvb20iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld05hdkJhclZpZXdNb2RlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZVNlbGVjdGVkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJBY3RpdmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIG5hbWU9Ik92ZXJ2aWV3Q29udHJvbCIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07RmlsdGVyPVslIERhdGEuRmlsdGVyIHwgdXJpICVdO1ZpZXc9WyUgRGF0YS5WaWV3IHwgdXJpICVdO1slIERhdGEuTGlua0ZpbHRlciAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLk5hbWUpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuTmFtZVNob3J0KSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3TmF2QmFyVmlld01vZGVTZWxlY3RlZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3TmF2QmFyVmlld01vZGVOb3RTZWxlY3RlZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBuYW1lPSJPdmVydmlld0NvbnRyb2wiIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO0ZpbHRlcj1bJSBEYXRhLkZpbHRlciB8IHVyaSAlXTtWaWV3PVslIERhdGEuVmlldyB8IHVyaSAlXTtbJSBEYXRhLkxpbmtGaWx0ZXIgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5OYW1lKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLk5hbWVTaG9ydCkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhclZpZXdNb2RlTm90U2VsZWN0ZWQiKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iUGFnaW5hdGlvbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3TmF2QmFyUGFnZU5hdkJhciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUmVzdWx0TG9uZyAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlNpdGVOYXZCYXJMb25nICVdClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhclBhZ2VOYXZCYXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhckxlZnQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdOYXZCYXIiKSAlXQo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMTemplateOverviewSmall.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBpZD0iT3ZlcnZpZXdCb2R5IiBjbGFzcz0iT3ZlcnZpZXcgVGlja2V0TGlzdCI+CiAgICA8dGFibGUgY2xhc3M9IlRhYmxlU21hbGwiPgogICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgPHRyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRUZW1wbGF0ZUlESGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aD48c3Bhbj5bJSBUcmFuc2xhdGUoIlRlbXBsYXRlIElEIikgfCBodG1sICVdPC9zcGFuPjwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRUZW1wbGF0ZUlESGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkTmFtZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9Ik5hbWUgWyUgRGF0YS5Tb3J0TmFtZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDxhIG5hbWU9Ik92ZXJ2aWV3Q29udHJvbCIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rU29ydCAlXTtTb3J0Qnk9TmFtZTtPcmRlckJ5PVslIERhdGEuT3JkZXJCeU5hbWUgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmROYW1lSGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkVHlwZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlR5cGUgWyUgRGF0YS5Tb3J0VGVtcGxhdGVUeXBlSUQgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBuYW1lPSJPdmVydmlld0NvbnRyb2wiIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PVRlbXBsYXRlVHlwZUlEO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5VGVtcGxhdGVUeXBlSUQgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiVHlwZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRUeXBlSGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ29tbWVudEhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGg+PHNwYW4+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdPC9zcGFuPjwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDb21tZW50SGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkVmFsaWRIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJWYWxpZElEIFslIERhdGEuU29ydFZhbGlkSUQgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBuYW1lPSJPdmVydmlld0NvbnRyb2wiIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PVZhbGlkSUQ7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnlWYWxpZElEIHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFZhbGlkSGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRWRpdENvbnRlbnRIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDZW50ZXIgTGFzdCI+PHNwYW4+WyUgVHJhbnNsYXRlKCJFZGl0IENvbnRlbnQiKSB8IGh0bWwgJV08L3NwYW4+PC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZEVkaXRDb250ZW50SGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRGVsZXRlSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2VudGVyIExhc3QiPjxzcGFuPlslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdPC9zcGFuPjwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmREZWxldGVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDcmVhdGVCeUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGg+PHNwYW4+WyUgVHJhbnNsYXRlKCJDcmVhdGUgYnkiKSB8IGh0bWwgJV08L3NwYW4+PC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENyZWF0ZUJ5SGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ3JlYXRlVGltZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkNyZWF0ZVRpbWUgWyUgRGF0YS5Tb3J0Q3JlYXRlVGltZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDxhIG5hbWU9Ik92ZXJ2aWV3Q29udHJvbCIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rU29ydCAlXTtTb3J0Qnk9Q3JlYXRlVGltZTtPcmRlckJ5PVslIERhdGEuT3JkZXJCeUNyZWF0ZVRpbWUgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQ3JlYXRlIFRpbWUiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ3JlYXRlVGltZUhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZUJ5SGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aD48c3Bhbj5bJSBUcmFuc2xhdGUoIkNoYW5nZSBieSIpIHwgaHRtbCAlXTwvc3Bhbj48L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlQnlIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDaGFuZ2VUaW1lSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2hhbmdlVGltZSBbJSBEYXRhLlNvcnRDaGFuZ2VUaW1lIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPGEgbmFtZT0iT3ZlcnZpZXdDb250cm9sIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1DaGFuZ2VUaW1lO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5Q2hhbmdlVGltZSB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKCJDaGFuZ2UgVGltZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDaGFuZ2VUaW1lSGVhZGVyIikgJV0KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RoZWFkPgogICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9EYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iWyUgRGF0YS5Ub3RhbENvbHVtbnMgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9EYXRhRm91bmRNc2ciKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmQiKSAlXQogICAgICAgICAgICA8dHIgWyUgSUYgRGF0YS5WYWxpZElEICE9IDEgJV1jbGFzcz0iSW52YWxpZCJbJSBFTkQgJV0gaWQ9IlRlbXBsYXRlSURfWyUgRGF0YS5UZW1wbGF0ZUlEIHwgaHRtbCAlXSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFRlbXBsYXRlSUQiKSAlXQogICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLlRlbXBsYXRlSUQpIHwgaHRtbCAlXTwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRUZW1wbGF0ZUlEIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkTmFtZSIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50SVRTTVRlbXBsYXRlRWRpdDtUZW1wbGF0ZUlEPVslIERhdGEuVGVtcGxhdGVJRCB8IHVyaSAlXSIgdGl0bGU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0gKElEPVslIERhdGEuVGVtcGxhdGVJRCB8IGh0bWwgJV0pIiBjbGFzcz0iQXNCbG9jayBBc1BvcHVwIj5bJSBEYXRhLk5hbWUgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZE5hbWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRUeXBlIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV0gKElEPVslIERhdGEuVHlwZUlEIHwgaHRtbCAlXSkiPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRUeXBlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ29tbWVudCIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5Db21tZW50IHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ29tbWVudCB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDb21tZW50IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkVmFsaWQiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLlZhbGlkKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5WYWxpZCkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkVmFsaWQiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRWRpdENvbnRlbnQiKSAlXQogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJDZW50ZXIgTGFzdCI+CiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRWRpdCBDb250ZW50IikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgaWQ9IkVkaXRDb250ZW50VGVtcGxhdGVJRFslIERhdGEuVGVtcGxhdGVJRCB8IGh0bWwgJV0iIGNsYXNzPSJmYSBmYS1wZW5jaWwiPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiRWRpdCBDb250ZW50IikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRFZGl0Q29udGVudCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRFZGl0Q29udGVudENBQiIpICVdCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50SVRTTVRlbXBsYXRlRWRpdENBQjtUZW1wbGF0ZUlEPVslIERhdGEuVGVtcGxhdGVJRCB8IHVyaSAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRWRpdCBDb250ZW50IikgfCBodG1sICVdIiBjbGFzcz0iQXNCbG9jayBBc1BvcHVwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXBlbmNpbCI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJFZGl0IENvbnRlbnQiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZEVkaXRDb250ZW50Q0FCIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZERlbGV0ZSIpICVdCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkNlbnRlciBMYXN0Ij4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJEZWxldGUiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBpZD0iRGVsZXRlVGVtcGxhdGVJRFslIERhdGEuVGVtcGxhdGVJRCB8IGh0bWwgJV0iIGNsYXNzPSJmYSBmYS10cmFzaC1vIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9pPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmREZWxldGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDcmVhdGVCeSIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5DcmVhdGVCeVVzZXJGdWxsbmFtZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNyZWF0ZUJ5VXNlckZ1bGxuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENyZWF0ZUJ5IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ3JlYXRlVGltZSIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5DcmVhdGVUaW1lIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ3JlYXRlVGltZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDcmVhdGVUaW1lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2hhbmdlQnkiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuQ2hhbmdlQnlVc2VyRnVsbG5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5DaGFuZ2VCeVVzZXJGdWxsbmFtZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDaGFuZ2VCeSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZVRpbWUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuQ2hhbmdlVGltZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNoYW5nZVRpbWUgfCB0cnVuY2F0ZSg0MCkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlVGltZSIpICVdCiAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmQiKSAlXQogICAgICAgIDwvdGJvZHk+CiAgICA8L3RhYmxlPgo8L2Rpdj4K</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMWorkOrderAdd.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KCiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMT5bJSBUcmFuc2xhdGUoIkFkZCBXb3Jrb3JkZXIgdG8gJXMlcyIsIENvbmZpZygiSVRTTUNoYW5nZTo6SG9vayIpLCBEYXRhLkNoYW5nZU51bWJlcikgfCBodG1sICVdICZuZGFzaDsgWyUgRGF0YS5DaGFuZ2VUaXRsZSB8IGh0bWwgJV08L2gxPgogICAgICAgIDxwPgogICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iQ2FuY2VsQ2xvc2VQb3B1cCI+WyUgVHJhbnNsYXRlKCJDYW5jZWwgJiBjbG9zZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIldvcmtvcmRlciIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iY29tcG9zZSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgICAgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTYXZlIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ2hhbmdlSUQiICB2YWx1ZT0iWyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJGb3JtSUQiICAgIHZhbHVlPSJbJSBEYXRhLkZvcm1JRCB8IGh0bWwgJV0iLz4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IldvcmtPcmRlclRpdGxlIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qIDwvc3Bhbj5bJSBUcmFuc2xhdGUoIlRpdGxlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJXb3JrT3JkZXJUaXRsZSIgaWQ9IldvcmtPcmRlclRpdGxlIiB2YWx1ZT0iWyUgRGF0YS5Xb3JrT3JkZXJUaXRsZSB8IGh0bWwgJV0iIGNsYXNzPSJXNzVwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLldvcmtPcmRlclRpdGxlU2VydmVyRXJyb3IgfCBodG1sICVdIiBtYXhsZW5ndGg9IjI1MCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iV29ya09yZGVyVGl0bGVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJXb3JrT3JkZXJUaXRsZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUmljaFRleHQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiSW5zdHJ1Y3Rpb24iKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUmljaFRleHRGaWVsZCBGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9IlJpY2hUZXh0IiBjbGFzcz0iUmljaFRleHQgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5JbnN0cnVjdGlvbkludmFsaWQgJV0iIG5hbWU9Ikluc3RydWN0aW9uIiByb3dzPSIxNSIgY29scz0iWyUgQ29uZmlnKCJUaWNrZXQ6OkZyb250ZW5kOjpUZXh0QXJlYU5vdGUiKSAlXSI+WyUgRGF0YS5JbnN0cnVjdGlvbiB8IGh0bWwgJV08L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmljaFRleHRFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSaWNoVGV4dFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IldvcmtPcmRlclR5cGVJRCI+WyUgVHJhbnNsYXRlKCJXb3Jrb3JkZXIgVHlwZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLldvcmtPcmRlclR5cGVTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJXb3JrT3JkZXJUeXBlSURTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCB3b3Jrb3JkZXIgdHlwZS4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJvdyBSb3dfRHluYW1pY0ZpZWxkX1slIERhdGEuTmFtZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5MYWJlbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZCIpICVdCgojIGV4YW1wbGUgb2YgaG93IHRvIHVzZSBmaXhlZCBkeW5hbWljIGZpZWxkIGJsb2NrcyBmb3IgY3VzdG9taXphdGlvbnMKIyBOb3RlOiBGaWVsZDEgYW5kIEZpZWxkMiBhcmUgdGhlIG5hbWVzIG9mIHRoZSBmaWVsZHMgYW5kIGhhZCB0byBiZSByZXBsYWNlZCB3aXRoIHRoZSBhY3R1YWwKIyBmaWVsZCBuYW1lcwojWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkX0ZpZWxkMSIpICVdCiMgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSb3cgUm93X0R5bmFtaWNGaWVsZF9bJSBEYXRhLk5hbWUgfCBodG1sICVdIj4KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkxhYmVsICVdCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZpZWxkICVdCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgojICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiNbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkX0ZpZWxkMSIpICVdCiNbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGRfRmllbGQyIikgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJvdyBSb3dfRHluYW1pY0ZpZWxkX1slIERhdGEuTmFtZSB8IGh0bWwgJV0iPgojICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTGFiZWwgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiMgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KI1slIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRfRmllbGQyIikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlBsYW5uZWQgU3RhcnQgVGltZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlBsYW5uZWRTdGFydFRpbWVTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBsYW5uZWRTdGFydFRpbWVEYXlFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBsYW5uZWRTdGFydFRpbWVIb3VyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZGF0ZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIlBsYW5uZWRTdGFydFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUGxhbm5lZFN0YXJ0VGltZURheVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUGxhbm5lZFN0YXJ0VGltZUhvdXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlBsYW5uZWRTdGFydFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQbGFubmVkU3RhcnRUaW1lQmVmb3JlVGhhbkVuZFRpbWVTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQbGFubmVkU3RhcnRUaW1lRGF5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUGxhbm5lZFN0YXJ0VGltZUhvdXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQbGFubmVkU3RhcnRUaW1lQmVmb3JlVGhhbkVuZFRpbWVTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJQbGFubmVkIEVuZCBUaW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUGxhbm5lZEVuZFRpbWVTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBsYW5uZWRFbmRUaW1lRGF5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZGF0ZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQbGFubmVkRW5kVGltZUhvdXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGxhbm5lZEVuZFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUGxhbm5lZEVuZFRpbWVEYXlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBsYW5uZWRFbmRUaW1lSG91clNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUGxhbm5lZEVuZFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQbGFubmVkRW5kVGltZUJlZm9yZVRoYW5FbmRUaW1lU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUGxhbm5lZEVuZFRpbWVEYXlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQbGFubmVkRW5kVGltZUhvdXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQbGFubmVkRW5kVGltZUJlZm9yZVRoYW5FbmRUaW1lU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU2hvd1BsYW5uZWRFZmZvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJQbGFubmVkRWZmb3J0Ij5bJSBUcmFuc2xhdGUoIlBsYW5uZWQgRWZmb3J0IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJQbGFubmVkRWZmb3J0IiBpZD0iUGxhbm5lZEVmZm9ydCIgdmFsdWU9IlslIERhdGEuUGxhbm5lZEVmZm9ydCB8IGh0bWwgJV0iIGNsYXNzPSJXMTBwYyBWYWxpZGF0ZSBbJSBEYXRhLlBsYW5uZWRFZmZvcnRJbnZhbGlkIHwgaHRtbCAlXSIgbWF4bGVuZ3RoPSIxMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUGxhbm5lZEVmZm9ydEVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGZvcm1hdC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQbGFubmVkRWZmb3J0U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZm9ybWF0LiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlNob3dQbGFubmVkRWZmb3J0IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkF0dGFjaG1lbnRVcGxvYWQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJBdHRhY2htZW50IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElOQ0xVREUgIkZvcm1FbGVtZW50cy9BdHRhY2htZW50TGlzdC50dCIgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkF0dGFjaG1lbnRVcGxvYWQiKSAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIGlkPSJTdWJtaXRXb3JrT3JkZXJBZGQiIG5hbWU9IldvcmtPcmRlckFkZCIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiQ3JlYXRlIikgfCBodG1sICVdIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkNyZWF0ZSIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiQ3JlYXRlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMWorkOrderAddFromTemplate.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KCiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMT5bJSBUcmFuc2xhdGUoIkFkZCBXb3Jrb3JkZXIgdG8gJXMlcyIsIENvbmZpZygiSVRTTUNoYW5nZTo6SG9vayIpLCBEYXRhLkNoYW5nZU51bWJlcikgfCBodG1sICVdICZuZGFzaDsgWyUgRGF0YS5DaGFuZ2VUaXRsZSB8IGh0bWwgJV08L2gxPgogICAgICAgIDxwPgogICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iQ2FuY2VsQ2xvc2VQb3B1cCI+WyUgVHJhbnNsYXRlKCJDYW5jZWwgJiBjbG9zZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlNlbGVjdCBXb3Jrb3JkZXIgVGVtcGxhdGUiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0idGVtcGxhdGUiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iICAgIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iQ3JlYXRlRnJvbVRlbXBsYXRlIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ2hhbmdlSUQiICB2YWx1ZT0iWyUgRGF0YS5DaGFuZ2VJRCB8IGh0bWwgJV0iLz4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlRlbXBsYXRlSUQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPiogPC9zcGFuPlslIFRyYW5zbGF0ZSgiVGVtcGxhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5UZW1wbGF0ZVNlbGVjdGlvblN0cmluZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGVtcGxhdGVJREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRlbXBsYXRlSURTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTW92ZVRpbWVUeXBlIj5bJSBUcmFuc2xhdGUoIlRpbWUgdHlwZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk1vdmVUaW1lVHlwZVNlbGVjdGlvblN0cmluZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTW92ZVRpbWVUeXBlU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgdGltZSB0eXBlLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJOZXcgdGltZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk1vdmVUaW1lU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIGlkPSJTdWJtaXRUZW1wbGF0ZSIgbmFtZT0iU3VibWl0VGVtcGxhdGUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkNyZWF0ZSIpIHwgaHRtbCAlXSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJDcmVhdGUiKSB8IGh0bWwgJV0iPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jaGVjay1zcXVhcmUtbyI+PC9pPiBbJSBUcmFuc2xhdGUoIkNyZWF0ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgIDwvZGl2Pgo8L2Rpdj4K</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMWorkOrderAgent.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9ImNvbXBvc2UiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgICAgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTYXZlIiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iV29ya09yZGVySUQiIHZhbHVlPSJbJSBEYXRhLldvcmtPcmRlcklEIHwgaHRtbCAlXSIgLz4KCiAgICA8ZGl2IGNsYXNzPSJMYXlvdXRQb3B1cCBBUklBUm9sZU1haW4iPgogICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgIDxoMSB0aXRsZT0iWyUgVHJhbnNsYXRlKCJFZGl0IFdvcmtvcmRlciBBZ2VudCBvZiAlcyVzIiwgQ29uZmlnKCJJVFNNV29ya09yZGVyOjpIb29rIiksIERhdGEuQ2hhbmdlTnVtYmVyKSB8IGh0bWwgJV0gJm5kYXNoOyBbJSBEYXRhLldvcmtPcmRlck51bWJlciB8IGh0bWwgJV06IFslIERhdGEuV29ya09yZGVyVGl0bGUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRWRpdCBXb3Jrb3JkZXIgQWdlbnQgb2YgJXMlcyIsIENvbmZpZygiSVRTTVdvcmtPcmRlcjo6SG9vayIpLCBEYXRhLkNoYW5nZU51bWJlcikgfCBodG1sICVdICZuZGFzaDsgWyUgRGF0YS5Xb3JrT3JkZXJOdW1iZXIgfCBodG1sICVdOiBbJSBEYXRhLldvcmtPcmRlclRpdGxlIHwgdHJ1bmNhdGUoNzApIHwgaHRtbCAlXQogICAgICAgICAgICA8L2gxPgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCAmIGNsb3NlIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgU3BhY2luZ0JvdHRvbSI+CiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWwiPgoKICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlVzZXIiPiBbJSBUcmFuc2xhdGUoIldvcmtvcmRlciBBZ2VudCIpIHwgaHRtbCAlXTogPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IlVzZXIiIHR5cGU9InRleHQiIG5hbWU9IlVzZXIiIHZhbHVlPSJbJSBEYXRhLlVzZXIgfCBodG1sICVdIiBjbGFzcz0iVzc1cGMgWyUgRGF0YS5Vc2VyU2VydmVyRXJyb3IgJV0gVXNlclNlYXJjaCIgZGF0YS1hdXRvY29tcGxldGVncm91cHM9Iml0c20tY2hhbmdlIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJVc2VyU2VsZWN0ZWQiIHR5cGU9ImhpZGRlbiIgbmFtZT0iVXNlclNlbGVjdGVkIiB2YWx1ZT0iWyUgRGF0YS5Vc2VySUQgfCBodG1sICVdIiBjbGFzcz0iVXNlclNlYXJjaFNlbGVjdGVkIi8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJVc2VyU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgVXNlciIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJGb290ZXIiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIGFjY2Vzc2tleT0iZyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIChnKSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Zvcm0+Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMWorkOrderDelete.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9Xb3JrT3JkZXJJbkNvbmRpdGlvbiIpICVdCjxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIFczMDBweCI+CiAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJUaXRsZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBEYXRhLldvcmtPcmRlclRpdGxlIHwgaHRtbCAlXQogICAgPC9wPgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2ZpZWxkc2V0Pgo8cCBjbGFzcz0iU3BhY2luZ1RvcCBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgd29ya29yZGVyPyIpIHwgaHRtbCAlXQo8L3A+ClslIFJlbmRlckJsb2NrRW5kKCJOb1dvcmtPcmRlckluQ29uZGl0aW9uIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIldvcmtPcmRlckluQ29uZGl0aW9uIikgJV0KPHA+CiAgICBbJSBUcmFuc2xhdGUoIllvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIFdvcmtvcmRlci4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgQ29uZGl0aW9uISIpIHwgaHRtbCAlXQo8L3A+CjxwIGNsYXNzPSJTcGFjaW5nVG9wIFNwYWNpbmdCb3R0b20iPgogICAgWyUgVHJhbnNsYXRlKCJUaGlzIFdvcmtvcmRlciBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgQ29uZGl0aW9uKHMpIikgfCBodG1sICVdOgo8L3A+Cgo8dWw+ClslIFJlbmRlckJsb2NrU3RhcnQoIldvcmtPcmRlckluQ29uZGl0aW9uUm93IikgJV0KICAgIDxsaSBjbGFzcz0iSW5kZW50IFNwYWNpbmdCb3R0b21TbWFsbCI+CiAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50SVRTTUNoYW5nZUNvbmRpdGlvbkVkaXQ7Q2hhbmdlSUQ9WyUgRGF0YS5DaGFuZ2VJRCB8IHVyaSAlXTtDb25kaXRpb25JRD1bJSBEYXRhLkNvbmRpdGlvbklEIHwgdXJpICVdIiBjbGFzcz0iQXNQb3B1cERpYWxvZyI+CiAgICAgICAgICAgIFslIERhdGEuTmFtZSB8IGh0bWwgJV0KICAgICAgICA8L2E+CiAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiV29ya09yZGVySW5Db25kaXRpb25Sb3ciKSAlXQo8L3VsPgoKWyUgUmVuZGVyQmxvY2tFbmQoIldvcmtPcmRlckluQ29uZGl0aW9uIikgJV0K</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMWorkOrderEdit.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KCiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMT5bJSBUcmFuc2xhdGUoIkVkaXQgJXMlcy0lcyIsIENvbmZpZygiSVRTTVdvcmtPcmRlcjo6SG9vayIpLCBEYXRhLkNoYW5nZU51bWJlciwgRGF0YS5Xb3JrT3JkZXJOdW1iZXIpIHwgaHRtbCAlXSAmbWRhc2g7IFslIERhdGEuV29ya09yZGVyVGl0bGUgfCBodG1sICVdPC9oMT4KICAgICAgICA8cD4KICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAiPlslIFRyYW5zbGF0ZSgiQ2FuY2VsICYgY2xvc2UiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgPC9wPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iY29tcG9zZSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iU2F2ZSIvPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iV29ya09yZGVySUQiIHZhbHVlPSJbJSBEYXRhLldvcmtPcmRlcklEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRm9ybUlEIiB2YWx1ZT0iWyUgRGF0YS5Gb3JtSUQgfCBodG1sICVdIi8+CgogICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iV29ya09yZGVyVGl0bGUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPiogPC9zcGFuPlslIFRyYW5zbGF0ZSgiVGl0bGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJXb3JrT3JkZXJUaXRsZSIgaWQ9IldvcmtPcmRlclRpdGxlIiB2YWx1ZT0iWyUgRGF0YS5Xb3JrT3JkZXJUaXRsZSB8IGh0bWwgJV0iIGNsYXNzPSJXNzVwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLldvcmtPcmRlclRpdGxlU2VydmVyRXJyb3IgfCBodG1sICVdIiBtYXhsZW5ndGg9IjI1MCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJXb3JrT3JkZXJUaXRsZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iV29ya09yZGVyVGl0bGVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlJpY2hUZXh0Ij48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkluc3RydWN0aW9uIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUmljaFRleHRGaWVsZCBGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iUmljaFRleHQiIGNsYXNzPSJSaWNoVGV4dCBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkluc3RydWN0aW9uSW52YWxpZCAlXSIgbmFtZT0iSW5zdHJ1Y3Rpb24iIHJvd3M9IjE1IiBjb2xzPSJbJSBDb25maWcoIlRpY2tldDo6RnJvbnRlbmQ6OlRleHRBcmVhTm90ZSIpICVdIj5bJSBEYXRhLkluc3RydWN0aW9uIHwgaHRtbCAlXTwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlJpY2hUZXh0RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSaWNoVGV4dFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIldvcmtvcmRlciBUeXBlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5Xb3JrT3JkZXJUeXBlKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGQiKSAlXQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJvdyBSb3dfRHluYW1pY0ZpZWxkX1slIERhdGEuTmFtZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkxhYmVsICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZCIpICVdCgojIGV4YW1wbGUgb2YgaG93IHRvIHVzZSBmaXhlZCBkeW5hbWljIGZpZWxkIGJsb2NrcyBmb3IgY3VzdG9taXphdGlvbnMKIyBOb3RlOiBGaWVsZDEgYW5kIEZpZWxkMiBhcmUgdGhlIG5hbWVzIG9mIHRoZSBmaWVsZHMgYW5kIGhhZCB0byBiZSByZXBsYWNlZCB3aXRoIHRoZSBhY3R1YWwKIyBmaWVsZCBuYW1lcwojWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkX0ZpZWxkMSIpICVdCiMgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJvdyBSb3dfRHluYW1pY0ZpZWxkX1slIERhdGEuTmFtZSB8IGh0bWwgJV0iPgojICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5MYWJlbCAlXQojICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgojICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgojICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgojICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KI1slIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRfRmllbGQxIikgJV0KI1slIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZF9GaWVsZDIiKSAlXQojICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSb3cgUm93X0R5bmFtaWNGaWVsZF9bJSBEYXRhLk5hbWUgfCBodG1sICVdIj4KIyAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTGFiZWwgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZpZWxkICVdCiMgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KIyAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KIyAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiNbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkX0ZpZWxkMiIpICVdCgogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlBsYW5uZWQgU3RhcnQgVGltZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5QbGFubmVkU3RhcnRUaW1lU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBsYW5uZWRTdGFydFRpbWVEYXlFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUGxhbm5lZFN0YXJ0VGltZUhvdXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGxhbm5lZFN0YXJ0VGltZUdlbmVyaWNTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBsYW5uZWRTdGFydFRpbWVEYXlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUGxhbm5lZFN0YXJ0VGltZUhvdXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlBsYW5uZWRTdGFydFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQbGFubmVkU3RhcnRUaW1lQmVmb3JlVGhhbkVuZFRpbWVTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBsYW5uZWRTdGFydFRpbWVEYXlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBsYW5uZWRTdGFydFRpbWVIb3VyU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoZSBwbGFubmVkIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIHBsYW5uZWQgZW5kIHRpbWUhIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUGxhbm5lZFN0YXJ0VGltZUJlZm9yZVRoYW5FbmRUaW1lU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiUGxhbm5lZCBFbmQgVGltZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5QbGFubmVkRW5kVGltZVNlbGVjdGlvblN0cmluZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQbGFubmVkRW5kVGltZURheUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQbGFubmVkRW5kVGltZUhvdXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGxhbm5lZEVuZFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQbGFubmVkRW5kVGltZURheVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQbGFubmVkRW5kVGltZUhvdXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlBsYW5uZWRFbmRUaW1lR2VuZXJpY1NlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGxhbm5lZEVuZFRpbWVCZWZvcmVUaGFuRW5kVGltZVNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUGxhbm5lZEVuZFRpbWVEYXlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhlIHBsYW5uZWQgc3RhcnQgdGltZSBtdXN0IGJlIGJlZm9yZSB0aGUgcGxhbm5lZCBlbmQgdGltZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBsYW5uZWRFbmRUaW1lSG91clNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGUgcGxhbm5lZCBzdGFydCB0aW1lIG11c3QgYmUgYmVmb3JlIHRoZSBwbGFubmVkIGVuZCB0aW1lISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlBsYW5uZWRFbmRUaW1lQmVmb3JlVGhhbkVuZFRpbWVTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTW92ZUZvbGxvd2luZ1dvcmtPcmRlcnMiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik1vdmVGb2xsb3dpbmdXb3JrT3JkZXJzIj5bJSBUcmFuc2xhdGUoIk1vdmUgZm9sbG93aW5nIHdvcmtvcmRlcnMgYWNjb3JkaW5nbHkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiSWYgdGhlIHBsYW5uZWQgZW5kIHRpbWUgb2YgdGhpcyB3b3Jrb3JkZXIgaXMgY2hhbmdlZCwgdGhlIHBsYW5uZWQgc3RhcnQgdGltZXMgb2YgYWxsIGZvbGxvd2luZyB3b3Jrb3JkZXJzIHdpbGwgYmUgY2hhbmdlZCBhY2NvcmRpbmdseSIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9Ik1vdmVGb2xsb3dpbmdXb3JrT3JkZXJzIiBuYW1lPSJNb3ZlRm9sbG93aW5nV29ya09yZGVycyIgdmFsdWU9IjEiIFslIERhdGEuTW92ZUZvbGxvd2luZ1dvcmtPcmRlcnMgfCBodG1sICVdLz4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJNb3ZlRm9sbG93aW5nV29ya09yZGVycyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTaG93UGxhbm5lZEVmZm9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUGxhbm5lZEVmZm9ydCI+WyUgVHJhbnNsYXRlKCJQbGFubmVkIEVmZm9ydCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlBsYW5uZWRFZmZvcnQiIGlkPSJQbGFubmVkRWZmb3J0IiB2YWx1ZT0iWyUgRGF0YS5QbGFubmVkRWZmb3J0IHwgaHRtbCAlXSIgY2xhc3M9IlcxMHBjIFZhbGlkYXRlIFslIERhdGEuUGxhbm5lZEVmZm9ydEludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjEwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBsYW5uZWRFZmZvcnRFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBmb3JtYXQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQbGFubmVkRWZmb3J0U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZm9ybWF0LiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJTaG93UGxhbm5lZEVmZm9ydCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBdHRhY2htZW50VXBsb2FkIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJBdHRhY2htZW50IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBJTkNMVURFICJGb3JtRWxlbWVudHMvQXR0YWNobWVudExpc3QudHQiICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQXR0YWNobWVudFVwbG9hZCIpICVdCgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIGlkPSJTdWJtaXRXb3JrT3JkZXJFZGl0IiBhY2Nlc3NrZXk9ImciIG5hbWU9IldvcmtPcmRlckVkaXQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSAoZykiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jaGVjay1zcXVhcmUtbyI+PC9pPiBbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgPC9mb3JtPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMWorkOrderHistory.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KCiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMT4KICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJIaXN0b3J5IG9mICVzJXMtJXMiLCBDb25maWcoIklUU01Xb3JrT3JkZXI6Okhvb2siKSwgRGF0YS5DaGFuZ2VOdW1iZXIsIERhdGEuV29ya09yZGVyTnVtYmVyKSB8IGh0bWwgJV0gJm5kYXNoOyBbJSBEYXRhLldvcmtPcmRlclRpdGxlIHwgdHJ1bmNhdGUoNjApIHwgaHRtbCAlXQogICAgICAgIDwvaDE+CiAgICAgICAgPHA+CiAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCAmIGNsb3NlIikgfCBodG1sICVdPC9hPgogICAgICAgIDwvcD4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJIaXN0b3J5IENvbnRlbnQiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkFjdGlvbiIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkRldGFpbHMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiV29ya29yZGVyIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ3JlYXRldGltZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5IaXN0b3J5VHlwZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Db250ZW50IHwgdHJ1bmNhdGUoMTAwKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5vSGlzdG9yeVpvb20iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0KWyUgUmVuZGVyQmxvY2tFbmQoIk5vSGlzdG9yeVpvb20iKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTaG93SGlzdG9yeVpvb20iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb207SGlzdG9yeUVudHJ5SUQ9WyUgRGF0YS5IaXN0b3J5RW50cnlJRCAlXSI+WyUgVHJhbnNsYXRlKCJTaG93IGRldGFpbHMiKSB8IGh0bWwgJV08L2E+ClslIFJlbmRlckJsb2NrRW5kKCJTaG93SGlzdG9yeVpvb20iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiU2hvd1dvcmtPcmRlclpvb20iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJMaW5rSVRTTVdvcmtPcmRlclpvb21WaWV3IEFzQmxvY2siIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1dvcmtPcmRlcklEPVslIERhdGEuV29ya09yZGVySUQgJV0iPlslIFRyYW5zbGF0ZSgiU2hvdyB3b3Jrb3JkZXIiKSB8IGh0bWwgJV08L2E+ClslIFJlbmRlckJsb2NrRW5kKCJTaG93V29ya09yZGVyWm9vbSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVXNlckZ1bGxuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNyZWF0ZVRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJvdyIpICVdCgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iRm9vdGVyIj4KICAgIDwvZGl2Pgo8L2Rpdj4K</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMWorkOrderHistoryZoom.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KCiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMT4KICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJIaXN0b3J5IG9mICVzJXMtJXMiLCBDb25maWcoIklUU01Xb3JrT3JkZXI6Okhvb2siKSwgRGF0YS5DaGFuZ2VOdW1iZXIsIERhdGEuV29ya09yZGVyTnVtYmVyKSB8IGh0bWwgJV0gJm5kYXNoOyBbJSBEYXRhLldvcmtPcmRlclRpdGxlIHwgdHJ1bmNhdGUoNjApIHwgaHRtbCAlXQogICAgICAgIDwvaDE+CiAgICAgICAgPHA+CiAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5O1dvcmtPcmRlcklEPVslIERhdGEuV29ya09yZGVySUQgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQmFjayIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICA8YSBjbGFzcz0iQ2FuY2VsQ2xvc2VQb3B1cCIgaHJlZj0iIyI+WyUgVHJhbnNsYXRlKCJDYW5jZWwgJiBjbG9zZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEZXRhaWxlZCBoaXN0b3J5IGluZm9ybWF0aW9uIG9mICVzIiwgRGF0YS5IaXN0b3J5VHlwZSkgfCBodG1sICVdPC9oMj4KICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KCiAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIk1vZGlmaWVkIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGRuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiT2xkIFZhbHVlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgIFslIERhdGEuQ29udGVudE9sZCAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiTmV3IFZhbHVlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgIFslIERhdGEuQ29udGVudE5ldyAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQ2hhbmdlZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICBbJSBEYXRhLkNoYW5nZVRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQ2hhbmdlZCBieSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgdGl0bGU9IlslIERhdGEuVXNlckZ1bGxuYW1lIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAoWyUgRGF0YS5Vc2VyRnVsbG5hbWUgfCBodG1sICVdKQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICA8L2ZpZWxkc2V0PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJGb290ZXIiPgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMWorkOrderReport.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIyBUT0RPLiBBZGQgdmFsaWRhdGlvbiBmb3IgdGhlIGFjdHVhbCBzdGFydCBhbmQgZW5kIHRpbWVzIGluIHRoZSBjbGllbnQgc2lkZS4KPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9ImNvbXBvc2UiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlNhdmUiLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IldvcmtPcmRlcklEIiB2YWx1ZT0iWyUgRGF0YS5Xb3JrT3JkZXJJRCB8IGh0bWwgJV0iLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkZvcm1JRCIgdmFsdWU9IlslIERhdGEuRm9ybUlEIHwgaHRtbCAlXSIvPgoKICAgIDxkaXYgY2xhc3M9IkxheW91dFBvcHVwIEFSSUFSb2xlTWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgPGgxPlslIFRyYW5zbGF0ZSgiRWRpdCBSZXBvcnQgb2YgJXMlcy0lcyIsIENvbmZpZygiSVRTTVdvcmtPcmRlcjo6SG9vayIpLCBEYXRhLkNoYW5nZU51bWJlciwgRGF0YS5Xb3JrT3JkZXJOdW1iZXIpIHwgaHRtbCAlXSAmbmRhc2g7IFslIERhdGEuV29ya09yZGVyVGl0bGUgfCB0cnVuY2F0ZSg2MCkgfCBodG1sICVdPC9oMT4KICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQ2FuY2VsQ2xvc2VQb3B1cCIgaHJlZj0iIyI+WyUgVHJhbnNsYXRlKCJDYW5jZWwgJiBjbG9zZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlJpY2hUZXh0Ij48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlJlcG9ydCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUmljaFRleHRGaWVsZCBGaWVsZCI+CgogICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iUmljaFRleHQiIGNsYXNzPSJSaWNoVGV4dCBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLlJlcG9ydEludmFsaWQgJV0iIG5hbWU9IlJlcG9ydCIgcm93cz0iMTUiIGNvbHM9IlslIENvbmZpZygiVGlja2V0OjpGcm9udGVuZDo6VGV4dEFyZWFOb3RlIikgJV0iPlslIERhdGEuUmVwb3J0IHwgaHRtbCAlXTwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmljaFRleHRFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmljaFRleHRTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YXRlIikgJV0KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IldvcmtPcmRlclN0YXRlSUQiPlslIFRyYW5zbGF0ZSgiU3RhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlN0YXRlU2VsZWN0ICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXRlIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZCIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSb3cgUm93X0R5bmFtaWNGaWVsZF9bJSBEYXRhLk5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkxhYmVsICVdCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZpZWxkICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGQiKSAlXQoKIyBleGFtcGxlIG9mIGhvdyB0byB1c2UgZml4ZWQgZHluYW1pYyBmaWVsZCBibG9ja3MgZm9yIGN1c3RvbWl6YXRpb25zCiMgTm90ZTogRmllbGQxIGFuZCBGaWVsZDIgYXJlIHRoZSBuYW1lcyBvZiB0aGUgZmllbGRzIGFuZCBoYWQgdG8gYmUgcmVwbGFjZWQgd2l0aCB0aGUgYWN0dWFsCiMgZmllbGQgbmFtZXMKI1slIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZF9GaWVsZDEiKSAlXQojICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJvdyBSb3dfRHluYW1pY0ZpZWxkX1slIERhdGEuTmFtZSB8IGh0bWwgJV0iPgojICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkxhYmVsICVdCiMgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KIyAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KIyAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiMgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KIyAgICAgICAgICAgICAgICA8L2Rpdj4KI1slIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRfRmllbGQxIikgJV0KI1slIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZF9GaWVsZDIiKSAlXQojICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJvdyBSb3dfRHluYW1pY0ZpZWxkX1slIERhdGEuTmFtZSB8IGh0bWwgJV0iPgojICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkxhYmVsICVdCiMgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KIyAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KIyAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiMgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KIyAgICAgICAgICAgICAgICA8L2Rpdj4KI1slIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRfRmllbGQyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdHVhbFN0YXJ0VGltZSIpICVdCiAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJBY3R1YWwgU3RhcnQgVGltZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuQWN0dWFsU3RhcnRUaW1lU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQWN0dWFsU3RhcnRUaW1lRGF5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZGF0ZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQWN0dWFsU3RhcnRUaW1lSG91ckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3R1YWxTdGFydFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjdHVhbFN0YXJ0VGltZURheVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjdHVhbFN0YXJ0VGltZUhvdXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdHVhbFN0YXJ0VGltZUdlbmVyaWNTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdHVhbFN0YXJ0VGltZUJlZm9yZVRoYW5FbmRUaW1lU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjdHVhbFN0YXJ0VGltZURheVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQWN0dWFsU3RhcnRUaW1lSG91clNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBiZWZvcmUgdGhlIGFjdHVhbCBlbmQgdGltZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBY3R1YWxTdGFydFRpbWVCZWZvcmVUaGFuRW5kVGltZVNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0dWFsU3RhcnRUaW1lU2V0U2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjdHVhbFN0YXJ0VGltZURheVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGUgYWN0dWFsIHN0YXJ0IHRpbWUgbXVzdCBiZSBzZXQsIHdoZW4gdGhlIGFjdHVhbCBlbmQgdGltZSBpcyBzZXQhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjdHVhbFN0YXJ0VGltZUhvdXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhlIGFjdHVhbCBzdGFydCB0aW1lIG11c3QgYmUgc2V0LCB3aGVuIHRoZSBhY3R1YWwgZW5kIHRpbWUgaXMgc2V0ISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdHVhbFN0YXJ0VGltZVNldFNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0dWFsU3RhcnRUaW1lIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdHVhbEVuZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQWN0dWFsIEVuZCBUaW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5BY3R1YWxFbmRUaW1lU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQWN0dWFsRW5kVGltZURheUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJEYXRlIGludmFsaWQhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjdHVhbEVuZFRpbWVIb3VyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkRhdGUgaW52YWxpZCEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQWN0dWFsRW5kVGltZURheVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJEYXRlIGludmFsaWQhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjdHVhbEVuZFRpbWVIb3VyU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkRhdGUgaW52YWxpZCEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdHVhbEVuZFRpbWUiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU2hvd0FjY291bnRlZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQWNjb3VudGVkVGltZSI+WyUgVHJhbnNsYXRlKCJBY2NvdW50ZWQgVGltZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iQWNjb3VudGVkVGltZSIgbmFtZT0iQWNjb3VudGVkVGltZSIgdmFsdWU9IlslIERhdGEuQWNjb3VudGVkVGltZSB8IGh0bWwgJV0iIGNsYXNzPSIyNXBjIFZhbGlkYXRlIFslIERhdGEuQWNjb3VudGVkVGltZUludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjExIi8+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQWNjb3VudGVkVGltZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSIgPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBmb3JtYXQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjY291bnRlZFRpbWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBmb3JtYXQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJTaG93QWNjb3VudGVkVGltZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBdHRhY2htZW50VXBsb2FkIikgJV0KICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkF0dGFjaG1lbnQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICBbJSBJTkNMVURFICJGb3JtRWxlbWVudHMvQXR0YWNobWVudExpc3QudHQiICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkF0dGFjaG1lbnRVcGxvYWQiKSAlXQoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgaWQ9IlN1Ym1pdFdvcmtPcmRlckVkaXRSZXBvcnQiIGFjY2Vzc2tleT0iZyIgbmFtZT0iV29ya09yZGVyRWRpdCIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIChnKSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9mb3JtPgo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMWorkOrderTake.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgVzMwMHB4Ij4KICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlRpdGxlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICA8cCBjbGFzcz0iVmFsdWUiPgogICAgICAgIFslIERhdGEuV29ya09yZGVyVGl0bGUgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQ3VycmVudCBBZ2VudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBEYXRhLldvcmtPcmRlckFnZW50IHwgaHRtbCAlXQogICAgPC9wPgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKPC9maWVsZHNldD4KPHAgY2xhc3M9IlNwYWNpbmdUb3AgQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiRG8geW91IHJlYWxseSB3YW50IHRvIHRha2UgdGhpcyB3b3Jrb3JkZXI/IikgfCBodG1sICVdCjwvcD4K</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMWorkOrderTemplate.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9ImNvbXBvc2UiIGlkPSJDb21wb3NlIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iICAgICAgIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgICAgdmFsdWU9IkFkZFRlbXBsYXRlIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IldvcmtPcmRlcklEIiAgdmFsdWU9IlslIERhdGEuV29ya09yZGVySUQgfCBodG1sICVdIj4KCiAgICA8ZGl2IGNsYXNzPSJMYXlvdXRQb3B1cCBBUklBUm9sZU1haW4iPgogICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgIDxoMT5bJSBUcmFuc2xhdGUoIlNhdmUgV29ya29yZGVyIGFzIFRlbXBsYXRlIikgfCBodG1sICVdOiBbJSBDb25maWcoIklUU01Xb3JrT3JkZXI6Okhvb2siKSAlXSBbJSBEYXRhLkNoYW5nZU51bWJlciAlXSAtIFslIERhdGEuV29ya09yZGVyTnVtYmVyIHwgaHRtbCAlXTogWyUgRGF0YS5Xb3JrT3JkZXJUaXRsZSB8IGh0bWwgJV08L2gxPgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCAmIGNsb3NlIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlRlbXBsYXRlTmFtZSI+WyUgVHJhbnNsYXRlKCJUZW1wbGF0ZSBOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJUZW1wbGF0ZU5hbWUiIG5hbWU9IlRlbXBsYXRlTmFtZSIgdmFsdWU9IlslIERhdGEuVGVtcGxhdGVOYW1lIHwgaHRtbCAlXSIgY2xhc3M9Ilc3NXBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuVGVtcGxhdGVOYW1lSW52YWxpZCB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGVtcGxhdGVOYW1lRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIiA+PHA+WyUgVHJhbnNsYXRlKCJBIHRlbXBsYXRlIHNob3VsZCBoYXZlIGEgbmFtZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGVtcGxhdGVOYW1lU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoZSB0ZW1wbGF0ZSBuYW1lIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkNvbW1lbnQiPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iQ29tbWVudCIgbmFtZT0iQ29tbWVudCIgdmFsdWU9IlslIERhdGEuQ29tbWVudCB8IGh0bWwgJV0iIGNsYXNzPSJXNzVwYyIgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlN0YXRlUmVzZXQiPlslIFRyYW5zbGF0ZSgiUmVzZXQgU3RhdGVzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGF0ZVJlc2V0U2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ3cml0ZVRlbXBsYXRlIikgJV0KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik92ZXJ3cml0ZVRlbXBsYXRlIj5bJSBUcmFuc2xhdGUoIk92ZXJ3cml0ZSBvcmlnaW5hbCB0ZW1wbGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuT3ZlcndyaXRlVGVtcGxhdGVTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcndyaXRlVGVtcGxhdGUiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRGVsZXRlV29ya09yZGVyIikgJV0KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkRlbGV0ZVdvcmtPcmRlciI+WyUgVHJhbnNsYXRlKCJEZWxldGUgb3JpZ2luYWwgd29ya29yZGVyIChhbmQgc3Vycm91bmRpbmcgY2hhbmdlKSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuRGVsZXRlV29ya09yZGVyU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRlbGV0ZVdvcmtPcmRlciIpICVdCgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVmFsaWRJRCI+WyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuVmFsaWRTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJGb290ZXIiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIGlkPSJTdWJtaXRBZGRUZW1wbGF0ZSIgYWNjZXNza2V5PSJnIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0gKGcpIiB0eXBlPSJzdWJtaXQiIG5hbWU9IkFkZFRlbXBsYXRlIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jaGVjay1zcXVhcmUtbyI+PC9pPiBbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Zvcm0+Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentITSMWorkOrderZoom.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4iPgogICAgPGRpdiBjbGFzcz0iQ2xlYXJMZWZ0Ij48L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkhlYWRsaW5lIj4KICAgICAgICA8ZGl2IGNsYXNzPSJGbGFnIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9IlslIERhdGEuV29ya09yZGVyU3RhdGVTaWduYWwgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5Xb3JrT3JkZXJTdGF0ZSkgfCBodG1sICVdPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxoMSB0aXRsZT0iWyUgQ29uZmlnKCJJVFNNV29ya09yZGVyOjpIb29rIikgJV06IFslIERhdGEuQ2hhbmdlTnVtYmVyIHwgaHRtbCAlXS1bJSBEYXRhLldvcmtPcmRlck51bWJlciB8IGh0bWwgJV0gJm5kYXNoOyBbJSBEYXRhLldvcmtPcmRlclRpdGxlIHwgaHRtbCAlXSI+CiAgICAgICAgICAgIFslIENvbmZpZygiSVRTTVdvcmtPcmRlcjo6SG9vayIpICVdOiBbJSBEYXRhLkNoYW5nZU51bWJlciB8IGh0bWwgJV0tWyUgRGF0YS5Xb3JrT3JkZXJOdW1iZXIgfCBodG1sICVdIDxzcGFuPiZtZGFzaDs8L3NwYW4+IFslIERhdGEuV29ya09yZGVyVGl0bGUgfCB0cnVuY2F0ZSg3MCkgfCBodG1sICVdCiAgICAgICAgPC9oMT4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkxheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyTGFzdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTaG93IG9yIGhpZGUgdGhlIGNvbnRlbnQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIldvcmtvcmRlciBJbmZvcm1hdGlvbiIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJNZXRhIikgJV0KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJXb3Jrb3JkZXIgU3RhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVmFsdWUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmxhZyBTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IlslIERhdGEuV29ya09yZGVyU3RhdGVTaWduYWwgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5Xb3JrT3JkZXJTdGF0ZSkgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5Xb3JrT3JkZXJTdGF0ZSkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJXb3Jrb3JkZXIgVHlwZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbXB0eVdvcmtPcmRlclR5cGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSItIj4tPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW1wdHlXb3JrT3JkZXJUeXBlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiV29ya09yZGVyVHlwZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5Xb3JrT3JkZXJUeXBlIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIldvcmtPcmRlclR5cGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiUGxhbm5lZCBTdGFydCBUaW1lIikgfCBodG1sICVdOjwvbGFiZWw+ClslIFJlbmRlckJsb2NrU3RhcnQoIkVtcHR5UGxhbm5lZFN0YXJ0VGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9Ii0iPi08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbXB0eVBsYW5uZWRTdGFydFRpbWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQbGFubmVkU3RhcnRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLlBsYW5uZWRTdGFydFRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlBsYW5uZWRTdGFydFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiUGxhbm5lZCBFbmQgVGltZSIpIHwgaHRtbCAlXTogPC9sYWJlbD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW1wdHlQbGFubmVkRW5kVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9Ii0iPi08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbXB0eVBsYW5uZWRFbmRUaW1lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGxhbm5lZEVuZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuUGxhbm5lZEVuZFRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlBsYW5uZWRFbmRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQWN0dWFsIFN0YXJ0IFRpbWUiKSB8IGh0bWwgJV06IDwvbGFiZWw+ClslIFJlbmRlckJsb2NrU3RhcnQoIkVtcHR5QWN0dWFsU3RhcnRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iLSI+LTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVtcHR5QWN0dWFsU3RhcnRUaW1lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0dWFsU3RhcnRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLkFjdHVhbFN0YXJ0VGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0dWFsU3RhcnRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQWN0dWFsIEVuZCBUaW1lIikgfCBodG1sICVdOiA8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbXB0eUFjdHVhbEVuZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSItIj4tPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW1wdHlBY3R1YWxFbmRUaW1lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0dWFsRW5kVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5BY3R1YWxFbmRUaW1lIHwgTG9jYWxpemUoIlRpbWVMb25nIikgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJBY3R1YWxFbmRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWxTbWFsbCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlNob3dQbGFubmVkRWZmb3J0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiUGxhbm5lZCBFZmZvcnQiKSB8IGh0bWwgJV06IDwvbGFiZWw+ClslIFJlbmRlckJsb2NrU3RhcnQoIkVtcHR5UGxhbm5lZEVmZm9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9Ii0iPi08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbXB0eVBsYW5uZWRFZmZvcnQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQbGFubmVkRWZmb3J0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLlBsYW5uZWRFZmZvcnQgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiUGxhbm5lZEVmZm9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlNob3dQbGFubmVkRWZmb3J0IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlNob3dBY2NvdW50ZWRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQWNjb3VudGVkIFRpbWUiKSB8IGh0bWwgJV06IDwvbGFiZWw+ClslIFJlbmRlckJsb2NrU3RhcnQoIkVtcHR5QWNjb3VudGVkVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9Ii0iPi08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbXB0eUFjY291bnRlZFRpbWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY2NvdW50ZWRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLkFjY291bnRlZFRpbWUgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWNjb3VudGVkVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlNob3dBY2NvdW50ZWRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgoKIyBzaG93IGR5bmFtaWMgZmllbGRzCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIE5hcnJvdyI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbCkgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZExpbmsiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIj48YSBocmVmPSJbJSBEYXRhLkxpbmsgfCBJbnRlcnBvbGF0ZSAlXSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJEeW5hbWljRmllbGRMaW5rIj5bJSBEYXRhLlZhbHVlICVdPC9hPjwvc3Bhbj4KWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZExpbmsiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGRQbGFpbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPlslIERhdGEuVmFsdWUgJV08L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRQbGFpbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgoKIyBleGFtcGxlIG9mIGhvdyB0byB1c2UgZml4ZWQgZHluYW1pYyBmaWVsZCBibG9ja3MgZm9yIGN1c3RvbWl6YXRpb25zCiMgTm90ZTogRmllbGQxIGFuZCBGaWVsZDIgYXJlIHRoZSBuYW1lcyBvZiB0aGUgZmllbGRzIGFuZCBoYWQgdG8gYmUgcmVwbGFjZWQgd2l0aCB0aGUgYWN0dWFsCiMgZmllbGQgbmFtZXMKIyAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIE5hcnJvdyI+CiNbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGRfRmllbGQxIikgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbCkgfCBodG1sICVdOjwvbGFiZWw+CiMgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPgojWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkX0ZpZWxkMV9MaW5rIikgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPjxhIGhyZWY9IlslIERhdGEuTGluayAlXSIgdGFyZ2V0PSJfYmxhbmsiPlslIERhdGEuVmFsdWUgJV08L2E+PC9zcGFuPgojWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZF9GaWVsZDFfTGluayIpICVdCiNbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGRfRmllbGQxX1BsYWluIikgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPlslIERhdGEuVmFsdWUgJV08L3NwYW4+CiNbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkX0ZpZWxkMV9QbGFpbiIpICVdCiMgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiNbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkX0ZpZWxkMSIpICVdCiMgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiMgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWxTbWFsbCBOYXJyb3ciPgojWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkX0ZpZWxkMiIpICVdCiMgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKERhdGEuTGFiZWwpIHwgaHRtbCAlXTo8L2xhYmVsPgojICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj4KI1slIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZF9GaWVsZDJfTGluayIpICVdCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIj48YSBocmVmPSJbJSBEYXRhLkxpbmsgJV0iIHRhcmdldD0iX2JsYW5rIj5bJSBEYXRhLlZhbHVlICVdPC9hPjwvc3Bhbj4KI1slIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRfRmllbGQyX0xpbmsiKSAlXQojWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkX0ZpZWxkMl9QbGFpbiIpICVdCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIj5bJSBEYXRhLlZhbHVlICVdPC9zcGFuPgojWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZF9GaWVsZDJfUGxhaW4iKSAlXQojICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgojWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZF9GaWVsZDIiKSAlXQojICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgoKICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJDaGFuZ2UgQnVpbGRlciIpIHwgaHRtbCAlXTo8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbXB0eUNoYW5nZUJ1aWxkZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSItIj4tPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW1wdHlDaGFuZ2VCdWlsZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ2hhbmdlQnVpbGRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9IlslIERhdGEuQ2hhbmdlQnVpbGRlclVzZXJGdWxsbmFtZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5DaGFuZ2VCdWlsZGVyVXNlckZ1bGxuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3A+ClslIFJlbmRlckJsb2NrRW5kKCJDaGFuZ2VCdWlsZGVyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWxTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIldvcmtvcmRlciBBZ2VudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbXB0eVdvcmtPcmRlckFnZW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iLSI+LTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVtcHR5V29ya09yZGVyQWdlbnQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJXb3JrT3JkZXJBZ2VudCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9IlslIERhdGEuV29ya09yZGVyQWdlbnRVc2VyRnVsbG5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuV29ya09yZGVyQWdlbnRVc2VyRnVsbG5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIldvcmtPcmRlckFnZW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWxTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkNyZWF0ZWQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLkNyZWF0ZVRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQ3JlYXRlZCBieSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSJbJSBEYXRhLkNyZWF0ZVVzZXJGdWxsbmFtZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5DcmVhdGVVc2VyRnVsbG5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWxTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkxhc3QgY2hhbmdlZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuQ2hhbmdlVGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJMYXN0IGNoYW5nZWQgYnkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iWyUgRGF0YS5DaGFuZ2VVc2VyRnVsbG5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2hhbmdlVXNlckZ1bGxuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkxpbmtUYWJsZVNpbXBsZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTGlua1RhYmxlU3RyZyAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiTGlua1RhYmxlU2ltcGxlIikgJV0KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJNZXRhIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250cm9sUm93Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQWN0aW9uUm93Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9ucyI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk1lbnUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJNZW51SXRlbSIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1bJSBEYXRhLkxpbmsgfCBJbnRlcnBvbGF0ZSAlXSIgaWQ9Ik1lbnVbJSBEYXRhLk1lbnVJRCB8IGh0bWwgJV0iIGNsYXNzPSJbJSBEYXRhLk1lbnVDbGFzcyB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5EZXNjcmlwdGlvbikgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5OYW1lKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIk1lbnVJdGVtIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIk1lbnUiKSAlXQogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCBFeHBhbmRlZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPjxhIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNob3cgb3IgaGlkZSB0aGUgY29udGVudC4iKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIldvcmtvcmRlciIpIHwgaHRtbCAlXSAtIFslIERhdGEuV29ya09yZGVyVGl0bGUgfCB0cnVuY2F0ZSg3MCkgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJJVFNNIENoYW5nZSIpIHwgaHRtbCAlXTwvc3Ryb25nPjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZsYWcgU21hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJbJSBEYXRhLkNoYW5nZVN0YXRlU2lnbmFsIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuQ2hhbmdlU3RhdGUpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5DaGFuZ2VOdW1iZXIgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD1bJSBEYXRhLkNoYW5nZUlEIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNoYW5nZVRpdGxlIHwgdHJ1bmNhdGUoNzApIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJXb3Jrb3JkZXIiKSB8IGh0bWwgJV08L3N0cm9uZz48L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWYWx1ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGbGFnIFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iWyUgRGF0YS5Xb3JrT3JkZXJTdGF0ZVNpZ25hbCB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZShEYXRhLldvcmtPcmRlclN0YXRlKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2hhbmdlTnVtYmVyIHwgaHRtbCAlXSAtIFslIERhdGEuV29ya09yZGVyTnVtYmVyIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5bJSBEYXRhLldvcmtPcmRlclRpdGxlIHwgdHJ1bmNhdGUoNzApIHwgaHRtbCAlXTwvc3Ryb25nPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQnJvd3NlckxpbmtNZXNzYWdlIikgJV0KIyBTaG93IGluZm8sIHRoYXQgbGlua3Mgd2l0aGluIHRoZSBpZnJhbWUgbXVzdCBiZSBjbGlja2VkIHdpdGggc3RyZy9jbWQvc2hpZnQgKGRlcGVuZGluZyBvbiB0aGUgdXNlZCBicm93c2VyIGFuZCBvcykKIyB0byBvcGVuIHRoZSBsaW5rcyBpbiBhIG5ldyB3aW5kb3cgd2l0aG91dCB0aGUgc2VjdXJpdHkgcGVybWlzc2lvbnMgZ2l2ZW4gdG8gdGhlIGlmcmFtZQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJJVFNNTWVzc2FnZUJyb3dzZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJDbG9zZSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiQ2xvc2UgdGhpcyBtZXNzYWdlIikgfCBodG1sICVdIiBocmVmPSIjIj48aSBjbGFzcz0iZmEgZmEtdGltZXMiPjwvaT48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQnJvd3NlckxpbmtNZXNzYWdlIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIklUU01Db250ZW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSggRGF0YS5GaWVsZCApIHwgaHRtbCAlXTogPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KIyBVc2UgdGhlIEhUTUw1IHNhbmRib3ggYXR0cmlidXRlIHRvIHByZXZlbnQgcGx1Z2lucyBhbmQgc2NyaXB0cyBmcm9tIGJlaW5nIGV4ZWN1dGVkIGluIHRoZSBicm93c2VyLgojIFVzZSBJRSdzIChub24tc3RhbmRhcmQpIHNlY3VyaXR5IGF0dHJpYnV0ZSB0byBhY2hpZXZlIHNvbWV0aGluZyBzaW1pbGFyIGluIG9sZGVyIElFIGJyb3dzZXJzLiBBcHBlbmQgc2Vzc2lvbiBpbmZvIHRvIFVSTCBiZWNhdXNlIElFIHdpbGwgbm90IHNlbmQgY29va2llcy4KIyBTZXQgJ2FsbG93LXBvcHVwcycgdG8gYWxsb3cgSUUxMCsgdG8gb3BlbiBsaW5rcy4gcmVmOiBodHRwOi8vd3d3LnczLm9yZy9odG1sL3dnL3dpa2kvQ2hhbmdlUHJvcG9zYWxzL3NhbmRib3hfYWxsb3dfcG9wdXBzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNhbWUtb3JpZ2luIGFsbG93LXBvcHVwcyBhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3giIFslIERhdGEuTVNTZWN1cml0eVJlc3RyaWN0ZWQgJV0gY2xhc3M9IkZpZWxkIiBpZD0iSWZyYW1lSVRTTVslIERhdGEuRmllbGQgfCBodG1sICVdIiBvbmxvYWQ9ImlmICh0eXBlb2YgSVRTTSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIElUU00uQWdlbnQgPT09ICdvYmplY3QnICYmIHR5cGVvZiBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgPT09ICdvYmplY3QnICYmIHR5cGVvZiBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuWm9vbSA9PT0gJ29iamVjdCcpIHsgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Llpvb20uSWZyYW1lQXV0b0hlaWdodCgkKCcjSWZyYW1lSVRTTVslIERhdGEuRmllbGQgfCBodG1sICVdJykpOyB9OyIgc3JjPSIjIiBkYXRhLXNyYz0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlclpvb207U3ViYWN0aW9uPUhUTUxWaWV3O1dvcmtPcmRlcklEPVslIERhdGEuV29ya09yZGVySUQgfCBodG1sICVdO0ZpZWxkPVslIERhdGEuRmllbGQgfCBodG1sICVdO1slIEVudigiU2Vzc2lvbk5hbWUiKSB8IGh0bWwgJV09WyUgRW52KCJTZXNzaW9uSUQiKSB8IGh0bWwgJV0iPjwvaWZyYW1lPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSVRTTUNvbnRlbnQiKSAlXQoKCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkF0dGFjaG1lbnQiKSB8IGh0bWwgJV0gKFslIFRyYW5zbGF0ZSgiV29ya29yZGVyIikgfCBodG1sICVdKTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkF0dGFjaG1lbnRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IkRvd25sb2FkQXR0YWNobWVudCIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRG93bmxvYWQgQXR0YWNobWVudCIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPURvd25sb2FkQXR0YWNobWVudDtGaWxlbmFtZT1bJSBEYXRhLkZpbGVuYW1lIHwgdXJpICVdO1dvcmtPcmRlcklEPVslIERhdGEuV29ya09yZGVySUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZpbGVuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWyUgRGF0YS5GaWxlc2l6ZSB8IExvY2FsaXplKCdGaWxlc2l6ZScpIHwgaHRtbCAlXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxici8+ClslIFJlbmRlckJsb2NrRW5kKCJBdHRhY2htZW50Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkF0dGFjaG1lbnQiKSB8IGh0bWwgJV0gKFslIFRyYW5zbGF0ZSgiUmVwb3J0IikgfCBodG1sICVdKTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlcG9ydEF0dGFjaG1lbnRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IkRvd25sb2FkQXR0YWNobWVudCIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRG93bmxvYWQgQXR0YWNobWVudCIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPURvd25sb2FkQXR0YWNobWVudDtGaWxlbmFtZT1bJSBEYXRhLkZpbGVuYW1lIHwgdXJpICVdO1R5cGU9V29ya09yZGVyUmVwb3J0O1dvcmtPcmRlcklEPVslIERhdGEuV29ya09yZGVySUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZpbGVuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIFslIERhdGEuRmlsZXNpemUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVwb3J0QXR0YWNobWVudFJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIkxpbmtUYWJsZUNvbXBsZXgiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIFslIERhdGEuTGlua1RhYmxlU3RyZyAlXQogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkxpbmtUYWJsZUNvbXBsZXgiKSAlXQogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/CustomerITSMChangeOverview.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQo8ZGl2IGlkPSJNYWluQm94IiBjbGFzcz0iVGlja2V0VmlldyBBUklBUm9sZU1haW4gU29ydGFibGUiPgogICAgPGRpdiBjbGFzcz0iQWN0aW9uUm93Ij4KICAgICAgICA8dWwgY2xhc3M9IkZpbHRlciBUYWJzIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRmlsdGVySGVhZGVyIikgJV0KICAgICAgICAgICAgPGxpIGNsYXNzPSJbJSBEYXRhLkNsYXNzTEkgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJbJSBEYXRhLkNsYXNzQSB8IGh0bWwgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1bJSBFbnYoIlN1YmFjdGlvbiIpICVdO0ZpbHRlcj1bJSBEYXRhLkZpbHRlciB8IHVyaSAlXTtTb3J0Qnk9WyUgRGF0YS5Tb3J0QnkgfCB1cmkgJV07T3JkZXI9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdOyI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuTmFtZSkgfCBodG1sICVdIFslIERhdGEuQ291bnRTdHJnIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiRmlsdGVySGVhZGVyIikgJV0KICAgICAgICAgICAgPGxpIGNsYXNzPSJDbGVhciI+PC9saT4KICAgICAgICA8L3VsPgogICAgICAgIDxkaXYgY2xhc3M9IlRhYnMgUGFnaW5hdGlvbiI+CiAgICAgICAgICAgIFslIERhdGEuU2l0ZU5hdkJhciAlXQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgPHRhYmxlIGNsYXNzPSJJVFNNT3ZlcnZpZXciPgogICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZVN0YXRlU2lnbmFsSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZSgiU3RhdGUiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENoYW5nZVN0YXRlU2lnbmFsSGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkV29ya09yZGVyU3RhdGVTaWduYWxIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+WyUgVHJhbnNsYXRlKCJTZXJ2aWNlcyIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkV29ya09yZGVyU3RhdGVTaWduYWxIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDaGFuZ2VOdW1iZXJIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2hhbmdlTnVtYmVyIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUNoYW5nZU51bWJlcjtPcmRlckJ5PVslIERhdGEuT3JkZXJCeSB8IHVyaSAlXSI+WyUgQ29uZmlnKCJJVFNNQ2hhbmdlOjpIb29rIikgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENoYW5nZU51bWJlckhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFdvcmtPcmRlck51bWJlckhlYWRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJXb3JrT3JkZXJOdW1iZXIgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rU29ydCAlXTtTb3J0Qnk9V29ya09yZGVyTnVtYmVyO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBDb25maWcoIklUU01Xb3JrT3JkZXI6Okhvb2siKSAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkV29ya09yZGVyTnVtYmVySGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkV29ya09yZGVyVGl0bGVIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iV29ya09yZGVyVGl0bGUgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rU29ydCAlXTtTb3J0Qnk9V29ya09yZGVyVGl0bGU7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiV29ya29yZGVyIFRpdGxlIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRXb3JrT3JkZXJUaXRsZUhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZVRpdGxlSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkNoYW5nZVRpdGxlIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUNoYW5nZVRpdGxlO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoIkNoYW5nZSBUaXRsZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlVGl0bGVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRXb3JrT3JkZXJBZ2VudEhlYWRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJXb3JrT3JkZXJBZ2VudElEIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PVdvcmtPcmRlckFnZW50SUQ7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiV29ya29yZGVyIEFnZW50IikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRXb3JrT3JkZXJBZ2VudEhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZUJ1aWxkZXJIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2hhbmdlQnVpbGRlcklEIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUNoYW5nZUJ1aWxkZXJJRDtPcmRlckJ5PVslIERhdGEuT3JkZXJCeSB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKCJDaGFuZ2UgQnVpbGRlciIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlQnVpbGRlckhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZU1hbmFnZXJIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2hhbmdlQnVpbGRlcklEIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUNoYW5nZU1hbmFnZXJJRDtPcmRlckJ5PVslIERhdGEuT3JkZXJCeSB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKCJDaGFuZ2UgTWFuYWdlciIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2hhbmdlTWFuYWdlckhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFdvcmtPcmRlckNvdW50SGVhZGVyIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGg+PHNwYW4+WyUgVHJhbnNsYXRlKCJXb3Jrb3JkZXJzIikgfCBodG1sICVdPC9zcGFuPjwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRXb3JrT3JkZXJDb3VudEhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZVN0YXRlSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkNoYW5nZVN0YXRlSUQgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rU29ydCAlXTtTb3J0Qnk9Q2hhbmdlU3RhdGVJRDtPcmRlckJ5PVslIERhdGEuT3JkZXJCeSB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKCJDaGFuZ2UgU3RhdGUiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENoYW5nZVN0YXRlSGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkV29ya09yZGVyU3RhdGVIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iV29ya09yZGVyU3RhdGVJRCBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1Xb3JrT3JkZXJTdGF0ZUlEO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoIldvcmtvcmRlciBTdGF0ZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkV29ya09yZGVyU3RhdGVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRXb3JrT3JkZXJUeXBlSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IldvcmtPcmRlclR5cGVJRCBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1Xb3JrT3JkZXJUeXBlSUQ7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiV29ya29yZGVyIFR5cGUiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFdvcmtPcmRlclR5cGVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDYXRlZ29yeUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDYXRlZ29yeUlEIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUNhdGVnb3J5SUQ7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQ2F0ZWdvcnkiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENhdGVnb3J5SGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkSW1wYWN0SGVhZGVyIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkltcGFjdElEIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUltcGFjdElEO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoIkltcGFjdCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkSW1wYWN0SGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkUHJpb3JpdHlIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iUHJpb3JpdHlJRCBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1Qcmlvcml0eUlEO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoIlByaW9yaXR5IikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRQcmlvcml0eUhlYWRlciIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRTZXJ2aWNlc0hlYWRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2VydmljZXMiKSB8IGh0bWwgJV08L3NwYW4+PC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFNlcnZpY2VzSGVhZGVyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFJlcXVlc3RlZFRpbWVIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iUmVxdWVzdGVkVGltZSBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1SZXF1ZXN0ZWRUaW1lO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoIlJlcXVlc3RlZCBUaW1lIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRSZXF1ZXN0ZWRUaW1lSGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkUGxhbm5lZFN0YXJ0VGltZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJQbGFubmVkU3RhcnRUaW1lIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PVBsYW5uZWRTdGFydFRpbWU7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiUGxhbm5lZCBTdGFydCBUaW1lIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRQbGFubmVkU3RhcnRUaW1lSGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkUGxhbm5lZEVuZFRpbWVIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iUGxhbm5lZEVuZFRpbWUgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rU29ydCAlXTtTb3J0Qnk9UGxhbm5lZEVuZFRpbWU7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiUGxhbm5lZCBFbmQgVGltZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkUGxhbm5lZEVuZFRpbWVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRBY3R1YWxTdGFydFRpbWVIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQWN0dWFsU3RhcnRUaW1lIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUFjdHVhbFN0YXJ0VGltZTtPcmRlckJ5PVslIERhdGEuT3JkZXJCeSB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKCJBY3R1YWwgU3RhcnQgVGltZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQWN0dWFsU3RhcnRUaW1lSGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQWN0dWFsRW5kVGltZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJBY3R1YWxFbmRUaW1lIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUFjdHVhbEVuZFRpbWU7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQWN0dWFsIEVuZCBUaW1lIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRBY3R1YWxFbmRUaW1lSGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ3JlYXRlVGltZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDcmVhdGVUaW1lIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUNyZWF0ZVRpbWU7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQ3JlYXRlZCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ3JlYXRlVGltZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5vRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iWyUgRGF0YS5Ub3RhbENvbHVtbnMgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9EYXRhRm91bmRNc2ciKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmQiKSAlXQogICAgICAgICAgICAgICAgPHRyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDaGFuZ2VTdGF0ZVNpZ25hbCIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRkIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5DaGFuZ2VTdGF0ZSkgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmxhZyBTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iWyUgRGF0YS5DaGFuZ2VTdGF0ZVNpZ25hbCB8IGh0bWwgJV0iPiJbJSBEYXRhLkNoYW5nZVN0YXRlIHwgaHRtbCAlXSI8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDaGFuZ2VTdGF0ZVNpZ25hbCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFdvcmtPcmRlclN0YXRlU2lnbmFsIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGQgdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLldvcmtPcmRlclN0YXRlKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGbGFnIFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJbJSBEYXRhLldvcmtPcmRlclN0YXRlU2lnbmFsIHwgaHRtbCAlXSI+IlslIERhdGEuV29ya09yZGVyU3RhdGUgfCBodG1sICVdIjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFdvcmtPcmRlclN0YXRlU2lnbmFsIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2hhbmdlTnVtYmVyIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgRGF0YS5DaGFuZ2VOdW1iZXIgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENoYW5nZU51bWJlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFdvcmtPcmRlck51bWJlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlslIERhdGEuQ2hhbmdlTnVtYmVyIHwgaHRtbCAlXS1bJSBEYXRhLldvcmtPcmRlck51bWJlciB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkV29ya09yZGVyTnVtYmVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkV29ya09yZGVyVGl0bGUiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBEYXRhLldvcmtPcmRlclRpdGxlIHwgdHJ1bmNhdGUoNDApIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRXb3JrT3JkZXJUaXRsZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZVRpdGxlIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuQ2hhbmdlVGl0bGUgfCBodG1sICVdIj5bJSBEYXRhLkNoYW5nZVRpdGxlIHwgdHJ1bmNhdGUoNDApIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDaGFuZ2VUaXRsZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFdvcmtPcmRlckFnZW50IikgJV0KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuV29ya09yZGVyQWdlbnRVc2VyRnVsbG5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuV29ya09yZGVyQWdlbnRVc2VyRnVsbG5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRXb3JrT3JkZXJBZ2VudCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENoYW5nZUJ1aWxkZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5DaGFuZ2VCdWlsZGVyVXNlckZ1bGxuYW1lIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNoYW5nZUJ1aWxkZXJVc2VyRnVsbG5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDaGFuZ2VCdWlsZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2hhbmdlTWFuYWdlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBEYXRhLkNoYW5nZU1hbmFnZXJVc2VyRnVsbG5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2hhbmdlTWFuYWdlclVzZXJGdWxsbmFtZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENoYW5nZU1hbmFnZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRXb3JrT3JkZXJDb3VudCIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDZW50ZXIiPlslIERhdGEuV29ya09yZGVyQ291bnQgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFdvcmtPcmRlckNvdW50IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2hhbmdlU3RhdGUiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBUcmFuc2xhdGUoRGF0YS5DaGFuZ2VTdGF0ZSkgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENoYW5nZVN0YXRlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkV29ya09yZGVyU3RhdGUiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBUcmFuc2xhdGUoRGF0YS5Xb3JrT3JkZXJTdGF0ZSkgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFdvcmtPcmRlclN0YXRlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkV29ya09yZGVyVHlwZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlslIFRyYW5zbGF0ZShEYXRhLldvcmtPcmRlclR5cGUpIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRXb3JrT3JkZXJUeXBlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2F0ZWdvcnkiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBUcmFuc2xhdGUoRGF0YS5DYXRlZ29yeSkgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENhdGVnb3J5IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkSW1wYWN0IikgJV0KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgVHJhbnNsYXRlKERhdGEuSW1wYWN0KSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkSW1wYWN0IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkUHJpb3JpdHkiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBUcmFuc2xhdGUoRGF0YS5Qcmlvcml0eSkgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFByaW9yaXR5IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkU2VydmljZXMiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJJVFNNRmxhZyI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFNlcnZpY2VzU3ViRWxlbWVudCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuTmFtZSkgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVmFsdWUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmxhZyBTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IlslIERhdGEuQ3VySW5jaVNpZ25hbCB8IGh0bWwgJV0iPiJbJSBEYXRhLkN1cnJJbmNpU3RhdGUgfCBodG1sICVdIjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5OYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFNlcnZpY2VzU3ViRWxlbWVudCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFNlcnZpY2VzU3ViRWxlbWVudEVtcHR5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4mbmJzcDs8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkU2VydmljZXNTdWJFbGVtZW50RW1wdHkiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRTZXJ2aWNlcyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFJlcXVlc3RlZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBEYXRhLlJlcXVlc3RlZFRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRSZXF1ZXN0ZWRUaW1lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkUGxhbm5lZFN0YXJ0VGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlslIERhdGEuUGxhbm5lZFN0YXJ0VGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFBsYW5uZWRTdGFydFRpbWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRQbGFubmVkRW5kVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlslIERhdGEuUGxhbm5lZEVuZFRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRQbGFubmVkRW5kVGltZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZEFjdHVhbFN0YXJ0VGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlslIERhdGEuQWN0dWFsU3RhcnRUaW1lIHwgTG9jYWxpemUoIlRpbWVMb25nIikgJV08L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQWN0dWFsU3RhcnRUaW1lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQWN0dWFsRW5kVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlslIERhdGEuQWN0dWFsRW5kVGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZEFjdHVhbEVuZFRpbWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDcmVhdGVUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgRGF0YS5DcmVhdGVUaW1lIHwgTG9jYWxpemUoIlRpbWVMb25nIikgJV08L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ3JlYXRlVGltZSIpICVdCiAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkIikgJV0KICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/ITSMChange.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiV29ya09yZGVyR3JhcGgiKSAlXQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgogICAgLkxhYmVsTWFyZ2luIHsKICAgICAgICBtYXJnaW4tbGVmdDogWyUgRGF0YS5MYWJlbE1hcmdpbiB8IGh0bWwgJV1weDsKICAgIH0KCiAgICAuUlRMIC5MYWJlbE1hcmdpbiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBbJSBEYXRhLkxhYmVsTWFyZ2luIHwgaHRtbCAlXXB4OwogICAgfQoKICAgIGRpdi5Xb3Jrb3JkZXJMYWJlbCB7CiAgICAgICAgd2lkdGg6IFslIERhdGEuTGFiZWxXaWR0aCB8IGh0bWwgJV1weDsKICAgIH0KCi8qIFslIFJlbmRlckJsb2NrU3RhcnQoIkNTU1dvcmtPcmRlclR5cGUiKSAlXSAqLwogICAgc3Bhbi5bJSBEYXRhLldvcmtPcmRlclR5cGVOYW1lIHwgaHRtbCAlXSB7IGJhY2tncm91bmQtY29sb3I6IFslIERhdGEuV29ya09yZGVyVHlwZUNvbG9yIHwgaHRtbCAlXTsgfQovKiBbJSBSZW5kZXJCbG9ja0VuZCgiQ1NTV29ya09yZGVyVHlwZSIpICVdICovCgovKiBbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDU1NUaW1lTGluZSIpICVdICovCiAgICBkaXYuVGltZWxpbmUgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IFslIERhdGEuVGltZUxpbmVDb2xvciB8IGh0bWwgJV07CiAgICAgICAgbGVmdDogWyUgRGF0YS5UaW1lTGluZUxlZnQgfCBodG1sICVdJTsKICAgICAgICB3aWR0aDogWyUgRGF0YS5UaW1lTGluZVdpZHRoIHwgaHRtbCAlXXB4OwogICAgfQoKICAgIC5SVEwgZGl2LlRpbWVsaW5lIHsKICAgICAgICBsZWZ0OiBhdXRvOwogICAgICAgIHJpZ2h0OiBbJSBEYXRhLlRpbWVMaW5lTGVmdCB8IGh0bWwgJV0lOwogICAgfQovKiBbJSBSZW5kZXJCbG9ja0VuZCgiQ1NTVGltZUxpbmUiKSAlXSAqLwo8L3N0eWxlPgoKPGRpdiBjbGFzcz0iV29ya29yZGVyR3JhcGhCb3giPgogICAgPGRpdiBjbGFzcz0iV29ya29yZGVyR3JhcGgiPgogICAgICAgIDxkaXYgY2xhc3M9IkxpbmVzU2NhbGVCb3giPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJMaW5lc1NjYWxlIExhYmVsTWFyZ2luIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVGltZUxpbmUiKSAlXQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVGltZWxpbmUiPiZuYnNwOzwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGltZUxpbmUiKSAlXQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU2NhbGVWZXJ0aWNhbExpbmUgU2NhbGUwIj4mbmJzcDs8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNjYWxlVmVydGljYWxMaW5lIFNjYWxlMjAiPiZuYnNwOzwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU2NhbGVWZXJ0aWNhbExpbmUgU2NhbGU0MCI+Jm5ic3A7PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTY2FsZVZlcnRpY2FsTGluZSBTY2FsZTYwIj4mbmJzcDs8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNjYWxlVmVydGljYWxMaW5lIFNjYWxlODAiPiZuYnNwOzwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU2NhbGVWZXJ0aWNhbExpbmUgU2NhbGUxMDAiPiZuYnNwOzwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIldvcmtPcmRlckl0ZW0iKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldvcmtvcmRlckxhYmVsIiB0aXRsZT0iWyUgRGF0YS5Xb3JrT3JkZXJMYWJlbCB8IGh0bWwgJV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJGbGFnIFNtYWxsIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJbJSBEYXRhLldvcmtPcmRlclN0YXRlU2lnbmFsIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuV29ya09yZGVyU3RhdGUpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1dvcmtPcmRlcklEPVslIERhdGEuV29ya09yZGVySUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgWyUgRGF0YS5Xb3JrT3JkZXJOdW1iZXIgfCBodG1sICVdLgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJXb3JrT3JkZXJJdGVtU3RhdGUiKSAlXQogICAgICAgICAgICAgICAgLSBbJSBUcmFuc2xhdGUoRGF0YS5Xb3JrT3JkZXJTdGF0ZSkgfCBodG1sICVdClslIFJlbmRlckJsb2NrRW5kKCJXb3JrT3JkZXJJdGVtU3RhdGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJXb3JrT3JkZXJJdGVtVGl0bGUiKSAlXQogICAgICAgICAgICAgICAgLSBbJSBEYXRhLldvcmtPcmRlclRpdGxlIHwgdHJ1bmNhdGUoMjApIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiV29ya09yZGVySXRlbVRpdGxlIikgJV0KICAgICAgICAgICAgPC9hPgogICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiV29ya09yZGVySXRlbUdyYXBoIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXb3Jrb3JkZXIgTGFiZWxNYXJnaW4iPgogICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRJVFNNV29ya09yZGVyWm9vbTtXb3JrT3JkZXJJRD1bJSBEYXRhLldvcmtPcmRlcklEIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJbJSBEYXRhLldvcmtPcmRlclR5cGUgfCBodG1sICVdX3BsYW5uZWQgWyUgRGF0YS5Xb3JrT3JkZXJPcGFjaXR5ICVdIiBzdHlsZT0iWyUgRGF0YS5HcmFwaERpcmVjdGlvbiB8IGh0bWwgJV06IFslIERhdGEuUGxhbm5lZFBhZGRpbmcgfCBodG1sICVdJTsgd2lkdGg6IFslIERhdGEuUGxhbm5lZFRpY2tzIHwgaHRtbCAlXSUiPiZuYnNwOzwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJbJSBEYXRhLldvcmtPcmRlclR5cGUgfCBodG1sICVdX2FjdHVhbCBbJSBEYXRhLldvcmtPcmRlck9wYWNpdHkgJV0iIHN0eWxlPSJbJSBEYXRhLkdyYXBoRGlyZWN0aW9uIHwgaHRtbCAlXTogWyUgRGF0YS5BY3R1YWxQYWRkaW5nIHwgaHRtbCAlXSU7IHdpZHRoOiBbJSBEYXRhLkFjdHVhbFRpY2tzIHwgaHRtbCAlXSUiPiZuYnNwOzwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXb3Jrb3JkZXJEZXRhaWxzIj4KICAgICAgICAgICAgICAgIDxoMz5bJSBUcmFuc2xhdGUoIldvcmtvcmRlciBJbmZvcm1hdGlvbiIpIHwgaHRtbCAlXTwvaDM+CiAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJXb3JrT3JkZXJUaXRsZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiVGl0bGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuV29ya09yZGVyVGl0bGUgfCB0cnVuY2F0ZSg0MCkgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIldvcmtPcmRlclRpdGxlIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIldvcmtPcmRlclN0YXRlIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJTdGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgVHJhbnNsYXRlKERhdGEuV29ya09yZGVyU3RhdGUpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJXb3JrT3JkZXJTdGF0ZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJXb3JrT3JkZXJUeXBlIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJUeXBlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBUcmFuc2xhdGUoRGF0YS5Xb3JrT3JkZXJUeXBlKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiV29ya09yZGVyVHlwZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGQiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbCkgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLlZhbHVlICVdPC9wPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJXb3JrT3JkZXJBZ2VudEJsb2NrIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJXb3Jrb3JkZXIgQWdlbnQiKSB8IGh0bWwgJV06PC9sYWJlbD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW1wdHlXb3JrT3JkZXJBZ2VudCIpICVdCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj4tPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW1wdHlXb3JrT3JkZXJBZ2VudCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIldvcmtPcmRlckFnZW50IikgJV0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLldvcmtPcmRlckFnZW50VXNlckZ1bGxuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIldvcmtPcmRlckFnZW50IikgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJXb3JrT3JkZXJBZ2VudEJsb2NrIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkluc3RydWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJJbnN0cnVjdGlvbiIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5JbnN0cnVjdGlvblBsYWluIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJbnN0cnVjdGlvbiIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZXBvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlJlcG9ydCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5SZXBvcnRQbGFpbiB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVwb3J0IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlBsYW5uZWRFZmZvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlBsYW5uZWQgRWZmb3J0IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLlBsYW5uZWRFZmZvcnQgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlBsYW5uZWRFZmZvcnQiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWNjb3VudGVkVGltZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQWNjb3VudGVkIFRpbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuQWNjb3VudGVkVGltZSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQWNjb3VudGVkVGltZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQbGFubmVkU3RhcnRUaW1lIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJQbGFubmVkIFN0YXJ0IFRpbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuUGxhbm5lZFN0YXJ0VGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9wPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlBsYW5uZWRTdGFydFRpbWUiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUGxhbm5lZEVuZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlBsYW5uZWQgRW5kIFRpbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuUGxhbm5lZEVuZFRpbWUgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXTwvcD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQbGFubmVkRW5kVGltZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3R1YWxTdGFydFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkFjdHVhbCBTdGFydCBUaW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLkFjdHVhbFN0YXJ0VGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdWyUgRGF0YS5FbXB0eUFjdHVhbFN0YXJ0VGltZSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0dWFsU3RhcnRUaW1lIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdHVhbEVuZFRpbWUiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkFjdHVhbCBFbmQgVGltZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5BY3R1YWxFbmRUaW1lIHwgTG9jYWxpemUoIlRpbWVMb25nIikgJV1bJSBEYXRhLkVtcHR5QWN0dWFsRW5kVGltZSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0dWFsRW5kVGltZSIpICVdCgogICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJXb3JrT3JkZXJJdGVtR3JhcGgiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIldvcmtPcmRlckl0ZW0iKSAlXQogICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTY2FsZSIpICVdCiAgICA8ZGl2IGNsYXNzPSJMYWJlbE1hcmdpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iU2NhbGVIb3Jpem9udGFsIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iU2NhbGVFbnRyeSBTY2FsZTAgU2NhbGVFbnRyeVRhaWwiPlslIERhdGEuU3RhcnRUaW1lIHwgTG9jYWxpemUoIlRpbWVMb25nIikgJV08L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiU2NhbGVMYWJlbCIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNjYWxlRW50cnkgWyUgRGF0YS5TY2FsZUNsYXNzICVdIj5bJSBEYXRhLlNjYWxlTGFiZWwgfCBMb2NhbGl6ZSgiVGltZUxvbmciKSAlXTwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU2NhbGVMYWJlbCIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNjYWxlRW50cnkgU2NhbGU5MCBTY2FsZUVudHJ5VHJhaWwiPlslIERhdGEuRW5kVGltZSB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlNjYWxlIikgJV0KPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJXb3JrT3JkZXJHcmFwaCIpICVdCg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6RXZlbnRIYW5kbGVyOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgp1c2UgdmFycyBxdyhASVNBKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkVuY29kZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNoYW5nZUNJUEFsbG9jYXRlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbicsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01TdGF0ZU1hY2hpbmUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok1haW4nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWaXJ0dWFsRlMnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlIC0gY2hhbmdlIGxpYgoKPWhlYWQxIERFU0NSSVBUSU9OCgpBbGwgZnVuY3Rpb25zIGZvciBjaGFuZ2VzIGluIElUU01DaGFuZ2VNYW5hZ2VtZW50LgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgc2V0IHRoZSBkZWJ1ZyBmbGFnCiAgICAkU2VsZi0+e0RlYnVnfSA9ICRQYXJhbXtEZWJ1Z30gfHwgMDsKCiAgICAjIGdldCB0aGUgY2FjaGUgdHlwZSBhbmQgVFRMIChpbiBzZWNvbmRzKQogICAgJFNlbGYtPntDYWNoZVR5cGV9ID0gJ0lUU01DaGFuZ2VNYW5hZ2VtZW50JzsKICAgICRTZWxmLT57Q2FjaGVUVEx9ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSVRTTUNoYW5nZTo6Q2FjaGVUVEwnKSAqIDYwOwoKICAgIEBJU0EgPSAoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpFdmVudEhhbmRsZXInLAogICAgKTsKCiAgICAjIGluaXQgb2YgZXZlbnQgaGFuZGxlcgogICAgJFNlbGYtPkV2ZW50SGFuZGxlckluaXQoCiAgICAgICAgQ29uZmlnID0+ICdJVFNNQ2hhbmdlOjpFdmVudE1vZHVsZScsCiAgICApOwoKICAgICMgbG9hZCBjaGFuZ2UgbnVtYmVyIGdlbmVyYXRvcgogICAgbXkgJEdlbmVyYXRvck1vZHVsZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yJykKICAgICAgICB8fCAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Ok51bWJlcjo6RGF0ZUNoZWNrc3VtJzsKICAgIGlmICggISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPlJlcXVpcmVCYXNlQ2xhc3MoJEdlbmVyYXRvck1vZHVsZSkgKSB7CiAgICAgICAgZGllICJDYW4ndCBsb2FkIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9yIGJhY2tlbmQgbW9kdWxlICRHZW5lcmF0b3JNb2R1bGUhICRAIjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSB0eXBlCiAgICAkU2VsZi0+e0RCVHlwZX0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+eydEQjo6VHlwZSd9IHx8ICcnOwogICAgJFNlbGYtPntEQlR5cGV9ID0gbGMgJFNlbGYtPntEQlR5cGV9OwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIENoYW5nZUFkZCgpCgpBZGQgYSBuZXcgY2hhbmdlLiBUaGUgVXNlcklEIGlzIHRoZSBvbmx5IHJlcXVpcmVkIHBhcmFtZXRlci4KSW50ZXJuYWxseSBmaXJzdCBhIG1pbmltYWwgY2hhbmdlIGlzIGNyZWF0ZWQsIHRoZW4gQ2hhbmdlVXBkYXRlKCkgaXMgY2FsbGVkLgoKICAgIG15ICRDaGFuZ2VJRCA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpvcgoKICAgIG15ICRDaGFuZ2VJRCA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICBDaGFuZ2VUaXRsZSAgICAgPT4gJ1JlcGxhY2VtZW50IG9mIG1haWwgc2VydmVyJywgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgRGVzY3JpcHRpb24gICAgID0+ICdOZXcgbWFpbCBzZXJ2ZXIgaXMgZmFzdGVyJywgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIEp1c3RpZmljYXRpb24gICA9PiAnT2xkIG1haWwgc2VydmVyIHRvbyBzbG93JywgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDaGFuZ2VTdGF0ZUlEICAgPT4gNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIG9yIENoYW5nZVN0YXRlID0+ICdhY2NlcHRlZCcKICAgICAgICBDaGFuZ2VTdGF0ZSAgICAgPT4gJ2FjY2VwdGVkJywgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIG9yIENoYW5nZVN0YXRlSUQgPT4gNAogICAgICAgIENoYW5nZU1hbmFnZXJJRCA9PiA1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDaGFuZ2VCdWlsZGVySUQgPT4gNiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgQ2F0ZWdvcnlJRCAgICAgID0+IDcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSBvciBDYXRlZ29yeSA9PiAnMyBub3JtYWwnCiAgICAgICAgQ2F0ZWdvcnkgICAgICAgID0+ICczIG5vcm1hbCcsICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSBvciBDYXRlZ29yeUlEID0+IDQKICAgICAgICBJbXBhY3RJRCAgICAgICAgPT4gOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIG9yIEltcGFjdCA9PiAnNCBoaWdoJwogICAgICAgIEltcGFjdCAgICAgICAgICA9PiAnNCBoaWdoJywgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgb3IgSW1wYWN0SUQgPT4gNQogICAgICAgIFByaW9yaXR5SUQgICAgICA9PiA5LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgb3IgUHJpb3JpdHkgPT4gJzUgdmVyeSBoaWdoJwogICAgICAgIFByaW9yaXR5ICAgICAgICA9PiAnNSB2ZXJ5IGhpZ2gnLCAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgb3IgUHJpb3JpdHlJRCA9PiA2CiAgICAgICAgQ0FCQWdlbnRzICAgICAgID0+IFsgMSwgMiwgNCBdLCAgICAgIyBVc2VySURzICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIENBQkN1c3RvbWVycyAgICA9PiBbICd0dCcsICdtbScgXSwgICMgQ3VzdG9tZXJVc2VySURzICAjIChvcHRpb25hbCkKICAgICAgICBSZXF1ZXN0ZWRUaW1lICAgPT4gJzIwMDYtMDEtMTkgMjM6NTk6NTknLCAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgRHluYW1pY0ZpZWxkX1ggID0+ICdTdW4nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIER5bmFtaWNGaWVsZF9ZICA9PiAnRWFydGgnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQ2hhbmdlQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBVc2VySUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBhIHBsYWluIHRleHQgdmVyc2lvbiBvZiBhcmd1bWVudHMgd2hpY2ggbWlnaHQgY29udGFpbiBIVE1MIG1hcmt1cAogICAgQVJHVU1FTlQ6CiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhEZXNjcmlwdGlvbiBKdXN0aWZpY2F0aW9uKSkgewoKICAgICAgICBuZXh0IEFSR1VNRU5UIGlmICFleGlzdHMgJFBhcmFteyRBcmd1bWVudH07CgogICAgICAgICRQYXJhbXsiJHtBcmd1bWVudH1QbGFpbiJ9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5Ub0FzY2lpKAogICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFteyRBcmd1bWVudH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBFdmVuIHdoZW4gcGFzc2VkIGEgcGxhaW4gQVNDSUkgc3RyaW5nLAogICAgICAgICMgVG9Bc2NpaSgpIGNhbiByZXR1cm4gYSBub24tdXRmOCBzdHJpbmcgd2l0aCBjaGFycyBpbiB0aGUgZXh0ZW5kZWQgcmFuZ2UuCiAgICAgICAgIyBVcGdyYWRlIHRvIHV0Zi04IGluIG9yZGVyIHRvIGNvbXBseSB0byB0aGUgT1RSUy1jb252ZW50aW9uLgogICAgICAgIHV0Zjg6OnVwZ3JhZGUoICRQYXJhbXsiJHtBcmd1bWVudH1QbGFpbiJ9ICk7CiAgICB9CgogICAgIyBjaGVjayB0aGUgcGFyYW1ldGVycwogICAgcmV0dXJuIGlmICEkU2VsZi0+X0NoZWNrQ2hhbmdlUGFyYW1zKCVQYXJhbSk7CgogICAgIyB0cmlnZ2VyIENoYW5nZUFkZFByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnQ2hhbmdlQWRkUHJlJywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjcmVhdGUgYSBuZXcgY2hhbmdlIG51bWJlcgogICAgbXkgJENoYW5nZU51bWJlciA9ICRTZWxmLT5DaGFuZ2VDcmVhdGVOdW1iZXIoKTsKCiAgICAjIGdldCBpbml0aWFsIGNoYW5nZSBzdGF0ZSBpZAogICAgbXkgJENoYW5nZVN0YXRlSUQgPSBkZWxldGUgJFBhcmFte0NoYW5nZVN0YXRlSUR9OwogICAgaWYgKCAhJENoYW5nZVN0YXRlSUQgKSB7CiAgICAgICAgbXkgJE5leHRTdGF0ZUlEcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNU3RhdGVNYWNoaW5lJyktPlN0YXRlVHJhbnNpdGlvbkdldCgKICAgICAgICAgICAgU3RhdGVJRCA9PiAwLAogICAgICAgICAgICBDbGFzcyAgID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICApOwogICAgICAgICRDaGFuZ2VTdGF0ZUlEID0gJE5leHRTdGF0ZUlEcy0+WzBdOwogICAgfQoKICAgICMgZ2V0IGRlZmF1bHQgQ2F0ZWdvcnkgaWYgbm90IGRlZmluZWQKICAgIG15ICRDYXRlZ29yeUlEID0gZGVsZXRlICRQYXJhbXtDYXRlZ29yeUlEfTsKICAgIGlmICggISRDYXRlZ29yeUlEICkgewogICAgICAgIG15ICREZWZhdWx0Q2F0ZWdvcnkgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0lUU01DaGFuZ2U6OkNhdGVnb3J5OjpEZWZhdWx0Jyk7CiAgICAgICAgJENhdGVnb3J5SUQgPSAkU2VsZi0+Q2hhbmdlQ0lQTG9va3VwKAogICAgICAgICAgICBDSVAgID0+ICREZWZhdWx0Q2F0ZWdvcnksCiAgICAgICAgICAgIFR5cGUgPT4gJ0NhdGVnb3J5JywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGRlZmF1bHQgSW1wYWN0IGlmIG5vdCBkZWZpbmVkCiAgICBteSAkSW1wYWN0SUQgPSBkZWxldGUgJFBhcmFte0ltcGFjdElEfTsKICAgIGlmICggISRJbXBhY3RJRCApIHsKICAgICAgICBteSAkRGVmYXVsdEltcGFjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSVRTTUNoYW5nZTo6SW1wYWN0OjpEZWZhdWx0Jyk7CiAgICAgICAgJEltcGFjdElEID0gJFNlbGYtPkNoYW5nZUNJUExvb2t1cCgKICAgICAgICAgICAgQ0lQICA9PiAkRGVmYXVsdEltcGFjdCwKICAgICAgICAgICAgVHlwZSA9PiAnSW1wYWN0JywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGRlZmF1bHQgUHJpb3JpdHkgaWYgbm90IGRlZmluZWQKICAgIG15ICRQcmlvcml0eUlEID0gZGVsZXRlICRQYXJhbXtQcmlvcml0eUlEfTsKICAgIGlmICggISRQcmlvcml0eUlEICkgewogICAgICAgICRQcmlvcml0eUlEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01DaGFuZ2VDSVBBbGxvY2F0ZScpLT5Qcmlvcml0eUFsbG9jYXRpb25HZXQoCiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIEltcGFjdElEICAgPT4gJEltcGFjdElELAogICAgICAgICk7CiAgICB9CgogICAgIyBpZiBubyBjaGFuZ2UgYnVpbGRlciBpZCB3YXMgZ2l2ZW4sIHRha2UgdGhlIHVzZXIgaWQKICAgIG15ICRDaGFuZ2VCdWlsZGVySUQgPSAkUGFyYW17Q2hhbmdlQnVpbGRlcklEfSB8fCAkUGFyYW17VXNlcklEfTsKCiAgICAjIGFkZCBjaGFuZ2UgdG8gZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnSU5TRVJUIElOVE8gY2hhbmdlX2l0ZW0gJwogICAgICAgICAgICAuICcoY2hhbmdlX251bWJlciwgY2hhbmdlX3N0YXRlX2lkLCBjaGFuZ2VfYnVpbGRlcl9pZCwgJwogICAgICAgICAgICAuICdjYXRlZ29yeV9pZCwgaW1wYWN0X2lkLCBwcmlvcml0eV9pZCwgJwogICAgICAgICAgICAuICdjcmVhdGVfdGltZSwgY3JlYXRlX2J5LCBjaGFuZ2VfdGltZSwgY2hhbmdlX2J5KSAnCiAgICAgICAgICAgIC4gJ1ZBTFVFUyAoPywgPywgPywgPywgPywgPywgY3VycmVudF90aW1lc3RhbXAsID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/KScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkQ2hhbmdlTnVtYmVyLCAgXCRDaGFuZ2VTdGF0ZUlELCBcJENoYW5nZUJ1aWxkZXJJRCwKICAgICAgICAgICAgXCRDYXRlZ29yeUlELCAgICBcJEltcGFjdElELCAgICAgIFwkUHJpb3JpdHlJRCwKICAgICAgICAgICAgXCRQYXJhbXtVc2VySUR9LCBcJFBhcmFte1VzZXJJRH0sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBnZXQgY2hhbmdlIGlkCiAgICBteSAkQ2hhbmdlSUQgPSAkU2VsZi0+Q2hhbmdlTG9va3VwKAogICAgICAgIENoYW5nZU51bWJlciA9PiAkQ2hhbmdlTnVtYmVyLAogICAgKTsKCiAgICByZXR1cm4gaWYgISRDaGFuZ2VJRDsKCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgZm9yIG15ICRLZXkgKAogICAgICAgICdDaGFuZ2VHZXQ6OklEOjonIC4gJENoYW5nZUlELAogICAgICAgICdDaGFuZ2VMaXN0JywKICAgICAgICAnQ2hhbmdlTG9va3VwOjpDaGFuZ2VJRDo6JyAuICRDaGFuZ2VJRCwKICAgICAgICAnQ2hhbmdlTG9va3VwOjpDaGFuZ2VOdW1iZXI6OicgLiAkQ2hhbmdlTnVtYmVyLAogICAgICAgICkKICAgIHsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkRlbGV0ZSgKICAgICAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgIEtleSAgPT4gJEtleSwKICAgICAgICApOwogICAgfQoKICAgICMgdHJpZ2dlciBDaGFuZ2VBZGRQb3N0LUV2ZW50CiAgICAjICh5ZXMsIHdlIHdhbnQgZG8gZG8gdGhpcyBiZWZvcmUgdGhlIENoYW5nZVVwZGF0ZSEpCiAgICAjIG92ZXJyaWRlIHRoZSBhY3R1YWxseSBwYXNzZWQgY2hhbmdlIHN0YXRlIHdpdGggdGhlIGluaXRpYWwgY2hhbmdlIHN0YXRlCiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdDaGFuZ2VBZGRQb3N0JywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIENhdGVnb3J5SUQgICAgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIEltcGFjdElEICAgICAgPT4gJEltcGFjdElELAogICAgICAgICAgICBQcmlvcml0eUlEICAgID0+ICRQcmlvcml0eUlELAogICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZUlELAogICAgICAgICAgICBDaGFuZ2VOdW1iZXIgID0+ICRDaGFuZ2VOdW1iZXIsCiAgICAgICAgfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgdXBkYXRlIGNoYW5nZSB3aXRoIHJlbWFpbmluZyBwYXJhbWV0ZXJzCiAgICAjIHRoZSBhbHJlYWR5IGhhbmRsZXMgcGFyYW1zIGhhdmUgYmVlbiBkZWxldGVkIGZyb20gJVBhcmFtCiAgICBteSAkVXBkYXRlU3VjY2VzcyA9ICRTZWxmLT5DaGFuZ2VVcGRhdGUoCiAgICAgICAgJVBhcmFtLAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICk7CgogICAgIyBjaGVjayB1cGRhdGUgZXJyb3IKICAgIGlmICggISRVcGRhdGVTdWNjZXNzICkgewoKICAgICAgICAjIGRlbGV0ZSBjaGFuZ2UgaWYgaXQgY291bGQgbm90IGJlIHVwZGF0ZWQKICAgICAgICAkU2VsZi0+Q2hhbmdlRGVsZXRlKAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICByZXR1cm4gJENoYW5nZUlEOwp9Cgo9aGVhZDIgQ2hhbmdlVXBkYXRlKCkKClVwZGF0ZSBhIGNoYW5nZS4KTGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBpcyByZW1vdmVkIGZyb20gQzxDaGFuZ2VUaXRsZT4uClBhc3NpbmcgdW5kZWZpbmVkIHZhbHVlcyBpcyBnZW5lcmFsbHkgbm90IGFsbG93ZWQuCkFuIGV4Y2VwdGlvbiBpcyB0aGUgcGFyYW1ldGVyIEM8UmVxdWVzdGVkVGltZT4sIHdoZXJlIHRoZSB1bmRlZmluZWQgdmFsdWUKaW5kaWNhdGVzIHRoYXQgcmVxdWVzdGVkIHRpbWUgb2YgdGhlIGNoYW5nZSBzaG91bGQgYmUgY2xlYXJlZC4KCiAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVVwZGF0ZSgKICAgICAgICBDaGFuZ2VJRCAgICAgICAgICAgPT4gMTIzLAogICAgICAgIENoYW5nZVRpdGxlICAgICAgICA9PiAnUmVwbGFjZW1lbnQgb2Ygc2xvdyBtYWlsIHNlcnZlcicsICAjIChvcHRpb25hbCkKICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgPT4gJ05ldyBtYWlsIHNlcnZlciBpcyBmYXN0ZXInLCAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgSnVzdGlmaWNhdGlvbiAgICAgID0+ICdPbGQgbWFpbCBzZXJ2ZXIgdG9vIHNsb3cnLCAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIENoYW5nZVN0YXRlSUQgICAgICA9PiA0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgb3IgQ2hhbmdlU3RhdGUgPT4gJ2FjY2VwdGVkJwogICAgICAgIENoYW5nZVN0YXRlICAgICAgICA9PiAnYWNjZXB0ZWQnLCAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgb3IgQ2hhbmdlU3RhdGVJRCA9PiA0CiAgICAgICAgQ2hhbmdlTWFuYWdlcklEICAgID0+IDUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIENoYW5nZUJ1aWxkZXJJRCAgICA9PiA2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDYXRlZ29yeUlEICAgICAgICAgPT4gNywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIG9yIENhdGVnb3J5ID0+ICczIG5vcm1hbCcKICAgICAgICBDYXRlZ29yeSAgICAgICAgICAgPT4gJzMgbm9ybWFsJywgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIG9yIENhdGVnb3J5SUQgPT4gNAogICAgICAgIEltcGFjdElEICAgICAgICAgICA9PiA4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgb3IgSW1wYWN0ID0+ICc0IGhpZ2gnCiAgICAgICAgSW1wYWN0ICAgICAgICAgICAgID0+ICc0IGhpZ2gnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSBvciBJbXBhY3RJRCA9PiA1CiAgICAgICAgUHJpb3JpdHlJRCAgICAgICAgID0+IDksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSBvciBQcmlvcml0eSA9PiAnNSB2ZXJ5IGhpZ2gnCiAgICAgICAgUHJpb3JpdHkgICAgICAgICAgID0+ICc1IHZlcnkgaGlnaCcsICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSBvciBQcmlvcml0eUlEID0+IDYKICAgICAgICBDQUJBZ2VudHMgICAgICAgICAgPT4gWyAxLCAyLCA0IF0sICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIFVzZXJJRHMKICAgICAgICBDQUJDdXN0b21lcnMgICAgICAgPT4gWyAndHQnLCAnbW0nIF0sICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIEN1c3RvbWVyVXNlcklEcwogICAgICAgIFJlcXVlc3RlZFRpbWUgICAgICA9PiAnMjAwNi0wMS0xOSAyMzo1OTo1OScsICAgICAgICAgICAgICAjIChvcHRpb25hbCkgb3IgJ3VuZGVmJywgd2hpY2ggY2xlYXJzIHRoZSB0aW1lCiAgICAgICAgRHluYW1pY0ZpZWxkX1ggICAgID0+ICdTdW4nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIER5bmFtaWNGaWVsZF9ZICAgICA9PiAnRWFydGgnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBCeXBhc3NTdGF0ZU1hY2hpbmUgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIGRlZmF1bHQgMCwgaWYgMSB0aGUgc3RhdGUgbWFjaGluZSB3aWxsIGJlIGJ5cGFzc2VkCiAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIENoYW5nZVVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDaGFuZ2VJRCBVc2VySUQgKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHRoYXQgbm90IGJvdGggQ2hhbmdlU3RhdGUgYW5kIENoYW5nZVN0YXRlSUQgYXJlIGdpdmVuCiAgICBpZiAoICRQYXJhbXtDaGFuZ2VTdGF0ZX0gJiYgJFBhcmFte0NoYW5nZVN0YXRlSUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBlaXRoZXIgQ2hhbmdlU3RhdGUgT1IgQ2hhbmdlU3RhdGVJRCAtIG5vdCBib3RoIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB3aGVuIHRoZSBTdGF0ZSBpcyBnaXZlbiwgdGhlbiBsb29rIHVwIHRoZSBJRAogICAgaWYgKCAkUGFyYW17Q2hhbmdlU3RhdGV9ICkgewogICAgICAgICRQYXJhbXtDaGFuZ2VTdGF0ZUlEfSA9ICRTZWxmLT5DaGFuZ2VTdGF0ZUxvb2t1cCgKICAgICAgICAgICAgQ2hhbmdlU3RhdGUgPT4gJFBhcmFte0NoYW5nZVN0YXRlfSwKICAgICAgICApOwogICAgfQoKICAgICMgd2hlbiBDSVAgaXMgZ2l2ZW4sIHRoZW4gbG9vayB1cCB0aGUgSUQsCiAgICAjIG90aGVyd2lzZSBsb29rIHVwIHRoZSBuYW1lcywgdGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBub3RpZmljYXRpb24gcnVsZXMKICAgIGZvciBteSAkVHlwZSAocXcoQ2F0ZWdvcnkgSW1wYWN0IFByaW9yaXR5KSkgewogICAgICAgIGlmICggJFBhcmFteyRUeXBlfSApIHsKICAgICAgICAgICAgJFBhcmFteyIke1R5cGV9SUQifSA9ICRTZWxmLT5DaGFuZ2VDSVBMb29rdXAoCiAgICAgICAgICAgICAgICBDSVAgID0+ICRQYXJhbXskVHlwZX0sCiAgICAgICAgICAgICAgICBUeXBlID0+ICRUeXBlLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRQYXJhbXsiJHtUeXBlfUlEIn0gKSB7CiAgICAgICAgICAgICRQYXJhbXskVHlwZX0gPSAkU2VsZi0+Q2hhbmdlQ0lQTG9va3VwKAogICAgICAgICAgICAgICAgSUQgICA9PiAkUGFyYW17IiR7VHlwZX1JRCJ9LAogICAgICAgICAgICAgICAgVHlwZSA9PiAkVHlwZSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBub3JtYWxpemUgdGhlIFRpdGxlLCB3aGVuIGl0IGlzIGdpdmVuCiAgICBpZiAoICRQYXJhbXtDaGFuZ2VUaXRsZX0gJiYgIXJlZiAkUGFyYW17Q2hhbmdlVGl0bGV9ICkgewoKICAgICAgICAjIHJlbW92ZSBsZWFkaW5nIHdoaXRlc3BhY2UKICAgICAgICAkUGFyYW17Q2hhbmdlVGl0bGV9ID1+IHN7IFxBIFxzKyB9e314bXM7CgogICAgICAgICMgcmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UKICAgICAgICAkUGFyYW17Q2hhbmdlVGl0bGV9ID1+IHN7IFxzKyBceiB9e314bXM7CiAgICB9CgogICAgIyBnZXQgYSBwbGFpbiB0ZXh0IHZlcnNpb24gb2YgYXJndW1lbnRzIHdoaWNoIG1pZ2h0IGNvbnRhaW4gSFRNTCBtYXJrdXAKICAgIEFSR1VNRU5UOgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoRGVzY3JpcHRpb24gSnVzdGlmaWNhdGlvbikpIHsKCiAgICAgICAgbmV4dCBBUkdVTUVOVCBpZiAhZXhpc3RzICRQYXJhbXskQXJndW1lbnR9OwoKICAgICAgICAkUGFyYW17IiR7QXJndW1lbnR9UGxhaW4ifSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpIVE1MVXRpbHMnKS0+VG9Bc2NpaSgKICAgICAgICAgICAgU3RyaW5nID0+ICRQYXJhbXskQXJndW1lbnR9LAogICAgICAgICk7CgogICAgICAgICMgRXZlbiB3aGVuIHBhc3NlZCBhIHBsYWluIEFTQ0lJIHN0cmluZywKICAgICAgICAjIFRvQXNjaWkoKSBjYW4gcmV0dXJuIGEgbm9uLXV0Zjggc3RyaW5nIHdpdGggY2hhcnMgaW4gdGhlIGV4dGVuZGVkIHJhbmdlLgogICAgICAgICMgVXBncmFkZSB0byB1dGYtOCBpbiBvcmRlciB0byBjb21wbHkgdG8gdGhlIE9UUlMtY29udmVudGlvbi4KICAgICAgICB1dGY4Ojp1cGdyYWRlKCAkUGFyYW17IiR7QXJndW1lbnR9UGxhaW4ifSApOwogICAgfQoKICAgICMgY2hlY2sgdGhlIGdpdmVuIHBhcmFtZXRlcnMKICAgIHJldHVybiBpZiAhJFNlbGYtPl9DaGVja0NoYW5nZVBhcmFtcyglUGFyYW0pOwoKICAgICMgY2hlY2sgc2FuaXR5IG9mIHRoZSBuZXcgc3RhdGUgd2l0aCB0aGUgc3RhdGUgbWFjaGluZQogICAgaWYgKCAkUGFyYW17Q2hhbmdlU3RhdGVJRH0gKSB7CgogICAgICAgICMgZ2V0IGNoYW5nZSBpZAogICAgICAgIG15ICRDaGFuZ2VJRCA9ICRQYXJhbXtDaGFuZ2VJRH07CgogICAgICAgICMgZG8gbm90IGdpdmUgQ2hhbmdlUG9zc2libGVTdGF0ZXNHZXQoKSB0aGUgQ2hhbmdlSUQKICAgICAgICAjIGlmIHRoZSBzdGF0ZW1hY2hpbmUgc2hvdWxkIGJlIGJ5cGFzc2VkLgogICAgICAgICMgQ2hhbmdlUG9zc2libGVTdGF0ZXNHZXQoKSB3aWxsIHRoZW4gcmV0dXJuIGFsbCBjaGFuZ2Ugc3RhdGVzLgogICAgICAgIGlmICggJFBhcmFte0J5cGFzc1N0YXRlTWFjaGluZX0gKSB7CiAgICAgICAgICAgICRDaGFuZ2VJRCA9IHVuZGVmOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgdGhlIGxpc3Qgb2YgcG9zc2libGUgbmV4dCBzdGF0ZXMKICAgICAgICBteSAkU3RhdGVMaXN0ID0gJFNlbGYtPkNoYW5nZVBvc3NpYmxlU3RhdGVzR2V0KAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAhZ3JlcCB7ICRfLT57S2V5fSA9PSAkUGFyYW17Q2hhbmdlU3RhdGVJRH0gfSBAeyRTdGF0ZUxpc3R9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIHN0YXRlICRQYXJhbXtDaGFuZ2VTdGF0ZUlEfSBpcyBub3QgYSBwb3NzaWJsZSBuZXh0IHN0YXRlISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyB0cmlnZ2VyIENoYW5nZVVwZGF0ZVByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnQ2hhbmdlVXBkYXRlUHJlJywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgb2xkIGRhdGEgdG8gYmUgZ2l2ZW4gdG8gcG9zdCBldmVudCBoYW5kbGVyCiAgICBteSAkQ2hhbmdlRGF0YSA9ICRTZWxmLT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyB1cGRhdGUgQ0FCCiAgICBpZiAoIGV4aXN0cyAkUGFyYW17Q0FCQWdlbnRzfSB8fCBleGlzdHMgJFBhcmFte0NBQkN1c3RvbWVyc30gKSB7CiAgICAgICAgcmV0dXJuIGlmICEkU2VsZi0+Q2hhbmdlQ0FCVXBkYXRlKCVQYXJhbSk7CiAgICB9CgogICAgIyBzZXQgdGhlIGNoYW5nZSBkeW5hbWljIGZpZWxkcwogICAgS0VZOgogICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJVBhcmFtICkgewoKICAgICAgICBuZXh0IEtFWSBpZiAkS2V5ICF+IG17IFxBIER5bmFtaWNGaWVsZF8oLiopIFx6IH14bXM7CgogICAgICAgICMgc2F2ZSB0aGUgcmVhbCBuYW1lIG9mIHRoZSBkeW5hbWljIGZpZWxkICh3aXRob3V0IHByZWZpeCkKICAgICAgICBteSAkRHluYW1pY0ZpZWxkTmFtZSA9ICQxOwoKICAgICAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZCBjb25maWcKICAgICAgICBteSAkRHluYW1pY0ZpZWxkQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgICAgIE5hbWUgPT4gJER5bmFtaWNGaWVsZE5hbWUsCiAgICAgICAgKTsKCiAgICAgICAgIyB3cml0ZSB2YWx1ZSB0byBkeW5hbWljIGZpZWxkCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyktPlZhbHVlU2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkUGFyYW17JEtleX0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgbWFwIHVwZGF0ZSBhdHRyaWJ1dGVzIHRvIGNvbHVtbiBuYW1lcwogICAgbXkgJUF0dHJpYnV0ZSA9ICgKICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgPT4gJ3RpdGxlJywKICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgPT4gJ2Rlc2NyaXB0aW9uJywKICAgICAgICBKdXN0aWZpY2F0aW9uICAgICAgPT4gJ2p1c3RpZmljYXRpb24nLAogICAgICAgIENoYW5nZVN0YXRlSUQgICAgICA9PiAnY2hhbmdlX3N0YXRlX2lkJywKICAgICAgICBDaGFuZ2VNYW5hZ2VySUQgICAgPT4gJ2NoYW5nZV9tYW5hZ2VyX2lkJywKICAgICAgICBDaGFuZ2VCdWlsZGVySUQgICAgPT4gJ2NoYW5nZV9idWlsZGVyX2lkJywKICAgICAgICBDYXRlZ29yeUlEICAgICAgICAgPT4gJ2NhdGVnb3J5X2lkJywKICAgICAgICBJbXBhY3RJRCAgICAgICAgICAgPT4gJ2ltcGFjdF9pZCcsCiAgICAgICAgUHJpb3JpdHlJRCAgICAgICAgID0+ICdwcmlvcml0eV9pZCcsCiAgICAgICAgUmVxdWVzdGVkVGltZSAgICAgID0+ICdyZXF1ZXN0ZWRfdGltZScsCiAgICAgICAgRGVzY3JpcHRpb25QbGFpbiAgID0+ICdkZXNjcmlwdGlvbl9wbGFpbicsCiAgICAgICAgSnVzdGlmaWNhdGlvblBsYWluID0+ICdqdXN0aWZpY2F0aW9uX3BsYWluJywKICAgICk7CgogICAgIyBidWlsZCBTUUwgdG8gdXBkYXRlIGNoYW5nZQogICAgbXkgJFNRTCA9ICdVUERBVEUgY2hhbmdlX2l0ZW0gU0VUICc7CiAgICBteSBAQmluZDsKCiAgICBBVFRSSUJVVEU6CiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAlQXR0cmlidXRlICkgewoKICAgICAgICAjIHByZXNlcnZlIHRoZSBvbGQgdmFsdWUsIHdoZW4gdGhlIGNvbHVtbiBpc24ndCBpbiBmdW5jdGlvbiBwYXJhbWV0ZXJzCiAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgIWV4aXN0cyAkUGFyYW17JEF0dHJpYnV0ZX07CgogICAgICAgICMgcGFyYW0gY2hlY2tpbmcgaGFzIGFscmVhZHkgYmVlbiBkb25lLCBzbyB0aGlzIGlzIHNhZmUKICAgICAgICAkU1FMIC49ICIkQXR0cmlidXRleyRBdHRyaWJ1dGV9ID0gPywgIjsKICAgICAgICBwdXNoIEBCaW5kLCBcJFBhcmFteyRBdHRyaWJ1dGV9OwogICAgfQoKICAgICRTUUwgLj0gJ2NoYW5nZV90aW1lID0gY3VycmVudF90aW1lc3RhbXAsIGNoYW5nZV9ieSA9ID8gJzsKICAgIHB1c2ggQEJpbmQsIFwkUGFyYW17VXNlcklEfTsKICAgICRTUUwgLj0gJ1dIRVJFIGlkID0gPyc7CiAgICBwdXNoIEBCaW5kLCBcJFBhcmFte0NoYW5nZUlEfTsKCiAgICAjIHVwZGF0ZSBjaGFuZ2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFxAQmluZCwKICAgICk7CgogICAgIyBkZWxldGUgY2FjaGUKICAgIGZvciBteSAkS2V5ICgKICAgICAgICAnQ2hhbmdlR2V0OjpJRDo6JyAuICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgJ0NoYW5nZUxpc3QnLAogICAgICAgICdDaGFuZ2VMb29rdXA6OkNoYW5nZUlEOjonIC4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICAnQ2hhbmdlTG9va3VwOjpDaGFuZ2VOdW1iZXI6OicgLiAkQ2hhbmdlRGF0YS0+e0NoYW5nZU51bWJlcn0sCiAgICAgICAgKQogICAgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgIyB0cmlnZ2VyIENoYW5nZVVwZGF0ZVBvc3QtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ0NoYW5nZVVwZGF0ZVBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgT2xkQ2hhbmdlRGF0YSA9PiAkQ2hhbmdlRGF0YSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENoYW5nZUdldCgpCgpSZXR1cm4gYSBjaGFuZ2UgYXMgYSBoYXNoIHJlZmVyZW5jZS4KV2hlbiB0aGUgQzx3b3Jrb3JkZXI+IGRvZXMgbm90IGV4aXN0LCBhIGZhbHNlIHZhbHVlIGlzIHJldHVybmVkLgpUaGUgb3B0aW9uYWwgb3B0aW9uIEM8TG9nTm8+IHR1cm5zIG9mZiBsb2dnaW5nIHdoZW4gdGhlIGNoYW5nZSBkb2VzIG5vdCBleGlzdC4KCiAgICBteSAkQ2hhbmdlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+IDEyMywKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIExvZ05vICAgID0+IDEsICAgICAgIyBvcHRpb25hbCwgdHVybnMgb2ZmIGxvZ2dpbmcgd2hlbiB0aGUgY2hhbmdlIGRvZXMgbm90IGV4aXN0CiAgICApOwoKVGhlIHJldHVybmVkIGhhc2ggcmVmZXJlbmNlIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgZWxlbWVudHM6CgogICAgJENoYW5nZXtDaGFuZ2VJRH0KICAgICRDaGFuZ2V7Q2hhbmdlTnVtYmVyfQogICAgJENoYW5nZXtDaGFuZ2VTdGF0ZUlEfQogICAgJENoYW5nZXtDaGFuZ2VTdGF0ZX0gICAgICAgICAgICAjIGZldGNoZWQgZnJvbSB0aGUgZ2VuZXJhbCBjYXRhbG9nCiAgICAkQ2hhbmdle0NoYW5nZVN0YXRlU2lnbmFsfSAgICAgICMgZmV0Y2hlZCBmcm9tIFN5c0NvbmZpZwogICAgJENoYW5nZXtDaGFuZ2VUaXRsZX0KICAgICRDaGFuZ2V7RGVzY3JpcHRpb259CiAgICAkQ2hhbmdle0Rlc2NyaXB0aW9uUGxhaW59CiAgICAkQ2hhbmdle0p1c3RpZmljYXRpb259CiAgICAkQ2hhbmdle0p1c3RpZmljYXRpb25QbGFpbn0KICAgICRDaGFuZ2V7Q2hhbmdlTWFuYWdlcklEfQogICAgJENoYW5nZXtDaGFuZ2VCdWlsZGVySUR9CiAgICAkQ2hhbmdle0NhdGVnb3J5SUR9CiAgICAkQ2hhbmdle0NhdGVnb3J5fQogICAgJENoYW5nZXtJbXBhY3RJRH0KICAgICRDaGFuZ2V7SW1wYWN0fQogICAgJENoYW5nZXtQcmlvcml0eUlEfQogICAgJENoYW5nZXtQcmlvcml0eX0KICAgICRDaGFuZ2V7V29ya09yZGVySURzfSAgICAgICAgICAgIyBhcnJheSByZWZlcmVuY2Ugd2l0aCBXb3JrT3JkZXJJRHMsIHNvcnRlZCBieSBXb3JrT3JkZXJOdW1iZXIKICAgICRDaGFuZ2V7V29ya09yZGVyQ291bnR9ICAgICAgICAgIyBudW1iZXIgb2Ygd29ya29yZGVycwogICAgJENoYW5nZXtDQUJBZ2VudHN9ICAgICAgICAgICAgICAjIGFycmF5IHJlZmVyZW5jZSB3aXRoIENBQiBBZ2VudCBVc2VySURzCiAgICAkQ2hhbmdle0NBQkN1c3RvbWVyc30gICAgICAgICAgICMgYXJyYXkgcmVmZXJlbmNlIHdpdGggQ0FCIEN1c3RvbWVyVXNlcklEcwogICAgJENoYW5nZXtQbGFubmVkU3RhcnRUaW1lfSAgICAgICAjIGRldGVybWluZWQgZnJvbSB0aGUgd29ya29yZGVycwogICAgJENoYW5nZXtQbGFubmVkRW5kVGltZX0gICAgICAgICAjIGRldGVybWluZWQgZnJvbSB0aGUgd29ya29yZGVycwogICAgJENoYW5nZXtBY3R1YWxTdGFydFRpbWV9ICAgICAgICAjIGRldGVybWluZWQgZnJvbSB0aGUgd29ya29yZGVycwogICAgJENoYW5nZXtBY3R1YWxFbmRUaW1lfSAgICAgICAgICAjIGRldGVybWluZWQgZnJvbSB0aGUgd29ya29yZGVycwogICAgJENoYW5nZXtQbGFubmVkRWZmb3J0fSAgICAgICAgICAjIGRldGVybWluZWQgZnJvbSB0aGUgd29ya29yZGVycwogICAgJENoYW5nZXtBY2NvdW50ZWRUaW1lfSAgICAgICAgICAjIGRldGVybWluZWQgZnJvbSB0aGUgd29ya29yZGVycwogICAgJENoYW5nZXtSZXF1ZXN0ZWRUaW1lfQogICAgJENoYW5nZXtEeW5hbWljRmllbGRfWH0KICAgICRDaGFuZ2V7RHluYW1pY0ZpZWxkX1l9CiAgICAkQ2hhbmdle0NyZWF0ZVRpbWV9CiAgICAkQ2hhbmdle0NyZWF0ZUJ5fQogICAgJENoYW5nZXtDaGFuZ2VUaW1lfQogICAgJENoYW5nZXtDaGFuZ2VCeX0KCj1jdXQKCnN1YiBDaGFuZ2VHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBdHRyaWJ1dGUgKHF3KENoYW5nZUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEF0dHJpYnV0ZX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBdHRyaWJ1dGUhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGNhY2hlCiAgICBteSAkQ2FjaGVLZXkgPSAnQ2hhbmdlR2V0OjpJRDo6JyAuICRQYXJhbXtDaGFuZ2VJRH07CiAgICBteSAkQ2FjaGUgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5LAogICAgKTsKCiAgICBteSAlQ2hhbmdlRGF0YTsKCiAgICBpZiAoJENhY2hlKSB7CiAgICAgICAgJUNoYW5nZURhdGEgPSAleyRDYWNoZX07CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBnZXQgZGF0YSBmcm9tIGRhdGFiYXNlCiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQsIGNoYW5nZV9udW1iZXIsIHRpdGxlLCAnCiAgICAgICAgICAgICAgICAuICdkZXNjcmlwdGlvbiwgZGVzY3JpcHRpb25fcGxhaW4sICcKICAgICAgICAgICAgICAgIC4gJ2p1c3RpZmljYXRpb24sIGp1c3RpZmljYXRpb25fcGxhaW4sICcKICAgICAgICAgICAgICAgIC4gJ2NoYW5nZV9zdGF0ZV9pZCwgY2hhbmdlX21hbmFnZXJfaWQsIGNoYW5nZV9idWlsZGVyX2lkLCAnCiAgICAgICAgICAgICAgICAuICdjYXRlZ29yeV9pZCwgaW1wYWN0X2lkLCBwcmlvcml0eV9pZCwgJwogICAgICAgICAgICAgICAgLiAnY3JlYXRlX3RpbWUsIGNyZWF0ZV9ieSwgY2hhbmdlX3RpbWUsIGNoYW5nZV9ieSwgJwogICAgICAgICAgICAgICAgLiAncmVxdWVzdGVkX3RpbWUgJwogICAgICAgICAgICAgICAgLiAnRlJPTSBjaGFuZ2VfaXRlbSAnCiAgICAgICAgICAgICAgICAuICdXSEVSRSBpZCA9ID8gJywKICAgICAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte0NoYW5nZUlEfSBdLAogICAgICAgICAgICBMaW1pdCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICRDaGFuZ2VEYXRhe0NoYW5nZUlEfSAgICAgICAgICAgPSAkUm93WzBdOwogICAgICAgICAgICAkQ2hhbmdlRGF0YXtDaGFuZ2VOdW1iZXJ9ICAgICAgID0gJFJvd1sxXTsKICAgICAgICAgICAgJENoYW5nZURhdGF7Q2hhbmdlVGl0bGV9ICAgICAgICA9IGRlZmluZWQoICRSb3dbMl0gKSA/ICRSb3dbMl0gOiAnJzsKICAgICAgICAgICAgJENoYW5nZURhdGF7RGVzY3JpcHRpb259ICAgICAgICA9IGRlZmluZWQoICRSb3dbM10gKSA/ICRSb3dbM10gOiAnJzsKICAgICAgICAgICAgJENoYW5nZURhdGF7RGVzY3JpcHRpb25QbGFpbn0gICA9IGRlZmluZWQoICRSb3dbNF0gKSA/ICRSb3dbNF0gOiAnJzsKICAgICAgICAgICAgJENoYW5nZURhdGF7SnVzdGlmaWNhdGlvbn0gICAgICA9IGRlZmluZWQoICRSb3dbNV0gKSA/ICRSb3dbNV0gOiAnJzsKICAgICAgICAgICAgJENoYW5nZURhdGF7SnVzdGlmaWNhdGlvblBsYWlufSA9IGRlZmluZWQoICRSb3dbNl0gKSA/ICRSb3dbNl0gOiAnJzsKICAgICAgICAgICAgJENoYW5nZURhdGF7Q2hhbmdlU3RhdGVJRH0gICAgICA9ICRSb3dbN107CiAgICAgICAgICAgICRDaGFuZ2VEYXRhe0NoYW5nZU1hbmFnZXJJRH0gICAgPSAkUm93WzhdOwogICAgICAgICAgICAkQ2hhbmdlRGF0YXtDaGFuZ2VCdWlsZGVySUR9ICAgID0gJFJvd1s5XTsKICAgICAgICAgICAgJENoYW5nZURhdGF7Q2F0ZWdvcnlJRH0gICAgICAgICA9ICRSb3dbMTBdOwogICAgICAgICAgICAkQ2hhbmdlRGF0YXtJbXBhY3RJRH0gICAgICAgICAgID0gJFJvd1sxMV07CiAgICAgICAgICAgICRDaGFuZ2VEYXRhe1ByaW9yaXR5SUR9ICAgICAgICAgPSAkUm93WzEyXTsKICAgICAgICAgICAgJENoYW5nZURhdGF7Q3JlYXRlVGltZX0gICAgICAgICA9ICRSb3dbMTNdOwogICAgICAgICAgICAkQ2hhbmdlRGF0YXtDcmVhdGVCeX0gICAgICAgICAgID0gJFJvd1sxNF07CiAgICAgICAgICAgICRDaGFuZ2VEYXRhe0NoYW5nZVRpbWV9ICAgICAgICAgPSAkUm93WzE1XTsKICAgICAgICAgICAgJENoYW5nZURhdGF7Q2hhbmdlQnl9ICAgICAgICAgICA9ICRSb3dbMTZdOwogICAgICAgICAgICAkQ2hhbmdlRGF0YXtSZXF1ZXN0ZWRUaW1lfSAgICAgID0gJFJvd1sxN107CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgaWYgKCAhJUNoYW5nZURhdGEgKSB7CiAgICAgICAgICAgIGlmICggISRQYXJhbXtMb2dOb30gKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDaGFuZ2Ugd2l0aCBJRCAkUGFyYW17Q2hhbmdlSUR9IGRvZXMgbm90IGV4aXN0LiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgY2xlYW51cCB0aW1lIHN0YW1wcyAoc29tZSBkYXRhYmFzZXMgYXJlIHVzaW5nIGUuIGcuIDIwMDgtMDItMjUgMjI6MDM6MDAuMDAwMDAwKQogICAgICAgIFRJTUVGSUVMRDoKICAgICAgICBmb3IgbXkgJFRpbWVmaWVsZCAoICdDcmVhdGVUaW1lJywgJ0NoYW5nZVRpbWUnLCAnUmVxdWVzdGVkVGltZScgKSB7CiAgICAgICAgICAgIG5leHQgVElNRUZJRUxEIGlmICEkQ2hhbmdlRGF0YXskVGltZWZpZWxkfTsKICAgICAgICAgICAgJENoYW5nZURhdGF7JFRpbWVmaWVsZH0KICAgICAgICAgICAgICAgID1+IHN7IFxBICggXGRcZFxkXGQgLSBcZFxkIC0gXGRcZCBccyBcZFxkOlxkXGQ6XGRcZCApIFwuIC4rPyBceiB9eyQxfXhtczsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGFsbCBkeW5hbWljIGZpZWxkcyBmb3IgdGhlIG9iamVjdCB0eXBlIElUU01DaGFuZ2UKICAgICAgICBteSAkRHluYW1pY0ZpZWxkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICAgICAgT2JqZWN0VHlwZSA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgKTsKCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkTGlzdH0gKSB7CgogICAgICAgICAgICAjIHZhbGlkYXRlIGVhY2ggZHluYW1pYyBmaWVsZAogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZzsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICREeW5hbWljRmllbGRDb25maWctPntDb25maWd9ICk7CgogICAgICAgICAgICAjIGdldCB0aGUgY3VycmVudCB2YWx1ZSBmb3IgZWFjaCBkeW5hbWljIGZpZWxkCiAgICAgICAgICAgIG15ICRWYWx1ZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+VmFsdWVHZXQoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzZXQgdGhlIGR5bmFtaWMgZmllbGQgbmFtZSBhbmQgdmFsdWUgaW50byB0aGUgY2hhbmdlIGRhdGEgaGFzaAogICAgICAgICAgICAkQ2hhbmdlRGF0YXsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPSAkVmFsdWUgLy8gJyc7CiAgICAgICAgfQoKICAgICAgICAjIHNldCBjYWNoZSAoY2hhbmdlIGRhdGEgZXhpc3RzIGF0IHRoaXMgcG9pbnQsIGl0IHdhcyBjaGVja2VkIGJlZm9yZSkKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+U2V0KAogICAgICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICAgICAgVmFsdWUgPT4gXCVDaGFuZ2VEYXRhLAogICAgICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2V0IG5hbWUgb2YgY2hhbmdlIHN0YXRlCiAgICBpZiAoICRDaGFuZ2VEYXRhe0NoYW5nZVN0YXRlSUR9ICkgewogICAgICAgICRDaGFuZ2VEYXRhe0NoYW5nZVN0YXRlfSA9ICRTZWxmLT5DaGFuZ2VTdGF0ZUxvb2t1cCgKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlRGF0YXtDaGFuZ2VTdGF0ZUlEfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2V0IG5hbWVzIGZvciBDSVAKICAgIGZvciBteSAkVHlwZSAocXcoQ2F0ZWdvcnkgSW1wYWN0IFByaW9yaXR5KSkgewogICAgICAgIGlmICggJENoYW5nZURhdGF7IiR7VHlwZX1JRCJ9ICkgewogICAgICAgICAgICAkQ2hhbmdlRGF0YXskVHlwZX0gPSAkU2VsZi0+Q2hhbmdlQ0lQTG9va3VwKAogICAgICAgICAgICAgICAgSUQgICA9PiAkQ2hhbmdlRGF0YXsiJHtUeXBlfUlEIn0sCiAgICAgICAgICAgICAgICBUeXBlID0+ICRUeXBlLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCB0aGUgY2hhbmdlIHN0YXRlIHNpZ25hbAogICAgaWYgKCAkQ2hhbmdlRGF0YXtDaGFuZ2VTdGF0ZX0gKSB7CgogICAgICAgICMgZ2V0IGFsbCBjaGFuZ2Ugc3RhdGUgc2lnbmFscwogICAgICAgIG15ICRTdGF0ZVNpZ25hbCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSVRTTUNoYW5nZTo6U3RhdGU6OlNpZ25hbCcpOwoKICAgICAgICAkQ2hhbmdlRGF0YXtDaGFuZ2VTdGF0ZVNpZ25hbH0gPSAkU3RhdGVTaWduYWwtPnsgJENoYW5nZURhdGF7Q2hhbmdlU3RhdGV9IH07CiAgICB9CgogICAgIyBnZXQgQ0FCIGRhdGEKICAgIG15ICRDQUIgPSAkU2VsZi0+Q2hhbmdlQ0FCR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApIHx8IHt9OwoKICAgICMgYWRkIHJlc3VsdCB0byBjaGFuZ2UgZGF0YQogICAgJUNoYW5nZURhdGEgPSAoICVDaGFuZ2VEYXRhLCAleyRDQUJ9ICk7CgogICAgIyBnZXQgYWxsIHdvcmtvcmRlciBpZHMgZm9yIHRoaXMgY2hhbmdlCiAgICBteSAkV29ya09yZGVySURzUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyTGlzdCgKICAgICAgICBDaGFuZ2VJRCA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGFkZCByZXN1bHQgdG8gY2hhbmdlIGRhdGEKICAgICRDaGFuZ2VEYXRhe1dvcmtPcmRlcklEc30gICA9ICRXb3JrT3JkZXJJRHNSZWYgfHwgW107CiAgICAkQ2hhbmdlRGF0YXtXb3JrT3JkZXJDb3VudH0gPSBzY2FsYXIgQHsgJENoYW5nZURhdGF7V29ya09yZGVySURzfSB9OwoKICAgICMgZ2V0IHBsYW5uZWQgZWZmb3J0IGFuZCBhY2NvdW50ZWQgdGltZSBmb3IgdGhlIGNoYW5nZQogICAgbXkgJENoYW5nZUVmZm9ydHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJDaGFuZ2VFZmZvcnRzR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgbWVyZ2UgZWZmb3J0IGhhc2ggd2l0aCBjaGFuZ2UgaGFzaAogICAgaWYgKAogICAgICAgICRDaGFuZ2VFZmZvcnRzCiAgICAgICAgJiYgcmVmICRDaGFuZ2VFZmZvcnRzIGVxICdIQVNIJwogICAgICAgICYmICV7JENoYW5nZUVmZm9ydHN9CiAgICAgICAgKQogICAgewogICAgICAgICVDaGFuZ2VEYXRhID0gKCAlQ2hhbmdlRGF0YSwgJXskQ2hhbmdlRWZmb3J0c30gKTsKICAgIH0KCiAgICAjIGdldCB0aW1lc3RhbXBzIGZvciB0aGUgY2hhbmdlCiAgICBteSAkQ2hhbmdlVGltZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckNoYW5nZVRpbWVHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBtZXJnZSB0aW1lIGhhc2ggd2l0aCBjaGFuZ2UgaGFzaAogICAgaWYgKAogICAgICAgICRDaGFuZ2VUaW1lCiAgICAgICAgJiYgcmVmICRDaGFuZ2VUaW1lIGVxICdIQVNIJwogICAgICAgICYmICV7JENoYW5nZVRpbWV9CiAgICAgICAgKQogICAgewogICAgICAgICVDaGFuZ2VEYXRhID0gKCAlQ2hhbmdlRGF0YSwgJXskQ2hhbmdlVGltZX0gKTsKICAgIH0KCiAgICByZXR1cm4gXCVDaGFuZ2VEYXRhOwp9Cgo9aGVhZDIgQ2hhbmdlQ0FCVXBkYXRlKCkKCkFkZCBvciB1cGRhdGUgdGhlIENBQiBvZiBhIGNoYW5nZS4KT25lIG9yIGJvdGggb2YgQ0FCQWdlbnRzIGFuZCBDQUJDdXN0b21lcnMgbXVzdCBiZSBwYXNzZWQuClBhc3NpbmcgYSByZWZlcmVuY2UgdG8gYW4gZW1wdHkgYXJyYXkgZGVsZXRlcyB0aGUgcGFydCBvZiB0aGUgQ0FCIChDQUJBZ2VudHMgb3IgQ0FCQ3VzdG9tZXJzKQpXaGVuIGFnZW50cyBvciBjdXN0b21lcnMgYXJlIHBhc3NlZCBtdWx0aXBsZSB0aW1lcywgdGhleSB3aWxsIGJlIGluc2VydGVkIG9ubHkgb25jZS4KCiAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUNBQlVwZGF0ZSgKICAgICAgICBDaGFuZ2VJRCAgICAgPT4gMTIzLAogICAgICAgIENBQkFnZW50cyAgICA9PiBbIDEsIDIsIDQgXSwgICAgICMgVXNlcklEcyAgICAgICAgICAob3B0aW9uYWwpCiAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFsgJ3R0JywgJ21tJyBdLCAgIyBDdXN0b21lclVzZXJJRHMgIChvcHRpb25hbCkKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQ2hhbmdlQ0FCVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXR0cmlidXRlIChxdyhDaGFuZ2VJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBdHRyaWJ1dGV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXR0cmlidXRlISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBlaXRoZXIgQ0FCQWdlbnRzIG9mIENBQkN1c3RvbWVycyBvciBib3RoIG11c3QgYmUgcGFzc2VkCiAgICBpZiAoICEkUGFyYW17Q0FCQWdlbnRzfSAmJiAhJFBhcmFte0NBQkN1c3RvbWVyc30gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIHBhcmFtZXRlciBDQUJBZ2VudHMgb3IgQ0FCQ3VzdG9tZXJzIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBDQUJBZ2VudHMgYW5kIENBQkN1c3RvbWVycyBtdXN0IGJlIGFycmF5IHJlZmVyZW5jZXMKICAgIGZvciBteSAkQXR0cmlidXRlIChxdyhDQUJBZ2VudHMgQ0FCQ3VzdG9tZXJzKSkgewogICAgICAgIGlmICggJFBhcmFteyRBdHRyaWJ1dGV9ICYmIHJlZiAkUGFyYW17JEF0dHJpYnV0ZX0gbmUgJ0FSUkFZJyApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBwYXJhbWV0ZXIgJEF0dHJpYnV0ZSBpcyBub3QgYW4gYXJyYXkgcmVmZXJlbmNlISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiBDQUJBZ2VudHMgYW5kIENBQkN1c3RvbWVycyBleGlzdCBpbiB0aGUgYWdlbnRzIGFuZCBjdXN0b21lciBkYXRhYmFzZXMKICAgIHJldHVybiBpZiAhJFNlbGYtPl9DaGVja0NoYW5nZVBhcmFtcyglUGFyYW0pOwoKICAgICMgdHJpZ2dlciBDaGFuZ2VDQUJVcGRhdGVQcmUtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ0NoYW5nZUNBQlVwZGF0ZVByZScsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IG9sZCBDQUIgZGF0YSB0byBiZSBnaXZlbiB0byBwb3N0IGV2ZW50IGhhbmRsZXIKICAgIG15ICRDaGFuZ2VDQUJEYXRhID0gJFNlbGYtPkNoYW5nZUNBQkdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGVudGVyIHRoZSBDQUIgQWdlbnRzCiAgICBpZiAoICRQYXJhbXtDQUJBZ2VudHN9ICkgewoKICAgICAgICAjIHJlbW92ZSBhbGwgY3VycmVudCB1c2VycyBmcm9tIGNhYiB0YWJsZQogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgICAgICBTUUwgPT4gJ0RFTEVURSBGUk9NIGNoYW5nZV9jYWIgJwogICAgICAgICAgICAgICAgLiAnV0hFUkUgY2hhbmdlX2lkID0gPyAnCiAgICAgICAgICAgICAgICAuICdBTkQgdXNlcl9pZCBJUyBOT1QgTlVMTCcsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0NoYW5nZUlEfSBdLAogICAgICAgICk7CgogICAgICAgICMgZmlsdGVyIG91dCB1bmlxdWUgdXNlcnMKICAgICAgICBteSAlVW5pcXVlVXNlcnMgPSBtYXAgeyAkXyA9PiAxIH0gQHsgJFBhcmFte0NBQkFnZW50c30gfTsKCiAgICAgICAgIyBhZGQgdXNlciB0byBjYWIgdGFibGUKICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQga2V5cyAlVW5pcXVlVXNlcnMgKSB7CiAgICAgICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAnSU5TRVJUIElOVE8gY2hhbmdlX2NhYiAoIGNoYW5nZV9pZCwgdXNlcl9pZCApIFZBTFVFUyAoID8sID8gKScsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtDaGFuZ2VJRH0sIFwkVXNlcklEIF0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZW50ZXIgdGhlIENBQiBDdXN0b21lcnMKICAgIGlmICggJFBhcmFte0NBQkN1c3RvbWVyc30gKSB7CgogICAgICAgICMgcmVtb3ZlIGFsbCBjdXJyZW50IGN1c3RvbWVyIHVzZXJzIGZyb20gY2FiIHRhYmxlCiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgICAgIFNRTCA9PiAnREVMRVRFIEZST00gY2hhbmdlX2NhYiAnCiAgICAgICAgICAgICAgICAuICdXSEVSRSBjaGFuZ2VfaWQgPSA/ICcKICAgICAgICAgICAgICAgIC4gJ0FORCBjdXN0b21lcl91c2VyX2lkIElTIE5PVCBOVUxMJywKICAgICAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17Q2hhbmdlSUR9IF0sCiAgICAgICAgKTsKCiAgICAgICAgIyBmaWx0ZXIgb3V0IHVuaXF1ZSBjdXN0b21lciB1c2VycwogICAgICAgIG15ICVVbmlxdWVDdXN0b21lclVzZXJzID0gbWFwIHsgJF8gPT4gMSB9IEB7ICRQYXJhbXtDQUJDdXN0b21lcnN9IH07CgogICAgICAgICMgYWRkIHVzZXIgdG8gY2FiIHRhYmxlCiAgICAgICAgZm9yIG15ICRDdXN0b21lclVzZXJJRCAoIHNvcnQga2V5cyAlVW5pcXVlQ3VzdG9tZXJVc2VycyApIHsKICAgICAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICdJTlNFUlQgSU5UTyBjaGFuZ2VfY2FiICggY2hhbmdlX2lkLCBjdXN0b21lcl91c2VyX2lkICkgVkFMVUVTICggPywgPyApJywKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0NoYW5nZUlEfSwgXCRDdXN0b21lclVzZXJJRCBdLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkRlbGV0ZSgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICdDaGFuZ2VDQUJHZXQ6OklEOjonIC4gJFBhcmFte0NoYW5nZUlEfSwKICAgICk7CgogICAgIyB0cmlnZ2VyIENoYW5nZUNBQlVwZGF0ZVBvc3QtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ0NoYW5nZUNBQlVwZGF0ZVBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgT2xkQ2hhbmdlQ0FCRGF0YSA9PiAkQ2hhbmdlQ0FCRGF0YSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENoYW5nZUNBQkdldCgpCgpSZXR1cm4gdGhlIENBQiBvZiBhIGNoYW5nZSBhcyBhIGhhc2hyZWYsIHdoZXJlIHRoZSB2YWx1ZXMgYXJlIGFycmF5cmVmcy4KVGhlIHJldHVybmVkIGFycmF5IHJlZmVyZW5jZXMgYXJlIHNvcnRlZC4KCiAgICBteSAkQ2hhbmdlQ0FCID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQ0FCR2V0KAogICAgICAgIENoYW5nZUlEID0+IDEyMywKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJENoYW5nZUNBQiA9IHsKICAgICAgICBDQUJBZ2VudHMgICAgPT4gWyAxLCAyLCA0IF0sCiAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFsgJ2FhJywgJ2JiJyBdLAogICAgfQoKPWN1dAoKc3ViIENoYW5nZUNBQkdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDaGFuZ2VJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2FiIGRhdGEKICAgIG15ICVDQUIgPSAoCiAgICAgICAgQ0FCQWdlbnRzICAgID0+IFtdLAogICAgICAgIENBQkN1c3RvbWVycyA9PiBbXSwKICAgICk7CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJENhY2hlS2V5ID0gJ0NoYW5nZUNBQkdldDo6SUQ6OicgLiAkUGFyYW17Q2hhbmdlSUR9OwogICAgbXkgJENhY2hlICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkdldCgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICk7CgogICAgaWYgKCRDYWNoZSkgewoKICAgICAgICAjIGdldCBkYXRhIGZyb20gY2FjaGUKICAgICAgICAlQ0FCID0gJXskQ2FjaGV9OwogICAgfQoKICAgIGVsc2UgewoKICAgICAgICAjIGdldCBkYXRhCiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQsIGNoYW5nZV9pZCwgdXNlcl9pZCwgY3VzdG9tZXJfdXNlcl9pZCAnCiAgICAgICAgICAgICAgICAuICdGUk9NIGNoYW5nZV9jYWIgV0hFUkUgY2hhbmdlX2lkID0gPycsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0NoYW5nZUlEfSBdLAogICAgICAgICk7CgogICAgICAgIG15ICRFcnJvckNBQklEOwoKICAgICAgICBST1c6CiAgICAgICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgbXkgJENBQklEICAgICAgICAgID0gJFJvd1swXTsKICAgICAgICAgICAgbXkgJENoYW5nZUlEICAgICAgID0gJFJvd1sxXTsKICAgICAgICAgICAgbXkgJFVzZXJJRCAgICAgICAgID0gJFJvd1syXTsKICAgICAgICAgICAgbXkgJEN1c3RvbWVyVXNlcklEID0gJFJvd1szXTsKCiAgICAgICAgICAgICMgZXJyb3IgY2hlY2sgaWYgYm90aCBjb2x1bW5zIGFyZSBmaWxsZWQKICAgICAgICAgICAgaWYgKCAkVXNlcklEICYmICRDdXN0b21lclVzZXJJRCApIHsKICAgICAgICAgICAgICAgICRFcnJvckNBQklEID0gJENBQklEOwogICAgICAgICAgICAgICAgbmV4dCBST1c7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWRkIGRhdGEgdG8gQ0FCCiAgICAgICAgICAgIGlmICgkVXNlcklEKSB7CiAgICAgICAgICAgICAgICBwdXNoIEB7ICRDQUJ7Q0FCQWdlbnRzfSB9LCAkVXNlcklEOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICgkQ3VzdG9tZXJVc2VySUQpIHsKICAgICAgICAgICAgICAgIHB1c2ggQHsgJENBQntDQUJDdXN0b21lcnN9IH0sICRDdXN0b21lclVzZXJJRDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBlcnJvciBjaGVjayBpZiBib3RoIGNvbHVtbnMgYXJlIGZpbGxlZAogICAgICAgIGlmICgkRXJyb3JDQUJJRCkgewoKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4KICAgICAgICAgICAgICAgICAgICAiQ0FCIHRhYmxlIGVudHJ5IHdpdGggSUQgJEVycm9yQ0FCSUQgY29udGFpbnMgVXNlcklEIGFuZCBDdXN0b21lclVzZXJJRCEgIgogICAgICAgICAgICAgICAgICAgIC4gJ09ubHkgb25lIGF0IGEgdGltZSBpcyBhbGxvd2VkIScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgc29ydCB0aGUgcmVzdWx0cwogICAgICAgIEB7ICRDQUJ7Q0FCQWdlbnRzfSB9ICAgID0gc29ydCBAeyAkQ0FCe0NBQkFnZW50c30gfTsKICAgICAgICBAeyAkQ0FCe0NBQkN1c3RvbWVyc30gfSA9IHNvcnQgQHsgJENBQntDQUJDdXN0b21lcnN9IH07CgogICAgICAgICMgc2V0IGNhY2hlCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXksCiAgICAgICAgICAgIFZhbHVlID0+IFwlQ0FCLAogICAgICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiBcJUNBQjsKfQoKPWhlYWQyIENoYW5nZUNBQkRlbGV0ZSgpCgpEZWxldGUgdGhlIENBQiBvZiBhIGNoYW5nZS4KCiAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUNBQkRlbGV0ZSgKICAgICAgICBDaGFuZ2VJRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQ2hhbmdlQ0FCRGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXR0cmlidXRlIChxdyhDaGFuZ2VJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBdHRyaWJ1dGV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXR0cmlidXRlISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyB0cmlnZ2VyIENoYW5nZUNBQkRlbGV0ZVByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnQ2hhbmdlQ0FCRGVsZXRlUHJlJywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgb2xkIENBQiBkYXRhIHRvIGJlIGdpdmVuIHRvIHBvc3QgZXZlbnQgaGFuZGxlcgogICAgbXkgJENoYW5nZUNBQkRhdGEgPSAkU2VsZi0+Q2hhbmdlQ0FCR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZGVsZXRlIENBQgogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMICA9PiAnREVMRVRFIEZST00gY2hhbmdlX2NhYiBXSEVSRSBjaGFuZ2VfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtDaGFuZ2VJRH0gXSwKICAgICk7CgogICAgIyBkZWxldGUgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5EZWxldGUoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAnQ2hhbmdlQ0FCR2V0OjpJRDo6JyAuICRQYXJhbXtDaGFuZ2VJRH0sCiAgICApOwoKICAgICMgdHJpZ2dlciBDaGFuZ2VDQUJEZWxldGVQb3N0LUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdDaGFuZ2VDQUJEZWxldGVQb3N0JywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgIE9sZENoYW5nZUNBQkRhdGEgPT4gJENoYW5nZUNBQkRhdGEsCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDaGFuZ2VMb29rdXAoKQoKUmV0dXJuIHRoZSBjaGFuZ2UgaWQgd2hlbiB0aGUgY2hhbmdlIG51bWJlciBpcyBwYXNzZWQuClJldHVybiB0aGUgY2hhbmdlIG51bWJlciB3aGVuIHRoZSBjaGFuZ2UgaWQgaXMgcGFzc2VkLgpXaGVuIG5vIGNoYW5nZSBpZCBvciBjaGFuZ2UgbnVtYmVyIGlzIGZvdW5kLCB0aGVuIHRoZSB1bmRlZmluZWQgdmFsdWUgaXMgcmV0dXJuZWQuCgogICAgbXkgJENoYW5nZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlTG9va3VwKAogICAgICAgIENoYW5nZU51bWJlciA9PiAnMjAwOTA5MTc0MjAwMDQ2NScsCiAgICApOwoKICAgIG9yCgogICAgbXkgJENoYW5nZU51bWJlciA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUxvb2t1cCgKICAgICAgICBDaGFuZ2VJRCA9PiA0MiwKICAgICk7Cgo9Y3V0CgpzdWIgQ2hhbmdlTG9va3VwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0aGUgY2hhbmdlIGlkIG9yIHRoZSBjaGFuZ2UgbnVtYmVyIG11c3QgYmUgcGFzc2VkCiAgICBpZiAoICEkUGFyYW17Q2hhbmdlSUR9ICYmICEkUGFyYW17Q2hhbmdlTnVtYmVyfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgdGhlIENoYW5nZUlEIG9yIHRoZSBDaGFuZ2VOdW1iZXIhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIG9ubHkgb25lIG9mIGNoYW5nZSBpZCBhbmQgY2hhbmdlIG51bWJlciBjYW4gYmUgcGFzc2VkCiAgICBpZiAoICRQYXJhbXtDaGFuZ2VJRH0gJiYgJFBhcmFte0NoYW5nZU51bWJlcn0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIGVpdGhlciB0aGUgQ2hhbmdlSUQgb3IgdGhlIENoYW5nZU51bWJlciwgbm90IGJvdGghJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBjaGFuZ2UgaWQKICAgIGlmICggJFBhcmFte0NoYW5nZU51bWJlcn0gKSB7CgogICAgICAgIG15ICRDaGFuZ2VJRDsKCiAgICAgICAgIyBjaGVjayBjYWNoZQogICAgICAgIG15ICRDYWNoZUtleSA9ICdDaGFuZ2VMb29rdXA6OkNoYW5nZU51bWJlcjo6JyAuICRQYXJhbXtDaGFuZ2VOdW1iZXJ9OwogICAgICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICAgICApOwoKICAgICAgICBpZiAoJENhY2hlKSB7CgogICAgICAgICAgICAjIGdldCBkYXRhIGZyb20gY2FjaGUKICAgICAgICAgICAgJENoYW5nZUlEID0gJENhY2hlOwogICAgICAgIH0KCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgICAgICAgICBTUUwgICA9PiAnU0VMRUNUIGlkIEZST00gY2hhbmdlX2l0ZW0gV0hFUkUgY2hhbmdlX251bWJlciA9ID8nLAogICAgICAgICAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte0NoYW5nZU51bWJlcn0gXSwKICAgICAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAgICAgJENoYW5nZUlEID0gJFJvd1swXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzZXQgY2FjaGUgb25seSBpZiBjaGFuZ2UgaWQgZXhpc3RzCiAgICAgICAgICAgIGlmICgkQ2hhbmdlSUQpIHsKCiAgICAgICAgICAgICAgICAjIHNldCBjYWNoZQogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICAgICAgICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkQ2hhbmdlSUQ7CiAgICB9CgogICAgIyBnZXQgY2hhbmdlIG51bWJlcgogICAgZWxzaWYgKCAkUGFyYW17Q2hhbmdlSUR9ICkgewoKICAgICAgICBteSAkQ2hhbmdlTnVtYmVyOwoKICAgICAgICAjIGNoZWNrIGNhY2hlCiAgICAgICAgbXkgJENhY2hlS2V5ID0gJ0NoYW5nZUxvb2t1cDo6Q2hhbmdlSUQ6OicgLiAkUGFyYW17Q2hhbmdlSUR9OwogICAgICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICAgICApOwoKICAgICAgICBpZiAoJENhY2hlKSB7CgogICAgICAgICAgICAjIGdldCBkYXRhIGZyb20gY2FjaGUKICAgICAgICAgICAgJENoYW5nZU51bWJlciA9ICRDYWNoZTsKICAgICAgICB9CgogICAgICAgIGVsc2UgewogICAgICAgICAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgICAgICAgICAgU1FMICAgPT4gJ1NFTEVDVCBjaGFuZ2VfbnVtYmVyIEZST00gY2hhbmdlX2l0ZW0gV0hFUkUgaWQgPSA/JywKICAgICAgICAgICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtDaGFuZ2VJRH0gXSwKICAgICAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAgICAgJENoYW5nZU51bWJlciA9ICRSb3dbMF07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2V0IGNhY2hlIG9ubHkgaWYgY2hhbmdlIG51bWJlciBleGlzdHMKICAgICAgICAgICAgaWYgKCRDaGFuZ2VOdW1iZXIpIHsKCiAgICAgICAgICAgICAgICAjIHNldCBjYWNoZQogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICAgICAgICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRDaGFuZ2VOdW1iZXIsCiAgICAgICAgICAgICAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJENoYW5nZU51bWJlcjsKICAgIH0KCiAgICByZXR1cm47Cn0KCj1oZWFkMiBDaGFuZ2VMaXN0KCkKClJldHVybiBhIGNoYW5nZSBpZCBsaXN0IG9mIGFsbCBjaGFuZ2VzIGFzIGFuIGFycmF5IHJlZmVyZW5jZS4KCiAgICBteSAkQ2hhbmdlSURzUmVmID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlTGlzdCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQ2hhbmdlTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgVXNlcklEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBteSBAQ2hhbmdlSURzOwoKICAgICMgY2hlY2sgY2FjaGUKICAgIG15ICRDYWNoZUtleSA9ICdDaGFuZ2VMaXN0JzsKICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwoKICAgIGlmICgkQ2FjaGUpIHsKCiAgICAgICAgIyBnZXQgY2hhbmdlIGlkcyBmcm9tIGNhY2hlCiAgICAgICAgQENoYW5nZUlEcyA9IEB7JENhY2hlfTsKICAgIH0KCiAgICBlbHNlIHsKCiAgICAgICAgIyBnZXQgY2hhbmdlIGlkcwogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnU0VMRUNUIGlkIEZST00gY2hhbmdlX2l0ZW0nLAogICAgICAgICk7CgogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgIHB1c2ggQENoYW5nZUlEcywgJFJvd1swXTsKICAgICAgICB9CgogICAgICAgICMgc2V0IGNhY2hlCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXksCiAgICAgICAgICAgIFZhbHVlID0+IFxAQ2hhbmdlSURzLAogICAgICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiBcQENoYW5nZUlEczsKfQoKPWhlYWQyIENoYW5nZVNlYXJjaCgpCgpSZXR1cm5zIGVpdGhlciBhIGxpc3QsIGFzIGFuIGFycmF5cmVmLCBvciBhIGNvdW50IG9mIGZvdW5kIGNoYW5nZSBpZHMuClRoZSBjb3VudCBvZiByZXN1bHRzIGlzIHJldHVybmVkIHdoZW4gdGhlIHBhcmFtZXRlciBDPFJlc3VsdCA9ICdDT1VOVCc+IGlzIHBhc3NlZC4KClRoZSBzZWFyY2ggY3JpdGVyaWEgYXJlIGxvZ2ljYWxseSBBTkQgY29ubmVjdGVkLgpXaGVuIGEgbGlzdCBpcyBwYXNzZWQgYXMgQzxjcml0ZXJpdW0+LCB0aGUgaW5kaXZpZHVhbCBtZW1iZXJzIGFyZSBPUiBjb25uZWN0ZWQuCldoZW4gYW4gdW5kZWYgb3IgYSByZWZlcmVuY2UgdG8gYW4gZW1wdHkgYXJyYXkgaXMgcGFzc2VkLCB0aGVuIHRoZSBzZWFyY2ggQzxjcml0ZXJpdW0+CmlzIGlnbm9yZWQuCgogICAgbXkgJENoYW5nZUlEc1JlZiA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVNlYXJjaCgKICAgICAgICBDaGFuZ2VOdW1iZXIgICAgICAgPT4gJzIwMDkxMDAxMTIzNDU3NzgnLCAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgIENoYW5nZVRpdGxlICAgICAgICA9PiAnUmVwbGFjZW1lbnQgb2Ygc2xvdyBtYWlsIHNlcnZlcicsICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgPT4gJ05ldyBtYWlsIHNlcnZlciBpcyBmYXN0ZXInLCAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgSnVzdGlmaWNhdGlvbiAgICAgID0+ICdPbGQgbWFpbCBzZXJ2ZXIgdG9vIHNsb3cnLCAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICAjIGFycmF5IHBhcmFtZXRlcnMgYXJlIHVzZWQgd2l0aCBsb2dpY2FsIE9SIG9wZXJhdG9yCiAgICAgICAgQ2hhbmdlU3RhdGVJRHMgICAgID0+IFsgMTEsIDEyLCAxMyBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIENoYW5nZVN0YXRlcyAgICAgICA9PiBbICdyZXF1ZXN0ZWQnLCAnZmFpbGVkJyBdLCAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDaGFuZ2VNYW5hZ2VySURzICAgPT4gWyAxLCAyLCAzIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgQ2hhbmdlQnVpbGRlcklEcyAgID0+IFsgNSwgNywgNCBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIENyZWF0ZUJ5ICAgICAgICAgICA9PiBbIDUsIDIsIDMgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDaGFuZ2VCeSAgICAgICAgICAgPT4gWyAzLCAyLCAxIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgV29ya09yZGVyQWdlbnRJRHMgID0+IFsgNiwgMiBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIENBQkFnZW50cyAgICAgICAgICA9PiBbIDksIDEzIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDQUJDdXN0b21lcnMgICAgICAgPT4gWyAndHQnLCAneHgnIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgQ2F0ZWdvcmllcyAgICAgICAgID0+IFsgJzEgdmVyeSBsb3cnLCAnMiBsb3cnIF0sICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIENhdGVnb3J5SURzICAgICAgICA9PiBbIDEzNSwgMTczIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBJbXBhY3RzICAgICAgICAgICAgPT4gWyAnMSB2ZXJ5IGxvdycsICcyIGxvdycgXSwgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgSW1wYWN0SURzICAgICAgICAgID0+IFsgMTM2LCAxNzQgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFByaW9yaXRpZXMgICAgICAgICA9PiBbICcxIHZlcnkgbG93JywgJzIgbG93JyBdLCAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBQcmlvcml0eUlEcyAgICAgICAgPT4gWyAxMzcsIDE3NSBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgICMgRHluYW1pY0ZpZWxkcyAoYm90aCBjaGFuZ2UgYW5kIEM8d29ya29yZGVyPiBkeW5hbWljIGZpZWxkcyBhcmUgcG9zc2libGUpCiAgICAgICAgIyAgIEF0IGxlYXN0IG9uZSBvcGVyYXRvciBtdXN0IGJlIHNwZWNpZmllZC4gT3BlcmF0b3JzIHdpbGwgYmUgY29ubmVjdGVkIHdpdGggQU5ELAogICAgICAgICMgICAgICAgdmFsdWVzIGluIGFuIG9wZXJhdG9yIHdpdGggT1IuCiAgICAgICAgIyAgIFlvdSBjYW4gYWxzbyBwYXNzIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQgdG8gYW4gb3BlcmF0b3I6IFsndmFsdWUxJywgJ3ZhbHVlMiddCiAgICAgICAgRHluYW1pY0ZpZWxkX0ZpZWxkTmFtZVggPT4gewogICAgICAgICAgICBFcXVhbHMgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgICAgIExpa2UgICAgICAgICAgICAgID0+ICd2YWx1ZSonLCAgICAgICAgICAgICAgICAjICJlcXVhbHMiIG9wZXJhdG9yIHdpdGggd2lsZGNhcmQgc3VwcG9ydAogICAgICAgICAgICBHcmVhdGVyVGhhbiAgICAgICA9PiAnMjAwMS0wMS0wMSAwMTowMTowMScsCiAgICAgICAgICAgIEdyZWF0ZXJUaGFuRXF1YWxzID0+ICcyMDAxLTAxLTAxIDAxOjAxOjAxJywKICAgICAgICAgICAgU21hbGxlclRoYW4gICAgICAgPT4gJzIwMDItMDItMDIgMDI6MDI6MDInLAogICAgICAgICAgICBTbWFsbGVyVGhhbkVxdWFscyA9PiAnMjAwMi0wMi0wMiAwMjowMjowMicsCiAgICAgICAgfQoKICAgICAgICAjIHNlYXJjaCBpbiB0ZXh0IGZpZWxkcyBvZiBDPHdvcmtvcmRlcj4gb2JqZWN0CiAgICAgICAgV29ya09yZGVyVGl0bGUgICAgICAgICAgICA9PiAnQm9vdCBNYWlsc2VydmVyJywgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgV29ya09yZGVySW5zdHJ1Y3Rpb24gICAgICA9PiAnUHJlc3MgdGhlIGJ1dHRvbi4nLCAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgV29ya09yZGVyUmVwb3J0ICAgICAgICAgICA9PiAnTWFpbHNlcnZlciBoYXMgYm9vdGVkLicsICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgICMgc2VhcmNoIGluIEM8d29ya29yZGVyPiAoYXJyYXkgcGFyYW1zKQogICAgICAgIFdvcmtPcmRlclN0YXRlcyAgID0+IFsgJ2FjY2VwdGVkJywgJ3JlYWR5JyBdLCAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFdvcmtPcmRlclN0YXRlSURzID0+IFsgMSwgMiwgMyBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFdvcmtPcmRlclR5cGVzICAgID0+IFsgJ3dvcmtvcmRlcicsICdiYWNrb3V0JywgJ2FwcHJvdmFsJyBdLCAgICMgKG9wdGlvbmFsKQogICAgICAgIFdvcmtPcmRlclR5cGVJRHMgID0+IFsgNSwgNiwgNyBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICAjIGNoYW5nZXMgd2l0aCBwbGFubmVkIHN0YXJ0IHRpbWUgYWZ0ZXIgLi4uCiAgICAgICAgUGxhbm5lZFN0YXJ0VGltZU5ld2VyRGF0ZSA9PiAnMjAwNi0wMS0wOSAwMDowMDowMScsICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyBjaGFuZ2VzIHdpdGggcGxhbm5lZCBzdGFydCB0aW1lIGJlZm9yZSB0aGVuIC4uLi4KICAgICAgICBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlID0+ICcyMDA2LTAxLTE5IDIzOjU5OjU5JywgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgIyBjaGFuZ2VzIHdpdGggcGxhbm5lZCBlbmQgdGltZSBhZnRlciAuLi4KICAgICAgICBQbGFubmVkRW5kVGltZU5ld2VyRGF0ZSAgID0+ICcyMDA2LTAxLTA5IDAwOjAwOjAxJywgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICAjIGNoYW5nZXMgd2l0aCBwbGFubmVkIGVuZCB0aW1lIGJlZm9yZSB0aGVuIC4uLi4KICAgICAgICBQbGFubmVkRW5kVGltZU9sZGVyRGF0ZSAgID0+ICcyMDA2LTAxLTE5IDIzOjU5OjU5JywgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgIyBjaGFuZ2VzIHdpdGggYWN0dWFsIHN0YXJ0IHRpbWUgYWZ0ZXIgLi4uCiAgICAgICAgQWN0dWFsU3RhcnRUaW1lTmV3ZXJEYXRlICA9PiAnMjAwNi0wMS0wOSAwMDowMDowMScsICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyBjaGFuZ2VzIHdpdGggYWN0dWFsIHN0YXJ0IHRpbWUgYmVmb3JlIHRoZW4gLi4uLgogICAgICAgIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZSAgPT4gJzIwMDYtMDEtMTkgMjM6NTk6NTknLCAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICAjIGNoYW5nZXMgd2l0aCBhY3R1YWwgZW5kIHRpbWUgYWZ0ZXIgLi4uCiAgICAgICAgQWN0dWFsRW5kVGltZU5ld2VyRGF0ZSAgICA9PiAnMjAwNi0wMS0wOSAwMDowMDowMScsICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyBjaGFuZ2VzIHdpdGggYWN0dWFsIGVuZCB0aW1lIGJlZm9yZSB0aGVuIC4uLi4KICAgICAgICBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlICAgID0+ICcyMDA2LTAxLTE5IDIzOjU5OjU5JywgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgIyBjaGFuZ2VzIHdpdGggY3JlYXRlZCB0aW1lIGFmdGVyIC4uLgogICAgICAgIENyZWF0ZVRpbWVOZXdlckRhdGUgICAgICAgPT4gJzIwMDYtMDEtMDkgMDA6MDA6MDEnLCAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgICMgY2hhbmdlcyB3aXRoIGNyZWF0ZWQgdGltZSBiZWZvcmUgdGhlbiAuLi4uCiAgICAgICAgQ3JlYXRlVGltZU9sZGVyRGF0ZSAgICAgICA9PiAnMjAwNi0wMS0xOSAyMzo1OTo1OScsICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgICMgY2hhbmdlcyB3aXRoIGNoYW5nZWQgdGltZSBhZnRlciAuLi4KICAgICAgICBDaGFuZ2VUaW1lTmV3ZXJEYXRlICAgICAgID0+ICcyMDA2LTAxLTA5IDAwOjAwOjAxJywgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICAjIGNoYW5nZXMgd2l0aCBjaGFuZ2VkIHRpbWUgYmVmb3JlIHRoZW4gLi4uLgogICAgICAgIENoYW5nZVRpbWVPbGRlckRhdGUgICAgICAgPT4gJzIwMDYtMDEtMTkgMjM6NTk6NTknLCAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICAjIGNoYW5nZXMgd2l0aCByZXF1ZXN0ZWQgdGltZSBhZnRlciAuLi4KICAgICAgICBSZXF1ZXN0ZWRUaW1lTmV3ZXJEYXRlICAgID0+ICcyMDA2LTAxLTA5IDAwOjAwOjAxJywgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICAjIGNoYW5nZXMgd2l0aCByZXF1ZXN0ZWQgdGltZSBiZWZvcmUgdGhlbiAuLi4uCiAgICAgICAgUmVxdWVzdGVkVGltZU9sZGVyRGF0ZSAgICA9PiAnMjAwNi0wMS0xOSAyMzo1OTo1OScsICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgIE9yZGVyQnkgPT4gWyAnQ2hhbmdlSUQnLCAnQ2hhbmdlTWFuYWdlcklEJyBdLCAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgICMgaWdub3JlZCB3aGVuIHRoZSByZXN1bHQgdHlwZSBpcyAnQ09VTlQnCiAgICAgICAgIyBkZWZhdWx0OiBbICdDaGFuZ2VJRCcgXQogICAgICAgICMgKENoYW5nZUlELCBDaGFuZ2VOdW1iZXIsIENoYW5nZVRpdGxlLCBDaGFuZ2VTdGF0ZUlELAogICAgICAgICMgQ2hhbmdlTWFuYWdlcklELCBDaGFuZ2VCdWlsZGVySUQsCiAgICAgICAgIyBDYXRlZ29yeUlELCBJbXBhY3RJRCwgUHJpb3JpdHlJRAogICAgICAgICMgUGxhbm5lZFN0YXJ0VGltZSwgUGxhbm5lZEVuZFRpbWUsCiAgICAgICAgIyBBY3R1YWxTdGFydFRpbWUsIEFjdHVhbEVuZFRpbWUsIFJlcXVlc3RlZFRpbWUsCiAgICAgICAgIyBDcmVhdGVUaW1lLCBDcmVhdGVCeSwgQ2hhbmdlVGltZSwgQ2hhbmdlQnkpCgogICAgICAgICMgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgT3JkZXJCeToKICAgICAgICAjIFRoZSBPcmRlckJ5RGlyZWN0aW9uIGNhbiBiZSBzcGVjaWZpZWQgZm9yIGVhY2ggT3JkZXJCeSBhdHRyaWJ1dGUuCiAgICAgICAgIyBUaGUgcGFpcmluZyBpcyBtYWRlIGJ5IHRoZSBhcnJheSBpbmRpY2VzLgoKICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFsgJ0Rvd24nLCAnVXAnIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICAjIGlnbm9yZWQgd2hlbiB0aGUgcmVzdWx0IHR5cGUgaXMgJ0NPVU5UJwogICAgICAgICMgZGVmYXVsdDogWyAnRG93bicgXQogICAgICAgICMgKERvd24gfCBVcCkKCiAgICAgICAgVXNpbmdXaWxkY2FyZHMgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyAoMCB8IDEpIGRlZmF1bHQgMQoKICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJyB8fCAnQ09VTlQnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICAjIGRlZmF1bHQ6IEFSUkFZLCByZXR1cm5zIGFuIGFycmF5IG9mIGNoYW5nZSBpZHMKICAgICAgICAjIENPVU5UIHJldHVybnMgYSBzY2FsYXIgd2l0aCB0aGUgbnVtYmVyIG9mIGZvdW5kIGNoYW5nZXMKCiAgICAgICAgTGltaXQgPT4gMTAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyBpZ25vcmVkIHdoZW4gdGhlIHJlc3VsdCB0eXBlIGlzICdDT1VOVCcKCiAgICAgICAgTWlycm9yREIgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyAoMCB8IDEpIGRlZmF1bHQgMAogICAgICAgICMgaWYgc2V0IHRvIDEgYW5kIElUU01DaGFuZ2U6OkNoYW5nZVNlYXJjaDo6TWlycm9yREIKICAgICAgICAjIGlzIGFjdGl2YXRlZCBhbmQgYSBtaXJyb3IgZGIgaXMgY29uZmlndXJlZCBpbgogICAgICAgICMgQ29yZTo6TWlycm9yREI6OkRTTiB0aGUgY2hhbmdlIHNlYXJjaCB3aWxsIHRoZW4gdXNlCiAgICAgICAgIyB0aGUgbWlycm9yIGRiCgogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBDaGFuZ2VTZWFyY2ggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFVzZXJJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgdmVyaWZ5IHRoYXQgYWxsIHBhc3NlZCBhcnJheSBwYXJhbWV0ZXJzIGNvbnRhaW4gYW4gYXJyYXlyZWYKICAgIEFSR1VNRU5UOgogICAgZm9yIG15ICRBcmd1bWVudCAoCiAgICAgICAgcXcoCiAgICAgICAgT3JkZXJCeQogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24KICAgICAgICBDaGFuZ2VTdGF0ZUlEcwogICAgICAgIENoYW5nZVN0YXRlcwogICAgICAgIENoYW5nZU1hbmFnZXJJRHMKICAgICAgICBDaGFuZ2VCdWlsZGVySURzCiAgICAgICAgQ0FCQWdlbnRzCiAgICAgICAgQ0FCQ3VzdG9tZXJzCiAgICAgICAgV29ya09yZGVyQWdlbnRJRHMKICAgICAgICBXb3JrT3JkZXJTdGF0ZXMKICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEcwogICAgICAgIFdvcmtPcmRlclR5cGVzCiAgICAgICAgV29ya09yZGVyVHlwZUlEcwogICAgICAgIENyZWF0ZUJ5CiAgICAgICAgQ2hhbmdlQnkKICAgICAgICBDYXRlZ29yaWVzCiAgICAgICAgQ2F0ZWdvcnlJRHMKICAgICAgICBJbXBhY3RzCiAgICAgICAgSW1wYWN0SURzCiAgICAgICAgUHJpb3JpdGllcwogICAgICAgIFByaW9yaXR5SURzCiAgICAgICAgKQogICAgICAgICkKICAgIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSB8fD0gW107CgogICAgICAgICAgICBuZXh0IEFSR1VNRU5UOwogICAgICAgIH0KCiAgICAgICAgaWYgKCByZWYgJFBhcmFteyRBcmd1bWVudH0gbmUgJ0FSUkFZJyApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIiRBcmd1bWVudCBtdXN0IGJlIGFuIGFycmF5IHJlZmVyZW5jZSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZGVmaW5lIGEgbG9jYWwgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGlmIHdlIG5lZWQgdG8gZG8gYSBjaGFuZ2Ugc2VhcmNoIG9uIGFuIGV4dGVybmFsIG1pcnJvciBkYXRhYmFzZQogICAgaWYgKAogICAgICAgICRQYXJhbXtNaXJyb3JEQn0KICAgICAgICAmJiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01DaGFuZ2U6OkNoYW5nZVNlYXJjaDo6TWlycm9yREInKQogICAgICAgICYmICRDb25maWdPYmplY3QtPkdldCgnQ29yZTo6TWlycm9yREI6OkRTTicpCiAgICAgICAgJiYgJENvbmZpZ09iamVjdC0+R2V0KCdDb3JlOjpNaXJyb3JEQjo6VXNlcicpCiAgICAgICAgJiYgJENvbmZpZ09iamVjdC0+R2V0KCdDb3JlOjpNaXJyb3JEQjo6UGFzc3dvcmQnKQogICAgICAgICkKICAgIHsKCiAgICAgICAgIyBjcmVhdGUgYW4gZXh0cmEgZGF0YWJhc2Ugb2JqZWN0IGZvciB0aGUgbWlycm9yIGRiCiAgICAgICAgbXkgJEV4dHJhRGF0YWJhc2VPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6REItPm5ldygKICAgICAgICAgICAgRGF0YWJhc2VEU04gID0+ICRDb25maWdPYmplY3QtPkdldCgnQ29yZTo6TWlycm9yREI6OkRTTicpLAogICAgICAgICAgICBEYXRhYmFzZVVzZXIgPT4gJENvbmZpZ09iamVjdC0+R2V0KCdDb3JlOjpNaXJyb3JEQjo6VXNlcicpLAogICAgICAgICAgICBEYXRhYmFzZVB3ICAgPT4gJENvbmZpZ09iamVjdC0+R2V0KCdDb3JlOjpNaXJyb3JEQjo6UGFzc3dvcmQnKSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgaWYgKCAhJEV4dHJhRGF0YWJhc2VPYmplY3QgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdDb3VsZCBub3QgY3JlYXRlIGRhdGFiYXNlIG9iamVjdCBmb3IgTWlycm9yREIhJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAkREJPYmplY3QgPSAkRXh0cmFEYXRhYmFzZU9iamVjdDsKICAgIH0KCiAgICAjIGRlZmluZSBvcmRlciB0YWJsZQogICAgbXkgJU9yZGVyQnlUYWJsZSA9ICgKICAgICAgICBDaGFuZ2VJRCAgICAgICAgID0+ICdjLmlkJywKICAgICAgICBDaGFuZ2VOdW1iZXIgICAgID0+ICdjLmNoYW5nZV9udW1iZXInLAogICAgICAgIENoYW5nZVRpdGxlICAgICAgPT4gJ2MudGl0bGUnLAogICAgICAgIENoYW5nZVN0YXRlSUQgICAgPT4gJ2MuY2hhbmdlX3N0YXRlX2lkJywKICAgICAgICBDaGFuZ2VNYW5hZ2VySUQgID0+ICdjLmNoYW5nZV9tYW5hZ2VyX2lkJywKICAgICAgICBDaGFuZ2VCdWlsZGVySUQgID0+ICdjLmNoYW5nZV9idWlsZGVyX2lkJywKICAgICAgICBDYXRlZ29yeUlEICAgICAgID0+ICdjLmNhdGVnb3J5X2lkJywKICAgICAgICBJbXBhY3RJRCAgICAgICAgID0+ICdjLmltcGFjdF9pZCcsCiAgICAgICAgUHJpb3JpdHlJRCAgICAgICA9PiAnYy5wcmlvcml0eV9pZCcsCiAgICAgICAgQ3JlYXRlVGltZSAgICAgICA9PiAnYy5jcmVhdGVfdGltZScsCiAgICAgICAgQ3JlYXRlQnkgICAgICAgICA9PiAnYy5jcmVhdGVfYnknLAogICAgICAgIENoYW5nZVRpbWUgICAgICAgPT4gJ2MuY2hhbmdlX3RpbWUnLAogICAgICAgIENoYW5nZUJ5ICAgICAgICAgPT4gJ2MuY2hhbmdlX2J5JywKICAgICAgICBSZXF1ZXN0ZWRUaW1lICAgID0+ICdjLnJlcXVlc3RlZF90aW1lJywKICAgICAgICBQbGFubmVkU3RhcnRUaW1lID0+ICdNSU4od28xLnBsYW5uZWRfc3RhcnRfdGltZSknLAogICAgICAgIFBsYW5uZWRFbmRUaW1lICAgPT4gJ01BWCh3bzEucGxhbm5lZF9lbmRfdGltZSknLAogICAgICAgIEFjdHVhbFN0YXJ0VGltZSAgPT4gJ01JTih3bzEuYWN0dWFsX3N0YXJ0X3RpbWUpJywKICAgICAgICBBY3R1YWxFbmRUaW1lICAgID0+ICdNQVgod28xLmFjdHVhbF9lbmRfdGltZSknLAogICAgKTsKCiAgICAjIGNoZWNrIGlmIE9yZGVyQnkgY29udGFpbnMgb25seSB1bmlxdWUgdmFsaWQgdmFsdWVzCiAgICBteSAlT3JkZXJCeVNlZW47CiAgICBmb3IgbXkgJE9yZGVyQnkgKCBAeyAkUGFyYW17T3JkZXJCeX0gfSApIHsKCiAgICAgICAgaWYgKCAhJE9yZGVyQnkgfHwgISRPcmRlckJ5VGFibGV7JE9yZGVyQnl9IHx8ICRPcmRlckJ5U2VlbnskT3JkZXJCeX0gKSB7CgogICAgICAgICAgICAjIGZvdW5kIGFuIGVycm9yCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJPcmRlckJ5IGNvbnRhaW5zIGludmFsaWQgdmFsdWUgJyRPcmRlckJ5JyAiCiAgICAgICAgICAgICAgICAgICAgLiAnb3IgdGhlIHZhbHVlIGlzIHVzZWQgbW9yZSB0aGFuIG9uY2UhJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyByZW1lbWJlciB0aGUgdmFsdWUgdG8gY2hlY2sgaWYgaXQgYXBwZWFycyBtb3JlIHRoYW4gb25jZQogICAgICAgICRPcmRlckJ5U2VlbnskT3JkZXJCeX0gPSAxOwogICAgfQoKICAgICMgY2hlY2sgaWYgT3JkZXJCeURpcmVjdGlvbiBhcnJheSBjb250YWlucyBvbmx5ICdVcCcgb3IgJ0Rvd24nCiAgICBESVJFQ1RJT046CiAgICBmb3IgbXkgJERpcmVjdGlvbiAoIEB7ICRQYXJhbXtPcmRlckJ5RGlyZWN0aW9ufSB9ICkgewoKICAgICAgICAjIG9ubHkgJ1VwJyBvciAnRG93bicgYWxsb3dlZAogICAgICAgIG5leHQgRElSRUNUSU9OIGlmICREaXJlY3Rpb24gZXEgJ1VwJzsKICAgICAgICBuZXh0IERJUkVDVElPTiBpZiAkRGlyZWN0aW9uIGVxICdEb3duJzsKCiAgICAgICAgIyBmb3VuZCBhbiBlcnJvcgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiT3JkZXJCeURpcmVjdGlvbiBjYW4gb25seSBjb250YWluICdVcCcgb3IgJ0Rvd24nISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZXMKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1VzaW5nV2lsZGNhcmRzfSApIHsKICAgICAgICAkUGFyYW17VXNpbmdXaWxkY2FyZHN9ID0gMTsKICAgIH0KCiAgICAjIHNldCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgZm9yIHRoZSByZXR1cm4gdHlwZQogICAgbXkgJFJlc3VsdCA9ICRQYXJhbXtSZXN1bHR9IHx8ICdBUlJBWSc7CgogICAgIyBjaGVjayB3aGV0aGVyIGFsbCBvZiB0aGUgZ2l2ZW4gQ2hhbmdlU3RhdGVJRHMgYXJlIHZhbGlkCiAgICByZXR1cm4gaWYgISRTZWxmLT5fQ2hlY2tDaGFuZ2VTdGF0ZUlEcyggQ2hhbmdlU3RhdGVJRHMgPT4gJFBhcmFte0NoYW5nZVN0YXRlSURzfSApOwoKICAgICMgY2hlY2sgd2hldGhlciBhbGwgb2YgdGhlIGdpdmVuIENhdGVnb3J5SURzLCBJbXBhY3RJRHMgYW5kIFByaW9yaXR5SURzIGFyZSB2YWxpZAogICAgZm9yIG15ICRUeXBlIChxdyhDYXRlZ29yeSBJbXBhY3QgUHJpb3JpdHkpKSB7CiAgICAgICAgcmV0dXJuIGlmICEkU2VsZi0+X0NoZWNrQ2hhbmdlQ0lQSURzKAogICAgICAgICAgICBJRHMgID0+ICRQYXJhbXsiJHtUeXBlfUlEcyJ9LAogICAgICAgICAgICBUeXBlID0+ICRUeXBlLAogICAgICAgICk7CiAgICB9CgogICAgIyBsb29rIHVwIGFuZCB0aHVzIGNoZWNrIHRoZSBTdGF0ZXMKICAgIGZvciBteSAkQ2hhbmdlU3RhdGUgKCBAeyAkUGFyYW17Q2hhbmdlU3RhdGVzfSB9ICkgewoKICAgICAgICAjIGxvb2sgdXAgdGhlIElEIGZvciB0aGUgbmFtZQogICAgICAgIG15ICRDaGFuZ2VTdGF0ZUlEID0gJFNlbGYtPkNoYW5nZVN0YXRlTG9va3VwKAogICAgICAgICAgICBDaGFuZ2VTdGF0ZSA9PiAkQ2hhbmdlU3RhdGUsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayB3aGV0aGVyIHRoZSBJRCB3YXMgZm91bmQsIHdoZXRoZXIgdGhlIG5hbWUgZXhpc3RzCiAgICAgICAgaWYgKCAhJENoYW5nZVN0YXRlSUQgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgY2hhbmdlIHN0YXRlICRDaGFuZ2VTdGF0ZSBpcyBub3Qga25vd24hIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIHB1c2ggQHsgJFBhcmFte0NoYW5nZVN0YXRlSURzfSB9LCAkQ2hhbmdlU3RhdGVJRDsKICAgIH0KCiAgICAjIGxvb2sgdXAgYW5kIHRodXMgY2hlY2sgdGhlIENJUHMKICAgIG15ICVDSVBTaW5ndWxhcjJQbHVyYWwgPSAoCiAgICAgICAgQ2F0ZWdvcnkgPT4gJ0NhdGVnb3JpZXMnLAogICAgICAgIEltcGFjdCAgID0+ICdJbXBhY3RzJywKICAgICAgICBQcmlvcml0eSA9PiAnUHJpb3JpdGllcycsCiAgICApOwoKICAgIGZvciBteSAkQ0lQU2luZ3VsYXIgKCBzb3J0IGtleXMgJUNJUFNpbmd1bGFyMlBsdXJhbCApIHsKICAgICAgICBmb3IgbXkgJENJUCAoIEB7ICRQYXJhbXsgJENJUFNpbmd1bGFyMlBsdXJhbHskQ0lQU2luZ3VsYXJ9IH0gfSApIHsKCiAgICAgICAgICAgICMgbG9vayB1cCB0aGUgSUQgZm9yIHRoZSBuYW1lCiAgICAgICAgICAgIG15ICRDSVBJRCA9ICRTZWxmLT5DaGFuZ2VDSVBMb29rdXAoCiAgICAgICAgICAgICAgICBDSVAgID0+ICRDSVAsCiAgICAgICAgICAgICAgICBUeXBlID0+ICRDSVBTaW5ndWxhciwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hlY2sgd2hldGhlciB0aGUgSUQgd2FzIGZvdW5kLCB3aGV0aGVyIHRoZSBuYW1lIGV4aXN0cwogICAgICAgICAgICBpZiAoICEkQ0lQSUQgKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgJENJUFNpbmd1bGFyICRDSVAgaXMgbm90IGtub3duISIsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcHVzaCBAeyAkUGFyYW17IiR7Q0lQU2luZ3VsYXJ9SURzIn0gfSwgJENJUElEOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHdvcmtvcmRlciBzdGF0ZXMgLSBpZiBnaXZlbgogICAgcmV0dXJuCiAgICAgICAgaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlclN0YXRlSURzQ2hlY2soCiAgICAgICAgV29ya09yZGVyU3RhdGVJRHMgPT4gJFBhcmFte1dvcmtPcmRlclN0YXRlSURzfSwKICAgICAgICApOwoKICAgICMgbG9vayB1cCBhbmQgdGh1cyBjaGVjayB0aGUgd29ya29yZGVyIHN0YXRlcwogICAgZm9yIG15ICRXb3JrT3JkZXJTdGF0ZSAoIEB7ICRQYXJhbXtXb3JrT3JkZXJTdGF0ZXN9IH0gKSB7CgogICAgICAgICMgbG9vayB1cCB0aGUgSUQgZm9yIHRoZSBuYW1lCiAgICAgICAgbXkgJFdvcmtPcmRlclN0YXRlSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJTdGF0ZUxvb2t1cCgKICAgICAgICAgICAgV29ya09yZGVyU3RhdGUgPT4gJFdvcmtPcmRlclN0YXRlLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgd2hldGhlciB0aGUgSUQgd2FzIGZvdW5kLCB3aGV0aGVyIHRoZSBuYW1lIGV4aXN0cwogICAgICAgIGlmICggISRXb3JrT3JkZXJTdGF0ZUlEICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIHdvcmtvcmRlciBzdGF0ZSAkV29ya09yZGVyU3RhdGUgaXMgbm90IGtub3duISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBwdXNoIEB7ICRQYXJhbXtXb3JrT3JkZXJTdGF0ZUlEc30gfSwgJFdvcmtPcmRlclN0YXRlSUQ7CiAgICB9CgogICAgIyBsb29rIHVwIGFuZCB0aHVzIGNoZWNrIHRoZSB3b3Jrb3JkZXIgdHlwZXMKICAgIGZvciBteSAkV29ya09yZGVyVHlwZSAoIEB7ICRQYXJhbXtXb3JrT3JkZXJUeXBlc30gfSApIHsKCiAgICAgICAgIyBsb29rIHVwIHRoZSBJRCBmb3IgdGhlIG5hbWUKICAgICAgICBteSAkV29ya09yZGVyVHlwZUlEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyVHlwZUxvb2t1cCgKICAgICAgICAgICAgV29ya09yZGVyVHlwZSA9PiAkV29ya09yZGVyVHlwZSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIHdoZXRoZXIgdGhlIElEIHdhcyBmb3VuZCwgd2hldGhlciB0aGUgbmFtZSBleGlzdHMKICAgICAgICBpZiAoICEkV29ya09yZGVyVHlwZUlEICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIHdvcmtvcmRlciB0eXBlICRXb3JrT3JkZXJUeXBlIGlzIG5vdCBrbm93biEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgcHVzaCBAeyAkUGFyYW17V29ya09yZGVyVHlwZUlEc30gfSwgJFdvcmtPcmRlclR5cGVJRDsKICAgIH0KCiAgICBteSBAU1FMV2hlcmU7ICAgICAgICAgICAjIGFzc2VtYmxlIHRoZSBjb25kaXRpb25zIHVzZWQgaW4gdGhlIFdIRVJFIGNsYXVzZQogICAgbXkgQFNRTEhhdmluZzsgICAgICAgICAgIyBhc3NlbWJsZSB0aGUgY29uZGl0aW9ucyB1c2VkIGluIHRoZSBIQVZJTkcgY2xhdXNlCiAgICBteSBASW5uZXJKb2luVGFibGVzOyAgICAjIGtlZXAgdHJhY2sgb2YgdGhlIHRhYmxlcyB0aGF0IG5lZWQgdG8gYmUgaW5uZXIgam9pbmVkCiAgICBteSBAT3V0ZXJKb2luVGFibGVzOyAgICAjIGtlZXAgdHJhY2sgb2YgdGhlIHRhYmxlcyB0aGF0IG5lZWQgdG8gYmUgb3V0ZXIgam9pbmVkCgogICAgIyBjaGVjayBhbGwgY29uZmlndXJlZCBjaGFuZ2UgZHluYW1pYyBmaWVsZHMsIGJ1aWxkIGxvb2t1cCBoYXNoIGJ5IG5hbWUKICAgIG15ICVDaGFuZ2VEeW5hbWljRmllbGROYW1lMkNvbmZpZzsKICAgIG15ICRDaGFuZ2VEeW5hbWljRmllbGRzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIE9iamVjdFR5cGUgPT4gJ0lUU01DaGFuZ2UnLAogICAgKTsKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkICggQHskQ2hhbmdlRHluYW1pY0ZpZWxkc30gKSB7CiAgICAgICAgJENoYW5nZUR5bmFtaWNGaWVsZE5hbWUyQ29uZmlneyAkRHluYW1pY0ZpZWxkLT57TmFtZX0gfSA9ICREeW5hbWljRmllbGQ7CiAgICB9CgogICAgIyBjaGVjayBhbGwgY29uZmlndXJlZCB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMsIGJ1aWxkIGxvb2t1cCBoYXNoIGJ5IG5hbWUKICAgIG15ICVXb3JrT3JkZXJEeW5hbWljRmllbGROYW1lMkNvbmZpZzsKICAgIG15ICRXb3JrT3JkZXJEeW5hbWljRmllbGRzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIE9iamVjdFR5cGUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgKTsKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkICggQHskV29ya09yZGVyRHluYW1pY0ZpZWxkc30gKSB7CiAgICAgICAgJFdvcmtPcmRlckR5bmFtaWNGaWVsZE5hbWUyQ29uZmlneyAkRHluYW1pY0ZpZWxkLT57TmFtZX0gfSA9ICREeW5hbWljRmllbGQ7CiAgICB9CgogICAgIyBhZGQgc3RyaW5nIHBhcmFtcyB0byB0aGUgV0hFUkUgY2xhdXNlCiAgICBteSAlU3RyaW5nUGFyYW1zID0gKAoKICAgICAgICAjIHN0cmluZ3MgaW4gY2hhbmdlX2l0ZW0KICAgICAgICBDaGFuZ2VOdW1iZXIgID0+ICdjLmNoYW5nZV9udW1iZXInLAogICAgICAgIENoYW5nZVRpdGxlICAgPT4gJ2MudGl0bGUnLAogICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ2MuZGVzY3JpcHRpb25fcGxhaW4nLAogICAgICAgIEp1c3RpZmljYXRpb24gPT4gJ2MuanVzdGlmaWNhdGlvbl9wbGFpbicsCgogICAgICAgICMgc3RyaW5ncyBpbiBjaGFuZ2Vfd29ya29yZGVyCiAgICAgICAgV29ya09yZGVyVGl0bGUgICAgICAgPT4gJ3dvMi50aXRsZScsCiAgICAgICAgV29ya09yZGVySW5zdHJ1Y3Rpb24gPT4gJ3dvMi5pbnN0cnVjdGlvbl9wbGFpbicsCiAgICAgICAgV29ya09yZGVyUmVwb3J0ICAgICAgPT4gJ3dvMi5yZXBvcnRfcGxhaW4nLAogICAgKTsKCiAgICAjIGFkZCBzdHJpbmcgcGFyYW1zIHRvIHNxbC13aGVyZS1hcnJheQogICAgU1RSSU5HUEFSQU06CiAgICBmb3IgbXkgJFN0cmluZ1BhcmFtICggc29ydCBrZXlzICVTdHJpbmdQYXJhbXMgKSB7CgogICAgICAgICMgY2hlY2sgc3RyaW5nIHBhcmFtcyBmb3IgdXNlZnVsIHZhbHVlcywgdGhlIHN0cmluZyAnMCcgaXMgYWxsb3dlZAogICAgICAgIG5leHQgU1RSSU5HUEFSQU0gaWYgIWV4aXN0cyAkUGFyYW17JFN0cmluZ1BhcmFtfTsKICAgICAgICBuZXh0IFNUUklOR1BBUkFNIGlmICFkZWZpbmVkICRQYXJhbXskU3RyaW5nUGFyYW19OwogICAgICAgIG5leHQgU1RSSU5HUEFSQU0gaWYgJFBhcmFteyRTdHJpbmdQYXJhbX0gZXEgJyc7CgogICAgICAgICMgcXVvdGUKICAgICAgICAkUGFyYW17JFN0cmluZ1BhcmFtfSA9ICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXskU3RyaW5nUGFyYW19ICk7CgogICAgICAgICMgY2hlY2sgaWYgYSBDTE9CIGZpZWxkIGlzIHVzZWQgaW4gb3JhY2xlCiAgICAgICAgIyBGaXgvV29ya2Fyb3VuZCBmb3IgT1JBLTAwOTMyOiBpbmNvbnNpc3RlbnQgZGF0YXR5cGVzOiBleHBlY3RlZCAtIGdvdCBDTE9CCiAgICAgICAgbXkgJEZvcmNlTGlrZVNlYXJjaEZvclNwZWNpYWxGaWVsZHM7CiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e0RCVHlwZX0gZXEgJ29yYWNsZScKICAgICAgICAgICAgJiYgKCAkU3RyaW5nUGFyYW0gZXEgJ0Rlc2NyaXB0aW9uJyB8fCAkU3RyaW5nUGFyYW0gZXEgJ0p1c3RpZmljYXRpb24nICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEZvcmNlTGlrZVNlYXJjaEZvclNwZWNpYWxGaWVsZHMgPSAxOwogICAgICAgIH0KCiAgICAgICAgIyB3aWxkY2FyZHMgYXJlIHVzZWQgKG9yIExJS0Ugc2VhcmNoIGlzIGZvcmNlZCBmb3Igc29tZSBzcGVjaWFsIGZpZWxkcyBvbiBvcmFjbGUpCiAgICAgICAgaWYgKCAkUGFyYW17VXNpbmdXaWxkY2FyZHN9IHx8ICRGb3JjZUxpa2VTZWFyY2hGb3JTcGVjaWFsRmllbGRzICkgewoKICAgICAgICAgICAgIyBnZXQgbGlrZSBlc2NhcGUgc3RyaW5nIG5lZWRlZCBmb3Igc29tZSBkYXRhYmFzZXMgKGUuZy4gb3JhY2xlKQogICAgICAgICAgICBteSAkTGlrZUVzY2FwZVN0cmluZyA9ICREQk9iamVjdC0+R2V0RGF0YWJhc2VGdW5jdGlvbignTGlrZUVzY2FwZVN0cmluZycpOwoKICAgICAgICAgICAgIyBRdW90ZQogICAgICAgICAgICAkUGFyYW17JFN0cmluZ1BhcmFtfSA9ICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXskU3RyaW5nUGFyYW19LCAnTGlrZScgKTsKCiAgICAgICAgICAgICMgcmVwbGFjZSAqIHdpdGggJQogICAgICAgICAgICAkUGFyYW17JFN0cmluZ1BhcmFtfSA9fiBzeyBcKisgfXslfXhtc2c7CgogICAgICAgICAgICAjIGRvIG5vdCB1c2Ugc3RyaW5nIHBhcmFtcyB3aGljaCBjb250YWluIG9ubHkgJQogICAgICAgICAgICBuZXh0IFNUUklOR1BBUkFNIGlmICRQYXJhbXskU3RyaW5nUGFyYW19ID1+IG17IFxBICUqIFx6IH14bXM7CgogICAgICAgICAgICBwdXNoIEBTUUxXaGVyZSwKICAgICAgICAgICAgICAgICJMT1dFUigkU3RyaW5nUGFyYW1zeyRTdHJpbmdQYXJhbX0pIExJS0UgTE9XRVIoJyRQYXJhbXskU3RyaW5nUGFyYW19JykgJExpa2VFc2NhcGVTdHJpbmciOwogICAgICAgIH0KCiAgICAgICAgIyBubyB3aWxkY2FyZHMgYXJlIHVzZWQKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcHVzaCBAU1FMV2hlcmUsCiAgICAgICAgICAgICAgICAiTE9XRVIoJFN0cmluZ1BhcmFtc3skU3RyaW5nUGFyYW19KSA9IExPV0VSKCckUGFyYW17JFN0cmluZ1BhcmFtfScpIjsKICAgICAgICB9CgogICAgICAgIGlmICggJFN0cmluZ1BhcmFtc3skU3RyaW5nUGFyYW19ID1+IG17IHdvMiB9eG1zICkgewoKICAgICAgICAgICAgIyB0aGUgY2hhbmdlX3dvcmtvcmRlciB0YWJsZSBuZWVkcyB0byBiZSBqb2luZWQsIHdoZW4gaXQgb2NjdXJzIGluIHRoZSBXSEVSRSBjbGF1c2UKICAgICAgICAgICAgcHVzaCBASW5uZXJKb2luVGFibGVzLCAnd28yJzsKICAgICAgICB9CiAgICB9CgogICAgIyBidWlsZCBzcWwgZm9yIGR5bmFtaWMgZmllbGRzCiAgICBteSAkU1FMRHluYW1pY0ZpZWxkSW5uZXJKb2lucyA9ICcnOyAgICAjIGpvaW4tc3RhdGVtZW50cwogICAgbXkgJFNRTER5bmFtaWNGaWVsZFdoZXJlICAgICAgPSAnJzsgICAgIyB3aGVyZS1jbGF1c2UKICAgIG15ICREeW5hbWljRmllbGRKb2luQ291bnRlciAgID0gMTsKCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZCAoIEB7JENoYW5nZUR5bmFtaWNGaWVsZHN9LCBAeyRXb3JrT3JkZXJEeW5hbWljRmllbGRzfSApIHsKCiAgICAgICAgbXkgJFNlYXJjaFBhcmFtID0gJFBhcmFteyAiRHluYW1pY0ZpZWxkXyIgLiAkRHluYW1pY0ZpZWxkLT57TmFtZX0gfTsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgKCAhJFNlYXJjaFBhcmFtICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgKCByZWYgJFNlYXJjaFBhcmFtIG5lICdIQVNIJyApOwoKICAgICAgICBteSAkTmVlZEpvaW47CgogICAgICAgIGZvciBteSAkT3BlcmF0b3IgKCBzb3J0IGtleXMgJXskU2VhcmNoUGFyYW19ICkgewoKICAgICAgICAgICAgbXkgQFNlYXJjaFBhcmFtcyA9ICggcmVmICRTZWFyY2hQYXJhbS0+eyRPcGVyYXRvcn0gZXEgJ0FSUkFZJyApCiAgICAgICAgICAgICAgICA/IEB7ICRTZWFyY2hQYXJhbS0+eyRPcGVyYXRvcn0gfQogICAgICAgICAgICAgICAgOiAoICRTZWFyY2hQYXJhbS0+eyRPcGVyYXRvcn0gKTsKCiAgICAgICAgICAgIG15ICRTUUxEeW5hbWljRmllbGRXaGVyZVN1YiA9ICcnOwogICAgICAgICAgICBpZiAoJFNRTER5bmFtaWNGaWVsZFdoZXJlKSB7CiAgICAgICAgICAgICAgICAkU1FMRHluYW1pY0ZpZWxkV2hlcmVTdWIgPSAnIEFORCAoJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRTUUxEeW5hbWljRmllbGRXaGVyZVN1YiA9ICcgKCc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRDb3VudGVyID0gMDsKICAgICAgICAgICAgVEVYVDoKICAgICAgICAgICAgZm9yIG15ICRUZXh0IChAU2VhcmNoUGFyYW1zKSB7CiAgICAgICAgICAgICAgICBuZXh0IFRFWFQgaWYgKCAhZGVmaW5lZCAkVGV4dCB8fCAkVGV4dCBlcSAnJyApOwoKICAgICAgICAgICAgICAgICRUZXh0ID1+IHMvXCovJS9naTsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIHNlYXJjaCBhdHRyaWJ1dGUsIHdlIGRvIG5vdCBuZWVkIHRvIHNlYXJjaCBmb3IgKgogICAgICAgICAgICAgICAgbmV4dCBURVhUIGlmICRUZXh0ID1+IC9eXCV7MSwzfSQvOwoKICAgICAgICAgICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlCiAgICAgICAgICAgICAgICBteSAkVmFsaWRhdGVTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpLT5WYWx1ZVZhbGlkYXRlKAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkLAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkVGV4dCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0gfHwgMSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBpZiAoICEkVmFsaWRhdGVTdWNjZXNzICkgewogICAgICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNlYXJjaCBub3QgZXhlY3V0ZWQgZHVlIHRvIGludmFsaWQgdmFsdWUgJyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJFRleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIicgb24gZmllbGQgJyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJER5bmFtaWNGaWVsZC0+e05hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICInISIsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCRDb3VudGVyKSB7CiAgICAgICAgICAgICAgICAgICAgJFNRTER5bmFtaWNGaWVsZFdoZXJlU3ViIC49ICcgT1IgJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRTUUxEeW5hbWljRmllbGRXaGVyZVN1YgogICAgICAgICAgICAgICAgICAgIC49ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+U2VhcmNoU1FMR2V0KAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkLAogICAgICAgICAgICAgICAgICAgIFRhYmxlQWxpYXMgICAgICAgICA9PiAiZGZ2JER5bmFtaWNGaWVsZEpvaW5Db3VudGVyIiwKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvciAgICAgICAgICAgPT4gJE9wZXJhdG9yLAogICAgICAgICAgICAgICAgICAgIFNlYXJjaFRlcm0gICAgICAgICA9PiAkVGV4dCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRDb3VudGVyKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJFNRTER5bmFtaWNGaWVsZFdoZXJlU3ViIC49ICcpICc7CiAgICAgICAgICAgIGlmICgkQ291bnRlcikgewogICAgICAgICAgICAgICAgJFNRTER5bmFtaWNGaWVsZFdoZXJlIC49ICRTUUxEeW5hbWljRmllbGRXaGVyZVN1YjsKICAgICAgICAgICAgICAgICROZWVkSm9pbiA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgkTmVlZEpvaW4pIHsKCiAgICAgICAgICAgIGlmICggJER5bmFtaWNGaWVsZC0+e09iamVjdFR5cGV9IGVxICdJVFNNQ2hhbmdlJyApIHsKCiAgICAgICAgICAgICAgICAjIGpvaW4gdGhlIHRhYmxlIGZvciB0aGlzIGR5bmFtaWMgZmllbGQKICAgICAgICAgICAgICAgICRTUUxEeW5hbWljRmllbGRJbm5lckpvaW5zCiAgICAgICAgICAgICAgICAgICAgLj0gIklOTkVSIEpPSU4gZHluYW1pY19maWVsZF92YWx1ZSBkZnYkRHluYW1pY0ZpZWxkSm9pbkNvdW50ZXIKICAgICAgICAgICAgICAgICAgICBPTiAoYy5pZCA9IGRmdiREeW5hbWljRmllbGRKb2luQ291bnRlci5vYmplY3RfaWQKICAgICAgICAgICAgICAgICAgICAgICAgQU5EIGRmdiREeW5hbWljRmllbGRKb2luQ291bnRlci5maWVsZF9pZCA9ICIgLgogICAgICAgICAgICAgICAgICAgICREQk9iamVjdC0+UXVvdGUoICREeW5hbWljRmllbGQtPntJRH0sICdJbnRlZ2VyJyApIC4gIikgIjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZWxzaWYgKCAkRHluYW1pY0ZpZWxkLT57T2JqZWN0VHlwZX0gZXEgJ0lUU01Xb3JrT3JkZXInICkgewoKICAgICAgICAgICAgICAgICMgYWx3YXlzIGpvaW4gdGhlIHdvcmtvcmRlciB0YWJsZSBmb3IgaW5uZXIgam9pbnMgd2l0aCB0aGUgY2hhbmdlIHRhYmxlCiAgICAgICAgICAgICAgICAjIGl0IGRvZXMgbm90IG1hdHRlciBpZiBhbHJlYWR5IGNvbnRhaW5lZCBpbiBASW5uZXJKb2luVGFibGVzCiAgICAgICAgICAgICAgICAjIGFzIGRvdWJsZSBlbnRyaWVzIGFyZSBmaWx0ZXJlZCBvdXQgbGF0ZXIKICAgICAgICAgICAgICAgIHB1c2ggQElubmVySm9pblRhYmxlcywgJ3dvMic7CgogICAgICAgICAgICAgICAgJFNRTER5bmFtaWNGaWVsZElubmVySm9pbnMKICAgICAgICAgICAgICAgICAgICAuPSAiSU5ORVIgSk9JTiBkeW5hbWljX2ZpZWxkX3ZhbHVlIGRmdiREeW5hbWljRmllbGRKb2luQ291bnRlcgogICAgICAgICAgICAgICAgICAgIE9OICh3bzIuaWQgPSBkZnYkRHluYW1pY0ZpZWxkSm9pbkNvdW50ZXIub2JqZWN0X2lkCiAgICAgICAgICAgICAgICAgICAgICAgIEFORCBkZnYkRHluYW1pY0ZpZWxkSm9pbkNvdW50ZXIuZmllbGRfaWQgPSAiIC4KICAgICAgICAgICAgICAgICAgICAkREJPYmplY3QtPlF1b3RlKCAkRHluYW1pY0ZpZWxkLT57SUR9LCAnSW50ZWdlcicgKSAuICIpICI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICREeW5hbWljRmllbGRKb2luQ291bnRlcisrOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBhcnJheSBwYXJhbXMKICAgIG15ICVBcnJheVBhcmFtcyA9ICgKICAgICAgICBDaGFuZ2VTdGF0ZUlEcyAgID0+ICdjLmNoYW5nZV9zdGF0ZV9pZCcsCiAgICAgICAgQ2hhbmdlTWFuYWdlcklEcyA9PiAnYy5jaGFuZ2VfbWFuYWdlcl9pZCcsCiAgICAgICAgQ2hhbmdlQnVpbGRlcklEcyA9PiAnYy5jaGFuZ2VfYnVpbGRlcl9pZCcsCiAgICAgICAgQ2F0ZWdvcnlJRHMgICAgICA9PiAnYy5jYXRlZ29yeV9pZCcsCiAgICAgICAgSW1wYWN0SURzICAgICAgICA9PiAnYy5pbXBhY3RfaWQnLAogICAgICAgIFByaW9yaXR5SURzICAgICAgPT4gJ2MucHJpb3JpdHlfaWQnLAogICAgICAgIENyZWF0ZUJ5ICAgICAgICAgPT4gJ2MuY3JlYXRlX2J5JywKICAgICAgICBDaGFuZ2VCeSAgICAgICAgID0+ICdjLmNoYW5nZV9ieScsCiAgICApOwoKICAgICMgYWRkIGFycmF5IHBhcmFtcyB0byBzcWwtd2hlcmUtYXJyYXkKICAgIEFSUkFZUEFSQU06CiAgICBmb3IgbXkgJEFycmF5UGFyYW0gKCBzb3J0IGtleXMgJUFycmF5UGFyYW1zICkgewoKICAgICAgICAjIGlnbm9yZSBlbXB0eSBsaXN0cwogICAgICAgIG5leHQgQVJSQVlQQVJBTSBpZiAhQHsgJFBhcmFteyRBcnJheVBhcmFtfSB9OwoKICAgICAgICAjIHF1b3RlCiAgICAgICAgZm9yIG15ICRPbmVQYXJhbSAoIEB7ICRQYXJhbXskQXJyYXlQYXJhbX0gfSApIHsKICAgICAgICAgICAgJE9uZVBhcmFtID0gJERCT2JqZWN0LT5RdW90ZSggJE9uZVBhcmFtLCAnSW50ZWdlcicgKTsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIHN0cmluZwogICAgICAgIG15ICRJblN0cmluZyA9IGpvaW4gJywgJywgQHsgJFBhcmFteyRBcnJheVBhcmFtfSB9OwoKICAgICAgICBwdXNoIEBTUUxXaGVyZSwgIiRBcnJheVBhcmFtc3skQXJyYXlQYXJhbX0gSU4gKCRJblN0cmluZykiOwogICAgfQoKICAgICMgc2V0IHRpbWUgcGFyYW1zCiAgICBteSAlVGltZVBhcmFtcyA9ICgKCiAgICAgICAgIyB0aW1lcyBpbiBjaGFuZ2VfaXRlbQogICAgICAgIENyZWF0ZVRpbWVOZXdlckRhdGUgICAgPT4gJ2MuY3JlYXRlX3RpbWUgPj0nLAogICAgICAgIENyZWF0ZVRpbWVPbGRlckRhdGUgICAgPT4gJ2MuY3JlYXRlX3RpbWUgPD0nLAogICAgICAgIENoYW5nZVRpbWVOZXdlckRhdGUgICAgPT4gJ2MuY2hhbmdlX3RpbWUgPj0nLAogICAgICAgIENoYW5nZVRpbWVPbGRlckRhdGUgICAgPT4gJ2MuY2hhbmdlX3RpbWUgPD0nLAogICAgICAgIFJlcXVlc3RlZFRpbWVOZXdlckRhdGUgPT4gJ2MucmVxdWVzdGVkX3RpbWUgPj0nLAogICAgICAgIFJlcXVlc3RlZFRpbWVPbGRlckRhdGUgPT4gJ2MucmVxdWVzdGVkX3RpbWUgPD0nLAoKICAgICAgICAjIHRpbWVzIGluIGNoYW5nZV93b3Jrb3JkZXIKICAgICAgICBQbGFubmVkU3RhcnRUaW1lTmV3ZXJEYXRlID0+ICdtaW4od28xLnBsYW5uZWRfc3RhcnRfdGltZSkgPj0nLAogICAgICAgIFBsYW5uZWRTdGFydFRpbWVPbGRlckRhdGUgPT4gJ21pbih3bzEucGxhbm5lZF9zdGFydF90aW1lKSA8PScsCiAgICAgICAgUGxhbm5lZEVuZFRpbWVOZXdlckRhdGUgICA9PiAnbWF4KHdvMS5wbGFubmVkX2VuZF90aW1lKSA+PScsCiAgICAgICAgUGxhbm5lZEVuZFRpbWVPbGRlckRhdGUgICA9PiAnbWF4KHdvMS5wbGFubmVkX2VuZF90aW1lKSA8PScsCiAgICAgICAgQWN0dWFsU3RhcnRUaW1lTmV3ZXJEYXRlICA9PiAnbWluKHdvMS5hY3R1YWxfc3RhcnRfdGltZSkgPj0nLAogICAgICAgIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZSAgPT4gJ21pbih3bzEuYWN0dWFsX3N0YXJ0X3RpbWUpIDw9JywKICAgICAgICBBY3R1YWxFbmRUaW1lTmV3ZXJEYXRlICAgID0+ICdtYXgod28xLmFjdHVhbF9lbmRfdGltZSkgPj0nLAogICAgICAgIEFjdHVhbEVuZFRpbWVPbGRlckRhdGUgICAgPT4gJ21heCh3bzEuYWN0dWFsX2VuZF90aW1lKSA8PScsCiAgICApOwoKICAgICMgY2hlY2sgYW5kIGFkZCB0aW1lIHBhcmFtcyB0byBXSEVSRSBvciBIQVZJTkcgY2xhdXNlCiAgICBUSU1FUEFSQU06CiAgICBmb3IgbXkgJFRpbWVQYXJhbSAoIHNvcnQga2V5cyAlVGltZVBhcmFtcyApIHsKCiAgICAgICAgbmV4dCBUSU1FUEFSQU0gaWYgISRQYXJhbXskVGltZVBhcmFtfTsKCiAgICAgICAgaWYgKCAkUGFyYW17JFRpbWVQYXJhbX0gIX4gbXsgXEEgXGRcZFxkXGQtXGRcZC1cZFxkIFxzIFxkXGQ6XGRcZDpcZFxkIFx6IH14bXMgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgcGFyYW1ldGVyICRUaW1lUGFyYW0gaGFzIGFuIGludmFsaWQgZGF0ZSBmb3JtYXQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICRQYXJhbXskVGltZVBhcmFtfSA9ICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXskVGltZVBhcmFtfSApOwoKICAgICAgICBpZiAoICRUaW1lUGFyYW1zeyRUaW1lUGFyYW19ID1+IG17IHdvMSB9eG1zICkgewoKICAgICAgICAgICAgIyB0aGUgY2hhbmdlX3dvcmtvcmRlciB0YWJsZSBuZWVkcyB0byBiZSBqb2luZWQsIHdoZW4gaXQgb2NjdXJzIGluIHRoZSBIQVZJTkcgY2xhdXNlCiAgICAgICAgICAgIHB1c2ggQFNRTEhhdmluZywgICAgICAgIiRUaW1lUGFyYW1zeyRUaW1lUGFyYW19ICckUGFyYW17JFRpbWVQYXJhbX0nIjsKICAgICAgICAgICAgcHVzaCBAT3V0ZXJKb2luVGFibGVzLCAnd28xJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIHRoZSB0aW1lIGF0dHJpYnV0ZXMgb2YgY2hhbmdlX2l0ZW0gc2hvdyB1cCBpbiB0aGUgV0hFUkUgY2xhdXNlCiAgICAgICAgICAgIHB1c2ggQFNRTFdoZXJlLCAiJFRpbWVQYXJhbXN7JFRpbWVQYXJhbX0gJyRQYXJhbXskVGltZVBhcmFtfSciOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNvbmRpdGlvbnMgZm9yIENBQiBzZWFyY2hlcwogICAgbXkgJUNBQlBhcmFtcyA9ICgKICAgICAgICBDQUJBZ2VudHMgICAgPT4gJ2NhYjEudXNlcl9pZCcsCiAgICAgICAgQ0FCQ3VzdG9tZXJzID0+ICdjYWIyLmN1c3RvbWVyX3VzZXJfaWQnLAogICAgKTsKCiAgICAjIGFkZCBjYWIgcGFyYW1zIHRvIHNxbC13aGVyZS1hcnJheQogICAgQ0FCUEFSQU06CiAgICBmb3IgbXkgJENBQlBhcmFtICggc29ydCBrZXlzICVDQUJQYXJhbXMgKSB7CiAgICAgICAgbmV4dCBDQUJQQVJBTSBpZiAhQHsgJFBhcmFteyRDQUJQYXJhbX0gfTsKCiAgICAgICAgIyBxdW90ZQogICAgICAgIGZvciBteSAkT25lUGFyYW0gKCBAeyAkUGFyYW17JENBQlBhcmFtfSB9ICkgewogICAgICAgICAgICAkT25lUGFyYW0gPSAkREJPYmplY3QtPlF1b3RlKCRPbmVQYXJhbSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoICRDQUJQYXJhbSBlcSAnQ0FCQWdlbnRzJyApIHsKCiAgICAgICAgICAgICMgQ0FCQWdlbnQgaXMgYSBpbnRlZ2VyLCBzbyBubyBxdW90ZXMgYXJlIG5lZWRlZAogICAgICAgICAgICBteSAkSW5TdHJpbmcgPSBqb2luICcsICcsIEB7ICRQYXJhbXskQ0FCUGFyYW19IH07CiAgICAgICAgICAgIHB1c2ggQFNRTFdoZXJlLCAgICAgICAgIiRDQUJQYXJhbXN7JENBQlBhcmFtfSBJTiAoJEluU3RyaW5nKSI7CiAgICAgICAgICAgIHB1c2ggQElubmVySm9pblRhYmxlcywgJ2NhYjEnOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRDQUJQYXJhbSBlcSAnQ0FCQ3VzdG9tZXJzJyApIHsKCiAgICAgICAgICAgICMgQ0FCQ3VzdG9tZXIgaXMgYSBzdHJpbmcsIHNvIHRoZSBzaW5nbGUgcXVvdGVzIGFyZSBuZWVkZWQKICAgICAgICAgICAgbXkgJEluU3RyaW5nID0gam9pbiAnLCAnLCBtYXAgeyInJF8nIn0gQHsgJFBhcmFteyRDQUJQYXJhbX0gfTsKICAgICAgICAgICAgcHVzaCBAU1FMV2hlcmUsICAgICAgICAiJENBQlBhcmFtc3skQ0FCUGFyYW19IElOICgkSW5TdHJpbmcpIjsKICAgICAgICAgICAgcHVzaCBASW5uZXJKb2luVGFibGVzLCAnY2FiMic7CiAgICAgICAgfQogICAgfQoKICAgICMgd29ya29yZGVyIGFycmF5IHBhcmFtcwogICAgbXkgJVdvcmtPcmRlckFycmF5UGFyYW1zID0gKAogICAgICAgIFdvcmtPcmRlckFnZW50SURzID0+ICd3b3Jrb3JkZXJfYWdlbnRfaWQnLAogICAgICAgIFdvcmtPcmRlclN0YXRlSURzID0+ICd3b3Jrb3JkZXJfc3RhdGVfaWQnLAogICAgICAgIFdvcmtPcmRlclR5cGVJRHMgID0+ICd3b3Jrb3JkZXJfdHlwZV9pZCcsCiAgICApOwoKICAgICMgYWRkIHdvcmtvcmRlciBwYXJhbXMgdG8gc3FsLXdoZXJlLWFycmF5CiAgICBXT1JLT1JERVJQQVJBTToKICAgIGZvciBteSAkV29ya09yZGVyUGFyYW0gKCBzb3J0IGtleXMgJVdvcmtPcmRlckFycmF5UGFyYW1zICkgewoKICAgICAgICBuZXh0IFdPUktPUkRFUlBBUkFNIGlmICFAeyAkUGFyYW17JFdvcmtPcmRlclBhcmFtfSB9OwoKICAgICAgICAjIHF1b3RlIGFzIGludGVnZXIKICAgICAgICBmb3IgbXkgJE9uZVBhcmFtICggQHsgJFBhcmFteyRXb3JrT3JkZXJQYXJhbX0gfSApIHsKICAgICAgICAgICAgJE9uZVBhcmFtID0gJERCT2JqZWN0LT5RdW90ZSggJE9uZVBhcmFtLCAnSW50ZWdlcicgKTsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIHN0cmluZwogICAgICAgIG15ICRJblN0cmluZyAgID0gam9pbiAnLCAnLCBAeyAkUGFyYW17JFdvcmtPcmRlclBhcmFtfSB9OwogICAgICAgIG15ICRDb2x1bW5OYW1lID0gJFdvcmtPcmRlckFycmF5UGFyYW1zeyRXb3JrT3JkZXJQYXJhbX07CgogICAgICAgIHB1c2ggQFNRTFdoZXJlLCAgICAgICAgIndvMi4kQ29sdW1uTmFtZSBJTiAoICRJblN0cmluZyApIjsKICAgICAgICBwdXNoIEBJbm5lckpvaW5UYWJsZXMsICd3bzInOwogICAgfQoKICAgICMgZGVmaW5lIHdoaWNoIHBhcmFtZXRlciByZXF1aXJlIGEgam9pbiB3aXRoIHdvcmtvcmRlciB0YWJsZQogICAgbXkgJVRhYmxlUmVxdWlyZXNKb2luID0gKAogICAgICAgIFBsYW5uZWRTdGFydFRpbWUgPT4gMSwKICAgICAgICBQbGFubmVkRW5kVGltZSAgID0+IDEsCiAgICAgICAgQWN0dWFsU3RhcnRUaW1lICA9PiAxLAogICAgICAgIEFjdHVhbEVuZFRpbWUgICAgPT4gMSwKICAgICk7CgogICAgIyBkZWxldGUgdGhlIE9yZGVyQnkgcGFyYW1ldGVyIHdoZW4gdGhlIHJlc3VsdCB0eXBlIGlzICdDT1VOVCcKICAgIGlmICggJFJlc3VsdCBlcSAnQ09VTlQnICkgewogICAgICAgICRQYXJhbXtPcmRlckJ5fSA9IFtdOwogICAgfQoKICAgICMgYXNzZW1ibGUgdGhlIE9SREVSIEJZIGNsYXVzZQogICAgbXkgQFNRTE9yZGVyQnk7CiAgICBteSBAU1FMQWxpYXNlczsgICAgIyBvcmRlciBieSBhbGlhc2VzLCBiZSBvbiB0aGUgc2F2ZSBzaWRlIHdpdGggTXlTUUwKICAgIG15ICRDb3VudCA9IDA7CiAgICBmb3IgbXkgJE9yZGVyQnkgKCBAeyAkUGFyYW17T3JkZXJCeX0gfSApIHsKCiAgICAgICAgIyBzZXQgdGhlIGRlZmF1bHQgb3JkZXIgZGlyZWN0aW9uCiAgICAgICAgbXkgJERpcmVjdGlvbiA9ICdERVNDJzsKCiAgICAgICAgIyBhZGQgdGhlIGdpdmVuIG9yZGVyIGRpcmVjdGlvbgogICAgICAgIGlmICggJFBhcmFte09yZGVyQnlEaXJlY3Rpb259LT5bJENvdW50XSApIHsKICAgICAgICAgICAgaWYgKCAkUGFyYW17T3JkZXJCeURpcmVjdGlvbn0tPlskQ291bnRdIGVxICdVcCcgKSB7CiAgICAgICAgICAgICAgICAkRGlyZWN0aW9uID0gJ0FTQyc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkUGFyYW17T3JkZXJCeURpcmVjdGlvbn0tPlskQ291bnRdIGVxICdEb3duJyApIHsKICAgICAgICAgICAgICAgICREaXJlY3Rpb24gPSAnREVTQyc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgYWRkIFNRTAogICAgICAgIGlmICggJE9yZGVyQnlUYWJsZXskT3JkZXJCeX0gPX4gbXsgd28xIH14bXMgKSB7CiAgICAgICAgICAgIHB1c2ggQFNRTEFsaWFzZXMsICIkT3JkZXJCeVRhYmxleyRPcmRlckJ5fSBhcyBhbGlhc18kT3JkZXJCeSI7CiAgICAgICAgICAgIHB1c2ggQFNRTE9yZGVyQnksICJhbGlhc18kT3JkZXJCeSAkRGlyZWN0aW9uIjsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHB1c2ggQFNRTE9yZGVyQnksICIkT3JkZXJCeVRhYmxleyRPcmRlckJ5fSAkRGlyZWN0aW9uIjsKICAgICAgICB9CgogICAgICAgICMgZm9yIHNvbWUgb3JkZXIgZmllbGRzLCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSwgdGhhdCB0aGUgd28xIHRhYmxlIGlzIGpvaW5lZAogICAgICAgIGlmICggJFRhYmxlUmVxdWlyZXNKb2lueyRPcmRlckJ5fSApIHsKICAgICAgICAgICAgcHVzaCBAT3V0ZXJKb2luVGFibGVzLCAnd28xJzsKICAgICAgICB9CiAgICB9CiAgICBjb250aW51ZSB7CiAgICAgICAgJENvdW50Kys7CiAgICB9CgogICAgIyBpZiB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoYXQgdGhlIG9yZGVyaW5nIGlzIG5vdCBkZXRlcm1pbmVkCiAgICAjIHdlIGFkZCBhbiBkZXNjZW5kaW5nIG9yZGVyaW5nIGJ5IGlkCiAgICBpZiAoICFncmVwIHsgJF8gZXEgJ0NoYW5nZUlEJyB9ICggQHsgJFBhcmFte09yZGVyQnl9IH0gKSApIHsKICAgICAgICBwdXNoIEBTUUxPcmRlckJ5LCAiJE9yZGVyQnlUYWJsZXtDaGFuZ2VJRH0gREVTQyI7CiAgICB9CgogICAgIyBhc3NlbWJsZSB0aGUgU1FMIHF1ZXJ5CiAgICBteSAkU1FMID0gJ1NFTEVDVCAnIC4gam9pbiggJywgJywgKCAnYy5pZCcsIEBTUUxBbGlhc2VzICkgKSAuICcgRlJPTSBjaGFuZ2VfaXRlbSBjICc7CgogICAgIyBtb2RpZnkgU1FMIHdoZW4gdGhlIHJlc3VsdCB0eXBlIGlzICdDT1VOVCcsIGFuZCB3aGVuIHRoZXJlIGFyZSBubyBqb2lucwogICAgaWYgKCAkUmVzdWx0IGVxICdDT1VOVCcgJiYgIUBJbm5lckpvaW5UYWJsZXMgJiYgIUBPdXRlckpvaW5UYWJsZXMgKSB7CiAgICAgICAgJFNRTCAgICAgICAgPSAnU0VMRUNUIENPVU5UKGMuaWQpIEZST00gY2hhbmdlX2l0ZW0gYyAnOwogICAgICAgIEBTUUxPcmRlckJ5ID0gKCk7CiAgICB9CgogICAgIyBhZGQgdGhlIGpvaW5zCiAgICBteSAlTG9uZ1RhYmxlTmFtZSA9ICgKICAgICAgICB3bzEgID0+ICdjaGFuZ2Vfd29ya29yZGVyJywKICAgICAgICB3bzIgID0+ICdjaGFuZ2Vfd29ya29yZGVyJywKICAgICAgICBjYWIxID0+ICdjaGFuZ2VfY2FiJywKICAgICAgICBjYWIyID0+ICdjaGFuZ2VfY2FiJywKICAgICk7CiAgICBteSAlVGFibGVTZWVuOwoKICAgIElOTkVSX0pPSU5fVEFCTEU6CiAgICBmb3IgbXkgJFRhYmxlIChASW5uZXJKb2luVGFibGVzKSB7CgogICAgICAgICMgZG8gbm90IGpvaW4gYSB0YWJsZSB0d2ljZQogICAgICAgIG5leHQgSU5ORVJfSk9JTl9UQUJMRSBpZiAkVGFibGVTZWVueyRUYWJsZX07CgogICAgICAgICRUYWJsZVNlZW57JFRhYmxlfSA9IDE7CgogICAgICAgIGlmICggISRMb25nVGFibGVOYW1leyRUYWJsZX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFbmNvdW50ZXJlZCBpbnZhbGlkIGlubmVyIGpvaW4gdGFibGUgJyRUYWJsZSchIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgJFNRTCAuPSAiSU5ORVIgSk9JTiAkTG9uZ1RhYmxlTmFtZXskVGFibGV9ICRUYWJsZSBPTiAkVGFibGUuY2hhbmdlX2lkID0gYy5pZCAiOwogICAgfQoKICAgICMgYWRkIHRoZSBkeW5hbWljIGZpZWxkIGlubmVyIGpvaW4gc3RhdGVtZW50cwogICAgJFNRTCAuPSAkU1FMRHluYW1pY0ZpZWxkSW5uZXJKb2luczsKCiAgICBPVVRFUl9KT0lOX1RBQkxFOgogICAgZm9yIG15ICRUYWJsZSAoQE91dGVySm9pblRhYmxlcykgewoKICAgICAgICAjIGRvIG5vdCBqb2luIGEgdGFibGUgdHdpY2UsIHdoZW4gYSB0YWJsZSBoYXMgYmVlbiBpbm5lciBqb2luZWQsIG5vIG91dGVyIGpvaW4gaXMgbmVjZXNzYXJ5CiAgICAgICAgbmV4dCBPVVRFUl9KT0lOX1RBQkxFIGlmICRUYWJsZVNlZW57JFRhYmxlfTsKCiAgICAgICAgIyByZW1lbWJlciB0aGF0IHRoaXMgdGFibGUgaXMgam9pbmVkIGFscmVhZHkKICAgICAgICAkVGFibGVTZWVueyRUYWJsZX0gPSAxOwoKICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgaWYgKCAhJExvbmdUYWJsZU5hbWV7JFRhYmxlfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVuY291bnRlcmVkIGludmFsaWQgb3V0ZXIgam9pbiB0YWJsZSAnJFRhYmxlJyEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkU1FMIC49ICJMRUZUIE9VVEVSIEpPSU4gJExvbmdUYWJsZU5hbWV7JFRhYmxlfSAkVGFibGUgT04gJFRhYmxlLmNoYW5nZV9pZCA9IGMuaWQgIjsKICAgIH0KCiAgICAjIGFkZCB0aGUgV0hFUkUgY2xhdXNlCiAgICBpZiAoQFNRTFdoZXJlKSB7CiAgICAgICAgJFNRTCAuPSAnV0hFUkUgJzsKICAgICAgICAkU1FMIC49IGpvaW4gJyBBTkQgJywgbWFwIHsiKCAkXyApIn0gQFNRTFdoZXJlOwogICAgICAgICRTUUwgLj0gJyAnOwogICAgICAgIGlmICgkU1FMRHluYW1pY0ZpZWxkV2hlcmUpIHsKICAgICAgICAgICAgJFNRTCAuPSAnIEFORCAnIC4gJFNRTER5bmFtaWNGaWVsZFdoZXJlOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgIGlmICgkU1FMRHluYW1pY0ZpZWxkV2hlcmUpIHsKICAgICAgICAgICAgJFNRTCAuPSAnIFdIRVJFICcgLiAkU1FMRHluYW1pY0ZpZWxkV2hlcmU7CiAgICAgICAgfQogICAgfQoKICAgICMgd2UgbmVlZCB0byBncm91cCB3aGVuZXZlciB0aGVyZSBpcyBhIGpvaW4KICAgIGlmICgKICAgICAgICBzY2FsYXIgQElubmVySm9pblRhYmxlcwogICAgICAgIHx8ICRTUUxEeW5hbWljRmllbGRXaGVyZQogICAgICAgIHx8IHNjYWxhciBAT3V0ZXJKb2luVGFibGVzCiAgICAgICAgKQogICAgewogICAgICAgICRTUUwgLj0gJ0dST1VQIEJZIGMuaWQgJzsKCiAgICAgICAgIyBhZGQgdGhlIG9yZGVyYnkgY29sdW1ucyBhbHNvIHRvIHRoZSBncm91cCBieSBjbGF1c2UsIGFzIHRoaXMgaXMgY29ycmVjdCBTUUwKICAgICAgICAjIGFuZCBzb21lIERCcyBsaWtlIFBvc3RncmVTUUwgYXJlIG1vcmUgc3RyaWN0IHRoYW4gb3RoZXJzCiAgICAgICAgIyB0aGlzIGlzIHRoZSBidWdmaXggZm9yIGJ1ZyMgNTgyNSBodHRwOi8vYnVncy5vdHJzLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgyNQogICAgICAgIGlmIChAU1FMT3JkZXJCeSkgewoKICAgICAgICAgICAgT1JERVJCWToKICAgICAgICAgICAgZm9yIG15ICRPcmRlckJ5IChAU1FMT3JkZXJCeSkgewoKICAgICAgICAgICAgICAgICMgZ2V0IHRoZSBjb2x1bW4gZnJvbSBhIHN0cmluZyB0aGF0IGxvb2tzIGxpa2U6IGMuY2hhbmdlX251bWJlciBBU0MKICAgICAgICAgICAgICAgIGlmICggJE9yZGVyQnkgPX4gbXsgXEEgKFxTKykgfXhtcyApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBnZXQgdGhlIGNvbHVtbiBwYXJ0IG9mIHRoZSBzdHJpbmcKICAgICAgICAgICAgICAgICAgICBteSAkQ29sdW1uID0gJDE7CgogICAgICAgICAgICAgICAgICAgICMgZG8gbm90IGluY2x1ZGUgdGhlIGMuaWQgY29sdW1uIGFnYWluLCBhcyB0aGlzIGlzIGFscmVhZHkgZG9uZSBiZWZvcmUKICAgICAgICAgICAgICAgICAgICBuZXh0IE9SREVSQlkgaWYgJENvbHVtbiBlcSAnYy5pZCc7CgogICAgICAgICAgICAgICAgICAgICMgZG8gbm90IGluY2x1ZGUgYWxpYXNlcyBvZiBhZ2dyZWdhdGUgZnVuY3Rpb25zIChtaW4vbWF4KQogICAgICAgICAgICAgICAgICAgIG5leHQgT1JERVJCWSBpZiAkQ29sdW1uID1+IG17IFxBIGFsaWFzXyB9eG1zOwoKICAgICAgICAgICAgICAgICAgICAjIGFkZCB0aGUgY29sdW1uIHRvIHRoZSBncm91cCBieSBjbGF1c2UKICAgICAgICAgICAgICAgICAgICAkU1FMIC49ICIsICRDb2x1bW4gIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGFkZCB0aGUgSEFWSU5HIGNsYXVzZQogICAgaWYgKEBTUUxIYXZpbmcpIHsKICAgICAgICAkU1FMIC49ICdIQVZJTkcgJzsKICAgICAgICAkU1FMIC49IGpvaW4gJyBBTkQgJywgbWFwIHsiKCAkXyApIn0gQFNRTEhhdmluZzsKICAgICAgICAkU1FMIC49ICcgJzsKICAgIH0KCiAgICAjIGFkZCB0aGUgT1JERVIgQlkgY2xhdXNlCiAgICBpZiAoQFNRTE9yZGVyQnkpIHsKICAgICAgICAkU1FMIC49ICdPUkRFUiBCWSAnOwogICAgICAgICRTUUwgLj0gam9pbiAnLCAnLCBAU1FMT3JkZXJCeTsKICAgICAgICAkU1FMIC49ICcgJzsKICAgIH0KCiAgICAjIGlnbm9yZSB0aGUgcGFyYW1ldGVyICdMaW1pdCcgd2hlbiByZXN1bHQgdHlwZSBpcyAnQ09VTlQnCiAgICBpZiAoICRSZXN1bHQgZXEgJ0NPVU5UJyApIHsKICAgICAgICBkZWxldGUgJFBhcmFte0xpbWl0fTsKICAgIH0KCiAgICAjIGFzayBkYXRhYmFzZQogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJFNRTCwKICAgICAgICBMaW1pdCA9PiAkUGFyYW17TGltaXR9LAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15IEBJRHM7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBwdXNoIEBJRHMsICRSb3dbMF07CiAgICB9CgogICAgaWYgKAogICAgICAgICRSZXN1bHQgZXEgJ0NPVU5UJwogICAgICAgICYmICFASW5uZXJKb2luVGFibGVzCiAgICAgICAgJiYgISRTUUxEeW5hbWljRmllbGRXaGVyZQogICAgICAgICYmICFAT3V0ZXJKb2luVGFibGVzCiAgICAgICAgKQogICAgewoKICAgICAgICAjIHJldHVybiB0aGUgQ09VTlQoYy5pZCkgYXR0cmlidXRlCiAgICAgICAgcmV0dXJuICRJRHNbMF0gfHwgMDsKICAgIH0KICAgIGVsc2lmICggJFJlc3VsdCBlcSAnQ09VTlQnICkgewoKICAgICAgICAjIHJldHVybiB0aGUgY291bnQgYXMgdGhlIG51bWJlciBvZiBJRHMKICAgICAgICByZXR1cm4gc2NhbGFyIEBJRHM7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICByZXR1cm4gXEBJRHM7CiAgICB9Cn0KCj1oZWFkMiBDaGFuZ2VEZWxldGUoKQoKRGVsZXRlIGEgY2hhbmdlLgoKVGhpcyBmdW5jdGlvbiBmaXJzdCByZW1vdmVzIGFsbCBsaW5rcyBhbmQgYXR0YWNobWVudHMgdG8gdGhlIGdpdmVuIGNoYW5nZS4KVGhlbiBpdCBnZXRzIGEgbGlzdCBvZiBhbGwgQzx3b3Jrb3JkZXJzPiBvZiB0aGUgY2hhbmdlIGFuZApjYWxscyBDPFdvcmtvcmRlckRlbGV0ZSgpPiBmb3IgZWFjaCBDPHdvcmtvcmRlcj4sIHdoaWNoIHdpbGwgZGVsZXRlCmFsbCBsaW5rcyBhbmQgYWxsIGF0dGFjaG1lbnRzIHRvIHRoZSBDPHdvcmtvcmRlcnM+LgpUaGVuIGl0IGRlbGV0ZXMgdGhlIENBQi4KQWZ0ZXIgdGhhdCB0aGUgY2hhbmdlIGlzIHJlbW92ZWQuClRoZSBoaXN0b3J5IG9mIHRoaXMgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBkdXJpbmcgdGhlIGhhbmRsaW5nIG9mIHRoZQp0cmlnZ2VyZWQgQ2hhbmdlRGVsZXRlUG9zdC1ldmVudC4KCiAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICBDaGFuZ2VJRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQ2hhbmdlRGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXR0cmlidXRlIChxdyhDaGFuZ2VJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBdHRyaWJ1dGV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXR0cmlidXRlISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyB0cmlnZ2VyIENoYW5nZURlbGV0ZVByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnQ2hhbmdlRGVsZXRlUHJlJywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyB0aGUgY2hhbmdlIGRvZXMgbm90IGV4aXN0LCB3aGVuIGl0IGNhbid0IGJlIGxvb2tlZCB1cAogICAgcmV0dXJuIGlmICEkU2VsZi0+Q2hhbmdlTG9va3VwKAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICApOwoKICAgICMgZGVsZXRlIGFsbCBsaW5rcyB0byB0aGlzIGNoYW5nZQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcpLT5MaW5rRGVsZXRlQWxsKAogICAgICAgIE9iamVjdCA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgS2V5ICAgID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgICMgZ2V0IHRoZSBsaXN0IG9mIGF0dGFjaG1lbnRzIGFuZCBkZWxldGUgdGhlbQogICAgbXkgQEF0dGFjaG1lbnRzID0gJFNlbGYtPkNoYW5nZUF0dGFjaG1lbnRMaXN0KAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICApOwogICAgZm9yIG15ICRGaWxlbmFtZSAoQEF0dGFjaG1lbnRzKSB7CiAgICAgICAgcmV0dXJuIGlmICEkU2VsZi0+Q2hhbmdlQXR0YWNobWVudERlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICAgICAgRmlsZW5hbWUgPT4gJEZpbGVuYW1lLAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBkYXRhIHRvIGdldCB0aGUgd29ya29yZGVyIGlkcwogICAgbXkgJENoYW5nZURhdGEgPSAkU2VsZi0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgY2hhbmdlIGNvbnRhaW5zIHdvcmtvcmRlcnMKICAgIGlmICgKICAgICAgICAkQ2hhbmdlRGF0YQogICAgICAgICYmIHJlZiAkQ2hhbmdlRGF0YSBlcSAnSEFTSCcKICAgICAgICAmJiAkQ2hhbmdlRGF0YS0+e1dvcmtPcmRlcklEc30KICAgICAgICAmJiByZWYgJENoYW5nZURhdGEtPntXb3JrT3JkZXJJRHN9IGVxICdBUlJBWScKICAgICAgICApCiAgICB7CgogICAgICAgICMgZGVsZXRlIHRoZSB3b3Jrb3JkZXJzCiAgICAgICAgZm9yIG15ICRXb3JrT3JkZXJJRCAoIEB7ICRDaGFuZ2VEYXRhLT57V29ya09yZGVySURzfSB9ICkgewoKICAgICAgICAgICAgbXkgJERlbGV0ZVN1Y2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJEZWxldGUoCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCAgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgTm9OdW1iZXJDYWxjID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gaWYgISREZWxldGVTdWNjZXNzOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRlbGV0ZSB0aGUgQ0FCCiAgICByZXR1cm4gaWYgISRTZWxmLT5DaGFuZ2VDQUJEZWxldGUoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgYWxsIGR5bmFtaWMgZmllbGRzIGZvciB0aGUgb2JqZWN0IHR5cGUgSVRTTUNoYW5nZQogICAgbXkgJER5bmFtaWNGaWVsZExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgT2JqZWN0VHlwZSA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgVmFsaWQgICAgICA9PiAwLAogICAgKTsKCiAgICAjIGRlbGV0ZSBkeW5hbWljZmllbGQgdmFsdWVzIGZvciB0aGlzIGNoYW5nZQogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGRMaXN0fSApIHsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISREeW5hbWljRmllbGRDb25maWc7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57Q29uZmlnfSApOwoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyktPlZhbHVlRGVsZXRlKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBmb3IgbXkgJEtleSAoCiAgICAgICAgJ0NoYW5nZUdldDo6SUQ6OicgLiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgICdDaGFuZ2VMaXN0JywKICAgICAgICAnQ2hhbmdlTG9va3VwOjpDaGFuZ2VJRDo6JyAuICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgJ0NoYW5nZUxvb2t1cDo6Q2hhbmdlTnVtYmVyOjonIC4gJENoYW5nZURhdGEtPntDaGFuZ2VOdW1iZXJ9LAogICAgICAgICkKICAgIHsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkRlbGV0ZSgKICAgICAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgIEtleSAgPT4gJEtleSwKICAgICAgICApOwogICAgfQoKICAgICMgdHJpZ2dlciBDaGFuZ2VEZWxldGVQb3N0LUV2ZW50CiAgICAjIHRoaXMgbXVzdCBiZSBkb25lIGJlZm9yZSBkZWxldGluZyB0aGUgY2hhbmdlIGZyb20gdGhlIGRhdGFiYXNlLAogICAgIyBiZWNhdXNlIG9mIGEgZm9yZWlnbiBrZXkgY29uc3RyYWludCBpbiB0aGUgY2hhbmdlX2hpc3RvcnkgdGFibGUKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ0NoYW5nZURlbGV0ZVBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgT2xkQ2hhbmdlRGF0YSA9PiAkQ2hhbmdlRGF0YSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGRlbGV0ZSB0aGUgY2hhbmdlCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgID0+ICdERUxFVEUgRlJPTSBjaGFuZ2VfaXRlbSBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0NoYW5nZUlEfSBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENoYW5nZVN0YXRlTG9va3VwKCkKClRoaXMgbWV0aG9kIGRvZXMgYSBsb29rdXAgZm9yIGEgY2hhbmdlIHN0YXRlLiBJZiBhIGNoYW5nZSBzdGF0ZSBpZCBpcyBnaXZlbiwKaXQgcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgY2hhbmdlIHN0YXRlLiBJZiBhIGNoYW5nZSBzdGF0ZSBuYW1lIGlzIGdpdmVuLAp0aGUgYXBwcm9wcmlhdGUgaWQgaXMgcmV0dXJuZWQuCgogICAgbXkgJENoYW5nZVN0YXRlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU3RhdGVMb29rdXAoCiAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAxMjM0LAogICAgKTsKCiAgICBteSAkQ2hhbmdlU3RhdGVJRCA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVN0YXRlTG9va3VwKAogICAgICAgIENoYW5nZVN0YXRlID0+ICdhY2NlcHRlZCcsCiAgICApOwoKPWN1dAoKc3ViIENoYW5nZVN0YXRlTG9va3VwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBlaXRoZXIgQ2hhbmdlU3RhdGVJRCBvciBTdGF0ZSBtdXN0IGJlIHBhc3NlZAogICAgaWYgKCAhJFBhcmFte0NoYW5nZVN0YXRlSUR9ICYmICEkUGFyYW17Q2hhbmdlU3RhdGV9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBDaGFuZ2VTdGF0ZUlEIG9yIENoYW5nZVN0YXRlIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCAkUGFyYW17Q2hhbmdlU3RhdGVJRH0gJiYgJFBhcmFte0NoYW5nZVN0YXRlfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ2hhbmdlU3RhdGVJRCBPUiBDaGFuZ2VTdGF0ZSAtIG5vdCBib3RoIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgdGhlIGNoYW5nZSBzdGF0ZXMgZnJvbSB0aGUgZ2VuZXJhbCBjYXRhbG9nCiAgICBteSAkU3RhdGVMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICk7CgogICAgIyBjb252ZXJ0IHN0YXRlIGxpc3QgaW50byBhIGxvb2t1cCBoYXNoCiAgICBteSAlU3RhdGVJRDJOYW1lOwogICAgaWYgKCAkU3RhdGVMaXN0ICYmIHJlZiAkU3RhdGVMaXN0IGVxICdIQVNIJyAmJiAleyRTdGF0ZUxpc3R9ICkgewogICAgICAgICVTdGF0ZUlEMk5hbWUgPSAleyRTdGF0ZUxpc3R9OwogICAgfQoKICAgICMgY2hlY2sgdGhlIHN0YXRlIGhhc2gKICAgIGlmICggISVTdGF0ZUlEMk5hbWUgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdDb3VsZCBub3QgcmV0cmlldmUgY2hhbmdlIHN0YXRlcyBmcm9tIHRoZSBnZW5lcmFsIGNhdGFsb2cuJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICggJFBhcmFte0NoYW5nZVN0YXRlSUR9ICkgewogICAgICAgIHJldHVybiAkU3RhdGVJRDJOYW1leyAkUGFyYW17Q2hhbmdlU3RhdGVJRH0gfTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIHJldmVyc2Uga2V5IC0gdmFsdWUgcGFpcnMgdG8gaGF2ZSB0aGUgbmFtZSBhcyBrZXlzCiAgICAgICAgbXkgJVN0YXRlTmFtZTJJRCA9IHJldmVyc2UgJVN0YXRlSUQyTmFtZTsKCiAgICAgICAgcmV0dXJuICRTdGF0ZU5hbWUySUR7ICRQYXJhbXtDaGFuZ2VTdGF0ZX0gfTsKICAgIH0KfQoKPWhlYWQyIENoYW5nZVBvc3NpYmxlU3RhdGVzR2V0KCkKClRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIHBvc3NpYmxlIGNoYW5nZSBzdGF0ZXMuCklmIENoYW5nZUlEIGlzIG9taXR0ZWQsIHRoZSBjb21wbGV0ZSBsaXN0IG9mIGNoYW5nZSBzdGF0ZXMgaXMgcmV0dXJuZWQuCklmIENoYW5nZUlEIGlzIGdpdmVuLCB0aGUgbGlzdCBvZiBwb3NzaWJsZSBjaGFuZ2Ugc3RhdGVzIGZvciB0aGlzCmNoYW5nZSBpcyByZXR1cm5lZC4KCiAgICBteSAkQ2hhbmdlU3RhdGVMaXN0ID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlUG9zc2libGVTdGF0ZXNHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gMTIzLCAgICAjIChvcHRpb25hbCkKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKClRoZSByZXR1cm4gdmFsdWUgaXMgYSByZWZlcmVuY2UgdG8gYW4gYXJyYXkgb2YgaGFzaHJlZnMuIFRoZSBlbGVtZW50ICdLZXknIGlzIHRoZW4KdGhlIENoYW5nZVN0YXRlSUQgYW5kIHRoZSBlbGVtZW50ICdWYWx1ZScgaXMgdGhlIG5hbWUgb2YgdGhlIHN0YXRlLiBUaGUgYXJyYXkgZWxlbWVudHMKYXJlIHNvcnRlZCBieSBzdGF0ZSBpZC4KCiAgICBteSAkQ2hhbmdlU3RhdGVMaXN0ID0gWwogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gMTU2LAogICAgICAgICAgICBWYWx1ZSA9PiAnYXBwcm92ZWQnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAxNTcsCiAgICAgICAgICAgIFZhbHVlID0+ICdpbiBwcm9ncmVzcycsCiAgICAgICAgfSwKICAgIF07Cgo9Y3V0CgpzdWIgQ2hhbmdlUG9zc2libGVTdGF0ZXNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIFVzZXJJRCEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGNoYW5nZSBzdGF0ZSBsaXN0CiAgICBteSAkU3RhdGVMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICkgfHwge307CgogICAgIyB0byBzdG9yZSBhbiBhcnJheSBvZiBoYXNoIHJlZnMKICAgIG15IEBBcnJheUhhc2hSZWY7CgogICAgIyBpZiBDaGFuZ2VJRCBpcyBnaXZlbiwgb25seSB1c2UgcG9zc2libGUgbmV4dCBzdGF0ZXMgYXMgZGVmaW5lZCBpbiBzdGF0ZSBtYWNoaW5lCiAgICBpZiAoICRQYXJhbXtDaGFuZ2VJRH0gKSB7CgogICAgICAgICMgZ2V0IGNoYW5nZSBkYXRhCiAgICAgICAgbXkgJENoYW5nZSA9ICRTZWxmLT5DaGFuZ2VHZXQoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgZm9yIHN0YXRlIGxvY2sKICAgICAgICBteSAkU3RhdGVMb2NrOwogICAgICAgICRTdGF0ZUxvY2sgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbicpLT5Db25kaXRpb25NYXRjaFN0YXRlTG9jaygKICAgICAgICAgICAgT2JqZWN0TmFtZSA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgICAgIFNlbGVjdG9yICAgPT4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICAgICAgU3RhdGVJRCAgICA9PiAkQ2hhbmdlLT57Q2hhbmdlU3RhdGVJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzZXQgYXMgZGVmYXVsdCBzdGF0ZSBjdXJyZW50IGNoYW5nZSBzdGF0ZQogICAgICAgIG15IEBOZXh0U3RhdGVJRHMgPSAoICRDaGFuZ2UtPntDaGFuZ2VTdGF0ZUlEfSApOwoKICAgICAgICAjIGNoZWNrIGlmIHJlYWNoYWJsZSBjaGFuZ2UgZW5kIHN0YXRlcyBzaG91bGQgYmUgYWxsb3dlZCBmb3IgbG9ja2VkIGNoYW5nZSBzdGF0ZXMKICAgICAgICBteSAkQ2hhbmdlRW5kU3RhdGVzQWxsb3dlZCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSVRTTUNoYW5nZTo6U3RhdGVMb2NrOjpBbGxvd0VuZFN0YXRlcycpOwoKICAgICAgICBpZiAoJENoYW5nZUVuZFN0YXRlc0FsbG93ZWQpIHsKCiAgICAgICAgICAgICMgc2V0IGFzIGRlZmF1bHQgc3RhdGUgY3VycmVudCBzdGF0ZSBhbmQgYWxsIHBvc3NpYmxlIGVuZCBzdGF0ZXMKICAgICAgICAgICAgbXkgJEVuZFN0YXRlSURzUmVmCiAgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNU3RhdGVNYWNoaW5lJyktPlN0YXRlVHJhbnNpdGlvbkdldEVuZFN0YXRlcygKICAgICAgICAgICAgICAgIFN0YXRlSUQgPT4gJENoYW5nZS0+e0NoYW5nZVN0YXRlSUR9LAogICAgICAgICAgICAgICAgQ2xhc3MgICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgICAgICAgICApIHx8IFtdOwogICAgICAgICAgICBATmV4dFN0YXRlSURzID0gc29ydCAoIEB7JEVuZFN0YXRlSURzUmVmfSwgJENoYW5nZS0+e0NoYW5nZVN0YXRlSUR9ICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBwb3NzaWJsZSBuZXh0IHN0YXRlcyBpZiBubyBzdGF0ZSBsb2NrCiAgICAgICAgaWYgKCAhJFN0YXRlTG9jayApIHsKCiAgICAgICAgICAgICMgZ2V0IHRoZSBwb3NzaWJsZSBuZXh0IHN0YXRlIGlkcwogICAgICAgICAgICBteSAkTmV4dFN0YXRlSURzUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01TdGF0ZU1hY2hpbmUnKS0+U3RhdGVUcmFuc2l0aW9uR2V0KAogICAgICAgICAgICAgICAgU3RhdGVJRCA9PiAkQ2hhbmdlLT57Q2hhbmdlU3RhdGVJRH0sCiAgICAgICAgICAgICAgICBDbGFzcyAgID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgKSB8fCBbXTsKCiAgICAgICAgICAgICMgYWRkIGN1cnJlbnQgY2hhbmdlIHN0YXRlIGlkIHRvIGxpc3QKICAgICAgICAgICAgQE5leHRTdGF0ZUlEcyA9IHNvcnQgKCBAeyROZXh0U3RhdGVJRHNSZWZ9LCAkQ2hhbmdlLT57Q2hhbmdlU3RhdGVJRH0gKTsKICAgICAgICB9CgogICAgICAgICMgYXNzZW1ibGUgdGhlIGFycmF5IG9mIGhhc2ggcmVmcyB3aXRoIG9ubHkgcG9zc2libGUgbmV4dCBzdGF0ZXMKICAgICAgICBTVEFURUlEOgogICAgICAgIGZvciBteSAkU3RhdGVJRCAoQE5leHRTdGF0ZUlEcykgewoKICAgICAgICAgICAgbmV4dCBTVEFURUlEIGlmICEkU3RhdGVJRDsKCiAgICAgICAgICAgIHB1c2ggQEFycmF5SGFzaFJlZiwgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJFN0YXRlSUQsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkU3RhdGVMaXN0LT57JFN0YXRlSUR9LAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIFxAQXJyYXlIYXNoUmVmOwogICAgfQoKICAgICMgYXNzZW1ibGUgdGhlIGFycmF5IG9mIGhhc2ggcmVmcyB3aXRoIGFsbCBuZXh0IHN0YXRlcwogICAgZm9yIG15ICRTdGF0ZUlEICggc29ydCBrZXlzICV7JFN0YXRlTGlzdH0gKSB7CiAgICAgICAgcHVzaCBAQXJyYXlIYXNoUmVmLCB7CiAgICAgICAgICAgIEtleSAgID0+ICRTdGF0ZUlELAogICAgICAgICAgICBWYWx1ZSA9PiAkU3RhdGVMaXN0LT57JFN0YXRlSUR9LAogICAgICAgIH07CiAgICB9CgogICAgcmV0dXJuIFxAQXJyYXlIYXNoUmVmOwp9Cgo9aGVhZDIgQ2hhbmdlUG9zc2libGVDSVBHZXQoKQoKVGhpcyBtZXRob2QgcmV0dXJucyBhIGxpc3Qgb2YgcG9zc2libGUgY2F0ZWdvcmllcywgaW1wYWN0cyBvciBwcmlvcml0aWVzLgoKICAgIG15ICRDSVBMaXN0ID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlUG9zc2libGVDSVBHZXQoCiAgICAgICAgVHlwZSAgID0+ICdDYXRlZ29yeScsICAjIENhdGVnb3J5fEltcGFjdHxQcmlvcml0eQogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKClRoZSByZXR1cm4gdmFsdWUgaXMgYSByZWZlcmVuY2UgdG8gYW4gYXJyYXkgb2YgaGFzaHJlZnMuIFRoZSBFbGVtZW50ICdLZXknIGlzIHRoZW4KdGhlIElEIGFuZCB0aGUgZWxlbWVudCAnVmFsdWUnIGlzIHRoZSBuYW1lIG9mIHRoZSBjYXRlZ29yeSwgaW1wYWN0IG9yIHByaW9yaXR5LgpUaGUgYXJyYXkgZWxlbWVudHMgYXJlIHNvcnRlZCBieSBpZCBpbiBhc2NlbmRpbmcgb3JkZXIuCgogICAgbXkgJENJUExpc3QgPSBbCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAxNTYsCiAgICAgICAgICAgIFZhbHVlID0+ICcxIHZlcnkgbG93JywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gMTU3LAogICAgICAgICAgICBWYWx1ZSA9PiAnMiBsb3cnLAogICAgICAgIH0sCiAgICBdOwoKPWN1dAoKc3ViIENoYW5nZVBvc3NpYmxlQ0lQR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIFR5cGUgcGFyYW0gZm9yIHZhbGlkIHZhbHVlcwogICAgaWYgKAogICAgICAgICEkUGFyYW17VHlwZX0KICAgICAgICB8fCAoICRQYXJhbXtUeXBlfSBuZSAnQ2F0ZWdvcnknICYmICRQYXJhbXtUeXBlfSBuZSAnSW1wYWN0JyAmJiAkUGFyYW17VHlwZX0gbmUgJ1ByaW9yaXR5JyApCiAgICAgICAgKQogICAgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnVGhlIHBhcmFtIFR5cGUgbXVzdCBiZSBlaXRoZXIgIkNhdGVnb3J5IiBvciAiSW1wYWN0IiBvciAiUHJpb3JpdHkiIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgaXRlbSBsaXN0IGZvciB0aGUgcmVxdWVzdGVkIHR5cGUKICAgIG15ICRDSVBMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjonIC4gJFBhcmFte1R5cGV9LAogICAgKSB8fCB7fTsKCiAgICAjIGFzc2VtYmxlIGFuIGFycmF5IG9mIGhhc2ggcmVmcwogICAgbXkgQEFycmF5SGFzaFJlZjsKICAgIGZvciBteSAkSUQgKCBzb3J0IHsgJENJUExpc3QtPnskYX0gY21wICRDSVBMaXN0LT57JGJ9IH0ga2V5cyAleyRDSVBMaXN0fSApIHsKICAgICAgICBwdXNoIEBBcnJheUhhc2hSZWYsIHsKICAgICAgICAgICAgS2V5ICAgPT4gJElELAogICAgICAgICAgICBWYWx1ZSA9PiAkQ0lQTGlzdC0+eyRJRH0sCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gXEBBcnJheUhhc2hSZWY7Cn0KCj1oZWFkMiBDaGFuZ2VDSVBMb29rdXAoKQoKVGhpcyBtZXRob2QgZG9lcyBhIGxvb2t1cCBmb3IgYSBjaGFuZ2UgY2F0ZWdvcnksIGltcGFjdCBvciBwcmlvcml0eS4KSWYgYSBjaGFuZ2UgQzxDSVAtSUQ+IGlzIGdpdmVuLCBpdCByZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBDPENJUD4uCklmIGEgY2hhbmdlIEM8Q0lQPiBuYW1lIGlzIGdpdmVuLCB0aGUgYXBwcm9wcmlhdGUgSUQgaXMgcmV0dXJuZWQuCgogICAgbXkgJE5hbWUgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VDSVBMb29rdXAoCiAgICAgICAgSUQgICA9PiAxMjM0LAogICAgICAgIFR5cGUgPT4gJ1ByaW9yaXR5JywKICAgICk7CgogICAgbXkgJElEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQ0lQTG9va3VwKAogICAgICAgIENJUCAgPT4gJzEgdmVyeSBsb3cnLAogICAgICAgIFR5cGUgPT4gJ0NhdGVnb3J5JywKICAgICk7Cgo9Y3V0CgpzdWIgQ2hhbmdlQ0lQTG9va3VwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBlaXRoZXIgSUQgb3IgQ0lQIG11c3QgYmUgcGFzc2VkCiAgICBpZiAoICEkUGFyYW17SUR9ICYmICEkUGFyYW17Q0lQfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgSUQgb3IgQ0lQIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayB0aGF0IG5vdCBib3RoIElEIGFuZCBDSVAgYXJlIGdpdmVuCiAgICBpZiAoICRQYXJhbXtJRH0gJiYgJFBhcmFte0NJUH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIGVpdGhlciBJRCBPUiBDSVAgLSBub3QgYm90aCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgVHlwZSBwYXJhbSBmb3IgdmFsaWQgdmFsdWVzCiAgICBpZiAoCiAgICAgICAgISRQYXJhbXtUeXBlfQogICAgICAgIHx8ICggJFBhcmFte1R5cGV9IG5lICdDYXRlZ29yeScgJiYgJFBhcmFte1R5cGV9IG5lICdJbXBhY3QnICYmICRQYXJhbXtUeXBlfSBuZSAnUHJpb3JpdHknICkKICAgICAgICApCiAgICB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdUaGUgcGFyYW0gVHlwZSBtdXN0IGJlIGVpdGhlciAiQ2F0ZWdvcnkiIG9yICJJbXBhY3QiIG9yICJQcmlvcml0eSIhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBjaGFuZ2UgQ0lQIGZyb20gZ2VuZXJhbCBjYXRhbG9nCiAgICAjIG1hcHBpbmcgb2YgdGhlIGlkIHRvIHRoZSBuYW1lCiAgICBteSAlQ2hhbmdlQ0lQID0gJXsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUxpc3QoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjonIC4gJFBhcmFte1R5cGV9LAogICAgICAgICkgfHwge30KICAgIH07CgogICAgaWYgKCAkUGFyYW17SUR9ICkgewogICAgICAgIHJldHVybiAkQ2hhbmdlQ0lQeyAkUGFyYW17SUR9IH07CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyByZXZlcnNlIGtleSAtIHZhbHVlIHBhaXJzIHRvIGhhdmUgdGhlIG5hbWUgYXMga2V5cwogICAgICAgIG15ICVSZXZlcnNlZENoYW5nZUNJUCA9IHJldmVyc2UgJUNoYW5nZUNJUDsKCiAgICAgICAgcmV0dXJuICRSZXZlcnNlZENoYW5nZUNJUHsgJFBhcmFte0NJUH0gfTsKICAgIH0KfQoKPWhlYWQyIFBlcm1pc3Npb24oKQoKUmV0dXJucyB3aGV0aGVyIHRoZSBhZ2VudCBDPFVzZXJJRD4gaGFzIHBlcm1pc3Npb25zIG9mIHRoZSB0eXBlIEM8VHlwZT4Kb24gdGhlIGNoYW5nZSBDPENoYW5nZUlEPi4gVGhlIHBhcmFtZXRlcnMgYXJlIHBhc3NlZCBvbiB0bwp0aGUgcGVybWlzc2lvbiBtb2R1bGVzIHRoYXQgd2VyZSByZWdpc3RlcmVkIGluIHRoZSBwZXJtaXNzaW9uIHJlZ2lzdHJ5LgpUaGUgc3RhbmRhcmQgcGVybWlzc2lvbiByZWdpc3RyeSBpcyBCPElUU01DaGFuZ2U6OlBlcm1pc3Npb24+LCBidXQKdGhhdCBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHRoZSBwYXJhbWV0ZXIgQzxQZXJtaXNzaW9uUmVnaXN0cnk+LgoKVGhlIG9wdGlvbmFsIG9wdGlvbiBDPExvZ05vPiB0dXJucyBvZmYgbG9nZ2luZyB3aGVuIGFjY2VzcyB3YXMgZGVuaWVkLgpUaGlzIGlzIHVzZWZ1bCB3aGVuIHRoZSBtZXRob2QgaXMgdXNlZCBmb3IgY2hlY2tpbmcgd2hldGhlciBhIGxpbmsgb3IgYW4gYWN0aW9uIHNob3VsZCBiZSBzaG93bi4KCiAgICBteSAkQWNjZXNzID0gJENoYW5nZU9iamVjdC0+UGVybWlzc2lvbigKICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIFR5cGUgICAgICAgICAgICAgICA9PiAncm8nLCAgICAgICAgICAgICAgICAgICAgICAgICAjICdybycgYW5kICdydycgYXJlIHN1cHBvcnRlZAogICAgICAgIEFjdGlvbiAgICAgICAgICAgICA9PiAnQWdlbnRJVFNNQ2hhbmdlRWRpdCcsICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgQ2hhbmdlSUQgICAgICAgICAgID0+IDMzMzMsICAgIyBvcHRpb25hbCwgZG8gbm90IHBhc3MgZm9yICdDaGFuZ2VBZGQnCiAgICAgICAgUGVybWlzc2lvblJlZ2lzdHJ5ID0+ICdJVFNNQ2hhbmdlOjpQZXJtaXNzaW9uJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIHdpdGggZGVmYXVsdCAnSVRTTUNoYW5nZTo6UGVybWlzc2lvbicKICAgICAgICBMb2dObyAgICAgICAgICAgICAgPT4gMSwgICAgICAjIG9wdGlvbmFsLCB0dXJucyBvZmYgbG9nZ2luZyB3aGVuIGFjY2VzcyBpcyBkZW5pZWQKICAgICk7Cgo9Y3V0CgpzdWIgUGVybWlzc2lvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhUeXBlIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBUaGVyZSBhcmUgdmFsaWQgY2FzZXMgd2hlbiBubyBDaGFuZ2VJRCBpcyBwYXNzZWQuCiAgICAjIEUuZy4gZm9yIENoYW5nZUFkZCgpIG9yIENoYW5nZVNlYXJjaCgpLgogICAgJFBhcmFte0NoYW5nZUlEfSB8fD0gJyc7CgogICAgIyB0aGUgcGxhY2Ugd2hlcmUgdGhlIHBlcm1pc3Npb24gbW9kdWxlcyBhcmUgcmVnaXN0ZXJkIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGEgcGFyYW1ldGVyCiAgICBteSAkUmVnaXN0cnkgPSAkUGFyYW17UGVybWlzc2lvblJlZ2lzdHJ5fSB8fCAnSVRTTUNoYW5nZTo6UGVybWlzc2lvbic7CgogICAgIyBydW4gdGhlIHJlbGV2YW50IHBlcm1pc3Npb24gbW9kdWxlcwogICAgaWYgKCByZWYgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCRSZWdpc3RyeSkgZXEgJ0hBU0gnICkgewoKICAgICAgICBteSAlTW9kdWxlcyA9ICV7ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgkUmVnaXN0cnkpIH07CgogICAgICAgIE1PRFVMRToKICAgICAgICBmb3IgbXkgJE1vZHVsZSAoIHNvcnQga2V5cyAlTW9kdWxlcyApIHsKCiAgICAgICAgICAgICMgbG9nIHRyeSBvZiBsb2FkIG1vZHVsZQogICAgICAgICAgICBpZiAoICRTZWxmLT57RGVidWd9ID4gMSApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRyeSB0byBsb2FkIG1vZHVsZTogJE1vZHVsZXN7JE1vZHVsZX0tPntNb2R1bGV9ISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGxvYWQgbW9kdWxlCiAgICAgICAgICAgIG5leHQgTU9EVUxFCiAgICAgICAgICAgICAgICBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+UmVxdWlyZSggJE1vZHVsZXN7JE1vZHVsZX0tPntNb2R1bGV9ICk7CgogICAgICAgICAgICAjIGNyZWF0ZSBvYmplY3QKICAgICAgICAgICAgbXkgJE1vZHVsZU9iamVjdCA9ICRNb2R1bGVzeyRNb2R1bGV9LT57TW9kdWxlfS0+bmV3KCk7CgogICAgICAgICAgICAjIGFzayBmb3IgdGhlIG9waW5pb24gb2YgdGhlIFBlcm1pc3Npb24gbW9kdWxlCiAgICAgICAgICAgIG15ICRBY2Nlc3MgPSAkTW9kdWxlT2JqZWN0LT5SdW4oJVBhcmFtKTsKCiAgICAgICAgICAgICMgR3JhbnQgb3ZlcmFsbCBwZXJtaXNzaW9uLAogICAgICAgICAgICAjIHdoZW4gdGhlIG1vZHVsZSBncmFudGVkIGEgc3VmZmljaWVudCBwZXJtaXNzaW9uLgogICAgICAgICAgICBpZiAoICRBY2Nlc3MgJiYgJE1vZHVsZXN7JE1vZHVsZX0tPntHcmFudGVkfSApIHsKICAgICAgICAgICAgICAgIGlmICggJFNlbGYtPntEZWJ1Z30gPiAwICkgewogICAgICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiR3JhbnRlZCAnJFBhcmFte1R5cGV9JyBhY2Nlc3MgZm9yICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlVzZXJJRDogJFBhcmFte1VzZXJJRH0gb24gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQ2hhbmdlSUQgJyRQYXJhbXtDaGFuZ2VJRH0nICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gInRocm91Z2ggJE1vZHVsZXN7JE1vZHVsZX0tPntNb2R1bGV9IChubyBtb3JlIGNoZWNrcykhIiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgZ3JhbnQgcGVybWlzc2lvbgogICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgRGVueSBvdmVyYWxsIHBlcm1pc3Npb24sCiAgICAgICAgICAgICMgd2hlbiB0aGUgbW9kdWxlIGRlbmllZCBhIHJlcXVpcmVkIHBlcm1pc3Npb24uCiAgICAgICAgICAgIGlmICggISRBY2Nlc3MgJiYgJE1vZHVsZXN7JE1vZHVsZX0tPntSZXF1aXJlZH0gKSB7CiAgICAgICAgICAgICAgICBpZiAoICEkUGFyYW17TG9nTm99ICkgewogICAgICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkRlbmllZCAnJFBhcmFte1R5cGV9JyBhY2Nlc3MgZm9yICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlVzZXJJRDogJFBhcmFte1VzZXJJRH0gb24gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQ2hhbmdlSUQgJyRQYXJhbXtDaGFuZ2VJRH0nICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gImJlY2F1c2UgJE1vZHVsZXN7JE1vZHVsZX0tPntNb2R1bGV9IGlzIHJlcXVpcmVkISIsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGRlbnkgcGVybWlzc2lvbgogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgRGVueSBhY2Nlc3Mgd2hlbiBuZWl0aGVyIGEgJ0dyYW50ZWQnLUNoZWNrIG5vciBhICdSZXF1aXJlZCctQ2hlY2sgaGFzIHJlYWNoZWQgYSBjb25jbHVzaW9uLgogICAgaWYgKCAhJFBhcmFte0xvZ05vfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ25vdGljZScsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJQZXJtaXNzaW9uIGRlbmllZCAoVXNlcklEOiAkUGFyYW17VXNlcklEfSAnJFBhcmFte1R5cGV9JyAiCiAgICAgICAgICAgICAgICAuICJvbiBDaGFuZ2VJRDogJFBhcmFte0NoYW5nZUlEfSkhIiwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybjsKfQoKPWhlYWQyIENoYW5nZUF0dGFjaG1lbnRBZGQoKQoKQWRkIGFuIGF0dGFjaG1lbnQgdG8gdGhlIGdpdmVuIGNoYW5nZS4KCiAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUF0dGFjaG1lbnRBZGQoCiAgICAgICAgQ2hhbmdlSUQgICAgPT4gMTIzLCAgICAgICAgICAgICAgICMgdGhlIENoYW5nZUlEIGJlY29tZXMgcGFydCBvZiB0aGUgZmlsZSBwYXRoCiAgICAgICAgRmlsZW5hbWUgICAgPT4gJ2ZpbGVuYW1lJywKICAgICAgICBDb250ZW50ICAgICA9PiAnY29udGVudCcsCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIENoYW5nZUF0dGFjaG1lbnRBZGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KENoYW5nZUlEIEZpbGVuYW1lIENvbnRlbnQgQ29udGVudFR5cGUgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHdyaXRlIHRvIHZpcnR1YWwgZnMKICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZpcnR1YWxGUycpLT5Xcml0ZSgKICAgICAgICBGaWxlbmFtZSAgICA9PiAiQ2hhbmdlLyRQYXJhbXtDaGFuZ2VJRH0vJFBhcmFte0ZpbGVuYW1lfSIsCiAgICAgICAgTW9kZSAgICAgICAgPT4gJ2JpbmFyeScsCiAgICAgICAgQ29udGVudCAgICAgPT4gXCRQYXJhbXtDb250ZW50fSwKICAgICAgICBQcmVmZXJlbmNlcyA9PiB7CiAgICAgICAgICAgIENvbnRlbnRJRCAgID0+ICRQYXJhbXtDb250ZW50SUR9LAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAkUGFyYW17Q29udGVudFR5cGV9LAogICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGNoZWNrIGZvciBlcnJvcgogICAgaWYgKCRTdWNjZXNzKSB7CgogICAgICAgICMgdHJpZ2dlciBBdHRhY2htZW50QWRkLUV2ZW50CiAgICAgICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICAgICAgRXZlbnQgPT4gJ0NoYW5nZUF0dGFjaG1lbnRBZGRQb3N0JywKICAgICAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICB9LAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQ2Fubm90IGFkZCBhdHRhY2htZW50IGZvciBjaGFuZ2UgJFBhcmFte0NoYW5nZUlEfSIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQ2hhbmdlQXR0YWNobWVudERlbGV0ZSgpCgpEZWxldGUgdGhlIGdpdmVuIGZpbGUgZnJvbSB0aGUgdmlydHVhbCBmaWxlc3lzdGVtLgoKICAgIG15ICRTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQXR0YWNobWVudERlbGV0ZSgKICAgICAgICBDaGFuZ2VJRCA9PiAxMjMsICAgICAgIyB1c2VkIGluIGV2ZW50IGhhbmRsaW5nLCBlLmcuIGZvciBsb2dnaW5nIHRoZSBoaXN0b3J5CiAgICAgICAgRmlsZW5hbWUgPT4gJ1Byb2plY3RwbGFuLnBkZicsICAgICAjIGlkZW50aWZpZXMgdGhlIGF0dGFjaG1lbnQgKHRvZ2V0aGVyIHdpdGggdGhlIENoYW5nZUlEKQogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIENoYW5nZUF0dGFjaG1lbnREZWxldGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KENoYW5nZUlEIEZpbGVuYW1lIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBhZGQgcHJlZml4CiAgICBteSAkRmlsZW5hbWUgPSAnQ2hhbmdlLycgLiAkUGFyYW17Q2hhbmdlSUR9IC4gJy8nIC4gJFBhcmFte0ZpbGVuYW1lfTsKCiAgICAjIGRlbGV0ZSBmaWxlCiAgICBteSAkU3VjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWaXJ0dWFsRlMnKS0+RGVsZXRlKAogICAgICAgIEZpbGVuYW1lID0+ICRGaWxlbmFtZSwKICAgICk7CgogICAgIyBjaGVjayBmb3IgZXJyb3IKICAgIGlmICgkU3VjY2VzcykgewoKICAgICAgICAjIHRyaWdnZXIgQXR0YWNobWVudERlbGV0ZVBvc3QtRXZlbnQKICAgICAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgICAgICBFdmVudCA9PiAnQ2hhbmdlQXR0YWNobWVudERlbGV0ZVBvc3QnLAogICAgICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDYW5ub3QgZGVsZXRlIGF0dGFjaG1lbnQgJEZpbGVuYW1lISIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHJldHVybiAkU3VjY2VzczsKfQoKPWhlYWQyIENoYW5nZUF0dGFjaG1lbnRHZXQoKQoKVGhpcyBtZXRob2QgcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBvbmUgc3BlY2lmaWMgYXR0YWNobWVudC4KCiAgICBteSAkQXR0YWNobWVudCA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUF0dGFjaG1lbnRHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gNCwKICAgICAgICBGaWxlbmFtZSA9PiAndGVzdC50eHQnLAogICAgKTsKCnJldHVybnMKCiAgICB7CiAgICAgICAgUHJlZmVyZW5jZXMgPT4gewogICAgICAgICAgICBBbGxQcmVmZXJlbmNlcyA9PiAndGVzdCcsCiAgICAgICAgfSwKICAgICAgICBGaWxlbmFtZSAgICA9PiAndGVzdC50eHQnLAogICAgICAgIENvbnRlbnQgICAgID0+ICdoYWxsbycsCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgIEZpbGVzaXplICAgID0+ICcxMjMgS0J5dGVzJywKICAgICAgICBUeXBlICAgICAgICA9PiAnYXR0YWNobWVudCcsCiAgICB9Cgo9Y3V0CgpzdWIgQ2hhbmdlQXR0YWNobWVudEdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDaGFuZ2VJRCBGaWxlbmFtZSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBhZGQgcHJlZml4CiAgICBteSAkRmlsZW5hbWUgPSAnQ2hhbmdlLycgLiAkUGFyYW17Q2hhbmdlSUR9IC4gJy8nIC4gJFBhcmFte0ZpbGVuYW1lfTsKCiAgICAjIGZpbmQgYWxsIGF0dGFjaG1lbnRzIG9mIHRoaXMgY2hhbmdlCiAgICBteSBAQXR0YWNobWVudHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmlydHVhbEZTJyktPkZpbmQoCiAgICAgICAgRmlsZW5hbWUgICAgPT4gJEZpbGVuYW1lLAogICAgICAgIFByZWZlcmVuY2VzID0+IHsKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIHJldHVybiBlcnJvciBpZiBmaWxlIGRvZXMgbm90IGV4aXN0CiAgICBpZiAoICFAQXR0YWNobWVudHMgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJObyBzdWNoIGF0dGFjaG1lbnQgKCRGaWxlbmFtZSkhIE1heSBiZSBhbiBhdHRhY2shISEiLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGRhdGEgZm9yIGF0dGFjaG1lbnQKICAgIG15ICVBdHRhY2htZW50RGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWaXJ0dWFsRlMnKS0+UmVhZCgKICAgICAgICBGaWxlbmFtZSA9PiAkRmlsZW5hbWUsCiAgICAgICAgTW9kZSAgICAgPT4gJ2JpbmFyeScsCiAgICApOwoKICAgIG15ICRBdHRhY2htZW50SW5mbyA9IHsKICAgICAgICAlQXR0YWNobWVudERhdGEsCiAgICAgICAgRmlsZW5hbWUgICAgPT4gJFBhcmFte0ZpbGVuYW1lfSwKICAgICAgICBDb250ZW50ICAgICA9PiAkeyAkQXR0YWNobWVudERhdGF7Q29udGVudH0gfSwKICAgICAgICBDb250ZW50VHlwZSA9PiAkQXR0YWNobWVudERhdGF7UHJlZmVyZW5jZXN9LT57Q29udGVudFR5cGV9LAogICAgICAgIFR5cGUgICAgICAgID0+ICdhdHRhY2htZW50JywKICAgICAgICBGaWxlc2l6ZSAgICA9PiAkQXR0YWNobWVudERhdGF7UHJlZmVyZW5jZXN9LT57RmlsZXNpemVSYXd9LAogICAgfTsKCiAgICByZXR1cm4gJEF0dGFjaG1lbnRJbmZvOwp9Cgo9aGVhZDIgQ2hhbmdlQXR0YWNobWVudExpc3QoKQoKUmV0dXJucyBhbiBhcnJheSB3aXRoIGFsbCBhdHRhY2htZW50cyBvZiB0aGUgZ2l2ZW4gY2hhbmdlLgoKICAgIG15IEBBdHRhY2htZW50cyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUF0dGFjaG1lbnRMaXN0KAogICAgICAgIENoYW5nZUlEID0+IDEyMywKICAgICk7CgpyZXR1cm5zCgogICAgQEF0dGFjaG1lbnRzID0gKAogICAgICAgICdmaWxlbmFtZS50eHQnLAogICAgICAgICdvdGhlcl9maWxlLnBkZicsCiAgICApOwoKPWN1dAoKc3ViIENoYW5nZUF0dGFjaG1lbnRMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtDaGFuZ2VJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIENoYW5nZUlEIScsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZmluZCBhbGwgYXR0YWNobWVudHMgb2YgdGhpcyBjaGFuZ2UKICAgIG15IEBBdHRhY2htZW50cyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWaXJ0dWFsRlMnKS0+RmluZCgKICAgICAgICBQcmVmZXJlbmNlcyA9PiB7CiAgICAgICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgfSwKICAgICk7CgogICAgZm9yIG15ICRGaWxlbmFtZSAoQEF0dGFjaG1lbnRzKSB7CgogICAgICAgICMgcmVtb3ZlIGV4dHJhIGluZm9ybWF0aW9uIGZyb20gZmlsZW5hbWUKICAgICAgICAkRmlsZW5hbWUgPX4gc3sgXEEgQ2hhbmdlIC8gXGQrIC8gfXt9eG1zOwogICAgfQoKICAgIHJldHVybiBAQXR0YWNobWVudHM7Cn0KCj1oZWFkMiBDaGFuZ2VBdHRhY2htZW50RXhpc3RzKCkKCkNoZWNrcyBpZiBhIGZpbGUgd2l0aCBhIGdpdmVuIGZpbGVuYW1lIGV4aXN0cy4KCiAgICBteSAkRXhpc3RzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQXR0YWNobWVudEV4aXN0cygKICAgICAgICBGaWxlbmFtZSA9PiAndGVzdC50eHQnLAogICAgICAgIENoYW5nZUlEID0+IDEyMywKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBDaGFuZ2VBdHRhY2htZW50RXhpc3RzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhGaWxlbmFtZSBDaGFuZ2VJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZpcnR1YWxGUycpLT5GaW5kKAogICAgICAgIEZpbGVuYW1lID0+ICdDaGFuZ2UvJyAuICRQYXJhbXtDaGFuZ2VJRH0gLiAnLycgLiAkUGFyYW17RmlsZW5hbWV9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIERFU1RST1kgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIGV4ZWN1dGUgYWxsIHRyYW5zYWN0aW9uIGV2ZW50cwogICAgJFNlbGYtPkV2ZW50SGFuZGxlclRyYW5zYWN0aW9uKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMSBQUklWQVRFIElOVEVSRkFDRQoKPWhlYWQyIF9DaGVja0NoYW5nZVN0YXRlSURzKCkKCkNoZWNrIHdoZXRoZXIgYWxsIG9mIHRoZSBnaXZlbiBjaGFuZ2Ugc3RhdGUgaWRzIGFyZSB2YWxpZC4KCiAgICBteSAkT2sgPSAkQ2hhbmdlT2JqZWN0LT5fQ2hlY2tDaGFuZ2VTdGF0ZUlEcygKICAgICAgICBDaGFuZ2VTdGF0ZUlEcyA9PiBbIDI1LCAyNiBdLAogICAgKTsKCj1jdXQKCnN1YiBfQ2hlY2tDaGFuZ2VTdGF0ZUlEcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17Q2hhbmdlU3RhdGVJRHN9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBDaGFuZ2VTdGF0ZUlEcyEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGlmICggcmVmICRQYXJhbXtDaGFuZ2VTdGF0ZUlEc30gbmUgJ0FSUkFZJyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1RoZSBwYXJhbSBDaGFuZ2VTdGF0ZUlEcyBtdXN0IGJlIGFuIGFycmF5IHJlZmVyZW5jZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgaWYgQ2hhbmdlU3RhdGVJRHMgYmVsb25nIHRvIGNvcnJlY3QgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzCiAgICBmb3IgbXkgJFN0YXRlSUQgKCBAeyAkUGFyYW17Q2hhbmdlU3RhdGVJRHN9IH0gKSB7CiAgICAgICAgbXkgJFN0YXRlID0gJFNlbGYtPkNoYW5nZVN0YXRlTG9va3VwKAogICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRTdGF0ZUlELAogICAgICAgICk7CgogICAgICAgIGlmICggISRTdGF0ZSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBzdGF0ZSBpZCAkU3RhdGVJRCBpcyBub3QgdmFsaWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfQ2hlY2tDaGFuZ2VDSVBJRHMoKQoKQ2hlY2sgd2hldGhlciBhbGwgb2YgdGhlIGdpdmVuIGlkcyBvZiBjYXRlZ29yeSwgaW1wYWN0IG9yIHByaW9yaXR5IGFyZSB2YWxpZC4KCiAgICBteSAkT2sgPSAkQ2hhbmdlT2JqZWN0LT5fQ2hlY2tDaGFuZ2VDSVBJRHMoCiAgICAgICAgSURzICA9PiBbIDI1LCAyNiBdLCAjIG1hbmRhdG9yeQogICAgICAgIFR5cGUgPT4gJ1ByaW9yaXR5JywgIyBtYW5kYXRvcnkgKENhdGVnb3J5fEltcGFjdHxQcmlvcml0eSkKICAgICk7Cgo9Y3V0CgpzdWIgX0NoZWNrQ2hhbmdlQ0lQSURzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhJRHMgVHlwZSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIElEcyBpcyBhbiBhcnJheSByZWZlcmVuY2UKICAgIGlmICggcmVmICRQYXJhbXtJRHN9IG5lICdBUlJBWScgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdUaGUgcGFyYW0gSURzIG11c3QgYmUgYW4gYXJyYXkgcmVmZXJlbmNlIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBUeXBlIHBhcmFtIGZvciB2YWxpZCB2YWx1ZXMKICAgIGlmICgKICAgICAgICAhJFBhcmFte1R5cGV9CiAgICAgICAgfHwgKCAkUGFyYW17VHlwZX0gbmUgJ0NhdGVnb3J5JyAmJiAkUGFyYW17VHlwZX0gbmUgJ0ltcGFjdCcgJiYgJFBhcmFte1R5cGV9IG5lICdQcmlvcml0eScgKQogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1RoZSBwYXJhbSBUeXBlIG11c3QgYmUgZWl0aGVyICJDYXRlZ29yeSIgb3IgIkltcGFjdCIgb3IgIlByaW9yaXR5IiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgaWYgSURzIGJlbG9uZ3MgdG8gY29ycmVjdCBnZW5lcmFsIGNhdGFsb2cgY2xhc3MKICAgIGZvciBteSAkSUQgKCBAeyAkUGFyYW17SURzfSB9ICkgewogICAgICAgIG15ICRDSVAgPSAkU2VsZi0+Q2hhbmdlQ0lQTG9va3VwKAogICAgICAgICAgICBJRCAgID0+ICRJRCwKICAgICAgICAgICAgVHlwZSA9PiAkUGFyYW17VHlwZX0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJENJUCApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSAkUGFyYW17VHlwZX0gaWQgJElEIGlzIG5vdCB2YWxpZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIF9DaGVja0NoYW5nZVBhcmFtcygpCgpDaGVja3MgdGhlIHBhcmFtcyB0byBDaGFuZ2VBZGQoKSBhbmQgQ2hhbmdlVXBkYXRlKCkuClRoZXJlIGFyZSBubyByZXF1aXJlZCBwYXJhbWV0ZXJzLgoKICAgIG15ICRPayA9ICRDaGFuZ2VPYmplY3QtPl9DaGVja0NoYW5nZVBhcmFtcygKICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgICA9PiAnUmVwbGFjZW1lbnQgb2YgbWFpbCBzZXJ2ZXInLCAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgICA9PiAnTmV3IG1haWwgc2VydmVyIDxiPmlzPC9iPiBmYXN0ZXInLCAjIChvcHRpb25hbCkKICAgICAgICBEZXNjcmlwdGlvblBsYWluICAgICA9PiAnTmV3IG1haWwgc2VydmVyIGlzIGZhc3RlcicsICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBKdXN0aWZpY2F0aW9uICAgICAgICA9PiAnT2xkIG1haWwgc2VydmVyPGI+dG9vPC9iPiBzbG93JywgICAjIChvcHRpb25hbCkKICAgICAgICBKdXN0aWZpY2F0aW9uUGxhaW4gICA9PiAnT2xkIG1haWwgc2VydmVyIHRvbyBzbG93JywgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDaGFuZ2VTdGF0ZUlEICAgICAgICA9PiA0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDaGFuZ2VNYW5hZ2VySUQgICAgICA9PiA1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDaGFuZ2VCdWlsZGVySUQgICAgICA9PiA2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDYXRlZ29yeUlEICAgICAgICAgICA9PiA3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBJbXBhY3RJRCAgICAgICAgICAgICA9PiA4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBQcmlvcml0eUlEICAgICAgICAgICA9PiA5LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBSZXF1ZXN0ZWRUaW1lICAgICAgICA9PiAnMjAwOS0xMC0yMyAwODo1NzoxMicsICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDQUJBZ2VudHMgICAgICAgICAgICA9PiBbIDEsIDIsIDQgXSwgICAgICMgVXNlcklEcyAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDQUJDdXN0b21lcnMgICAgICAgICA9PiBbICd0dCcsICdtbScgXSwgICMgQ3VzdG9tZXJVc2VySURzICAjIChvcHRpb25hbCkKICAgICAgICBEeW5hbWljRmllbGRfWCAgICAgICA9PiAnU3VuJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBEeW5hbWljRmllbGRfWSAgICAgICA9PiAnRWFydGgnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICk7CgpUaGUgQ2hhbmdlU3RhdGVJRCBpcyBjaGVja2VkIGZvciBleGlzdGVuY2UgaW4gdGhlIGdlbmVyYWwgY2F0YWxvZy4KVGhlc2Ugc3RyaW5nIHBhcmFtZXRlcnMgaGF2ZSBsZW5ndGggY29uc3RyYWludHM6CgogICAgUGFyYW1ldGVyICAgICAgICAgICB8IG1heC4gbGVuZ3RoCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQogICAgQ2hhbmdlVGl0bGUgICAgICAgICB8ICAyNTAgY2hhcmFjdGVycwogICAgRGVzY3JpcHRpb24gICAgICAgICB8IDE4MDAwMDAgY2hhcmFjdGVycwogICAgRGVzY3JpcHRpb25QbGFpbiAgICB8IDE4MDAwMDAgY2hhcmFjdGVycwogICAgSnVzdGlmaWNhdGlvbiAgICAgICB8IDE4MDAwMDAgY2hhcmFjdGVycwogICAgSnVzdGlmaWNhdGlvblBsYWluICB8IDE4MDAwMDAgY2hhcmFjdGVycwogICAgRHluYW1pY0ZpZWxkX1ggICAgICB8IDM4MDAgY2hhcmFjdGVycwogICAgRHluYW1pY0ZpZWxkX1kgICAgICB8IDM4MDAgY2hhcmFjdGVycwoKPWN1dAoKc3ViIF9DaGVja0NoYW5nZVBhcmFtcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgdGhlIHN0cmluZyBhbmQgaWQgcGFyYW1ldGVycwogICAgQVJHVU1FTlQ6CiAgICBmb3IgbXkgJEFyZ3VtZW50ICgKICAgICAgICBxdygKICAgICAgICBDaGFuZ2VUaXRsZQogICAgICAgIERlc2NyaXB0aW9uCiAgICAgICAgRGVzY3JpcHRpb25QbGFpbgogICAgICAgIEp1c3RpZmljYXRpb24KICAgICAgICBKdXN0aWZpY2F0aW9uUGxhaW4KICAgICAgICBDaGFuZ2VNYW5hZ2VySUQKICAgICAgICBDaGFuZ2VCdWlsZGVySUQKICAgICAgICBDaGFuZ2VTdGF0ZUlECiAgICAgICAgKQogICAgICAgICkKICAgIHsKCiAgICAgICAgIyBwYXJhbXMgYXJlIG5vdCByZXF1aXJlZAogICAgICAgIG5leHQgQVJHVU1FTlQgaWYgIWV4aXN0cyAkUGFyYW17JEFyZ3VtZW50fTsKCiAgICAgICAgIyBjaGVjayBpZiBwYXJhbSBpcyBub3QgZGVmaW5lZAogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgcGFyYW1ldGVyICckQXJndW1lbnQnIG11c3QgYmUgZGVmaW5lZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGlmIHBhcmFtIGlzIG5vdCBhIHJlZmVyZW5jZQogICAgICAgIGlmICggcmVmICRQYXJhbXskQXJndW1lbnR9IG5lICcnICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIHBhcmFtZXRlciAnJEFyZ3VtZW50JyBtdXN0bid0IGJlIGEgcmVmZXJlbmNlISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgdGhlIG1heGltdW0gbGVuZ3RoIG9mIHRpdGxlCiAgICAgICAgaWYgKCAkQXJndW1lbnQgZXEgJ0NoYW5nZVRpdGxlJyAmJiBsZW5ndGgoICRQYXJhbXskQXJndW1lbnR9ICkgPiAyNTAgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgcGFyYW1ldGVyICckQXJndW1lbnQnIG11c3QgYmUgc2hvcnRlciB0aGFuIDI1MCBjaGFyYWN0ZXJzISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGRlc2NyaXB0aW9uIGFuZCBqdXN0aWZpY2F0aW9uCiAgICAgICAgaWYgKAogICAgICAgICAgICAkQXJndW1lbnQgZXEgJ0Rlc2NyaXB0aW9uJwogICAgICAgICAgICB8fCAkQXJndW1lbnQgZXEgJ0Rlc2NyaXB0aW9uUGxhaW4nCiAgICAgICAgICAgIHx8ICRBcmd1bWVudCBlcSAnSnVzdGlmaWNhdGlvbicKICAgICAgICAgICAgfHwgJEFyZ3VtZW50IGVxICdKdXN0aWZpY2F0aW9uUGxhaW4nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIGlmICggbGVuZ3RoKCAkUGFyYW17JEFyZ3VtZW50fSApID4gMTgwMDAwMCApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBwYXJhbWV0ZXIgJyRBcmd1bWVudCcgbXVzdCBiZSBzaG9ydGVyIHRoYW4gMTgwMDAwMCBjaGFyYWN0ZXJzISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgdGhlIGNoYW5nZSBkeW5hbWljIGZpZWxkcwogICAgS0VZOgogICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJVBhcmFtICkgewoKICAgICAgICBuZXh0IEtFWSBpZiAkS2V5ICF+IG17IFxBIER5bmFtaWNGaWVsZF8oLiopIFx6IH14bXM7CgogICAgICAgICMgcGFyYW1zIGFyZSBub3QgcmVxdWlyZWQKICAgICAgICBuZXh0IEtFWSBpZiAhZXhpc3RzICRQYXJhbXskS2V5fTsKCiAgICAgICAgIyBjaGVjayBpZiBwYXJhbSBpcyBub3QgZGVmaW5lZAogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRLZXl9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIHBhcmFtZXRlciAnJEtleScgbXVzdCBiZSBkZWZpbmVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGR5bmFtaWMgZmllbGRzCiAgICAgICAgaWYgKCBsZW5ndGgoICRQYXJhbXskS2V5fSApID4gMzgwMCApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBwYXJhbWV0ZXIgJyRLZXknIG11c3QgYmUgc2hvcnRlciB0aGFuIDM4MDAgY2hhcmFjdGVycyEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgaWYgcmVxdWVzdGVkX3RpbWUgaGFzIGNvcnJlY3QgZm9ybWF0CiAgICBpZiAoCiAgICAgICAgZGVmaW5lZCAkUGFyYW17UmVxdWVzdGVkVGltZX0KICAgICAgICAmJiAkUGFyYW17UmVxdWVzdGVkVGltZX0gIX4gbXsgXEEgXGRcZFxkXGQtXGRcZC1cZFxkIFxzIFxkXGQ6XGRcZDpcZFxkIFx6IH14bXMKICAgICAgICApCiAgICB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdJbnZhbGlkIGZvcm1hdCBmb3IgUmVxdWVzdGVkVGltZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgaWYgZ2l2ZW4gQ2hhbmdlU3RhdGVJRCBpcyB2YWxpZAogICAgaWYgKCAkUGFyYW17Q2hhbmdlU3RhdGVJRH0gKSB7CiAgICAgICAgcmV0dXJuIGlmICEkU2VsZi0+X0NoZWNrQ2hhbmdlU3RhdGVJRHMoCiAgICAgICAgICAgIENoYW5nZVN0YXRlSURzID0+IFsgJFBhcmFte0NoYW5nZVN0YXRlSUR9IF0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIGdpdmVuIGNhdGVnb3J5LCBpbXBhY3Qgb3IgcHJpb3JpdHkgSUQgaXMgdmFsaWQKICAgIGZvciBteSAkVHlwZSAocXcoQ2F0ZWdvcnkgSW1wYWN0IFByaW9yaXR5KSkgewogICAgICAgIGlmICggZGVmaW5lZCAkUGFyYW17IiR7VHlwZX1JRCJ9ICkgewogICAgICAgICAgICByZXR1cm4gaWYgISRTZWxmLT5fQ2hlY2tDaGFuZ2VDSVBJRHMoCiAgICAgICAgICAgICAgICBJRHMgID0+IFsgJFBhcmFteyIke1R5cGV9SUQifSBdLAogICAgICAgICAgICAgICAgVHlwZSA9PiAkVHlwZSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICggZGVmaW5lZCAkUGFyYW17JFR5cGV9ICkgewogICAgICAgICAgICByZXR1cm4gaWYgISRTZWxmLT5DaGFuZ2VDSVBMb29rdXAoCiAgICAgICAgICAgICAgICBDSVAgID0+ICRQYXJhbXskVHlwZX0sCiAgICAgICAgICAgICAgICBUeXBlID0+ICRUeXBlLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoYW5nZSBtYW5hZ2VyIGFuZCBjaGFuZ2UgYnVpbGRlciBtdXN0IGJlIGFnZW50cwogICAgQVJHVU1FTlQ6CiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDaGFuZ2VNYW5hZ2VySUQgQ2hhbmdlQnVpbGRlcklEKSkgewoKICAgICAgICAjIHBhcmFtcyBhcmUgbm90IHJlcXVpcmVkCiAgICAgICAgbmV4dCBBUkdVTUVOVCBpZiAhZXhpc3RzICRQYXJhbXskQXJndW1lbnR9OwoKICAgICAgICAjIGdldCB1c2VyIGRhdGEKICAgICAgICBteSAlVXNlckRhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXskQXJndW1lbnR9LAogICAgICAgICAgICBWYWxpZCAgPT4gMSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkVXNlckRhdGF7VXNlcklEfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSAkQXJndW1lbnQgJFBhcmFteyRBcmd1bWVudH0gaXMgbm90IGEgdmFsaWQgdXNlciBpZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgQ0FCIGFnZW50cyBtdXN0IGJlIGFnZW50cwogICAgaWYgKCBleGlzdHMgJFBhcmFte0NBQkFnZW50c30gKSB7CiAgICAgICAgaWYgKCByZWYgJFBhcmFte0NBQkFnZW50c30gbmUgJ0FSUkFZJyApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1RoZSBwYXJhbWV0ZXIgQ0FCQWdlbnRzIGlzIG5vdCBhbiBBUlJBWSByZWZlcmVuY2UhJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayB1c2VycwogICAgICAgIGZvciBteSAkVXNlcklEICggQHsgJFBhcmFte0NBQkFnZW50c30gfSApIHsKCiAgICAgICAgICAgICMgZ2V0IHVzZXIgZGF0YQogICAgICAgICAgICBteSAlVXNlckRhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICAgICAgVmFsaWQgID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICEkVXNlckRhdGF7VXNlcklEfSApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBDQUJBZ2VudCAkVXNlcklEIGlzIG5vdCBhIHZhbGlkIHVzZXIgaWQhIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBDQUIgY3VzdG9tZXJzIG11c3QgYmUgY3VzdG9tZXJzCiAgICBpZiAoIGV4aXN0cyAkUGFyYW17Q0FCQ3VzdG9tZXJzfSApIHsKICAgICAgICBpZiAoIHJlZiAkUGFyYW17Q0FCQ3VzdG9tZXJzfSBuZSAnQVJSQVknICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnVGhlIHBhcmFtZXRlciBDQUJDdXN0b21lcnMgaXMgbm90IGFuIEFSUkFZIHJlZmVyZW5jZSEnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGdldCB0aGUgdmFsaWQgaWQgZm9yICJ2YWxpZCIKICAgICAgICBteSAkVmFsaWRJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExvb2t1cCgKICAgICAgICAgICAgVmFsaWQgPT4gJ3ZhbGlkJywKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGN1c3RvbWVyIHVzZXJzCiAgICAgICAgZm9yIG15ICRDdXN0b21lclVzZXIgKCBAeyAkUGFyYW17Q0FCQ3VzdG9tZXJzfSB9ICkgewoKICAgICAgICAgICAgIyBnZXQgY3VzdG9tZXIgdXNlciBkYXRhCiAgICAgICAgICAgIG15ICVDdXN0b21lclVzZXJEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcicpLT5DdXN0b21lclVzZXJEYXRhR2V0KAogICAgICAgICAgICAgICAgVXNlciAgPT4gJEN1c3RvbWVyVXNlciwKICAgICAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICRDdXN0b21lclVzZXJEYXRhe1ZhbGlkSUR9IG5lICRWYWxpZElEICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIENBQkN1c3RvbWVyICRDdXN0b21lclVzZXIgaXMgbm90IGEgdmFsaWQgY3VzdG9tZXIhIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Permission="660" Location="Kernel/System/DynamicField/Event/UpdateITSMChangeConditions.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpFdmVudDo6VXBkYXRlSVRTTUNoYW5nZUNvbmRpdGlvbnM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoRGF0YSBFdmVudCBDb25maWcgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewoKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgb25seSBmb3IgZHluYW1pYyBmaWVsZHMgb2YgdGhlIHR5cGUgSVRTTUNoYW5nZSBvciBJVFNNV29ya09yZGVyCiAgICByZXR1cm4gaWYgISRQYXJhbXtEYXRhfS0+e05ld0RhdGF9OwogICAgcmV0dXJuIGlmICEkUGFyYW17RGF0YX0tPntOZXdEYXRhfS0+e09iamVjdFR5cGV9OwogICAgaWYgKAogICAgICAgICRQYXJhbXtEYXRhfS0+e05ld0RhdGF9LT57T2JqZWN0VHlwZX0gbmUgJ0lUU01DaGFuZ2UnCiAgICAgICAgJiYgJFBhcmFte0RhdGF9LT57TmV3RGF0YX0tPntPYmplY3RUeXBlfSBuZSAnSVRTTVdvcmtPcmRlcicKICAgICAgICApCiAgICB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZHluYW1pYyBmaWVsZCBoYXMgYmVlbiBhZGRlZAogICAgaWYgKCAkUGFyYW17RXZlbnR9IGVxICdEeW5hbWljRmllbGRBZGQnICkgewoKICAgICAgICAjIGFkZCBuZXcgYXR0cmlidXRlIHRvIGNvbmRpdGlvbiBhdHRyaWJ1dGUgdGFibGUKICAgICAgICBteSAkU3VjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyktPkF0dHJpYnV0ZUFkZCgKICAgICAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEYXRhfS0+e05ld0RhdGF9LT57TmFtZX0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+CiAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBhZGQgYXR0cmlidXRlICckUGFyYW17RGF0YX0tPntOZXdEYXRhfS0+e05hbWV9JyB0byBjb25kaXRpb24gYXR0cmlidXRlIHRhYmxlISIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZHluYW1pYyBmaWVsZCBoYXMgYmVlbiB1cGRhdGVkCiAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gZXEgJ0R5bmFtaWNGaWVsZFVwZGF0ZScgKSB7CgogICAgICAgICMgbG9va3VwIHRoZSBJRCBvZiB0aGUgb2xkIGF0dHJpYnV0ZQogICAgICAgIG15ICRBdHRyaWJ1dGVJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyktPkF0dHJpYnV0ZUxvb2t1cCgKICAgICAgICAgICAgTmFtZSA9PiAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RGF0YX0tPntPbGREYXRhfS0+e05hbWV9LAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIHRoZSBhdHRyaWJ1dGUgbmFtZQogICAgICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKS0+QXR0cmlidXRlVXBkYXRlKAogICAgICAgICAgICBBdHRyaWJ1dGVJRCA9PiAkQXR0cmlidXRlSUQsCiAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEYXRhfS0+e05ld0RhdGF9LT57TmFtZX0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PgogICAgICAgICAgICAgICAgICAgICJDb3VsZCBub3QgdXBkYXRlIGF0dHJpYnV0ZSBuYW1lIGZyb20gJyRQYXJhbXtEYXRhfS0+e09sZERhdGF9LT57TmFtZX0nIHRvICckUGFyYW17RGF0YX0tPntOZXdEYXRhfS0+e05hbWV9JyEiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGR5bmFtaWMgZmllbGQgaGFzIGJlZW4gZGVsZXRlZAogICAgZWxzaWYgKCAkUGFyYW17RXZlbnR9IGVxICdEeW5hbWljRmllbGREZWxldGUnICkgewoKICAgICAgICAjIGdldCBhbGwgY29uZGl0aW9uIGF0dHJpYnV0ZXMKICAgICAgICBteSAkQ29uZGl0aW9uQXR0cmlidXRlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyktPkF0dHJpYnV0ZUxpc3QoCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgcmV2ZXJzZSB0aGUgbGlzdCB0byBsb29rdXAgYXR0cmlidXRlIG5hbWVzCiAgICAgICAgbXkgJUF0dHJpYnV0ZTJJRCA9IHJldmVyc2UgJXskQ29uZGl0aW9uQXR0cmlidXRlc307CgogICAgICAgICMgbG9va3VwIGF0dHJpYnV0ZSBpZAogICAgICAgIG15ICRBdHRyaWJ1dGVJRCA9ICRBdHRyaWJ1dGUySUR7ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEYXRhfS0+e05ld0RhdGF9LT57TmFtZX0gfSB8fCAnJzsKCiAgICAgICAgIyBkbyBub3RoaW5nIGlmIG5vIGF0dHJpYnV0ZSB3aXRoIHRoaXMgbmFtZSBleHNpc3RzCiAgICAgICAgcmV0dXJuIGlmICEkQXR0cmlidXRlSUQ7CgogICAgICAgICMgZGVsZXRlIHRoaXMgYXR0cmlidXRlIGZyb20gZXhwcmVzc2lvbiB0YWJsZQogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICAgICAgU1FMID0+ICdERUxFVEUgRlJPTSBjb25kaXRpb25fZXhwcmVzc2lvbgogICAgICAgICAgICAgICAgICAgIFdIRVJFIGF0dHJpYnV0ZV9pZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgICAgIFwkQXR0cmlidXRlSUQsCiAgICAgICAgICAgIF0sCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGhpcyBhdHRyaWJ1dGUgZnJvbSBhY3Rpb24gdGFibGUKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgICAgIFNRTCA9PiAnREVMRVRFIEZST00gY29uZGl0aW9uX2FjdGlvbgogICAgICAgICAgICAgICAgICAgIFdIRVJFIGF0dHJpYnV0ZV9pZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgICAgIFwkQXR0cmlidXRlSUQsCiAgICAgICAgICAgIF0sCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGhpcyBhdHRyaWJ1dGUgZnJvbSBhdHRyaWJ1dGUgdGFibGUKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgICAgIFNRTCA9PiAnREVMRVRFIEZST00gY29uZGl0aW9uX2F0dHJpYnV0ZQogICAgICAgICAgICAgICAgICAgIFdIRVJFIGlkID0gPycsCiAgICAgICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICAgICAgXCRBdHRyaWJ1dGVJRCwKICAgICAgICAgICAgXSwKICAgICAgICApOwoKICAgICAgICAjIGRlbGV0ZSBjYWNoZQogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgICAgICBUeXBlID0+ICdJVFNNQ2hhbmdlTWFuYWdlbWVudCcsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/System/DynamicField/ObjectType/ITSMChange.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpPYmplY3RUeXBlOjpJVFNNQ2hhbmdlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIFNjYWxhcjo6VXRpbDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6Ok9iamVjdFR5cGU6OklUU01DaGFuZ2UKCj1oZWFkMSBERVNDUklQVElPTgoKSVRTTUNoYW5nZSBvYmplY3QgaGFuZGxlciBmb3IgRHluYW1pY0ZpZWxkcwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKVXN1YWxseSwgeW91IHdhbnQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoaXMKYnkgdXNpbmcgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6T2JqZWN0VHlwZTo6SVRTTUNoYW5nZS0+bmV3KCk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIFBvc3RWYWx1ZVNldCgpCgpQZXJmb3JtIHNwZWNpZmljIGZ1bmN0aW9ucyBhZnRlciB0aGUgVmFsdWUgc2V0IGZvciB0aGlzIG9iamVjdCB0eXBlLgoKICAgIG15ICRTdWNjZXNzID0gJER5bmFtaWNGaWVsZElUU01DaGFuZ2VIYW5kbGVyT2JqZWN0LT5Qb3N0VmFsdWVTZXQoCiAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsICAgICAgIyBjb21wbGV0ZSBjb25maWcgb2YgdGhlIER5bmFtaWNGaWVsZAogICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkT2JqZWN0SUQsICAgICAgICAgICAgICAgICMgSUQgb2YgdGhlIGN1cnJlbnQgb2JqZWN0IHRoYXQgdGhlIGZpZWxkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBtdXN0IGJlIGxpbmtlZCB0bywgZS4gZy4gSVRTTUNoYW5nZUlECiAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICRWYWx1ZSwgICAgICAgICAgICAgICAgICAgIyBWYWx1ZSB0byBzdG9yZSwgZGVwZW5kcyBvbiBiYWNrZW5kIHR5cGUKICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBQb3N0VmFsdWVTZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KER5bmFtaWNGaWVsZENvbmZpZyBPYmplY3RJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGRDb25maWcgKGdlbmVyYWwpCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30gKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBmaWVsZCBjb25maWd1cmF0aW9uIGlzIGludmFsaWQiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChpbnRlcm5hbGx5KQogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIEZpZWxkVHlwZSBPYmplY3RUeXBlKSkgewogICAgICAgIGlmICggISRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQgaW4gRHluYW1pY0ZpZWxkQ29uZmlnISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBub3RoaW5nIHRvIGRvCgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBPYmplY3REYXRhR2V0KCkKCnJldHJpZXZlcyB0aGUgZGF0YSBvZiB0aGUgY3VycmVudCBvYmplY3QuCgogICAgbXkgJU9iamVjdERhdGEgPSAkRHluYW1pY0ZpZWxkSVRTTUNoYW5nZUhhbmRsZXJPYmplY3QtPk9iamVjdERhdGFHZXQoCiAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsICAgICAgIyBjb21wbGV0ZSBjb25maWcgb2YgdGhlIER5bmFtaWNGaWVsZAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxMjMsCiAgICApOwoKcmV0dXJuczoKCiAgICAlT2JqZWN0RGF0YSA9ICgKICAgICAgICBPYmplY3RJRCA9PiAxMjMsCiAgICAgICAgRGF0YSAgICAgPT4gewogICAgICAgICAgICBDaGFuZ2VOdW1iZXIgPT4gJzIwMTAxMDI3MDAwMDAxJywKICAgICAgICAgICAgVGl0bGUgICAgICAgID0+ICdzb21lIHRpdGxlJywKICAgICAgICAgICAgQ2hhbmdlSUQgICAgID0+IDEyMywKICAgICAgICAgICAgIyAuLi4KICAgICAgICB9CiAgICApOwoKPWN1dAoKc3ViIE9iamVjdERhdGFHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIENoZWNrIG5lZWRlZCBzdHVmZi4KICAgIGZvciBteSAkTmVlZGVkIChxdyhEeW5hbWljRmllbGRDb25maWcgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgQ2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChnZW5lcmFsKS4KICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfSApICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIGZpZWxkIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZCIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBDaGVjayBEeW5hbWljRmllbGRDb25maWcgKGludGVybmFsbHkpLgogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIEZpZWxkVHlwZSBPYmplY3RUeXBlKSkgewogICAgICAgIGlmICggISRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQgaW4gRHluYW1pY0ZpZWxkQ29uZmlnISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJENoYW5nZUlEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSgKICAgICAgICBQYXJhbSA9PiAnQ2hhbmdlSUQnLAogICAgKTsKCiAgICByZXR1cm4gaWYgISRDaGFuZ2VJRDsKCiAgICBteSAlQ2hhbmdlRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiAoCiAgICAgICAgT2JqZWN0SUQgPT4gJENoYW5nZUlELAogICAgICAgIERhdGEgICAgID0+IFwlQ2hhbmdlRGF0YSwKICAgICk7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Permission="660" Location="Kernel/System/DynamicField/ObjectType/ITSMWorkOrder.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpPYmplY3RUeXBlOjpJVFNNV29ya09yZGVyOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIFNjYWxhcjo6VXRpbDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6Ok9iamVjdFR5cGU6OklUU01Xb3JrT3JkZXIKCj1oZWFkMSBERVNDUklQVElPTgoKSVRTTVdvcmtPcmRlciBvYmplY3QgaGFuZGxlciBmb3IgRHluYW1pY0ZpZWxkcwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKVXN1YWxseSwgeW91IHdhbnQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoaXMKYnkgdXNpbmcgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6T2JqZWN0VHlwZTo6SVRTTVdvcmtPcmRlci0+bmV3KCk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIFBvc3RWYWx1ZVNldCgpCgpQZXJmb3JtIHNwZWNpZmljIGZ1bmN0aW9ucyBhZnRlciB0aGUgVmFsdWUgc2V0IGZvciB0aGlzIG9iamVjdCB0eXBlLgoKICAgIG15ICRTdWNjZXNzID0gJER5bmFtaWNGaWVsZElUU01Xb3JrT3JkZXJIYW5kbGVyT2JqZWN0LT5Qb3N0VmFsdWVTZXQoCiAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsICAgICAgIyBjb21wbGV0ZSBjb25maWcgb2YgdGhlIER5bmFtaWNGaWVsZAogICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkT2JqZWN0SUQsICAgICAgICAgICAgICAgICMgSUQgb2YgdGhlIGN1cnJlbnQgb2JqZWN0IHRoYXQgdGhlIGZpZWxkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBtdXN0IGJlIGxpbmtlZCB0bywgZS4gZy4gSVRTTVdvcmtPcmRlcklECiAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICRWYWx1ZSwgICAgICAgICAgICAgICAgICAgIyBWYWx1ZSB0byBzdG9yZSwgZGVwZW5kcyBvbiBiYWNrZW5kIHR5cGUKICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBQb3N0VmFsdWVTZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KER5bmFtaWNGaWVsZENvbmZpZyBPYmplY3RJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGRDb25maWcgKGdlbmVyYWwpCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30gKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBmaWVsZCBjb25maWd1cmF0aW9uIGlzIGludmFsaWQiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChpbnRlcm5hbGx5KQogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIEZpZWxkVHlwZSBPYmplY3RUeXBlKSkgewogICAgICAgIGlmICggISRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQgaW4gRHluYW1pY0ZpZWxkQ29uZmlnISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBub3RoaW5nIHRvIGRvCgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBPYmplY3REYXRhR2V0KCkKCnJldHJpZXZlcyB0aGUgZGF0YSBvZiB0aGUgY3VycmVudCBvYmplY3QuCgogICAgbXkgJU9iamVjdERhdGEgPSAkRHluYW1pY0ZpZWxkSVRTTVdvcmtPcmRlckhhbmRsZXJPYmplY3QtPk9iamVjdERhdGFHZXQoCiAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsICAgICAgIyBjb21wbGV0ZSBjb25maWcgb2YgdGhlIER5bmFtaWNGaWVsZAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxMjMsCiAgICApOwoKcmV0dXJuczoKCiAgICAlT2JqZWN0RGF0YSA9ICgKICAgICAgICBPYmplY3RJRCA9PiAxMjMsCiAgICAgICAgRGF0YSAgICAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJOdW1iZXIgPT4gJzIwMTAxMDI3MDAwMDAxJywKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgID0+ICdzb21lIHRpdGxlJywKICAgICAgICAgICAgV29ya09yZGVySUQgICAgID0+IDEyMywKICAgICAgICAgICAgIyAuLi4KICAgICAgICB9CiAgICApOwoKPWN1dAoKc3ViIE9iamVjdERhdGFHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIENoZWNrIG5lZWRlZCBzdHVmZi4KICAgIGZvciBteSAkTmVlZGVkIChxdyhEeW5hbWljRmllbGRDb25maWcgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgQ2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChnZW5lcmFsKS4KICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfSApICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIGZpZWxkIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZCIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBDaGVjayBEeW5hbWljRmllbGRDb25maWcgKGludGVybmFsbHkpLgogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIEZpZWxkVHlwZSBPYmplY3RUeXBlKSkgewogICAgICAgIGlmICggISRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQgaW4gRHluYW1pY0ZpZWxkQ29uZmlnISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFdvcmtPcmRlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSgKICAgICAgICBQYXJhbSA9PiAnV29ya09yZGVySUQnLAogICAgKTsKCiAgICByZXR1cm4gaWYgISRXb3JrT3JkZXJJRDsKCiAgICBteSAlV29ya09yZGVyRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckdldCgKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiAoCiAgICAgICAgT2JqZWN0SUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgIERhdGEgICAgID0+IFwlV29ya09yZGVyRGF0YSwKICAgICk7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMChangeCIPAllocate.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNoYW5nZUNJUEFsbG9jYXRlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkRCJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNoYW5nZUNJUEFsbG9jYXRlIC0gY2F0ZWdvcnksIGltcGFjdCBhbmQgcHJpb3JpdHkgYWxsb2NhdGlvbiBsaWIKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9Y3V0Cgo9aGVhZDIgbmV3KCkKCkNyZWF0ZSBhbiBvYmplY3QuCgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkQ0lQQWxsb2NhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNoYW5nZUNJUEFsbG9jYXRlJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIEFsbG9jYXRlTGlzdCgpCgpSZXR1cm4gYSBDPDJkPiBoYXNoIHJlZmVyZW5jZSBvZiBhbGxvY2F0aW9ucy4KCiAgICBteSAkTGlzdFJlZiA9ICRDSVBBbGxvY2F0ZU9iamVjdC0+QWxsb2NhdGVMaXN0KAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCkM8JExpc3RSZWY+IGlzIHNvbWV0aGluZyBsaWtlOgoKICAgICRMaXN0UmV0ID0gewogICAgICAgICc2JyA9PiB7CiAgICAgICAgICAgICc0JyA9PiAyLAogICAgICAgICAgICAnMScgPT4gMSwKICAgICAgICAgICAgJzMnID0+IDIsCiAgICAgICAgfSwKICAgICAgICAnOCcgPT4gewogICAgICAgICAgICAnNCcgPT4gNCwKICAgICAgICAgICAgJzEnID0+IDIsCiAgICAgICAgICAgICczJyA9PiAzLAogICAgICAgIH0sCiAgICB9OwoKbWVhbmluZyB0aGF0IHRoZSBDcml0aWNhbGl0eUlEICc2JyBhbmQgdGhlIEluY2lkZW50SUQgJzQnIHN1Z2dlc3QgdGhlIFByaW9yaXR5SUQgJzInLgoKPWN1dAoKc3ViIEFsbG9jYXRlTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgVXNlcklEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBhc2sgZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgY2F0ZWdvcnlfaWQsIGltcGFjdF9pZCwgcHJpb3JpdHlfaWQgRlJPTSBjaGFuZ2VfY2lwX2FsbG9jYXRlJywKICAgICk7CgogICAgIyByZXN1bHQgbGlzdAogICAgbXkgJUFsbG9jYXRlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJEFsbG9jYXRlRGF0YXsgJFJvd1sxXSB9eyAkUm93WzBdIH0gPSAkUm93WzJdOwogICAgfQoKICAgIHJldHVybiBcJUFsbG9jYXRlRGF0YTsKfQoKPWhlYWQyIEFsbG9jYXRlVXBkYXRlKCkKClVwZGF0ZSB0aGUgYWxsb2NhdGlvbiBvZiBjYXRlZ29yeSwgaW1wYWN0IGFuZCBwcmlvcml0eS4KCiAgICBteSAkVHJ1ZSA9ICRDSVBBbGxvY2F0ZU9iamVjdC0+QWxsb2NhdGVVcGRhdGUoCiAgICAgICAgQWxsb2NhdGVEYXRhID0+ICREYXRhUmVmLCAgIyAyRCBoYXNoIHJlZmVyZW5jZQogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBBbGxvY2F0ZVVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhBbGxvY2F0ZURhdGEgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIGFsbG9jYXRlIGRhdGEgaXMgYSBoYXNoIHJlZmVyZW5jZQogICAgaWYgKCByZWYgJFBhcmFte0FsbG9jYXRlRGF0YX0gbmUgJ0hBU0gnICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnQWxsb2NhdGVEYXRhIG11c3QgYmUgYSAyRCBoYXNoIHJlZmVyZW5jZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgaWYgYWxsb2NhdGUgZGF0YSBpcyBhIDJEIGhhc2ggcmVmZXJlbmNlCiAgICBJTVBBQ1RJRDoKICAgIGZvciBteSAkSW1wYWN0SUQgKCBzb3J0IGtleXMgJXsgJFBhcmFte0FsbG9jYXRlRGF0YX0gfSApIHsKCiAgICAgICAgbmV4dCBJTVBBQ1RJRCBpZiByZWYgJFBhcmFte0FsbG9jYXRlRGF0YX0tPnskSW1wYWN0SUR9IGVxICdIQVNIJzsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdBbGxvY2F0ZURhdGEgbXVzdCBiZSBhIDJEIGhhc2ggcmVmZXJlbmNlIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBkZWxldGUgb2xkIGFsbG9jYXRpb25zCiAgICByZXR1cm4KICAgICAgICBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKCBTUUwgPT4gJ0RFTEVURSBGUk9NIGNoYW5nZV9jaXBfYWxsb2NhdGUnICk7CgogICAgIyBpbnNlcnQgbmV3IGFsbG9jYXRpb25zCiAgICBmb3IgbXkgJEltcGFjdElEICggc29ydCBrZXlzICV7ICRQYXJhbXtBbGxvY2F0ZURhdGF9IH0gKSB7CgogICAgICAgIGZvciBteSAkQ2F0ZWdvcnlJRCAoIHNvcnQga2V5cyAleyAkUGFyYW17QWxsb2NhdGVEYXRhfS0+eyRJbXBhY3RJRH0gfSApIHsKCiAgICAgICAgICAgICMgZXh0cmFjdCBwcmlvcml0eQogICAgICAgICAgICBteSAkUHJpb3JpdHlJRCA9ICRQYXJhbXtBbGxvY2F0ZURhdGF9LT57JEltcGFjdElEfS0+eyRDYXRlZ29yeUlEfTsKCiAgICAgICAgICAgICMgaW5zZXJ0IG5ldyBhbGxvY2F0aW9uCiAgICAgICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgICAgICAgICAgU1FMID0+ICdJTlNFUlQgSU5UTyBjaGFuZ2VfY2lwX2FsbG9jYXRlICcKICAgICAgICAgICAgICAgICAgICAuICcoY2F0ZWdvcnlfaWQsIGltcGFjdF9pZCwgcHJpb3JpdHlfaWQsICcKICAgICAgICAgICAgICAgICAgICAuICdjcmVhdGVfdGltZSwgY3JlYXRlX2J5LCBjaGFuZ2VfdGltZSwgY2hhbmdlX2J5KSBWQUxVRVMgJwogICAgICAgICAgICAgICAgICAgIC4gJyg/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgPywgY3VycmVudF90aW1lc3RhbXAsID8pJywKICAgICAgICAgICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICAgICAgICAgIFwkQ2F0ZWdvcnlJRCwgICAgXCRJbXBhY3RJRCwgXCRQcmlvcml0eUlELAogICAgICAgICAgICAgICAgICAgIFwkUGFyYW17VXNlcklEfSwgXCRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBQcmlvcml0eUFsbG9jYXRpb25HZXQoKQoKUmV0dXJuIHRoZSBwcmlvcml0eSBpZCBmb3IgZ2l2ZW4gY2F0ZWdvcnkgYW5kIGltcGFjdC4KCiAgICBteSAkUHJpb3JpdHlJRCA9ICRDSVBBbGxvY2F0ZU9iamVjdC0+UHJpb3JpdHlBbGxvY2F0aW9uR2V0KAogICAgICAgIENhdGVnb3J5SUQgPT4gMzIxLAogICAgICAgIEltcGFjdElEICAgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBQcmlvcml0eUFsbG9jYXRpb25HZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoQ2F0ZWdvcnlJRCBJbXBhY3RJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgcHJpb3JpdHkgaWQgZnJvbSBkYgogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBwcmlvcml0eV9pZCBGUk9NIGNoYW5nZV9jaXBfYWxsb2NhdGUgJwogICAgICAgICAgICAuICdXSEVSRSBjYXRlZ29yeV9pZCA9ID8gQU5EIGltcGFjdF9pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtDYXRlZ29yeUlEfSwgXCRQYXJhbXtJbXBhY3RJRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHJlc3VsdAogICAgbXkgJFByaW9yaXR5SUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRQcmlvcml0eUlEID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gJFByaW9yaXR5SUQ7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgU29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMCondition.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6RXZlbnRIYW5kbGVyOwp1c2UgS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb246Ok9iamVjdDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uOjpBdHRyaWJ1dGU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T3BlcmF0b3I7CnVzZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6RXhwcmVzc2lvbjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uOjpBY3Rpb247Cgp1c2UgdmFycyBxdyhASVNBKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OlZhbGlkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T2JqZWN0OjpJVFNNV29ya09yZGVyJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbiAtIGNvbmRpdGlvbiBsaWIKCj1oZWFkMSBERVNDUklQVElPTgoKQWxsIGZ1bmN0aW9ucyBmb3IgY29uZGl0aW9ucyBpbiBJVFNNQ2hhbmdlTWFuYWdlbWVudC4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDb25kaXRpb25PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbicpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIHNldCB0aGUgZGVidWcgZmxhZwogICAgJFNlbGYtPntEZWJ1Z30gPSAkUGFyYW17RGVidWd9IHx8IDA7CgogICAgIyBnZXQgdGhlIGNhY2hlIHR5cGUgYW5kIFRUTCAoaW4gc2Vjb25kcykKICAgICRTZWxmLT57Q2FjaGVUeXBlfSA9ICdJVFNNQ2hhbmdlTWFuYWdlbWVudCc7CiAgICAkU2VsZi0+e0NhY2hlVFRMfSAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0lUU01DaGFuZ2U6OkNhY2hlVFRMJykgKiA2MDsKCiAgICAjIGdldCB0aGUgZGF0YWJhc2UgdHlwZQogICAgJFNlbGYtPntEQlR5cGV9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPnsnREI6OlR5cGUnfSB8fCAnJzsKICAgICRTZWxmLT57REJUeXBlfSA9IGxjICRTZWxmLT57REJUeXBlfTsKCiAgICBASVNBID0gcXcoCiAgICAgICAgS2VybmVsOjpTeXN0ZW06OkV2ZW50SGFuZGxlcgogICAgICAgIEtlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uOjpPYmplY3QKICAgICAgICBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6QXR0cmlidXRlCiAgICAgICAgS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb246Ok9wZXJhdG9yCiAgICAgICAgS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb246OkV4cHJlc3Npb24KICAgICAgICBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6QWN0aW9uCiAgICApOwoKICAgICMgaW5pdCBvZiBldmVudCBoYW5kbGVyCiAgICAkU2VsZi0+RXZlbnRIYW5kbGVySW5pdCgKICAgICAgICBDb25maWcgPT4gJ0lUU01Db25kaXRpb246OkV2ZW50TW9kdWxlJywKICAgICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgQ29uZGl0aW9uQWRkKCkKCkFkZCBhIG5ldyBjb25kaXRpb24uCgogICAgbXkgJENvbmRpdGlvbklEID0gJENvbmRpdGlvbk9iamVjdC0+Q29uZGl0aW9uQWRkKAogICAgICAgIENoYW5nZUlEICAgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgID0+ICdUaGUgY29uZGl0aW9uIG5hbWUnLAogICAgICAgIEV4cHJlc3Npb25Db25qdW5jdGlvbiA9PiAnYW55JywgICAgICAgICAgICAgICAgICMgKGFueXxhbGwpCiAgICAgICAgQ29tbWVudCAgICAgICAgICAgICAgID0+ICdBIGNvbW1lbnQnLCAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgVmFsaWRJRCAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIENvbmRpdGlvbkFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDaGFuZ2VJRCBOYW1lIEV4cHJlc3Npb25Db25qdW5jdGlvbiBWYWxpZElEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiBhIGNvbmRpdGlvbiB3aXRoIHRoaXMgbmFtZSBhbmQgY2hhbmdlIGlkIGV4aXN0IGFscmVhZHkKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQgRlJPTSBjaGFuZ2VfY29uZGl0aW9uICcKICAgICAgICAgICAgLiAnV0hFUkUgY2hhbmdlX2lkID0gPyBBTkQgbmFtZSA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte0NoYW5nZUlEfSwgXCRQYXJhbXtOYW1lfSwKICAgICAgICBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJENvbmRpdGlvbklEOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQ29uZGl0aW9uSUQgPSAkUm93WzBdOwogICAgfQoKICAgICMgYSBjb25kaXRpb24gd2l0aCB0aGlzIG5hbWUgYW5kIGNoYW5nZSBpZCBleGlzdHMgYWxyZWFkeQogICAgaWYgKCRDb25kaXRpb25JRCkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQSBjb25kaXRpb24gd2l0aCB0aGUgbmFtZSAkUGFyYW17TmFtZX0gIgogICAgICAgICAgICAgICAgLiAiZXhpc3RzIGFscmVhZHkgZm9yIENoYW5nZUlEICRQYXJhbXtDaGFuZ2VJRH0hIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHRyaWdnZXIgQ29uZGl0aW9uQWRkUHJlLUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdDb25kaXRpb25BZGRQcmUnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGFkZCBuZXcgY29uZGl0aW9uIHRvIGRhdGFiYXNlCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJ0lOU0VSVCBJTlRPIGNoYW5nZV9jb25kaXRpb24gJwogICAgICAgICAgICAuICcoY2hhbmdlX2lkLCBuYW1lLCBleHByZXNzaW9uX2Nvbmp1bmN0aW9uLCBjb21tZW50cywgdmFsaWRfaWQsICcKICAgICAgICAgICAgLiAnY3JlYXRlX3RpbWUsIGNyZWF0ZV9ieSwgY2hhbmdlX3RpbWUsIGNoYW5nZV9ieSkgJwogICAgICAgICAgICAuICdWQUxVRVMgKD8sID8sID8sID8sID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgPyknLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte0NoYW5nZUlEfSwgXCRQYXJhbXtOYW1lfSwgICAgXCRQYXJhbXtFeHByZXNzaW9uQ29uanVuY3Rpb259LAogICAgICAgICAgICBcJFBhcmFte0NvbW1lbnR9LCAgXCRQYXJhbXtWYWxpZElEfSwgXCRQYXJhbXtVc2VySUR9LCBcJFBhcmFte1VzZXJJRH0sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBwcmVwYXJlIFNRTCBzdGF0ZW1lbnQKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQgRlJPTSBjaGFuZ2VfY29uZGl0aW9uICcKICAgICAgICAgICAgLiAnV0hFUkUgY2hhbmdlX2lkID0gPyBBTkQgbmFtZSA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte0NoYW5nZUlEfSwgXCRQYXJhbXtOYW1lfSwKICAgICAgICBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQ29uZGl0aW9uSUQgPSAkUm93WzBdOwogICAgfQoKICAgICMgY2hlY2sgaWYgY29uZGl0aW9uIGNvdWxkIGJlIGFkZGVkCiAgICBpZiAoICEkQ29uZGl0aW9uSUQgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb25kaXRpb25BZGQoKSBmYWlsZWQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgZm9yIG15ICRLZXkgKAogICAgICAgICdDb25kaXRpb25MaXN0OjpDaGFuZ2VJRDo6JyAuICRQYXJhbXtDaGFuZ2VJRH0gLiAnOjpWYWxpZDo6MCcsCiAgICAgICAgJ0NvbmRpdGlvbkxpc3Q6OkNoYW5nZUlEOjonIC4gJFBhcmFte0NoYW5nZUlEfSAuICc6OlZhbGlkOjoxJywKICAgICAgICApCiAgICB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkRlbGV0ZSgKICAgICAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgIEtleSAgPT4gJEtleSwKICAgICAgICApOwogICAgfQoKICAgICMgdHJpZ2dlciBDb25kaXRpb25BZGRQb3N0LUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdDb25kaXRpb25BZGRQb3N0JywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJENvbmRpdGlvbklELAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gJENvbmRpdGlvbklEOwp9Cgo9aGVhZDIgQ29uZGl0aW9uVXBkYXRlKCkKClVwZGF0ZSBhIGNvbmRpdGlvbi4KCiAgICBteSAkU3VjY2VzcyA9ICRDb25kaXRpb25PYmplY3QtPkNvbmRpdGlvblVwZGF0ZSgKICAgICAgICBDb25kaXRpb25JRCAgICAgICAgICAgPT4gMTIzNCwKICAgICAgICBOYW1lICAgICAgICAgICAgICAgICAgPT4gJ1RoZSBjb25kaXRpb24gbmFtZScsICAjIChvcHRpb25hbCkKICAgICAgICBFeHByZXNzaW9uQ29uanVuY3Rpb24gPT4gJ2FueScsICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgKGFueXxhbGwpCiAgICAgICAgQ29tbWVudCAgICAgICAgICAgICAgID0+ICdBIGNvbW1lbnQnLCAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgVmFsaWRJRCAgICAgICAgICAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIENvbmRpdGlvblVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDb25kaXRpb25JRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGN1cnJlbnQgY29uZGl0aW9uIGRhdGEgZm9yIGV2ZW50IGhhbmRsZXIKICAgIG15ICRDb25kaXRpb25EYXRhID0gJFNlbGYtPkNvbmRpdGlvbkdldCgKICAgICAgICBDb25kaXRpb25JRCA9PiAkUGFyYW17Q29uZGl0aW9uSUR9LAogICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGNvbmRpdGlvbgogICAgcmV0dXJuIGlmICEkQ29uZGl0aW9uRGF0YTsKCiAgICAjIHRyaWdnZXIgQ29uZGl0aW9uVXBkYXRlUHJlLUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdDb25kaXRpb25VcGRhdGVQcmUnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIG1hcCB1cGRhdGUgYXR0cmlidXRlcyB0byBjb2x1bW4gbmFtZXMKICAgIG15ICVBdHRyaWJ1dGUgPSAoCiAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgID0+ICduYW1lJywKICAgICAgICBFeHByZXNzaW9uQ29uanVuY3Rpb24gPT4gJ2V4cHJlc3Npb25fY29uanVuY3Rpb24nLAogICAgICAgIENvbW1lbnQgICAgICAgICAgICAgICA9PiAnY29tbWVudHMnLAogICAgICAgIFZhbGlkSUQgICAgICAgICAgICAgICA9PiAndmFsaWRfaWQnLAogICAgKTsKCiAgICAjIGJ1aWxkIFNRTCB0byB1cGRhdGUgY29uZGl0aW9uCiAgICBteSAkU1FMID0gJ1VQREFURSBjaGFuZ2VfY29uZGl0aW9uIFNFVCAnOwogICAgbXkgQEJpbmQ7CgogICAgQVRUUklCVVRFOgogICAgZm9yIG15ICRBdHRyaWJ1dGUgKCBzb3J0IGtleXMgJUF0dHJpYnV0ZSApIHsKCiAgICAgICAgIyBwcmVzZXJ2ZSB0aGUgb2xkIHZhbHVlLCB3aGVuIHRoZSBjb2x1bW4gaXNuJ3QgaW4gZnVuY3Rpb24gcGFyYW1ldGVycwogICAgICAgIG5leHQgQVRUUklCVVRFIGlmICFleGlzdHMgJFBhcmFteyRBdHRyaWJ1dGV9OwoKICAgICAgICAjIHBhcmFtIGNoZWNraW5nIGhhcyBhbHJlYWR5IGJlZW4gZG9uZSwgc28gdGhpcyBpcyBzYWZlCiAgICAgICAgJFNRTCAuPSAiJEF0dHJpYnV0ZXskQXR0cmlidXRlfSA9ID8sICI7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXskQXR0cmlidXRlfTsKICAgIH0KCiAgICAjIGFkZCBjaGFuZ2UgdGltZSBhbmQgY2hhbmdlIHVzZXIKICAgICRTUUwgLj0gJ2NoYW5nZV90aW1lID0gY3VycmVudF90aW1lc3RhbXAsIGNoYW5nZV9ieSA9ID8gJzsKICAgIHB1c2ggQEJpbmQsIFwkUGFyYW17VXNlcklEfTsKCiAgICAjIHNldCBtYXRjaGluZyBvZiBTUUwgc3RhdGVtZW50CiAgICAkU1FMIC49ICdXSEVSRSBpZCA9ID8nOwogICAgcHVzaCBAQmluZCwgXCRQYXJhbXtDb25kaXRpb25JRH07CgogICAgIyB1cGRhdGUgY29uZGl0aW9uCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgQmluZCA9PiBcQEJpbmQsCiAgICApOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBmb3IgbXkgJEtleSAoCiAgICAgICAgJ0NvbmRpdGlvbkxpc3Q6OkNoYW5nZUlEOjonIC4gJENvbmRpdGlvbkRhdGEtPntDaGFuZ2VJRH0gLiAnOjpWYWxpZDo6MCcsCiAgICAgICAgJ0NvbmRpdGlvbkxpc3Q6OkNoYW5nZUlEOjonIC4gJENvbmRpdGlvbkRhdGEtPntDaGFuZ2VJRH0gLiAnOjpWYWxpZDo6MScsCiAgICAgICAgJ0NvbmRpdGlvbkdldDo6Q29uZGl0aW9uSUQ6OicgLiAkUGFyYW17Q29uZGl0aW9uSUR9LAogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgIyB0cmlnZ2VyIENvbmRpdGlvblVwZGF0ZVBvc3QtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ0NvbmRpdGlvblVwZGF0ZVBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBPbGRDb25kaXRpb25EYXRhID0+ICRDb25kaXRpb25EYXRhLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENvbmRpdGlvbkxvb2t1cCgpCgpSZXR1cm4gdGhlIGNvbmRpdGlvbiBpZCB3aGVuIHRoZSBjb25kaXRpb24gbmFtZSBpcyBwYXNzZWQuClJldHVybiB0aGUgY29uZGl0aW9uIG5hbWUgd2hlbiB0aGUgY29uZGl0aW9uIGlkIGlzIHBhc3NlZC4KV2hlbiBubyBjb25kaXRpb24gaWQgb3IgY29uZGl0aW9uIG5hbWUgaXMgZm91bmQsIHRoZW4gdGhlIHVuZGVmaW5lZCB2YWx1ZSBpcyByZXR1cm5lZC4KVGhlIENoYW5nZUlEIGlzIGFsd2F5cyByZXF1aXJlZCBhcyBjb25kaXRpb24gbmFtZXMgYXJlIG9ubHkgdW5pcXVlIHdpdGhpbiB0aGUgc2FtZSBjaGFuZ2UuCgogICAgbXkgJENvbmRpdGlvbklEID0gJENvbmRpdGlvbk9iamVjdC0+Q29uZGl0aW9uTG9va3VwKAogICAgICAgIE5hbWUgICAgID0+ICdBQkMnLAogICAgICAgIENoYW5nZUlEID0+IDIsCiAgICApOwoKICAgIG15ICROYW1lID0gJENvbmRpdGlvbk9iamVjdC0+Q29uZGl0aW9uTG9va3VwKAogICAgICAgIENvbmRpdGlvbklEID0+IDQyLAogICAgICAgIENoYW5nZUlEICAgID0+IDIsCiAgICApOwoKPWN1dAoKc3ViIENvbmRpdGlvbkxvb2t1cCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdGhlIGNoYW5nZSBpZCBtdXN0IGJlIHBhc3NlZAogICAgaWYgKCAhJFBhcmFte0NoYW5nZUlEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgdGhlIENoYW5nZUlEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB0aGUgY29uZGl0aW9uIGlkIG9yIHRoZSBjb25kaXRpb24gbmFtZSBtdXN0IGJlIHBhc3NlZAogICAgaWYgKCAhJFBhcmFte0NvbmRpdGlvbklEfSAmJiAhJFBhcmFte05hbWV9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCB0aGUgQ29uZGl0aW9uSUQgb3IgdGhlIE5hbWUhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIG9ubHkgb25lIG9mIGNvbmRpdGlvbiBpZCBhbmQgY29uZGl0aW9uIG5hbWUgY2FuIGJlIHBhc3NlZAogICAgaWYgKCAkUGFyYW17Q29uZGl0aW9uSUR9ICYmICRQYXJhbXtOYW1lfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgZWl0aGVyIHRoZSBDb25kaXRpb25JRCBvciB0aGUgTmFtZSwgbm90IGJvdGghJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIGlmIENvbmRpdGlvbklEIGlzIGEgbnVtYmVyCiAgICBpZiAoICRQYXJhbXtDb25kaXRpb25JRH0gJiYgJFBhcmFte0NvbmRpdGlvbklEfSAhfiBteyBcQSBcZCsgXHogfXhtcyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvbmRpdGlvbklEIG11c3QgYmUgYSBudW1iZXIhIChDb25kaXRpb25JRDogJFBhcmFte0NvbmRpdGlvbklEfSkiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGNvbmRpdGlvbiBpZAogICAgaWYgKCAkUGFyYW17TmFtZX0gKSB7CgogICAgICAgIG15ICRDb25kaXRpb25JRDsKCiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFNFTEVDVCBpZAogICAgICAgICAgICAgICAgRlJPTSBjaGFuZ2VfY29uZGl0aW9uCiAgICAgICAgICAgICAgICBXSEVSRSBjaGFuZ2VfaWQgPSA/CiAgICAgICAgICAgICAgICBBTkQgbmFtZSA9ID8KICAgICAgICAgICAgJywKICAgICAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgICAgICBcJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICAgICAgICAgIFwkUGFyYW17TmFtZX0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJENvbmRpdGlvbklEID0gJFJvd1swXTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkQ29uZGl0aW9uSUQ7CiAgICB9CgogICAgIyBnZXQgY29uZGl0aW9uIG5hbWUKICAgIGVsc2lmICggJFBhcmFte0NvbmRpdGlvbklEfSApIHsKCiAgICAgICAgbXkgJE5hbWU7CgogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBTRUxFQ1QgbmFtZQogICAgICAgICAgICAgICAgRlJPTSBjaGFuZ2VfY29uZGl0aW9uCiAgICAgICAgICAgICAgICBXSEVSRSBjaGFuZ2VfaWQgPSA/CiAgICAgICAgICAgICAgICBBTkQgaWQgPSA/CiAgICAgICAgICAgICcsCiAgICAgICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICAgICAgXCRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgICAgICAgICBcJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICApOwoKICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAkTmFtZSA9ICRSb3dbMF07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJE5hbWU7CiAgICB9CgogICAgcmV0dXJuOwp9Cgo9aGVhZDIgQ29uZGl0aW9uR2V0KCkKClJldHVybnMgYSBoYXNoIHJlZmVyZW5jZSBvZiB0aGUgY29uZGl0aW9uIGRhdGEgZm9yIGEgZ2l2ZW4gQ29uZGl0aW9uSUQuCgogICAgbXkgJENvbmRpdGlvbkRhdGEgPSAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25HZXQoCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKVGhlIHJldHVybmVkIGhhc2ggcmVmZXJlbmNlIGNvbnRhaW5zIGZvbGxvd2luZyBlbGVtZW50czoKCiAgICAkQ29uZGl0aW9uRGF0YXtDb25kaXRpb25JRH0KICAgICRDb25kaXRpb25EYXRhe0NoYW5nZUlEfQogICAgJENvbmRpdGlvbkRhdGF7TmFtZX0KICAgICRDb25kaXRpb25EYXRhe0V4cHJlc3Npb25Db25qdW5jdGlvbn0KICAgICRDb25kaXRpb25EYXRhe0NvbW1lbnR9CiAgICAkQ29uZGl0aW9uRGF0YXtWYWxpZElEfQogICAgJENvbmRpdGlvbkRhdGF7Q3JlYXRlVGltZX0KICAgICRDb25kaXRpb25EYXRhe0NyZWF0ZUJ5fQogICAgJENvbmRpdGlvbkRhdGF7Q2hhbmdlVGltZX0KICAgICRDb25kaXRpb25EYXRhe0NoYW5nZUJ5fQoKPWN1dAoKc3ViIENvbmRpdGlvbkdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDb25kaXRpb25JRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgY2FjaGUKICAgIG15ICRDYWNoZUtleSA9ICdDb25kaXRpb25HZXQ6OkNvbmRpdGlvbklEOjonIC4gJFBhcmFte0NvbmRpdGlvbklEfTsKICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwogICAgcmV0dXJuICRDYWNoZSBpZiAkQ2FjaGU7CgogICAgIyBwcmVwYXJlIFNRTCBzdGF0ZW1lbnQKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQsIGNoYW5nZV9pZCwgbmFtZSwgZXhwcmVzc2lvbl9jb25qdW5jdGlvbiwgY29tbWVudHMsICcKICAgICAgICAgICAgLiAndmFsaWRfaWQsIGNyZWF0ZV90aW1lLCBjcmVhdGVfYnksIGNoYW5nZV90aW1lLCBjaGFuZ2VfYnkgJwogICAgICAgICAgICAuICdGUk9NIGNoYW5nZV9jb25kaXRpb24gJwogICAgICAgICAgICAuICdXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtDb25kaXRpb25JRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICVDb25kaXRpb25EYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQ29uZGl0aW9uRGF0YXtDb25kaXRpb25JRH0gICAgICAgICAgID0gJFJvd1swXTsKICAgICAgICAkQ29uZGl0aW9uRGF0YXtDaGFuZ2VJRH0gICAgICAgICAgICAgID0gJFJvd1sxXTsKICAgICAgICAkQ29uZGl0aW9uRGF0YXtOYW1lfSAgICAgICAgICAgICAgICAgID0gJFJvd1syXTsKICAgICAgICAkQ29uZGl0aW9uRGF0YXtFeHByZXNzaW9uQ29uanVuY3Rpb259ID0gJFJvd1szXTsKICAgICAgICAkQ29uZGl0aW9uRGF0YXtDb21tZW50fSAgICAgICAgICAgICAgID0gJFJvd1s0XTsKICAgICAgICAkQ29uZGl0aW9uRGF0YXtWYWxpZElEfSAgICAgICAgICAgICAgID0gJFJvd1s1XTsKICAgICAgICAkQ29uZGl0aW9uRGF0YXtDcmVhdGVUaW1lfSAgICAgICAgICAgID0gJFJvd1s2XTsKICAgICAgICAkQ29uZGl0aW9uRGF0YXtDcmVhdGVCeX0gICAgICAgICAgICAgID0gJFJvd1s3XTsKICAgICAgICAkQ29uZGl0aW9uRGF0YXtDaGFuZ2VUaW1lfSAgICAgICAgICAgID0gJFJvd1s4XTsKICAgICAgICAkQ29uZGl0aW9uRGF0YXtDaGFuZ2VCeX0gICAgICAgICAgICAgID0gJFJvd1s5XTsKICAgIH0KCiAgICAjIGNoZWNrIGVycm9yCiAgICBpZiAoICElQ29uZGl0aW9uRGF0YSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvbmRpdGlvbklEICRQYXJhbXtDb25kaXRpb25JRH0gZG9lcyBub3QgZXhpc3QhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNsZWFudXAgdGltZSBzdGFtcHMgKHNvbWUgZGF0YWJhc2VzIGFyZSB1c2luZyBlLiBnLiAyMDA4LTAyLTI1IDIyOjAzOjAwLjAwMDAwMCkKICAgIFRJTUVGSUVMRDoKICAgIGZvciBteSAkVGltZWZpZWxkICggJ0NyZWF0ZVRpbWUnLCAnQ2hhbmdlVGltZScsICkgewogICAgICAgIG5leHQgVElNRUZJRUxEIGlmICEkQ29uZGl0aW9uRGF0YXskVGltZWZpZWxkfTsKICAgICAgICAkQ29uZGl0aW9uRGF0YXskVGltZWZpZWxkfQogICAgICAgICAgICA9fiBzeyBcQSAoIFxkXGRcZFxkIC0gXGRcZCAtIFxkXGQgXHMgXGRcZDpcZFxkOlxkXGQgKSBcLiAuKz8gXHogfXskMX14bXM7CiAgICB9CgogICAgIyBzZXQgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICBWYWx1ZSA9PiBcJUNvbmRpdGlvbkRhdGEsCiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICApOwoKICAgIHJldHVybiBcJUNvbmRpdGlvbkRhdGE7Cn0KCj1oZWFkMiBDb25kaXRpb25MaXN0KCkKCnJldHVybiBhIGxpc3Qgb2YgYWxsIGNvbmRpdGlvbiBpZHMgb2YgYSBnaXZlbiBjaGFuZ2UgaWQgYXMgYXJyYXkgcmVmZXJlbmNlLgpUaGUgaWRzIGFyZSBzb3J0ZWQgYnkgdGhlIG5hbWUgb2YgdGhlIGNvbmRpdGlvbi4KCiAgICBteSAkQ29uZGl0aW9uSURzUmVmID0gJENvbmRpdGlvbk9iamVjdC0+Q29uZGl0aW9uTGlzdCgKICAgICAgICBDaGFuZ2VJRCA9PiA1LAogICAgICAgIFZhbGlkICAgID0+IDAsICAgIyAob3B0aW9uYWwpIGRlZmF1bHQgMSAoMHwxKQogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIENvbmRpdGlvbkxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoQ2hhbmdlSUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHZhbGlkIHBhcmFtCiAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtWYWxpZH0gKSB7CiAgICAgICAgJFBhcmFte1ZhbGlkfSA9IDE7CiAgICB9CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJENhY2hlS2V5ID0gJ0NvbmRpdGlvbkxpc3Q6OkNoYW5nZUlEOjonIC4gJFBhcmFte0NoYW5nZUlEfSAuICc6OlZhbGlkOjonIC4gJFBhcmFte1ZhbGlkfTsKICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwogICAgcmV0dXJuICRDYWNoZSBpZiAkQ2FjaGU7CgogICAgIyBkZWZpbmUgU1FMIHN0YXRlbWVudAogICAgbXkgJFNRTCA9ICdTRUxFQ1QgaWQgJwogICAgICAgIC4gJ0ZST00gY2hhbmdlX2NvbmRpdGlvbiAnCiAgICAgICAgLiAnV0hFUkUgY2hhbmdlX2lkID0gPyAnOwoKICAgICMgZ2V0IG9ubHkgdmFsaWQgY29uZGl0aW9uIGlkcwogICAgaWYgKCAkUGFyYW17VmFsaWR9ICkgewoKICAgICAgICBteSBAVmFsaWRJRHMgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZElEc0dldCgpOwogICAgICAgIG15ICRWYWxpZElEU3RyaW5nID0gam9pbiAnLCAnLCBAVmFsaWRJRHM7CgogICAgICAgICRTUUwgLj0gIkFORCB2YWxpZF9pZCBJTiAoICRWYWxpZElEU3RyaW5nICkgIjsKICAgIH0KCiAgICAjIGdldCBzb3J0ZWQgbGlzdAogICAgJFNRTCAuPSAnT1JERVIgQlkgbmFtZSBBU0MgJzsKCiAgICAjIHByZXBhcmUgU1FMIHN0YXRlbWVudAogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17Q2hhbmdlSUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgQENvbmRpdGlvbklEczsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgcHVzaCBAQ29uZGl0aW9uSURzLCAkUm93WzBdOwogICAgfQoKICAgICMgc2V0IGNhY2hlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+U2V0KAogICAgICAgIFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXksCiAgICAgICAgVmFsdWUgPT4gXEBDb25kaXRpb25JRHMsCiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICApOwoKICAgIHJldHVybiBcQENvbmRpdGlvbklEczsKfQoKPWhlYWQyIENvbmRpdGlvbkRlbGV0ZSgpCgpEZWxldGUgYSBjb25kaXRpb24uCgogICAgbXkgJFN1Y2Nlc3MgPSAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25EZWxldGUoCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIENvbmRpdGlvbkRlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDb25kaXRpb25JRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgdHJpZ2dlciBDb25kaXRpb25EZWxldGVQcmUtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ0NvbmRpdGlvbkRlbGV0ZVByZScsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IGNvbmRpdGlvbiBkYXRhIGZvciBldmVudCBoYW5kbGVyCiAgICBteSAkQ29uZGl0aW9uRGF0YSA9ICRTZWxmLT5Db25kaXRpb25HZXQoCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBkZWxldGUgYWxsIGV4cHJlc3Npb25zIGZvciB0aGlzIGNvbmRpdGlvbiBpZAogICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+RXhwcmVzc2lvbkRlbGV0ZUFsbCgKICAgICAgICBDb25kaXRpb25JRCA9PiAkUGFyYW17Q29uZGl0aW9uSUR9LAogICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gaWYgISRTdWNjZXNzOwoKICAgICMgZGVsZXRlIGFsbCBhY3Rpb25zIGZvciB0aGlzIGNvbmRpdGlvbiBpZAogICAgJFN1Y2Nlc3MgPSAkU2VsZi0+QWN0aW9uRGVsZXRlQWxsKAogICAgICAgIENvbmRpdGlvbklEID0+ICRQYXJhbXtDb25kaXRpb25JRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiBpZiAhJFN1Y2Nlc3M7CgogICAgIyBkZWxldGUgY29uZGl0aW9uIGZyb20gZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnREVMRVRFIEZST00gY2hhbmdlX2NvbmRpdGlvbiAnCiAgICAgICAgICAgIC4gJ1dIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17Q29uZGl0aW9uSUR9IF0sCiAgICApOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBmb3IgbXkgJEtleSAoCiAgICAgICAgJ0NvbmRpdGlvbkxpc3Q6OkNoYW5nZUlEOjonIC4gJENvbmRpdGlvbkRhdGEtPntDaGFuZ2VJRH0gLiAnOjpWYWxpZDo6MCcsCiAgICAgICAgJ0NvbmRpdGlvbkxpc3Q6OkNoYW5nZUlEOjonIC4gJENvbmRpdGlvbkRhdGEtPntDaGFuZ2VJRH0gLiAnOjpWYWxpZDo6MScsCiAgICAgICAgJ0NvbmRpdGlvbkdldDo6Q29uZGl0aW9uSUQ6OicgLiAkUGFyYW17Q29uZGl0aW9uSUR9LAogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgIyB0cmlnZ2VyIENvbmRpdGlvbkRlbGV0ZVBvc3QtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ0NvbmRpdGlvbkRlbGV0ZVBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBPbGRDb25kaXRpb25EYXRhID0+ICRDb25kaXRpb25EYXRhLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENvbmRpdGlvbkRlbGV0ZUFsbCgpCgpEZWxldGUgYWxsIGNvbmRpdGlvbnMgZm9yIGEgZ2l2ZW4gQ2hhbmdlSUQuCkFsbCByZWxhdGVkIGV4cHJlc3Npb25zIGFuZCBhY3Rpb25zIHdpbGwgYmUgZGVsZXRlZCBmaXJzdC4KCiAgICBteSAkU3VjY2VzcyA9ICRDb25kaXRpb25PYmplY3QtPkNvbmRpdGlvbkRlbGV0ZUFsbCgKICAgICAgICBDaGFuZ2VJRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQ29uZGl0aW9uRGVsZXRlQWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENoYW5nZUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgYWxsIGNvbmRpdGlvbiBpZHMgKGluY2x1ZGluZyBpbnZhbGlkKSBmb3IgdGhlIGdpdmVuIGNoYW5nZSBpZAogICAgbXkgJENvbmRpdGlvbklEc1JlZiA9ICRTZWxmLT5Db25kaXRpb25MaXN0KAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgVmFsaWQgICAgPT4gMCwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyB0cmlnZ2VyIENvbmRpdGlvbkRlbGV0ZUFsbFByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnQ29uZGl0aW9uRGVsZXRlQWxsUHJlJywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgZm9yIG15ICRDb25kaXRpb25JRCAoIEB7JENvbmRpdGlvbklEc1JlZn0gKSB7CgogICAgICAgICMgZGVsZXRlIGFsbCBleHByZXNzaW9ucyBmb3IgdGhpcyBjb25kaXRpb24gaWQKICAgICAgICBteSAkU3VjY2VzcyA9ICRTZWxmLT5FeHByZXNzaW9uRGVsZXRlQWxsKAogICAgICAgICAgICBDb25kaXRpb25JRCA9PiAkQ29uZGl0aW9uSUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIHJldHVybiBpZiAhJFN1Y2Nlc3M7CgogICAgICAgICMgZGVsZXRlIGFsbCBhY3Rpb25zIGZvciB0aGlzIGNvbmRpdGlvbiBpZAogICAgICAgICRTdWNjZXNzID0gJFNlbGYtPkFjdGlvbkRlbGV0ZUFsbCgKICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJENvbmRpdGlvbklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gaWYgISRTdWNjZXNzOwoKICAgICAgICAjIGRlbGV0ZSBjYWNoZSBmb3IgQ29uZGl0aW9uR2V0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkRlbGV0ZSgKICAgICAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgIEtleSAgPT4gJ0NvbmRpdGlvbkdldDo6Q29uZGl0aW9uSUQ6OicgLiAkQ29uZGl0aW9uSUQsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGRlbGV0ZSBjb25kaXRpb25zIGZyb20gZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnREVMRVRFIEZST00gY2hhbmdlX2NvbmRpdGlvbiAnCiAgICAgICAgICAgIC4gJ1dIRVJFIGNoYW5nZV9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0NoYW5nZUlEfSBdLAogICAgKTsKCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgZm9yIG15ICRLZXkgKAogICAgICAgICdDb25kaXRpb25MaXN0OjpDaGFuZ2VJRDo6JyAuICRQYXJhbXtDaGFuZ2VJRH0gLiAnOjpWYWxpZDo6MCcsCiAgICAgICAgJ0NvbmRpdGlvbkxpc3Q6OkNoYW5nZUlEOjonIC4gJFBhcmFte0NoYW5nZUlEfSAuICc6OlZhbGlkOjoxJywKICAgICAgICApCiAgICB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkRlbGV0ZSgKICAgICAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgIEtleSAgPT4gJEtleSwKICAgICAgICApOwogICAgfQoKICAgICMgdHJpZ2dlciBDb25kaXRpb25EZWxldGVBbGxQb3N0LUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdDb25kaXRpb25EZWxldGVBbGxQb3N0JywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDb25kaXRpb25NYXRjaEV4ZWN1dGVBbGwoKQoKVGhpcyBmdW5jdGlvbnMgZmluZHMgdGhlIHZhbGlkIGNvbmRpdGlvbnMgZm9yIGEgZ2l2ZW4gQ2hhbmdlSUQuIFRoZSBmb3VuZCBjb25kaXRpb25zCmFyZSBoYW5kbGVkIGJ5IGV4ZWN1dGluZyB0aGUgYXNzb2NpYXRlZCBhY3Rpb25zIHdoZW4gYSBjb25kaXRpb24gbWF0Y2hlcy4KVGhlIGNvbmRpdGlvbnMgYXJlIGhhbmRsZWQgaW4gdGhlIG9yZGVyIGRlZmluZWQgYnkgdGhlaXIgbmFtZXMuCgpJbnRlcm5hbGx5LCB0aGUgbWV0aG9kIENvbmRpdGlvbk1hdGNoRXhlY3V0ZSgpIGlzIGNhbGxlZCBmb3IgZWFjaCBvZiB0aGUgZm91bmQgY29uZGl0aW9ucy4KVGhlIG9wdGlvbmFsIHBhcmFtZXRlciAnQXR0cmlidXRlc0NoYW5nZWQnIGlzIHBhc3NlZCBvbiB0byBDb25kaXRpb25NYXRjaEV4ZWN1dGUoKS4KCiAgICBteSAkU3VjY2VzcyA9ICRDb25kaXRpb25PYmplY3QtPkNvbmRpdGlvbk1hdGNoRXhlY3V0ZUFsbCgKICAgICAgICBDaGFuZ2VJRCAgICAgICAgICA9PiAxMjMsCiAgICAgICAgQXR0cmlidXRlc0NoYW5nZWQgPT4geyBJVFNNQ2hhbmdlID0+IFsgQ2hhbmdlVGl0bGUsIENoYW5nZURlc2NyaXB0aW9uXSB9LCAgIyAob3B0aW9uYWwpCiAgICAgICAgRXZlbnQgICAgICAgICAgICAgPT4gJ0NoYW5nZVVwZGF0ZScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgVXNlcklEICAgICAgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQ29uZGl0aW9uTWF0Y2hFeGVjdXRlQWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENoYW5nZUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgYWxsIGNvbmRpdGlvbiBpZHMgZm9yIHRoZSBnaXZlbiBjaGFuZ2UgaWQKICAgIG15ICRDb25kaXRpb25JRHNSZWYgPSAkU2VsZi0+Q29uZGl0aW9uTGlzdCgKICAgICAgICBDaGFuZ2VJRCA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgIFZhbGlkICAgID0+IDEsCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZXJyb3JzCiAgICByZXR1cm4gaWYgISRDb25kaXRpb25JRHNSZWY7CiAgICByZXR1cm4gaWYgcmVmICRDb25kaXRpb25JRHNSZWYgbmUgJ0FSUkFZJzsKCiAgICAjIG5vIGVycm9yIGlmIGp1c3Qgbm8gdmFsaWQgY29uZGl0aW9ucyB3ZXJlIGZvdW5kCiAgICByZXR1cm4gMSBpZiAhQHskQ29uZGl0aW9uSURzUmVmfTsKCiAgICAjIG1hdGNoIGFuZCBleGVjdXRlIGFsbCBjb25kaXRpb25zCiAgICBmb3IgbXkgJENvbmRpdGlvbklEICggQHskQ29uZGl0aW9uSURzUmVmfSApIHsKCiAgICAgICAgIyBtYXRjaCBhbmQgZXhlY3V0ZSBlYWNoIGNvbmRpdGlvbgogICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPkNvbmRpdGlvbk1hdGNoRXhlY3V0ZSgKICAgICAgICAgICAgQ29uZGl0aW9uSUQgICAgICAgPT4gJENvbmRpdGlvbklELAogICAgICAgICAgICBBdHRyaWJ1dGVzQ2hhbmdlZCA9PiAkUGFyYW17QXR0cmlidXRlc0NoYW5nZWR9LAogICAgICAgICAgICBFdmVudCAgICAgICAgICAgICA9PiAkUGFyYW17RXZlbnR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIHdyaXRlIGxvZyBlbnRyeSBidXQgZG8gbm90IHJldHVybgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ29uZGl0aW9uTWF0Y2hFeGVjdXRlIGZvciBDb25kaXRpb25JRCAnJENvbmRpdGlvbklEJyBmYWlsZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDb25kaXRpb25NYXRjaEV4ZWN1dGUoKQoKVGhpcyBmdW5jdGlvbiBtYXRjaGVzIHRoZSBnaXZlbiBjb25kaXRpb24uIFdoZW4gaXQgbWF0Y2hlcyB0aGUgYXNzb2NpYXRlZCBhY3Rpb25zIGFyZQpleGVjdXRlZC4KClRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgJ0F0dHJpYnV0ZXNDaGFuZ2VkJyBkZWZpbmVzIGEgbGlzdCBvZiBhdHRyaWJ1dGVzIHRoYXQgd2VyZSBjaGFuZ2VkCmR1cmluZyBlLmcuIGEgQ2hhbmdlVXBkYXRlLUV2ZW50LiBXaGVuICdBdHRyaWJ1dGVzQ2hhbmdlZCcgaXMgcGFzc2VkLCBpdCBpcyB1c2VkIHRvIHNob3J0Y3V0IHRoZQpleHByZXNzaW9uIGV2YWx1YXRpb24uIE9ubHkgdGhlIGNoYW5nZWQgYXR0cmlidXRlcyBtdXN0IGJlIGNoZWNrZWQuCldoZW4gdGhlIGV4cHJlc3Npb24gY29uanVuY3Rpb24gaXMgJ2FueScgYW5kIG1vcmUgdGhhbiBhIHNpbmdsZSBleHByZXNzaW9uIGlzIHNldCB1cCwKdGhlbiwgZm9yIG9idmlvdXMgcmVhc29ucywgdGhlIHNob3J0Y3V0IGlzIG5vdCB1c2VkLgoKICAgIG15ICRTdWNjZXNzID0gJENvbmRpdGlvbk9iamVjdC0+Q29uZGl0aW9uTWF0Y2hFeGVjdXRlKAogICAgICAgIENvbmRpdGlvbklEICAgICAgID0+IDEyMywKICAgICAgICBBdHRyaWJ1dGVzQ2hhbmdlZCA9PiB7IElUU01DaGFuZ2UgPT4gWyBDaGFuZ2VUaXRsZSwgQ2hhbmdlRGVzY3JpcHRpb25dIH0sICAjIChvcHRpb25hbCkKICAgICAgICBFdmVudCAgICAgICAgICAgICA9PiAnQ2hhbmdlVXBkYXRlJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBDb25kaXRpb25NYXRjaEV4ZWN1dGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoQ29uZGl0aW9uSUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBjb25kaXRpb24gZGF0YQogICAgbXkgJENvbmRpdGlvbkRhdGEgPSAkU2VsZi0+Q29uZGl0aW9uR2V0KAogICAgICAgIENvbmRpdGlvbklEID0+ICRQYXJhbXtDb25kaXRpb25JRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZXJyb3IKICAgIHJldHVybiBpZiAhJENvbmRpdGlvbkRhdGE7CgogICAgIyBnZXQgYWxsIGV4cHJlc3Npb25zIGZvciB0aGUgZ2l2ZW4gY29uZGl0aW9uIGlkCiAgICBteSAkRXhwcmVzc2lvbklEc1JlZiA9ICRTZWxmLT5FeHByZXNzaW9uTGlzdCgKICAgICAgICBDb25kaXRpb25JRCA9PiAkUGFyYW17Q29uZGl0aW9uSUR9LAogICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGVycm9ycwogICAgcmV0dXJuIGlmICEkRXhwcmVzc2lvbklEc1JlZjsKICAgIHJldHVybiBpZiByZWYgJEV4cHJlc3Npb25JRHNSZWYgbmUgJ0FSUkFZJzsKCiAgICAjIG5vIGVycm9yIGlmIGp1c3Qgbm8gZXhwcmVzc2lvbnMgd2VyZSBmb3VuZAogICAgcmV0dXJuIDEgaWYgIUB7JEV4cHJlc3Npb25JRHNSZWZ9OwoKICAgICMgY291bnQgdGhlIG51bWJlciBvZiBleHByZXNzaW9uIGlkcwogICAgbXkgJEV4cHJlc3Npb25JRENvdW50ID0gc2NhbGFyIEB7JEV4cHJlc3Npb25JRHNSZWZ9OwoKICAgICMgZ2V0IGFsbCBhY3Rpb25zIGZvciB0aGUgZ2l2ZW4gY29uZGl0aW9uIGlkCiAgICBteSAkQWN0aW9uSURzUmVmID0gJFNlbGYtPkFjdGlvbkxpc3QoCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBlcnJvcnMKICAgIHJldHVybiBpZiAhJEFjdGlvbklEc1JlZjsKICAgIHJldHVybiBpZiByZWYgJEFjdGlvbklEc1JlZiBuZSAnQVJSQVknOwoKICAgICMgbm8gZXJyb3IgaWYganVzdCBubyBhY3Rpb25zIHdlcmUgZm91bmQKICAgIHJldHVybiAxIGlmICFAeyRBY3Rpb25JRHNSZWZ9OwoKICAgICMgdG8gc3RvcmUgdGhlIG51bWJlciBvZiBwb3NpdGl2ZSAodHJ1ZSkgZXhwcmVzc2lvbnMKICAgIG15IEBFeHByZXNzaW9uTWF0Y2hSZXN1bHQ7CgogICAgIyB0byBzdG9yZSBpZiB0aGUgY29uZGl0aW9uIG1hdGNoZXMKICAgIG15ICRDb25kaXRpb25NYXRjaDsKCiAgICAjIG5vcm1hbGx5IGdpdmUgdGhlIGxpc3Qgb2YgY2hhbmdlZCBhdHRyaWJ1dGVzIHRvIEV4cHJlc3Npb25NYXRjaCgpIGZ1bmN0aW9uCiAgICBteSAkQXR0cmlidXRlc0NoYW5nZWQgPSAkUGFyYW17QXR0cmlidXRlc0NoYW5nZWR9OwoKICAgICMgZXhwcmVzc2lvbiBjb25qdW5jdGlvbiBpcyAnYWxsJyBhbmQgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBleHByZXNpb24KICAgIGlmICggJENvbmRpdGlvbkRhdGEtPntFeHByZXNzaW9uQ29uanVuY3Rpb259IGVxICdhbGwnICYmICRFeHByZXNzaW9uSURDb3VudCA+IDEgKSB7CgogICAgICAgICMgZG8gbm90IGdpdmUgdGhlIGxpc3Qgb2YgY2hhbmdlZCBhdHRyaWJ1dGVzIHRvIEV4cHJlc3Npb25NYXRjaCgpCiAgICAgICAgJEF0dHJpYnV0ZXNDaGFuZ2VkID0gdW5kZWY7CiAgICB9CgogICAgIyB0cnkgdG8gbWF0Y2ggZWFjaCBleHByZXNzaW9uCiAgICBFWFBSRVNTSU9OSUQ6CiAgICBmb3IgbXkgJEV4cHJlc3Npb25JRCAoIEB7JEV4cHJlc3Npb25JRHNSZWZ9ICkgewoKICAgICAgICAjIG1hdGNoIGV4cHJlc3Npb24KICAgICAgICBteSAkRXhwcmVzc2lvbk1hdGNoID0gJFNlbGYtPkV4cHJlc3Npb25NYXRjaCgKICAgICAgICAgICAgRXhwcmVzc2lvbklEICAgICAgPT4gJEV4cHJlc3Npb25JRCwKICAgICAgICAgICAgQXR0cmlidXRlc0NoYW5nZWQgPT4gJEF0dHJpYnV0ZXNDaGFuZ2VkLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApIHx8IDA7CgogICAgICAgICMgc2V0IENvbmRpdGlvbk1hdGNoIHRydWUgaWYgRXhwcmVzc2lvbk1hdGNoIGlzIHRydWUgYW5kICdhbnknIGlzIHJlcXVlc3RlZAogICAgICAgIGlmICggJENvbmRpdGlvbkRhdGEtPntFeHByZXNzaW9uQ29uanVuY3Rpb259IGVxICdhbnknICYmICRFeHByZXNzaW9uTWF0Y2ggKSB7CiAgICAgICAgICAgICRDb25kaXRpb25NYXRjaCA9IDE7CiAgICAgICAgICAgIGxhc3QgRVhQUkVTU0lPTklEOwogICAgICAgIH0KCiAgICAgICAgIyBjb25kaXRpb24gaXMgZmFsc2UgYXQgYWxsLCBubyBhY3Rpb24gd2lsbCBiZSBleGVjdGVkLCB3ZSBqdXN0IHJldHVybiB0cnVlCiAgICAgICAgaWYgKCAkQ29uZGl0aW9uRGF0YS0+e0V4cHJlc3Npb25Db25qdW5jdGlvbn0gZXEgJ2FsbCcgJiYgISRFeHByZXNzaW9uTWF0Y2ggKSB7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KCiAgICAgICAgIyBzYXZlIGN1cnJlbnQgZXhwcmVzc2lvbiBtYXRjaCByZXN1bHQgZm9yIGxhdGVyIGNoZWNrcwogICAgICAgIHB1c2ggQEV4cHJlc3Npb25NYXRjaFJlc3VsdCwgJEV4cHJlc3Npb25NYXRjaDsKICAgIH0KCiAgICAjIGNvdW50IGFsbCByZXN1bHRzIHdoaWNoIGhhdmUgYSB0cnVlIHZhbHVlCiAgICBteSAkVHJ1ZUNvdW50ID0gc2NhbGFyIGdyZXAgeyAkXyA9PSAxIH0gQEV4cHJlc3Npb25NYXRjaFJlc3VsdDsKCiAgICAjIGlmIHRoZSBjb25kaXRpb24gZGlkIG5vdCBtYXRjaCBhbHJlYWR5LCBhbmQgbm90IGFsbCBleHByZXNzaW9ucyBhcmUgdHJ1ZQogICAgaWYgKCAhJENvbmRpdGlvbk1hdGNoICYmICRUcnVlQ291bnQgIT0gJEV4cHJlc3Npb25JRENvdW50ICkgewoKICAgICAgICAjIG5vIGVycm9yOiBpZiBqdXN0IHRoZSBjb25kaXRpb24gZGlkIG5vdCBtYXRjaCwKICAgICAgICAjIHRoZXJlIGlzIG5vIG5lZWQgdG8gZXhlY3V0ZSBhbnkgYWN0aW9ucwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgZXhlY3V0ZSBhbGwgYWN0aW9ucyBvZiB0aGlzIGNvbmRpdGlvbgogICAgQUNUSU9OSUQ6CiAgICBmb3IgbXkgJEFjdGlvbklEICggQHskQWN0aW9uSURzUmVmfSApIHsKCiAgICAgICAgIyBleGVjdXRlIGVhY2ggYWN0aW9uCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+QWN0aW9uRXhlY3V0ZSgKICAgICAgICAgICAgQWN0aW9uSUQgPT4gJEFjdGlvbklELAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGVycm9yOiBpZiBBY3Rpb25FeGVjdXRlKCkgcmV0dXJucyB1bmRlZmluZWQgaXQgaXMgYW4gZXJyb3IsCiAgICAgICAgIyAxIG1lYW5zIGFuIGFjdGlvbiB3YXMgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5LCBhbmQgMCBtZWFucyBpdCB3YXMgYSAiTG9jayItQWN0aW9uLAogICAgICAgICMgd2hpY2ggaXMgbm8gZXJyb3IsIGFuZCBzaG91bGQgdGhlcmVmb3JlIG5vdCBiZSBsb2dnZWQuCiAgICAgICAgaWYgKCAhZGVmaW5lZCAkU3VjY2VzcyApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkFjdGlvbklEICckQWN0aW9uSUQnIGNvdWxkIG5vdCBiZSBleGVjdXRlZCBzdWNjZXNzZnVsbHkgIgogICAgICAgICAgICAgICAgICAgIC4gImZvciBDb25kaXRpb25JRCAnJFBhcmFte0NvbmRpdGlvbklEfScgKENvbmRpdGlvbiBuYW1lOiAnJENvbmRpdGlvbkRhdGEtPntOYW1lfScpICIKICAgICAgICAgICAgICAgICAgICAuICJvbiBDaGFuZ2VJRCAnJENvbmRpdGlvbkRhdGEtPntDaGFuZ2VJRH0nIGZvciBldmVudCAnJFBhcmFte0V2ZW50fScuIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDb25kaXRpb25NYXRjaFN0YXRlTG9jaygpCgogICAgbXkgJFN1Y2Nlc3MgPSAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25NYXRjaFN0YXRlTG9jaygKICAgICAgICBPYmplY3ROYW1lID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBTZWxlY3RvciAgID0+IDIzNCwKICAgICAgICBTdGF0ZUlEICAgID0+IDEyMywKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIENvbmRpdGlvbk1hdGNoU3RhdGVMb2NrIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE9iamVjdE5hbWUgU2VsZWN0b3IgU3RhdGVJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGlkIG9mIG9iamVjdAogICAgbXkgJE9iamVjdElEID0gJFNlbGYtPk9iamVjdExvb2t1cCgKICAgICAgICBOYW1lICAgPT4gJFBhcmFte09iamVjdE5hbWV9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBlcnJvcgogICAgcmV0dXJuIGlmICEkT2JqZWN0SUQ7CgogICAgIyBnZXQgaWQgb2Ygb3BlcmF0b3I7CiAgICBteSAkT3BlcmF0b3JOYW1lID0gJ2xvY2snOwogICAgbXkgJE9wZXJhdG9ySUQgICA9ICRTZWxmLT5PcGVyYXRvckxvb2t1cCgKICAgICAgICBOYW1lICAgPT4gJE9wZXJhdG9yTmFtZSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZXJyb3IKICAgIHJldHVybiBpZiAhJE9wZXJhdG9ySUQ7CgogICAgIyBnZXQgY29uZGl0aW9ucwogICAgbXkgJENvbmRpdGlvbnMgPSAkU2VsZi0+X0NvbmRpdGlvbkxpc3RCeU9iamVjdCgKICAgICAgICBPYmplY3ROYW1lID0+ICRQYXJhbXtPYmplY3ROYW1lfSwKICAgICAgICBTZWxlY3RvciAgID0+ICRQYXJhbXtTZWxlY3Rvcn0sCiAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICkgfHwgW107CgogICAgIyBjaGVjayBlcnJvcgogICAgcmV0dXJuIGlmICFAeyRDb25kaXRpb25zfTsKCiAgICAjIGdldCBhbGwgYWN0aW9ucyBhZmZlY3RpbmcgdGhpcyBvYmplY3QKICAgIG15IEBBZmZlY3RlZENvbmRpdGlvbklEczsKICAgIENPTkRJVElPTklEOgogICAgZm9yIG15ICRDb25kaXRpb25JRCAoIEB7JENvbmRpdGlvbnN9ICkgewoKICAgICAgICAjIGdldCBhY3Rpb25zIGZvciB0aGlzIGNvbmRpdGlvbgogICAgICAgIG15ICRBY3Rpb25JRHNSZWYgPSAkU2VsZi0+QWN0aW9uTGlzdCgKICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJENvbmRpdGlvbklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApIHx8IFtdOwoKICAgICAgICAjIGNoZWNrIGFjdGlvbnMKICAgICAgICBuZXh0IENPTkRJVElPTklEIGlmICFAeyRBY3Rpb25JRHNSZWZ9OwoKICAgICAgICAjIGNoZWNrIGZvciBhY3Rpb25zCiAgICAgICAgQUNUSU9OSUQ6CiAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoIEB7JEFjdGlvbklEc1JlZn0gKSB7CgogICAgICAgICAgICAjIGdldCBhY3Rpb24KICAgICAgICAgICAgbXkgJEFjdGlvbiA9ICRTZWxmLT5BY3Rpb25HZXQoCiAgICAgICAgICAgICAgICBBY3Rpb25JRCA9PiAkQWN0aW9uSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hlY2sgYWN0aW9uCiAgICAgICAgICAgIG5leHQgQUNUSU9OSUQgaWYgISRBY3Rpb247CgogICAgICAgICAgICAjIHN0b3JlIG9ubHkgYWZmZWN0ZWQgYWN0aW9ucwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkQWN0aW9uLT57T2JqZWN0SUR9IGVxICRPYmplY3RJRAogICAgICAgICAgICAgICAgJiYgJEFjdGlvbi0+e09wZXJhdG9ySUR9IGVxICRPcGVyYXRvcklECiAgICAgICAgICAgICAgICAmJiAoCiAgICAgICAgICAgICAgICAgICAgJEFjdGlvbi0+e1NlbGVjdG9yfSBlcSAkUGFyYW17U2VsZWN0b3J9CiAgICAgICAgICAgICAgICAgICAgfHwgJEFjdGlvbi0+e1NlbGVjdG9yfSBlcSAnYWxsJwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgJiYgJEFjdGlvbi0+e0FjdGlvblZhbHVlfSBlcSAkUGFyYW17U3RhdGVJRH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHVzaCBAQWZmZWN0ZWRDb25kaXRpb25JRHMsICRBY3Rpb24tPntDb25kaXRpb25JRH07CgogICAgICAgICAgICAgICAgIyBmb3VuZCBhIGNvbmRpdGlvbiB3aXRoIGFuIGFmZmVjdGVkIGFjdGlvbgogICAgICAgICAgICAgICAgIyBzbyB3ZSBjYW4gbW92ZSBvbiB0byB0aGUgbmV4dCBjb25kaXRpb24KICAgICAgICAgICAgICAgIG5leHQgQ09ORElUSU9OSUQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBmb3IgYWZmZWN0ZWQgY29uZGl0aW9ucwogICAgcmV0dXJuIGlmICFAQWZmZWN0ZWRDb25kaXRpb25JRHM7CgogICAgIyBjaGVjayBmb3IgcG9zaXRpdmUgY29uZGl0aW9uIG1hdGNoZXMKICAgIEFGRkVDVEVEQ09ORElUSU9OSUQ6CiAgICBmb3IgbXkgJEFmZmVjdGVkQ29uZGl0aW9uSUQgKEBBZmZlY3RlZENvbmRpdGlvbklEcykgewoKICAgICAgICAjIGdldCBjb25kaXRpb24gbWF0Y2gKICAgICAgICBteSAkQ29uZGl0aW9uTWF0Y2ggPSAkU2VsZi0+X0NvbmRpdGlvbk1hdGNoKAogICAgICAgICAgICBDb25kaXRpb25JRCA9PiAkQWZmZWN0ZWRDb25kaXRpb25JRCwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBBRkZFQ1RFRENPTkRJVElPTklEIGlmICEkQ29uZGl0aW9uTWF0Y2g7CgogICAgICAgICMgY29uZGl0aW9uIG1hdGNoZWQgc3VjY2Vzc2Z1bGx5CiAgICAgICAgcmV0dXJuIDEgaWYgJENvbmRpdGlvbk1hdGNoOwogICAgfQoKICAgICMgbm8gY29uZGl0aW9uIG1hdGNoZWQKICAgIHJldHVybjsKfQoKPWhlYWQyIENvbmRpdGlvbkNvbXBhcmVWYWx1ZUZpZWxkVHlwZSgpCgpSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBjb21wYXJlIHZhbHVlIGZpZWxkIGFzIHN0cmluZywgYmFzZWQgb24gdGhlIGdpdmVuIG9iamVjdCBpZCBhbmQgYXR0cmlidXRlIGlkLgoKICAgIG15ICRGaWVsZFR5cGUgPSAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25Db21wYXJlVmFsdWVGaWVsZFR5cGUoCiAgICAgICAgT2JqZWN0SUQgICAgPT4gMTIzNCwKICAgICAgICBBdHRyaWJ1dGVJRCA9PiA1LAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKUmV0dXJucyAnVGV4dCcgb3IgJ1NlbGVjdGlvbicgb3IgJ0RhdGUnLgoKQzxUT0RPPjogQWRkICdBdXRvY29tcGxldGUnIHR5cGUgZm9yIENoYW5nZUJ1aWxkZXIsIENoYW5nZU1hbmFnZXIsIFdvcmtPcmRlckFnZW50LCBldGMuLi4KCj1jdXQKCnN1YiBDb25kaXRpb25Db21wYXJlVmFsdWVGaWVsZFR5cGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoT2JqZWN0SUQgQXR0cmlidXRlSUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGxvb2t1cCBvYmplY3QgbmFtZQogICAgbXkgJE9iamVjdE5hbWUgPSAkU2VsZi0+T2JqZWN0TG9va3VwKAogICAgICAgIE9iamVjdElEID0+ICRQYXJhbXtPYmplY3RJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZXJyb3IKICAgIGlmICggISRPYmplY3ROYW1lICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiT2JqZWN0SUQgJFBhcmFte09iamVjdElEfSBkb2VzIG5vdCBleGlzdCEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgbG9va3VwIGF0dHJpYnV0ZSBuYW1lCiAgICBteSAkQXR0cmlidXRlTmFtZSA9ICRTZWxmLT5BdHRyaWJ1dGVMb29rdXAoCiAgICAgICAgQXR0cmlidXRlSUQgPT4gJFBhcmFte0F0dHJpYnV0ZUlEfSwKICAgICk7CgogICAgIyBjaGVjayBlcnJvcgogICAgaWYgKCAhJEF0dHJpYnV0ZU5hbWUgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJBdHRyaWJ1dGVJRCAkUGFyYW17QXR0cmlidXRlSUR9IGRvZXMgbm90IGV4aXN0ISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgdGhlIGZpZWxkIHR5cGUgY29uZmlnIGZvciB0aGUgZ2l2ZW4gb2JqZWN0CiAgICBteSAkQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCAkT2JqZWN0TmFtZSAuICc6OkF0dHJpYnV0ZTo6Q29tcGFyZVZhbHVlOjpGaWVsZFR5cGUnICk7CgogICAgIyBjaGVjayBlcnJvcgogICAgcmV0dXJuIGlmICEkQ29uZmlnOwoKICAgICMgcmVtb3ZlIHRoZSBuYW1lIHBhcnQgb2YgdGhlIGR5bmFtaWMgZmllbGQgYW5kIHJlcGxhY2Ugb25seSB3aXRoIHRoZSBzdHJpbmcgIkR5bmFtaWNGaWVsZCIKICAgICRBdHRyaWJ1dGVOYW1lID1+IHN7IFxBIER5bmFtaWNGaWVsZF8gKFx3KykgfXtEeW5hbWljRmllbGR9eG1zOwoKICAgICMgZ2V0IHRoZSBmaWVsZCB0eXBlIGZvciB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9yIHJldHVybiB0aGUgZGVmYXVsdCBmaWVsZCB0eXBlICdTZWxlY3Rpb24nCiAgICBteSAkRmllbGRUeXBlID0gJENvbmZpZy0+eyRBdHRyaWJ1dGVOYW1lfSB8fCAnU2VsZWN0aW9uJzsKCiAgICByZXR1cm4gJEZpZWxkVHlwZTsKfQoKPWhlYWQyIENvbmRpdGlvbkxpc3RCeU9iamVjdFR5cGUoKQoKUmV0dXJuIGEgbGlzdCBvZiBhbGwgY29uZGl0aW9ucyBpZHMgb2YgYSBnaXZlbiBjaGFuZ2UgaWQgYXMgYXJyYXkgcmVmZXJlbmNlLgpPbmx5IHRoZSBpZHMgb2YgYSBjb25kaXRpb24gYXJlIHJldHVybmVkIHdoZXJlIG9iamVjdCB0eXBlIGFuZCBpZGVudGlmaWVyIGFyZSBtYXRjaGluZy4KCiAgICBteSAkQ29uZGl0aW9uSURzUmVmID0gJENvbmRpdGlvbk9iamVjdC0+Q29uZGl0aW9uTGlzdEJ5T2JqZWN0VHlwZSgKICAgICAgICBPYmplY3RUeXBlID0+ICdJVFNNV29ya09yZGVyJwogICAgICAgIFNlbGVjdG9yICAgPT4gMTIzNCwKICAgICAgICBDaGFuZ2VJRCAgID0+IDUsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBDb25kaXRpb25MaXN0QnlPYmplY3RUeXBlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE9iamVjdFR5cGUgU2VsZWN0b3IgQ2hhbmdlSUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBjb25kaXRpb25zIG9mIGNoYW5nZQogICAgbXkgJENoYW5nZUNvbmRpdGlvbnMgPSAkU2VsZi0+Q29uZGl0aW9uTGlzdCgKICAgICAgICBDaGFuZ2VJRCA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIFZhbGlkICAgID0+IDAsCiAgICApOwoKICAgICMgY2hlY2sgY29uZGl0aW9ucwogICAgcmV0dXJuIGlmICEkQ2hhbmdlQ29uZGl0aW9uczsKCiAgICAjIGdldCBleHByZXNzaW9ucyBvZiBjb25kaXRpb25zCiAgICBteSAlQ29uZGl0aW9uRXhwcmVzc2lvbiA9IG1hcCB7CiAgICAgICAgJF8gPT4gJFNlbGYtPkV4cHJlc3Npb25MaXN0KAogICAgICAgICAgICBDb25kaXRpb25JRCA9PiAkXywKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKSB8fCBbXQogICAgfSBAeyRDaGFuZ2VDb25kaXRpb25zfTsKCiAgICAjIGdldCBhY3Rpb25zIG9mIGNvbmRpdGlvbnMKICAgIG15ICVDb25kaXRpb25BY3Rpb24gPSBtYXAgewogICAgICAgICRfID0+ICRTZWxmLT5BY3Rpb25MaXN0KAogICAgICAgICAgICBDb25kaXRpb25JRCA9PiAkXywKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKSB8fCBbXQogICAgfSBAeyRDaGFuZ2VDb25kaXRpb25zfTsKCiAgICAjIGdldCBvYmplY3QgaWQgb2Ygb2JqZWN0IHR5cGUKICAgIG15ICRPYmplY3RJRCA9ICRTZWxmLT5PYmplY3RMb29rdXAoCiAgICAgICAgTmFtZSAgID0+ICRQYXJhbXtPYmplY3RUeXBlfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgb2JqZWN0IGlkCiAgICByZXR1cm4gaWYgISRPYmplY3RJRDsKCiAgICAjIGdldCBvbmx5IGFmZmVjdGVkIHVuaXF1ZSBjb25kaXRpb24gaWQKICAgIG15IEBBZmZlY3RlZENvbmRpdGlvbklEczsKICAgIENPTkRJVElPTklEOgogICAgZm9yIG15ICRDb25kaXRpb25JRCAoIHNvcnQga2V5cyAlQ29uZGl0aW9uRXhwcmVzc2lvbiApIHsKCiAgICAgICAgIyBjaGVjayBleHByZXNzaW9uIGZvciB0aGlzIHdvcmtvcmRlcgogICAgICAgIEVYUFJFU1NJT05JRDoKICAgICAgICBmb3IgbXkgJEV4cHJlc3Npb25JRCAoIEB7ICRDb25kaXRpb25FeHByZXNzaW9ueyRDb25kaXRpb25JRH0gfSApIHsKCiAgICAgICAgICAgICMgZ2V0IGV4cHJlc3Npb24KICAgICAgICAgICAgbXkgJEV4cHJlc3Npb24gPSAkU2VsZi0+RXhwcmVzc2lvbkdldCgKICAgICAgICAgICAgICAgIEV4cHJlc3Npb25JRCA9PiAkRXhwcmVzc2lvbklELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBjaGVjayBleHByZXNzaW9uCiAgICAgICAgICAgIG5leHQgRVhQUkVTU0lPTklEIGlmICEkRXhwcmVzc2lvbjsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHNlbGVjdG9yCiAgICAgICAgICAgIG5leHQgRVhQUkVTU0lPTklEIGlmICRFeHByZXNzaW9uLT57U2VsZWN0b3J9IG5lICRQYXJhbXtTZWxlY3Rvcn07CgogICAgICAgICAgICAjIGNoZWNrIGZvciBvYmplY3QgdHlwZQogICAgICAgICAgICBuZXh0IEVYUFJFU1NJT05JRCBpZiAkRXhwcmVzc2lvbi0+e09iamVjdElEfSBuZSAkT2JqZWN0SUQ7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHRoaXMgY29uZGl0aW9ucyBpcyBhbHJlYWR5IG9uIHN0YWNrCiAgICAgICAgICAgIGlmICggIWdyZXAgeyAkXyBlcSAkQ29uZGl0aW9uSUQgfSBAQWZmZWN0ZWRDb25kaXRpb25JRHMgKSB7CgogICAgICAgICAgICAgICAgIyB0aGlzIGV4cHJlc3Npb24gaXMgdmFsaWQKICAgICAgICAgICAgICAgIHB1c2ggQEFmZmVjdGVkQ29uZGl0aW9uSURzLCAkQ29uZGl0aW9uSUQ7CgogICAgICAgICAgICAgICAgIyBqdW1wIHRvIG5leHQgY29uZGl0aW9uCiAgICAgICAgICAgICAgICBuZXh0IENPTkRJVElPTklEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIENPTkRJVElPTklEOgogICAgZm9yIG15ICRDb25kaXRpb25JRCAoIHNvcnQga2V5cyAlQ29uZGl0aW9uQWN0aW9uICkgewoKICAgICAgICAjIGNoZWNrIGFjdGlvbiBmb3IgdGhpcyB3b3Jrb3JkZXIKICAgICAgICBBQ1RJT05JRDoKICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggQHsgJENvbmRpdGlvbkFjdGlvbnskQ29uZGl0aW9uSUR9IH0gKSB7CgogICAgICAgICAgICAjIGdldCBhY3Rpb24KICAgICAgICAgICAgbXkgJEFjdGlvbiA9ICRTZWxmLT5BY3Rpb25HZXQoCiAgICAgICAgICAgICAgICBBY3Rpb25JRCA9PiAkQWN0aW9uSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hlY2sgZXhwcmVzc2lvbgogICAgICAgICAgICBuZXh0IEFDVElPTklEIGlmICEkQWN0aW9uOwoKICAgICAgICAgICAgIyBjaGVjayBmb3Igc2VsZWN0b3IKICAgICAgICAgICAgbmV4dCBBQ1RJT05JRCBpZiAkQWN0aW9uLT57U2VsZWN0b3J9IG5lICRQYXJhbXtTZWxlY3Rvcn07CgogICAgICAgICAgICAjIGNoZWNrIGZvciBvYmplY3QgdHlwZQogICAgICAgICAgICBuZXh0IEFDVElPTklEIGlmICRBY3Rpb24tPntPYmplY3RJRH0gbmUgJE9iamVjdElEOwoKICAgICAgICAgICAgIyBjaGVjayBpZiB0aGlzIGNvbmRpdGlvbnMgaXMgYWxyZWFkeSBvbiBzdGFjawogICAgICAgICAgICBpZiAoICFncmVwIHsgJF8gZXEgJENvbmRpdGlvbklEIH0gQEFmZmVjdGVkQ29uZGl0aW9uSURzICkgewoKICAgICAgICAgICAgICAgICMgdGhpcyBleHByZXNzaW9uIGlzIHZhbGlkCiAgICAgICAgICAgICAgICBwdXNoIEBBZmZlY3RlZENvbmRpdGlvbklEcywgJENvbmRpdGlvbklEOwoKICAgICAgICAgICAgICAgICMganVtcCB0byBuZXh0IGNvbmRpdGlvbgogICAgICAgICAgICAgICAgbmV4dCBDT05ESVRJT05JRDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXEBBZmZlY3RlZENvbmRpdGlvbklEczsKfQoKPWhlYWQxIFBSSVZBVEUgSU5URVJGQUNFCgo9aGVhZDIgX0NvbmRpdGlvbk1hdGNoKCkKClRoaXMgZnVuY3Rpb24gbWF0Y2hlcyB0aGUgZ2l2ZW4gY29uZGl0aW9uIGFuZCBleGVjdXRlcyAnbm8nIGFjdGlvbnMuClRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgJ0F0dHJpYnV0ZXNDaGFuZ2VkJyBkZWZpbmVzIGEgbGlzdCBvZiBhdHRyaWJ1dGVzIHRoYXQgd2VyZSBjaGFuZ2VkCmR1cmluZyBlLmcuIGEgQ2hhbmdlVXBkYXRlLUV2ZW50LiBJZiBhIGNvbmRpdGlvbiBtYXRjaGVzIGFuIGV4cHJlc3Npb24sIHRoZSBhdHRyaWJ1dGUgb2YgdGhlIGV4cHJlc3Npb24KbXVzdCBiZSBsaXN0ZWQgaW4gJ0F0dHJpYnV0ZXNDaGFuZ2VkJy4KCiAgICBteSAkU3VjY2VzcyA9ICRDb25kaXRpb25PYmplY3QtPl9Db25kaXRpb25NYXRjaCgKICAgICAgICBDb25kaXRpb25JRCAgICAgICA9PiAxMjMsCiAgICAgICAgQXR0cmlidXRlc0NoYW5nZWQgPT4geyBJVFNNQ2hhbmdlID0+IFsgQ2hhbmdlVGl0bGUsIENoYW5nZURlc2NyaXB0aW9uXSB9LCAgIyAob3B0aW9uYWwpCiAgICAgICAgVXNlcklEICAgICAgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgX0NvbmRpdGlvbk1hdGNoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENvbmRpdGlvbklEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgY29uZGl0aW9uIGRhdGEKICAgIG15ICRDb25kaXRpb25EYXRhID0gJFNlbGYtPkNvbmRpdGlvbkdldCgKICAgICAgICBDb25kaXRpb25JRCA9PiAkUGFyYW17Q29uZGl0aW9uSUR9LAogICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGVycm9yCiAgICByZXR1cm4gaWYgISRDb25kaXRpb25EYXRhOwoKICAgICMgZ2V0IGFsbCBleHByZXNzaW9ucyBmb3IgdGhlIGdpdmVuIGNvbmRpdGlvbiBpZAogICAgbXkgJEV4cHJlc3Npb25JRHNSZWYgPSAkU2VsZi0+RXhwcmVzc2lvbkxpc3QoCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBlcnJvcnMKICAgIHJldHVybiBpZiAhJEV4cHJlc3Npb25JRHNSZWY7CiAgICByZXR1cm4gaWYgcmVmICRFeHByZXNzaW9uSURzUmVmIG5lICdBUlJBWSc7CgogICAgIyBubyBlcnJvciBpZiBqdXN0IG5vIGV4cHJlc3Npb25zIHdlcmUgZm91bmQKICAgIHJldHVybiAwIGlmICFAeyRFeHByZXNzaW9uSURzUmVmfTsKCiAgICAjIGNvdW50IHRoZSBudW1iZXIgb2YgZXhwcmVzc2lvbiBpZHMKICAgIG15ICRFeHByZXNzaW9uSURDb3VudCA9IHNjYWxhciBAeyRFeHByZXNzaW9uSURzUmVmfTsKCiAgICAjIHRvIHN0b3JlIHRoZSBudW1iZXIgb2YgcG9zaXRpdmUgKHRydWUpIGV4cHJlc3Npb25zCiAgICBteSBARXhwcmVzc2lvbk1hdGNoUmVzdWx0OwoKICAgICMgdG8gc3RvcmUgaWYgdGhlIGNvbmRpdGlvbiBtYXRjaGVzCiAgICBteSAkQ29uZGl0aW9uTWF0Y2g7CgogICAgIyB0cnkgdG8gbWF0Y2ggZWFjaCBleHByZXNzaW9uCiAgICBFWFBSRVNTSU9OSUQ6CiAgICBmb3IgbXkgJEV4cHJlc3Npb25JRCAoIEB7JEV4cHJlc3Npb25JRHNSZWZ9ICkgewoKICAgICAgICAjIG5vcm1hbGx5IGdpdmUgdGhlIGxpc3Qgb2YgY2hhbmdlZCBhdHRyaWJ1dGVzIHRvIEV4cHJlc3Npb25NYXRjaCgpIGZ1bmN0aW9uCiAgICAgICAgbXkgJEF0dHJpYnV0ZXNDaGFuZ2VkID0gJFBhcmFte0F0dHJpYnV0ZXNDaGFuZ2VkfTsKCiAgICAgICAgIyBleHByZXNzaW9uIGNvbmp1bmN0aW9uIGlzICdhbGwnIGFuZCB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGV4cHJlc2lvbgogICAgICAgIGlmICggJENvbmRpdGlvbkRhdGEtPntFeHByZXNzaW9uQ29uanVuY3Rpb259IGVxICdhbGwnICYmICRFeHByZXNzaW9uSURDb3VudCA+IDEgKSB7CgogICAgICAgICAgICAjIGRvIG5vdCBnaXZlIHRoZSBsaXN0IG9mIGNoYW5nZWQgYXR0cmlidXRlcyB0byBFeHByZXNzaW9uTWF0Y2goKQogICAgICAgICAgICAkQXR0cmlidXRlc0NoYW5nZWQgPSB1bmRlZjsKICAgICAgICB9CgogICAgICAgICMgbWF0Y2ggZXhwcmVzc2lvbgogICAgICAgIG15ICRFeHByZXNzaW9uTWF0Y2ggPSAkU2VsZi0+RXhwcmVzc2lvbk1hdGNoKAogICAgICAgICAgICBFeHByZXNzaW9uSUQgICAgICA9PiAkRXhwcmVzc2lvbklELAogICAgICAgICAgICBBdHRyaWJ1dGVzQ2hhbmdlZCA9PiAkQXR0cmlidXRlc0NoYW5nZWQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICkgfHwgMDsKCiAgICAgICAgIyBzZXQgQ29uZGl0aW9uTWF0Y2ggdHJ1ZSBpZiBFeHByZXNzaW9uTWF0Y2ggaXMgdHJ1ZSBhbmQgJ2FueScgaXMgcmVxdWVzdGVkCiAgICAgICAgaWYgKCAkQ29uZGl0aW9uRGF0YS0+e0V4cHJlc3Npb25Db25qdW5jdGlvbn0gZXEgJ2FueScgJiYgJEV4cHJlc3Npb25NYXRjaCApIHsKICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgfQoKICAgICAgICAjIGNvbmRpdGlvbiBpcyBmYWxzZSBhdCBhbGwsIHNvIHJldHVybiB0cnVlCiAgICAgICAgaWYgKCAkQ29uZGl0aW9uRGF0YS0+e0V4cHJlc3Npb25Db25qdW5jdGlvbn0gZXEgJ2FsbCcgJiYgISRFeHByZXNzaW9uTWF0Y2ggKSB7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KCiAgICAgICAgIyBzYXZlIGN1cnJlbnQgZXhwcmVzc2lvbiBtYXRjaCByZXN1bHQgZm9yIGxhdGVyIGNoZWNrcwogICAgICAgIHB1c2ggQEV4cHJlc3Npb25NYXRjaFJlc3VsdCwgJEV4cHJlc3Npb25NYXRjaDsKICAgIH0KCiAgICAjIGNvdW50IGFsbCByZXN1bHRzIHdoaWNoIGhhdmUgYSB0cnVlIHZhbHVlCiAgICBteSAkVHJ1ZUNvdW50ID0gc2NhbGFyIGdyZXAgeyAkXyA9PSAxIH0gQEV4cHJlc3Npb25NYXRjaFJlc3VsdDsKCiAgICAjIGlmIHRoZSBjb25kaXRpb24gZGlkIG5vdCBtYXRjaCBhbHJlYWR5LCBhbmQgbm90IGFsbCBleHByZXNzaW9ucyBhcmUgdHJ1ZQogICAgaWYgKCAhJENvbmRpdGlvbk1hdGNoICYmICRUcnVlQ291bnQgIT0gJEV4cHJlc3Npb25JRENvdW50ICkgewoKICAgICAgICAjIG5vdCBhbGwgZXhwcmVzc2lvbnMgaGF2ZSBtYXRjaGVkCiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfQ29uZGl0aW9uTGlzdEJ5T2JqZWN0KCkKCnJldHVybiBhIGxpc3Qgb2YgYWxsIGNvbmRpdGlvbnMgaWRzIG9mIGEgZ2l2ZW4gb2JqZWN0LgoKICAgIG15ICRDb25kaXRpb25JRHNSZWYgPSAkQ29uZGl0aW9uT2JqZWN0LT5fQ29uZGl0aW9uTGlzdEJ5T2JqZWN0KAogICAgICAgIE9iamVjdE5hbWUgPT4gJ0lUU01DaGFuZ2UnCiAgICAgICAgU2VsZWN0b3IgICA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBfQ29uZGl0aW9uTGlzdEJ5T2JqZWN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE9iamVjdE5hbWUgU2VsZWN0b3IgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBjaGFuZ2UgaWQKICAgIG15ICRDaGFuZ2VJRDsKCiAgICBpZiAoICRQYXJhbXtPYmplY3ROYW1lfSBlcSAnSVRTTUNoYW5nZScgKSB7CgogICAgICAgICMgc2VsZWN0b3IgaXMgbmVlZGVkIGNoYW5nZSBpZAogICAgICAgICRDaGFuZ2VJRCA9ICRQYXJhbXtTZWxlY3Rvcn07CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtPYmplY3ROYW1lfSBlcSAnSVRTTVdvcmtPcmRlcicgKSB7CgogICAgICAgICMgZ2V0IG9iamVjdCBiYWNrZW5kCiAgICAgICAgbXkgJEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T2JqZWN0OjpJVFNNV29ya09yZGVyJyk7CgogICAgICAgICMgY2hlY2sgZm9yIGVycm9yCiAgICAgICAgcmV0dXJuIGlmICEkQmFja2VuZE9iamVjdDsKCiAgICAgICAgIyBkZWZpbmUgZGVmYXVsdCBmdW5jdGlvbnMgZm9yIGJhY2tlbmQKICAgICAgICBteSAkU3ViID0gJ0RhdGFHZXQnOwoKICAgICAgICAjIGNoZWNrIGZvciBhdmFpbGFibGUgZnVuY3Rpb24KICAgICAgICBpZiAoICEkQmFja2VuZE9iamVjdC0+Y2FuKCRTdWIpICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gZnVuY3Rpb24gJyRTdWInIGF2YWlsYWJsZSBmb3IgYmFja2VuZCAnJFBhcmFte09iamVjdE5hbWV9JyEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGV4ZWN1dGUgdGhlIHN1YnJvdXRpbmUKICAgICAgICBteSAkV29ya09yZGVyID0gJEJhY2tlbmRPYmplY3QtPiRTdWIoCiAgICAgICAgICAgIFNlbGVjdG9yID0+ICRQYXJhbXtTZWxlY3Rvcn0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICkgfHwge307CgogICAgICAgIHJldHVybiBpZiAhJFdvcmtPcmRlcjsKCiAgICAgICAgIyBnZXQgY2hhbmdlIGlkCiAgICAgICAgJENoYW5nZUlEID0gJFdvcmtPcmRlci0+WzBdLT57Q2hhbmdlSUR9OwogICAgfQoKICAgICMgY2hlY2sgY2hhbmdlIGlkCiAgICByZXR1cm4gaWYgISRDaGFuZ2VJRDsKCiAgICAjIGdldCBjb25kaXRpb25zIGZvciB0aGlzIGNoYW5nZQogICAgbXkgJENvbmRpdGlvbnMgPSAkU2VsZi0+Q29uZGl0aW9uTGlzdCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiAkQ29uZGl0aW9uczsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cHM6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/History.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SGlzdG9yeTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6REInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SGlzdG9yeSAtIGFsbCBjaGFuZ2UgYW5kIHdvcmtvcmRlciBoaXN0b3J5IGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJEhpc3RvcnlPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SGlzdG9yeScpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCB0aGUgY2FjaGUgdHlwZSBhbmQgVFRMIChpbiBzZWNvbmRzKQogICAgJFNlbGYtPntDYWNoZVR5cGV9ID0gJ0lUU01DaGFuZ2VNYW5hZ2VtZW50JzsKICAgICRTZWxmLT57Q2FjaGVUVEx9ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSVRTTUNoYW5nZTo6Q2FjaGVUVEwnKSAqIDYwOwoKICAgICMgc2V0IGRlZmF1bHQgZGVidWcgZmxhZwogICAgJFNlbGYtPntEZWJ1Z30gfHw9IDA7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgSGlzdG9yeUFkZCgpCgpBZGRzIGEgc2luZ2xlIGhpc3RvcnkgZW50cnkgdG8gdGhlIGhpc3RvcnkuIFJldHVybnMgMSBvbiBzdWNjZXNzLCBDPHVuZGVmPiBvdGhlcndpc2UuCgogICAgbXkgJFN1Y2Nlc3MgPSAkSGlzdG9yeU9iamVjdC0+SGlzdG9yeUFkZCgKICAgICAgICBDaGFuZ2VJRCAgICAgID0+IDEyMzQsICAgICAgICAgICAgICAgICAgICAgIyBlaXRoZXIgQ2hhbmdlSUQgb3IgV29ya09yZGVySUQgaXMgbmVlZGVkCiAgICAgICAgV29ya09yZGVySUQgICA9PiAxMjMsICAgICAgICAgICAgICAgICAgICAgICMgZWl0aGVyIENoYW5nZUlEIG9yIFdvcmtPcmRlcklEIGlzIG5lZWRlZAogICAgICAgIEhpc3RvcnlUeXBlICAgPT4gJ1dvcmtPcmRlckFkZCcsICAgICAgICAgICAjIGVpdGhlciBIaXN0b3J5VHlwZSBvciBIaXN0b3J5VHlwZUlEIGlzIG5lZWRlZAogICAgICAgIEhpc3RvcnlUeXBlSUQgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAjIGVpdGhlciBIaXN0b3J5VHlwZSBvciBIaXN0b3J5VHlwZUlEIGlzIG5lZWRlZAogICAgICAgIEZpZWxkbmFtZSAgICAgPT4gJ0p1c3RpZmljYXRpb24nLCAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgQ29udGVudE5ldyAgICA9PiAnQW55IHVzZWZ1bCBpbmZvcm1hdGlvbicsICMgb3B0aW9uYWwKICAgICAgICBDb250ZW50T2xkICAgID0+ICdPbGQgdmFsdWUgb2YgZmllbGQnLCAgICAgIyBvcHRpb25hbAogICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgSGlzdG9yeUFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICAjIENoYW5nZUlEIGlzIGFsd2F5cyBuZWVkZWQsIHdvcmtvcmRlciBpZCBpcyBvbmx5IG5lZWRlZCBmb3Igd29ya29yZGVyIGV2ZW50cwogICAgZm9yIG15ICROZWVkZWQgKHF3KFVzZXJJRCBDaGFuZ2VJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGVpdGhlciBIaXN0b3J5VHlwZSBvciBIaXN0b3J5VHlwZUlEIGlzIG5lZWRlZAogICAgaWYgKCAhKCAkUGFyYW17SGlzdG9yeVR5cGV9IHx8ICRQYXJhbXtIaXN0b3J5VHlwZUlEfSApICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBIaXN0b3J5VHlwZSBvciBIaXN0b3J5VHlwZUlEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgaGlzdG9yeSB0eXBlIGlkIGZyb20gaGlzdG9yeSB0eXBlIGlmIGhpc3RvcnkgdHlwZSBpcyBnaXZlbgogICAgaWYgKCAkUGFyYW17SGlzdG9yeVR5cGV9ICkgewoKICAgICAgICAjIGxvb2t1cCB0aGUgaGlzdG9yeSB0eXBlIGlkCiAgICAgICAgbXkgJElEID0gJFNlbGYtPkhpc3RvcnlUeXBlTG9va3VwKAogICAgICAgICAgICBIaXN0b3J5VHlwZSA9PiAkUGFyYW17SGlzdG9yeVR5cGV9LAogICAgICAgICk7CgogICAgICAgICMgbm8gdmFsaWQgaGlzdG9yeSB0eXBlIGdpdmVuCiAgICAgICAgaWYgKCAhJElEICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW52YWxpZCBoaXN0b3J5IHR5cGUgJyRQYXJhbXtIaXN0b3J5VHlwZX0nIGdpdmVuISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICRQYXJhbXtIaXN0b3J5VHlwZUlEfSA9ICRJRDsKICAgIH0KCiAgICAjIGNvbnZlcnQgYXJyYXkgcGFyYW1zCiAgICBDT05URU5UOgogICAgZm9yIG15ICRDb250ZW50IChxdyhDb250ZW50TmV3IENvbnRlbnRPbGQpKSB7CiAgICAgICAgbmV4dCBDT05URU5UIGlmIHJlZiAkUGFyYW17JENvbnRlbnR9IG5lICdBUlJBWSc7CiAgICAgICAgJFBhcmFteyRDb250ZW50fSA9IGpvaW4gJywgJywgQHsgJFBhcmFteyRDb250ZW50fSB9OwogICAgfQoKICAgICMgaW5zZXJ0IGhpc3RvcnkgZW50cnkKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnSU5TRVJUIElOVE8gY2hhbmdlX2hpc3RvcnkgKCBjaGFuZ2VfaWQsIHdvcmtvcmRlcl9pZCwgY29udGVudF9uZXcsICcKICAgICAgICAgICAgLiAnY29udGVudF9vbGQsIGNyZWF0ZV9ieSwgY3JlYXRlX3RpbWUsIHR5cGVfaWQsIGZpZWxkbmFtZSApICcKICAgICAgICAgICAgLiAnVkFMVUVTICggPywgPywgPywgPywgPywgY3VycmVudF90aW1lc3RhbXAsID8sID8gKScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgICAgICBcJFBhcmFte1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgXCRQYXJhbXtDb250ZW50TmV3fSwKICAgICAgICAgICAgXCRQYXJhbXtDb250ZW50T2xkfSwKICAgICAgICAgICAgXCRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBcJFBhcmFte0hpc3RvcnlUeXBlSUR9LAogICAgICAgICAgICBcJFBhcmFte0ZpZWxkbmFtZX0sCiAgICAgICAgXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBIaXN0b3J5QWRkTXVsdGlwbGUoKQoKQWRkcyBtdWx0aXBsZSBoaXN0b3J5IGVudHJpZXMgdG8gdGhlIGhpc3RvcnkuIFJldHVybnMgMSBvbiBzdWNjZXNzLCBDPHVuZGVmPiBvdGhlcndpc2UuCgogICAgbXkgJFN1Y2Nlc3MgPSAkSGlzdG9yeU9iamVjdC0+SGlzdG9yeUFkZE11bHRpcGxlKAogICAgICAgIERhdGEgPT4gXEBIaXN0b3J5QWRkRGF0YSwKICAgICk7Cgo9Y3V0CgpzdWIgSGlzdG9yeUFkZE11bHRpcGxlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtEYXRhfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgRGF0YSEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoIHJlZiAkUGFyYW17RGF0YX0gbmUgJ0FSUkFZJyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkRhdGEgbXVzdCBiZSBhbiBhcnJheSByZWZlcmVuY2UhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhQHsgJFBhcmFte0RhdGF9IH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJEYXRhIGFycmF5IG11c3Qgbm90IGJlIGVtcHR5ISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBkZWZpbmUgZGF0YWJhc2Ugc3BlY2lmaWMgU1FMIGZvciB0aGUgbXVsdGlsaW5lIGluc2VydHMKICAgIG15ICVEYXRhYmFzZVNRTDsKCiAgICAjIG15c3FsCiAgICAkRGF0YWJhc2VTUUx7bXlzcWx9ID0gewogICAgICAgIFN0YXJ0ID0+ICdJTlNFUlQgSU5UTyBjaGFuZ2VfaGlzdG9yeSAoIGNoYW5nZV9pZCwgd29ya29yZGVyX2lkLCBjb250ZW50X25ldywgJwogICAgICAgICAgICAuICdjb250ZW50X29sZCwgY3JlYXRlX2J5LCBjcmVhdGVfdGltZSwgdHlwZV9pZCwgZmllbGRuYW1lICkgJywKICAgICAgICBGaXJzdExpbmUgPT4gJ1ZBTFVFUyAoID8sID8sID8sID8sID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/LCA/ICknLAogICAgICAgIE5leHRMaW5lICA9PiAnLCAoID8sID8sID8sID8sID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/LCA/ICkgJywKICAgICAgICBFbmQgICAgICAgPT4gJycsCiAgICB9OwoKICAgICMgcG9zdGdyZXMgOC4yIGFuZCBuZXdlciAoc2FtZSBTUUwgY29kZSBhcyBmb3IgbXlzcWwpCiAgICAkRGF0YWJhc2VTUUx7cG9zdGdyZXN9ID0gJERhdGFiYXNlU1FMe215c3FsfTsKCiAgICAjIG9yYWNsZQogICAgJERhdGFiYXNlU1FMe29yYWNsZX0gPSB7CiAgICAgICAgU3RhcnQgICAgID0+ICdJTlNFUlQgQUxMICcsCiAgICAgICAgRmlyc3RMaW5lID0+ICdJTlRPIGNoYW5nZV9oaXN0b3J5ICggY2hhbmdlX2lkLCB3b3Jrb3JkZXJfaWQsIGNvbnRlbnRfbmV3LCAnCiAgICAgICAgICAgIC4gJ2NvbnRlbnRfb2xkLCBjcmVhdGVfYnksIGNyZWF0ZV90aW1lLCB0eXBlX2lkLCBmaWVsZG5hbWUgKSAgJwogICAgICAgICAgICAuICdWQUxVRVMgKCA/LCA/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgPywgPyApICcsCiAgICAgICAgTmV4dExpbmUgPT4gJ0lOVE8gY2hhbmdlX2hpc3RvcnkgKCBjaGFuZ2VfaWQsIHdvcmtvcmRlcl9pZCwgY29udGVudF9uZXcsICcKICAgICAgICAgICAgLiAnY29udGVudF9vbGQsIGNyZWF0ZV9ieSwgY3JlYXRlX3RpbWUsIHR5cGVfaWQsIGZpZWxkbmFtZSApICAnCiAgICAgICAgICAgIC4gJ1ZBTFVFUyAoID8sID8sID8sID8sID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/LCA/ICkgJywKICAgICAgICBFbmQgPT4gJ1NFTEVDVCAqIEZST00gRFVBTCcsCiAgICB9OwoKICAgICMgZ2V0IHRoZSBkYXRhYmFzZSB0eXBlCiAgICBteSAkREJUeXBlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkdldERhdGFiYXNlRnVuY3Rpb24oJ1R5cGUnKTsKCiAgICAjIG1ha2UgbXVsdGlsaW5lIGluc2VydHMgZm9yIGRlZmluZWQgZGF0YWJhc2VzCiAgICBpZiAoICREYXRhYmFzZVNRTHskREJUeXBlfSApIHsKCiAgICAgICAgbXkgJFNRTCA9ICcnOwogICAgICAgIG15IEBCaW5kOwoKICAgICAgICBISVNUT1JZRU5UUlk6CiAgICAgICAgZm9yIG15ICRIaXN0b3J5RW50cnkgKCBAeyAkUGFyYW17RGF0YX0gfSApIHsKCiAgICAgICAgICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICAgICAgICAgICMgQ2hhbmdlSUQgaXMgYWx3YXlzIG5lZWRlZCwgd29ya29yZGVyIGlkIGlzIG9ubHkgbmVlZGVkIGZvciB3b3Jrb3JkZXIgZXZlbnRzCiAgICAgICAgICAgIGZvciBteSAkTmVlZGVkIChxdyhVc2VySUQgQ2hhbmdlSUQpKSB7CiAgICAgICAgICAgICAgICBpZiAoICEkSGlzdG9yeUVudHJ5LT57JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIG5leHQgSElTVE9SWUVOVFJZOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGVpdGhlciBIaXN0b3J5VHlwZSBvciBIaXN0b3J5VHlwZUlEIGlzIG5lZWRlZAogICAgICAgICAgICBpZiAoICEoICRIaXN0b3J5RW50cnktPntIaXN0b3J5VHlwZX0gfHwgJEhpc3RvcnlFbnRyeS0+e0hpc3RvcnlUeXBlSUR9ICkgKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIEhpc3RvcnlUeXBlIG9yIEhpc3RvcnlUeXBlSUQhJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBuZXh0IEhJU1RPUllFTlRSWTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgaGlzdG9yeSB0eXBlIGlkIGZyb20gaGlzdG9yeSB0eXBlIGlmIGhpc3RvcnkgdHlwZSBpcyBnaXZlbgogICAgICAgICAgICBpZiAoICRIaXN0b3J5RW50cnktPntIaXN0b3J5VHlwZX0gKSB7CgogICAgICAgICAgICAgICAgIyBsb29rdXAgdGhlIGhpc3RvcnkgdHlwZSBpZAogICAgICAgICAgICAgICAgbXkgJElEID0gJFNlbGYtPkhpc3RvcnlUeXBlTG9va3VwKAogICAgICAgICAgICAgICAgICAgIEhpc3RvcnlUeXBlID0+ICRIaXN0b3J5RW50cnktPntIaXN0b3J5VHlwZX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgbm8gdmFsaWQgaGlzdG9yeSB0eXBlIGdpdmVuCiAgICAgICAgICAgICAgICBpZiAoICEkSUQgKSB7CiAgICAgICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbnZhbGlkIGhpc3RvcnkgdHlwZSAnJEhpc3RvcnlFbnRyeS0+e0hpc3RvcnlUeXBlfScgZ2l2ZW4hIiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIG5leHQgSElTVE9SWUVOVFJZOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRIaXN0b3J5RW50cnktPntIaXN0b3J5VHlwZUlEfSA9ICRJRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBub3cgdGhlIGhpc3RvcnkgZW50cnkgaXMgdmFsaWRhdGVkIGFuZCBjYW4gYmUgYWRkZWQgdG8gc3FsCiAgICAgICAgICAgIGlmICggISRTUUwgKSB7CiAgICAgICAgICAgICAgICAkU1FMID0gJERhdGFiYXNlU1FMeyREQlR5cGV9LT57U3RhcnR9IC4gJERhdGFiYXNlU1FMeyREQlR5cGV9LT57Rmlyc3RMaW5lfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRTUUwgLj0gJERhdGFiYXNlU1FMeyREQlR5cGV9LT57TmV4dExpbmV9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNvbnZlcnQgYXJyYXkgcGFyYW1zCiAgICAgICAgICAgIENPTlRFTlQ6CiAgICAgICAgICAgIGZvciBteSAkQ29udGVudCAocXcoQ29udGVudE5ldyBDb250ZW50T2xkKSkgewogICAgICAgICAgICAgICAgbmV4dCBDT05URU5UIGlmIHJlZiAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnR9IG5lICdBUlJBWSc7CiAgICAgICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnR9ID0gam9pbiAnLCAnLCBAeyAkSGlzdG9yeUVudHJ5LT57JENvbnRlbnR9IH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHB1c2ggQEJpbmQsICgKICAgICAgICAgICAgICAgIFwkSGlzdG9yeUVudHJ5LT57Q2hhbmdlSUR9LAogICAgICAgICAgICAgICAgXCRIaXN0b3J5RW50cnktPntXb3JrT3JkZXJJRH0sCiAgICAgICAgICAgICAgICBcJEhpc3RvcnlFbnRyeS0+e0NvbnRlbnROZXd9LAogICAgICAgICAgICAgICAgXCRIaXN0b3J5RW50cnktPntDb250ZW50T2xkfSwKICAgICAgICAgICAgICAgIFwkSGlzdG9yeUVudHJ5LT57VXNlcklEfSwKICAgICAgICAgICAgICAgIFwkSGlzdG9yeUVudHJ5LT57SGlzdG9yeVR5cGVJRH0sCiAgICAgICAgICAgICAgICBcJEhpc3RvcnlFbnRyeS0+e0ZpZWxkbmFtZX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNoZWNrIHRoZSBsZW5ndGggb2YgdGhlIFNRTCBzdHJpbmcKICAgICAgICAgICAgIyAoc29tZSBkYXRhYmFzZXMgb25seSBhY2NlcHQgU1FMIHN0cmluZ3MgdXAgdG8gNGssCiAgICAgICAgICAgICMgc28gd2Ugd2FudCB0byBzdGF5IHNhZmUgaGVyZSB3aXRoIGp1c3QgMzUwMCBieXRlcykKICAgICAgICAgICAgaWYgKCBsZW5ndGggJFNRTCA+IDM1MDAgKSB7CgogICAgICAgICAgICAgICAgIyBhZGQgdGhlIGVuZCBsaW5lIHRvIHNxbCBzdHJpbmcKICAgICAgICAgICAgICAgICRTUUwgLj0gJERhdGFiYXNlU1FMeyREQlR5cGV9LT57RW5kfTsKCiAgICAgICAgICAgICAgICAjIGluc2VydCBtdWx0aXBsZSBoaXN0b3J5IGVudHJpZXMKICAgICAgICAgICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgICAgICAgICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICAgICAgICAgICAgICBCaW5kID0+IFxAQmluZCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyByZXNldCB0aGUgU1FMIHN0cmluZyBhbmQgdGhlIEJpbmQgYXJyYXkKICAgICAgICAgICAgICAgICRTUUwgID0gJyc7CiAgICAgICAgICAgICAgICBAQmluZCA9ICgpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIHRoZXJlIGlzIHNvbWUgU1FMIGxlZnQgdG8gZXhlY3V0ZQogICAgICAgIGlmICgkU1FMKSB7CgogICAgICAgICAgICAjIGFkZCB0aGUgZW5kIGxpbmUgdG8gc3FsIHN0cmluZwogICAgICAgICAgICAkU1FMIC49ICREYXRhYmFzZVNRTHskREJUeXBlfS0+e0VuZH07CgogICAgICAgICAgICAjIGluc2VydCBtdWx0aXBsZSBoaXN0b3J5IGVudHJpZXMKICAgICAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgICAgICAgICBCaW5kID0+IFxAQmluZCwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBkYXRhYmFzZSBzdXBwb3J0cyBubyBtdWx0aWxpbmUgaW5zZXJ0cywgc28gd2UgZG8gaXQgbGluZSBieSBsaW5lCiAgICBlbHNlIHsKCiAgICAgICAgbXkgJEVycm9yOwogICAgICAgIGZvciBteSAkSGlzdG9yeUVudHJ5ICggQHsgJFBhcmFte0RhdGF9IH0gKSB7CgogICAgICAgICAgICAjIGFkZCBoaXN0b3J5IGVudHJpZXMgb25lIGJ5IG9uZSB3aXRoIHRoZSBIaXN0b3J5QWRkIGZ1bmN0aW9uCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPkhpc3RvcnlBZGQoCiAgICAgICAgICAgICAgICAleyRIaXN0b3J5RW50cnl9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICRFcnJvciA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiBpZiAkRXJyb3I7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBXb3JrT3JkZXJIaXN0b3J5R2V0KCkKClJldHVybnMgYSBsaXN0IG9mIGFsbCBoaXN0b3J5IGVudHJpZXMgdGhhdCBiZWxvbmcgdG8gdGhlIGdpdmVuIFdvcmtPcmRlcklELiBUaGUKbGlzdCBjb250YWlucyBoYXNoIHJlZmVyZW5jZXMgd2l0aCB0aGVzZSBpbmZvcm1hdGlvbjoKCiAgICAkSW5mb3tIaXN0b3J5RW50cnlJRH0KICAgICRJbmZve0NoYW5nZUlEfQogICAgJEluZm97V29ya09yZGVySUR9CiAgICAkSW5mb3tIaXN0b3J5VHlwZX0KICAgICRJbmZve0hpc3RvcnlUeXBlSUR9CiAgICAkSW5mb3tGaWVsZG5hbWV9CiAgICAkSW5mb3tDb250ZW50TmV3fQogICAgJEluZm97Q29udGVudE9sZH0KICAgICRJbmZve0NyZWF0ZUJ5fQogICAgJEluZm97Q3JlYXRlVGltZX0KICAgICRJbmZve1VzZXJJRH0KICAgICRJbmZve1VzZXJMb2dpbn0KICAgICRJbmZve1VzZXJMYXN0bmFtZX0KICAgICRJbmZve1VzZXJGaXJzdG5hbWV9CgogICAgbXkgJEhpc3RvcnlFbnRyaWVzID0gJEhpc3RvcnlPYmplY3QtPldvcmtPcmRlckhpc3RvcnlHZXQoCiAgICAgICAgV29ya09yZGVySUQgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtPcmRlckhpc3RvcnlHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIGZvciBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXR0cmlidXRlIChxdyhXb3JrT3JkZXJJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBdHRyaWJ1dGV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXR0cmlidXRlISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBydW4gdGhlIHNxbCBzdGF0ZW1lbnQgdG8gZ2V0IGhpc3RvcnkKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgY2guaWQsIGNoYW5nZV9pZCwgd29ya29yZGVyX2lkLCBjb250ZW50X25ldywgY29udGVudF9vbGQsICcKICAgICAgICAgICAgLiAnY2guY3JlYXRlX2J5LCBjaC5jcmVhdGVfdGltZSwgdHlwZV9pZCwgY2h0Lm5hbWUsIGZpZWxkbmFtZSAnCiAgICAgICAgICAgIC4gJ0ZST00gY2hhbmdlX2hpc3RvcnkgY2gsIGNoYW5nZV9oaXN0b3J5X3R5cGUgY2h0ICcKICAgICAgICAgICAgLiAnV0hFUkUgY2gudHlwZV9pZCA9IGNodC5pZCAnCiAgICAgICAgICAgIC4gJ0FORCB3b3Jrb3JkZXJfaWQgPSA/IE9SREVSIEJZIGNoLmNyZWF0ZV90aW1lLCBjaC5pZCcsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17V29ya09yZGVySUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGVudHJpZXMgYW5kIHNhdmUgaW5mb3JtYXRpb24gaW4gYXJyYXkKICAgIG15IEBIaXN0b3J5RW50cmllczsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgbXkgJUhpc3RvcnlFbnRyeSA9ICgKICAgICAgICAgICAgSGlzdG9yeUVudHJ5SUQgPT4gJFJvd1swXSwKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJFJvd1sxXSwKICAgICAgICAgICAgV29ya09yZGVySUQgICAgPT4gJFJvd1syXSwKICAgICAgICAgICAgQ29udGVudE5ldyAgICAgPT4gZGVmaW5lZCggJFJvd1szXSApID8gJFJvd1szXSA6ICcnLAogICAgICAgICAgICBDb250ZW50T2xkICAgICA9PiBkZWZpbmVkKCAkUm93WzRdICkgPyAkUm93WzRdIDogJycsCiAgICAgICAgICAgIENyZWF0ZUJ5ICAgICAgID0+ICRSb3dbNV0sCiAgICAgICAgICAgIENyZWF0ZVRpbWUgICAgID0+ICRSb3dbNl0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlSUQgID0+ICRSb3dbN10sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICRSb3dbOF0sCiAgICAgICAgICAgIEZpZWxkbmFtZSAgICAgID0+ICRSb3dbOV0sCiAgICAgICAgKTsKCiAgICAgICAgcHVzaCBASGlzdG9yeUVudHJpZXMsIFwlSGlzdG9yeUVudHJ5OwogICAgfQoKICAgICMgZ2V0IG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdXNlciB3aG8gY3JlYXRlZCBlbnRyeQogICAgZm9yIG15ICRIaXN0b3J5RW50cnkgKEBIaXN0b3J5RW50cmllcykgewoKICAgICAgICAjIGdldCB1c2VyIG5hbWUKICAgICAgICBteSAlVXNlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFVzZXJEYXRhKAogICAgICAgICAgICBVc2VySUQgPT4gJEhpc3RvcnlFbnRyeS0+e0NyZWF0ZUJ5fSwKICAgICAgICAgICAgQ2FjaGUgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBzYXZlIHVzZXIgaW5mbyBpbiBoaXN0b3J5IGVudHJ5CiAgICAgICAgaWYgKCVVc2VyKSB7CiAgICAgICAgICAgICRIaXN0b3J5RW50cnktPntVc2VySUR9ICAgICAgICA9ICRVc2Vye1VzZXJJRH07CiAgICAgICAgICAgICRIaXN0b3J5RW50cnktPntVc2VyTG9naW59ICAgICA9ICRVc2Vye1VzZXJMb2dpbn07CiAgICAgICAgICAgICRIaXN0b3J5RW50cnktPntVc2VyRmlyc3RuYW1lfSA9ICRVc2Vye1VzZXJGaXJzdG5hbWV9OwogICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57VXNlckxhc3RuYW1lfSAgPSAkVXNlcntVc2VyTGFzdG5hbWV9OwogICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57VXNlckZ1bGxuYW1lfSAgPSAkVXNlcntVc2VyRnVsbG5hbWV9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXEBIaXN0b3J5RW50cmllczsKfQoKPWhlYWQyIENoYW5nZUhpc3RvcnlHZXQoKQoKUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGhpc3RvcnkgZW50cmllcyB0aGF0IGJlbG9uZyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQgLSBpbmNsdWRpbmcKaGlzdG9yeSBlbnRyaWVzIGZvciBDPHdvcmtvcmRlcnM+LiBUaGUgbGlzdCBjb250YWlucyBoYXNoIHJlZmVyZW5jZXMgd2l0aCB0aGVzZSBpbmZvcm1hdGlvbjoKCiAgICAkSW5mb3tIaXN0b3J5RW50cnlJRH0KICAgICRJbmZve0NoYW5nZUlEfQogICAgJEluZm97V29ya09yZGVySUR9CiAgICAkSW5mb3tIaXN0b3J5VHlwZX0KICAgICRJbmZve0hpc3RvcnlUeXBlSUR9CiAgICAkSW5mb3tGaWVsZG5hbWV9CiAgICAkSW5mb3tDb250ZW50TmV3fQogICAgJEluZm97Q29udGVudE9sZH0KICAgICRJbmZve0NyZWF0ZUJ5fQogICAgJEluZm97Q3JlYXRlVGltZX0KICAgICRJbmZve1VzZXJJRH0KICAgICRJbmZve1VzZXJMb2dpbn0KICAgICRJbmZve1VzZXJMYXN0bmFtZX0KICAgICRJbmZve1VzZXJGaXJzdG5hbWV9CgogICAgbXkgJEhpc3RvcnlFbnRyaWVzID0gJEhpc3RvcnlPYmplY3QtPkNoYW5nZUhpc3RvcnlHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIENoYW5nZUhpc3RvcnlHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIGZvciBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXR0cmlidXRlIChxdyhDaGFuZ2VJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBdHRyaWJ1dGV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXR0cmlidXRlISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBydW4gdGhlIHNxbCBzdGF0ZW1lbnQgdG8gZ2V0IGhpc3RvcnkKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgY2guaWQsIGNoYW5nZV9pZCwgd29ya29yZGVyX2lkLCBjb250ZW50X25ldywgY29udGVudF9vbGQsICcKICAgICAgICAgICAgLiAnY2guY3JlYXRlX2J5LCBjaC5jcmVhdGVfdGltZSwgdHlwZV9pZCwgY2h0Lm5hbWUsIGZpZWxkbmFtZSAnCiAgICAgICAgICAgIC4gJ0ZST00gY2hhbmdlX2hpc3RvcnkgY2gsIGNoYW5nZV9oaXN0b3J5X3R5cGUgY2h0ICcKICAgICAgICAgICAgLiAnV0hFUkUgY2gudHlwZV9pZCA9IGNodC5pZCAnCiAgICAgICAgICAgIC4gJ0FORCBjaGFuZ2VfaWQgPSA/IE9SREVSIEJZIGNoLmNyZWF0ZV90aW1lLCBjaC5pZCcsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17Q2hhbmdlSUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGVudHJpZXMgYW5kIHNhdmUgaW5mb3JtYXRpb24gaW4gYXJyYXkKICAgIG15IEBIaXN0b3J5RW50cmllczsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgbXkgJUhpc3RvcnlFbnRyeSA9ICgKICAgICAgICAgICAgSGlzdG9yeUVudHJ5SUQgPT4gJFJvd1swXSwKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJFJvd1sxXSwKICAgICAgICAgICAgV29ya09yZGVySUQgICAgPT4gJFJvd1syXSwKICAgICAgICAgICAgQ29udGVudE5ldyAgICAgPT4gZGVmaW5lZCggJFJvd1szXSApID8gJFJvd1szXSA6ICcnLAogICAgICAgICAgICBDb250ZW50T2xkICAgICA9PiBkZWZpbmVkKCAkUm93WzRdICkgPyAkUm93WzRdIDogJycsCiAgICAgICAgICAgIENyZWF0ZUJ5ICAgICAgID0+ICRSb3dbNV0sCiAgICAgICAgICAgIENyZWF0ZVRpbWUgICAgID0+ICRSb3dbNl0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlSUQgID0+ICRSb3dbN10sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICRSb3dbOF0sCiAgICAgICAgICAgIEZpZWxkbmFtZSAgICAgID0+ICRSb3dbOV0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGVhbnVwIHRpbWUgc3RhbXBzIChzb21lIGRhdGFiYXNlcyBhcmUgdXNpbmcgZS4gZy4gMjAwOC0wMi0yNSAyMjowMzowMC4wMDAwMDApCiAgICAgICAgJEhpc3RvcnlFbnRyeXtDcmVhdGVUaW1lfQogICAgICAgICAgICA9fiBzeyBcQSAoIFxkXGRcZFxkIC0gXGRcZCAtIFxkXGQgXHMgXGRcZDpcZFxkOlxkXGQgKSBcLiAuKz8gXHogfXskMX14bXM7CgogICAgICAgIHB1c2ggQEhpc3RvcnlFbnRyaWVzLCBcJUhpc3RvcnlFbnRyeTsKICAgIH0KCiAgICAjIGdldCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHVzZXIgd2hvIGNyZWF0ZWQgZW50cnkKICAgIGZvciBteSAkSGlzdG9yeUVudHJ5IChASGlzdG9yeUVudHJpZXMpIHsKCiAgICAgICAgIyBnZXQgdXNlciBuYW1lCiAgICAgICAgbXkgJVVzZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRIaXN0b3J5RW50cnktPntDcmVhdGVCeX0sCiAgICAgICAgICAgIENhY2hlICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgc2F2ZSB1c2VyIGluZm8gaW4gaGlzdG9yeSBlbnRyeQogICAgICAgIGlmICglVXNlcikgewogICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57VXNlcklEfSAgICAgICAgPSAkVXNlcntVc2VySUR9OwogICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57VXNlckxvZ2lufSAgICAgPSAkVXNlcntVc2VyTG9naW59OwogICAgICAgICAgICAkSGlzdG9yeUVudHJ5LT57VXNlckZpcnN0bmFtZX0gPSAkVXNlcntVc2VyRmlyc3RuYW1lfTsKICAgICAgICAgICAgJEhpc3RvcnlFbnRyeS0+e1VzZXJMYXN0bmFtZX0gID0gJFVzZXJ7VXNlckxhc3RuYW1lfTsKICAgICAgICAgICAgJEhpc3RvcnlFbnRyeS0+e1VzZXJGdWxsbmFtZX0gID0gJFVzZXJ7VXNlckZ1bGxuYW1lfTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIFxASGlzdG9yeUVudHJpZXM7Cn0KCj1oZWFkMiBIaXN0b3J5RW50cnlHZXQoKQoKUmV0dXJucyBhIHNpbmdsZSBoaXN0b3J5IGVudHJ5LiBUaGUgaGFzaCByZWZlcmVuY2UgaGFzIHRoZXNlIGluZm9ybWF0aW9uOgoKICAgICRJbmZve0hpc3RvcnlFbnRyeUlEfQogICAgJEluZm97Q2hhbmdlSUR9CiAgICAkSW5mb3tXb3JrT3JkZXJJRH0KICAgICRJbmZve0hpc3RvcnlUeXBlfQogICAgJEluZm97SGlzdG9yeVR5cGVJRH0KICAgICRJbmZve0ZpZWxkbmFtZX0KICAgICRJbmZve0NvbnRlbnROZXd9CiAgICAkSW5mb3tDb250ZW50T2xkfQogICAgJEluZm97Q3JlYXRlQnl9CiAgICAkSW5mb3tDcmVhdGVUaW1lfQogICAgJEluZm97VXNlcklEfQogICAgJEluZm97VXNlckxvZ2lufQogICAgJEluZm97VXNlckxhc3RuYW1lfQogICAgJEluZm97VXNlckZpcnN0bmFtZX0KICAgICRJbmZve1VzZXJGdWxsbmFtZX0KCiAgICBteSAkSGlzdG9yeUVudHJ5ID0gJEhpc3RvcnlPYmplY3QtPkhpc3RvcnlFbnRyeUdldCgKICAgICAgICBIaXN0b3J5RW50cnlJRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgSGlzdG9yeUVudHJ5R2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBmb3IgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAocXcoSGlzdG9yeUVudHJ5SUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXR0cmlidXRlfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEF0dHJpYnV0ZSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcnVuIHRoZSBzcWwgc3RhdGVtZW50IHRvIGdldCBoaXN0b3J5CiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIGNoLmlkLCBjaGFuZ2VfaWQsIHdvcmtvcmRlcl9pZCwgY29udGVudF9uZXcsIGNvbnRlbnRfb2xkLCAnCiAgICAgICAgICAgIC4gJ2NoLmNyZWF0ZV9ieSwgY2guY3JlYXRlX3RpbWUsIHR5cGVfaWQsIGNodC5uYW1lLCBmaWVsZG5hbWUgJwogICAgICAgICAgICAuICdGUk9NIGNoYW5nZV9oaXN0b3J5IGNoLCBjaGFuZ2VfaGlzdG9yeV90eXBlIGNodCAnCiAgICAgICAgICAgIC4gJ1dIRVJFIGNoLnR5cGVfaWQgPSBjaHQuaWQgJwogICAgICAgICAgICAuICdBTkQgY2guaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtIaXN0b3J5RW50cnlJRH0gXSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZW50cmllcyBhbmQgc2F2ZSBpbmZvcm1hdGlvbiBpbiBhcnJheQogICAgbXkgJUhpc3RvcnlFbnRyeTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJUhpc3RvcnlFbnRyeSA9ICgKICAgICAgICAgICAgSGlzdG9yeUVudHJ5SUQgPT4gJFJvd1swXSwKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJFJvd1sxXSwKICAgICAgICAgICAgV29ya09yZGVySUQgICAgPT4gJFJvd1syXSwKICAgICAgICAgICAgQ29udGVudE5ldyAgICAgPT4gJFJvd1szXSwKICAgICAgICAgICAgQ29udGVudE9sZCAgICAgPT4gJFJvd1s0XSwKICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgPT4gJFJvd1s1XSwKICAgICAgICAgICAgQ3JlYXRlVGltZSAgICAgPT4gJFJvd1s2XSwKICAgICAgICAgICAgSGlzdG9yeVR5cGVJRCAgPT4gJFJvd1s3XSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgICAgPT4gJFJvd1s4XSwKICAgICAgICAgICAgRmllbGRuYW1lICAgICAgPT4gJFJvd1s5XSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFudXAgdGltZSBzdGFtcHMgKHNvbWUgZGF0YWJhc2VzIGFyZSB1c2luZyBlLiBnLiAyMDA4LTAyLTI1IDIyOjAzOjAwLjAwMDAwMCkKICAgICAgICAkSGlzdG9yeUVudHJ5e0NyZWF0ZVRpbWV9CiAgICAgICAgICAgID1+IHN7IFxBICggXGRcZFxkXGQgLSBcZFxkIC0gXGRcZCBccyBcZFxkOlxkXGQ6XGRcZCApIFwuIC4rPyBceiB9eyQxfXhtczsKICAgIH0KCiAgICAjIGdldCB1c2VyIG5hbWUKICAgIG15ICVVc2VyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0VXNlckRhdGEoCiAgICAgICAgVXNlcklEID0+ICRIaXN0b3J5RW50cnl7Q3JlYXRlQnl9LAogICAgICAgIENhY2hlICA9PiAxLAogICAgKTsKCiAgICAjIHNhdmUgdXNlciBpbmZvIGluIGhpc3RvcnkgZW50cnkKICAgIGlmICglVXNlcikgewogICAgICAgICRIaXN0b3J5RW50cnl7VXNlcklEfSAgICAgICAgPSAkVXNlcntVc2VySUR9OwogICAgICAgICRIaXN0b3J5RW50cnl7VXNlckxvZ2lufSAgICAgPSAkVXNlcntVc2VyTG9naW59OwogICAgICAgICRIaXN0b3J5RW50cnl7VXNlckZpcnN0bmFtZX0gPSAkVXNlcntVc2VyRmlyc3RuYW1lfTsKICAgICAgICAkSGlzdG9yeUVudHJ5e1VzZXJMYXN0bmFtZX0gID0gJFVzZXJ7VXNlckxhc3RuYW1lfTsKICAgICAgICAkSGlzdG9yeUVudHJ5e1VzZXJGdWxsbmFtZX0gID0gJFVzZXJ7VXNlckZ1bGxuYW1lfTsKICAgIH0KCiAgICByZXR1cm4gXCVIaXN0b3J5RW50cnk7Cn0KCj1oZWFkMiBXb3JrT3JkZXJIaXN0b3J5RGVsZXRlKCkKCkRlbGV0ZXMgYWxsIGVudHJpZXMgaW4gaGlzdG9yeSB0YWJsZSB0aGF0IGJlbG9uZ3MgdG8gdGhlIGdpdmVuIFdvcmtPcmRlcklELgpUaGUgbWV0aG9kIHJldHVybnMgMSBvbiBzdWNjZXNzIGFuZCBDPHVuZGVmPiBvdGhlcndpc2UuCgogICAgbXkgJFN1Y2Nlc3MgPSAkSGlzdG9yeU9iamVjdC0+V29ya09yZGVySGlzdG9yeURlbGV0ZSgKICAgICAgICBXb3JrT3JkZXJJRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgV29ya09yZGVySGlzdG9yeURlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgZm9yIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBdHRyaWJ1dGUgKHF3KFdvcmtPcmRlcklEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEF0dHJpYnV0ZX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBdHRyaWJ1dGUhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRlbGV0ZSBlbnRyaWVzIGZvciB0aGUgZ2l2ZW4gd29ya29yZGVyCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgID0+ICdERUxFVEUgRlJPTSBjaGFuZ2VfaGlzdG9yeSBXSEVSRSB3b3Jrb3JkZXJfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtXb3JrT3JkZXJJRH0gXSwKICAgICk7CgogICAgIyBzdWNjZXNzCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENoYW5nZUhpc3RvcnlEZWxldGUoKQoKRGVsZXRlcyBhbGwgZW50cmllcyBpbiBoaXN0b3J5IHRhYmxlIHRoYXQgYmVsb25ncyB0byB0aGUgZ2l2ZW4gQ2hhbmdlSUQuClRoZSBtZXRob2QgcmV0dXJucyAxIG9uIHN1Y2Nlc3MgYW5kIEM8dW5kZWY+IG90aGVyd2lzZS4KCiAgICBteSAkU3VjY2VzcyA9ICRIaXN0b3J5T2JqZWN0LT5DaGFuZ2VIaXN0b3J5RGVsZXRlKAogICAgICAgIENoYW5nZUlEID0+IDEyMywKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBDaGFuZ2VIaXN0b3J5RGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBmb3IgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAocXcoQ2hhbmdlSUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXR0cmlidXRlfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEF0dHJpYnV0ZSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZGVsZXRlIGVudHJpZXMgZm9yIHRoZSBnaXZlbiBjaGFuZ2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCAgPT4gJ0RFTEVURSBGUk9NIGNoYW5nZV9oaXN0b3J5IFdIRVJFIGNoYW5nZV9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0NoYW5nZUlEfSBdLAogICAgKTsKCiAgICAjIHN1Y2Nlc3MKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgSGlzdG9yeVVwZGF0ZSgpCgpUaGlzIG1ldGhvZCB1cGRhdGVzIGEgaGlzdG9yeSBlbnRyeS4gSXQgcmV0dXJucyAxIG9uIHN1Y2Nlc3MsIGFuZCBDPHVuZGVmPiBvdGhlcndpc2UuCgogICAgbXkgJFN1Y2Nlc3MgPSAkSGlzdG9yeU9iamVjdC0+SGlzdG9yeVVwZGF0ZSgKICAgICAgICBIaXN0b3J5RW50cnlJRCA9PiAxMjMsCiAgICAgICAgV29ya09yZGVySUQgICAgPT4gMzQ1MSwgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gMTIzNSwgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgQ29udGVudE5ldyAgICAgPT4gJ25ldyB2YWx1ZScsICAjIG9wdGlvbmFsCiAgICAgICAgQ29udGVudE9sZCAgICAgPT4gJ29sZCB2YWx1ZScsICAjIG9wdGlvbmFsCiAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgSGlzdG9yeVVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgZm9yIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBdHRyaWJ1dGUgKHF3KEhpc3RvcnlFbnRyeUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEF0dHJpYnV0ZX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBdHRyaWJ1dGUhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBoaXN0b3J5IGVudHJ5IGlkIGFuZCB1c2VyIGlkCiAgICBteSAkSGlzdG9yeUVudHJ5SUQgPSBkZWxldGUgJFBhcmFte0hpc3RvcnlFbnRyeUlEfTsKICAgIG15ICRVc2VySUQgICAgICAgICA9IGRlbGV0ZSAkUGFyYW17VXNlcklEfTsKCiAgICAjIHdlIGhhdmUgdG8gdXBkYXRlIGF0IGxlYXN0IG9uZSBjb2x1bW4KICAgIGlmICggIWtleXMgJVBhcmFtICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBhdCBsZWFzdCBvbmUgY29sdW1uIHRvIHVwZGF0ZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgd2hhdCBjb2x1bW5zIHNob3VsZCBiZSB1cGRhdGVkCiAgICBteSBAQ29sdW1ucyA9IGtleXMgJVBhcmFtOwogICAgbXkgQEJpbmQ7CgogICAgIyBnZXQgYmluZCB2YXJpYWJsZXMKICAgIGZvciBteSAkQ29sdW1uIChAQ29sdW1ucykgewogICAgICAgIHB1c2ggQEJpbmQsIFwkUGFyYW17JENvbHVtbn07CiAgICB9CgogICAgIyBnZXQgYmluZCBzdHJpbmcKICAgIG15ICVQYXJhbUtleTJDb2x1bW5OYW1lID0gKAogICAgICAgIENoYW5nZUlEICAgICAgPT4gJ2NoYW5nZV9pZCcsCiAgICAgICAgV29ya09yZGVySUQgICA9PiAnd29ya29yZGVyX2lkJywKICAgICAgICBDb250ZW50TmV3ICAgID0+ICdjb250ZW50X25ldycsCiAgICAgICAgQ29udGVudE9sZCAgICA9PiAnY29udGVudF9vbGQnLAogICAgICAgIEhpc3RvcnlUeXBlSUQgPT4gJ3R5cGVfaWQnLAogICAgICAgIEZpZWxkbmFtZSAgICAgPT4gJ2ZpZWxkbmFtZScsCiAgICApOwogICAgbXkgJEJpbmRzID0gam9pbiAnLCAnLCBtYXAgeyAkUGFyYW1LZXkyQ29sdW1uTmFtZXskX30gLiAnID0gPyAnIH0gQENvbHVtbnM7CgogICAgIyBkbyB0aGUgdXBkYXRlCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJ1VQREFURSBjaGFuZ2VfaGlzdG9yeSBTRVQgJyAuICRCaW5kcyAuICcgJwogICAgICAgICAgICAuICdXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBAQmluZCwgXCRIaXN0b3J5RW50cnlJRCBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIEhpc3RvcnlTZWFyY2goKQoKU2VhcmNoZXMgZm9yIGNoYW5nZXMvQzx3b3Jrb3JkZXJzPiB0aGF0IG1hdGNoZXMgdGhlIGdpdmVuIHNlYXJjaCBjcml0ZXJpYS4gSXQgcmV0dXJucwphbiBhcnJheSByZWZlcmVuY2Ugd2l0aCBjaGFuZ2Ugb3IgQzx3b3Jrb3JkZXI+IElEcy4gSWYgIlJlc3VsdCA9PiAnQ09VTlQnIiB0aGVuIHRoZQpudW1iZXIgb2YgZm91bmQgY2hhbmdlcyBpcyByZXR1cm5lZC4KCiAgICBteSAkSURzID0gJEhpc3RvcnlPYmplY3QtPkhpc3RvcnlTZWFyY2goCiAgICAgICAgVHlwZSAgICAgICAgICAgICAgICA9PiAnQ2hhbmdlJywgICAgICAgIyBDaGFuZ2V8V29ya29yZGVyIHdoaWNoIElEcyBzaG91bGQgYmUgcmV0dXJuZWQKICAgICAgICBBdHRyaWJ1dGUgICAgICAgICAgID0+ICdDaGFuZ2VTdGF0ZScsCiAgICAgICAgT2xkVmFsdWVzICAgICAgICAgICA9PiBbICdyZWplY3RlZCcgXSwgIyBvcHRpb25hbCAtIE9sZFZhbHVlcyBPUiBOZXdWYWx1ZXMgaXMgbmVlZGVkCiAgICAgICAgTmV3VmFsdWVzICAgICAgICAgICA9PiBbICdhcHByb3ZlZCcgXSwgIyBvcHRpb25hbCAtIE9sZFZhbHVlcyBPUiBOZXdWYWx1ZXMgaXMgbmVlZGVkCiAgICAgICAgQ2hhbmdlQnkgICAgICAgICAgICA9PiBbIDEsIDIsIDMgXSwgICAgIyBvcHRpb25hbAogICAgICAgIENoYW5nZURhdGVOZXdlckRhdGUgPT4gJzIwMDktMDEtMTMgMDA6MDA6MDEnLCAjb3B0aW9uYWwKICAgICAgICBDaGFuZ2VEYXRlT2xkZXJEYXRlID0+ICcyMDA5LTAxLTEzIDAwOjAwOjAxJywgI29wdGlvbmFsCiAgICAgICAgVXNlcklEICAgICAgICAgICAgICA9PiAxLAogICAgICAgIFVzaW5nV2lsZGNhcmRzICAgICAgPT4gMCwgICAgICAgICAgICAgICMgMHwxIC0gZGVmYXVsdCAxCiAgICAgICAgUmVzdWx0ICAgICAgICAgICAgICA9PiAnQVJSQVknLCAgICAgICAgIyBBUlJBWXxDT1VOVCAtIGRlZmF1bHQgQVJSQVkKICAgICk7Cgo9Y3V0CgpzdWIgSGlzdG9yeVNlYXJjaCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgZm9yIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBdHRyaWJ1dGUgKHF3KFR5cGUgQXR0cmlidXRlIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEF0dHJpYnV0ZX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBdHRyaWJ1dGUhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHZlcmlmeSB0aGF0IGFsbCBwYXNzZWQgYXJyYXkgcGFyYW1ldGVycyBjb250YWluIGFuIGFycmF5cmVmCiAgICBBUkdVTUVOVDoKICAgIGZvciBteSAkQXJndW1lbnQgKAogICAgICAgIHF3KAogICAgICAgIE9sZFZhbHVlcwogICAgICAgIE5ld1ZhbHVlcwogICAgICAgIENoYW5nZUJ5CiAgICAgICAgKQogICAgICAgICkKICAgIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSB8fD0gW107CgogICAgICAgICAgICBuZXh0IEFSR1VNRU5UOwogICAgICAgIH0KCiAgICAgICAgaWYgKCByZWYgJFBhcmFteyRBcmd1bWVudH0gbmUgJ0FSUkFZJyApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIiRBcmd1bWVudCBtdXN0IGJlIGFuIGFycmF5IHJlZmVyZW5jZSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGRlZmF1bHQgdmFsdWVzCiAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtVc2luZ1dpbGRjYXJkc30gKSB7CiAgICAgICAgJFBhcmFte1VzaW5nV2lsZGNhcmRzfSA9IDE7CiAgICB9CgogICAgIyBzZXQgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIGZvciB0aGUgcmV0dXJuIHR5cGUKICAgIG15ICRSZXN1bHQgPSAkUGFyYW17UmVzdWx0fSB8fCAnQVJSQVknOwoKICAgIG15IEBTUUxXaGVyZTsgICAgIyBhc3NlbWJsZSB0aGUgY29uZGl0aW9ucyB1c2VkIGluIHRoZSBXSEVSRSBjbGF1c2UKCiAgICAjIGFkZCBzdHJpbmcgcGFyYW1zIHRvIHRoZSBXSEVSRSBjbGF1c2UKICAgIG15ICVTdHJpbmdQYXJhbXMgPSAoCgogICAgICAgICMgc3RyaW5ncyBpbiBjaGFuZ2VfaGlzdG9yeQogICAgICAgIEF0dHJpYnV0ZSA9PiAnY2guZmllbGRuYW1lJywKICAgICk7CgogICAgIyBhZGQgc3RyaW5nIHBhcmFtcyB0byBzcWwtd2hlcmUtYXJyYXkKICAgIFNUUklOR1BBUkFNOgogICAgZm9yIG15ICRTdHJpbmdQYXJhbSAoIHNvcnQga2V5cyAlU3RyaW5nUGFyYW1zICkgewoKICAgICAgICAjIGNoZWNrIHN0cmluZyBwYXJhbXMgZm9yIHVzZWZ1bCB2YWx1ZXMsIHRoZSBzdHJpbmcgJzAnIGlzIGFsbG93ZWQKICAgICAgICBuZXh0IFNUUklOR1BBUkFNIGlmICFleGlzdHMgJFBhcmFteyRTdHJpbmdQYXJhbX07CiAgICAgICAgbmV4dCBTVFJJTkdQQVJBTSBpZiAhZGVmaW5lZCAkUGFyYW17JFN0cmluZ1BhcmFtfTsKICAgICAgICBuZXh0IFNUUklOR1BBUkFNIGlmICRQYXJhbXskU3RyaW5nUGFyYW19IGVxICcnOwoKICAgICAgICAjIHF1b3RlCiAgICAgICAgJFBhcmFteyRTdHJpbmdQYXJhbX0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UXVvdGUoICRQYXJhbXskU3RyaW5nUGFyYW19ICk7CgogICAgICAgICMgd2lsZGNhcmRzIGFyZSB1c2VkCiAgICAgICAgaWYgKCAkUGFyYW17VXNpbmdXaWxkY2FyZHN9ICkgewoKICAgICAgICAgICAgIyBnZXQgbGlrZSBlc2NhcGUgc3RyaW5nIG5lZWRlZCBmb3Igc29tZSBkYXRhYmFzZXMgKGUuZy4gb3JhY2xlKQogICAgICAgICAgICBteSAkTGlrZUVzY2FwZVN0cmluZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5HZXREYXRhYmFzZUZ1bmN0aW9uKCdMaWtlRXNjYXBlU3RyaW5nJyk7CgogICAgICAgICAgICAjIFF1b3RlCiAgICAgICAgICAgICRQYXJhbXskU3RyaW5nUGFyYW19ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlF1b3RlKCAkUGFyYW17JFN0cmluZ1BhcmFtfSwgJ0xpa2UnICk7CgogICAgICAgICAgICAjIHJlcGxhY2UgKiB3aXRoICUKICAgICAgICAgICAgJFBhcmFteyRTdHJpbmdQYXJhbX0gPX4gc3sgXCorIH17JX14bXNnOwoKICAgICAgICAgICAgIyBkbyBub3QgdXNlIHN0cmluZyBwYXJhbXMgd2hpY2ggY29udGFpbiBvbmx5ICUKICAgICAgICAgICAgbmV4dCBTVFJJTkdQQVJBTSBpZiAkUGFyYW17JFN0cmluZ1BhcmFtfSA9fiBteyBcQSAlKiBceiB9eG1zOwoKICAgICAgICAgICAgcHVzaCBAU1FMV2hlcmUsCiAgICAgICAgICAgICAgICAiTE9XRVIoJFN0cmluZ1BhcmFtc3skU3RyaW5nUGFyYW19KSBMSUtFIExPV0VSKCckUGFyYW17JFN0cmluZ1BhcmFtfScpICRMaWtlRXNjYXBlU3RyaW5nIjsKICAgICAgICB9CgogICAgICAgICMgbm8gd2lsZGNhcmRzIGFyZSB1c2VkCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHB1c2ggQFNRTFdoZXJlLAogICAgICAgICAgICAgICAgIkxPV0VSKCRTdHJpbmdQYXJhbXN7JFN0cmluZ1BhcmFtfSkgPSBMT1dFUignJFBhcmFteyRTdHJpbmdQYXJhbX0nKSI7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGFycmF5IHBhcmFtcwogICAgbXkgJUFycmF5UGFyYW1zID0gKAogICAgICAgIE9sZFZhbHVlcyA9PiAnY2guY29udGVudF9vbGQnLAogICAgICAgIE5ld1ZhbHVlcyA9PiAnY2guY29udGVudF9uZXcnLAogICAgICAgIENoYW5nZUJ5ICA9PiAnY2guY3JlYXRlX2J5JywKICAgICk7CgogICAgIyBhZGQgYXJyYXkgcGFyYW1zIHRvIHNxbC13aGVyZS1hcnJheQogICAgQVJSQVlQQVJBTToKICAgIGZvciBteSAkQXJyYXlQYXJhbSAoIHNvcnQga2V5cyAlQXJyYXlQYXJhbXMgKSB7CgogICAgICAgICMgaWdub3JlIGVtcHR5IGxpc3RzCiAgICAgICAgbmV4dCBBUlJBWVBBUkFNIGlmICFAeyAkUGFyYW17JEFycmF5UGFyYW19IH07CgogICAgICAgICMgcXVvdGUKICAgICAgICBmb3IgbXkgJE9uZVBhcmFtICggQHsgJFBhcmFteyRBcnJheVBhcmFtfSB9ICkgewogICAgICAgICAgICAkT25lUGFyYW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UXVvdGUoJE9uZVBhcmFtKTsKCiAgICAgICAgICAgICMgZm9yIHN0cmluZ3Mgd2UgbmVlZCBzaW5nbGUgcXVvdGVzCiAgICAgICAgICAgIGlmICggJE9uZVBhcmFtICF+IG17IFxBIFsrLV0/IFxkKyAoPzpcLlxkKyk/IFx6IH14bXMgKSB7CiAgICAgICAgICAgICAgICAkT25lUGFyYW0gPSAiJyRPbmVQYXJhbSciOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZSBzdHJpbmcKICAgICAgICBteSAkSW5TdHJpbmcgPSBqb2luICcsICcsIEB7ICRQYXJhbXskQXJyYXlQYXJhbX0gfTsKCiAgICAgICAgcHVzaCBAU1FMV2hlcmUsICIkQXJyYXlQYXJhbXN7JEFycmF5UGFyYW19IElOICgkSW5TdHJpbmcpIjsKICAgIH0KCiAgICAjIHNldCB0aW1lIHBhcmFtcwogICAgbXkgJVRpbWVQYXJhbXMgPSAoCgogICAgICAgICMgdGltZXMgaW4gY2hhbmdlX2hpc3RvcnkKICAgICAgICBDaGFuZ2VUaW1lTmV3ZXJEYXRlID0+ICdjaC5jcmVhdGVfdGltZSA+PScsCiAgICAgICAgQ2hhbmdlVGltZU9sZGVyRGF0ZSA9PiAnY2guY3JlYXRlX3RpbWUgPD0nLAogICAgKTsKCiAgICAjIGNoZWNrIGFuZCBhZGQgdGltZSBwYXJhbXMgdG8gV0hFUkUKICAgIFRJTUVQQVJBTToKICAgIGZvciBteSAkVGltZVBhcmFtICggc29ydCBrZXlzICVUaW1lUGFyYW1zICkgewoKICAgICAgICBuZXh0IFRJTUVQQVJBTSBpZiAhJFBhcmFteyRUaW1lUGFyYW19OwoKICAgICAgICBpZiAoICRQYXJhbXskVGltZVBhcmFtfSAhfiBteyBcQSBcZFxkXGRcZC1cZFxkLVxkXGQgXHMgXGRcZDpcZFxkOlxkXGQgXHogfXhtcyApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBwYXJhbWV0ZXIgJFRpbWVQYXJhbSBoYXMgYW4gaW52YWxpZCBkYXRlIGZvcm1hdCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgJFBhcmFteyRUaW1lUGFyYW19ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlF1b3RlKCAkUGFyYW17JFRpbWVQYXJhbX0gKTsKCiAgICAgICAgIyB0aGUgdGltZSBhdHRyaWJ1dGVzIG9mIGNoYW5nZV9oaXN0b3J5IHNob3cgdXAgaW4gdGhlIFdIRVJFIGNsYXVzZQogICAgICAgIHB1c2ggQFNRTFdoZXJlLCAiJFRpbWVQYXJhbXN7JFRpbWVQYXJhbX0gJyRQYXJhbXskVGltZVBhcmFtfSciOwogICAgfQoKICAgICMgY3JlYXRlIFNRTCBzdGF0ZW1lbnQKICAgIG15ICRUeXBlID0gbGMgJFBhcmFte1R5cGV9OwogICAgbXkgJFNRTCAgPSAiU0VMRUNUIERJU1RJTkNUIGNoLiR7VHlwZX1faWQgRlJPTSBjaGFuZ2VfaGlzdG9yeSBjaCAiOwoKICAgIGlmICggJFJlc3VsdCBlcSAnQ09VTlQnICkgewogICAgICAgICRTUUwgPSAiU0VMRUNUIENPVU5UKCBESVNUSU5DVCggY2guJHtUeXBlfV9pZCApICkgRlJPTSBjaGFuZ2VfaGlzdG9yeSBjaCAiOwogICAgfQoKICAgICMgYWRkIHRoZSBXSEVSRSBjbGF1c2UKICAgIGlmIChAU1FMV2hlcmUpIHsKICAgICAgICAkU1FMIC49ICdXSEVSRSAnOwogICAgICAgICRTUUwgLj0gam9pbiAnIEFORCAnLCBtYXAgeyIoICRfICkifSBAU1FMV2hlcmU7CiAgICAgICAgJFNRTCAuPSAnICc7CiAgICB9CgogICAgIyBpZ25vcmUgdGhlIHBhcmFtZXRlciAnTGltaXQnIHdoZW4gcmVzdWx0IHR5cGUgaXMgJ0NPVU5UJwogICAgaWYgKCAkUmVzdWx0IGVxICdDT1VOVCcgKSB7CiAgICAgICAgZGVsZXRlICRQYXJhbXtMaW1pdH07CiAgICB9CgogICAgIyBhc2sgZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJFNRTCwKICAgICAgICBMaW1pdCA9PiAkUGFyYW17TGltaXR9LAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15IEBJRHM7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQElEcywgJFJvd1swXTsKICAgIH0KCiAgICBpZiAoICRSZXN1bHQgZXEgJ0NPVU5UJyApIHsKCiAgICAgICAgIyByZXR1cm4gdGhlIENPVU5UKGMuaWQpIGF0dHJpYnV0ZQogICAgICAgIHJldHVybiAkSURzWzBdOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgcmV0dXJuIFxASURzOwogICAgfQp9Cgo9aGVhZDIgSGlzdG9yeVR5cGVMb29rdXAoKQoKVGhpcyBtZXRob2QgZG9lcyBhIGxvb2t1cCBmb3IgYSBoaXN0b3J5IHR5cGUuIElmIGEgaGlzdG9yeSB0eXBlIGlkIGlzIGdpdmVuLAppdCByZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBoaXN0b3J5IHR5cGUuIElmIGEgaGlzdG9yeSB0eXBlIGlzIGdpdmVuLCB0aGUgYXBwcm9wcmlhdGUKaWQgaXMgcmV0dXJuZWQuCgogICAgbXkgJE5hbWUgPSAkSGlzdG9yeU9iamVjdC0+SGlzdG9yeVR5cGVMb29rdXAoCiAgICAgICAgSGlzdG9yeVR5cGVJRCA9PiAxMjM0LAogICAgKTsKCiAgICBteSAkSUQgPSAkSGlzdG9yeU9iamVjdC0+SGlzdG9yeVR5cGVMb29rdXAoCiAgICAgICAgSGlzdG9yeVR5cGUgPT4gJ1dvcmtPcmRlckFkZCcsCiAgICApOwoKPWN1dAoKc3ViIEhpc3RvcnlUeXBlTG9va3VwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBmb3IgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17SGlzdG9yeVR5cGVJRH0gJiYgISRQYXJhbXtIaXN0b3J5VHlwZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIEhpc3RvcnlUeXBlSUQgb3IgSGlzdG9yeVR5cGUhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGlmIGJvdGggdmFsaWQga2V5cyBhcmUgZ2l2ZW4sIHJldHVybgogICAgaWYgKCAkUGFyYW17SGlzdG9yeVR5cGVJRH0gJiYgJFBhcmFte0hpc3RvcnlUeXBlfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgZWl0aGVyIEhpc3RvcnlUeXBlSUQgT1IgSGlzdG9yeVR5cGUgLSBub3QgYm90aCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZmluZCBvdXQgd2hhdCB0aGUgdXNlZCBrZXkgaXMKICAgIG15ICRLZXkgPSAnSGlzdG9yeVR5cGUnOwoKICAgIGlmICggJFBhcmFte0hpc3RvcnlUeXBlSUR9ICkgewogICAgICAgICRLZXkgPSAnSGlzdG9yeVR5cGVJRCc7CiAgICB9CgogICAgIyBjaGVjayB0aGUgY2FjaGUKICAgIG15ICRDYWNoZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAnSGlzdG9yeVR5cGVMb29rdXA6OicgLiAkS2V5IC4gJzo6JyAuICRQYXJhbXskS2V5fSwKICAgICk7CgogICAgIyBpZiByZXN1bHQgaXMgY2FjaGVkIHJldHVybiB0aGF0IHJlc3VsdAogICAgcmV0dXJuICRDYWNoZSBpZiAkQ2FjaGU7CgogICAgIyBzZXQgdGhlIGFwcHJvcHJpYXRlIFNRTCBzdGF0ZW1lbnQKICAgIG15ICRTUUwgPSAnU0VMRUNUIG5hbWUgRlJPTSBjaGFuZ2VfaGlzdG9yeV90eXBlIFdIRVJFIGlkID0gPyc7CgogICAgaWYgKCAkS2V5IGVxICdIaXN0b3J5VHlwZScgKSB7CiAgICAgICAgJFNRTCA9ICdTRUxFQ1QgaWQgRlJPTSBjaGFuZ2VfaGlzdG9yeV90eXBlIFdIRVJFIG5hbWUgPSA/JzsKICAgIH0KCiAgICAjIGZldGNoIHRoZSByZXF1ZXN0ZWQgdmFsdWUKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJFNRTCwKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17JEtleX0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICBteSAkVmFsdWU7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRWYWx1ZSA9ICRSb3dbMF07CiAgICB9CgogICAgIyBzYXZlIHZhbHVlIGluIGNhY2hlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+U2V0KAogICAgICAgIFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgICA9PiAnSGlzdG9yeVR5cGVMb29rdXA6OicgLiAkS2V5IC4gJzo6JyAuICRQYXJhbXskS2V5fSwKICAgICAgICBWYWx1ZSA9PiAkVmFsdWUsCiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICApOwoKICAgIHJldHVybiAkVmFsdWU7Cn0KCj1oZWFkMiBIaXN0b3J5VHlwZUxpc3QoKQoKcmV0dXJucyBhbiBhcnJheSByZWZlcmVuY2Ugd2l0aCBoYXNoIHJlZmVyZW5jZXMuIFRoZSBrZXkgb2YgdGhlIGhhc2ggcmVmZXJlbmNlIGlzIHRoZSBpZApvZiBhbiByZWNpcGllbnQgYW5kIHRoZSBuYW1lIGlzIHRoZSB2YWx1ZS4KCj1jdXQKCnN1YiBIaXN0b3J5VHlwZUxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIHRoZSBjYWNoZQogICAgbXkgJENhY2hlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkdldCgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICdIaXN0b3J5VHlwZUxpc3QnLAogICAgKTsKCiAgICAjIGlmIHJlc3VsdCBpcyBjYWNoZWQgcmV0dXJuIHRoYXQgcmVzdWx0CiAgICByZXR1cm4gJENhY2hlIGlmICRDYWNoZTsKCiAgICAjIHByZXBhcmUgZGIgcXVlcnkKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQsIG5hbWUgRlJPTSBjaGFuZ2VfaGlzdG9yeV90eXBlIE9SREVSIEJZIG5hbWUnLAogICAgKTsKCiAgICAjIHJldHJpZXZlIGRhdGEKICAgIG15IEBIaXN0b3J5VHlwZXM7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICRFbnRyeSA9IHsKICAgICAgICAgICAgS2V5ICAgPT4gJFJvd1swXSwKICAgICAgICAgICAgVmFsdWUgPT4gJFJvd1sxXSwKICAgICAgICB9OwogICAgICAgIHB1c2ggQEhpc3RvcnlUeXBlcywgJEVudHJ5OwogICAgfQoKICAgICMgc2F2ZSB2YWx1ZXMgaW4gY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgID0+ICdIaXN0b3J5VHlwZUxpc3QnLAogICAgICAgIFZhbHVlID0+IFxASGlzdG9yeVR5cGVzLAogICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgKTsKCiAgICByZXR1cm4gXEBIaXN0b3J5VHlwZXM7Cn0KCj1oZWFkMiBIaXN0b3J5U3RyaW5nc0xpc3QoKQoKUmV0dXJucyBhIGhhc2ggb2YgYWxsIHRyYW5zbGF0YWJsZSBoaXN0b3J5IHN0cmluZ3MuCgo9Y3V0CgpzdWIgSGlzdG9yeVN0cmluZ3NMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBEZWZpbmUgdHJhbnNsYXRhYmxlIGhpc3Rvcnkgc3RyaW5ncy4KICAgIG15ICVIaXN0b3J5U3RyaW5ncyA9ICgKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6QWN0aW9uQWRkJyAgICAgICAgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnJXM6ICVzJyksCiAgICAgICAgJ0NoYW5nZUhpc3Rvcnk6OkFjdGlvbkFkZElEJyAgICAgICAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ05ldyBBY3Rpb24gKElEPSVzKScpLAogICAgICAgICdDaGFuZ2VIaXN0b3J5OjpBY3Rpb25EZWxldGUnICAgICAgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdBY3Rpb24gKElEPSVzKSBkZWxldGVkJyksCiAgICAgICAgJ0NoYW5nZUhpc3Rvcnk6OkFjdGlvbkRlbGV0ZUFsbCcgICAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0FsbCBBY3Rpb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnKSwKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6QWN0aW9uRXhlY3V0ZScgICAgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnQWN0aW9uIChJRD0lcykgZXhlY3V0ZWQ6ICVzJyksCiAgICAgICAgJ0NoYW5nZUhpc3Rvcnk6OkFjdGlvblVwZGF0ZScgICAgICAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJyVzIChBY3Rpb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJyksCiAgICAgICAgJ0NoYW5nZUhpc3Rvcnk6OkNoYW5nZUFjdHVhbEVuZFRpbWVSZWFjaGVkJyAgICA9PiBUcmFuc2xhdGFibGUoJ0NoYW5nZSAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLicpLAogICAgICAgICdDaGFuZ2VIaXN0b3J5OjpDaGFuZ2VBY3R1YWxTdGFydFRpbWVSZWFjaGVkJyAgPT4gVHJhbnNsYXRhYmxlKCdDaGFuZ2UgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLicpLAogICAgICAgICdDaGFuZ2VIaXN0b3J5OjpDaGFuZ2VBZGQnICAgICAgICAgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdOZXcgQ2hhbmdlIChJRD0lcyknKSwKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6Q2hhbmdlQXR0YWNobWVudEFkZCcgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnTmV3IEF0dGFjaG1lbnQ6ICVzJyksCiAgICAgICAgJ0NoYW5nZUhpc3Rvcnk6OkNoYW5nZUF0dGFjaG1lbnREZWxldGUnICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0RlbGV0ZWQgQXR0YWNobWVudCAlcycpLAogICAgICAgICdDaGFuZ2VIaXN0b3J5OjpDaGFuZ2VDQUJEZWxldGUnICAgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdDQUIgRGVsZXRlZCAlcycpLAogICAgICAgICdDaGFuZ2VIaXN0b3J5OjpDaGFuZ2VDQUJVcGRhdGUnICAgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCclczogKG5ldz0lcywgb2xkPSVzKScpLAogICAgICAgICdDaGFuZ2VIaXN0b3J5OjpDaGFuZ2VMaW5rQWRkJyAgICAgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnKSwKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6Q2hhbmdlTGlua0RlbGV0ZScgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnTGluayB0byAlcyAoSUQ9JXMpIGRlbGV0ZWQnKSwKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6Q2hhbmdlTm90aWZpY2F0aW9uU2VudCcgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnTm90aWZpY2F0aW9uIHNlbnQgdG8gJXMgKEV2ZW50OiAlcyknKSwKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6Q2hhbmdlUGxhbm5lZEVuZFRpbWVSZWFjaGVkJyAgID0+IFRyYW5zbGF0YWJsZSgnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLicpLAogICAgICAgICdDaGFuZ2VIaXN0b3J5OjpDaGFuZ2VQbGFubmVkU3RhcnRUaW1lUmVhY2hlZCcgPT4gVHJhbnNsYXRhYmxlKCdDaGFuZ2UgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nKSwKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6Q2hhbmdlUmVxdWVzdGVkVGltZVJlYWNoZWQnICAgID0+IFRyYW5zbGF0YWJsZSgnQ2hhbmdlIChJRD0lcykgcmVhY2hlZCByZXF1ZXN0ZWQgdGltZS4nKSwKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6Q2hhbmdlVXBkYXRlJyAgICAgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnJXM6IChuZXc9JXMsIG9sZD0lcyknKSwKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6Q29uZGl0aW9uQWRkJyAgICAgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnJXM6ICVzJyksCiAgICAgICAgJ0NoYW5nZUhpc3Rvcnk6OkNvbmRpdGlvbkFkZElEJyAgICAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ05ldyBDb25kaXRpb24gKElEPSVzKScpLAogICAgICAgICdDaGFuZ2VIaXN0b3J5OjpDb25kaXRpb25EZWxldGUnICAgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdDb25kaXRpb24gKElEPSVzKSBkZWxldGVkJyksCiAgICAgICAgJ0NoYW5nZUhpc3Rvcnk6OkNvbmRpdGlvbkRlbGV0ZUFsbCcgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0FsbCBDb25kaXRpb25zIG9mIENoYW5nZSAoSUQ9JXMpIGRlbGV0ZWQnKSwKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6Q29uZGl0aW9uVXBkYXRlJyAgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnJXMgKENvbmRpdGlvbiBJRD0lcyk6IChuZXc9JXMsIG9sZD0lcyknKSwKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6RXhwcmVzc2lvbkFkZCcgICAgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnJXM6ICVzJyksCiAgICAgICAgJ0NoYW5nZUhpc3Rvcnk6OkV4cHJlc3Npb25BZGRJRCcgICAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ05ldyBFeHByZXNzaW9uIChJRD0lcyknKSwKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6RXhwcmVzc2lvbkRlbGV0ZScgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnRXhwcmVzc2lvbiAoSUQ9JXMpIGRlbGV0ZWQnKSwKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6RXhwcmVzc2lvbkRlbGV0ZUFsbCcgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnQWxsIEV4cHJlc3Npb25zIG9mIENvbmRpdGlvbiAoSUQ9JXMpIGRlbGV0ZWQnKSwKICAgICAgICAnQ2hhbmdlSGlzdG9yeTo6RXhwcmVzc2lvblVwZGF0ZScgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnJXMgKEV4cHJlc3Npb24gSUQ9JXMpOiAobmV3PSVzLCBvbGQ9JXMpJyksCiAgICAgICAgJ1dvcmtPcmRlckhpc3Rvcnk6OldvcmtPcmRlckFjdHVhbEVuZFRpbWVSZWFjaGVkJyA9PiBUcmFuc2xhdGFibGUoJ1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIGVuZCB0aW1lLicpLAogICAgICAgICdXb3JrT3JkZXJIaXN0b3J5OjpXb3JrT3JkZXJBY3R1YWxFbmRUaW1lUmVhY2hlZFdpdGhXb3JrT3JkZXJJRCcgPT4KICAgICAgICAgICAgVHJhbnNsYXRhYmxlKCdXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBlbmQgdGltZS4nKSwKICAgICAgICAnV29ya09yZGVySGlzdG9yeTo6V29ya09yZGVyQWN0dWFsU3RhcnRUaW1lUmVhY2hlZCcgPT4KICAgICAgICAgICAgVHJhbnNsYXRhYmxlKCdXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIGFjdHVhbCBzdGFydCB0aW1lLicpLAogICAgICAgICdXb3JrT3JkZXJIaXN0b3J5OjpXb3JrT3JkZXJBY3R1YWxTdGFydFRpbWVSZWFjaGVkV2l0aFdvcmtPcmRlcklEJyA9PgogICAgICAgICAgICBUcmFuc2xhdGFibGUoJ1dvcmtvcmRlciAoSUQ9JXMpIHJlYWNoZWQgYWN0dWFsIHN0YXJ0IHRpbWUuJyksCiAgICAgICAgJ1dvcmtPcmRlckhpc3Rvcnk6OldvcmtPcmRlckFkZCcgICAgICAgICAgICAgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJyksCiAgICAgICAgJ1dvcmtPcmRlckhpc3Rvcnk6OldvcmtPcmRlckFkZFdpdGhXb3JrT3JkZXJJRCcgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnTmV3IFdvcmtvcmRlciAoSUQ9JXMpJyksCiAgICAgICAgJ1dvcmtPcmRlckhpc3Rvcnk6OldvcmtPcmRlckF0dGFjaG1lbnRBZGQnICAgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnTmV3IEF0dGFjaG1lbnQgZm9yIFdvcmtPcmRlcjogJXMnKSwKICAgICAgICAnV29ya09yZGVySGlzdG9yeTo6V29ya09yZGVyQXR0YWNobWVudEFkZFdpdGhXb3JrT3JkZXJJRCcgPT4KICAgICAgICAgICAgVHJhbnNsYXRhYmxlKCcoSUQ9JXMpIE5ldyBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJyksCiAgICAgICAgJ1dvcmtPcmRlckhpc3Rvcnk6OldvcmtPcmRlckF0dGFjaG1lbnREZWxldGUnID0+IFRyYW5zbGF0YWJsZSgnRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcycpLAogICAgICAgICdXb3JrT3JkZXJIaXN0b3J5OjpXb3JrT3JkZXJBdHRhY2htZW50RGVsZXRlV2l0aFdvcmtPcmRlcklEJyA9PgogICAgICAgICAgICBUcmFuc2xhdGFibGUoJyhJRD0lcykgRGVsZXRlZCBBdHRhY2htZW50IGZyb20gV29ya09yZGVyOiAlcycpLAogICAgICAgICdXb3JrT3JkZXJIaXN0b3J5OjpXb3JrT3JkZXJSZXBvcnRBdHRhY2htZW50QWRkJyA9PiBUcmFuc2xhdGFibGUoJ05ldyBSZXBvcnQgQXR0YWNobWVudCBmb3IgV29ya09yZGVyOiAlcycpLAogICAgICAgICdXb3JrT3JkZXJIaXN0b3J5OjpXb3JrT3JkZXJSZXBvcnRBdHRhY2htZW50QWRkV2l0aFdvcmtPcmRlcklEJyA9PgogICAgICAgICAgICBUcmFuc2xhdGFibGUoJyhJRD0lcykgTmV3IFJlcG9ydCBBdHRhY2htZW50IGZvciBXb3JrT3JkZXI6ICVzJyksCiAgICAgICAgJ1dvcmtPcmRlckhpc3Rvcnk6OldvcmtPcmRlclJlcG9ydEF0dGFjaG1lbnREZWxldGUnID0+CiAgICAgICAgICAgIFRyYW5zbGF0YWJsZSgnRGVsZXRlZCBSZXBvcnQgQXR0YWNobWVudCBmcm9tIFdvcmtPcmRlcjogJXMnKSwKICAgICAgICAnV29ya09yZGVySGlzdG9yeTo6V29ya09yZGVyUmVwb3J0QXR0YWNobWVudERlbGV0ZVdpdGhXb3JrT3JkZXJJRCcgPT4KICAgICAgICAgICAgVHJhbnNsYXRhYmxlKCcoSUQ9JXMpIERlbGV0ZWQgUmVwb3J0IEF0dGFjaG1lbnQgZnJvbSBXb3JrT3JkZXI6ICVzJyksCiAgICAgICAgJ1dvcmtPcmRlckhpc3Rvcnk6OldvcmtPcmRlckRlbGV0ZScgICAgICAgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnV29ya29yZGVyIChJRD0lcykgZGVsZXRlZCcpLAogICAgICAgICdXb3JrT3JkZXJIaXN0b3J5OjpXb3JrT3JkZXJEZWxldGVXaXRoV29ya09yZGVySUQnICAgICA9PiBUcmFuc2xhdGFibGUoJ1dvcmtvcmRlciAoSUQ9JXMpIGRlbGV0ZWQnKSwKICAgICAgICAnV29ya09yZGVySGlzdG9yeTo6V29ya09yZGVyTGlua0FkZCcgICAgICAgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdMaW5rIHRvICVzIChJRD0lcykgYWRkZWQnKSwKICAgICAgICAnV29ya09yZGVySGlzdG9yeTo6V29ya09yZGVyTGlua0FkZFdpdGhXb3JrT3JkZXJJRCcgICAgPT4gVHJhbnNsYXRhYmxlKCcoSUQ9JXMpIExpbmsgdG8gJXMgKElEPSVzKSBhZGRlZCcpLAogICAgICAgICdXb3JrT3JkZXJIaXN0b3J5OjpXb3JrT3JkZXJMaW5rRGVsZXRlJyAgICAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0xpbmsgdG8gJXMgKElEPSVzKSBkZWxldGVkJyksCiAgICAgICAgJ1dvcmtPcmRlckhpc3Rvcnk6OldvcmtPcmRlckxpbmtEZWxldGVXaXRoV29ya09yZGVySUQnID0+IFRyYW5zbGF0YWJsZSgnKElEPSVzKSBMaW5rIHRvICVzIChJRD0lcykgZGVsZXRlZCcpLAogICAgICAgICdXb3JrT3JkZXJIaXN0b3J5OjpXb3JrT3JkZXJOb3RpZmljYXRpb25TZW50JyAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ05vdGlmaWNhdGlvbiBzZW50IHRvICVzIChFdmVudDogJXMpJyksCiAgICAgICAgJ1dvcmtPcmRlckhpc3Rvcnk6OldvcmtPcmRlck5vdGlmaWNhdGlvblNlbnRXaXRoV29ya09yZGVySUQnID0+CiAgICAgICAgICAgIFRyYW5zbGF0YWJsZSgnKElEPSVzKSBOb3RpZmljYXRpb24gc2VudCB0byAlcyAoRXZlbnQ6ICVzKScpLAogICAgICAgICdXb3JrT3JkZXJIaXN0b3J5OjpXb3JrT3JkZXJQbGFubmVkRW5kVGltZVJlYWNoZWQnID0+CiAgICAgICAgICAgIFRyYW5zbGF0YWJsZSgnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLicpLAogICAgICAgICdXb3JrT3JkZXJIaXN0b3J5OjpXb3JrT3JkZXJQbGFubmVkRW5kVGltZVJlYWNoZWRXaXRoV29ya09yZGVySUQnID0+CiAgICAgICAgICAgIFRyYW5zbGF0YWJsZSgnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIGVuZCB0aW1lLicpLAogICAgICAgICdXb3JrT3JkZXJIaXN0b3J5OjpXb3JrT3JkZXJQbGFubmVkU3RhcnRUaW1lUmVhY2hlZCcgPT4KICAgICAgICAgICAgVHJhbnNsYXRhYmxlKCdXb3Jrb3JkZXIgKElEPSVzKSByZWFjaGVkIHBsYW5uZWQgc3RhcnQgdGltZS4nKSwKICAgICAgICAnV29ya09yZGVySGlzdG9yeTo6V29ya09yZGVyUGxhbm5lZFN0YXJ0VGltZVJlYWNoZWRXaXRoV29ya09yZGVySUQnID0+CiAgICAgICAgICAgIFRyYW5zbGF0YWJsZSgnV29ya29yZGVyIChJRD0lcykgcmVhY2hlZCBwbGFubmVkIHN0YXJ0IHRpbWUuJyksCiAgICAgICAgJ1dvcmtPcmRlckhpc3Rvcnk6OldvcmtPcmRlclVwZGF0ZScgICAgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCclczogKG5ldz0lcywgb2xkPSVzKScpLAogICAgICAgICdXb3JrT3JkZXJIaXN0b3J5OjpXb3JrT3JkZXJVcGRhdGVXaXRoV29ya09yZGVySUQnID0+IFRyYW5zbGF0YWJsZSgnKElEPSVzKSAlczogKG5ldz0lcywgb2xkPSVzKScpLAogICAgKTsKCiAgICByZXR1cm4gJUhpc3RvcnlTdHJpbmdzOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMStateMachine.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVN0YXRlTWFjaGluZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVN0YXRlTWFjaGluZSAtIHN0YXRlIG1hY2hpbmUgbGliCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWN1dAoKPWhlYWQyIG5ldygpCgpDcmVhdGUgYW4gb2JqZWN0LgoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJFN0YXRlTWFjaGluZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNU3RhdGVNYWNoaW5lJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgc2V0IHRoZSBkZWJ1ZyBmbGFnCiAgICAkU2VsZi0+e0RlYnVnfSA9ICRQYXJhbXtEZWJ1Z30gfHwgMDsKCiAgICAjIGdldCB0aGUgY2FjaGUgdHlwZSBhbmQgVFRMIChpbiBzZWNvbmRzKQogICAgJFNlbGYtPntDYWNoZVR5cGV9ID0gJ0lUU01TdGF0ZU1hY2hpbmUnOwogICAgJFNlbGYtPntDYWNoZVRUTH0gID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdJVFNNQ2hhbmdlOjpDYWNoZVRUTCcpICogNjA7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgU3RhdGVUcmFuc2l0aW9uQWRkKCkKCkFkZCBhIG5ldyBzdGF0ZSB0cmFuc2l0aW9uLiBSZXR1cm5zIHRoZSB0cmFuc2l0aW9uIGlkIG9uIHN1Y2Nlc3MuCgogICAgbXkgJFRyYW5zaXRpb25JRCA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlVHJhbnNpdGlvbkFkZCgKICAgICAgICBTdGF0ZUlEICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWQgd2l0aGluIHRoZSBnaXZlbiBjbGFzcywgb3IgMCB0byBpbmRpY2F0ZSB0aGUgc3RhcnQgc3RhdGUKICAgICAgICBOZXh0U3RhdGVJRCA9PiAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWQgd2l0aGluIHRoZSBnaXZlbiBjbGFzcywgb3IgMCB0byBpbmRpY2F0ZSBhbiBlbmQgc3RhdGUKICAgICAgICBDbGFzcyAgICAgICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsICMgdGhlIG5hbWUgb2YgYSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MKICAgICk7Cgo9Y3V0CgpzdWIgU3RhdGVUcmFuc2l0aW9uQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBpZiBTdGF0ZUlEIGFuZCBOZXh0U3RhdGVJRCBhcmUgZ2l2ZW4gKHRoZXkgY2FuIGJlIDApCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhTdGF0ZUlEIE5leHRTdGF0ZUlEKSkgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgdGhhdCBjbGFzcyBpcyBnaXZlbgogICAgaWYgKCAhJFBhcmFte0NsYXNzfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ2xhc3MhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIHRoYXQgbm90IGJvdGggU3RhdGVJRCBhbmQgTmV4dFN0YXRlSUQgYXJlIHplcm8KICAgIGlmICggISRQYXJhbXtTdGF0ZUlEfSAmJiAhJFBhcmFte05leHRTdGF0ZUlEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlN0YXRlSUQgYW5kIE5leHRTdGF0ZUlEIGNhbid0IGJvdGggYmUgemVybyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZGVmaW5lIGxvb2t1cCBoYXNoIGZvciBzdGF0ZSBuYW1lCiAgICBteSAlU3RhdGVJRDJTdGF0ZTsKCiAgICAjIGNoZWNrIGlmIFN0YXRlSUQgYW5kIE5leHRTdGF0ZUlEIGJlbG9uZyB0byB0aGUgZ2l2ZW4gY2xhc3MKICAgIEFSR1VNRU5UOgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoU3RhdGVJRCBOZXh0U3RhdGVJRCkpIHsKCiAgICAgICAgJFN0YXRlSUQyU3RhdGV7ICRQYXJhbXskQXJndW1lbnR9IH0gPSAkU2VsZi0+U3RhdGVMb29rdXAoCiAgICAgICAgICAgIFN0YXRlSUQgPT4gJFBhcmFteyRBcmd1bWVudH0sCiAgICAgICAgICAgIENsYXNzICAgPT4gJFBhcmFte0NsYXNzfSwKICAgICAgICApOwoKICAgICAgICAjIGRvbnQgY2hlY2sgemVybyB2YWx1ZXMKICAgICAgICBuZXh0IEFSR1VNRU5UIGlmICEkUGFyYW17JEFyZ3VtZW50fTsKCiAgICAgICAgIyBnZXQgY2xhc3MKICAgICAgICBteSAkRGF0YVJlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtR2V0KAogICAgICAgICAgICBJdGVtSUQgPT4gJFBhcmFteyRBcmd1bWVudH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBpZiBpZCBiZWxvbmdzIHRvIGdpdmVuIGNsYXNzCiAgICAgICAgaWYgKCAhJERhdGFSZWYgfHwgISV7JERhdGFSZWZ9IHx8ICREYXRhUmVmLT57Q2xhc3N9IG5lICRQYXJhbXtDbGFzc30gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICIkQXJndW1lbnQgJFBhcmFteyRBcmd1bWVudH0gaXMgbm90IGluIHRoZSBjbGFzcyAkUGFyYW17Q2xhc3N9ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiBhIHN0YXRlIHRyYW5zaXRpb24gd2l0aCB0aGUgU3RhdGVJRCBhbmQgTmV4dFN0YXRlSUQgZXhpc3RzIGFscmVhZHkKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQgRlJPTSBjaGFuZ2Vfc3RhdGVfbWFjaGluZSAnCiAgICAgICAgICAgIC4gJ1dIRVJFIHN0YXRlX2lkID0gPyAnCiAgICAgICAgICAgIC4gJ0FORCBuZXh0X3N0YXRlX2lkID0gPycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte1N0YXRlSUR9LCBcJFBhcmFte05leHRTdGF0ZUlEfSBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJFRyYW5zaXRpb25JRDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFRyYW5zaXRpb25JRCA9ICRSb3dbMF07CiAgICB9CgogICAgIyBkbyBub3QgaW5zZXJ0IHRoaXMgdHJhbnNpdGlvbiB0d2ljZQogICAgcmV0dXJuICRUcmFuc2l0aW9uSUQgaWYgJFRyYW5zaXRpb25JRDsKCiAgICAjIGNoZWNrIGlmIFN0YXRlSUQgaXMgYSBzdGFydCBzdGF0ZSAoPTApIGFuZCBhbm90aGVyIHN0YXJ0IHN0YXRlIGFscmVhZHkgZXhpc3RzCiAgICBpZiAoICEkUGFyYW17U3RhdGVJRH0gKSB7CgogICAgICAgICMgY291bnQgdGhlIG51bWJlciBvZiBleHN0aW5nIHN0YXJ0IHN0YXRlcyBpbiB0aGUgZ2l2ZW4gY2xhc3MKICAgICAgICAjICggdGhlIHN0YXRlX2lkIDAgaW5kaWNhdGVzIHRoYXQgdGhlIG5leHRfc3RhdGVfaWQgaXMgYSBzdGFydCBzdGF0ZSApCiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICdTRUxFQ1QgY291bnQocy5pZCkgJwogICAgICAgICAgICAgICAgLiAnRlJPTSBjaGFuZ2Vfc3RhdGVfbWFjaGluZSBzLCBnZW5lcmFsX2NhdGFsb2cgZyAnCiAgICAgICAgICAgICAgICAuICdXSEVSRSBnLmdlbmVyYWxfY2F0YWxvZ19jbGFzcyA9ID8gJwogICAgICAgICAgICAgICAgLiAnQU5EIHMubmV4dF9zdGF0ZV9pZCA9IGcuaWQgJwogICAgICAgICAgICAgICAgLiAnQU5EIHMuc3RhdGVfaWQgPSAwJywKICAgICAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte0NsYXNzfSBdLAogICAgICAgICAgICBMaW1pdCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgICAgIG15ICRDb3VudDsKICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAkQ291bnQgPSAkUm93WzBdOwogICAgICAgIH0KCiAgICAgICAgIyBpZiB0aGVyZSBpcyBhbHJlYWR5IGEgc3RhcnQgc3RhdGUKICAgICAgICBpZiAoJENvdW50KSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDYW4gbm90IGFkZCBzdGF0ZSAnJFN0YXRlSUQyU3RhdGV7JFBhcmFte05leHRTdGF0ZUlEfX0nICIKICAgICAgICAgICAgICAgICAgICAuICIoSUQ6ICRQYXJhbXtOZXh0U3RhdGVJRH0pIGFzIHN0YXJ0IHN0YXRlLiAiCiAgICAgICAgICAgICAgICAgICAgLiAiVGhlcmUgaXMgYWxyZWFkeSBhIHN0YXJ0IHN0YXRlIGRlZmluZWQgZm9yIGNsYXNzICckUGFyYW17Q2xhc3N9JyEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcHJldmVudCBzZXR0aW5nIGFuIGVuZCBzdGF0ZSB0cmFuc2l0aW9uLCBpZiBvdGhlciBzdGF0ZSB0cmFuc2lzdGlvbnMgZXhpc3QgYWxyZWFkeQogICAgaWYgKCAkUGFyYW17U3RhdGVJRH0gJiYgISRQYXJhbXtOZXh0U3RhdGVJRH0gKSB7CgogICAgICAgICMgY2hlY2sgaWYgb3RoZXIgc3RhdGUgdHJhbnNpc3Rpb25zIGV4aXN0IGZvciB0aGUgZ2l2ZW4gU3RhdGVJRAogICAgICAgIG15ICROZXh0U3RhdGVJRHMgPSAkU2VsZi0+U3RhdGVUcmFuc2l0aW9uR2V0KAogICAgICAgICAgICBTdGF0ZUlEID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICAgICAgQ2xhc3MgICA9PiAkUGFyYW17Q2xhc3N9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgaWYgYW55IG5leHQgc3RhdGVzIGFyZSBkZWZpbmVkIGZvciB0aGlzIHN0YXJ0IHN0YXRlCiAgICAgICAgaWYgKCAkTmV4dFN0YXRlSURzICYmIEB7JE5leHRTdGF0ZUlEc30gJiYgc2NhbGFyIEB7JE5leHRTdGF0ZUlEc30gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDYW4gbm90IHNldCBzdGF0ZSAiCiAgICAgICAgICAgICAgICAgICAgLiAiJyRTdGF0ZUlEMlN0YXRleyRQYXJhbXtTdGF0ZUlEfX0nIChJRDogJFBhcmFte1N0YXRlSUR9KSBhcyBlbmQgc3RhdGUsICIKICAgICAgICAgICAgICAgICAgICAuICJiZWNhdXNlIG90aGVyIGZvbGxvd2luZyBzdGF0ZXMgZXhpc3QsIHdoaWNoIG11c3QgYmUgZGVsZXRlZCBmaXJzdCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcHJldmVudCB0aGUgYWRkaW5nIG9mIG90aGVyIG5leHQgc3RhdGVzIGlmIGFuIGVuZCBzdGF0ZSBpcyBhbHJlYWR5IGRlZmluZWQKICAgICMgZm9yIHRoaXMgc3RhcnQgc3RhdGUKICAgIGVsc2lmICggJFBhcmFte1N0YXRlSUR9ICYmICRQYXJhbXtOZXh0U3RhdGVJRH0gKSB7CgogICAgICAgICMgY2hlY2sgaWYgb3RoZXIgc3RhdGUgdHJhbnNpc3Rpb25zIGV4aXN0IGZvciB0aGUgZ2l2ZW4gU3RhdGVJRAogICAgICAgIG15ICROZXh0U3RhdGVJRHMgPSAkU2VsZi0+U3RhdGVUcmFuc2l0aW9uR2V0KAogICAgICAgICAgICBTdGF0ZUlEID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICAgICAgQ2xhc3MgICA9PiAkUGFyYW17Q2xhc3N9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgaWYgdGhlcmUgaXMgYW4gZW5kIHN0YXRlICg9MCkgZGVmaW5lZCBmb3IgdGhpcyBzdGFydCBzdGF0ZQogICAgICAgIGlmICggJE5leHRTdGF0ZUlEcyAmJiBAeyROZXh0U3RhdGVJRHN9ICYmICEkTmV4dFN0YXRlSURzLT5bMF0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJTdGF0ZSAnJFN0YXRlSUQyU3RhdGV7JFBhcmFte1N0YXRlSUR9fScgIgogICAgICAgICAgICAgICAgICAgIC4gIihJRDogJFBhcmFte1N0YXRlSUR9KSBpcyBkZWZpbmVkIGFzIGFuIGVuZCBzdGF0ZSwgIgogICAgICAgICAgICAgICAgICAgIC4gIml0IG11c3QgYmUgZGVsZXRlZCBmaXJzdCwgYmVmb3JlIG5ldyBmb2xsb3dpbmcgc3RhdGVzIGNhbiBiZSBhZGRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIHN0YXRlIHRyYW5zaXRpb24gdG8gZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnSU5TRVJUIElOVE8gY2hhbmdlX3N0YXRlX21hY2hpbmUgJwogICAgICAgICAgICAuICcoc3RhdGVfaWQsIG5leHRfc3RhdGVfaWQpICcKICAgICAgICAgICAgLiAnVkFMVUVTICg/LCA/KScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17U3RhdGVJRH0sIFwkUGFyYW17TmV4dFN0YXRlSUR9LAogICAgICAgIF0sCiAgICApOwoKICAgICMgZ2V0IFRyYW5zaXRpb25JRAogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBpZCBGUk9NIGNoYW5nZV9zdGF0ZV9tYWNoaW5lICcKICAgICAgICAgICAgLiAnV0hFUkUgc3RhdGVfaWQgPSA/ICcKICAgICAgICAgICAgLiAnQU5EIG5leHRfc3RhdGVfaWQgPSA/JywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17U3RhdGVJRH0sIFwkUGFyYW17TmV4dFN0YXRlSUR9IF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRUcmFuc2l0aW9uSUQgPSAkUm93WzBdOwogICAgfQoKICAgICMgY2hlY2sgaWYgc3RhdGUgdHJhbnNpdGlvbiBjb3VsZCBiZSBhZGRlZAogICAgaWYgKCAhJFRyYW5zaXRpb25JRCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlN0YXRlVHJhbnNpdGlvbkFkZCgpIGZhaWxlZCEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2xlYW51cCBzdGF0ZW1hY2hpbmUgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgKTsKCiAgICByZXR1cm4gJFRyYW5zaXRpb25JRDsKfQoKPWhlYWQyIFN0YXRlVHJhbnNpdGlvbkRlbGV0ZSgpCgpEZWxldGUgYSBzdGF0ZSB0cmFuc2l0aW9uLiBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KCiAgICBteSAkU3VjY2VzcyA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlVHJhbnNpdGlvbkRlbGV0ZSgKICAgICAgICBTdGF0ZUlEICAgICA9PiAxLCAgIyBpZCB3aXRoaW4gdGhlIGdpdmVuIGNsYXNzLCBvciAwIHRvIGluZGljYXRlIHRoZSBzdGFydCBzdGF0ZQogICAgICAgIE5leHRTdGF0ZUlEID0+IDIsICAjIGlkIHdpdGhpbiB0aGUgZ2l2ZW4gY2xhc3MsIG9yIDAgdG8gaW5kaWNhdGUgYW4gZW5kIHN0YXRlCiAgICApOwoKPWN1dAoKc3ViIFN0YXRlVHJhbnNpdGlvbkRlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgaWYgU3RhdGVJRCBhbmQgTmV4dFN0YXRlSUQgYXJlIGdpdmVuICh0aGV5IGNhbiBiZSAwKQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoU3RhdGVJRCBOZXh0U3RhdGVJRCkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRlbGV0ZSBzdGF0ZSB0cmFuc2l0aW9uIGZyb20gZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnREVMRVRFIEZST00gY2hhbmdlX3N0YXRlX21hY2hpbmUgJwogICAgICAgICAgICAuICdXSEVSRSBzdGF0ZV9pZCA9ID8gQU5EIG5leHRfc3RhdGVfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtTdGF0ZUlEfSwgXCRQYXJhbXtOZXh0U3RhdGVJRH0sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBjbGVhbnVwIHN0YXRlbWFjaGluZSBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgU3RhdGVUcmFuc2l0aW9uRGVsZXRlQWxsKCkKCkRlbGV0ZSBhbGwgc3RhdGUgdHJhbnNpdGlvbnMgb2YgYSBjbGFzcy4gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCgogICAgbXkgJFN1Y2Nlc3MgPSAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZVRyYW5zaXRpb25EZWxldGVBbGwoCiAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLCAjIHRoZSBuYW1lIG9mIGEgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzCiAgICApOwoKPWN1dAoKc3ViIFN0YXRlVHJhbnNpdGlvbkRlbGV0ZUFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtZXRlcgogICAgaWYgKCAhJFBhcmFte0NsYXNzfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ2xhc3MhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGZpbmQgYWxsIHN0YXRlIGlkcyBhbmQgbmV4dF9zdGF0ZSBpZHMgd2hpY2ggYmVsb25nIHRvIHRoZSBnaXZlbiBjbGFzcwogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBpZCAnCiAgICAgICAgICAgIC4gJ0ZST00gZ2VuZXJhbF9jYXRhbG9nICcKICAgICAgICAgICAgLiAnV0hFUkUgZ2VuZXJhbF9jYXRhbG9nX2NsYXNzID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17Q2xhc3N9IF0sCiAgICApOwoKICAgIG15IEBJRHM7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQElEcywgJFJvd1swXTsKICAgIH0KCiAgICAjIHJldHVybiBpZiBubyBzdGF0ZSB0cmFuc2l0aW9ucyBleGlzdCBmb3IgdGhlIGdpdmVuIGNsYXNzCiAgICByZXR1cm4gMSBpZiAhQElEczsKCiAgICAjIGJ1aWxkIGlkIHN0cmluZwogICAgbXkgJElEU3RyaW5nID0gam9pbiAnLCAnLCBASURzOwoKICAgICMgZGVsZXRlIHN0YXRlIHRyYW5zaXRpb24gZnJvbSBkYXRhYmFzZQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICJERUxFVEUgRlJPTSBjaGFuZ2Vfc3RhdGVfbWFjaGluZSAiCiAgICAgICAgICAgIC4gIldIRVJFIHN0YXRlX2lkIElOICggJElEU3RyaW5nICkgIgogICAgICAgICAgICAuICJPUiBuZXh0X3N0YXRlX2lkIElOICggJElEU3RyaW5nICkiLAogICAgKTsKCiAgICAjIGNsZWFudXAgc3RhdGVtYWNoaW5lIGNhY2hlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cgp9Cgo9aGVhZDIgU3RhdGVUcmFuc2l0aW9uR2V0KCkKCkdldCBhIHN0YXRlIHRyYW5zaXRpb24gZm9yIGEgZ2l2ZW4gc3RhdGUgaWQuClJldHVybnMgYW4gYXJyYXkgcmVmZXJlbmNlIG9mIHRoZSBuZXh0IHN0YXRlIGlkcy4KCiAgICBteSAkTmV4dFN0YXRlSURzUmVmID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVUcmFuc2l0aW9uR2V0KAogICAgICAgIFN0YXRlSUQgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlkIHdpdGhpbiB0aGUgZ2l2ZW4gY2xhc3MsIG9yIDAgdG8gaW5kaWNhdGUgdGhlIHN0YXJ0IHN0YXRlCiAgICAgICAgQ2xhc3MgICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsICMgdGhlIG5hbWUgb2YgYSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MKICAgICk7Cgo9Y3V0CgpzdWIgU3RhdGVUcmFuc2l0aW9uR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBpZiBTdGF0ZUlEIGFyZSBnaXZlbiAodGhleSBjYW4gYmUgMCkKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFN0YXRlSUQpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayB0aGF0IGNsYXNzIGlzIGdpdmVuCiAgICBpZiAoICEkUGFyYW17Q2xhc3N9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBDbGFzcyEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgdGhlIGNhY2hlCiAgICBteSAkQ2FjaGVLZXkgPSAnU3RhdGVUcmFuc2l0aW9uR2V0OjpTdGF0ZUlEOjonIC4gJFBhcmFte1N0YXRlSUR9IC4gJzo6Q2xhc3M6OicgLiAkUGFyYW17Q2xhc3N9OwogICAgbXkgJENhY2hlICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkdldCgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICk7CiAgICByZXR1cm4gJENhY2hlIGlmICRDYWNoZTsKCiAgICAjIGNoZWNrIGlmIFN0YXRlSUQgYmVsb25ncyB0byB0aGUgZ2l2ZW4gY2xhc3MsIGJ1dCBvbmx5IGlmIHN0YXRlIGlkIGlzIG5vdCBhIHN0YXJ0IHN0YXRlICg9MCkKICAgIGlmICggJFBhcmFte1N0YXRlSUR9ICkgewoKICAgICAgICAjIGdldCBjbGFzcyBvZiBnaXZlbiBTdGF0ZUlECiAgICAgICAgbXkgJERhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgSXRlbUlEID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGlmIFN0YXRlSUQgYmVsb25ncyB0byBnaXZlbiBjbGFzcwogICAgICAgIGlmICggISREYXRhUmVmIHx8ICEleyREYXRhUmVmfSB8fCAkRGF0YVJlZi0+e0NsYXNzfSBuZSAkUGFyYW17Q2xhc3N9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiU3RhdGVJRCAkUGFyYW17U3RhdGVJRH0gaXMgbm90IGluIHRoZSBjbGFzcyAnJFBhcmFte0NsYXNzfSchIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGZpbmQgYWxsIHN0YXRlIGlkcyBhbmQgbmV4dF9zdGF0ZSBpZHMgd2hpY2ggYmVsb25nIHRvIHRoZSBnaXZlbiBjbGFzcwogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBESVNUSU5DVCBzLm5leHRfc3RhdGVfaWQgJwogICAgICAgICAgICAuICdGUk9NIGNoYW5nZV9zdGF0ZV9tYWNoaW5lIHMgJwogICAgICAgICAgICAuICdMRUZUIE9VVEVSIEpPSU4gZ2VuZXJhbF9jYXRhbG9nIGcgJwogICAgICAgICAgICAuICdPTiAoIChzLnN0YXRlX2lkID0gZy5pZCApIE9SIChzLm5leHRfc3RhdGVfaWQgPSBnLmlkKSApICcKICAgICAgICAgICAgLiAnV0hFUkUgcy5zdGF0ZV9pZCA9ID8gQU5EIGcuZ2VuZXJhbF9jYXRhbG9nX2NsYXNzID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17U3RhdGVJRH0sIFwkUGFyYW17Q2xhc3N9IF0sCiAgICApOwoKICAgIG15IEBOZXh0U3RhdGVJRHM7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQE5leHRTdGF0ZUlEcywgJFJvd1swXTsKICAgIH0KCiAgICAjIGlmIHRoZSBzdGFydCBzdGF0ZSB3YXMgcmVxdWVzdGVkIGFuZCBtb3JlIHRoYW4gb25lIHN0YXJ0IHN0YXRlIHdhcyBmb3VuZAogICAgaWYgKCAhJFBhcmFte1N0YXRlSUR9ICkgewoKICAgICAgICBpZiAoICFATmV4dFN0YXRlSURzICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ2FuIG5vdCBnZXQgaW5pdGlhbCBzdGF0ZSBmb3IgJyRQYXJhbXtDbGFzc30nICIKICAgICAgICAgICAgICAgICAgICAuICJObyBpbml0aWFsIHN0YXRlIHdhcyBmb3VuZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmICggc2NhbGFyIEBOZXh0U3RhdGVJRHMgPiAxICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ2FuIG5vdCBnZXQgaW5pdGlhbCBzdGF0ZSBmb3IgJyRQYXJhbXtDbGFzc30nICIKICAgICAgICAgICAgICAgICAgICAuICJNb3JlIHRoYW4gb25lIGluaXRpYWwgc3RhdGUgd2FzIGZvdW5kISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzYXZlIHZhbHVlcyBpbiBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+IFxATmV4dFN0YXRlSURzLAogICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgKTsKCiAgICByZXR1cm4gXEBOZXh0U3RhdGVJRHM7Cn0KCj1oZWFkMiBTdGF0ZVRyYW5zaXRpb25HZXRFbmRTdGF0ZXMoKQoKR2V0IGEgc3RhdGUgdHJhbnNpdGlvbiBmb3IgYSBnaXZlbiBzdGF0ZSBpZCwgYnV0IG9ubHkgc2hvdyB0aGUgcG9zc2libGUgbmV4dCBlbmQgc3RhdGVzLgpSZXR1cm5zIGFuIGFycmF5IHJlZmVyZW5jZSBvZiB0aGUgbmV4dCBlbmQgc3RhdGUgaWRzLgoKICAgIG15ICROZXh0U3RhdGVJRHNSZWYgPSAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZVRyYW5zaXRpb25HZXRFbmRTdGF0ZXMoCiAgICAgICAgU3RhdGVJRCA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWQgd2l0aGluIHRoZSBnaXZlbiBjbGFzcywgb3IgMCB0byBpbmRpY2F0ZSB0aGUgc3RhcnQgc3RhdGUKICAgICAgICBDbGFzcyAgID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywgIyB0aGUgbmFtZSBvZiBhIGdlbmVyYWwgY2F0YWxvZyBjbGFzcwogICAgKTsKCj1jdXQKCnN1YiBTdGF0ZVRyYW5zaXRpb25HZXRFbmRTdGF0ZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIGlmIFN0YXRlSUQgYXJlIGdpdmVuICh0aGV5IGNhbiBiZSAwKQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoU3RhdGVJRCkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHRoYXQgY2xhc3MgaXMgZ2l2ZW4KICAgIGlmICggISRQYXJhbXtDbGFzc30gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIENsYXNzIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayB0aGUgY2FjaGUKICAgIG15ICRDYWNoZUtleSA9ICdTdGF0ZVRyYW5zaXRpb25HZXRFbmRTdGF0ZXM6OlN0YXRlSUQ6OicgLiAkUGFyYW17U3RhdGVJRH0gLiAnOjpDbGFzczo6JyAuICRQYXJhbXtDbGFzc307CiAgICBteSAkQ2FjaGUgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5LAogICAgKTsKICAgIHJldHVybiAkQ2FjaGUgaWYgJENhY2hlOwoKICAgICMgY2hlY2sgaWYgU3RhdGVJRCBiZWxvbmdzIHRvIHRoZSBnaXZlbiBjbGFzcywgYnV0IG9ubHkgaWYgc3RhdGUgaWQgaXMgbm90IGEgc3RhcnQgc3RhdGUgKD0wKQogICAgaWYgKCAkUGFyYW17U3RhdGVJRH0gKSB7CgogICAgICAgICMgZ2V0IGNsYXNzIG9mIGdpdmVuIFN0YXRlSUQKICAgICAgICBteSAkRGF0YVJlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtR2V0KAogICAgICAgICAgICBJdGVtSUQgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgaWYgU3RhdGVJRCBiZWxvbmdzIHRvIGdpdmVuIGNsYXNzCiAgICAgICAgaWYgKCAhJERhdGFSZWYgfHwgISV7JERhdGFSZWZ9IHx8ICREYXRhUmVmLT57Q2xhc3N9IG5lICRQYXJhbXtDbGFzc30gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJTdGF0ZUlEICRQYXJhbXtTdGF0ZUlEfSBpcyBub3QgaW4gdGhlIGNsYXNzICckUGFyYW17Q2xhc3N9JyEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZmluZCBhbGwgc3RhdGUgaWRzIGFuZCBuZXh0X3N0YXRlIGlkcyB3aGljaCBiZWxvbmcgdG8gdGhlIGdpdmVuIGNsYXNzCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIERJU1RJTkNUIHMubmV4dF9zdGF0ZV9pZCAnCiAgICAgICAgICAgIC4gJ0ZST00gY2hhbmdlX3N0YXRlX21hY2hpbmUgcyAnCiAgICAgICAgICAgIC4gJ0xFRlQgT1VURVIgSk9JTiBnZW5lcmFsX2NhdGFsb2cgZyAnCiAgICAgICAgICAgIC4gJ09OICggKHMuc3RhdGVfaWQgPSBnLmlkICkgT1IgKHMubmV4dF9zdGF0ZV9pZCA9IGcuaWQpICkgJwogICAgICAgICAgICAuICdXSEVSRSBzLnN0YXRlX2lkID0gPyBBTkQgZy5nZW5lcmFsX2NhdGFsb2dfY2xhc3MgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtTdGF0ZUlEfSwgXCRQYXJhbXtDbGFzc30gXSwKICAgICk7CgogICAgbXkgQE5leHRTdGF0ZUlEczsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgcHVzaCBATmV4dFN0YXRlSURzLCAkUm93WzBdOwogICAgfQoKICAgICMgaWYgdGhlIHN0YXJ0IHN0YXRlIHdhcyByZXF1ZXN0ZWQgYW5kIG1vcmUgdGhhbiBvbmUgc3RhcnQgc3RhdGUgd2FzIGZvdW5kCiAgICBpZiAoICEkUGFyYW17U3RhdGVJRH0gKSB7CgogICAgICAgIGlmICggIUBOZXh0U3RhdGVJRHMgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDYW4gbm90IGdldCBpbml0aWFsIHN0YXRlIGZvciAnJFBhcmFte0NsYXNzfScgIgogICAgICAgICAgICAgICAgICAgIC4gIk5vIGluaXRpYWwgc3RhdGUgd2FzIGZvdW5kISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKCBzY2FsYXIgQE5leHRTdGF0ZUlEcyA+IDEgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDYW4gbm90IGdldCBpbml0aWFsIHN0YXRlIGZvciAnJFBhcmFte0NsYXNzfScgIgogICAgICAgICAgICAgICAgICAgIC4gIk1vcmUgdGhhbiBvbmUgaW5pdGlhbCBzdGF0ZSB3YXMgZm91bmQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGJ1aWxkIG5leHQgc3RhdGUgaWRzIHN0cmluZwogICAgbXkgJE5leHRTdGF0ZUlEc1N0cmluZyA9IGpvaW4gJywgJywgQE5leHRTdGF0ZUlEczsKCiAgICAjIGZpbmQgYWxsIG5leHQgc3RhdGUgaWRzIHdoaWNoIGFyZSBlbmQgc3RhdGVzCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIERJU1RJTkNUIHMuc3RhdGVfaWQgJwogICAgICAgICAgICAuICdGUk9NIGNoYW5nZV9zdGF0ZV9tYWNoaW5lIHMgJwogICAgICAgICAgICAuICJXSEVSRSBzLnN0YXRlX2lkIElOICggJE5leHRTdGF0ZUlEc1N0cmluZyApICIKICAgICAgICAgICAgLiAnQU5EIHMubmV4dF9zdGF0ZV9pZCA9IDAnLAogICAgKTsKCiAgICBteSBATmV4dEVuZFN0YXRlSURzOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBwdXNoIEBOZXh0RW5kU3RhdGVJRHMsICRSb3dbMF07CiAgICB9CgogICAgIyBzYXZlIHZhbHVlcyBpbiBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+IFxATmV4dEVuZFN0YXRlSURzLAogICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgKTsKCiAgICByZXR1cm4gXEBOZXh0RW5kU3RhdGVJRHM7Cn0KCj1oZWFkMiBTdGF0ZVRyYW5zaXRpb25MaXN0KCkKClJldHVybiBhIHN0YXRlIHRyYW5zaXRpb24gbGlzdCBoYXNoLWFycmF5IHJlZmVyZW5jZS4KVGhlIGhhc2gga2V5IGlzIHRoZSBTdGF0ZUlELCB0aGUgaGFzaCB2YWx1ZSBpcyBhbiBhcnJheSByZWZlcmVuY2Ugb2YgTmV4dFN0YXRlSURzLgoKICAgIG15ICRTdGF0ZVRyYW5zaXRpb25zUmVmID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVUcmFuc2l0aW9uTGlzdCgKICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsICMgdGhlIG5hbWUgb2YgYSBnZW5lcmFsIGNhdGFsb2cgY2xhc3MKICAgICk7CgpSZXR1cm4gZXhhbXBsZToKCiAgICAkU3RhdGVUcmFuc2l0aW9uc1JlZiA9IHsKICAgICAgICAwID0+IFsgMSBdLAogICAgICAgIDEgPT4gWyAyLCAzLCA0IF0sCiAgICAgICAgMiA9PiBbIDUgXSwKICAgICAgICAzID0+IFsgNiwgNyBdLAogICAgICAgIDQgPT4gWyAwIF0sCiAgICAgICAgNSA9PiBbIDAgXSwKICAgICAgICA2ID0+IFsgMCBdLAogICAgICAgIDcgPT4gWyAwIF0sCiAgICB9OwoKPWN1dAoKc3ViIFN0YXRlVHJhbnNpdGlvbkxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0NsYXNzfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ2xhc3MhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIHRoZSBjYWNoZQogICAgbXkgJENhY2hlS2V5ID0gJ1N0YXRlVHJhbnNpdGlvbkxpc3Q6OkNsYXNzOjonIC4gJFBhcmFte0NsYXNzfTsKICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwogICAgcmV0dXJuICRDYWNoZSBpZiAkQ2FjaGU7CgogICAgIyBnZXQgc3RhdGUgdHJhbnNpdGlvbnMKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgRElTVElOQ1Qgcy5pZCAsIHMuc3RhdGVfaWQgLCBzLm5leHRfc3RhdGVfaWQgLCBnLmdlbmVyYWxfY2F0YWxvZ19jbGFzcyAnCiAgICAgICAgICAgIC4gJ0ZST00gY2hhbmdlX3N0YXRlX21hY2hpbmUgcyAnCiAgICAgICAgICAgIC4gJ0xFRlQgT1VURVIgSk9JTiBnZW5lcmFsX2NhdGFsb2cgZyAnCiAgICAgICAgICAgIC4gJ09OICggKHMuc3RhdGVfaWQgPSBnLmlkICkgT1IgKHMubmV4dF9zdGF0ZV9pZCA9IGcuaWQpICkgJwogICAgICAgICAgICAuICdXSEVSRSBnLmdlbmVyYWxfY2F0YWxvZ19jbGFzcyA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0NsYXNzfSBdLAogICAgKTsKCiAgICBteSAlU3RhdGVUcmFuc2l0aW9uOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBwdXNoIEB7ICRTdGF0ZVRyYW5zaXRpb257ICRSb3dbMV0gfSB9LCAkUm93WzJdOwogICAgfQoKICAgICMgc2F2ZSB2YWx1ZXMgaW4gY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICBWYWx1ZSA9PiBcJVN0YXRlVHJhbnNpdGlvbiwKICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICk7CgogICAgcmV0dXJuIFwlU3RhdGVUcmFuc2l0aW9uOwp9Cgo9aGVhZDIgU3RhdGVUcmFuc2l0aW9uVXBkYXRlKCkKClVwZGF0ZSB0aGUgbmV4dCBzdGF0ZSBvZiBhbiBleGlzdGluZyBuZXcgc3RhdGUgdHJhbnNpdGlvbi4KUmV0dXJucyB0aGUgdHJhbnNpdGlvbiBpZCBvbiBzdWNjZXNzLgoKICAgIG15ICRVcGRhdGVTdWNjZXNzID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVUcmFuc2l0aW9uVXBkYXRlKAogICAgICAgIFN0YXRlSUQgICAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZCB3aXRoaW4gdGhlIGdpdmVuIGNsYXNzLCBvciAwIHRvIGluZGljYXRlIHRoZSBzdGFydCBzdGF0ZQogICAgICAgIE5leHRTdGF0ZUlEICAgID0+IDIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZCB3aXRoaW4gdGhlIGdpdmVuIGNsYXNzLCBvciAwIHRvIGluZGljYXRlIGFuIGVuZCBzdGF0ZQogICAgICAgIE5ld05leHRTdGF0ZUlEID0+IDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZCB3aXRoaW4gdGhlIGdpdmVuIGNsYXNzLCBvciAwIHRvIGluZGljYXRlIGFuIGVuZCBzdGF0ZQogICAgICAgIENsYXNzICAgICAgICAgID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywgIyB0aGUgbmFtZSBvZiBhIGdlbmVyYWwgY2F0YWxvZyBjbGFzcwogICAgKTsKCj1jdXQKCnN1YiBTdGF0ZVRyYW5zaXRpb25VcGRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIGlmIFN0YXRlSUQsIE5leHRTdGF0ZUlEIGFuZCBOZXdOZXh0U3RhdGVJRCBhcmUgZ2l2ZW4gKHRoZXkgY2FuIGJlIDApCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhTdGF0ZUlEIE5leHRTdGF0ZUlEIE5ld05leHRTdGF0ZUlEKSkgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgdGhhdCBjbGFzcyBpcyBnaXZlbgogICAgaWYgKCAhJFBhcmFte0NsYXNzfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ2xhc3MhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIHRoYXQgbm90IGJvdGggU3RhdGVJRCBhbmQgTmV4dFN0YXRlSUQgYXJlIHplcm8KICAgIGlmICggISRQYXJhbXtTdGF0ZUlEfSAmJiAhJFBhcmFte05leHRTdGF0ZUlEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlN0YXRlSUQgYW5kIE5leHRTdGF0ZUlEIGNhbid0IGJvdGggYmUgemVybyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgdGhhdCBub3QgYm90aCBTdGF0ZUlEIGFuZCBOZXdOZXh0U3RhdGVJRCBhcmUgemVybwogICAgaWYgKCAhJFBhcmFte1N0YXRlSUR9ICYmICEkUGFyYW17TmV3TmV4dFN0YXRlSUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiU3RhdGVJRCBhbmQgTmV3TmV4dFN0YXRlSUQgY2FuJ3QgYm90aCBiZSB6ZXJvISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBkZWZpbmUgbG9va3VwIGhhc2ggZm9yIHN0YXRlIG5hbWUKICAgIG15ICVTdGF0ZUlEMlN0YXRlOwoKICAgICMgY2hlY2sgaWYgU3RhdGVJRCwgTmV4dFN0YXRlSUQgYW5kIE5ld05leHRTdGF0ZUlEIGJlbG9uZyB0byB0aGUgZ2l2ZW4gY2xhc3MKICAgIEFSR1VNRU5UOgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoU3RhdGVJRCBOZXh0U3RhdGVJRCBOZXdOZXh0U3RhdGVJRCkpIHsKCiAgICAgICAgJFN0YXRlSUQyU3RhdGV7ICRQYXJhbXskQXJndW1lbnR9IH0gPSAkU2VsZi0+U3RhdGVMb29rdXAoCiAgICAgICAgICAgIFN0YXRlSUQgPT4gJFBhcmFteyRBcmd1bWVudH0sCiAgICAgICAgICAgIENsYXNzICAgPT4gJFBhcmFte0NsYXNzfSwKICAgICAgICApOwoKICAgICAgICAjIGRvbnQgY2hlY2sgemVybyB2YWx1ZXMKICAgICAgICBuZXh0IEFSR1VNRU5UIGlmICEkUGFyYW17JEFyZ3VtZW50fTsKCiAgICAgICAgIyBnZXQgY2xhc3MKICAgICAgICBteSAkRGF0YVJlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtR2V0KAogICAgICAgICAgICBJdGVtSUQgPT4gJFBhcmFteyRBcmd1bWVudH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBpZiBpZCBiZWxvbmdzIHRvIGdpdmVuIGNsYXNzCiAgICAgICAgaWYgKCAhJERhdGFSZWYgfHwgISV7JERhdGFSZWZ9IHx8ICREYXRhUmVmLT57Q2xhc3N9IG5lICRQYXJhbXtDbGFzc30gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICIkQXJndW1lbnQgJFBhcmFteyRBcmd1bWVudH0gaXMgbm90IGluIHRoZSBjbGFzcyAnJFBhcmFte0NsYXNzfSchIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRvIG5vdCB1cGRhdGUgaWYgdGhlIG5ldyBuZXh0IHN0YXRlIGlzIHRoZSBzYW1lCiAgICByZXR1cm4gMSBpZiAkUGFyYW17TmV4dFN0YXRlSUR9ID09ICRQYXJhbXtOZXdOZXh0U3RhdGVJRH07CgogICAgIyBnZXQgdGhlIGV4aXN0aW5nIHN0YXRlIHRyYW5zaXRpb24gaWQgdGhhdCBzaG91bGQgYmUgdXBkYXRlZAogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBESVNUSU5DVCBzLmlkICcKICAgICAgICAgICAgLiAnRlJPTSBjaGFuZ2Vfc3RhdGVfbWFjaGluZSBzICcKICAgICAgICAgICAgLiAnTEVGVCBPVVRFUiBKT0lOIGdlbmVyYWxfY2F0YWxvZyBnICcKICAgICAgICAgICAgLiAnT04gKCAocy5zdGF0ZV9pZCA9IGcuaWQgKSBPUiAocy5uZXh0X3N0YXRlX2lkID0gZy5pZCkgKSAnCiAgICAgICAgICAgIC4gJ1dIRVJFIHMuc3RhdGVfaWQgPSA/IEFORCBzLm5leHRfc3RhdGVfaWQgPSA/ICcKICAgICAgICAgICAgLiAnQU5EIGcuZ2VuZXJhbF9jYXRhbG9nX2NsYXNzID0gPycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte1N0YXRlSUR9LCBcJFBhcmFte05leHRTdGF0ZUlEfSwgXCRQYXJhbXtDbGFzc30gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICBteSAkVHJhbnNpdGlvbklEOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVHJhbnNpdGlvbklEID0gJFJvd1swXTsKICAgIH0KCiAgICAjIGNoZWNrIHRoYXQgdGhlIHN0YXRlIHRyYW5zaXRpb24gdGhhdCBzaG91bGQgYmUgdXBkYXRlZCBleGlzdHMKICAgIGlmICggISRUcmFuc2l0aW9uSUQgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDYW4gbm90IHVwZGF0ZSBzdGF0ZSB0cmFuc2l0aW9uISBBIHN0YXRlIHRyYW5zaXRpb24gd2l0aCAiCiAgICAgICAgICAgICAgICAuICJTdGF0ZUlEICRQYXJhbXtTdGF0ZUlEfSBhbmQgTmV4dFN0YXRlSUQgJFBhcmFte05leHRTdGF0ZUlEfSBkb2VzIG5vdCBleGlzdCEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgcHJldmVudCBzZXR0aW5nIGFuIGVuZCBzdGF0ZSB0cmFuc2l0aW9uLCBpZiBvdGhlciBzdGF0ZSB0cmFuc2lzdGlvbnMgZXhpc3QgYWxyZWFkeQogICAgaWYgKCAhJFBhcmFte05ld05leHRTdGF0ZUlEfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBvdGhlciBzdGF0ZSB0cmFuc2lzdGlvbnMgZXhpc3QgZm9yIHRoZSBnaXZlbiBTdGF0ZUlECiAgICAgICAgbXkgJE5leHRTdGF0ZUlEcyA9ICRTZWxmLT5TdGF0ZVRyYW5zaXRpb25HZXQoCiAgICAgICAgICAgIFN0YXRlSUQgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICBDbGFzcyAgID0+ICRQYXJhbXtDbGFzc30sCiAgICAgICAgKTsKCiAgICAgICAgIyBUaGUgb2xkIHN0YXRlIHRyYW5zaXRpb24sIHdoaWNoIGlzIHZlcmlmaWVkIHRvIGV4aXN0LCBkb2VzIG5vdCBjb3VudCBpbiB0aGlzIGNoZWNrCiAgICAgICAgaWYgKCAkTmV4dFN0YXRlSURzICYmIHNjYWxhciBAeyROZXh0U3RhdGVJRHN9ID4gMSApIHsKCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDYW4gbm90IHNldCBzdGF0ZSAiCiAgICAgICAgICAgICAgICAgICAgLiAiJyRTdGF0ZUlEMlN0YXRleyRQYXJhbXtTdGF0ZUlEfX0nIChJRDogJFBhcmFte1N0YXRlSUR9KSBhcyBlbmQgc3RhdGUsICIKICAgICAgICAgICAgICAgICAgICAuICJiZWNhdXNlIG90aGVyIGZvbGxvd2luZyBzdGF0ZXMgZXhpc3QsIHdoaWNoIG11c3QgYmUgZGVsZXRlZCBmaXJzdCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgdXBkYXRlIHN0YXRlIHRyYW5zaXRpb24KICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnVVBEQVRFIGNoYW5nZV9zdGF0ZV9tYWNoaW5lICcKICAgICAgICAgICAgLiAnU0VUIG5leHRfc3RhdGVfaWQgPSA/ICcKICAgICAgICAgICAgLiAnV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtOZXdOZXh0U3RhdGVJRH0sIFwkVHJhbnNpdGlvbklEIF0sCiAgICApOwoKICAgICMgY2xlYW51cCBzdGF0ZW1hY2hpbmUgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIFN0YXRlTG9va3VwKCkKClRoaXMgbWV0aG9kIGRvZXMgYSBsb29rdXAgZm9yIGEgc3RhdGUuIElmIGEgc3RhdGUgaWQgaXMgZ2l2ZW4sCml0IHJldHVybnMgdGhlIG5hbWUgb2YgdGhlIHN0YXRlLiBJZiBhIHN0YXRlIG5hbWUgaXMgZ2l2ZW4sCnRoZSBhcHByb3ByaWF0ZSBpZCBpcyByZXR1cm5lZC4KCiAgICBteSAkU3RhdGUgPSAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZUxvb2t1cCgKICAgICAgICBTdGF0ZUlEID0+IDEyMzQsCiAgICAgICAgQ2xhc3MgICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICApOwoKICAgIG15ICRTdGF0ZUlEID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVMb29rdXAoCiAgICAgICAgU3RhdGUgICA9PiAnYWNjZXB0ZWQnLAogICAgICAgIENsYXNzICAgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgKTsKCj1jdXQKCnN1YiBTdGF0ZUxvb2t1cCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgQ2xhc3MgcGFyYW1ldGVyCiAgICBpZiAoICEkUGFyYW17Q2xhc3N9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBDbGFzcyEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgVGhlIFN0YXRlSUQgJzAnIGlzIGEgc3BlY2lhbCBjYXNlLiBEZXBlbmRpbmcgb24gdGhlIGNvbnRleHQgaXQKICAgICMgY2FuIGluZGljYXRlICcqU1RBUlQqJyBvciAnKkVORConLiBTbyByZXR1cm4gJzAnIGluIHRoYXQgY2FzZSwKICAgICMgYW5kIGRvIG5vdCBmbG9vZCB0aGUgZXJyb3IgbG9nLgogICAgaWYgKAogICAgICAgIGRlZmluZWQgJFBhcmFte1N0YXRlSUR9CiAgICAgICAgJiYgJFBhcmFte1N0YXRlSUR9IGVxICcwJwogICAgICAgICYmICFkZWZpbmVkICRQYXJhbXtTdGF0ZX0KICAgICAgICApCiAgICB7CiAgICAgICAgcmV0dXJuICcwJzsKICAgIH0KCiAgICAjIFRoZSBTdGF0ZSAnMCcgaXMgYSBzcGVjaWFsIGNhc2UuIERlcGVuZGluZyBvbiB0aGUgY29udGV4dCBpdAogICAgIyBjYW4gaW5kaWNhdGUgJypTVEFSVConIG9yICcqRU5EKicuIFNvIHJldHVybiAnMCcgaW4gdGhhdCBjYXNlLAogICAgIyBhbmQgZG8gbm90IGZsb29kIHRoZSBlcnJvciBsb2cuCiAgICBpZiAoCiAgICAgICAgZGVmaW5lZCAkUGFyYW17U3RhdGV9CiAgICAgICAgJiYgJFBhcmFte1N0YXRlfSBlcSAnMCcKICAgICAgICAmJiAhZGVmaW5lZCAkUGFyYW17U3RhdGVJRH0KICAgICAgICApCiAgICB7CiAgICAgICAgcmV0dXJuICcwJzsKICAgIH0KCiAgICAjIGVpdGhlciBTdGF0ZUlEIG9yIFN0YXRlIG11c3QgYmUgcGFzc2VkCiAgICBpZiAoICEkUGFyYW17U3RhdGVJRH0gJiYgISRQYXJhbXtTdGF0ZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN0YXRlSUQgb3IgU3RhdGUhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIG9ubHkgb25lIHBhcmFtZXRlciBTdGF0ZSBvciBTdGF0ZUlEIGlzIGFsbG93ZWQKICAgIGlmICggJFBhcmFte1N0YXRlSUR9ICYmICRQYXJhbXtTdGF0ZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN0YXRlSUQgT1IgU3RhdGUgLSBub3QgYm90aCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IHRoZSBjaGFuZ2Ugc3RhdGVzIGZyb20gdGhlIGdlbmVyYWwgY2F0YWxvZwogICAgbXkgJFN0YXRlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtTGlzdCgKICAgICAgICBDbGFzcyA9PiAkUGFyYW17Q2xhc3N9LAogICAgKTsKCiAgICAjIGNvbnZlcnQgc3RhdGUgbGlzdCBpbnRvIGEgbG9va3VwIGhhc2gKICAgIG15ICVTdGF0ZUlEMk5hbWU7CiAgICBpZiAoICRTdGF0ZUxpc3QgJiYgcmVmICRTdGF0ZUxpc3QgZXEgJ0hBU0gnICYmICV7JFN0YXRlTGlzdH0gKSB7CiAgICAgICAgJVN0YXRlSUQyTmFtZSA9ICV7JFN0YXRlTGlzdH07CiAgICB9CgogICAgIyBjaGVjayB0aGUgc3RhdGUgaGFzaAogICAgaWYgKCAhJVN0YXRlSUQyTmFtZSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0NvdWxkIG5vdCByZXRyaWV2ZSBjaGFuZ2Ugc3RhdGVzIGZyb20gdGhlIGdlbmVyYWwgY2F0YWxvZy4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKCAkUGFyYW17U3RhdGVJRH0gKSB7CiAgICAgICAgcmV0dXJuICRTdGF0ZUlEMk5hbWV7ICRQYXJhbXtTdGF0ZUlEfSB9OwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgcmV2ZXJzZSBrZXkgLSB2YWx1ZSBwYWlycyB0byBoYXZlIHRoZSBuYW1lIGFzIGtleXMKICAgICAgICBteSAlU3RhdGVOYW1lMklEID0gcmV2ZXJzZSAlU3RhdGVJRDJOYW1lOwoKICAgICAgICByZXR1cm4gJFN0YXRlTmFtZTJJRHsgJFBhcmFte1N0YXRlfSB9OwogICAgfQp9Cgo9aGVhZDIgU3RhdGVMaXN0KCkKClRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIHN0YXRlcyBmb3IgYSBjYXRhbG9nIGNsYXNzLgoKICAgIG15ICRTdGF0ZUxpc3QgPSAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZUxpc3QoCiAgICAgICAgQ2xhc3MgID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpUaGUgcmV0dXJuIHZhbHVlIGlzIGEgcmVmZXJlbmNlIHRvIGFuIGFycmF5IG9mIGhhc2hyZWZzLiBUaGUgZWxlbWVudCAnS2V5JyBpcyB0aGVuCnRoZSBzdGF0ZSBpZCBhbmQgdGhlIGVsZW1lbnQgJ1ZhbHVlJyBpcyB0aGUgbmFtZSBvZiB0aGUgc3RhdGUuIFRoZSBhcnJheSBlbGVtZW50cwphcmUgc29ydGVkIGJ5IHN0YXRlIGlkLgoKICAgIG15ICRTdGF0ZUxpc3QgPSBbCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAxNTYsCiAgICAgICAgICAgIFZhbHVlID0+ICdhcHByb3ZlZCcsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+IDE1NywKICAgICAgICAgICAgVmFsdWUgPT4gJ2luIHByb2dyZXNzJywKICAgICAgICB9LAogICAgXTsKCj1jdXQKCnN1YiBTdGF0ZUxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBdHRyaWJ1dGUgKHF3KENsYXNzIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEF0dHJpYnV0ZX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBdHRyaWJ1dGUhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBjaGFuZ2Ugc3RhdGUgbGlzdAogICAgbXkgJFN0YXRlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtTGlzdCgKICAgICAgICBDbGFzcyA9PiAkUGFyYW17Q2xhc3N9LAogICAgKSB8fCB7fTsKCiAgICAjIHRvIHN0b3JlIGFuIGFycmF5IG9mIGhhc2ggcmVmcwogICAgbXkgQEFycmF5SGFzaFJlZjsKCiAgICAjIGFzc2VtYmxlIHRoZSBhcnJheSBvZiBoYXNoIHJlZnMgd2l0aCBhbGwgc3RhdGVzCiAgICBmb3IgbXkgJFN0YXRlSUQgKCBzb3J0IGtleXMgJXskU3RhdGVMaXN0fSApIHsKICAgICAgICBwdXNoIEBBcnJheUhhc2hSZWYsIHsKICAgICAgICAgICAgS2V5ICAgPT4gJFN0YXRlSUQsCiAgICAgICAgICAgIFZhbHVlID0+ICRTdGF0ZUxpc3QtPnskU3RhdGVJRH0sCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gXEBBcnJheUhhc2hSZWY7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMWorkOrder.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6RXZlbnRIYW5kbGVyOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgp1c2UgdmFycyBxdyhASVNBKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkVuY29kZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbicsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01TdGF0ZU1hY2hpbmUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TWFpbicsCiAgICAnS2VybmVsOjpTeXN0ZW06OlVzZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWaXJ0dWFsRlMnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyIC0gd29ya29yZGVyIGxpYgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgc2V0IHRoZSBkZWJ1ZyBmbGFnCiAgICAkU2VsZi0+e0RlYnVnfSA9ICRQYXJhbXtEZWJ1Z30gfHwgMDsKCiAgICAjIGdldCB0aGUgY2FjaGUgdHlwZSBhbmQgVFRMIChpbiBzZWNvbmRzKQogICAgJFNlbGYtPntDYWNoZVR5cGV9ID0gJ0lUU01DaGFuZ2VNYW5hZ2VtZW50JzsKICAgICRTZWxmLT57Q2FjaGVUVEx9ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSVRTTUNoYW5nZTo6Q2FjaGVUVEwnKSAqIDYwOwoKICAgIEBJU0EgPSAoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpFdmVudEhhbmRsZXInLAogICAgKTsKCiAgICAjIGluaXQgb2YgZXZlbnQgaGFuZGxlcgogICAgJFNlbGYtPkV2ZW50SGFuZGxlckluaXQoCiAgICAgICAgQ29uZmlnID0+ICdJVFNNV29ya09yZGVyOjpFdmVudE1vZHVsZScsCiAgICApOwoKICAgICMgZ2V0IGRhdGFiYXNlIHR5cGUKICAgICRTZWxmLT57REJUeXBlfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT57J0RCOjpUeXBlJ30gfHwgJyc7CiAgICAkU2VsZi0+e0RCVHlwZX0gPSBsYyAkU2VsZi0+e0RCVHlwZX07CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgV29ya09yZGVyQWRkKCkKCkFkZCBhIG5ldyBDPHdvcmtvcmRlcj4uCkludGVybmFsbHkgZmlyc3QgYSBtaW5pbWFsIEM8d29ya29yZGVyPiBpcyBjcmVhdGVkLAp0aGVuIFdvcmtPcmRlclVwZGF0ZSgpIGlzIGNhbGxlZCBmb3Igc2V0dGluZyB0aGUgcmVtYWluaW5nIGFyZ3VtZW50cy4KCiAgICBteSAkV29ya09yZGVySUQgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgQ2hhbmdlSUQgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKb3IKCiAgICBteSAkV29ya09yZGVySUQgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgQ2hhbmdlSUQgICAgICAgICAgID0+IDEyMywKICAgICAgICBXb3JrT3JkZXJUaXRsZSAgICAgPT4gJ1JlcGxhY2VtZW50IG9mIG1haWwgc2VydmVyJywgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIEluc3RydWN0aW9uICAgICAgICA9PiAnSW5zdGFsbCB0aGUgdGhlIG5ldyBzZXJ2ZXInLCAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgUmVwb3J0ICAgICAgICAgICAgID0+ICdJbnN0YWxsZWQgbmV3IHNlcnZlciB3aXRob3V0IHByb2JsZW1zJywgICAjIChvcHRpb25hbCkKICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEICAgPT4gMTU3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSBvciBXb3JrT3JkZXJTdGF0ZSA9PiAncmVhZHknCiAgICAgICAgV29ya09yZGVyU3RhdGUgICAgID0+ICdyZWFkeScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgb3IgV29ya09yZGVyU3RhdGVJRCA9PiAxNTcKICAgICAgICBXb3JrT3JkZXJUeXBlSUQgICAgPT4gMTYxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSBvciBXb3JrT3JkZXJUeXBlID0+ICdwaXInCiAgICAgICAgV29ya09yZGVyVHlwZSAgICAgID0+ICdyZWFkeScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgb3IgV29ya09yZGVyVHlwZUlEID0+IDE2MQogICAgICAgIFdvcmtPcmRlckFnZW50SUQgICA9PiA4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSAgID0+ICcyMDA5LTEwLTEyIDAwOjAwOjAxJywgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBQbGFubmVkRW5kVGltZSAgICAgPT4gJzIwMDktMTAtMTUgMTU6MDA6MDAnLCAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIEFjdHVhbFN0YXJ0VGltZSAgICA9PiAnMjAwOS0xMC0xNCAwMDowMDowMScsICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgQWN0dWFsRW5kVGltZSAgICAgID0+ICcyMDA5LTAxLTIwIDAwOjAwOjAxJywgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBQbGFubmVkRWZmb3J0ICAgICAgPT4gMTIzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIER5bmFtaWNGaWVsZF9YICAgICA9PiAnU3VuJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgRHluYW1pY0ZpZWxkX1kgICAgID0+ICdFYXJ0aCcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgV29ya09yZGVyQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENoYW5nZUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayB0aGF0IG5vdCBib3RoIFdvcmtPcmRlclN0YXRlIGFuZCBXb3JrT3JkZXJTdGF0ZUlEIGFyZSBnaXZlbgogICAgaWYgKCAkUGFyYW17V29ya09yZGVyU3RhdGV9ICYmICRQYXJhbXtXb3JrT3JkZXJTdGF0ZUlEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgZWl0aGVyIFdvcmtPcmRlclN0YXRlIE9SIFdvcmtPcmRlclN0YXRlSUQgLSBub3QgYm90aCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgaWYgYSBTdGF0ZSBpcyBnaXZlbiwgdGhlbiBsb29rIHVwIHRoZSBJRAogICAgaWYgKCAkUGFyYW17V29ya09yZGVyU3RhdGV9ICkgewogICAgICAgICRQYXJhbXtXb3JrT3JkZXJTdGF0ZUlEfSA9ICRTZWxmLT5Xb3JrT3JkZXJTdGF0ZUxvb2t1cCgKICAgICAgICAgICAgV29ya09yZGVyU3RhdGUgPT4gJFBhcmFte1dvcmtPcmRlclN0YXRlfSwKICAgICAgICApOwoKICAgICAgICAjIGRlbGV0ZSB0aGUgd29ya29yZGVyIHN0YXRlIG90aGVyd2lzZSB0aGUgdXBkYXRlIGZhaWxzCiAgICAgICAgIyBhcyBib3RoIFdvcmtPcmRlclN0YXRlIGFuZCBXb3JrT3JkZXJTdGF0ZUlEIGV4aXN0cyB0aGVuCiAgICAgICAgZGVsZXRlICRQYXJhbXtXb3JrT3JkZXJTdGF0ZX07CiAgICB9CgogICAgIyBjaGVjayB0aGF0IG5vdCBib3RoIFdvcmtPcmRlclR5cGUgYW5kIFdvcmtPcmRlclR5cGVJRCBhcmUgZ2l2ZW4KICAgIGlmICggJFBhcmFte1dvcmtPcmRlclR5cGV9ICYmICRQYXJhbXtXb3JrT3JkZXJUeXBlSUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBlaXRoZXIgV29ya09yZGVyVHlwZSBPUiBXb3JrT3JkZXJUeXBlSUQgLSBub3QgYm90aCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgaWYgVHlwZSBpcyBnaXZlbiwgdGhlbiBsb29rIHVwIHRoZSBJRAogICAgaWYgKCAkUGFyYW17V29ya09yZGVyVHlwZX0gKSB7CiAgICAgICAgJFBhcmFte1dvcmtPcmRlclR5cGVJRH0gPSAkU2VsZi0+V29ya09yZGVyVHlwZUxvb2t1cCgKICAgICAgICAgICAgV29ya09yZGVyVHlwZSA9PiAkUGFyYW17V29ya09yZGVyVHlwZX0sCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGhlIHdvcmtvcmRlciB0eXBlIG90aGVyd2lzZSB0aGUgdXBkYXRlIGZhaWxzCiAgICAgICAgIyBhcyBib3RoIFdvcmtPcmRlclR5cGUgYW5kIFdvcmtPcmRlclR5cGVJRCBleGlzdHMgdGhlbgogICAgICAgIGRlbGV0ZSAkUGFyYW17V29ya09yZGVyVHlwZX07CiAgICB9CgogICAgIyBnZXQgYSBwbGFpbiB0ZXh0IHZlcnNpb24gb2YgYXJndW1lbnRzIHdoaWNoIG1pZ2h0IGNvbnRhaW4gSFRNTCBtYXJrdXAKICAgIEFSR1VNRU5UOgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoSW5zdHJ1Y3Rpb24gUmVwb3J0KSkgewoKICAgICAgICBuZXh0IEFSR1VNRU5UIGlmICFleGlzdHMgJFBhcmFteyRBcmd1bWVudH07CgogICAgICAgICRQYXJhbXsiJHtBcmd1bWVudH1QbGFpbiJ9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5Ub0FzY2lpKAogICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFteyRBcmd1bWVudH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBFdmVuIHdoZW4gcGFzc2VkIGEgcGxhaW4gQVNDSUkgc3RyaW5nLAogICAgICAgICMgVG9Bc2NpaSgpIGNhbiByZXR1cm4gYSBub24tdXRmOCBzdHJpbmcgd2l0aCBjaGFycyBpbiB0aGUgZXh0ZW5kZWQgcmFuZ2UuCiAgICAgICAgIyBVcGdyYWRlIHRvIHV0Zi04IGluIG9yZGVyIHRvIGNvbXBseSB0byB0aGUgT1RSUy1jb252ZW50aW9uLgogICAgICAgIHV0Zjg6OnVwZ3JhZGUoICRQYXJhbXsiJHtBcmd1bWVudH1QbGFpbiJ9ICk7CiAgICB9CgogICAgIyBjaGVjayB0aGUgcGFyYW1ldGVycwogICAgcmV0dXJuIGlmICEkU2VsZi0+X0NoZWNrV29ya09yZGVyUGFyYW1zKCVQYXJhbSk7CgogICAgIyB0cmlnZ2VyIFdvcmtPcmRlckFkZFByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnV29ya09yZGVyQWRkUHJlJywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBzZXQgaW5pdGlhbCBXb3JrT3JkZXJTdGF0ZUlELCB1c2UgZGVmYXVsdCBpZiBub3QgcGFzc2VkCiAgICBteSAkV29ya09yZGVyU3RhdGVJRCA9IGRlbGV0ZSAkUGFyYW17V29ya09yZGVyU3RhdGVJRH07CiAgICBpZiAoICEkV29ya09yZGVyU3RhdGVJRCApIHsKCiAgICAgICAgIyBnZXQgaW5pdGlhbCB3b3Jrb3JkZXIgc3RhdGUgaWQKICAgICAgICBteSAkTmV4dFN0YXRlSURzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01TdGF0ZU1hY2hpbmUnKS0+U3RhdGVUcmFuc2l0aW9uR2V0KAogICAgICAgICAgICBTdGF0ZUlEID0+IDAsCiAgICAgICAgICAgIENsYXNzICAgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6U3RhdGUnLAogICAgICAgICk7CiAgICAgICAgJFdvcmtPcmRlclN0YXRlSUQgPSAkTmV4dFN0YXRlSURzLT5bMF07CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCBXb3JrT3JkZXJUeXBlSUQsIHVzZSBkZWZhdWx0IGlmIG5vdCBwYXNzZWQKICAgIG15ICRXb3JrT3JkZXJUeXBlSUQgPSBkZWxldGUgJFBhcmFte1dvcmtPcmRlclR5cGVJRH07CiAgICBpZiAoICEkV29ya09yZGVyVHlwZUlEICkgewoKICAgICAgICAjIHNldCBjb25maWcgb3B0aW9uCiAgICAgICAgbXkgJENvbmZpZ09wdGlvbiA9ICdJVFNNV29ya09yZGVyOjpUeXBlOjpEZWZhdWx0JzsKCiAgICAgICAgIyBnZXQgZGVmYXVsdCB3b3Jrb3JkZXIgdHlwZSBmcm9tIGNvbmZpZwogICAgICAgIG15ICREZWZhdWx0VHlwZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgkQ29uZmlnT3B0aW9uKTsKCiAgICAgICAgIyBjaGVjayBpZiBkZWZhdWx0IHR5cGUgZXhpc3RzIGluIGdlbmVyYWwgY2F0YWxvZwogICAgICAgIG15ICRJdGVtRGF0YVJlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtR2V0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpUeXBlJywKICAgICAgICAgICAgTmFtZSAgPT4gJERlZmF1bHRUeXBlLAogICAgICAgICk7CgogICAgICAgICMgZXJyb3IgaGFuZGxpbmcgYmVjYXVzZSBvZiBpbnZhbGlkIGNvbmZpZyBzZXR0aW5nCiAgICAgICAgaWYgKCAhJEl0ZW1EYXRhUmVmIHx8IHJlZiAkSXRlbURhdGFSZWYgbmUgJ0hBU0gnIHx8ICEleyRJdGVtRGF0YVJlZn0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgZGVmYXVsdCBXb3JrT3JkZXJUeXBlICckRGVmYXVsdFR5cGUnICIKICAgICAgICAgICAgICAgICAgICAuICJpbiBzeXNjb25maWcgb3B0aW9uICckQ29uZmlnT3B0aW9uJyBpcyBpbnZhbGlkISBDaGVjayB0aGUgZ2VuZXJhbCBjYXRhbG9nISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgc2V0IGRlZmF1bHQKICAgICAgICAkV29ya09yZGVyVHlwZUlEID0gJEl0ZW1EYXRhUmVmLT57SXRlbUlEfTsKICAgIH0KCiAgICAjIGdldCBhIHVuaXF1ZSB3b3Jrb3JkZXIgbnVtYmVyCiAgICBteSAkV29ya09yZGVyTnVtYmVyID0gJFNlbGYtPl9HZXRXb3JrT3JkZXJOdW1iZXIoJVBhcmFtKTsKCiAgICAjIGFkZCBXb3JrT3JkZXIgdG8gZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnSU5TRVJUIElOVE8gY2hhbmdlX3dvcmtvcmRlciAnCiAgICAgICAgICAgIC4gJyhjaGFuZ2VfaWQsIHdvcmtvcmRlcl9udW1iZXIsIHdvcmtvcmRlcl9zdGF0ZV9pZCwgd29ya29yZGVyX3R5cGVfaWQsICcKICAgICAgICAgICAgLiAnY3JlYXRlX3RpbWUsIGNyZWF0ZV9ieSwgY2hhbmdlX3RpbWUsIGNoYW5nZV9ieSkgJwogICAgICAgICAgICAuICdWQUxVRVMgKD8sID8sID8sID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgPyknLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte0NoYW5nZUlEfSwgXCRXb3JrT3JkZXJOdW1iZXIsIFwkV29ya09yZGVyU3RhdGVJRCwgXCRXb3JrT3JkZXJUeXBlSUQsCiAgICAgICAgICAgIFwkUGFyYW17VXNlcklEfSwgICBcJFBhcmFte1VzZXJJRH0sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBnZXQgV29ya09yZGVySUQKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJ1NFTEVDVCBpZCBGUk9NIGNoYW5nZV93b3Jrb3JkZXIgV0hFUkUgY2hhbmdlX2lkID0gPyBBTkQgd29ya29yZGVyX251bWJlciA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtDaGFuZ2VJRH0sIFwkV29ya09yZGVyTnVtYmVyIF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkV29ya09yZGVySUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRXb3JrT3JkZXJJRCA9ICRSb3dbMF07CiAgICB9CgogICAgIyBjaGVjayBlcnJvcgogICAgaWYgKCAhJFdvcmtPcmRlcklEICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiV29ya09yZGVyQWRkKCkgZmFpbGVkISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBkZWxldGUgY2FjaGUKICAgIGZvciBteSAkS2V5ICgKICAgICAgICAnV29ya09yZGVyR2V0OjpJRDo6JyAuICRXb3JrT3JkZXJJRCwKICAgICAgICAnV29ya09yZGVyTGlzdDo6Q2hhbmdlSUQ6OicgLiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgICdXb3JrT3JkZXJDaGFuZ2VFZmZvcnRzR2V0OjpDaGFuZ2VJRDo6JyAuICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgJ1dvcmtPcmRlckNoYW5nZVRpbWVHZXQ6OkNoYW5nZUlEOjonIC4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICAnQ2hhbmdlR2V0OjpJRDo6JyAuICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgKQogICAgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgIyB0cmlnZ2VyIFdvcmtPcmRlckFkZFBvc3QtRXZlbnQKICAgICMgKHllcywgd2Ugd2FudCBkbyBkbyB0aGlzIGJlZm9yZSB0aGUgV29ya09yZGVyVXBkYXRlISkKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ1dvcmtPcmRlckFkZFBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBXb3JrT3JkZXJJRCAgICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgV29ya09yZGVyTnVtYmVyICA9PiAkV29ya09yZGVyTnVtYmVyLAogICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICRXb3JrT3JkZXJTdGF0ZUlELAogICAgICAgICAgICBXb3JrT3JkZXJUeXBlSUQgID0+ICRXb3JrT3JkZXJUeXBlSUQsCiAgICAgICAgfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgdXBkYXRlIFdvcmtPcmRlciB3aXRoIHJlbWFpbmluZyBwYXJhbWV0ZXJzLAogICAgIyB0aGUgYWxyZWFkeSBoYW5kbGVzIHBhcmFtcyBoYXZlIGJlZW4gZGVsZXRlZCBmcm9tICVQYXJhbQogICAgbXkgJFVwZGF0ZVN1Y2Nlc3MgPSAkU2VsZi0+V29ya09yZGVyVXBkYXRlKAogICAgICAgICVQYXJhbSwKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICApOwoKICAgICMgY2hlY2sgdXBkYXRlIGVycm9yCiAgICBpZiAoICEkVXBkYXRlU3VjY2VzcyApIHsKCiAgICAgICAgIyBkZWxldGUgd29ya29yZGVyIGlmIGl0IGNvdWxkIG5vdCBiZSB1cGRhdGVkCiAgICAgICAgJFNlbGYtPldvcmtPcmRlckRlbGV0ZSgKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuICRXb3JrT3JkZXJJRDsKfQoKPWhlYWQyIFdvcmtPcmRlclVwZGF0ZSgpCgpVcGRhdGUgYSBDPHdvcmtvcmRlcj4uCkxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgaXMgcmVtb3ZlZCBmcm9tIEM8V29ya09yZGVyVGl0bGU+LgpQYXNzaW5nIHVuZGVmaW5lZCB2YWx1ZXMgaXMgZ2VuZXJhbGx5IG5vdCBhbGxvd2VkLiBBbiBleGNlcHRpb24KYXJlIHRoZSBwYXJhbWV0ZXJzIEM8UGxhbm5lZFN0YXJ0VGltZT4sIEM8UGxhbm5lZEVuZFRpbWU+LCBDPEFjdHVhbFN0YXJ0VGltZT4sIGFuZCBDPEFjdHVhbEVuZFRpbWU+LgpUaGVyZSBwYXNzaW5nIEM8dW5kZWY+IGluZGljYXRlcyB0aGF0IHRoZSBDPHdvcmtvcmRlcj4gdGltZSBzaG91bGQgYmUgY2xlYXJlZC4KQW5vdGhlciBleGNlcHRpb24gaXMgdGhlIFdvcmtPcmRlckFnZW50SUQuIFBhc3MgdW5kZWYgZm9yIHJlbW92aW5nIHRoZSBDPHdvcmtvcmRlcj4gYWdlbnQuCgogICAgbXkgJFN1Y2Nlc3MgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJVcGRhdGUoCiAgICAgICAgV29ya09yZGVySUQgICAgICAgID0+IDQsCiAgICAgICAgV29ya09yZGVyTnVtYmVyICAgID0+IDUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBXb3JrT3JkZXJUaXRsZSAgICAgPT4gJ1JlcGxhY2VtZW50IG9mIG1haWwgc2VydmVyJywgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIEluc3RydWN0aW9uICAgICAgICA9PiAnSW5zdGFsbCB0aGUgdGhlIG5ldyBzZXJ2ZXInLCAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgUmVwb3J0ICAgICAgICAgICAgID0+ICdJbnN0YWxsZWQgbmV3IHNlcnZlciB3aXRob3V0IHByb2JsZW1zJywgICAjIChvcHRpb25hbCkKICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEICAgPT4gMTU3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSBvciBXb3JrT3JkZXJTdGF0ZSA9PiAncmVhZHknCiAgICAgICAgV29ya09yZGVyU3RhdGUgICAgID0+ICdyZWFkeScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgb3IgV29ya09yZGVyU3RhdGVJRCA9PiAxNTcKICAgICAgICBXb3JrT3JkZXJUeXBlSUQgICAgPT4gMTYxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSBvciBXb3JrT3JkZXJUeXBlID0+ICdwaXInCiAgICAgICAgV29ya09yZGVyVHlwZSAgICAgID0+ICdwaXInLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgb3IgV29ya09yZGVyU3RhdGVJRCA9PiAxNjEKICAgICAgICBXb3JrT3JkZXJBZ2VudElEICAgPT4gOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSBjYW4gYmUgdW5kZWYgZm9yIHJlbW92aW5nIHRoZSB3b3Jrb3JkZXIgYWdlbnQKICAgICAgICBQbGFubmVkU3RhcnRUaW1lICAgPT4gJzIwMDktMTAtMTIgMDA6MDA6MDEnLCAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSAndW5kZWYnIGluZGljYXRlcyBjbGVhcmluZwogICAgICAgIFBsYW5uZWRFbmRUaW1lICAgICA9PiAnMjAwOS0xMC0xNSAxNTowMDowMCcsICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpICd1bmRlZicgaW5kaWNhdGVzIGNsZWFyaW5nCiAgICAgICAgQWN0dWFsU3RhcnRUaW1lICAgID0+ICcyMDA5LTEwLTE0IDAwOjAwOjAxJywgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgJ3VuZGVmJyBpbmRpY2F0ZXMgY2xlYXJpbmcKICAgICAgICBBY3R1YWxFbmRUaW1lICAgICAgPT4gJzIwMDktMDEtMjAgMDA6MDA6MDEnLCAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSAndW5kZWYnIGluZGljYXRlcyBjbGVhcmluZwogICAgICAgIFBsYW5uZWRFZmZvcnQgICAgICA9PiAxMjMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgQWNjb3VudGVkVGltZSAgICAgID0+IDEzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgdGhlIHZhbHVlIGlzIGFkZGVkIHRvIHRoZSB2YWx1ZSBpbiB0aGUgZGF0YWJhc2UKICAgICAgICBEeW5hbWljRmllbGRfWCAgICAgPT4gJ1N1bicsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIER5bmFtaWNGaWVsZF9ZICAgICA9PiAnRWFydGgnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgTm9OdW1iZXJDYWxjICAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgZGVmYXVsdCAwLCBpZiAxIGl0IHByZXZlbnRzIGEgcmVjYWxjdWxhdGlvbiBvZiB0aGUgd29ya29yZGVyIG51bWJlcnMKICAgICAgICBCeXBhc3NTdGF0ZU1hY2hpbmUgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSBkZWZhdWx0IDAsIGlmIDEgdGhlIHN0YXRlIG1hY2hpbmUgd2lsbCBiZSBieXBhc3NlZAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAogICAgKTsKCkNvbnN0cmFpbnRzOgoKQzx4eHhTdGFydFRpbWU+IGhhcyB0byBiZSBiZWZvcmUgQzx4eHhFbmRUaW1lPi4gSWYganVzdCBvbmUgb2YgdGhlIHBhcmFtZXRlciBwYWlyIGlzIHBhc3NlZAp0aGUgb3RoZXIgdGltZSBpcyByZXRyaWV2ZWQgZnJvbSBkYXRhYmFzZS4KVGhlIEM8V29ya09yZGVyU3RhdGVJRD4gaXMgY2hlY2tlZCBhZ2FpbnN0IHRoZSBzdGF0ZSBtYWNoaW5lLgoKPWN1dAoKc3ViIFdvcmtPcmRlclVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhXb3JrT3JkZXJJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgdGhhdCBub3QgYm90aCBXb3JrT3JkZXJTdGF0ZSBhbmQgV29ya09yZGVyU3RhdGVJRCBhcmUgZ2l2ZW4KICAgIGlmICggJFBhcmFte1dvcmtPcmRlclN0YXRlfSAmJiAkUGFyYW17V29ya09yZGVyU3RhdGVJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIGVpdGhlciBXb3JrT3JkZXJTdGF0ZSBPUiBXb3JrT3JkZXJTdGF0ZUlEIC0gbm90IGJvdGghJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHdoZW4gdGhlIFN0YXRlIGlzIGdpdmVuLCB0aGVuIGxvb2sgdXAgdGhlIElECiAgICBpZiAoICRQYXJhbXtXb3JrT3JkZXJTdGF0ZX0gKSB7CiAgICAgICAgJFBhcmFte1dvcmtPcmRlclN0YXRlSUR9ID0gJFNlbGYtPldvcmtPcmRlclN0YXRlTG9va3VwKAogICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZSA9PiAkUGFyYW17V29ya09yZGVyU3RhdGV9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayB0aGF0IG5vdCBib3RoIFR5cGUgYW5kIFR5cGVJRCBhcmUgZ2l2ZW4KICAgIGlmICggJFBhcmFte1dvcmtPcmRlclR5cGV9ICYmICRQYXJhbXtXb3JrT3JkZXJUeXBlSUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBlaXRoZXIgV29ya09yZGVyVHlwZSBPUiBXb3JrT3JkZXJUeXBlSUQgLSBub3QgYm90aCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgaWYgVHlwZSBpcyBnaXZlbiwgdGhlbiBsb29rIHVwIHRoZSBJRAogICAgaWYgKCAkUGFyYW17V29ya09yZGVyVHlwZX0gKSB7CiAgICAgICAgJFBhcmFte1dvcmtPcmRlclR5cGVJRH0gPSAkU2VsZi0+V29ya09yZGVyVHlwZUxvb2t1cCgKICAgICAgICAgICAgV29ya09yZGVyVHlwZSA9PiAkUGFyYW17V29ya09yZGVyVHlwZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG5vcm1hbGl6ZSB0aGUgVGl0bGUsIHdoZW4gaXQgaXMgZ2l2ZW4KICAgIGlmICggJFBhcmFte1dvcmtPcmRlclRpdGxlfSAmJiAhcmVmICRQYXJhbXtXb3JrT3JkZXJUaXRsZX0gKSB7CgogICAgICAgICMgcmVtb3ZlIGxlYWRpbmcgd2hpdGVzcGFjZQogICAgICAgICRQYXJhbXtXb3JrT3JkZXJUaXRsZX0gPX4gc3sgXEEgXHMrIH17fXhtczsKCiAgICAgICAgIyByZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZQogICAgICAgICRQYXJhbXtXb3JrT3JkZXJUaXRsZX0gPX4gc3sgXHMrIFx6IH17fXhtczsKICAgIH0KCiAgICAjIGdldCBhIHBsYWluIHRleHQgdmVyc2lvbiBvZiBhcmd1bWVudHMgd2hpY2ggbWlnaHQgY29udGFpbiBIVE1MIG1hcmt1cAogICAgQVJHVU1FTlQ6CiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhJbnN0cnVjdGlvbiBSZXBvcnQpKSB7CgogICAgICAgIG5leHQgQVJHVU1FTlQgaWYgIWV4aXN0cyAkUGFyYW17JEFyZ3VtZW50fTsKCiAgICAgICAgJFBhcmFteyIke0FyZ3VtZW50fVBsYWluIn0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyktPlRvQXNjaWkoCiAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17JEFyZ3VtZW50fSwKICAgICAgICApOwoKICAgICAgICAjIEV2ZW4gd2hlbiBwYXNzZWQgYSBwbGFpbiBBU0NJSSBzdHJpbmcsCiAgICAgICAgIyBUb0FzY2lpKCkgY2FuIHJldHVybiBhIG5vbi11dGY4IHN0cmluZyB3aXRoIGNoYXJzIGluIHRoZSBleHRlbmRlZCByYW5nZS4KICAgICAgICAjIFVwZ3JhZGUgdG8gdXRmLTggaW4gb3JkZXIgdG8gY29tcGx5IHRvIHRoZSBPVFJTLWNvbnZlbnRpb24uCiAgICAgICAgdXRmODo6dXBncmFkZSggJFBhcmFteyIke0FyZ3VtZW50fVBsYWluIn0gKTsKICAgIH0KCiAgICAjIGRlZmF1bHQgdmFsdWVzIGZvciBwbGFubmVkIGVmZm9ydCBhbmQgYWNjb3VudGVkIHRpbWUKICAgICMgdGhpcyBhdm9pZHMgc3VwZXJmbG91cyBoaXN0b3J5IGVudHJpZXMKICAgIEFSR1VNRU5UOgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoUGxhbm5lZEVmZm9ydCBBY2NvdW50ZWRUaW1lKSkgewoKICAgICAgICBuZXh0IEFSR1VNRU5UIGlmICFleGlzdHMgJFBhcmFteyRBcmd1bWVudH07CgogICAgICAgICRQYXJhbXskQXJndW1lbnR9IHx8PSAwOwogICAgfQoKICAgICMgY2hlY2sgdGhlIGdpdmVuIHBhcmFtZXRlcnMKICAgIHJldHVybiBpZiAhJFNlbGYtPl9DaGVja1dvcmtPcmRlclBhcmFtcyglUGFyYW0pOwoKICAgICMgY2hlY2sgc2FuaXR5IG9mIHRoZSBuZXcgc3RhdGUgd2l0aCB0aGUgc3RhdGUgbWFjaGluZQogICAgaWYgKCAkUGFyYW17V29ya09yZGVyU3RhdGVJRH0gKSB7CgogICAgICAgICMgZ2V0IHdvcmtvcmRlciBpZAogICAgICAgIG15ICRXb3JrT3JkZXJJRCA9ICRQYXJhbXtXb3JrT3JkZXJJRH07CgogICAgICAgICMgZG8gbm90IGdpdmUgV29ya09yZGVyUG9zc2libGVTdGF0ZXNHZXQoKSB0aGUgV29ya09yZGVySUQKICAgICAgICAjIGlmIHRoZSBzdGF0ZW1hY2hpbmUgc2hvdWxkIGJlIGJ5cGFzc2VkLgogICAgICAgICMgV29ya09yZGVyUG9zc2libGVTdGF0ZXNHZXQoKSB3aWxsIHRoZW4gcmV0dXJuIGFsbCB3b3Jrb3JkZXIgc3RhdGVzCiAgICAgICAgaWYgKCAkUGFyYW17QnlwYXNzU3RhdGVNYWNoaW5lfSApIHsKICAgICAgICAgICAgJFdvcmtPcmRlcklEID0gdW5kZWY7CiAgICAgICAgfQoKICAgICAgICAjIGdldCB0aGUgbGlzdCBvZiBwb3NzaWJsZSBuZXh0IHN0YXRlcwogICAgICAgIG15ICRTdGF0ZUxpc3QgPSAkU2VsZi0+V29ya09yZGVyUG9zc2libGVTdGF0ZXNHZXQoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICFncmVwIHsgJF8tPntLZXl9ID09ICRQYXJhbXtXb3JrT3JkZXJTdGF0ZUlEfSB9IEB7JFN0YXRlTGlzdH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgc3RhdGUgJFBhcmFte1dvcmtPcmRlclN0YXRlSUR9IGlzIG5vdCBhIHBvc3NpYmxlIG5leHQgc3RhdGUhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBvbGQgZGF0YSB0byBiZSBnaXZlbiB0byBfQ2hlY2tXb3JrT3JkZXJQYXJhbXMoKSBhbmQgdGhlIHBvc3QgZXZlbnQgaGFuZGxlcgogICAgbXkgJFdvcmtPcmRlckRhdGEgPSAkU2VsZi0+V29ya09yZGVyR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtXb3JrT3JkZXJJRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgdGhlIHRpbWVzdGFtcHMgYXJlIGNvcnJlY3QKICAgIHJldHVybiBpZiAhJFNlbGYtPl9DaGVja1RpbWVzdGFtcHMoCiAgICAgICAgJVBhcmFtLAogICAgICAgIFdvcmtPcmRlckRhdGEgPT4gJFdvcmtPcmRlckRhdGEsCiAgICApOwoKICAgICMgdHJpZ2dlciBXb3JrT3JkZXJVcGRhdGVQcmUtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ1dvcmtPcmRlclVwZGF0ZVByZScsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgc2V0IHRoZSB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMKICAgIEtFWToKICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVQYXJhbSApIHsKCiAgICAgICAgbmV4dCBLRVkgaWYgJEtleSAhfiBteyBcQSBEeW5hbWljRmllbGRfKC4qKSBceiB9eG1zOwoKICAgICAgICAjIHNhdmUgdGhlIHJlYWwgbmFtZSBvZiB0aGUgZHluYW1pYyBmaWVsZCAod2l0aG91dCBwcmVmaXgpCiAgICAgICAgbXkgJER5bmFtaWNGaWVsZE5hbWUgPSAkMTsKCiAgICAgICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGQgY29uZmlnCiAgICAgICAgbXkgJER5bmFtaWNGaWVsZENvbmZpZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkR2V0KAogICAgICAgICAgICBOYW1lID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICk7CgogICAgICAgICMgd3JpdGUgdmFsdWUgdG8gZHluYW1pYyBmaWVsZAogICAgICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpLT5WYWx1ZVNldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkUGFyYW17V29ya09yZGVySUR9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJFBhcmFteyRLZXl9LAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG1hcCB1cGRhdGUgYXR0cmlidXRlcyB0byBjb2x1bW4gbmFtZXMKICAgIG15ICVBdHRyaWJ1dGUgPSAoCiAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAndGl0bGUnLAogICAgICAgIFdvcmtPcmRlck51bWJlciAgPT4gJ3dvcmtvcmRlcl9udW1iZXInLAogICAgICAgIEluc3RydWN0aW9uICAgICAgPT4gJ2luc3RydWN0aW9uJywKICAgICAgICBSZXBvcnQgICAgICAgICAgID0+ICdyZXBvcnQnLAogICAgICAgIFdvcmtPcmRlclN0YXRlSUQgPT4gJ3dvcmtvcmRlcl9zdGF0ZV9pZCcsCiAgICAgICAgV29ya09yZGVyVHlwZUlEICA9PiAnd29ya29yZGVyX3R5cGVfaWQnLAogICAgICAgIFdvcmtPcmRlckFnZW50SUQgPT4gJ3dvcmtvcmRlcl9hZ2VudF9pZCcsCiAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAncGxhbm5lZF9zdGFydF90aW1lJywKICAgICAgICBQbGFubmVkRW5kVGltZSAgID0+ICdwbGFubmVkX2VuZF90aW1lJywKICAgICAgICBBY3R1YWxTdGFydFRpbWUgID0+ICdhY3R1YWxfc3RhcnRfdGltZScsCiAgICAgICAgQWN0dWFsRW5kVGltZSAgICA9PiAnYWN0dWFsX2VuZF90aW1lJywKICAgICAgICBJbnN0cnVjdGlvblBsYWluID0+ICdpbnN0cnVjdGlvbl9wbGFpbicsCiAgICAgICAgUmVwb3J0UGxhaW4gICAgICA9PiAncmVwb3J0X3BsYWluJywKICAgICk7CgogICAgIyBidWlsZCBTUUwgdG8gdXBkYXRlIHdvcmtvcmRlcgogICAgbXkgJFNRTCA9ICdVUERBVEUgY2hhbmdlX3dvcmtvcmRlciBTRVQgJzsKICAgIG15IEBCaW5kOwoKICAgICMgZGVmaW5lIHRoZSBEZWZhdWx0VGltZVN0YW1wCiAgICBteSAkRGVmYXVsdFRpbWVTdGFtcCA9ICc5OTk5LTAxLTAxIDAwOjAwOjAwJzsKCiAgICBBVFRSSUJVVEU6CiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAlQXR0cmlidXRlICkgewoKICAgICAgICAjIHByZXNlcnZlIHRoZSBvbGQgdmFsdWUsIHdoZW4gdGhlIGNvbHVtbiBpc24ndCBpbiBmdW5jdGlvbiBwYXJhbWV0ZXJzCiAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgIWV4aXN0cyAkUGFyYW17JEF0dHJpYnV0ZX07CgogICAgICAgICMgYXR0cmlidXRlIGlzIGRlZmluZWQKICAgICAgICBpZiAoIGRlZmluZWQgJFBhcmFteyRBdHRyaWJ1dGV9ICkgewogICAgICAgICAgICAkU1FMIC49ICIkQXR0cmlidXRleyRBdHRyaWJ1dGV9ID0gPywgIjsKICAgICAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXskQXR0cmlidXRlfTsKICAgICAgICB9CgogICAgICAgICMgaXQncyBvayBpZiB0aGUgV29ya09yZGVyQWdlbnRJRCBpcyBub3QgZGVmaW5lZAogICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnV29ya09yZGVyQWdlbnRJRCcgKSB7CiAgICAgICAgICAgICRTUUwgLj0gIiRBdHRyaWJ1dGV7JEF0dHJpYnV0ZX0gPSBOVUxMLCAiOwogICAgICAgIH0KCiAgICAgICAgIyBhdHRyaWJ1dGUgaXMgbm90IGRlZmluZWQgYW5kIGlzIG9uZSBvZiB0aGUgdGltZSBwYXJhbWV0ZXJzCiAgICAgICAgZWxzaWYgKCAkQXR0cmlidXRlID1+IG17IFxBICggQWN0dWFsIHwgUGxhbm5lZCApICggU3RhcnQgfCBFbmQgKSBUaW1lIFx6IH14bXMgKSB7CiAgICAgICAgICAgICRTUUwgLj0gIiRBdHRyaWJ1dGV7JEF0dHJpYnV0ZX0gPSA/LCAiOwogICAgICAgICAgICBwdXNoIEBCaW5kLCBcJERlZmF1bHRUaW1lU3RhbXA7CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkaXRpb24gb2YgYWNjb3VudGVkIHRpbWUKICAgIGlmICggJFBhcmFte0FjY291bnRlZFRpbWV9ICkgewoKICAgICAgICAjIGdldCBjdXJyZW50IGFjY291bnRlZCB0aW1lCiAgICAgICAgbXkgJEN1cnJlbnRBY2NvdW50ZWRUaW1lID0gJFdvcmtPcmRlckRhdGEtPntBY2NvdW50ZWRUaW1lfSB8fCAwOwoKICAgICAgICAjIGFkZCBuZXcgYWNjb3V0ZWQgdGltZSB0byBjdXJyZW50IGFjY291bnRlZCB0aW1lCiAgICAgICAgbXkgJEFjY291bnRlZFRpbWUgPSAkQ3VycmVudEFjY291bnRlZFRpbWUgKyAkUGFyYW17QWNjb3VudGVkVGltZX07CgogICAgICAgICMgZGIgcXVvdGUKICAgICAgICAkQWNjb3VudGVkVGltZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5RdW90ZSggJEFjY291bnRlZFRpbWUsICdOdW1iZXInICk7CgogICAgICAgICMgYnVpbGQgU1FMICh3aXRob3V0IGJpbmRzKQogICAgICAgICRTUUwgLj0gImFjY291bnRlZF90aW1lID0gJEFjY291bnRlZFRpbWUsICI7CiAgICB9CgogICAgIyBzZXR0aW5nIG9mIHBsYW5uZWQgZWZmb3J0CiAgICBpZiAoICRQYXJhbXtQbGFubmVkRWZmb3J0fSApIHsKCiAgICAgICAgIyBkYiBxdW90ZQogICAgICAgICRQYXJhbXtQbGFubmVkRWZmb3J0fSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5RdW90ZSggJFBhcmFte1BsYW5uZWRFZmZvcnR9LCAnTnVtYmVyJyApOwoKICAgICAgICAjIGJ1aWxkIFNRTCAod2l0aG91dCBiaW5kcykKICAgICAgICAkU1FMIC49ICJwbGFubmVkX2VmZm9ydCA9ICRQYXJhbXtQbGFubmVkRWZmb3J0fSwgIjsKICAgIH0KCiAgICAkU1FMIC49ICdjaGFuZ2VfdGltZSA9IGN1cnJlbnRfdGltZXN0YW1wLCBjaGFuZ2VfYnkgPSA/ICc7CiAgICBwdXNoIEBCaW5kLCBcJFBhcmFte1VzZXJJRH07CiAgICAkU1FMIC49ICdXSEVSRSBpZCA9ID8nOwogICAgcHVzaCBAQmluZCwgXCRQYXJhbXtXb3JrT3JkZXJJRH07CgogICAgIyB1cGRhdGUgd29ya29yZGVyCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgQmluZCA9PiBcQEJpbmQsCiAgICApOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBmb3IgbXkgJEtleSAoCiAgICAgICAgJ1dvcmtPcmRlckdldDo6SUQ6OicgLiAkUGFyYW17V29ya09yZGVySUR9LAogICAgICAgICdXb3JrT3JkZXJMaXN0OjpDaGFuZ2VJRDo6JyAuICRXb3JrT3JkZXJEYXRhLT57Q2hhbmdlSUR9LAogICAgICAgICdXb3JrT3JkZXJDaGFuZ2VFZmZvcnRzR2V0OjpDaGFuZ2VJRDo6JyAuICRXb3JrT3JkZXJEYXRhLT57Q2hhbmdlSUR9LAogICAgICAgICdXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0OjpDaGFuZ2VJRDo6JyAuICRXb3JrT3JkZXJEYXRhLT57Q2hhbmdlSUR9LAogICAgICAgICdDaGFuZ2VHZXQ6OklEOjonIC4gJFdvcmtPcmRlckRhdGEtPntDaGFuZ2VJRH0sCiAgICAgICAgKQogICAgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgIyB0cmlnZ2VyIFdvcmtPcmRlclVwZGF0ZVBvc3QtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ1dvcmtPcmRlclVwZGF0ZVBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgT2xkV29ya09yZGVyRGF0YSA9PiAkV29ya09yZGVyRGF0YSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIFdvcmtPcmRlckdldCgpCgpSZXR1cm4gYSBDPFdvcmtPcmRlcj4gYXMgaGFzaCByZWZlcmVuY2UuCldoZW4gdGhlIEM8d29ya29yZGVyPiBkb2VzIG5vdCBleGlzdCwgYSBmYWxzZSB2YWx1ZSBpcyByZXR1cm5lZC4KVGhlIG9wdGlvbmFsIG9wdGlvbiBDPExvZ05vPiB0dXJucyBvZmYgbG9nZ2luZyB3aGVuIHRoZSBDPHdvcmtvcmRlcj4gZG9lcyBub3QgZXhpc3QuCgogICAgbXkgJFdvcmtPcmRlclJlZiA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckdldCgKICAgICAgICBXb3JrT3JkZXJJRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICBMb2dObyAgICAgICA9PiAxLCAgICAgICMgb3B0aW9uYWwsIHR1cm5zIG9mZiBsb2dnaW5nIHdoZW4gdGhlIHdvcmtvcmRlciBkb2VzIG5vdCBleGlzdAogICAgKTsKClRoZSByZXR1cm5lZCBoYXNoIHJlZmVyZW5jZSBjb250YWlucyBmb2xsb3dpbmcgZWxlbWVudHM6CgogICAgJFdvcmtPcmRlcntXb3JrT3JkZXJJRH0KICAgICRXb3JrT3JkZXJ7Q2hhbmdlSUR9CiAgICAkV29ya09yZGVye1dvcmtPcmRlck51bWJlcn0KICAgICRXb3JrT3JkZXJ7V29ya09yZGVyVGl0bGV9CiAgICAkV29ya09yZGVye0luc3RydWN0aW9ufQogICAgJFdvcmtPcmRlcntJbnN0cnVjdGlvblBsYWlufQogICAgJFdvcmtPcmRlcntSZXBvcnR9CiAgICAkV29ya09yZGVye1JlcG9ydFBsYWlufQogICAgJFdvcmtPcmRlcntXb3JrT3JkZXJTdGF0ZUlEfQogICAgJFdvcmtPcmRlcntXb3JrT3JkZXJTdGF0ZX0gICAgICAgICAgICAgICMgZmV0Y2hlZCBmcm9tIHRoZSBnZW5lcmFsIGNhdGFsb2cKICAgICRXb3JrT3JkZXJ7V29ya09yZGVyU3RhdGVTaWduYWx9ICAgICAgICAjIGZldGNoZWQgZnJvbSBTeXNDb25maWcKICAgICRXb3JrT3JkZXJ7V29ya09yZGVyVHlwZUlEfQogICAgJFdvcmtPcmRlcntXb3JrT3JkZXJUeXBlfSAgICAgICAgICAgICAgICMgZmV0Y2hlZCBmcm9tIHRoZSBnZW5lcmFsIGNhdGFsb2cKICAgICRXb3JrT3JkZXJ7V29ya09yZGVyQWdlbnRJRH0KICAgICRXb3JrT3JkZXJ7UGxhbm5lZFN0YXJ0VGltZX0KICAgICRXb3JrT3JkZXJ7UGxhbm5lZEVuZFRpbWV9CiAgICAkV29ya09yZGVye0FjdHVhbFN0YXJ0VGltZX0KICAgICRXb3JrT3JkZXJ7QWN0dWFsRW5kVGltZX0KICAgICRXb3JrT3JkZXJ7QWNjb3VudGVkVGltZX0KICAgICRXb3JrT3JkZXJ7UGxhbm5lZEVmZm9ydH0KICAgICRXb3JrT3JkZXJ7RHluYW1pY0ZpZWxkX1h9CiAgICAkV29ya09yZGVye0R5bmFtaWNGaWVsZF9ZfQogICAgJFdvcmtPcmRlcntDcmVhdGVUaW1lfQogICAgJFdvcmtPcmRlcntDcmVhdGVCeX0KICAgICRXb3JrT3JkZXJ7Q2hhbmdlVGltZX0KICAgICRXb3JrT3JkZXJ7Q2hhbmdlQnl9Cgo9Y3V0CgpzdWIgV29ya09yZGVyR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXR0cmlidXRlIChxdyhXb3JrT3JkZXJJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBdHRyaWJ1dGV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXR0cmlidXRlISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJVdvcmtPcmRlckRhdGE7CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJENhY2hlS2V5ID0gJ1dvcmtPcmRlckdldDo6SUQ6OicgLiAkUGFyYW17V29ya09yZGVySUR9OwogICAgbXkgJENhY2hlICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkdldCgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICk7CgogICAgaWYgKCRDYWNoZSkgewoKICAgICAgICAjIGdldCBkYXRhIGZyb20gY2FjaGUKICAgICAgICAlV29ya09yZGVyRGF0YSA9ICV7JENhY2hlfTsKICAgIH0KCiAgICBlbHNlIHsKCiAgICAgICAgIyBnZXQgZGF0YSBmcm9tIGRhdGFiYXNlCiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQsIGNoYW5nZV9pZCwgd29ya29yZGVyX251bWJlciwgdGl0bGUsICcKICAgICAgICAgICAgICAgIC4gJ2luc3RydWN0aW9uLCBpbnN0cnVjdGlvbl9wbGFpbiwgJwogICAgICAgICAgICAgICAgLiAncmVwb3J0LCByZXBvcnRfcGxhaW4sICcKICAgICAgICAgICAgICAgIC4gJ3dvcmtvcmRlcl9zdGF0ZV9pZCwgd29ya29yZGVyX3R5cGVfaWQsIHdvcmtvcmRlcl9hZ2VudF9pZCwgJwogICAgICAgICAgICAgICAgLiAncGxhbm5lZF9zdGFydF90aW1lLCBwbGFubmVkX2VuZF90aW1lLCBhY3R1YWxfc3RhcnRfdGltZSwgYWN0dWFsX2VuZF90aW1lLCAnCiAgICAgICAgICAgICAgICAuICdjcmVhdGVfdGltZSwgY3JlYXRlX2J5LCAnCiAgICAgICAgICAgICAgICAuICdjaGFuZ2VfdGltZSwgY2hhbmdlX2J5LCAnCiAgICAgICAgICAgICAgICAuICdwbGFubmVkX2VmZm9ydCwgYWNjb3VudGVkX3RpbWUgJwogICAgICAgICAgICAgICAgLiAnRlJPTSBjaGFuZ2Vfd29ya29yZGVyICcKICAgICAgICAgICAgICAgIC4gJ1dIRVJFIGlkID0gPycsCiAgICAgICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtXb3JrT3JkZXJJRH0gXSwKICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAkV29ya09yZGVyRGF0YXtXb3JrT3JkZXJJRH0gICAgICA9ICRSb3dbMF07CiAgICAgICAgICAgICRXb3JrT3JkZXJEYXRhe0NoYW5nZUlEfSAgICAgICAgID0gJFJvd1sxXTsKICAgICAgICAgICAgJFdvcmtPcmRlckRhdGF7V29ya09yZGVyTnVtYmVyfSAgPSAkUm93WzJdOwogICAgICAgICAgICAkV29ya09yZGVyRGF0YXtXb3JrT3JkZXJUaXRsZX0gICA9IGRlZmluZWQgJFJvd1szXSA/ICRSb3dbM10gOiAnJzsKICAgICAgICAgICAgJFdvcmtPcmRlckRhdGF7SW5zdHJ1Y3Rpb259ICAgICAgPSBkZWZpbmVkICRSb3dbNF0gPyAkUm93WzRdIDogJyc7CiAgICAgICAgICAgICRXb3JrT3JkZXJEYXRhe0luc3RydWN0aW9uUGxhaW59ID0gZGVmaW5lZCAkUm93WzVdID8gJFJvd1s1XSA6ICcnOwogICAgICAgICAgICAkV29ya09yZGVyRGF0YXtSZXBvcnR9ICAgICAgICAgICA9IGRlZmluZWQgJFJvd1s2XSA/ICRSb3dbNl0gOiAnJzsKICAgICAgICAgICAgJFdvcmtPcmRlckRhdGF7UmVwb3J0UGxhaW59ICAgICAgPSBkZWZpbmVkICRSb3dbN10gPyAkUm93WzddIDogJyc7CiAgICAgICAgICAgICRXb3JrT3JkZXJEYXRhe1dvcmtPcmRlclN0YXRlSUR9ID0gJFJvd1s4XTsKICAgICAgICAgICAgJFdvcmtPcmRlckRhdGF7V29ya09yZGVyVHlwZUlEfSAgPSAkUm93WzldOwogICAgICAgICAgICAkV29ya09yZGVyRGF0YXtXb3JrT3JkZXJBZ2VudElEfSA9ICRSb3dbMTBdOwogICAgICAgICAgICAkV29ya09yZGVyRGF0YXtQbGFubmVkU3RhcnRUaW1lfSA9ICRSb3dbMTFdOwogICAgICAgICAgICAkV29ya09yZGVyRGF0YXtQbGFubmVkRW5kVGltZX0gICA9ICRSb3dbMTJdOwogICAgICAgICAgICAkV29ya09yZGVyRGF0YXtBY3R1YWxTdGFydFRpbWV9ICA9ICRSb3dbMTNdOwogICAgICAgICAgICAkV29ya09yZGVyRGF0YXtBY3R1YWxFbmRUaW1lfSAgICA9ICRSb3dbMTRdOwogICAgICAgICAgICAkV29ya09yZGVyRGF0YXtDcmVhdGVUaW1lfSAgICAgICA9ICRSb3dbMTVdOwogICAgICAgICAgICAkV29ya09yZGVyRGF0YXtDcmVhdGVCeX0gICAgICAgICA9ICRSb3dbMTZdOwogICAgICAgICAgICAkV29ya09yZGVyRGF0YXtDaGFuZ2VUaW1lfSAgICAgICA9ICRSb3dbMTddOwogICAgICAgICAgICAkV29ya09yZGVyRGF0YXtDaGFuZ2VCeX0gICAgICAgICA9ICRSb3dbMThdOwogICAgICAgICAgICAkV29ya09yZGVyRGF0YXtQbGFubmVkRWZmb3J0fSAgICA9ICRSb3dbMTldIC8vICcwLjAwJzsKICAgICAgICAgICAgJFdvcmtPcmRlckRhdGF7QWNjb3VudGVkVGltZX0gICAgPSAkUm93WzIwXSAvLyAnMC4wMCc7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgaWYgKCAhJVdvcmtPcmRlckRhdGEgKSB7CiAgICAgICAgICAgIGlmICggISRQYXJhbXtMb2dOb30gKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJXb3JrT3JkZXJJRCAkUGFyYW17V29ya09yZGVySUR9IGRvZXMgbm90IGV4aXN0ISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIFRJTUVGSUVMRDoKICAgICAgICBmb3IgbXkgJFRpbWUgKHF3KFBsYW5uZWRTdGFydFRpbWUgUGxhbm5lZEVuZFRpbWUgQWN0dWFsU3RhcnRUaW1lIEFjdHVhbEVuZFRpbWUpKSB7CgogICAgICAgICAgICBuZXh0IFRJTUVGSUVMRCBpZiAhJFdvcmtPcmRlckRhdGF7JFRpbWV9OwoKICAgICAgICAgICAgIyBjbGVhbnVwIHRpbWUgc3RhbXBzIChzb21lIGRhdGFiYXNlcyBhcmUgdXNpbmcgZS4gZy4gMjAwOC0wMi0yNSAyMjowMzowMC4wMDAwMDApCiAgICAgICAgICAgICRXb3JrT3JkZXJEYXRheyRUaW1lfQogICAgICAgICAgICAgICAgPX4gc3sgXEEgKCBcZFxkXGRcZCAtIFxkXGQgLSBcZFxkIFxzIFxkXGQ6XGRcZDpcZFxkICkgXC4gLis/IFx6IH17JDF9eG1zOwoKICAgICAgICAgICAgIyByZXBsYWNlIGRlZmF1bHQgdGltZSB2YWx1ZXMgd2l0aCBlbXB0eSBzdHJpbmcKICAgICAgICAgICAgaWYgKCAkV29ya09yZGVyRGF0YXskVGltZX0gZXEgJzk5OTktMDEtMDEgMDA6MDA6MDAnICkgewogICAgICAgICAgICAgICAgJFdvcmtPcmRlckRhdGF7JFRpbWV9ID0gJyc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIEFUVFJJQlVURToKICAgICAgICBmb3IgbXkgJEF0dHJpYnV0ZSAocXcoUGxhbm5lZEVmZm9ydCBBY2NvdW50ZWRUaW1lKSkgewoKICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgISRXb3JrT3JkZXJEYXRheyRBdHRyaWJ1dGV9OwoKICAgICAgICAgICAgIyBkbyBub3Qgc2hvdyB6ZXJvIHZhbHVlcwogICAgICAgICAgICBpZiAoICRXb3JrT3JkZXJEYXRheyRBdHRyaWJ1dGV9IGVxIDAgKSB7CiAgICAgICAgICAgICAgICAkV29ya09yZGVyRGF0YXskQXR0cmlidXRlfSA9ICcnOwogICAgICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY29udmVydCBkZWNpbWFsIGNoYXJhY3RlciBmcm9tICcsJyB0byAnLicgaWYgbmVjY2Vzc2FyeQogICAgICAgICAgICAkV29ya09yZGVyRGF0YXskQXR0cmlidXRlfSA9fiBzeyx9ey59eG1zZzsKCiAgICAgICAgICAgICMgZm9ybWF0IGFzIGRlY2ltYWwgbnVtYmVyCiAgICAgICAgICAgICRXb3JrT3JkZXJEYXRheyRBdHRyaWJ1dGV9ID0gc3ByaW50ZiAnJS4yZicsICRXb3JrT3JkZXJEYXRheyRBdHRyaWJ1dGV9OwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgYWxsIGR5bmFtaWMgZmllbGRzIGZvciB0aGUgb2JqZWN0IHR5cGUgSVRTTVdvcmtPcmRlcgogICAgICAgIG15ICREeW5hbWljRmllbGRMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgICAgICBPYmplY3RUeXBlID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICApOwoKICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGRMaXN0fSApIHsKCiAgICAgICAgICAgICMgdmFsaWRhdGUgZWFjaCBkeW5hbWljIGZpZWxkCiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkQ29uZmlnOwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30gKTsKCiAgICAgICAgICAgICMgZ2V0IHRoZSBjdXJyZW50IHZhbHVlIGZvciBlYWNoIGR5bmFtaWMgZmllbGQKICAgICAgICAgICAgbXkgJFZhbHVlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpLT5WYWx1ZUdldCgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRQYXJhbXtXb3JrT3JkZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNldCB0aGUgZHluYW1pYyBmaWVsZCBuYW1lIGFuZCB2YWx1ZSBpbnRvIHRoZSB3b3Jrb3JkZXIgZGF0YSBoYXNoCiAgICAgICAgICAgICRXb3JrT3JkZXJEYXRheyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9ICRWYWx1ZSAvLyAnJzsKICAgICAgICB9CgogICAgICAgICMgc2V0IGNhY2hlICh3b3Jrb3JkZXIgZGF0YSBleGlzdHMgYXQgdGhpcyBwb2ludCwgaXQgd2FzIGNoZWNrZWQgYmVmb3JlKQogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgICAgIFR5cGUgID0+ICdJVFNNQ2hhbmdlTWFuYWdlbWVudCcsCiAgICAgICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICAgICAgVmFsdWUgPT4gXCVXb3JrT3JkZXJEYXRhLAogICAgICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICAgICApOwogICAgfQoKICAgICMgYWRkIHRoZSBuYW1lIG9mIHRoZSB3b3Jrb3JkZXIgc3RhdGUKICAgIGlmICggJFdvcmtPcmRlckRhdGF7V29ya09yZGVyU3RhdGVJRH0gKSB7CiAgICAgICAgJFdvcmtPcmRlckRhdGF7V29ya09yZGVyU3RhdGV9ID0gJFNlbGYtPldvcmtPcmRlclN0YXRlTG9va3VwKAogICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICRXb3JrT3JkZXJEYXRhe1dvcmtPcmRlclN0YXRlSUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBhZGQgdGhlIHdvcmtvcmRlciBzdGF0ZSBzaWduYWwKICAgIGlmICggJFdvcmtPcmRlckRhdGF7V29ya09yZGVyU3RhdGV9ICkgewoKICAgICAgICAjIGdldCBhbGwgd29ya29yZGVyIHN0YXRlIHNpZ25hbHMKICAgICAgICBteSAkU3RhdGVTaWduYWwgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0lUU01Xb3JrT3JkZXI6OlN0YXRlOjpTaWduYWwnKTsKCiAgICAgICAgJFdvcmtPcmRlckRhdGF7V29ya09yZGVyU3RhdGVTaWduYWx9ID0gJFN0YXRlU2lnbmFsLT57ICRXb3JrT3JkZXJEYXRhe1dvcmtPcmRlclN0YXRlfSB9OwogICAgfQoKICAgICMgYWRkIHRoZSBuYW1lIG9mIHRoZSB3b3Jrb3JkZXIgdHlwZQogICAgaWYgKCAkV29ya09yZGVyRGF0YXtXb3JrT3JkZXJUeXBlSUR9ICkgewogICAgICAgICRXb3JrT3JkZXJEYXRhe1dvcmtPcmRlclR5cGV9ID0gJFNlbGYtPldvcmtPcmRlclR5cGVMb29rdXAoCiAgICAgICAgICAgIFdvcmtPcmRlclR5cGVJRCA9PiAkV29ya09yZGVyRGF0YXtXb3JrT3JkZXJUeXBlSUR9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIFwlV29ya09yZGVyRGF0YTsKfQoKPWhlYWQyIFdvcmtPcmRlckxpc3QoKQoKUmV0dXJuIGEgbGlzdCBvZiBhbGwgQzx3b3Jrb3JkZXI+IGlkcyBvZiB0aGUgZ2l2ZW4gY2hhbmdlIGFzIGFycmF5IHJlZmVyZW5jZS4KVGhlIEM8d29ya29yZGVyPiBpZHMgYXJlIG9yZGVyZWQgYnkgQzx3b3Jrb3JkZXI+IG51bWJlci4KCiAgICBteSAkV29ya09yZGVySURzUmVmID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyTGlzdCgKICAgICAgICBDaGFuZ2VJRCA9PiA1LAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtPcmRlckxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBdHRyaWJ1dGUgKHF3KENoYW5nZUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEF0dHJpYnV0ZX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBdHRyaWJ1dGUhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSBAV29ya09yZGVySURzOwoKICAgICMgY2hlY2sgY2FjaGUKICAgIG15ICRDYWNoZUtleSA9ICdXb3JrT3JkZXJMaXN0OjpDaGFuZ2VJRDo6JyAuICRQYXJhbXtDaGFuZ2VJRH07CiAgICBteSAkQ2FjaGUgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5LAogICAgKTsKCiAgICBpZiAoJENhY2hlKSB7CgogICAgICAgICMgZ2V0IGRhdGEgZnJvbSBjYWNoZQogICAgICAgIEBXb3JrT3JkZXJJRHMgPSBAeyRDYWNoZX07CiAgICB9CgogICAgIyBnZXQgZGF0YSBmcm9tIGRhdGFiYXNlCiAgICBlbHNlIHsKCiAgICAgICAgIyBnZXQgd29ya29yZGVyIGlkcwogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PgogICAgICAgICAgICAgICAgJ1NFTEVDVCBpZCBGUk9NIGNoYW5nZV93b3Jrb3JkZXIgJwogICAgICAgICAgICAgICAgLiAnV0hFUkUgY2hhbmdlX2lkID0gPyAnCiAgICAgICAgICAgICAgICAuICdPUkRFUiBCWSB3b3Jrb3JkZXJfbnVtYmVyLCBpZCcsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0NoYW5nZUlEfSBdLAogICAgICAgICk7CgogICAgICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgICAgIHdoaWxlICggbXkgKCRJRCkgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICBwdXNoIEBXb3JrT3JkZXJJRHMsICRJRDsKICAgICAgICB9CgogICAgICAgICMgc2V0IGNhY2hlCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0lUU01DaGFuZ2VNYW5hZ2VtZW50JywKICAgICAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgICAgICBWYWx1ZSA9PiBcQFdvcmtPcmRlcklEcywKICAgICAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gXEBXb3JrT3JkZXJJRHM7Cn0KCj1oZWFkMiBXb3JrT3JkZXJTZWFyY2goKQoKUmV0dXJucyBlaXRoZXIgYSBsaXN0LCBhcyBhbiBhcnJheXJlZiwgb3IgYSBjb3VudCBvZiBmb3VuZCBDPHdvcmtvcmRlcj4gaWRzLgpUaGUgY291bnQgb2YgcmVzdWx0cyBpcyByZXR1cm5lZCB3aGVuIHRoZSBwYXJhbWV0ZXIgQzxSZXN1bHQgPT4gJ0NPVU5UJz4gaXMgcGFzc2VkLgoKVGhlIHNlYXJjaCBjcml0ZXJpYSBhcmUgbG9naWNhbGx5IEFORCBjb25uZWN0ZWQuCldoZW4gYSBsaXN0IGlzIHBhc3NlZCBhcyBDPGNyaXRlcml1bT4sIHRoZSBpbmRpdmlkdWFsIG1lbWJlcnMgYXJlIE9SIGNvbm5lY3RlZC4KV2hlbiBhbiB1bmRlZiBvciBhIHJlZmVyZW5jZSB0byBhbiBlbXB0eSBhcnJheSBpcyBwYXNzZWQsIHRoZW4gdGhlIHNlYXJjaCBDPGNyaXRlcml1bT4KaXMgaWdub3JlZC4KCiAgICBteSAkV29ya09yZGVySURzUmVmID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyU2VhcmNoKAogICAgICAgIENoYW5nZUlEcyAgICAgICAgID0+IFsgMTIzLCAxMjIgXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFdvcmtPcmRlck51bWJlciAgID0+IDEyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICBXb3JrT3JkZXJUaXRsZSAgICA9PiAnUmVwbGFjZW1lbnQgb2YgbWFpbCBzZXJ2ZXInLCAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBJbnN0cnVjdGlvbiAgICAgICA9PiAnSW5zdGFsbCB0aGUgdGhlIG5ldyBzZXJ2ZXInLCAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBSZXBvcnQgICAgICAgICAgICA9PiAnSW5zdGFsbGVkIG5ldyBzZXJ2ZXIgd2l0aG91dCBwcm9ibGVtcycsICAjIChvcHRpb25hbCkKCiAgICAgICAgIyBEeW5hbWljRmllbGRzIChmb3Igd29ya29yZGVycykKICAgICAgICAjICAgQXQgbGVhc3Qgb25lIG9wZXJhdG9yIG11c3QgYmUgc3BlY2lmaWVkLiBPcGVyYXRvcnMgd2lsbCBiZSBjb25uZWN0ZWQgd2l0aCBBTkQsCiAgICAgICAgIyAgICAgICB2YWx1ZXMgaW4gYW4gb3BlcmF0b3Igd2l0aCBPUi4KICAgICAgICAjICAgWW91IGNhbiBhbHNvIHBhc3MgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCB0byBhbiBvcGVyYXRvcjogWyd2YWx1ZTEnLCAndmFsdWUyJ10KICAgICAgICBEeW5hbWljRmllbGRfRmllbGROYW1lWCA9PiB7CiAgICAgICAgICAgIEVxdWFscyAgICAgICAgICAgID0+IDEyMywKICAgICAgICAgICAgTGlrZSAgICAgICAgICAgICAgPT4gJ3ZhbHVlKicsICAgICAgICAgICAgICAgICMgImVxdWFscyIgb3BlcmF0b3Igd2l0aCB3aWxkY2FyZCBzdXBwb3J0CiAgICAgICAgICAgIEdyZWF0ZXJUaGFuICAgICAgID0+ICcyMDAxLTAxLTAxIDAxOjAxOjAxJywKICAgICAgICAgICAgR3JlYXRlclRoYW5FcXVhbHMgPT4gJzIwMDEtMDEtMDEgMDE6MDE6MDEnLAogICAgICAgICAgICBTbWFsbGVyVGhhbiAgICAgICA9PiAnMjAwMi0wMi0wMiAwMjowMjowMicsCiAgICAgICAgICAgIFNtYWxsZXJUaGFuRXF1YWxzID0+ICcyMDAyLTAyLTAyIDAyOjAyOjAyJywKICAgICAgICB9CgogICAgICAgIFdvcmtPcmRlclN0YXRlSURzID0+IFsgMTEsIDEyIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFdvcmtPcmRlclN0YXRlcyAgID0+IFsgJ2Nsb3NlZCcsICdjYW5jZWxlZCcgXSwgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICBXb3JrT3JkZXJUeXBlSURzICA9PiBbIDIxLCAyMiBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBXb3JrT3JkZXJUeXBlcyAgICA9PiBbICdhcHByb3ZhbCcsICd3b3Jrb3JkZXInIF0sICAgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgV29ya09yZGVyQWdlbnRJRHMgPT4gWyAxLCAyLCAzIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgQ3JlYXRlQnkgICAgICAgICAgPT4gWyA1LCAyLCAzIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgQ2hhbmdlQnkgICAgICAgICAgPT4gWyAzLCAyLCAxIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgICMgc2VhcmNoIGluIHRleHQgZmllbGRzIG9mIGNoYW5nZSBvYmplY3QKICAgICAgICBDaGFuZ2VOdW1iZXIgICAgICAgID0+ICdOdW1iZXIgb2YgY2hhbmdlJywgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgID0+ICdUaXRsZSBvZiBjaGFuZ2UnLCAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDaGFuZ2VEZXNjcmlwdGlvbiAgID0+ICdEZXNjcmlwdGlvbiBvZiBjaGFuZ2UnLCAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDaGFuZ2VKdXN0aWZpY2F0aW9uID0+ICdKdXN0aWZpY2F0aW9uIG9mIGNoYW5nZScsICAgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgIyB3b3Jrb3JkZXJzIHdpdGggcGxhbm5lZCBzdGFydCB0aW1lIGFmdGVyIC4uLgogICAgICAgIFBsYW5uZWRTdGFydFRpbWVOZXdlckRhdGUgPT4gJzIwMDYtMDEtMDkgMDA6MDA6MDEnLCAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgICMgd29ya29yZGVycyB3aXRoIHBsYW5uZWQgc3RhcnQgdGltZSBiZWZvcmUgdGhlbiAuLi4uCiAgICAgICAgUGxhbm5lZFN0YXJ0VGltZU9sZGVyRGF0ZSA9PiAnMjAwNi0wMS0xOSAyMzo1OTo1OScsICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgICMgd29ya29yZGVycyB3aXRoIHBsYW5uZWQgZW5kIHRpbWUgYWZ0ZXIgLi4uCiAgICAgICAgUGxhbm5lZEVuZFRpbWVOZXdlckRhdGUgICA9PiAnMjAwNi0wMS0wOSAwMDowMDowMScsICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyB3b3Jrb3JkZXJzIHdpdGggcGxhbm5lZCBlbmQgdGltZSBiZWZvcmUgdGhlbiAuLi4uCiAgICAgICAgUGxhbm5lZEVuZFRpbWVPbGRlckRhdGUgICA9PiAnMjAwNi0wMS0xOSAyMzo1OTo1OScsICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgICMgd29ya29yZGVycyB3aXRoIGFjdHVhbCBzdGFydCB0aW1lIGFmdGVyIC4uLgogICAgICAgIEFjdHVhbFN0YXJ0VGltZU5ld2VyRGF0ZSAgPT4gJzIwMDYtMDEtMDkgMDA6MDA6MDEnLCAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgICMgd29ya29yZGVycyB3aXRoIGFjdHVhbCBzdGFydCB0aW1lIGJlZm9yZSB0aGVuIC4uLi4KICAgICAgICBBY3R1YWxTdGFydFRpbWVPbGRlckRhdGUgID0+ICcyMDA2LTAxLTE5IDIzOjU5OjU5JywgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgIyB3b3Jrb3JkZXJzIHdpdGggYWN0dWFsIGVuZCB0aW1lIGFmdGVyIC4uLgogICAgICAgIEFjdHVhbEVuZFRpbWVOZXdlckRhdGUgICAgPT4gJzIwMDYtMDEtMDkgMDA6MDA6MDEnLCAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgICMgd29ya29yZGVycyB3aXRoIGFjdHVhbCBlbmQgdGltZSBiZWZvcmUgdGhlbiAuLi4uCiAgICAgICAgQWN0dWFsRW5kVGltZU9sZGVyRGF0ZSAgICA9PiAnMjAwNi0wMS0xOSAyMzo1OTo1OScsICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgICMgd29ya29yZGVycyB3aXRoIGNyZWF0ZWQgdGltZSBhZnRlciAuLi4KICAgICAgICBDcmVhdGVUaW1lTmV3ZXJEYXRlICAgICAgID0+ICcyMDA2LTAxLTA5IDAwOjAwOjAxJywgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICAjIHdvcmtvcmRlcnMgd2l0aCBjcmVhdGVkIHRpbWUgYmVmb3JlIHRoZW4gLi4uLgogICAgICAgIENyZWF0ZVRpbWVPbGRlckRhdGUgICAgICAgPT4gJzIwMDYtMDEtMTkgMjM6NTk6NTknLCAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICAjIHdvcmtvcmRlcnMgd2l0aCBjaGFuZ2VkIHRpbWUgYWZ0ZXIgLi4uCiAgICAgICAgQ2hhbmdlVGltZU5ld2VyRGF0ZSAgICAgICA9PiAnMjAwNi0wMS0wOSAwMDowMDowMScsICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyB3b3Jrb3JkZXJzIHdpdGggY2hhbmdlZCB0aW1lIGJlZm9yZSB0aGVuIC4uLi4KICAgICAgICBDaGFuZ2VUaW1lT2xkZXJEYXRlICAgICAgID0+ICcyMDA2LTAxLTE5IDIzOjU5OjU5JywgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgT3JkZXJCeSA9PiBbICdDaGFuZ2VJRCcsICdXb3JrT3JkZXJOdW1iZXInIF0sICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyBpZ25vcmVkIHdoZW4gdGhlIHJlc3VsdCB0eXBlIGlzICdDT1VOVCcKICAgICAgICAjIGRlZmF1bHQ6IFsgJ1dvcmtPcmRlcklEJyBdLAogICAgICAgICMgKFdvcmtPcmRlcklELCBDaGFuZ2VJRCwgV29ya09yZGVyTnVtYmVyLCBXb3JrT3JkZXJUaXRsZQogICAgICAgICMgV29ya09yZGVyU3RhdGVJRCwgV29ya09yZGVyVHlwZUlELCBXb3JrT3JkZXJBZ2VudElELAogICAgICAgICMgUGxhbm5lZFN0YXJ0VGltZSwgUGxhbm5lZEVuZFRpbWUsCiAgICAgICAgIyBBY3R1YWxTdGFydFRpbWUsIEFjdHVhbEVuZFRpbWUsCiAgICAgICAgIyBDcmVhdGVUaW1lLCBDcmVhdGVCeSwgQ2hhbmdlVGltZSwgQ2hhbmdlQnkpCgogICAgICAgICMgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgT3JkZXJCeToKICAgICAgICAjIFRoZSBPcmRlckJ5RGlyZWN0aW9uIGNhbiBiZSBzcGVjaWZpZWQgZm9yIGVhY2ggT3JkZXJCeSBhdHRyaWJ1dGUuCiAgICAgICAgIyBUaGUgcGFpcmluZyBpcyBtYWRlIGJ5IHRoZSBhcnJheSBpbmRpY2VzLgoKICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFsgJ0Rvd24nLCAnVXAnIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICAjIGlnbm9yZWQgd2hlbiB0aGUgcmVzdWx0IHR5cGUgaXMgJ0NPVU5UJwogICAgICAgICMgZGVmYXVsdDogWyAnRG93bicgXQogICAgICAgICMgKERvd24gfCBVcCkKCiAgICAgICAgVXNpbmdXaWxkY2FyZHMgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyAoMCB8IDEpIGRlZmF1bHQgMQoKICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJyB8fCAnQ09VTlQnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICAjIGRlZmF1bHQ6IEFSUkFZLCByZXR1cm5zIGFuIGFycmF5IG9mIHdvcmtvcmRlciBpZHMKICAgICAgICAjIENPVU5UIHJldHVybnMgYSBzY2FsYXIgd2l0aCB0aGUgbnVtYmVyIG9mIGZvdW5kIHdvcmtvcmRlcnMKCiAgICAgICAgTGltaXQgPT4gMTAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyBpZ25vcmVkIHdoZW4gdGhlIHJlc3VsdCB0eXBlIGlzICdDT1VOVCcKCiAgICAgICAgTWlycm9yREIgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyAoMCB8IDEpIGRlZmF1bHQgMAogICAgICAgICMgaWYgc2V0IHRvIDEgYW5kIElUU01DaGFuZ2U6OkNoYW5nZVNlYXJjaDo6TWlycm9yREIKICAgICAgICAjIGlzIGFjdGl2YXRlZCBhbmQgYSBtaXJyb3IgZGIgaXMgY29uZmlndXJlZCBpbgogICAgICAgICMgQ29yZTo6TWlycm9yREI6OkRTTiB0aGUgd29ya29yZGVyIHNlYXJjaCB3aWxsIHRoZW4gdXNlCiAgICAgICAgIyB0aGUgbWlycm9yIGRiCgogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBXb3JrT3JkZXJTZWFyY2ggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFVzZXJJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgdmVyaWZ5IHRoYXQgYWxsIHBhc3NlZCBhcnJheSBwYXJhbWV0ZXJzIGNvbnRhaW4gYW4gYXJyYXlyZWYKICAgIEFSR1VNRU5UOgogICAgZm9yIG15ICRBcmd1bWVudCAoCiAgICAgICAgcXcoCiAgICAgICAgT3JkZXJCeQogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24KICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEcwogICAgICAgIFdvcmtPcmRlclN0YXRlcwogICAgICAgIFdvcmtPcmRlclR5cGVzCiAgICAgICAgV29ya09yZGVyVHlwZUlEcwogICAgICAgIENoYW5nZUlEcwogICAgICAgIFdvcmtPcmRlckFnZW50SURzCiAgICAgICAgQ3JlYXRlQnkKICAgICAgICBDaGFuZ2VCeQogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gfHw9IFtdOwoKICAgICAgICAgICAgbmV4dCBBUkdVTUVOVDsKICAgICAgICB9CgogICAgICAgIGlmICggcmVmICRQYXJhbXskQXJndW1lbnR9IG5lICdBUlJBWScgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICIkQXJndW1lbnQgbXVzdCBiZSBhbiBhcnJheSByZWZlcmVuY2UhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRlZmluZSBhIGxvY2FsIGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBpZiB3ZSBuZWVkIHRvIGRvIGEgd29ya29yZGVyIHNlYXJjaCBvbiBhbiBleHRlcm5hbCBtaXJyb3IgZGF0YWJhc2UKICAgIGlmICgKICAgICAgICAkUGFyYW17TWlycm9yREJ9CiAgICAgICAgJiYgJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNQ2hhbmdlOjpDaGFuZ2VTZWFyY2g6Ok1pcnJvckRCJykKICAgICAgICAmJiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0NvcmU6Ok1pcnJvckRCOjpEU04nKQogICAgICAgICYmICRDb25maWdPYmplY3QtPkdldCgnQ29yZTo6TWlycm9yREI6OlVzZXInKQogICAgICAgICYmICRDb25maWdPYmplY3QtPkdldCgnQ29yZTo6TWlycm9yREI6OlBhc3N3b3JkJykKICAgICAgICApCiAgICB7CgogICAgICAgICMgY3JlYXRlIGFuIGV4dHJhIGRhdGFiYXNlIG9iamVjdCBmb3IgdGhlIG1pcnJvciBkYgogICAgICAgIG15ICRFeHRyYURhdGFiYXNlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkRCLT5uZXcoCiAgICAgICAgICAgIERhdGFiYXNlRFNOICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0NvcmU6Ok1pcnJvckRCOjpEU04nKSwKICAgICAgICAgICAgRGF0YWJhc2VVc2VyID0+ICRDb25maWdPYmplY3QtPkdldCgnQ29yZTo6TWlycm9yREI6OlVzZXInKSwKICAgICAgICAgICAgRGF0YWJhc2VQdyAgID0+ICRDb25maWdPYmplY3QtPkdldCgnQ29yZTo6TWlycm9yREI6OlBhc3N3b3JkJyksCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgIGlmICggISRFeHRyYURhdGFiYXNlT2JqZWN0ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnQ291bGQgbm90IGNyZWF0ZSBkYXRhYmFzZSBvYmplY3QgZm9yIE1pcnJvckRCIScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgJERCT2JqZWN0ID0gJEV4dHJhRGF0YWJhc2VPYmplY3Q7CiAgICB9CgogICAgbXkgQFNRTFdoZXJlOyAgICAgICAgICAgIyBhc3NlbWJsZSB0aGUgY29uZGl0aW9ucyB1c2VkIGluIHRoZSBXSEVSRSBjbGF1c2UKICAgIG15IEBJbm5lckpvaW5UYWJsZXM7ICAgICMga2VlcCB0cmFjayBvZiB0aGUgdGFibGVzIHRoYXQgbmVlZCB0byBiZSBpbm5lciBqb2luZWQKCiAgICAjIGNoZWNrIGFsbCBjb25maWd1cmVkIHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcywgYnVpbGQgbG9va3VwIGhhc2ggYnkgbmFtZQogICAgbXkgJVdvcmtPcmRlckR5bmFtaWNGaWVsZE5hbWUyQ29uZmlnOwogICAgbXkgJFdvcmtPcmRlckR5bmFtaWNGaWVsZHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgT2JqZWN0VHlwZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICApOwogICAgZm9yIG15ICREeW5hbWljRmllbGQgKCBAeyRXb3JrT3JkZXJEeW5hbWljRmllbGRzfSApIHsKICAgICAgICAkV29ya09yZGVyRHluYW1pY0ZpZWxkTmFtZTJDb25maWd7ICREeW5hbWljRmllbGQtPntOYW1lfSB9ID0gJER5bmFtaWNGaWVsZDsKICAgIH0KCiAgICAjIGRlZmluZSBvcmRlciB0YWJsZQogICAgbXkgJU9yZGVyQnlUYWJsZSA9ICgKCiAgICAgICAgIyB3b3Jrb3JkZXIgYXR0cmlidXRlcwogICAgICAgIENoYW5nZUlEICAgICAgICAgPT4gJ3dvLmNoYW5nZV9pZCcsCiAgICAgICAgV29ya09yZGVySUQgICAgICA9PiAnd28uaWQnLAogICAgICAgIFdvcmtPcmRlck51bWJlciAgPT4gJ3dvLndvcmtvcmRlcl9udW1iZXInLAogICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4gJ3dvLnRpdGxlJywKICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICd3by53b3Jrb3JkZXJfc3RhdGVfaWQnLAogICAgICAgIFdvcmtPcmRlclR5cGVJRCAgPT4gJ3dvLndvcmtvcmRlcl90eXBlX2lkJywKICAgICAgICBXb3JrT3JkZXJBZ2VudElEID0+ICd3by53b3Jrb3JkZXJfYWdlbnRfaWQnLAogICAgICAgIFBsYW5uZWRTdGFydFRpbWUgPT4gJ3dvLnBsYW5uZWRfc3RhcnRfdGltZScsCiAgICAgICAgUGxhbm5lZEVuZFRpbWUgICA9PiAnd28ucGxhbm5lZF9lbmRfdGltZScsCiAgICAgICAgQWN0dWFsU3RhcnRUaW1lICA9PiAnd28uYWN0dWFsX3N0YXJ0X3RpbWUnLAogICAgICAgIEFjdHVhbEVuZFRpbWUgICAgPT4gJ3dvLmFjdHVhbF9lbmRfdGltZScsCiAgICAgICAgQ3JlYXRlVGltZSAgICAgICA9PiAnd28uY3JlYXRlX3RpbWUnLAogICAgICAgIENyZWF0ZUJ5ICAgICAgICAgPT4gJ3dvLmNyZWF0ZV9ieScsCiAgICAgICAgQ2hhbmdlVGltZSAgICAgICA9PiAnd28uY2hhbmdlX3RpbWUnLAogICAgICAgIENoYW5nZUJ5ICAgICAgICAgPT4gJ3dvLmNoYW5nZV9ieScsCgogICAgICAgICMgY2hhbmdlIGF0dHJpYnV0ZXMKICAgICAgICBDaGFuZ2VOdW1iZXIgICAgPT4gJ2MuY2hhbmdlX251bWJlcicsCiAgICAgICAgQ2hhbmdlVGl0bGUgICAgID0+ICdjLnRpdGxlJywKICAgICAgICBDaGFuZ2VTdGF0ZUlEICAgPT4gJ2MuY2hhbmdlX3N0YXRlX2lkJywKICAgICAgICBDaGFuZ2VNYW5hZ2VySUQgPT4gJ2MuY2hhbmdlX21hbmFnZXJfaWQnLAogICAgICAgIENoYW5nZUJ1aWxkZXJJRCA9PiAnYy5jaGFuZ2VfYnVpbGRlcl9pZCcsCiAgICAgICAgQ2F0ZWdvcnlJRCAgICAgID0+ICdjLmNhdGVnb3J5X2lkJywKICAgICAgICBJbXBhY3RJRCAgICAgICAgPT4gJ2MuaW1wYWN0X2lkJywKICAgICAgICBQcmlvcml0eUlEICAgICAgPT4gJ2MucHJpb3JpdHlfaWQnLAogICAgICAgIFJlcXVlc3RlZFRpbWUgICA9PiAnYy5yZXF1ZXN0ZWRfdGltZScsCiAgICApOwoKICAgICMgY2hlY2sgaWYgT3JkZXJCeSBjb250YWlucyBvbmx5IHVuaXF1ZSB2YWxpZCB2YWx1ZXMKICAgIG15ICVPcmRlckJ5U2VlbjsKICAgIGZvciBteSAkT3JkZXJCeSAoIEB7ICRQYXJhbXtPcmRlckJ5fSB9ICkgewoKICAgICAgICBpZiAoICEkT3JkZXJCeSB8fCAhJE9yZGVyQnlUYWJsZXskT3JkZXJCeX0gfHwgJE9yZGVyQnlTZWVueyRPcmRlckJ5fSApIHsKCiAgICAgICAgICAgICMgZm91bmQgYW4gZXJyb3IKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk9yZGVyQnkgY29udGFpbnMgaW52YWxpZCB2YWx1ZSAnJE9yZGVyQnknICIKICAgICAgICAgICAgICAgICAgICAuICdvciB0aGUgdmFsdWUgaXMgdXNlZCBtb3JlIHRoYW4gb25jZSEnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHJlbWVtYmVyIHRoZSB2YWx1ZSB0byBjaGVjayBpZiBpdCBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlCiAgICAgICAgJE9yZGVyQnlTZWVueyRPcmRlckJ5fSA9IDE7CgogICAgICAgICMgam9pbiB0aGUgY2hhbmdlIHRhYmxlLCB3aGVuIGl0IGlzIG5lZWRlZCBmb3IgdGhlIE9yZGVyQnktY2xhdXNlCiAgICAgICAgaWYgKCAkT3JkZXJCeVRhYmxleyRPcmRlckJ5fSA9fiBteyBcQSBjWy5dIH14bXMgKSB7CiAgICAgICAgICAgIHB1c2ggQElubmVySm9pblRhYmxlcywgJ2MnOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIE9yZGVyQnlEaXJlY3Rpb24gYXJyYXkgY29udGFpbnMgb25seSAnVXAnIG9yICdEb3duJwogICAgRElSRUNUSU9OOgogICAgZm9yIG15ICREaXJlY3Rpb24gKCBAeyAkUGFyYW17T3JkZXJCeURpcmVjdGlvbn0gfSApIHsKCiAgICAgICAgIyBvbmx5ICdVcCcgb3IgJ0Rvd24nIGFsbG93ZWQKICAgICAgICBuZXh0IERJUkVDVElPTiBpZiAkRGlyZWN0aW9uIGVxICdVcCc7CiAgICAgICAgbmV4dCBESVJFQ1RJT04gaWYgJERpcmVjdGlvbiBlcSAnRG93bic7CgogICAgICAgICMgZm91bmQgYW4gZXJyb3IKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk9yZGVyQnlEaXJlY3Rpb24gY2FuIG9ubHkgY29udGFpbiAnVXAnIG9yICdEb3duJyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2V0IGRlZmF1bHQgdmFsdWVzCiAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtVc2luZ1dpbGRjYXJkc30gKSB7CiAgICAgICAgJFBhcmFte1VzaW5nV2lsZGNhcmRzfSA9IDE7CiAgICB9CgogICAgIyBzZXQgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIGZvciB0aGUgcmV0dXJuIHR5cGUKICAgIG15ICRSZXN1bHQgPSAkUGFyYW17UmVzdWx0fSB8fCAnQVJSQVknOwoKICAgICMgY2hlY2sgd2hldGhlciBhbGwgb2YgdGhlIGdpdmVuIFdvcmtPcmRlclN0YXRlSURzIGFyZSB2YWxpZAogICAgcmV0dXJuIGlmICEkU2VsZi0+V29ya09yZGVyU3RhdGVJRHNDaGVjayggV29ya09yZGVyU3RhdGVJRHMgPT4gJFBhcmFte1dvcmtPcmRlclN0YXRlSURzfSApOwoKICAgICMgbG9vayB1cCBhbmQgdGh1cyBjaGVjayB0aGUgU3RhdGVzCiAgICBmb3IgbXkgJFdvcmtPcmRlclN0YXRlICggQHsgJFBhcmFte1dvcmtPcmRlclN0YXRlc30gfSApIHsKCiAgICAgICAgIyBsb29rIHVwIHRoZSBJRCBmb3IgdGhlIG5hbWUKICAgICAgICBteSAkV29ya09yZGVyU3RhdGVJRCA9ICRTZWxmLT5Xb3JrT3JkZXJTdGF0ZUxvb2t1cCgKICAgICAgICAgICAgV29ya09yZGVyU3RhdGUgPT4gJFdvcmtPcmRlclN0YXRlLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgd2hldGhlciB0aGUgSUQgd2FzIGZvdW5kLCB3aGV0aGVyIHRoZSBuYW1lIGV4aXN0cwogICAgICAgIGlmICggISRXb3JrT3JkZXJTdGF0ZUlEICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIHdvcmtvcmRlciBzdGF0ZSAkV29ya09yZGVyU3RhdGUgaXMgbm90IGtub3duISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBwdXNoIEB7ICRQYXJhbXtXb3JrT3JkZXJTdGF0ZUlEc30gfSwgJFdvcmtPcmRlclN0YXRlSUQ7CiAgICB9CgogICAgIyBjaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBXb3JrT3JkZXJUeXBlSURzIGFyZSBhbGwgdmFsaWQKICAgIHJldHVybiBpZiAhJFNlbGYtPl9DaGVja1dvcmtPcmRlclR5cGVJRHMoIFdvcmtPcmRlclR5cGVJRHMgPT4gJFBhcmFte1dvcmtPcmRlclR5cGVJRHN9ICk7CgogICAgIyBsb29rIHVwIGFuZCB0aHVzIGNoZWNrIHRoZSBXb3JrT3JkZXJUeXBlcwogICAgZm9yIG15ICRUeXBlICggQHsgJFBhcmFte1dvcmtPcmRlclR5cGVzfSB9ICkgewoKICAgICAgICAjIGdldCB0aGUgSUQgZm9yIHRoZSBuYW1lCiAgICAgICAgbXkgJFR5cGVJRCA9ICRTZWxmLT5Xb3JrT3JkZXJUeXBlTG9va3VwKAogICAgICAgICAgICBXb3JrT3JkZXJUeXBlID0+ICRUeXBlLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgd2hldGhlciB0aGUgSUQgd2FzIGZvdW5kLCB3aGV0aGVyIHRoZSBuYW1lIGV4aXN0cwogICAgICAgIGlmICggISRUeXBlSUQgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgd29ya29yZGVyIHR5cGUgJyRUeXBlJyBpcyBub3Qga25vd24hIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgcHVzaCBAeyAkUGFyYW17V29ya09yZGVyVHlwZUlEc30gfSwgJFR5cGVJRDsKICAgIH0KCiAgICAjIGFkZCBzdHJpbmcgcGFyYW1zIHRvIHRoZSBXSEVSRSBjbGF1c2UKICAgIG15ICVTdHJpbmdQYXJhbXMgPSAoCgogICAgICAgICMgaW4gd29ya29yZGVyIHRhYmxlCiAgICAgICAgV29ya09yZGVyTnVtYmVyID0+ICd3by53b3Jrb3JkZXJfbnVtYmVyJywKICAgICAgICBXb3JrT3JkZXJUaXRsZSAgPT4gJ3dvLnRpdGxlJywKICAgICAgICBJbnN0cnVjdGlvbiAgICAgPT4gJ3dvLmluc3RydWN0aW9uX3BsYWluJywKICAgICAgICBSZXBvcnQgICAgICAgICAgPT4gJ3dvLnJlcG9ydF9wbGFpbicsCgogICAgICAgICMgaW4gY2hhbmdlIHRhYmxlCiAgICAgICAgQ2hhbmdlTnVtYmVyICAgICAgICA9PiAnYy5jaGFuZ2VfbnVtYmVyJywKICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgID0+ICdjLnRpdGxlJywKICAgICAgICBDaGFuZ2VEZXNjcmlwdGlvbiAgID0+ICdjLmRlc2NyaXB0aW9uX3BsYWluJywKICAgICAgICBDaGFuZ2VKdXN0aWZpY2F0aW9uID0+ICdjLmp1c3RpZmljYXRpb25fcGxhaW4nLAogICAgKTsKCiAgICAjIGFkZCBzdHJpbmcgcGFyYW1zIHRvIHNxbC13aGVyZS1hcnJheQogICAgU1RSSU5HUEFSQU06CiAgICBmb3IgbXkgJFN0cmluZ1BhcmFtICggc29ydCBrZXlzICVTdHJpbmdQYXJhbXMgKSB7CgogICAgICAgICMgY2hlY2sgc3RyaW5nIHBhcmFtcyBmb3IgdXNlZnVsIHZhbHVlcywgdGhlIHN0cmluZyAnMCcgaXMgYWxsb3dlZAogICAgICAgIG5leHQgU1RSSU5HUEFSQU0gaWYgIWV4aXN0cyAkUGFyYW17JFN0cmluZ1BhcmFtfTsKICAgICAgICBuZXh0IFNUUklOR1BBUkFNIGlmICFkZWZpbmVkICRQYXJhbXskU3RyaW5nUGFyYW19OwogICAgICAgIG5leHQgU1RSSU5HUEFSQU0gaWYgJFBhcmFteyRTdHJpbmdQYXJhbX0gZXEgJyc7CgogICAgICAgICMgcXVvdGUKICAgICAgICAkUGFyYW17JFN0cmluZ1BhcmFtfSA9ICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXskU3RyaW5nUGFyYW19ICk7CgogICAgICAgICMgY2hlY2sgaWYgYSBDTE9CIGZpZWxkIGlzIHVzZWQgaW4gb3JhY2xlCiAgICAgICAgIyBGaXgvV29ya2Fyb3VuZCBmb3IgT1JBLTAwOTMyOiBpbmNvbnNpc3RlbnQgZGF0YXR5cGVzOiBleHBlY3RlZCAtIGdvdCBDTE9CCiAgICAgICAgbXkgJEZvcmNlTGlrZVNlYXJjaEZvclNwZWNpYWxGaWVsZHM7CiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e0RCVHlwZX0gZXEgJ29yYWNsZScKICAgICAgICAgICAgJiYgKAogICAgICAgICAgICAgICAgJFN0cmluZ1BhcmFtIGVxICdJbnN0cnVjdGlvbicKICAgICAgICAgICAgICAgIHx8ICRTdHJpbmdQYXJhbSBlcSAnUmVwb3J0JwogICAgICAgICAgICAgICAgfHwgJFN0cmluZ1BhcmFtIGVxICdDaGFuZ2VEZXNjcmlwdGlvbicKICAgICAgICAgICAgICAgIHx8ICRTdHJpbmdQYXJhbSBlcSAnQ2hhbmdlSnVzdGlmaWNhdGlvbicKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRm9yY2VMaWtlU2VhcmNoRm9yU3BlY2lhbEZpZWxkcyA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIHdpbGRjYXJkcyBhcmUgdXNlZCAob3IgTElLRSBzZWFyY2ggaXMgZm9yY2VkIGZvciBzb21lIHNwZWNpYWwgZmllbGRzIG9uIG9yYWNsZSkKICAgICAgICBpZiAoICRQYXJhbXtVc2luZ1dpbGRjYXJkc30gfHwgJEZvcmNlTGlrZVNlYXJjaEZvclNwZWNpYWxGaWVsZHMgKSB7CgogICAgICAgICAgICAjIGdldCBsaWtlIGVzY2FwZSBzdHJpbmcgbmVlZGVkIGZvciBzb21lIGRhdGFiYXNlcyAoZS5nLiBvcmFjbGUpCiAgICAgICAgICAgIG15ICRMaWtlRXNjYXBlU3RyaW5nID0gJERCT2JqZWN0LT5HZXREYXRhYmFzZUZ1bmN0aW9uKCdMaWtlRXNjYXBlU3RyaW5nJyk7CgogICAgICAgICAgICAjIFF1b3RlCiAgICAgICAgICAgICRQYXJhbXskU3RyaW5nUGFyYW19ID0gJERCT2JqZWN0LT5RdW90ZSggJFBhcmFteyRTdHJpbmdQYXJhbX0sICdMaWtlJyApOwoKICAgICAgICAgICAgIyByZXBsYWNlICogd2l0aCAlCiAgICAgICAgICAgICRQYXJhbXskU3RyaW5nUGFyYW19ID1+IHN7IFwqKyB9eyV9eG1zZzsKCiAgICAgICAgICAgICMgZG8gbm90IHVzZSBzdHJpbmcgcGFyYW1zIHdoaWNoIGNvbnRhaW4gb25seSAlCiAgICAgICAgICAgIG5leHQgU1RSSU5HUEFSQU0gaWYgJFBhcmFteyRTdHJpbmdQYXJhbX0gPX4gbXsgXEEgJSogXHogfXhtczsKCiAgICAgICAgICAgIHB1c2ggQFNRTFdoZXJlLAogICAgICAgICAgICAgICAgIkxPV0VSKCRTdHJpbmdQYXJhbXN7JFN0cmluZ1BhcmFtfSkgTElLRSBMT1dFUignJFBhcmFteyRTdHJpbmdQYXJhbX0nKSAkTGlrZUVzY2FwZVN0cmluZyI7CiAgICAgICAgfQoKICAgICAgICAjIG5vIHdpbGRjYXJkcyBhcmUgdXNlZAogICAgICAgIGVsc2UgewogICAgICAgICAgICBwdXNoIEBTUUxXaGVyZSwKICAgICAgICAgICAgICAgICJMT1dFUigkU3RyaW5nUGFyYW1zeyRTdHJpbmdQYXJhbX0pID0gTE9XRVIoJyRQYXJhbXskU3RyaW5nUGFyYW19JykiOwogICAgICAgIH0KCiAgICAgICAgIyBqb2luIHRoZSBjaGFuZ2UgdGFibGUsIHdoZW4gaXQgaXMgbmVlZGVkIGluIHRoZSBXSEVSRSBjbGF1c2UKICAgICAgICBpZiAoICRTdHJpbmdQYXJhbXN7JFN0cmluZ1BhcmFtfSA9fiBteyBcQSBjWy5dIH14bXMgKSB7CiAgICAgICAgICAgIHB1c2ggQElubmVySm9pblRhYmxlcywgJ2MnOwogICAgICAgIH0KICAgIH0KCiAgICAjIGJ1aWxkIHNxbCBmb3IgZHluYW1pYyBmaWVsZHMKICAgIG15ICRTUUxEeW5hbWljRmllbGRJbm5lckpvaW5zID0gJyc7ICAgICMgam9pbi1zdGF0ZW1lbnRzCiAgICBteSAkU1FMRHluYW1pY0ZpZWxkV2hlcmUgICAgICA9ICcnOyAgICAjIHdoZXJlLWNsYXVzZQogICAgbXkgJER5bmFtaWNGaWVsZEpvaW5Db3VudGVyICAgPSAxOwoKICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkICggQHskV29ya09yZGVyRHluYW1pY0ZpZWxkc30gKSB7CgogICAgICAgIG15ICRTZWFyY2hQYXJhbSA9ICRQYXJhbXsgIkR5bmFtaWNGaWVsZF8iIC4gJER5bmFtaWNGaWVsZC0+e05hbWV9IH07CgogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICggISRTZWFyY2hQYXJhbSApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICggcmVmICRTZWFyY2hQYXJhbSBuZSAnSEFTSCcgKTsKCiAgICAgICAgbXkgJE5lZWRKb2luOwoKICAgICAgICBmb3IgbXkgJE9wZXJhdG9yICggc29ydCBrZXlzICV7JFNlYXJjaFBhcmFtfSApIHsKCiAgICAgICAgICAgIG15IEBTZWFyY2hQYXJhbXMgPSAoIHJlZiAkU2VhcmNoUGFyYW0tPnskT3BlcmF0b3J9IGVxICdBUlJBWScgKQogICAgICAgICAgICAgICAgPyBAeyAkU2VhcmNoUGFyYW0tPnskT3BlcmF0b3J9IH0KICAgICAgICAgICAgICAgIDogKCAkU2VhcmNoUGFyYW0tPnskT3BlcmF0b3J9ICk7CgogICAgICAgICAgICBteSAkU1FMRHluYW1pY0ZpZWxkV2hlcmVTdWIgPSAnJzsKICAgICAgICAgICAgaWYgKCRTUUxEeW5hbWljRmllbGRXaGVyZSkgewogICAgICAgICAgICAgICAgJFNRTER5bmFtaWNGaWVsZFdoZXJlU3ViID0gJyBBTkQgKCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU1FMRHluYW1pY0ZpZWxkV2hlcmVTdWIgPSAnICgnOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkQ291bnRlciA9IDA7CiAgICAgICAgICAgIFRFWFQ6CiAgICAgICAgICAgIGZvciBteSAkVGV4dCAoQFNlYXJjaFBhcmFtcykgewogICAgICAgICAgICAgICAgbmV4dCBURVhUIGlmICggIWRlZmluZWQgJFRleHQgfHwgJFRleHQgZXEgJycgKTsKCiAgICAgICAgICAgICAgICAkVGV4dCA9fiBzL1wqLyUvZ2k7CgogICAgICAgICAgICAgICAgIyBjaGVjayBzZWFyY2ggYXR0cmlidXRlLCB3ZSBkbyBub3QgbmVlZCB0byBzZWFyY2ggZm9yICoKICAgICAgICAgICAgICAgIG5leHQgVEVYVCBpZiAkVGV4dCA9fiAvXlwlezEsM30kLzsKCiAgICAgICAgICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZQogICAgICAgICAgICAgICAgbXkgJFZhbGlkYXRlU3VjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+VmFsdWVWYWxpZGF0ZSgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZCwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJFRleHQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9IHx8IDEsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgaWYgKCAhJFZhbGlkYXRlU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZWFyY2ggbm90IGV4ZWN1dGVkIGR1ZSB0byBpbnZhbGlkIHZhbHVlICciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRUZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICInIG9uIGZpZWxkICciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICREeW5hbWljRmllbGQtPntOYW1lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiJyEiLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgkQ291bnRlcikgewogICAgICAgICAgICAgICAgICAgICRTUUxEeW5hbWljRmllbGRXaGVyZVN1YiAuPSAnIE9SICc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkU1FMRHluYW1pY0ZpZWxkV2hlcmVTdWIKICAgICAgICAgICAgICAgICAgICAuPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyktPlNlYXJjaFNRTEdldCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZCwKICAgICAgICAgICAgICAgICAgICBUYWJsZUFsaWFzICAgICAgICAgPT4gImRmdiREeW5hbWljRmllbGRKb2luQ291bnRlciIsCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0b3IgICAgICAgICAgID0+ICRPcGVyYXRvciwKICAgICAgICAgICAgICAgICAgICBTZWFyY2hUZXJtICAgICAgICAgPT4gJFRleHQsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkQ291bnRlcisrOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRTUUxEeW5hbWljRmllbGRXaGVyZVN1YiAuPSAnKSAnOwogICAgICAgICAgICBpZiAoJENvdW50ZXIpIHsKICAgICAgICAgICAgICAgICRTUUxEeW5hbWljRmllbGRXaGVyZSAuPSAkU1FMRHluYW1pY0ZpZWxkV2hlcmVTdWI7CiAgICAgICAgICAgICAgICAkTmVlZEpvaW4gPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJE5lZWRKb2luKSB7CgogICAgICAgICAgICBpZiAoICREeW5hbWljRmllbGQtPntPYmplY3RUeXBlfSBlcSAnSVRTTVdvcmtPcmRlcicgKSB7CgogICAgICAgICAgICAgICAgJFNRTER5bmFtaWNGaWVsZElubmVySm9pbnMKICAgICAgICAgICAgICAgICAgICAuPSAiSU5ORVIgSk9JTiBkeW5hbWljX2ZpZWxkX3ZhbHVlIGRmdiREeW5hbWljRmllbGRKb2luQ291bnRlcgogICAgICAgICAgICAgICAgICAgIE9OICh3by5pZCA9IGRmdiREeW5hbWljRmllbGRKb2luQ291bnRlci5vYmplY3RfaWQKICAgICAgICAgICAgICAgICAgICAgICAgQU5EIGRmdiREeW5hbWljRmllbGRKb2luQ291bnRlci5maWVsZF9pZCA9ICIgLgogICAgICAgICAgICAgICAgICAgICREQk9iamVjdC0+UXVvdGUoICREeW5hbWljRmllbGQtPntJRH0sICdJbnRlZ2VyJyApIC4gIikgIjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJER5bmFtaWNGaWVsZEpvaW5Db3VudGVyKys7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGFycmF5IHBhcmFtcwogICAgbXkgJUFycmF5UGFyYW1zID0gKAogICAgICAgIENoYW5nZUlEcyAgICAgICAgID0+ICd3by5jaGFuZ2VfaWQnLAogICAgICAgIFdvcmtPcmRlclN0YXRlSURzID0+ICd3by53b3Jrb3JkZXJfc3RhdGVfaWQnLAogICAgICAgIFdvcmtPcmRlclR5cGVJRHMgID0+ICd3by53b3Jrb3JkZXJfdHlwZV9pZCcsCiAgICAgICAgV29ya09yZGVyQWdlbnRJRHMgPT4gJ3dvLndvcmtvcmRlcl9hZ2VudF9pZCcsCiAgICAgICAgQ3JlYXRlQnkgICAgICAgICAgPT4gJ3dvLmNyZWF0ZV9ieScsCiAgICAgICAgQ2hhbmdlQnkgICAgICAgICAgPT4gJ3dvLmNoYW5nZV9ieScsCiAgICApOwoKICAgICMgYWRkIGFycmF5IHBhcmFtcyB0byBzcWwtd2hlcmUtYXJyYXkKICAgIEFSUkFZUEFSQU06CiAgICBmb3IgbXkgJEFycmF5UGFyYW0gKCBzb3J0IGtleXMgJUFycmF5UGFyYW1zICkgewoKICAgICAgICAjIGlnbm9yZSBlbXB0eSBsaXN0cwogICAgICAgIG5leHQgQVJSQVlQQVJBTSBpZiAhQHsgJFBhcmFteyRBcnJheVBhcmFtfSB9OwoKICAgICAgICAjIHF1b3RlIGFzIGludGVnZXIKICAgICAgICBmb3IgbXkgJE9uZVBhcmFtICggQHsgJFBhcmFteyRBcnJheVBhcmFtfSB9ICkgewogICAgICAgICAgICAkT25lUGFyYW0gPSAkREJPYmplY3QtPlF1b3RlKCAkT25lUGFyYW0sICdJbnRlZ2VyJyApOwogICAgICAgIH0KCiAgICAgICAgIyBjcmVhdGUgc3RyaW5nCiAgICAgICAgbXkgJEluU3RyaW5nID0gam9pbiAnLCAnLCBAeyAkUGFyYW17JEFycmF5UGFyYW19IH07CgogICAgICAgIHB1c2ggQFNRTFdoZXJlLCAiJEFycmF5UGFyYW1zeyRBcnJheVBhcmFtfSBJTiAoJEluU3RyaW5nKSI7CiAgICB9CgogICAgIyBjaGVjayB0aGUgdGltZSBwYXJhbXMgYW5kIGFkZCB0aGVtIHRvIHRoZSBXSEVSRSBjbGF1c2Ugb2YgdGhlIFNFTEVDVC1TdGF0ZW1lbnQKICAgIG15ICVUaW1lUGFyYW1zID0gKAogICAgICAgIENyZWF0ZVRpbWVOZXdlckRhdGUgICAgICAgPT4gJ3dvLmNyZWF0ZV90aW1lID49JywKICAgICAgICBDcmVhdGVUaW1lT2xkZXJEYXRlICAgICAgID0+ICd3by5jcmVhdGVfdGltZSA8PScsCiAgICAgICAgQ2hhbmdlVGltZU5ld2VyRGF0ZSAgICAgICA9PiAnd28uY2hhbmdlX3RpbWUgPj0nLAogICAgICAgIENoYW5nZVRpbWVPbGRlckRhdGUgICAgICAgPT4gJ3dvLmNoYW5nZV90aW1lIDw9JywKICAgICAgICBQbGFubmVkU3RhcnRUaW1lTmV3ZXJEYXRlID0+ICd3by5wbGFubmVkX3N0YXJ0X3RpbWUgPj0nLAogICAgICAgIFBsYW5uZWRTdGFydFRpbWVPbGRlckRhdGUgPT4gJ3dvLnBsYW5uZWRfc3RhcnRfdGltZSA8PScsCiAgICAgICAgUGxhbm5lZEVuZFRpbWVOZXdlckRhdGUgICA9PiAnd28ucGxhbm5lZF9lbmRfdGltZSA+PScsCiAgICAgICAgUGxhbm5lZEVuZFRpbWVPbGRlckRhdGUgICA9PiAnd28ucGxhbm5lZF9lbmRfdGltZSA8PScsCiAgICAgICAgQWN0dWFsU3RhcnRUaW1lTmV3ZXJEYXRlICA9PiAnd28uYWN0dWFsX3N0YXJ0X3RpbWUgPj0nLAogICAgICAgIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZSAgPT4gJ3dvLmFjdHVhbF9zdGFydF90aW1lIDw9JywKICAgICAgICBBY3R1YWxFbmRUaW1lTmV3ZXJEYXRlICAgID0+ICd3by5hY3R1YWxfZW5kX3RpbWUgPj0nLAogICAgICAgIEFjdHVhbEVuZFRpbWVPbGRlckRhdGUgICAgPT4gJ3dvLmFjdHVhbF9lbmRfdGltZSA8PScsCiAgICApOwogICAgVElNRVBBUkFNOgogICAgZm9yIG15ICRUaW1lUGFyYW0gKCBzb3J0IGtleXMgJVRpbWVQYXJhbXMgKSB7CgogICAgICAgIG5leHQgVElNRVBBUkFNIGlmICEkUGFyYW17JFRpbWVQYXJhbX07CgogICAgICAgIGlmICggJFBhcmFteyRUaW1lUGFyYW19ICF+IG17IFxBIFxkXGRcZFxkLVxkXGQtXGRcZCBccyBcZFxkOlxkXGQ6XGRcZCBceiB9eG1zICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIHBhcmFtZXRlciAkVGltZVBhcmFtIGhhcyBhbiBpbnZhbGlkIGRhdGUgZm9ybWF0ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgcXVvdGUKICAgICAgICAkUGFyYW17JFRpbWVQYXJhbX0gPSAkREJPYmplY3QtPlF1b3RlKCAkUGFyYW17JFRpbWVQYXJhbX0gKTsKCiAgICAgICAgcHVzaCBAU1FMV2hlcmUsICIkVGltZVBhcmFtc3skVGltZVBhcmFtfSAnJFBhcmFteyRUaW1lUGFyYW19JyI7CiAgICB9CgogICAgIyBkZWxldGUgdGhlIE9yZGVyQnkgcGFyYW1ldGVyIHdoZW4gdGhlIHJlc3VsdCB0eXBlIGlzICdDT1VOVCcKICAgIGlmICggJFJlc3VsdCBlcSAnQ09VTlQnICkgewogICAgICAgICRQYXJhbXtPcmRlckJ5fSA9IFtdOwogICAgfQoKICAgICMgYXNzZW1ibGUgdGhlIE9SREVSIEJZIGNsYXVzZQogICAgbXkgQFNRTE9yZGVyQnk7CiAgICBteSAkQ291bnQgPSAwOwogICAgZm9yIG15ICRPcmRlckJ5ICggQHsgJFBhcmFte09yZGVyQnl9IH0gKSB7CgogICAgICAgICMgc2V0IHRoZSBkZWZhdWx0IG9yZGVyIGRpcmVjdGlvbgogICAgICAgIG15ICREaXJlY3Rpb24gPSAnREVTQyc7CgogICAgICAgICMgYWRkIHRoZSBnaXZlbiBvcmRlciBkaXJlY3Rpb24KICAgICAgICBpZiAoICRQYXJhbXtPcmRlckJ5RGlyZWN0aW9ufS0+WyRDb3VudF0gKSB7CiAgICAgICAgICAgIGlmICggJFBhcmFte09yZGVyQnlEaXJlY3Rpb259LT5bJENvdW50XSBlcSAnVXAnICkgewogICAgICAgICAgICAgICAgJERpcmVjdGlvbiA9ICdBU0MnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJFBhcmFte09yZGVyQnlEaXJlY3Rpb259LT5bJENvdW50XSBlcSAnRG93bicgKSB7CiAgICAgICAgICAgICAgICAkRGlyZWN0aW9uID0gJ0RFU0MnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGFkZCBTUUwKICAgICAgICBwdXNoIEBTUUxPcmRlckJ5LCAiJE9yZGVyQnlUYWJsZXskT3JkZXJCeX0gJERpcmVjdGlvbiI7CiAgICB9CiAgICBjb250aW51ZSB7CiAgICAgICAgJENvdW50Kys7CiAgICB9CgogICAgIyBpZiB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoYXQgdGhlIG9yZGVyaW5nIGlzIG5vdCBkZXRlcm1pbmVkCiAgICAjIHdlIGFkZCBhbiBkZXNjZW5kaW5nIG9yZGVyaW5nIGJ5IGlkCiAgICBpZiAoICFncmVwIHsgJF8gZXEgJ1dvcmtPcmRlcklEJyB9ICggQHsgJFBhcmFte09yZGVyQnl9IH0gKSApIHsKICAgICAgICBwdXNoIEBTUUxPcmRlckJ5LCAiJE9yZGVyQnlUYWJsZXtXb3JrT3JkZXJJRH0gREVTQyI7CiAgICB9CgogICAgIyBhc3NlbWJsZSB0aGUgU1FMIHF1ZXJ5CiAgICBteSAkU1FMID0gJ1NFTEVDVCB3by5pZCBGUk9NIGNoYW5nZV93b3Jrb3JkZXIgd28gJzsKCiAgICAjIG1vZGlmeSBTUUwgd2hlbiB0aGUgcmVzdWx0IHR5cGUgaXMgJ0NPVU5UJy4KICAgICMgVGhlcmUgaXMgbm8gJ0dST1VQIEJZJyBTUUwtY2xhdXNlLCB0aGVyZWZvcmUgQ09VTlQoYy5pZCkgYWx3YXlzIGdpdmUgdGhlIHdhbnRlZCBjb3VudAogICAgaWYgKCAkUmVzdWx0IGVxICdDT1VOVCcgKSB7CiAgICAgICAgJFNRTCAgICAgICAgPSAnU0VMRUNUIENPVU5UKHdvLmlkKSBGUk9NIGNoYW5nZV93b3Jrb3JkZXIgd28gJzsKICAgICAgICBAU1FMT3JkZXJCeSA9ICgpOwogICAgfQoKICAgICMgYWRkIHRoZSBqb2lucwogICAgbXkgJUxvbmdUYWJsZU5hbWUgPSAoCiAgICAgICAgYyA9PiAnY2hhbmdlX2l0ZW0nLAogICAgKTsKICAgIG15ICVUYWJsZVNlZW47CgogICAgSU5ORVJfSk9JTl9UQUJMRToKICAgIGZvciBteSAkVGFibGUgKEBJbm5lckpvaW5UYWJsZXMpIHsKCiAgICAgICAgIyBkbyBub3Qgam9pbiBhIHRhYmxlIHR3aWNlCiAgICAgICAgbmV4dCBJTk5FUl9KT0lOX1RBQkxFIGlmICRUYWJsZVNlZW57JFRhYmxlfTsKCiAgICAgICAgJFRhYmxlU2VlbnskVGFibGV9ID0gMTsKCiAgICAgICAgaWYgKCAhJExvbmdUYWJsZU5hbWV7JFRhYmxlfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVuY291bnRlcmVkIGludmFsaWQgaW5uZXIgam9pbiB0YWJsZSAnJFRhYmxlJyEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkU1FMIC49ICJJTk5FUiBKT0lOICRMb25nVGFibGVOYW1leyRUYWJsZX0gJFRhYmxlIE9OICRUYWJsZS5pZCA9IHdvLmNoYW5nZV9pZCAiOwogICAgfQoKICAgICMgYWRkIHRoZSBkeW5hbWljIGZpZWxkIGlubmVyIGpvaW4gc3RhdGVtZW50cwogICAgJFNRTCAuPSAkU1FMRHluYW1pY0ZpZWxkSW5uZXJKb2luczsKCiAgICAjIGFkZCB0aGUgV0hFUkUgY2xhdXNlCiAgICBpZiAoQFNRTFdoZXJlKSB7CiAgICAgICAgJFNRTCAuPSAnV0hFUkUgJzsKICAgICAgICAkU1FMIC49IGpvaW4gJyBBTkQgJywgbWFwIHsiKCAkXyApIn0gQFNRTFdoZXJlOwogICAgICAgICRTUUwgLj0gJyAnOwogICAgICAgIGlmICgkU1FMRHluYW1pY0ZpZWxkV2hlcmUpIHsKICAgICAgICAgICAgJFNRTCAuPSAnIEFORCAnIC4gJFNRTER5bmFtaWNGaWVsZFdoZXJlOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgIGlmICgkU1FMRHluYW1pY0ZpZWxkV2hlcmUpIHsKICAgICAgICAgICAgJFNRTCAuPSAnIFdIRVJFICcgLiAkU1FMRHluYW1pY0ZpZWxkV2hlcmU7CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIHRoZSBPUkRFUiBCWSBjbGF1c2UKICAgIGlmIChAU1FMT3JkZXJCeSkgewogICAgICAgICRTUUwgLj0gJyBPUkRFUiBCWSAnOwogICAgICAgICRTUUwgLj0gam9pbiAnLCAnLCBAU1FMT3JkZXJCeTsKICAgICAgICAkU1FMIC49ICcgJzsKICAgIH0KCiAgICAjIGlnbm9yZSB0aGUgcGFyYW1ldGVyICdMaW1pdCcgd2hlbiByZXN1bHQgdHlwZSBpcyAnQ09VTlQnCiAgICBpZiAoICRSZXN1bHQgZXEgJ0NPVU5UJyApIHsKICAgICAgICAkUGFyYW17TGltaXR9ID0gMTsKICAgIH0KCiAgICAjIGFzayBkYXRhYmFzZQogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJFNRTCwKICAgICAgICBMaW1pdCA9PiAkUGFyYW17TGltaXR9LAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15IEBJRHM7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBwdXNoIEBJRHMsICRSb3dbMF07CiAgICB9CgogICAgIyByZXR1cm4gdGhlIGNvdW50IGFzIHNjYWxhcgogICAgcmV0dXJuICRJRHNbMF0gaWYgJFJlc3VsdCBlcSAnQ09VTlQnOwoKICAgIHJldHVybiBcQElEczsKfQoKPWhlYWQyIFdvcmtPcmRlckRlbGV0ZSgpCgpEZWxldGUgYSBDPHdvcmtvcmRlcj4uCgpUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgYWxsIGxpbmtzIGFuZCBhdHRhY2htZW50cyB0byB0aGUgQzx3b3Jrb3JkZXI+CndpdGggdGhlIHBhc3NlZCBDPHdvcmtvcmRlcj4gaWQuCkFmdGVyIHRoYXQgdGhlIEM8d29ya29yZGVyPiBpcyByZW1vdmVkLgoKICAgIG15ICRTdWNjZXNzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyRGVsZXRlKAogICAgICAgIFdvcmtPcmRlcklEICA9PiAxMjMsCiAgICAgICAgTm9OdW1iZXJDYWxjID0+IDEsICMgKG9wdGlvbmFsKSBkZWZhdWx0IDAsIGlmIDEgaXQgcHJldmVudHMgYSByZWNhbGN1bGF0aW9uIG9mIHRoZSB3b3Jrb3JkZXIgbnVtYmVycwogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBXb3JrT3JkZXJEZWxldGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBdHRyaWJ1dGUgKHF3KFdvcmtPcmRlcklEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEF0dHJpYnV0ZX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBdHRyaWJ1dGUhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHRyaWdnZXIgV29ya09yZGVyRGVsZXRlUHJlLUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdXb3JrT3JkZXJEZWxldGVQcmUnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBvbGQgd29ya29yZGVyIGRhdGEgdG8gYmUgZ2l2ZW4gdG8gcG9zdCBldmVudCBoYW5kbGVyCiAgICBteSAkV29ya09yZGVyRGF0YSA9ICRTZWxmLT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgV29ya09yZGVySUQgPT4gJFBhcmFte1dvcmtPcmRlcklEfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBkZWxldGUgYWxsIGxpbmtzIHRvIHRoaXMgd29ya29yZGVyCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0JyktPkxpbmtEZWxldGVBbGwoCiAgICAgICAgT2JqZWN0ID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICBLZXkgICAgPT4gJFBhcmFte1dvcmtPcmRlcklEfSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgIyBnZXQgdGhlIGxpc3Qgb2Ygd29ya29yZGVyIGF0dGFjaG1lbnRzIGFuZCBkZWxldGUgdGhlbQogICAgbXkgQEF0dGFjaG1lbnRzID0gJFNlbGYtPldvcmtPcmRlckF0dGFjaG1lbnRMaXN0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtXb3JrT3JkZXJJRH0sCiAgICApOwoKICAgIGZvciBteSAkRmlsZW5hbWUgKEBBdHRhY2htZW50cykgewoKICAgICAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICRTZWxmLT5Xb3JrT3JkZXJBdHRhY2htZW50RGVsZXRlKAogICAgICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkV29ya09yZGVyRGF0YS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgV29ya09yZGVySUQgICAgPT4gJFBhcmFte1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgRmlsZW5hbWUgICAgICAgPT4gJEZpbGVuYW1lLAogICAgICAgICAgICBBdHRhY2htZW50VHlwZSA9PiAnV29ya09yZGVyJywKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIGlmICEkRGVsZXRlU3VjY2VzczsKICAgIH0KCiAgICAjIGdldCB0aGUgbGlzdCBvZiByZXBvcnQgYXR0YWNobWVudHMgYW5kIGRlbGV0ZSB0aGVtCiAgICBteSBAUmVwb3J0QXR0YWNobWVudHMgPSAkU2VsZi0+V29ya09yZGVyUmVwb3J0QXR0YWNobWVudExpc3QoCiAgICAgICAgV29ya09yZGVySUQgPT4gJFBhcmFte1dvcmtPcmRlcklEfSwKICAgICk7CiAgICBmb3IgbXkgJEZpbGVuYW1lIChAUmVwb3J0QXR0YWNobWVudHMpIHsKCiAgICAgICAgbXkgJERlbGV0ZVN1Y2Nlc3MgPSAkU2VsZi0+V29ya09yZGVyQXR0YWNobWVudERlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJFdvcmtPcmRlckRhdGEtPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIFdvcmtPcmRlcklEICAgID0+ICRQYXJhbXtXb3JrT3JkZXJJRH0sCiAgICAgICAgICAgIEZpbGVuYW1lICAgICAgID0+ICRGaWxlbmFtZSwKICAgICAgICAgICAgQXR0YWNobWVudFR5cGUgPT4gJ1dvcmtPcmRlclJlcG9ydCcsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIHJldHVybiBpZiAhJERlbGV0ZVN1Y2Nlc3M7CiAgICB9CgogICAgIyBnZXQgYWxsIGR5bmFtaWMgZmllbGRzIGZvciB0aGUgb2JqZWN0IHR5cGUgSVRTTVdvcmtPcmRlcgogICAgbXkgJER5bmFtaWNGaWVsZExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgT2JqZWN0VHlwZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgVmFsaWQgICAgICA9PiAwLAogICAgKTsKCiAgICAjIGRlbGV0ZSBkeW5hbWljZmllbGQgdmFsdWVzIGZvciB0aGlzIHdvcmtvcmRlcgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGRMaXN0fSApIHsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISREeW5hbWljRmllbGRDb25maWc7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57Q29uZmlnfSApOwoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyktPlZhbHVlRGVsZXRlKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRQYXJhbXtXb3JrT3JkZXJJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgZGVsZXRlIHRoZSB3b3Jrb3JkZXIKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCAgPT4gJ0RFTEVURSBGUk9NIGNoYW5nZV93b3Jrb3JkZXIgV0hFUkUgaWQgPSA/ICcsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17V29ya09yZGVySUR9IF0sCiAgICApOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBmb3IgbXkgJEtleSAoCiAgICAgICAgJ1dvcmtPcmRlckdldDo6SUQ6OicgLiAkUGFyYW17V29ya09yZGVySUR9LAogICAgICAgICdXb3JrT3JkZXJMaXN0OjpDaGFuZ2VJRDo6JyAuICRXb3JrT3JkZXJEYXRhLT57Q2hhbmdlSUR9LAogICAgICAgICdXb3JrT3JkZXJDaGFuZ2VFZmZvcnRzR2V0OjpDaGFuZ2VJRDo6JyAuICRXb3JrT3JkZXJEYXRhLT57Q2hhbmdlSUR9LAogICAgICAgICdXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0OjpDaGFuZ2VJRDo6JyAuICRXb3JrT3JkZXJEYXRhLT57Q2hhbmdlSUR9LAogICAgICAgICdDaGFuZ2VHZXQ6OklEOjonIC4gJFdvcmtPcmRlckRhdGEtPntDaGFuZ2VJRH0sCiAgICAgICAgKQogICAgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgIyB0cmlnZ2VyIFdvcmtPcmRlckRlbGV0ZVBvc3QtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ1dvcmtPcmRlckRlbGV0ZVBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgT2xkV29ya09yZGVyRGF0YSA9PiAkV29ya09yZGVyRGF0YSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIFdvcmtPcmRlckNoYW5nZVRpbWVHZXQoKQoKUmV0dXJucyBhIGxpc3Qgb2YgUGxhbm5lZFN0YXJ0VGltZSB8IFBsYW5uZWRFbmRUaW1lIHwgQWN0dWFsU3RhcnRUaW1lIHwgQWN0dWFsRW5kVGltZQpvZiBhIGNoYW5nZSwgd2hpY2ggd291bGQgYmUgdGhlIHJlc3BlY3RpdmUgdGltZSBvZiB0aGUgZWFybGllc3Qgc3RhcnRpbmcKQzx3b3Jrb3JkZXI+IChmb3Igc3RhcnQgdGltZXMpIG9yIHRoZSBsYXRlc3QgZW5kaW5nIEM8d29ya29yZGVyPiAoZm9yIGVuZCB0aW1lcykuCgpGb3IgUGxhbm5lZFN0YXJ0VGltZSB8IFBsYW5uZWRFbmRUaW1lIHwgQWN0dWFsRW5kVGltZSBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQKaWYgYW55IG9mIHRoZSBDPHdvcmtvcmRlcnM+IG9mIGEgY2hhbmdlIGhhcyB0aGUgcmVzcGVjdGl2ZSB0aW1lIG5vdCBkZWZpbmVkLgoKVGhlIEFjdHVhbFN0YXJ0VGltZSBpcyBkZWZpbmVkIHdoZW4gYW55IG9mIHRoZSBDPHdvcmtvcmRlcnM+IG9mIGEgY2hhbmdlIGhhcwphIGRlZmluZWQgQWN0dWFsU3RhcnRUaW1lLgoKUmV0dXJuCgogICAgJFRpbWV7UGxhbm5lZFN0YXJ0VGltZX0KICAgICRUaW1le1BsYW5uZWRFbmRUaW1lfQogICAgJFRpbWV7QWN0dWFsU3RhcnRUaW1lfQogICAgJFRpbWV7QWN0dWFsRW5kVGltZX0KCiAgICBteSAkVGltZVJlZiA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckNoYW5nZVRpbWVHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgID0+IDEsCgogICAgICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgICAgICMgVE9ETzogKGRlY2lkZSB0aGlzIGxhdGVyISkKICAgICAgICBNYXliZSBhZGQgdGhpcyBuZXcgYXR0cmlidXRlOgoKICAgICAgICAjIFRoZXNlIGFyZSBXb3JrT3JkZXJUeXBlcyAoVHlwZXMsIG5vdCBTdGF0ZXMhKQogICAgICAgICMgd2hpY2ggd291bGQgYmUgZXhjbHVkZWQgZnJvbSB0aGUgY2FsY3VsYXRpb24KICAgICAgICAjIG9mIHRoZSBjaGFuZ2Ugc3RhcnQgdGltZS4KCiAgICAgICAgRXhjbHVkZVdvcmtPcmRlclR5cGVzID0+IFsgJ2FwcHJvdmFsJywgJ3BpcicgXSwgICAjIChvcHRpb25hbCkKCiAgICAgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICk7Cgo9Y3V0CgpzdWIgV29ya09yZGVyQ2hhbmdlVGltZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAocXcoQ2hhbmdlSUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXR0cmlidXRlfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEF0dHJpYnV0ZSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgaW5pdGlhbGl6ZSB0aGUgcmV0dXJuIHRpbWUgaGFzaAogICAgbXkgJVRpbWVSZXR1cm47CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJENhY2hlS2V5ID0gJ1dvcmtPcmRlckNoYW5nZVRpbWVHZXQ6OkNoYW5nZUlEOjonIC4gJFBhcmFte0NoYW5nZUlEfTsKICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwoKICAgIGlmICgkQ2FjaGUpIHsKCiAgICAgICAgIyBnZXQgZGF0YSBmcm9tIGNhY2hlCiAgICAgICAgJVRpbWVSZXR1cm4gPSAleyRDYWNoZX07CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBidWlsZCBzcWwsIHVzaW5nIG1pbiBhbmQgbWF4IGZ1bmN0aW9ucwogICAgICAgIG15ICRTUUwgPSAnU0VMRUNUICcKICAgICAgICAgICAgLiAnTUlOKCBwbGFubmVkX3N0YXJ0X3RpbWUgKSwgJwogICAgICAgICAgICAuICdNQVgoIHBsYW5uZWRfZW5kX3RpbWUgKSwgJwogICAgICAgICAgICAuICdNSU4oIGFjdHVhbF9zdGFydF90aW1lICksICcKICAgICAgICAgICAgLiAnTUFYKCBhY3R1YWxfZW5kX3RpbWUgKSAnCiAgICAgICAgICAgIC4gJ0ZST00gY2hhbmdlX3dvcmtvcmRlciAnCiAgICAgICAgICAgIC4gJ1dIRVJFIGNoYW5nZV9pZCA9ID8nOwoKICAgICAgICAjIHJldHJpZXZlIHRoZSByZXF1ZXN0ZWQgdGltZQogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCAgID0+ICRTUUwsCiAgICAgICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtDaGFuZ2VJRH0gXSwKICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAkVGltZVJldHVybntQbGFubmVkU3RhcnRUaW1lfSA9ICRSb3dbMF0gfHwgJyc7CiAgICAgICAgICAgICRUaW1lUmV0dXJue1BsYW5uZWRFbmRUaW1lfSAgID0gJFJvd1sxXSB8fCAnJzsKICAgICAgICAgICAgJFRpbWVSZXR1cm57QWN0dWFsU3RhcnRUaW1lfSAgPSAkUm93WzJdIHx8ICcnOwogICAgICAgICAgICAkVGltZVJldHVybntBY3R1YWxFbmRUaW1lfSAgICA9ICRSb3dbM10gfHwgJyc7CiAgICAgICAgfQoKICAgICAgICBUSU1FRklFTEQ6CiAgICAgICAgZm9yIG15ICRUaW1lICggc29ydCBrZXlzICVUaW1lUmV0dXJuICkgewoKICAgICAgICAgICAgbmV4dCBUSU1FRklFTEQgaWYgISRUaW1lUmV0dXJueyRUaW1lfTsKCiAgICAgICAgICAgICMgY2xlYW51cCB0aW1lIHN0YW1wcyAoc29tZSBkYXRhYmFzZXMgYXJlIHVzaW5nIGUuIGcuIDIwMDgtMDItMjUgMjI6MDM6MDAuMDAwMDAwKQogICAgICAgICAgICAkVGltZVJldHVybnskVGltZX0KICAgICAgICAgICAgICAgID1+IHN7IFxBICggXGRcZFxkXGQgLSBcZFxkIC0gXGRcZCBccyBcZFxkOlxkXGQ6XGRcZCApIFwuIC4rPyBceiB9eyQxfXhtczsKCiAgICAgICAgICAgICMgc2V0IGVtcHR5IHN0cmluZyBpZiB0aGUgZGVmYXVsdCB0aW1lIHdhcyBmb3VuZAogICAgICAgICAgICBpZiAoICRUaW1lUmV0dXJueyRUaW1lfSBlcSAnOTk5OS0wMS0wMSAwMDowMDowMCcgKSB7CiAgICAgICAgICAgICAgICAkVGltZVJldHVybnskVGltZX0gPSAnJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBpZiBjaGFuZ2UgaGFzIHdvcmtvcmRlcnMgd2l0aCBub3QgeWV0IGRlZmluZWQgcGxhbm5lZF9zdGFydF90aW1lIGVudHJpZXMKICAgICAgICBpZiAoICRUaW1lUmV0dXJue1BsYW5uZWRTdGFydFRpbWV9ICkgewoKICAgICAgICAgICAgIyBidWlsZCBTUUwKICAgICAgICAgICAgbXkgJFNRTCA9ICdTRUxFQ1QgY291bnQoKikgJwogICAgICAgICAgICAgICAgLiAnRlJPTSBjaGFuZ2Vfd29ya29yZGVyICcKICAgICAgICAgICAgICAgIC4gIldIRVJFIHBsYW5uZWRfc3RhcnRfdGltZSA9ICc5OTk5LTAxLTAxIDAwOjAwOjAwJyAiCiAgICAgICAgICAgICAgICAuICdBTkQgY2hhbmdlX2lkID0gPyc7CgogICAgICAgICAgICAjIHJldHJpZXZlIG51bWJlciBvZiBub3QgZGVmaW5lZCBlbnRyaWVzCiAgICAgICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgICAgICAgICBTUUwgICA9PiAkU1FMLAogICAgICAgICAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte0NoYW5nZUlEfSBdLAogICAgICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgICAgICAgICBteSAkQ291bnQ7CiAgICAgICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICAgICAkQ291bnQgPSAkUm93WzBdOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHJlc2V0IFBsYW5uZWRTdGFydFRpbWUKICAgICAgICAgICAgaWYgKCRDb3VudCkgewogICAgICAgICAgICAgICAgJFRpbWVSZXR1cm57UGxhbm5lZFN0YXJ0VGltZX0gPSAnJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzZXQgY2FjaGUKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+U2V0KAogICAgICAgICAgICBUeXBlICA9PiAnSVRTTUNoYW5nZU1hbmFnZW1lbnQnLAogICAgICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXksCiAgICAgICAgICAgIFZhbHVlID0+IFwlVGltZVJldHVybiwKICAgICAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gXCVUaW1lUmV0dXJuOwp9Cgo9aGVhZDIgV29ya09yZGVyU3RhdGVMb29rdXAoKQoKVGhpcyBtZXRob2QgZG9lcyBhIGxvb2t1cCBmb3IgYSBDPHdvcmtvcmRlcj4gc3RhdGUuIElmIGEgQzx3b3Jrb3JkZXI+IHN0YXRlIGlkIGlzIGdpdmVuLAppdCByZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBDPHdvcmtvcmRlcj4gc3RhdGUuIElmIGEgQzx3b3Jrb3JkZXI+IHN0YXRlIG5hbWUgaXMgZ2l2ZW4sCnRoZSBhcHByb3ByaWF0ZSBpZCBpcyByZXR1cm5lZC4KCiAgICBteSAkV29ya09yZGVyU3RhdGUgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJTdGF0ZUxvb2t1cCgKICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+IDE1NywKICAgICk7CgogICAgbXkgJFdvcmtPcmRlclN0YXRlSUQgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJTdGF0ZUxvb2t1cCgKICAgICAgICBXb3JrT3JkZXJTdGF0ZSA9PiAncmVhZHknLAogICAgKTsKCj1jdXQKCnN1YiBXb3JrT3JkZXJTdGF0ZUxvb2t1cCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZWl0aGVyIFdvcmtPcmRlclN0YXRlSUQgb3IgV29ya09yZGVyU3RhdGUgbXVzdCBiZSBwYXNzZWQKICAgIGlmICggISRQYXJhbXtXb3JrT3JkZXJTdGF0ZUlEfSAmJiAhJFBhcmFte1dvcmtPcmRlclN0YXRlfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgV29ya09yZGVyU3RhdGVJRCBvciBXb3JrT3JkZXJTdGF0ZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGlmICggJFBhcmFte1dvcmtPcmRlclN0YXRlSUR9ICYmICRQYXJhbXtXb3JrT3JkZXJTdGF0ZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFdvcmtPcmRlclN0YXRlSUQgT1IgV29ya09yZGVyU3RhdGUgLSBub3QgYm90aCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IHRoZSB3b3Jrb3JkZXIgc3RhdGVzIGZyb20gdGhlIGdlbmVyYWwgY2F0YWxvZwogICAgbXkgJFN0YXRlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtTGlzdCgKICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpTdGF0ZScsCiAgICApOwoKICAgICMgY29udmVydCBzdGF0ZSBsaXN0IGludG8gYSBsb29rdXAgaGFzaAogICAgbXkgJVN0YXRlSUQyTmFtZTsKICAgIGlmICggJFN0YXRlTGlzdCAmJiByZWYgJFN0YXRlTGlzdCBlcSAnSEFTSCcgJiYgJXskU3RhdGVMaXN0fSApIHsKICAgICAgICAlU3RhdGVJRDJOYW1lID0gJXskU3RhdGVMaXN0fTsKICAgIH0KCiAgICAjIGNoZWNrIHRoZSBzdGF0ZSBoYXNoCiAgICBpZiAoICElU3RhdGVJRDJOYW1lICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnQ291bGQgbm90IHJldHJpZXZlIHdvcmtvcmRlciBzdGF0ZXMgZnJvbSB0aGUgZ2VuZXJhbCBjYXRhbG9nLicsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGlmICggJFBhcmFte1dvcmtPcmRlclN0YXRlSUR9ICkgewogICAgICAgIHJldHVybiAkU3RhdGVJRDJOYW1leyAkUGFyYW17V29ya09yZGVyU3RhdGVJRH0gfTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIHJldmVyc2Uga2V5IC0gdmFsdWUgcGFpcnMgdG8gaGF2ZSB0aGUgbmFtZSBhcyBrZXlzCiAgICAgICAgbXkgJVN0YXRlTmFtZTJJRCA9IHJldmVyc2UgJVN0YXRlSUQyTmFtZTsKCiAgICAgICAgcmV0dXJuICRTdGF0ZU5hbWUySUR7ICRQYXJhbXtXb3JrT3JkZXJTdGF0ZX0gfTsKICAgIH0KfQoKPWhlYWQyIFdvcmtPcmRlclBvc3NpYmxlU3RhdGVzR2V0KCkKClRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIHBvc3NpYmxlIEM8d29ya29yZGVyPiBzdGF0ZXMuCklmIEM8V29ya09yZGVySUQ+IGlzIG9taXR0ZWQsIHRoZSBjb21wbGV0ZSBsaXN0IG9mIEM8d29ya29yZGVyPiBzdGF0ZXMgaXMgcmV0dXJuZWQuCklmIEM8V29ya09yZGVySUQ+IGlzIGdpdmVuLCB0aGUgbGlzdCBvZiBwb3NzaWJsZSBzdGF0ZXMgZm9yIHRoZSBnaXZlbgpDPHdvcmtvcmRlcj4gaXMgcmV0dXJuZWQuCgogICAgbXkgJFdvcmtPcmRlclN0YXRlTGlzdCA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclBvc3NpYmxlU3RhdGVzR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+IDEyMywgICMgKG9wdGlvbmFsKQogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKVGhlIHJldHVybiB2YWx1ZSBpcyBhIHJlZmVyZW5jZSB0byBhbiBhcnJheSBvZiBoYXNocmVmcy4gVGhlIGVsZW1lbnQgJ0tleScgaXMgdGhlbgp0aGUgU3RhdGVJRCBhbmQgdGhlIGVsZW1lbnQgJ1ZhbHVlJyBpcyB0aGUgbmFtZSBvZiB0aGUgc3RhdGUuIFRoZSBhcnJheSBlbGVtZW50cwphcmUgc29ydGVkIGJ5IHN0YXRlIGlkLgoKICAgIG15ICRXb3JrT3JkZXJTdGF0ZUxpc3QgPSBbCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAxNTYsCiAgICAgICAgICAgIFZhbHVlID0+ICdhY2NlcHRlZCcsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+IDE1NywKICAgICAgICAgICAgVmFsdWUgPT4gJ2luIHByb2dyZXNzJywKICAgICAgICB9LAogICAgXTsKCj1jdXQKCnN1YiBXb3JrT3JkZXJQb3NzaWJsZVN0YXRlc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAocXcoVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXR0cmlidXRlfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEF0dHJpYnV0ZSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IHdvcmtvcmRlciBzdGF0ZSBsaXN0CiAgICBteSAkU3RhdGVMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlN0YXRlJywKICAgICkgfHwge307CgogICAgIyB0byBzdG9yZSBhbiBhcnJheSBvZiBoYXNoIHJlZnMKICAgIG15IEBBcnJheUhhc2hSZWY7CgogICAgIyBpZiBXb3JrT3JkZXJJRCBpcyBnaXZlbiwgb25seSB1c2UgcG9zc2libGUgbmV4dCBzdGF0ZXMgYXMgZGVmaW5lZCBpbiBzdGF0ZSBtYWNoaW5lCiAgICBpZiAoICRQYXJhbXtXb3JrT3JkZXJJRH0gKSB7CgogICAgICAgICMgZ2V0IHdvcmtvcmRlciBkYXRhCiAgICAgICAgbXkgJFdvcmtPcmRlciA9ICRTZWxmLT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtXb3JrT3JkZXJJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgZm9yIHN0YXRlIGxvY2sKICAgICAgICBteSAkU3RhdGVMb2NrID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKS0+Q29uZGl0aW9uTWF0Y2hTdGF0ZUxvY2soCiAgICAgICAgICAgIE9iamVjdE5hbWUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICBTZWxlY3RvciAgID0+ICRQYXJhbXtXb3JrT3JkZXJJRH0sCiAgICAgICAgICAgIFN0YXRlSUQgICAgPT4gJFdvcmtPcmRlci0+e1dvcmtPcmRlclN0YXRlSUR9LAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgc2V0IGFzIGRlZmF1bHQgc3RhdGUgY3VycmVudCB3b3Jrb3JkZXIgc3RhdGUKICAgICAgICBteSBATmV4dFN0YXRlSURzID0gKCAkV29ya09yZGVyLT57V29ya09yZGVyU3RhdGVJRH0gKTsKCiAgICAgICAgIyBjaGVjayBpZiByZWFjaGFibGUgd29ya29yZGVyIGVuZCBzdGF0ZXMgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGxvY2tlZCB3b3Jrb3JkZXIgc3RhdGVzCiAgICAgICAgbXkgJFdvcmtPcmRlckVuZFN0YXRlc0FsbG93ZWQKICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0lUU01Xb3JrT3JkZXI6OlN0YXRlTG9jazo6QWxsb3dFbmRTdGF0ZXMnKTsKCiAgICAgICAgaWYgKCRXb3JrT3JkZXJFbmRTdGF0ZXNBbGxvd2VkKSB7CgogICAgICAgICAgICAjIHNldCBhcyBkZWZhdWx0IHN0YXRlIGN1cnJlbnQgc3RhdGUgYW5kIGFsbCBwb3NzaWJsZSBlbmQgc3RhdGVzCiAgICAgICAgICAgIG15ICRFbmRTdGF0ZUlEc1JlZgogICAgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVN0YXRlTWFjaGluZScpLT5TdGF0ZVRyYW5zaXRpb25HZXRFbmRTdGF0ZXMoCiAgICAgICAgICAgICAgICBTdGF0ZUlEID0+ICRXb3JrT3JkZXItPntXb3JrT3JkZXJTdGF0ZUlEfSwKICAgICAgICAgICAgICAgIENsYXNzICAgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6U3RhdGUnLAogICAgICAgICAgICAgICAgKSB8fCBbXTsKICAgICAgICAgICAgQE5leHRTdGF0ZUlEcyA9IHNvcnQgKCBAeyRFbmRTdGF0ZUlEc1JlZn0sICRXb3JrT3JkZXItPntXb3JrT3JkZXJTdGF0ZUlEfSApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgcG9zc2libGUgbmV4dCBzdGF0ZXMgaWYgbm8gc3RhdGUgbG9jawogICAgICAgIGlmICggISRTdGF0ZUxvY2sgKSB7CgogICAgICAgICAgICAjIGdldCB0aGUgcG9zc2libGUgbmV4dCBzdGF0ZSBpZHMKICAgICAgICAgICAgbXkgJE5leHRTdGF0ZUlEc1JlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNU3RhdGVNYWNoaW5lJyktPlN0YXRlVHJhbnNpdGlvbkdldCgKICAgICAgICAgICAgICAgIFN0YXRlSUQgPT4gJFdvcmtPcmRlci0+e1dvcmtPcmRlclN0YXRlSUR9LAogICAgICAgICAgICAgICAgQ2xhc3MgICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpTdGF0ZScsCiAgICAgICAgICAgICkgfHwgW107CgogICAgICAgICAgICAjIGFkZCBjdXJyZW50IHdvcmtvcmRlciBzdGF0ZSBpZCB0byBsaXN0CiAgICAgICAgICAgIEBOZXh0U3RhdGVJRHMgPSBzb3J0ICggQHskTmV4dFN0YXRlSURzUmVmfSwgJFdvcmtPcmRlci0+e1dvcmtPcmRlclN0YXRlSUR9ICk7CiAgICAgICAgfQoKICAgICAgICAjIGFzc2VtYmxlIHRoZSBhcnJheSBvZiBoYXNoIHJlZnMgd2l0aCBvbmx5IHBvc3NpYmxlIG5leHQgc3RhdGVzCiAgICAgICAgU1RBVEVJRDoKICAgICAgICBmb3IgbXkgJFN0YXRlSUQgKEBOZXh0U3RhdGVJRHMpIHsKCiAgICAgICAgICAgICMgY2hlY2sgc3RhdGUgaWQKICAgICAgICAgICAgbmV4dCBTVEFURUlEIGlmICEkU3RhdGVJRDsKCiAgICAgICAgICAgICMgc3RvcmUgaWQgYW5kIG5hbWUgaW4gdGhlIGFycmF5CiAgICAgICAgICAgIHB1c2ggQEFycmF5SGFzaFJlZiwgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJFN0YXRlSUQsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkU3RhdGVMaXN0LT57JFN0YXRlSUR9LAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIFxAQXJyYXlIYXNoUmVmOwogICAgfQoKICAgICMgYXNzZW1ibGUgdGhlIGFycmF5IG9mIGhhc2ggcmVmcyB3aXRoIGFsbCBuZXh0IHN0YXRlcwogICAgZm9yIG15ICRTdGF0ZUlEICggc29ydCBrZXlzICV7JFN0YXRlTGlzdH0gKSB7CiAgICAgICAgcHVzaCBAQXJyYXlIYXNoUmVmLCB7CiAgICAgICAgICAgIEtleSAgID0+ICRTdGF0ZUlELAogICAgICAgICAgICBWYWx1ZSA9PiAkU3RhdGVMaXN0LT57JFN0YXRlSUR9LAogICAgICAgIH07CiAgICB9CgogICAgcmV0dXJuIFxAQXJyYXlIYXNoUmVmOwp9Cgo9aGVhZDIgV29ya09yZGVyVHlwZUxvb2t1cCgpCgpUaGlzIG1ldGhvZCBkb2VzIGEgbG9va3VwIGZvciBhIEM8d29ya29yZGVyPiB0eXBlLiBJZiBhIEM8d29ya29yZGVyPiB0eXBlIGlkIGlzIGdpdmVuLAppdCByZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBDPHdvcmtvcmRlcj4gdHlwZS4gSWYgYSBDPHdvcmtvcmRlcj4gdHlwZSBuYW1lIGlzIGdpdmVuLAp0aGUgYXBwcm9wcmlhdGUgaWQgaXMgcmV0dXJuZWQuCgogICAgbXkgJFdvcmtPcmRlclR5cGUgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJUeXBlTG9va3VwKAogICAgICAgIFdvcmtPcmRlclR5cGVJRCA9PiAxNTcsCiAgICApOwoKICAgIG15ICRXb3JrT3JkZXJUeXBlSUQgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJUeXBlTG9va3VwKAogICAgICAgIFdvcmtPcmRlclR5cGUgPT4gJ3JlYWR5JywKICAgICk7Cgo9Y3V0CgpzdWIgV29ya09yZGVyVHlwZUxvb2t1cCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZWl0aGVyIFdvcmtPcmRlclR5cGVJRCBvciBXb3JrT3JkZXJUeXBlIG11c3QgYmUgcGFzc2VkCiAgICBpZiAoICEkUGFyYW17V29ya09yZGVyVHlwZUlEfSAmJiAhJFBhcmFte1dvcmtPcmRlclR5cGV9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBXb3JrT3JkZXJUeXBlSUQgb3IgV29ya09yZGVyVHlwZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGlmICggJFBhcmFte1dvcmtPcmRlclR5cGVJRH0gJiYgJFBhcmFte1dvcmtPcmRlclR5cGV9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBXb3JrT3JkZXJUeXBlSUQgT1IgV29ya09yZGVyVHlwZSAtIG5vdCBib3RoIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgd29ya29yZGVyIHR5cGUgZnJvbSBnZW5lcmFsIGNhdGFsb2cKICAgICMgbWFwcGluZyBvZiB0aGUgaWQgdG8gdGhlIG5hbWUKICAgIG15ICVXb3JrT3JkZXJUeXBlID0gJXsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUxpc3QoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGUnLAogICAgICAgICkKICAgIH07CgogICAgIyBjaGVjayB0aGUgd29ya29yZGVyIHR5cGVzIGhhc2gKICAgIGlmICggISVXb3JrT3JkZXJUeXBlICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnQ291bGQgbm90IHJldHJpZXZlIHdvcmtvcmRlciB0eXBlcyBmcm9tIHRoZSBnZW5lcmFsIGNhdGFsb2cuJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCAkUGFyYW17V29ya09yZGVyVHlwZUlEfSApIHsKICAgICAgICByZXR1cm4gJFdvcmtPcmRlclR5cGV7ICRQYXJhbXtXb3JrT3JkZXJUeXBlSUR9IH07CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyByZXZlcnNlIGtleSAtIHZhbHVlIHBhaXJzIHRvIGhhdmUgdGhlIG5hbWUgYXMga2V5cwogICAgICAgIG15ICVSZXZlcnNlZFdvcmtPcmRlclR5cGUgPSByZXZlcnNlICVXb3JrT3JkZXJUeXBlOwoKICAgICAgICByZXR1cm4gJFJldmVyc2VkV29ya09yZGVyVHlwZXsgJFBhcmFte1dvcmtPcmRlclR5cGV9IH07CiAgICB9Cn0KCj1oZWFkMiBXb3JrT3JkZXJUeXBlTGlzdCgpCgpUaGlzIG1ldGhvZCByZXR1cm5zIGEgbGlzdCBvZiBhbGwgQzx3b3Jrb3JkZXI+IHR5cGVzLgoKICAgIG15ICRXb3JrT3JkZXJUeXBlTGlzdCA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclR5cGVMaXN0KAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgRGVmYXVsdCAgICAgPT4gMSwgICAjIG9wdGlvbmFsIC0gdGhlIGRlZmF1bHQgdHlwZSBpcyBzZWxlY3RlZCB0eXBlIChkZWZhdWx0OiAwKQogICAgICAgIFNlbGVjdGVkSUQgID0+IDEyMywgIyBvcHRpb25hbCAtIHRoaXMgaWQgaXMgc2VsZWN0ZWQKICAgICk7CgpUaGUgcmV0dXJuIHZhbHVlIGlzIGEgcmVmZXJlbmNlIHRvIGFuIGFycmF5IG9mIGhhc2hyZWZzLiBUaGUgRWxlbWVudCAnS2V5JyBpcyB0aGVuCnRoZSBUeXBlSUQgYW5kIGRpZSBFbGVtZW50ICdWYWx1ZScgaXMgdGhlIG5hbWUgb2YgdGhlIHR5cGUuIFRoZSBhcnJheSBlbGVtZW50cwphcmUgc29ydGVkIGJ5IHR5cGUgaWQuCgogICAgbXkgJFdvcmtPcmRlclR5cGVMaXN0ID0gWwogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gMTcxLAogICAgICAgICAgICBWYWx1ZSA9PiAnd29ya29yZGVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gMTcyLAogICAgICAgICAgICBWYWx1ZSA9PiAnYmFja291dCcsCiAgICAgICAgfSwKICAgIF07Cgo9Y3V0CgpzdWIgV29ya09yZGVyVHlwZUxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBdHRyaWJ1dGUgKHF3KFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEF0dHJpYnV0ZX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBdHRyaWJ1dGUhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHdoYXQgdHlwZSBpcyBzZWxlY3RlZAogICAgbXkgJFNlbGVjdGVkSUQgPSAkUGFyYW17U2VsZWN0ZWR9IHx8IDA7CgogICAgaWYgKCAkUGFyYW17RGVmYXVsdH0gKSB7CgogICAgICAgICMgc2V0IGNvbmZpZyBvcHRpb24KICAgICAgICBteSAkQ29uZmlnT3B0aW9uID0gJ0lUU01Xb3JrT3JkZXI6OlR5cGU6OkRlZmF1bHQnOwoKICAgICAgICAjIGdldCBkZWZhdWx0IHdvcmtvcmRlciB0eXBlIGZyb20gY29uZmlnCiAgICAgICAgbXkgJERlZmF1bHRUeXBlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCRDb25maWdPcHRpb24pOwoKICAgICAgICAjIGNoZWNrIGlmIGRlZmF1bHQgdHlwZSBleGlzdHMgaW4gZ2VuZXJhbCBjYXRhbG9nCiAgICAgICAgbXkgJEl0ZW1EYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlR5cGUnLAogICAgICAgICAgICBOYW1lICA9PiAkRGVmYXVsdFR5cGUsCiAgICAgICAgKTsKCiAgICAgICAgIyBlcnJvciBoYW5kbGluZyBiZWNhdXNlIG9mIGludmFsaWQgY29uZmlnIHNldHRpbmcKICAgICAgICBpZiAoICEkSXRlbURhdGFSZWYgfHwgcmVmICRJdGVtRGF0YVJlZiBuZSAnSEFTSCcgfHwgISV7JEl0ZW1EYXRhUmVmfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBkZWZhdWx0IFdvcmtPcmRlclR5cGUgJyREZWZhdWx0VHlwZScgIgogICAgICAgICAgICAgICAgICAgIC4gImluIHN5c2NvbmZpZyBvcHRpb24gJyRDb25maWdPcHRpb24nIGlzIGludmFsaWQhIENoZWNrIHRoZSBnZW5lcmFsIGNhdGFsb2chIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgZGVmYXVsdAogICAgICAgICRTZWxlY3RlZElEID0gJEl0ZW1EYXRhUmVmLT57SXRlbUlEfTsKICAgIH0KCiAgICAjIGdldCB3b3Jrb3JkZXIgdHlwZSBsaXN0CiAgICBteSAkV29ya09yZGVyVHlwZUxpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUxpc3QoCiAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZScsCiAgICApIHx8IHt9OwoKICAgICMgYXNzZW1ibGUgYSBhbiBhcnJheSBvZiBoYXNoIHJlZnMKICAgIG15IEBBcnJheUhhc2hSZWY7CiAgICBmb3IgbXkgJFR5cGVJRCAoIHNvcnQga2V5cyAleyRXb3JrT3JkZXJUeXBlTGlzdH0gKSB7CiAgICAgICAgbXkgJVNlbGVjdGVkSW5mbzsKCiAgICAgICAgaWYgKCAkU2VsZWN0ZWRJRCAmJiAkU2VsZWN0ZWRJRCA9PSAkVHlwZUlEICkgewogICAgICAgICAgICAkU2VsZWN0ZWRJbmZve1NlbGVjdGVkfSA9IDE7CiAgICAgICAgfQoKICAgICAgICBwdXNoIEBBcnJheUhhc2hSZWYsIHsKICAgICAgICAgICAgS2V5ICAgPT4gJFR5cGVJRCwKICAgICAgICAgICAgVmFsdWUgPT4gJFdvcmtPcmRlclR5cGVMaXN0LT57JFR5cGVJRH0sCiAgICAgICAgICAgICVTZWxlY3RlZEluZm8sCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gXEBBcnJheUhhc2hSZWY7Cn0KCj1oZWFkMiBQZXJtaXNzaW9uKCkKClJldHVybnMgd2hldGhlciB0aGUgYWdlbnQgQzxVc2VySUQ+IGhhcyBwZXJtaXNzaW9ucyBvZiB0aGUgdHlwZSBDPFR5cGU+Cm9uIHRoZSBDPHdvcmtvcmRlcj4gQzxXb3JrT3JkZXJJRD4uIFRoZSBwYXJhbWV0ZXJzIGFyZSBwYXNzZWQgb24gdG8KdGhlIHBlcm1pc3Npb24gbW9kdWxlcyB0aGF0IHdlcmUgcmVnaXN0ZXJlZCBpbiB0aGUgcGVybWlzc2lvbiByZWdpc3RyeS4KVGhlIHN0YW5kYXJkIHBlcm1pc3Npb24gcmVnaXN0cnkgaXMgQjxJVFNNV29ya09yZGVyOjpQZXJtaXNzaW9uPiwgYnV0CnRoYXQgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCB0aGUgcGFyYW1ldGVyIEM8UGVybWlzc2lvblJlZ2lzdHJ5Pi4KClRoZSByZWdpc3RlcmVkIHBlcm1pc3Npb24gbW9kdWxlcyBhcmUgcnVuIGluIHRoZSBhbHBoYWJldGljYWwgb3JkZXIgb2YKdGhlaXIgcmVnaXN0cnkga2V5cy4KT3ZlcmFsbCBwZXJtaXNzaW9uIGlzIGdyYW50ZWQgd2hlbiBhIHBlcm1pc3Npb24gbW9kdWxlLCB3aGljaCBoYXMgdGhlIGF0dHJpYnV0ZSAnR3JhbnRlZCcgc2V0LApncmFudHMgcGVybWlzc2lvbi4gT3ZlcmFsbCBwZXJtaXNzaW9uIGlzIGRlbmllZCB3aGVuIGEgcGVybWlzc2lvbiBtb2R1bGUsIHdoaWNoIGhhcyB0aGUgYXR0cmlidXRlICdSZXF1aXJlZCcKc2V0LCBkZW5pZXMgcGVybWlzc2lvbi4gT3ZlcmFsbCBwZXJtaXNzaW9uIGlzIGFsc28gZGVuaWVkIHdoZW4gd2hlbiBhbGwgcGVybWlzc2lvbiBtb2R1bGUgd2VyZSBhc2tlZAp3aXRob3V0IGNvbWluZyB0byBhbiBjb25jbHVzaW9uLgoKQXBwcm92YWwgaXMgaW5kaWNhdGVkIGJ5IHRoZSByZXR1cm4gdmFsdWUgMS4gRGVuaWFsIGlzIGluZGljYXRlZCBieSByZXR1cm5pbmcgYW4gZW1wdHkgbGlzdC4KClRoZSBvcHRpb25hbCBvcHRpb24gQzxMb2dObz4gdHVybnMgb2ZmIGxvZ2dpbmcgd2hlbiBhY2Nlc3Mgd2FzIGRlbmllZC4KVGhpcyBpcyB1c2VmdWwgd2hlbiB0aGUgbWV0aG9kIGlzIHVzZWQgZm9yIGNoZWNraW5nIHdoZXRoZXIgYSBsaW5rIG9yIGFuIGFjdGlvbiBzaG91bGQgYmUgc2hvd24uCgogICAgbXkgJEFjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPlBlcm1pc3Npb24oCiAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+IDEyMywKICAgICAgICBUeXBlICAgICAgICAgICAgICAgPT4gJ3JvJywgICAgICAgICAgICAgICAgICAgICAgICAgIyAncm8nIGFuZCAncncnIGFyZSBzdXBwb3J0ZWQKICAgICAgICBBY3Rpb24gICAgICAgICAgICAgPT4gJ0FnZW50SVRTTVdvcmtPcmRlclJlcG9ydCcsICAgIyBvcHRpb25hbAogICAgICAgIFdvcmtPcmRlcklEICAgICAgICA9PiA0NDQ0LAogICAgICAgIFBlcm1pc3Npb25SZWdpc3RyeSA9PiAnSVRTTVdvcmtPcmRlcjo6VGFrZVBlcm1pc3Npb24nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgd2l0aCBkZWZhdWx0ICdJVFNNV29ya09yZGVyOjpQZXJtaXNzaW9uJwogICAgICAgIExvZ05vICAgICAgICAgICAgICA9PiAxLCAgICAgICMgb3B0aW9uYWwsIHR1cm5zIG9mZiBsb2dnaW5nIHdoZW4gYWNjZXNzIGlzIGRlbmllZAogICAgKTsKCj1jdXQKCnN1YiBQZXJtaXNzaW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFR5cGUgVXNlcklEIFdvcmtPcmRlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHRoZSBwbGFjZSB3aGVyZSB0aGUgcGVybWlzc2lvbiBtb2R1bGVzIGFyZSByZWdpc3RlcmQgY2FuIGJlIG92ZXJyaWRkZW4gYnkgYSBwYXJhbWV0ZXIKICAgIG15ICRSZWdpc3RyeSA9ICRQYXJhbXtQZXJtaXNzaW9uUmVnaXN0cnl9IHx8ICdJVFNNV29ya09yZGVyOjpQZXJtaXNzaW9uJzsKCiAgICAjIHJ1biB0aGUgcmVsZXZhbnQgcGVybWlzc2lvbiBtb2R1bGVzCiAgICBpZiAoIHJlZiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJFJlZ2lzdHJ5KSBlcSAnSEFTSCcgKSB7CgogICAgICAgIG15ICVNb2R1bGVzID0gJXsgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCRSZWdpc3RyeSkgfTsKCiAgICAgICAgTU9EVUxFOgogICAgICAgIGZvciBteSAkTW9kdWxlICggc29ydCBrZXlzICVNb2R1bGVzICkgewoKICAgICAgICAgICAgIyBsb2cgdHJ5IG9mIGxvYWQgbW9kdWxlCiAgICAgICAgICAgIGlmICggJFNlbGYtPntEZWJ1Z30gPiAxICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVHJ5IHRvIGxvYWQgbW9kdWxlOiAkTW9kdWxlc3skTW9kdWxlfS0+e01vZHVsZX0hIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgbG9hZCBtb2R1bGUKICAgICAgICAgICAgbmV4dCBNT0RVTEUKICAgICAgICAgICAgICAgIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5SZXF1aXJlKCAkTW9kdWxlc3skTW9kdWxlfS0+e01vZHVsZX0gKTsKCiAgICAgICAgICAgICMgY3JlYXRlIG9iamVjdAogICAgICAgICAgICBteSAkTW9kdWxlT2JqZWN0ID0gJE1vZHVsZXN7JE1vZHVsZX0tPntNb2R1bGV9LT5uZXcoKTsKCiAgICAgICAgICAgICMgYXNrIGZvciB0aGUgb3BpbmlvbiBvZiB0aGUgUGVybWlzc2lvbiBtb2R1bGUKICAgICAgICAgICAgbXkgJEFjY2VzcyA9ICRNb2R1bGVPYmplY3QtPlJ1biglUGFyYW0pOwoKICAgICAgICAgICAgIyBHcmFudCBvdmVyYWxsIHBlcm1pc3Npb24sCiAgICAgICAgICAgICMgd2hlbiB0aGUgbW9kdWxlIGdyYW50ZWQgYSBzdWZmaWNpZW50IHBlcm1pc3Npb24uCiAgICAgICAgICAgIGlmICggJEFjY2VzcyAmJiAkTW9kdWxlc3skTW9kdWxlfS0+e0dyYW50ZWR9ICkgewogICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0RlYnVnfSA+IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJHcmFudGVkICckUGFyYW17VHlwZX0nIGFjY2VzcyBmb3IgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiVXNlcklEOiAkUGFyYW17VXNlcklEfSBvbiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJXb3JrT3JkZXJJRCAnJFBhcmFte1dvcmtPcmRlcklEfScgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAidGhyb3VnaCAkTW9kdWxlc3skTW9kdWxlfS0+e01vZHVsZX0gKG5vIG1vcmUgY2hlY2tzKSEiLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBncmFudCBwZXJtaXNzaW9uCiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBEZW55IG92ZXJhbGwgcGVybWlzc2lvbiwKICAgICAgICAgICAgIyB3aGVuIHRoZSBtb2R1bGUgZGVuaWVkIGEgcmVxdWlyZWQgcGVybWlzc2lvbi4KICAgICAgICAgICAgaWYgKCAhJEFjY2VzcyAmJiAkTW9kdWxlc3skTW9kdWxlfS0+e1JlcXVpcmVkfSApIHsKICAgICAgICAgICAgICAgIGlmICggISRQYXJhbXtMb2dOb30gKSB7CiAgICAgICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdub3RpY2UnLAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRGVuaWVkICckUGFyYW17VHlwZX0nIGFjY2VzcyBmb3IgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiVXNlcklEOiAkUGFyYW17VXNlcklEfSBvbiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJXb3JrT3JkZXJJRCAnJFBhcmFte1dvcmtPcmRlcklEfScgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiYmVjYXVzZSAkTW9kdWxlc3skTW9kdWxlfS0+e01vZHVsZX0gaXMgcmVxdWlyZWQhIiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgZGVueSBwZXJtaXNzaW9uCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBEZW55IGFjY2VzcyB3aGVuIG5laXRoZXIgYSAnR3JhbnRlZCctQ2hlY2sgbm9yIGEgJ1JlcXVpcmVkJy1DaGVjayBoYXMgcmVhY2hlZCBhIGNvbmNsdXNpb24uCiAgICBpZiAoICEkUGFyYW17TG9nTm99ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlBlcm1pc3Npb24gZGVuaWVkIChVc2VySUQ6ICRQYXJhbXtVc2VySUR9ICckUGFyYW17VHlwZX0nICIKICAgICAgICAgICAgICAgIC4gIm9uIFdvcmtPcmRlcklEOiAkUGFyYW17V29ya09yZGVySUR9KSEiLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuOwp9Cgo9aGVhZDIgV29ya09yZGVyU3RhdGVJRHNDaGVjaygpCgpDaGVjayB3aGV0aGVyIGFsbCBvZiB0aGUgZ2l2ZW4gQzx3b3Jrb3JkZXI+IHN0YXRlIGlkcyBhcmUgdmFsaWQuClRoZSBtZXRob2QgaXMgcHVibGljIGFzIGl0IGlzIHVzZWQgaW4gTDxLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6Q2hhbmdlU2VhcmNoPi4KCiAgICBteSAkT2sgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJTdGF0ZUlEc0NoZWNrKAogICAgICAgIFdvcmtPcmRlclN0YXRlSURzID0+IFsgMjUgXSwKICAgICk7Cgo9Y3V0CgpzdWIgV29ya09yZGVyU3RhdGVJRHNDaGVjayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17V29ya09yZGVyU3RhdGVJRHN9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBXb3JrT3JkZXJTdGF0ZUlEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCByZWYgJFBhcmFte1dvcmtPcmRlclN0YXRlSURzfSBuZSAnQVJSQVknICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnVGhlIHBhcmFtIFdvcmtPcmRlclN0YXRlSURzIG11c3QgYmUgYW4gQVJSQVkgcmVmZXJlbmNlIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBpZiBXb3JrT3JkZXJTdGF0ZUlEcyBiZWxvbmdzIHRvIGNvcnJlY3QgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzCiAgICBmb3IgbXkgJFN0YXRlSUQgKCBAeyAkUGFyYW17V29ya09yZGVyU3RhdGVJRHN9IH0gKSB7CiAgICAgICAgbXkgJFN0YXRlID0gJFNlbGYtPldvcmtPcmRlclN0YXRlTG9va3VwKAogICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICRTdGF0ZUlELAogICAgICAgICk7CgogICAgICAgIGlmICggISRTdGF0ZSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBzdGF0ZSBpZCAkU3RhdGVJRCBpcyBub3QgdmFsaWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBXb3JrT3JkZXJBdHRhY2htZW50QWRkKCkKCkFkZCBhbiBhdHRhY2htZW50IHRvIHRoZSBnaXZlbiBDPHdvcmtvcmRlcj4uCgogICAgbXkgJFN1Y2Nlc3MgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50QWRkKAogICAgICAgIENoYW5nZUlEICAgICAgID0+IDEyMywKICAgICAgICBXb3JrT3JkZXJJRCAgICA9PiA0NTYsICAgICAgICAgICAgIyB0aGUgV29ya09yZGVySUQgYmVjb21lcyBwYXJ0IG9mIHRoZSBmaWxlIHBhdGgKICAgICAgICBBdHRhY2htZW50VHlwZSA9PiAnV29ya09yZGVyJywgICAgIyAoICdXb3JrT3JkZXInIHx8ICdXb3JrT3JkZXJSZXBvcnQnKSAgKG9wdGlvbmFsLCBkZWZhdWx0ICdXb3JrT3JkZXInICkKICAgICAgICBGaWxlbmFtZSAgICAgICA9PiAnZmlsZW5hbWUnLAogICAgICAgIENvbnRlbnQgICAgICAgID0+ICdjb250ZW50JywKICAgICAgICBDb250ZW50VHlwZSAgICA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgV29ya09yZGVyQXR0YWNobWVudEFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoQ2hhbmdlSUQgV29ya09yZGVySUQgRmlsZW5hbWUgQ29udGVudCBDb250ZW50VHlwZSBVc2VySUQgKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIFNldCBhdHRhY2htZW50IHR5cGUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBhdHRhY2htZW50cyBvZiB3b3Jrb3JkZXJzCiAgICAjIGFuZCB0aG9zZSBmcm9tIHJlcG9ydHMgb2Ygd29ya29yZGVycwogICAgbXkgJEF0dGFjaG1lbnRUeXBlID0gJFBhcmFte0F0dGFjaG1lbnRUeXBlfSB8fCAnV29ya09yZGVyJzsKCiAgICAjIHNldCBldmVudCBuYW1lIGJhc2VkIG9uIHRoZSBhdHRhY2htZW50IHR5cGUKICAgIG15ICRFdmVudDsKICAgIGlmICggJEF0dGFjaG1lbnRUeXBlIGVxICdXb3JrT3JkZXInICkgewogICAgICAgICRFdmVudCA9ICdXb3JrT3JkZXJBdHRhY2htZW50QWRkUG9zdCc7CiAgICB9CiAgICBlbHNpZiAoICRBdHRhY2htZW50VHlwZSBlcSAnV29ya09yZGVyUmVwb3J0JyApIHsKICAgICAgICAkRXZlbnQgPSAnV29ya09yZGVyUmVwb3J0QXR0YWNobWVudEFkZFBvc3QnOwogICAgfQoKICAgICMgd3JpdGUgdG8gdmlydHVhbCBmcwogICAgbXkgJFN1Y2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmlydHVhbEZTJyktPldyaXRlKAogICAgICAgIEZpbGVuYW1lICAgID0+ICIkQXR0YWNobWVudFR5cGUvJFBhcmFte1dvcmtPcmRlcklEfS8kUGFyYW17RmlsZW5hbWV9IiwKICAgICAgICBNb2RlICAgICAgICA9PiAnYmluYXJ5JywKICAgICAgICBDb250ZW50ICAgICA9PiBcJFBhcmFte0NvbnRlbnR9LAogICAgICAgIFByZWZlcmVuY2VzID0+IHsKICAgICAgICAgICAgQ29udGVudElEICAgPT4gJFBhcmFte0NvbnRlbnRJRH0sCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICRQYXJhbXtDb250ZW50VHlwZX0sCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtXb3JrT3JkZXJJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgY2hlY2sgZm9yIGVycm9yCiAgICBpZiAoJFN1Y2Nlc3MpIHsKCiAgICAgICAgIyB0cmlnZ2VyIEF0dGFjaG1lbnRBZGQtRXZlbnQKICAgICAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgICAgICBFdmVudCA9PiAkRXZlbnQsCiAgICAgICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNhbm5vdCBhZGQgYXR0YWNobWVudCBmb3Igd29ya29yZGVyICRQYXJhbXtXb3JrT3JkZXJJRH0iLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIFdvcmtPcmRlckF0dGFjaG1lbnREZWxldGUoKQoKRGVsZXRlIHRoZSBnaXZlbiBmaWxlIGZyb20gdGhlIHZpcnR1YWwgZmlsZXN5c3RlbS4KCiAgICBteSAkU3VjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckF0dGFjaG1lbnREZWxldGUoCiAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gMTIzNDUsCiAgICAgICAgV29ya09yZGVySUQgICAgPT4gNTEyMywKICAgICAgICBBdHRhY2htZW50VHlwZSA9PiAnV29ya09yZGVyJywgICAgICAgICAgICMgKCAnV29ya09yZGVyJyB8fCAnV29ya09yZGVyUmVwb3J0JykgIChvcHRpb25hbCwgZGVmYXVsdCAnV29ya09yZGVyJyApCiAgICAgICAgRmlsZW5hbWUgICAgICAgPT4gJ1Byb2plY3RwbGFuLnBkZicsICAgICAjIGlkZW50aWZpZXMgdGhlIGF0dGFjaG1lbnQgKHRvZ2V0aGVyIHdpdGggdGhlIFdvcmtPcmRlcklEKQogICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtPcmRlckF0dGFjaG1lbnREZWxldGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KENoYW5nZUlEIFdvcmtPcmRlcklEIEZpbGVuYW1lIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIFNldCBhdHRhY2htZW50IHR5cGUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBhdHRhY2htZW50cyBvZiB3b3Jrb3JkZXJzCiAgICAjIGFuZCB0aG9zZSBmcm9tIHJlcG9ydHMgb2Ygd29ya29yZGVycwogICAgbXkgJEF0dGFjaG1lbnRUeXBlID0gJFBhcmFte0F0dGFjaG1lbnRUeXBlfSB8fCAnV29ya09yZGVyJzsKCiAgICAjIHNldCBldmVudCBuYW1lIGJhc2VkIG9uIHRoZSBhdHRhY2htZW50IHR5cGUKICAgIG15ICRFdmVudDsKICAgIGlmICggJEF0dGFjaG1lbnRUeXBlIGVxICdXb3JrT3JkZXInICkgewogICAgICAgICRFdmVudCA9ICdXb3JrT3JkZXJBdHRhY2htZW50RGVsZXRlUG9zdCc7CiAgICB9CiAgICBlbHNpZiAoICRBdHRhY2htZW50VHlwZSBlcSAnV29ya09yZGVyUmVwb3J0JyApIHsKICAgICAgICAkRXZlbnQgPSAnV29ya09yZGVyUmVwb3J0QXR0YWNobWVudERlbGV0ZVBvc3QnOwogICAgfQoKICAgICMgYWRkIHByZWZpeAogICAgbXkgJEZpbGVuYW1lID0gIiRBdHRhY2htZW50VHlwZS8kUGFyYW17V29ya09yZGVySUR9LyRQYXJhbXtGaWxlbmFtZX0iOwoKICAgICMgZGVsZXRlIGZpbGUKICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZpcnR1YWxGUycpLT5EZWxldGUoCiAgICAgICAgRmlsZW5hbWUgPT4gJEZpbGVuYW1lLAogICAgKTsKCiAgICAjIGNoZWNrIGZvciBlcnJvcgogICAgaWYgKCRTdWNjZXNzKSB7CgogICAgICAgICMgdHJpZ2dlciBBdHRhY2htZW50RGVsZXRlUG9zdC1FdmVudAogICAgICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgICAgIEV2ZW50ID0+ICRFdmVudCwKICAgICAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICB9LAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQ2Fubm90IGRlbGV0ZSBhdHRhY2htZW50ICRGaWxlbmFtZSEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICByZXR1cm4gJFN1Y2Nlc3M7Cn0KCj1oZWFkMiBXb3JrT3JkZXJBdHRhY2htZW50R2V0KCkKClRoaXMgbWV0aG9kIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgb25lIHNwZWNpZmljIGF0dGFjaG1lbnQuCgogICAgbXkgJEF0dGFjaG1lbnQgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50R2V0KAogICAgICAgIFdvcmtPcmRlcklEICAgID0+IDQsCiAgICAgICAgQXR0YWNobWVudFR5cGUgPT4gJ1dvcmtPcmRlcicsICAgICMgKCAnV29ya09yZGVyJyB8fCAnV29ya09yZGVyUmVwb3J0JykgIChvcHRpb25hbCwgZGVmYXVsdCAnV29ya09yZGVyJyApCiAgICAgICAgRmlsZW5hbWUgICAgICAgPT4gJ3Rlc3QudHh0JywKICAgICk7CgpyZXR1cm5zCgogICAgJEF0dGFjaG1lbnQgPSB7CiAgICAgICAgUHJlZmVyZW5jZXMgPT4gewogICAgICAgICAgICBBbGxQcmVmZXJlbmNlcyA9PiAndGVzdCcsCiAgICAgICAgfSwKICAgICAgICBGaWxlbmFtZSAgICAgICA9PiAndGVzdC50eHQnLAogICAgICAgIENvbnRlbnQgICAgICAgID0+ICdoYWxsbycsCiAgICAgICAgQ29udGVudFR5cGUgICAgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgIEZpbGVzaXplICAgICAgID0+ICcxMjMgS0J5dGVzJywKICAgICAgICBUeXBlICAgICAgICAgICA9PiAnYXR0YWNobWVudCcsCiAgICAgICAgQXR0YWNobWVudFR5cGUgPT4gJ1dvcmtPcmRlcicsCiAgICB9OwoKPWN1dAoKc3ViIFdvcmtPcmRlckF0dGFjaG1lbnRHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoV29ya09yZGVySUQgRmlsZW5hbWUpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgU2V0IGF0dGFjaG1lbnQgdHlwZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGF0dGFjaG1lbnRzIG9mIHdvcmtvcmRlcnMKICAgICMgYW5kIHRob3NlIGZyb20gcmVwb3J0cyBvZiB3b3Jrb3JkZXJzCiAgICBteSAkQXR0YWNobWVudFR5cGUgPSAkUGFyYW17QXR0YWNobWVudFR5cGV9IHx8ICdXb3JrT3JkZXInOwoKICAgICMgYWRkIHByZWZpeAogICAgbXkgJEZpbGVuYW1lID0gJEF0dGFjaG1lbnRUeXBlIC4gJy8nIC4gJFBhcmFte1dvcmtPcmRlcklEfSAuICcvJyAuICRQYXJhbXtGaWxlbmFtZX07CgogICAgIyBmaW5kIGFsbCBhdHRhY2htZW50cyBvZiB0aGlzIHdvcmtvcmRlcgogICAgbXkgQEF0dGFjaG1lbnRzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZpcnR1YWxGUycpLT5GaW5kKAogICAgICAgIEZpbGVuYW1lICAgID0+ICRGaWxlbmFtZSwKICAgICAgICBQcmVmZXJlbmNlcyA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtXb3JrT3JkZXJJRH0sCiAgICAgICAgfSwKICAgICk7CgogICAgIyByZXR1cm4gZXJyb3IgaWYgZmlsZSBkb2VzIG5vdCBleGlzdAogICAgaWYgKCAhQEF0dGFjaG1lbnRzICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gc3VjaCBhdHRhY2htZW50ICgkRmlsZW5hbWUpISBNYXkgYmUgYW4gYXR0YWNrISEhIiwKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhIGZvciBhdHRhY2htZW50CiAgICBteSAlQXR0YWNobWVudERhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmlydHVhbEZTJyktPlJlYWQoCiAgICAgICAgRmlsZW5hbWUgPT4gJEZpbGVuYW1lLAogICAgICAgIE1vZGUgICAgID0+ICdiaW5hcnknLAogICAgKTsKCiAgICBteSAkQXR0YWNobWVudEluZm8gPSB7CiAgICAgICAgJUF0dGFjaG1lbnREYXRhLAogICAgICAgIEZpbGVuYW1lICAgICAgID0+ICRQYXJhbXtGaWxlbmFtZX0sCiAgICAgICAgQ29udGVudCAgICAgICAgPT4gJHsgJEF0dGFjaG1lbnREYXRhe0NvbnRlbnR9IH0sCiAgICAgICAgQ29udGVudFR5cGUgICAgPT4gJEF0dGFjaG1lbnREYXRhe1ByZWZlcmVuY2VzfS0+e0NvbnRlbnRUeXBlfSwKICAgICAgICBUeXBlICAgICAgICAgICA9PiAnYXR0YWNobWVudCcsCiAgICAgICAgRmlsZXNpemUgICAgICAgPT4gJEF0dGFjaG1lbnREYXRhe1ByZWZlcmVuY2VzfS0+e0ZpbGVzaXplUmF3fSwKICAgICAgICBBdHRhY2htZW50VHlwZSA9PiAkQXR0YWNobWVudFR5cGUsCiAgICB9OwoKICAgIHJldHVybiAkQXR0YWNobWVudEluZm87Cn0KCj1oZWFkMiBXb3JrT3JkZXJBdHRhY2htZW50TGlzdCgpCgpSZXR1cm5zIGFuIGFycmF5IHdpdGggYWxsIEM8d29ya29yZGVyPiBhdHRhY2htZW50cyAobm90IHRoZSByZXBvcnQgYXR0YWNobWVudHMpIG9mIHRoZSBnaXZlbiBDPHdvcmtvcmRlcj4uCgogICAgbXkgQEF0dGFjaG1lbnRzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyQXR0YWNobWVudExpc3QoCiAgICAgICAgV29ya09yZGVySUQgPT4gMTIzLAogICAgKTsKCnJldHVybnMKCiAgICBAQXR0YWNobWVudHMgPSAoCiAgICAgICAgJ2ZpbGVuYW1lLnR4dCcsCiAgICAgICAgJ290aGVyX2ZpbGUucGRmJywKICAgICk7Cgo9Y3V0CgpzdWIgV29ya09yZGVyQXR0YWNobWVudExpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1dvcmtPcmRlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgV29ya09yZGVySUQhJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBmaW5kIGFsbCBhdHRhY2htZW50cyBvZiB0aGlzIHdvcmtvcmRlcgogICAgbXkgQEF0dGFjaG1lbnRzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZpcnR1YWxGUycpLT5GaW5kKAogICAgICAgIFByZWZlcmVuY2VzID0+IHsKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFBhcmFte1dvcmtPcmRlcklEfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGV4dHJhY3Qgb25seSB0aGUgd29ya29yZGVyIGF0dGFjaG1lbnRzCiAgICBteSBAV29ya09yZGVyQXR0YWNobWVudHM7CiAgICBGSUxFTkFNRToKICAgIGZvciBteSAkRmlsZW5hbWUgKEBBdHRhY2htZW50cykgewoKICAgICAgICBuZXh0IEZJTEVOQU1FIGlmICRGaWxlbmFtZSAhfiBteyBcQSBXb3JrT3JkZXIgLyBcZCsgLyB9eG1zOwoKICAgICAgICAjIHJlbW92ZSBleHRyYSBpbmZvcm1hdGlvbiBmcm9tIGZpbGVuYW1lCiAgICAgICAgJEZpbGVuYW1lID1+IHN7IFxBIFdvcmtPcmRlciAvIFxkKyAvIH17fXhtczsKCiAgICAgICAgcHVzaCBAV29ya09yZGVyQXR0YWNobWVudHMsICRGaWxlbmFtZTsKICAgIH0KCiAgICByZXR1cm4gQFdvcmtPcmRlckF0dGFjaG1lbnRzOwp9Cgo9aGVhZDIgV29ya09yZGVyUmVwb3J0QXR0YWNobWVudExpc3QoKQoKUmV0dXJucyBhbiBhcnJheSB3aXRoIGFsbCByZXBvcnQgYXR0YWNobWVudHMgb2YgdGhlIGdpdmVuIEM8d29ya29yZGVyPi4KCiAgICBteSBAQXR0YWNobWVudHMgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJSZXBvcnRBdHRhY2htZW50TGlzdCgKICAgICAgICBXb3JrT3JkZXJJRCA9PiAxMjMsCiAgICApOwoKcmV0dXJucwoKICAgIEBBdHRhY2htZW50cyA9ICgKICAgICAgICAnZmlsZW5hbWUudHh0JywKICAgICAgICAnb3RoZXJfZmlsZS5wZGYnLAogICAgKTsKCj1jdXQKCnN1YiBXb3JrT3JkZXJSZXBvcnRBdHRhY2htZW50TGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17V29ya09yZGVySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBXb3JrT3JkZXJJRCEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGZpbmQgYWxsIGF0dGFjaG1lbnRzIG9mIHRoaXMgd29ya29yZGVyCiAgICBteSBAQXR0YWNobWVudHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmlydHVhbEZTJyktPkZpbmQoCiAgICAgICAgUHJlZmVyZW5jZXMgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkUGFyYW17V29ya09yZGVySUR9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgZXh0cmFjdCBvbmx5IHRoZSByZXBvcnQgYXR0YWNobWVudHMKICAgIG15IEBSZXBvcnRBdHRhY2htZW50czsKICAgIEZJTEVOQU1FOgogICAgZm9yIG15ICRGaWxlbmFtZSAoQEF0dGFjaG1lbnRzKSB7CgogICAgICAgIG5leHQgRklMRU5BTUUgaWYgJEZpbGVuYW1lICF+IG17IFxBIFdvcmtPcmRlclJlcG9ydCAvIFxkKyAvIH14bXM7CgogICAgICAgICMgcmVtb3ZlIGV4dHJhIGluZm9ybWF0aW9uIGZyb20gZmlsZW5hbWUKICAgICAgICAkRmlsZW5hbWUgPX4gc3sgXEEgV29ya09yZGVyUmVwb3J0IC8gXGQrIC8gfXt9eG1zOwoKICAgICAgICBwdXNoIEBSZXBvcnRBdHRhY2htZW50cywgJEZpbGVuYW1lOwoKICAgIH0KCiAgICByZXR1cm4gQFJlcG9ydEF0dGFjaG1lbnRzOwp9Cgo9aGVhZDIgV29ya09yZGVyQXR0YWNobWVudEV4aXN0cygpCgpDaGVja3MgaWYgYSBmaWxlIHdpdGggYSBnaXZlbiBmaWxlbmFtZSBleGlzdHMuCgogICAgbXkgJEV4aXN0cyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckF0dGFjaG1lbnRFeGlzdHMoCiAgICAgICAgRmlsZW5hbWUgICAgICAgPT4gJ3Rlc3QudHh0JywKICAgICAgICBXb3JrT3JkZXJJRCAgICA9PiAxMjMsCiAgICAgICAgQXR0YWNobWVudFR5cGUgPT4gJ1dvcmtPcmRlcicsICAgICMgKCAnV29ya09yZGVyJyB8fCAnV29ya09yZGVyUmVwb3J0JykgIChvcHRpb25hbCwgZGVmYXVsdCAnV29ya09yZGVyJyApCiAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgV29ya09yZGVyQXR0YWNobWVudEV4aXN0cyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoRmlsZW5hbWUgV29ya09yZGVySUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIFNldCBhdHRhY2htZW50IHR5cGUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBhdHRhY2htZW50cyBvZiB3b3Jrb3JkZXJzCiAgICAjIGFuZCB0aG9zZSBmcm9tIHJlcG9ydHMgb2Ygd29ya29yZGVycwogICAgbXkgJEF0dGFjaG1lbnRUeXBlID0gJFBhcmFte0F0dGFjaG1lbnRUeXBlfSB8fCAnV29ya09yZGVyJzsKCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWaXJ0dWFsRlMnKS0+RmluZCgKICAgICAgICBGaWxlbmFtZSA9PiAkQXR0YWNobWVudFR5cGUgLiAnLycgLiAkUGFyYW17V29ya09yZGVySUR9IC4gJy8nIC4gJFBhcmFte0ZpbGVuYW1lfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBXb3JrT3JkZXJDaGFuZ2VFZmZvcnRzR2V0KCkKCnJldHVybnMgdGhlIGNvbWJpbmVkIGVmZm9ydHMgb2YgdGhlIEM8d29ya29yZGVycz4gZm9yIHRoZSBnaXZlbiBjaGFuZ2UKCiAgICBteSAkQ2hhbmdlRWZmb3J0cyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckNoYW5nZUVmZm9ydHNHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtPcmRlckNoYW5nZUVmZm9ydHNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBdHRyaWJ1dGUgKHF3KENoYW5nZUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEF0dHJpYnV0ZX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBdHRyaWJ1dGUhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGluaXRpYWxpemUgdGhlIHJldHVybiB0aW1lIGhhc2gKICAgIG15ICVDaGFuZ2VFZmZvcnRzOwoKICAgICMgY2hlY2sgY2FjaGUKICAgIG15ICRDYWNoZUtleSA9ICdXb3JrT3JkZXJDaGFuZ2VFZmZvcnRzR2V0OjpDaGFuZ2VJRDo6JyAuICRQYXJhbXtDaGFuZ2VJRH07CiAgICBteSAkQ2FjaGUgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5LAogICAgKTsKCiAgICBpZiAoJENhY2hlKSB7CgogICAgICAgICMgZ2V0IGRhdGEgZnJvbSBjYWNoZQogICAgICAgICVDaGFuZ2VFZmZvcnRzID0gJXskQ2FjaGV9OwoKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGJ1aWxkIHNxbCwgdXNpbmcgbWluIGFuZCBtYXggZnVuY3Rpb25zCiAgICAgICAgbXkgJFNRTCA9ICdTRUxFQ1QgJwogICAgICAgICAgICAuICdTVU0oIHBsYW5uZWRfZWZmb3J0ICksIFNVTSggYWNjb3VudGVkX3RpbWUgKSAnCiAgICAgICAgICAgIC4gJ0ZST00gY2hhbmdlX3dvcmtvcmRlciAnCiAgICAgICAgICAgIC4gJ1dIRVJFIGNoYW5nZV9pZCA9ID8nOwoKICAgICAgICAjIHJldHJpZXZlIHRoZSByZXF1ZXN0ZWQgdGltZQogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCAgID0+ICRTUUwsCiAgICAgICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtDaGFuZ2VJRH0gXSwKICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAkQ2hhbmdlRWZmb3J0c3tQbGFubmVkRWZmb3J0fSA9ICRSb3dbMF0gfHwgJyc7CiAgICAgICAgICAgICRDaGFuZ2VFZmZvcnRze0FjY291bnRlZFRpbWV9ID0gJFJvd1sxXSB8fCAnJzsKICAgICAgICB9CgogICAgICAgIEFUVFJJQlVURToKICAgICAgICBmb3IgbXkgJEF0dHJpYnV0ZSAocXcoUGxhbm5lZEVmZm9ydCBBY2NvdW50ZWRUaW1lKSkgewoKICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgISRDaGFuZ2VFZmZvcnRzeyRBdHRyaWJ1dGV9OwoKICAgICAgICAgICAgIyBkbyBub3Qgc2hvdyB6ZXJvIHZhbHVlcwogICAgICAgICAgICBpZiAoICRDaGFuZ2VFZmZvcnRzeyRBdHRyaWJ1dGV9IGVxIDAgKSB7CiAgICAgICAgICAgICAgICAkQ2hhbmdlRWZmb3J0c3skQXR0cmlidXRlfSA9ICcnOwogICAgICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY29udmVydCBkZWNpbWFsIGNoYXJhY3RlciBmcm9tICcsJyB0byAnLicgaWYgbmVjY2Vzc2FyeQogICAgICAgICAgICAkQ2hhbmdlRWZmb3J0c3skQXR0cmlidXRlfSA9fiBzeyx9ey59eG1zZzsKCiAgICAgICAgICAgICMgZm9ybWF0IGFzIGRlY2ltYWwgbnVtYmVyCiAgICAgICAgICAgICRDaGFuZ2VFZmZvcnRzeyRBdHRyaWJ1dGV9ID0gc3ByaW50ZiAnJS4yZicsICRDaGFuZ2VFZmZvcnRzeyRBdHRyaWJ1dGV9OwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgY2FjaGUKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+U2V0KAogICAgICAgICAgICBUeXBlICA9PiAnSVRTTUNoYW5nZU1hbmFnZW1lbnQnLAogICAgICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXksCiAgICAgICAgICAgIFZhbHVlID0+IFwlQ2hhbmdlRWZmb3J0cywKICAgICAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gXCVDaGFuZ2VFZmZvcnRzOwp9CgpzdWIgREVTVFJPWSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgZXhlY3V0ZSBhbGwgdHJhbnNhY3Rpb24gZXZlbnRzCiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyVHJhbnNhY3Rpb24oKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQxIFBSSVZBVEUgSU5URVJGQUNFCgo9aGVhZDIgX0NoZWNrV29ya09yZGVyVHlwZUlEcygpCgpjaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBDPHdvcmtvcmRlcj4gdHlwZSBpZHMgYXJlIGFsbCB2YWxpZAoKICAgIG15ICRPayA9ICRXb3JrT3JkZXJPYmplY3QtPl9DaGVja1dvcmtPcmRlclR5cGVJRHMoCiAgICAgICAgV29ya09yZGVyVHlwZUlEcyA9PiBbIDIsIDUwMCBdLAogICAgKTsKCj1jdXQKCnN1YiBfQ2hlY2tXb3JrT3JkZXJUeXBlSURzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtXb3JrT3JkZXJUeXBlSURzfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgV29ya09yZGVyVHlwZUlEcyEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoIHJlZiAkUGFyYW17V29ya09yZGVyVHlwZUlEc30gbmUgJ0FSUkFZJyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1RoZSBwYXJhbSBXb3JrT3JkZXJUeXBlSURzIG11c3QgYmUgYW4gQVJSQVkgcmVmZXJlbmNlIScsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgaWYgV29ya09yZGVyVHlwZUlEcyBiZWxvbmdzIHRvIGNvcnJlY3QgZ2VuZXJhbCBjYXRhbG9nIGNsYXNzCiAgICBmb3IgbXkgJFR5cGVJRCAoIEB7ICRQYXJhbXtXb3JrT3JkZXJUeXBlSURzfSB9ICkgewogICAgICAgIG15ICRUeXBlID0gJFNlbGYtPldvcmtPcmRlclR5cGVMb29rdXAoCiAgICAgICAgICAgIFdvcmtPcmRlclR5cGVJRCA9PiAkVHlwZUlELAogICAgICAgICk7CgogICAgICAgIGlmICggISRUeXBlICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIHR5cGUgaWQgJFR5cGVJRCBpcyBub3QgdmFsaWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfR2V0V29ya09yZGVyTnVtYmVyKCkKCkdldCBhIG5ldyB1bnVzZWQgQzx3b3Jrb3JkZXI+IG51bWJlciBmb3IgdGhlIGdpdmVuIGNoYW5nZS4KVGhlIGhpZ2hlc3QgY3VycmVudCBDPHdvcmtvcmRlcj4gbnVtYmVyIGZvciB0aGUgZ2l2ZW4gY2hhbmdlIGlzCmxvb2tlZCB1cCBhbmQgaW5jcmVtZW50ZWQgYnkgb25lLgoKICAgIG15ICRXb3JrT3JkZXJOdW1iZXIgPSAkV29ya09yZGVyT2JqZWN0LT5fR2V0V29ya09yZGVyTnVtYmVyKAogICAgICAgIENoYW5nZUlEID0+IDIsCiAgICApOwoKPWN1dAoKc3ViIF9HZXRXb3JrT3JkZXJOdW1iZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0NoYW5nZUlEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ2hhbmdlSUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCB0aGUgbGFyZ2VzdCB3b3Jrb3JkZXIgbnVtYmVyCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIE1BWCh3b3Jrb3JkZXJfbnVtYmVyKSAnCiAgICAgICAgICAgIC4gJ0ZST00gY2hhbmdlX3dvcmtvcmRlciAnCiAgICAgICAgICAgIC4gJ1dIRVJFIGNoYW5nZV9pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtDaGFuZ2VJRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQsIGRlZmF1bHQgdG8gMCB3aGVuIHRoZXJlIGFyZSBubyB3b3Jrb3JkZXJzIHlldAogICAgbXkgJFdvcmtPcmRlck51bWJlcjsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFdvcmtPcmRlck51bWJlciA9ICRSb3dbMF07CiAgICB9CiAgICAkV29ya09yZGVyTnVtYmVyIHx8PSAwOwoKICAgICMgaW5jcmVtZW50IG51bWJlciB0byBnZXQgYSBub24tZXhpc3RlbnQgd29ya29yZGVyIG51bWJlcgogICAgJFdvcmtPcmRlck51bWJlcisrOwoKICAgIHJldHVybiAkV29ya09yZGVyTnVtYmVyOwp9Cgo9aGVhZDIgX0NoZWNrV29ya09yZGVyUGFyYW1zKCkKCkNoZWNrcyB0aGUgcGFyYW1zIHRvIFdvcmtPcmRlckFkZCgpIGFuZCBXb3JrT3JkZXJVcGRhdGUoKS4KVGhlcmUgYXJlIG5vIHJlcXVpcmVkIHBhcmFtZXRlcnMuClRoZSB2YWx1ZSBmb3IgQzxXb3JrT3JkZXJBZ2VudElEPiBjYW4gYmUgdW5kZWZpbmVkLgoKICAgIG15ICRPayA9ICRXb3JrT3JkZXJPYmplY3QtPl9DaGVja1dvcmtPcmRlclBhcmFtcygKICAgICAgICBDaGFuZ2VJRCAgICAgICAgICAgPT4gMTIzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFdvcmtPcmRlck51bWJlciAgICA9PiA1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgV29ya09yZGVyVGl0bGUgICAgID0+ICdSZXBsYWNlbWVudCBvZiBtYWlsIHNlcnZlcicsICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBJbnN0cnVjdGlvbiAgICAgICAgPT4gJ0luc3RhbGwgdGhlIDxiPm5ldzwvYj4gc2VydmVyJywgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIEluc3RydWN0aW9uUGxhaW4gICA9PiAnSW5zdGFsbCB0aGUgbmV3IHNlcnZlcicsICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgUmVwb3J0ICAgICAgICAgICAgID0+ICdJbnN0YWxsZWQgbmV3IHNlcnZlciA8Yj53aXRob3V0PC9iPiBwcm9ibGVtcycsICAjIChvcHRpb25hbCkKICAgICAgICBSZXBvcnRQbGFpbiAgICAgICAgPT4gJ0luc3RhbGxlZCBuZXcgc2VydmVyIHdpdGhvdXQgcHJvYmxlbXMnLCAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFdvcmtPcmRlclN0YXRlSUQgICA9PiA0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgV29ya09yZGVyVHlwZUlEICAgID0+IDEyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBXb3JrT3JkZXJBZ2VudElEICAgPT4gOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSB1bmRlZiBpcyBhbGxvd2VkCiAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSAgID0+ICcyMDA5LTEwLTAxIDEwOjMzOjAwJywgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBBY3R1YWxTdGFydFRpbWUgICAgPT4gJzIwMDktMTAtMDEgMTA6MzM6MDAnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFBsYW5uZWRFbmRUaW1lICAgICA9PiAnMjAwOS0xMC0wMSAxMDozMzowMCcsICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgQWN0dWFsRW5kVGltZSAgICAgID0+ICcyMDA5LTEwLTAxIDEwOjMzOjAwJywgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBEeW5hbWljRmllbGRfWCAgICAgPT4gJ1N1bicsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIER5bmFtaWNGaWVsZF9ZICAgICA9PiAnRWFydGgnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgKTsKClRoZXNlIHN0cmluZyBwYXJhbWV0ZXJzIGhhdmUgbGVuZ3RoIGNvbnN0cmFpbnRzOgoKICAgIFBhcmFtZXRlciAgICAgICAgfCBtYXguIGxlbmd0aAogICAgLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KICAgIFdvcmtPcmRlclRpdGxlICAgICAgfCAgMjUwIGNoYXJhY3RlcnMKICAgIEluc3RydWN0aW9uICAgICAgICAgfCAxODAwMDAwIGNoYXJhY3RlcnMKICAgIEluc3RydWN0aW9uUGxhaW4gICAgfCAxODAwMDAwIGNoYXJhY3RlcnMKICAgIFJlcG9ydCAgICAgICAgICAgICAgfCAxODAwMDAwIGNoYXJhY3RlcnMKICAgIFJlcG9ydFBsYWluICAgICAgICAgfCAxODAwMDAwIGNoYXJhY3RlcnMKICAgIER5bmFtaWNGaWVsZF9YICAgICAgfCAzODAwIGNoYXJhY3RlcnMKICAgIER5bmFtaWNGaWVsZF9ZICAgICAgfCAzODAwIGNoYXJhY3RlcnMKCj1jdXQKCnN1YiBfQ2hlY2tXb3JrT3JkZXJQYXJhbXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIHRoZSBzdHJpbmcgYW5kIGlkIHBhcmFtZXRlcnMKICAgIEFSR1VNRU5UOgogICAgZm9yIG15ICRBcmd1bWVudCAoCiAgICAgICAgcXcoCiAgICAgICAgV29ya09yZGVyVGl0bGUKICAgICAgICBJbnN0cnVjdGlvbgogICAgICAgIEluc3RydWN0aW9uUGxhaW4KICAgICAgICBSZXBvcnQKICAgICAgICBSZXBvcnRQbGFpbgogICAgICAgIFdvcmtPcmRlckFnZW50SUQKICAgICAgICBXb3JrT3JkZXJTdGF0ZUlECiAgICAgICAgV29ya09yZGVyVHlwZUlECiAgICAgICAgV29ya09yZGVyTnVtYmVyCiAgICAgICAgQ2hhbmdlSUQKICAgICAgICApCiAgICAgICAgKQogICAgewoKICAgICAgICAjIHBhcmFtcyBhcmUgbm90IHJlcXVpcmVkCiAgICAgICAgbmV4dCBBUkdVTUVOVCBpZiAhZXhpc3RzICRQYXJhbXskQXJndW1lbnR9OwoKICAgICAgICAjIGNoZWNrIGlmIHBhcmFtIGlzIG5vdCBkZWZpbmVkCiAgICAgICAgaWYgKCAkQXJndW1lbnQgZXEgJ1dvcmtPcmRlckFnZW50SUQnICYmICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewoKICAgICAgICAgICAgIyBXb3JrT3JkZXJBZ2VudElEIGNhbiBiZSB1bmRlZmluZWQKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBwYXJhbWV0ZXIgJyRBcmd1bWVudCcgbXVzdCBiZSBkZWZpbmVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgcGFyYW0gaXMgbm90IGEgcmVmZXJlbmNlCiAgICAgICAgaWYgKCByZWYgJFBhcmFteyRBcmd1bWVudH0gbmUgJycgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgcGFyYW1ldGVyICckQXJndW1lbnQnIG11c3RuJ3QgYmUgYSByZWZlcmVuY2UhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGl0bGUKICAgICAgICBpZiAoICRBcmd1bWVudCBlcSAnV29ya09yZGVyVGl0bGUnICYmIGxlbmd0aCggJFBhcmFteyRBcmd1bWVudH0gKSA+IDI1MCApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBwYXJhbWV0ZXIgJyRBcmd1bWVudCcgbXVzdCBiZSBzaG9ydGVyIHRoYW4gMjUwIGNoYXJhY3RlcnMhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayB0aGUgbWF4aW11bSBsZW5ndGggb2YgZGVzY3JpcHRpb24gYW5kIGp1c3RpZmljYXRpb24KICAgICAgICBpZiAoCiAgICAgICAgICAgICRBcmd1bWVudCBlcSAnSW5zdHJ1Y3Rpb24nCiAgICAgICAgICAgIHx8ICRBcmd1bWVudCBlcSAnSW5zdHJ1Y3Rpb25QbGFpbicKICAgICAgICAgICAgfHwgJEFyZ3VtZW50IGVxICdSZXBvcnQnCiAgICAgICAgICAgIHx8ICRBcmd1bWVudCBlcSAnUmVwb3J0UGxhaW4nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIGlmICggbGVuZ3RoKCAkUGFyYW17JEFyZ3VtZW50fSApID4gMTgwMDAwMCApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBwYXJhbWV0ZXIgJyRBcmd1bWVudCcgbXVzdCBiZSBzaG9ydGVyIHRoYW4gMTgwMDAwMCBjaGFyYWN0ZXJzISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgdGltZSBmb3JtYXRzCiAgICBPUFRJT046CiAgICBmb3IgbXkgJE9wdGlvbiAocXcoUGxhbm5lZFN0YXJ0VGltZSBQbGFubmVkRW5kVGltZSBBY3R1YWxTdGFydFRpbWUgQWN0dWFsRW5kVGltZSkpIHsKCiAgICAgICAgbmV4dCBPUFRJT04gaWYgISRQYXJhbXskT3B0aW9ufTsKCiAgICAgICAgaWYgKCAkUGFyYW17JE9wdGlvbn0gIX4gbXsgXEEgXGRcZFxkXGQtXGRcZC1cZFxkIFxzIFxkXGQ6XGRcZDpcZFxkIFx6IH14bXMgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJXcm9uZyB0aW1lIGZvcm1hdCBmb3IgJE9wdGlvbjogJyRQYXJhbXskT3B0aW9ufSchIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHdvcmtvcmRlciBhZ2VudAogICAgaWYgKCBleGlzdHMgJFBhcmFte1dvcmtPcmRlckFnZW50SUR9ICYmIGRlZmluZWQgJFBhcmFte1dvcmtPcmRlckFnZW50SUR9ICkgewoKICAgICAgICAjIFdvcmtPcmRlckFnZW50IG11c3QgYmUgYW4gYWdlbnQKICAgICAgICBteSAlVXNlckRhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtXb3JrT3JkZXJBZ2VudElEfSwKICAgICAgICAgICAgVmFsaWQgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJFVzZXJEYXRhe1VzZXJJRH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgV29ya09yZGVyQWdlbnQgJFBhcmFte1dvcmtPcmRlckFnZW50SUR9IGlzIG5vdCBhIHZhbGlkIHVzZXIgaWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHRoZSB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMKICAgIEtFWToKICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVQYXJhbSApIHsKCiAgICAgICAgbmV4dCBLRVkgaWYgJEtleSAhfiBteyBcQSBEeW5hbWljRmllbGRfKC4qKSBceiB9eG1zOwoKICAgICAgICAjIHBhcmFtcyBhcmUgbm90IHJlcXVpcmVkCiAgICAgICAgbmV4dCBLRVkgaWYgIWV4aXN0cyAkUGFyYW17JEtleX07CgogICAgICAgICMgY2hlY2sgaWYgcGFyYW0gaXMgbm90IGRlZmluZWQKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskS2V5fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBwYXJhbWV0ZXIgJyRLZXknIG11c3QgYmUgZGVmaW5lZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBkeW5hbWljIGZpZWxkcwogICAgICAgIGlmICggbGVuZ3RoKCAkUGFyYW17JEtleX0gKSA+IDM4MDAgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgcGFyYW1ldGVyICckS2V5JyBtdXN0IGJlIHNob3J0ZXIgdGhhbiAzODAwIGNoYXJhY3RlcnMhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIGdpdmVuIFdvcmtPcmRlclN0YXRlSUQgaXMgdmFsaWQKICAgIGlmICggZXhpc3RzICRQYXJhbXtXb3JrT3JkZXJTdGF0ZUlEfSApIHsKICAgICAgICByZXR1cm4gaWYgISRTZWxmLT5Xb3JrT3JkZXJTdGF0ZUlEc0NoZWNrKAogICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEcyA9PiBbICRQYXJhbXtXb3JrT3JkZXJTdGF0ZUlEfSBdLAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayBpZiBnaXZlbiBXb3JrT3JkZXJUeXBlSUQgaXMgdmFsaWQKICAgIGlmICggZXhpc3RzICRQYXJhbXtXb3JrT3JkZXJUeXBlSUR9ICkgewogICAgICAgIHJldHVybiBpZiAhJFNlbGYtPl9DaGVja1dvcmtPcmRlclR5cGVJRHMoCiAgICAgICAgICAgIFdvcmtPcmRlclR5cGVJRHMgPT4gWyAkUGFyYW17V29ya09yZGVyVHlwZUlEfSBdLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfQ2hlY2tUaW1lc3RhbXBzKCkKCkNoZWNrcyB0aGUgY29uc3RyYWludHMgb2YgdGltZXN0YW1wczogQzx4eHhTdGFydFRpbWU+IG11c3QgYmUgYmVmb3JlIEM8eHh4RW5kVGltZT4KCiAgICBteSAkT2sgPSAkV29ya09yZGVyT2JqZWN0LT5fQ2hlY2tUaW1lc3RhbXBzKAogICAgICAgIFdvcmtPcmRlckRhdGEgICAgPT4gJFdvcmtPcmRlckRhdGEsCiAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnMjAwOS0xMC0xMiAwMDowMDowMScsICAgICAjIChvcHRpb25hbCkgb3IgdW5kZWYKICAgICAgICBQbGFubmVkRW5kVGltZSAgID0+ICcyMDA5LTEwLTE1IDE1OjAwOjAwJywgICAgICMgKG9wdGlvbmFsKSBvciB1bmRlZgogICAgICAgIEFjdHVhbFN0YXJ0VGltZSAgPT4gJzIwMDktMTAtMTQgMDA6MDA6MDEnLCAgICAgIyAob3B0aW9uYWwpIG9yIHVuZGVmCiAgICAgICAgQWN0dWFsRW5kVGltZSAgICA9PiAnMjAwOS0wMS0yMCAwMDowMDowMScsICAgICAjIChvcHRpb25hbCkgb3IgdW5kZWYKICAgICk7CgpJZiBQbGFubmVkU3RhcnRUaW1lIGlzIGdpdmVuLCBQbGFubmVkRW5kVGltZSBoYXMgdG8gYmUgZ2l2ZW4sIHRvbyAtIGFuZCB2aWNlIHZlcnNhLgpJZiBBY3R1YWxTdGFydFRpbWUgaXMgZ2l2ZW4gQWN0dWFsRW5kVGltZSBpcyBvcHRpb25hbC4KQnV0IGlmIEFjdHVhbEVuZFRpbWUgaXMgZ2l2ZW4gdGhlbiBBY3R1YWxTdGFydFRpbWUgaGFzIHRvIGJlIGdpdmVuLCB0b28uCldvcmtPcmRlckRhdGEgaXMgb25seSBwYXNzZWQgZm9yIGltcHJvdmluZyB0aGUgcGVyZm9ybWFuY2UuCgo9Y3V0CgpzdWIgX0NoZWNrVGltZXN0YW1wcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhXb3JrT3JkZXJEYXRhKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRGVmYXVsdFRpbWVTdGFtcCA9ICc5OTk5LTAxLTAxIDAwOjAwOjAwJzsKCiAgICAjIGNoZWNrIHRpbWVzCiAgICBUWVBFOgogICAgZm9yIG15ICRUeXBlIChxdyhBY3R1YWwgUGxhbm5lZCkpIHsKCiAgICAgICAgIyBjaGVjayBvbmx5IHdoZW4gYSBzdGFydCBvciBhIGVuZCB0aW1lIGlzIGdpdmVuCiAgICAgICAgaWYgKCAhZXhpc3RzICRQYXJhbXsgJFR5cGUgLiAnU3RhcnRUaW1lJyB9ICYmICFleGlzdHMgJFBhcmFteyAkVHlwZSAuICdFbmRUaW1lJyB9ICkgewogICAgICAgICAgICBuZXh0IFRZUEU7CiAgICAgICAgfQoKICAgICAgICAjIGZvciB0aGUgbG9nIG1lc3NhZ2VzCiAgICAgICAgbXkgJFR5cGVMYyA9IGxjICRUeXBlOwoKICAgICAgICBteSAkU3RhcnRUaW1lID0gJyc7CiAgICAgICAgaWYgKCAhZXhpc3RzICRQYXJhbXsgJFR5cGUgLiAnU3RhcnRUaW1lJyB9ICkgewoKICAgICAgICAgICAgIyBpZiBhIHRpbWUgaXMgbm90IGdpdmVuLCBnZXQgaXQgZnJvbSB0aGUgd29ya29yZGVyCiAgICAgICAgICAgICRTdGFydFRpbWUgPSAkUGFyYW17V29ya09yZGVyRGF0YX0tPnsgJFR5cGUgLiAnU3RhcnRUaW1lJyB9OwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICFkZWZpbmVkICRQYXJhbXsgJFR5cGUgLiAnU3RhcnRUaW1lJyB9ICkgewoKICAgICAgICAgICAgIyBzcGVjaWFsIGNhc2UgZm9yIGNsZWFyaW5nIHRoZSB0aW1lCiAgICAgICAgICAgICRTdGFydFRpbWUgPSAkRGVmYXVsdFRpbWVTdGFtcDsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAhJFBhcmFteyAkVHlwZSAuICdTdGFydFRpbWUnIH0gKSB7CgogICAgICAgICAgICAjIGlmIGEgdGltZSBpcyBub3QgZ2l2ZW4sIGdldCBpdCBmcm9tIHRoZSB3b3Jrb3JkZXIKICAgICAgICAgICAgJFN0YXJ0VGltZSA9ICRQYXJhbXtXb3JrT3JkZXJEYXRhfS0+eyAkVHlwZSAuICdTdGFydFRpbWUnIH07CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFBhcmFteyAkVHlwZSAuICdTdGFydFRpbWUnIH0gZXEgJERlZmF1bHRUaW1lU3RhbXAgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgdmFsdWUgJFN0YXJ0VGltZSBpcyBpbnZhbGlkIGZvciB0aGUgJFR5cGVMYyBzdGFydCB0aW1lISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTdGFydFRpbWUgPSAkUGFyYW17ICRUeXBlIC4gJ1N0YXJ0VGltZScgfTsKICAgICAgICB9CgogICAgICAgIG15ICRFbmRUaW1lID0gJyc7CiAgICAgICAgaWYgKCAhZXhpc3RzICRQYXJhbXsgJFR5cGUgLiAnRW5kVGltZScgfSApIHsKCiAgICAgICAgICAgICMgaWYgYSB0aW1lIGlzIG5vdCBnaXZlbiwgZ2V0IGl0IGZyb20gdGhlIHdvcmtvcmRlcgogICAgICAgICAgICAkRW5kVGltZSA9ICRQYXJhbXtXb3JrT3JkZXJEYXRhfS0+eyAkVHlwZSAuICdFbmRUaW1lJyB9OwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICFkZWZpbmVkICRQYXJhbXsgJFR5cGUgLiAnRW5kVGltZScgfSApIHsKCiAgICAgICAgICAgICMgc3BlY2lhbCBjYXNlIGZvciBjbGVhcmluZyB0aGUgdGltZQogICAgICAgICAgICAkRW5kVGltZSA9ICREZWZhdWx0VGltZVN0YW1wOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICEkUGFyYW17ICRUeXBlIC4gJ0VuZFRpbWUnIH0gKSB7CgogICAgICAgICAgICAjIGlmIGEgdGltZSBpcyBub3QgZ2l2ZW4sIGdldCBpdCBmcm9tIHRoZSB3b3Jrb3JkZXIKICAgICAgICAgICAgJEVuZFRpbWUgPSAkUGFyYW17V29ya09yZGVyRGF0YX0tPnsgJFR5cGUgLiAnRW5kVGltZScgfTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAkUGFyYW17ICRUeXBlIC4gJ0VuZFRpbWUnIH0gZXEgJERlZmF1bHRUaW1lU3RhbXAgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgdmFsdWUgJEVuZFRpbWUgaXMgaW52YWxpZCBmb3IgdGhlICRUeXBlTGMgZW5kIHRpbWUhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJEVuZFRpbWUgPSAkUGFyYW17ICRUeXBlIC4gJ0VuZFRpbWUnIH07CiAgICAgICAgfQoKICAgICAgICAjIGRvbid0IGNoZWNrIGFjdHVhbCBzdGFydCB0aW1lIHdoZW4gdGhlIHdvcmtvcmRlciBoYXMgbm90IGVuZGVkIHlldAogICAgICAgIGlmICggJFR5cGUgZXEgJ0FjdHVhbCcgJiYgJFN0YXJ0VGltZSAmJiAhJEVuZFRpbWUgKSB7CiAgICAgICAgICAgIG5leHQgVFlQRTsKICAgICAgICB9CgogICAgICAgICMgdGhlIGNoZWNrIGZhaWxzIGlmIG5vdCBib3RoIChzdGFydCBhbmQgZW5kKSB0aW1lcyBhcmUgcHJlc2VudAogICAgICAgIGlmICggISRTdGFydFRpbWUgfHwgISRFbmRUaW1lICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiJFR5cGUgc3RhcnQgdGltZSBhbmQgJFR5cGVMYyBlbmQgdGltZSBtdXN0IGJlIGdpdmVuISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgdGhlIG9yZGVyaW5nIG9mIHRoZSB0aW1lcywgb25seSBpbiB0aGUgbm9uLWRlZmF1bHQtY2FzZQogICAgICAgIGlmICggJFN0YXJ0VGltZSBuZSAkRGVmYXVsdFRpbWVTdGFtcCAmJiAkRW5kVGltZSBuZSAkRGVmYXVsdFRpbWVTdGFtcCApIHsKCiAgICAgICAgICAgICMgcmVtb3ZlIGFsbCBub24tZGlnaXQgY2hhcmFjdGVycwogICAgICAgICAgICAkU3RhcnRUaW1lID1+IHN7IFxEIH17fXhtc2c7CiAgICAgICAgICAgICRFbmRUaW1lICAgPX4gc3sgXEQgfXt9eG1zZzsKCiAgICAgICAgICAgICMgc3RhcnQgdGltZSBtdXN0IGJlIHNtYWxsZXIgdGhhbiBlbmQgdGltZQogICAgICAgICAgICBpZiAoICRTdGFydFRpbWUgPj0gJEVuZFRpbWUgKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgJFR5cGVMYyBzdGFydCB0aW1lICckU3RhcnRUaW1lJyBtdXN0IGJlIGJlZm9yZSB0aGUgJFR5cGVMYyBlbmQgdGltZSAnJEVuZFRpbWUnISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Notification.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6Tm90aWZpY2F0aW9uOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIFN0b3JhYmxlOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2U7CnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6RXZlbnRIYW5kbGVyOwoKdXNlIHZhcnMgcXcoQElTQSk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJywKICAgICdLZXJuZWw6OlN5c3RlbTo6REInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpFbWFpbCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OlZhbGlkJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6Tm90aWZpY2F0aW9uIC0gbm90aWZpY2F0aW9uIGZ1bmN0aW9ucyBmb3IgY2hhbmdlIG1hbmFnZW1lbnQKCj1oZWFkMSBERVNDUklQVElPTgoKVGhpcyBtb2R1bGUgaXMgbWFuYWdpbmcgbm90aWZpY2F0aW9ucy4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9Y3V0Cgo9aGVhZDIgbmV3KCkKCkNyZWF0ZSBhIG5vdGlmaWNhdGlvbiBvYmplY3QuCgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkTm90aWZpY2F0aW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Ok5vdGlmaWNhdGlvbicpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIHNldCB0aGUgZGVidWcgZmxhZwogICAgJFNlbGYtPntEZWJ1Z30gPSAkUGFyYW17RGVidWd9IHx8IDA7CgogICAgIyBnZXQgdGhlIGNhY2hlIHR5cGUgYW5kIFRUTCAoaW4gc2Vjb25kcykKICAgICRTZWxmLT57Q2FjaGVUeXBlfSA9ICdJVFNNQ2hhbmdlTWFuYWdlbWVudCc7CiAgICAkU2VsZi0+e0NhY2hlVFRMfSAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0lUU01DaGFuZ2U6OkNhY2hlVFRMJykgKiA2MDsKCiAgICAjIGRvIHdlIHVzZSByaWNodGV4dAogICAgJFNlbGYtPntSaWNoVGV4dH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0Zyb250ZW5kOjpSaWNoVGV4dCcpOwoKICAgIEBJU0EgPSAoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpFdmVudEhhbmRsZXInLAogICAgKTsKCiAgICAjIGluaXQgb2YgZXZlbnQgaGFuZGxlcgogICAgJFNlbGYtPkV2ZW50SGFuZGxlckluaXQoCiAgICAgICAgQ29uZmlnID0+ICdJVFNNQ2hhbmdlTWFuYWdlbWVudE5vdGlmaWNhdGlvbjo6RXZlbnRNb2R1bGUnLAogICAgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBOb3RpZmljYXRpb25TZW5kKCkKClNlbmQgdGhlIG5vdGlmaWNhdGlvbiB0byBjdXN0b21lcnMgYW5kL29yIGFnZW50cy4KCiAgICBteSAkU3VjY2VzcyA9ICROb3RpZmljYXRpb25PYmplY3QtPk5vdGlmaWNhdGlvblNlbmQoCiAgICAgICAgQWdlbnRJRHMgICAgPT4gWyAxLCAyLCAzLCBdCiAgICAgICAgQ3VzdG9tZXJJRHMgPT4gWyAxLCAyLCAzLCBdLAogICAgICAgIFR5cGUgICAgICAgID0+ICdDaGFuZ2UnLCAgICAgICAgICAjIENoYW5nZXxXb3JrT3JkZXIKICAgICAgICBFdmVudCAgICAgICA9PiAnQ2hhbmdlVXBkYXRlJywKICAgICAgICBEYXRhICAgICAgICA9PiB7ICVDaGFuZ2VEYXRhIH0sICAgIyBDaGFuZ2V8V29ya09yZGVyfExpbmsgZGF0YQogICAgICAgIE1lc3NhZ2UgPT4gewogICAgICAgICAgICBBZ2VudCA9PiB7CiAgICAgICAgICAgICAgICAnZW4nID0+IHsKICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ICAgICA9PiAnSGVsbG8gQWdlbnQnLAogICAgICAgICAgICAgICAgICAgIEJvZHkgICAgICAgID0+ICdIZWxsbyBXb3JsZCcsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICdkZScgPT4gewogICAgICAgICAgICAgICAgICAgIFN1YmplY3QgICAgID0+ICdIYWxsbyBBZ2VudCcsCiAgICAgICAgICAgICAgICAgICAgQm9keSAgICAgICAgPT4gJ0hhbGxvIFdlbHQnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICdlbicgPT4gewogICAgICAgICAgICAgICAgICAgIFN1YmplY3QgICAgID0+ICdIZWxsbyBDdXN0b21lcicsCiAgICAgICAgICAgICAgICAgICAgQm9keSAgICAgICAgPT4gJ0hlbGxvIFdvcmxkJywKICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgJ2RlJyA9PiB7CiAgICAgICAgICAgICAgICAgICAgU3ViamVjdCAgICAgPT4gJ0hhbGxvIEt1bmRlJywKICAgICAgICAgICAgICAgICAgICBCb2R5ICAgICAgICA9PiAnSGFsbG8gV2VsdCcsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAxMjMsCiAgICApOwoKPWN1dAoKc3ViIE5vdGlmaWNhdGlvblNlbmQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVHlwZSBFdmVudCBVc2VySUQgRGF0YSBNZXNzYWdlKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIG1lc3NhZ2UKICAgIGZvciBteSAkVHlwZSAocXcoQWdlbnQgQ3VzdG9tZXIpKSB7CgogICAgICAgICMgY2hlY2sgbWVzc2FnZSBwYXJhbWV0ZXIsIHdlIGFsd2F5cyBuZWVkIGFnZW50IGFuZCBtZXNzYWdlCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtNZXNzYWdlfS0+eyRUeXBlfSApICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkVHlwZSBNZXNzYWdlISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgZWFjaCBhcmd1bWVudCBmb3IgZWFjaCBtZXNzYWdlIGxhbmd1YWdlCiAgICAgICAgZm9yIG15ICRMYW5ndWFnZSAoIHNvcnQga2V5cyAleyAkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0gfSApIHsKCiAgICAgICAgICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFN1YmplY3QgQm9keSBDb250ZW50VHlwZSkpIHsKCiAgICAgICAgICAgICAgICAjIGVycm9yIGlmIG1lc3NhZ2UgZGF0YSBpcyBpbmNvbXBsZXRlCiAgICAgICAgICAgICAgICBpZiAoICEkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0tPnskTGFuZ3VhZ2V9LT57JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJFR5cGUgTWVzc2FnZSBhcmd1bWVudCAnJEFyZ3VtZW50JyBmb3IgbGFuZ3VhZ2UgJyRMYW5ndWFnZSchIiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGZvciBjb252ZW5pZW5jZQogICAgbXkgJEV2ZW50ID0gJFBhcmFte0V2ZW50fTsKCiAgICAjIG5lZWQgYXQgbGVhc3QgQWdlbnRJRHMgb3IgQ3VzdG9tZXJJRHMKICAgIGlmICggISRQYXJhbXtBZ2VudElEc30gJiYgISRQYXJhbXtDdXN0b21lcklEc30gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIGF0IGxlYXN0IEFnZW50SURzIG9yIEN1c3RvbWVySURzIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBBZ2VudElEcyBhbmQgQ3VzdG9tZXJJRHMgaGF2ZSB0byBiZSBhcnJheSByZWZlcmVuY2VzCiAgICBmb3IgbXkgJElES2V5IChxdyhBZ2VudElEcyBDdXN0b21lcklEcykpIHsKICAgICAgICBpZiAoIGRlZmluZWQgJFBhcmFteyRJREtleX0gJiYgcmVmICRQYXJhbXskSURLZXl9IG5lICdBUlJBWScgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICIkSURLZXkgaGFzIHRvIGJlIGFuIGFycmF5IHJlZmVyZW5jZSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgd2hldGhlciB0aGUgc2VuZGluZyBvZiBub3RpZmljYXRpb24gaGFzIGJlZW4gdHVybmVkIG9mZgogICAgcmV0dXJuIDEgaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSVRTTUNoYW5nZTo6U2VuZE5vdGlmaWNhdGlvbnMnKTsKCiAgICAjIHdlIG5lZWQgdG8gZ2V0IHRoZSBpdGVtcyBmb3IgcmVwbGFjZW1lbnRzCiAgICBteSAkQ2hhbmdlICAgID0ge307CiAgICBteSAkV29ya09yZGVyID0ge307CiAgICBteSAkTGluayAgICAgID0ge307CgogICAgIyBzdGFydCB3aXRoIHdvcmtvcmRlciwgYXMgdGhlIGNoYW5nZSBpZCBtaWdodCBiZSB0YWtlbiBmcm9tIHRoZSB3b3Jrb3JkZXIKICAgIGlmICggJFBhcmFte0RhdGF9LT57V29ya09yZGVySUR9ICkgewoKICAgICAgICBpZiAoICRFdmVudCBlcSAnV29ya09yZGVyRGVsZXRlJyApIHsKCiAgICAgICAgICAgICMgdGhlIHdvcmtvcmRlciBpcyBhbHJlYWR5IGRlbGV0ZWQsCiAgICAgICAgICAgICMgc28gd2UgZGlzcGxheSB0aGUgb2xkIGRhdGEKICAgICAgICAgICAgJFdvcmtPcmRlciA9ICRQYXJhbXtEYXRhfS0+e09sZFdvcmtPcmRlckRhdGF9OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgZ2V0IGZyZXNoIGRhdGEKICAgICAgICAgICAgJFdvcmtPcmRlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckdldCgKICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgTG9nTm8gICAgICAgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgVGhlIGV2ZW50ICdXb3JrT3JkZXJBZGQnIGlzIGEgc3BlY2lhbCBjYXNlLCBhcyB0aGUgd29ya29yZGVyCiAgICAgICAgIyBpcyBub3QgY29tcGxldGVseSBpbml0aWFsaXplZCB5ZXQuIFNvIGFsc28gdGFrZQogICAgICAgICMgdGhlIHBhcmFtcyBmb3IgV29ya09yZGVyQWRkKCkgaW50byBhY2NvdW50LgogICAgICAgICMgV29ya09yZGVyR2V0KCkgbXVzdCBzdGlsbCBiZSBjYWxsZWQsIGFzIGl0IHByb3ZpZGVzIHRyYW5zbGF0aW9uCiAgICAgICAgIyBmb3Igc29tZSBJRHMgdGhhdCB3ZXJlIHNldCBpbiBXb3JrT3JkZXJBZGQoKS4KICAgICAgICBpZiAoICRFdmVudCBlcSAnV29ya09yZGVyQWRkJyApIHsKICAgICAgICAgICAgZm9yIG15ICRBdHRyaWJ1dGUgKCBzb3J0IGtleXMgJXskV29ya09yZGVyfSApIHsKICAgICAgICAgICAgICAgICRXb3JrT3JkZXItPnskQXR0cmlidXRlfSB8fD0gJFBhcmFte0RhdGF9LT57JEF0dHJpYnV0ZX07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJFdvcmtPcmRlci0+e1dvcmtPcmRlckFnZW50SUR9ICkgewoKICAgICAgICAgICAgIyBnZXQgdXNlciBkYXRhIGZvciB0aGUgd29ya29yZGVyIGFnZW50CiAgICAgICAgICAgICRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlckFnZW50fSA9IHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkV29ya09yZGVyLT57V29ya09yZGVyQWdlbnRJRH0sCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAjIGluZmVyIHRoZSBjaGFuZ2UgaWQgZnJvbSB0aGUgd29ya29yZGVyCiAgICAgICAgaWYgKCAkV29ya09yZGVyLT57Q2hhbmdlSUR9ICkgewogICAgICAgICAgICAkUGFyYW17RGF0YX0tPntDaGFuZ2VJRH0gPSAkV29ya09yZGVyLT57Q2hhbmdlSUR9OwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRQYXJhbXtEYXRhfS0+e0NoYW5nZUlEfSApIHsKCiAgICAgICAgJENoYW5nZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZUdldCgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0RhdGF9LT57Q2hhbmdlSUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgTG9nTm8gICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIFRoZSBldmVudCAnQ2hhbmdlQWRkJyBpcyBhIHNwZWNpYWwgY2FzZSwgYXMgdGhlIGNoYW5nZQogICAgICAgICMgaXMgbm90IGNvbXBsZXRlbHkgaW5pdGlhbGl6ZWQgeWV0LiBTbyBhbHNvIHRha2UKICAgICAgICAjIHRoZSBwYXJhbXMgZm9yIENoYW5nZUFkZCgpIGludG8gYWNjb3VudC4KICAgICAgICAjIENoYW5nZUdldCgpIG11c3Qgc3RpbGwgYmUgY2FsbGVkLCBhcyBpdCBwcm92aWRlcyB0cmFuc2xhdGlvbgogICAgICAgICMgZm9yIHNvbWUgSURzIHRoYXQgd2VyZSBzZXQgaW4gQ2hhbmdlQWRkKCkuCiAgICAgICAgaWYgKCAkRXZlbnQgZXEgJ0NoYW5nZUFkZCcgKSB7CiAgICAgICAgICAgIGZvciBteSAkQXR0cmlidXRlICggc29ydCBrZXlzICV7JENoYW5nZX0gKSB7CiAgICAgICAgICAgICAgICAkQ2hhbmdlLT57JEF0dHJpYnV0ZX0gfHw9ICRQYXJhbXtEYXRhfS0+eyRBdHRyaWJ1dGV9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoICRDaGFuZ2UtPntDaGFuZ2VCdWlsZGVySUR9ICkgewogICAgICAgICAgICAkUGFyYW17RGF0YX0tPntDaGFuZ2VCdWlsZGVyfSA9IHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkQ2hhbmdlLT57Q2hhbmdlQnVpbGRlcklEfSwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIGlmICggJENoYW5nZS0+e0NoYW5nZU1hbmFnZXJJRH0gKSB7CiAgICAgICAgICAgICRQYXJhbXtEYXRhfS0+e0NoYW5nZU1hbmFnZXJ9ID0gewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRDaGFuZ2UtPntDaGFuZ2VNYW5hZ2VySUR9LAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGZvciBsaW5rIGV2ZW50cyB0aGVyZSBpcyBzb21lIGluZm8gYWJvdXQgdGhlIGxpbmsKICAgIGlmICggJEV2ZW50ID1+IG17IFxBICg/OiBDaGFuZ2UgfCBXb3JrT3JkZXIgKSBMaW5rICg/OiBBZGQgfCBEZWxldGUgKSB9eG1zICkgewogICAgICAgICRMaW5rID0gewogICAgICAgICAgICBTb3VyY2VPYmplY3QgPT4gJFBhcmFte0RhdGF9LT57U291cmNlT2JqZWN0fSwKICAgICAgICAgICAgVGFyZ2V0T2JqZWN0ID0+ICRQYXJhbXtEYXRhfS0+e1RhcmdldE9iamVjdH0sCiAgICAgICAgICAgIFN0YXRlICAgICAgICA9PiAkUGFyYW17RGF0YX0tPntTdGF0ZX0sCiAgICAgICAgICAgIFR5cGUgICAgICAgICA9PiAkUGFyYW17RGF0YX0tPntUeXBlfSwKICAgICAgICAgICAgT2JqZWN0ICAgICAgID0+ICRQYXJhbXtEYXRhfS0+e09iamVjdH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIGdldCB0aGUgdmFsaWQgaWRzCiAgICBteSBAVmFsaWRJRHMgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZElEc0dldCgpOwogICAgbXkgJVZhbGlkSURMb29rdXAgPSBtYXAgeyAkXyA9PiAxIH0gQFZhbGlkSURzOwoKICAgIG15ICVBZ2VudHNTZW50OwoKICAgIEFHRU5USUQ6CiAgICBmb3IgbXkgJEFnZW50SUQgKCBAeyAkUGFyYW17QWdlbnRJRHN9IH0gKSB7CgogICAgICAgICMgY2hlY2sgaWYgbm90aWZpY2F0aW9uIHdhcyBhbHJlYWR5IHNlbnQgdG8gdGhpcyBhZ2VudAogICAgICAgIG5leHQgQUdFTlRJRCBpZiAkQWdlbnRzU2VudHskQWdlbnRJRH07CgogICAgICAgICMgdXNlciBpbmZvIGZvciBwcmVmZXJyZWQgbGFuZ3VhZ2UgYW5kIG1hY3JvIHJlcGxhY2VtZW50CiAgICAgICAgbXkgJVVzZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRBZ2VudElELAogICAgICAgICk7CgogICAgICAgICMgZG8gbm90IHNlbmQgZW1haWxzIHRvIGludmFsaWQgYWdlbnRzCiAgICAgICAgaWYgKCBleGlzdHMgJFVzZXJ7VmFsaWRJRH0gJiYgISRWYWxpZElETG9va3VweyAkVXNlcntWYWxpZElEfSB9ICkgewogICAgICAgICAgICBuZXh0IEFHRU5USUQ7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBzeXN0ZW0gZGVmYXVsdCBsYW5ndWFnZQogICAgICAgIG15ICREZWZhdWx0TGFuZ3VhZ2UgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0RlZmF1bHRMYW5ndWFnZScpIHx8ICdlbic7CgogICAgICAgICMgZ2V0IHVzZXIgcHJlZmVycmVkIGxhbmd1YWdlCiAgICAgICAgbXkgJFByZWZlcnJlZExhbmd1YWdlID0gJFVzZXJ7VXNlckxhbmd1YWdlfSB8fCAkRGVmYXVsdExhbmd1YWdlOwoKICAgICAgICAjIG1ha2Ugc3VyZSBhIG1lc3NhZ2UgaW4gdGhlIHVzZXIgbGFuZ3VhZ2UgZXhpc3RzCiAgICAgICAgaWYgKCAhJFBhcmFte01lc3NhZ2V9LT57QWdlbnR9LT57JFByZWZlcnJlZExhbmd1YWdlfSApIHsKCiAgICAgICAgICAgICMgb3RoZXJ3aXNlIHVzZSBkZWZhdWx0IGxhbmd1YWdlCiAgICAgICAgICAgICRQcmVmZXJyZWRMYW5ndWFnZSA9ICREZWZhdWx0TGFuZ3VhZ2U7CgogICAgICAgICAgICAjIGlmIG5vIG1lc3NhZ2UgZXhpc3RzIGluIGRlZmF1bHQgbGFuZ3VhZ2UsIHRoZW4gdGFrZSB0aGUgZmlyc3QgYXZhaWxhYmxlIGxhbmd1YWdlCiAgICAgICAgICAgIGlmICggISRQYXJhbXtNZXNzYWdlfS0+e0FnZW50fS0+eyRQcmVmZXJyZWRMYW5ndWFnZX0gKSB7CiAgICAgICAgICAgICAgICBteSBATGFuZ3VhZ2VzID0gc29ydCBrZXlzICV7ICRQYXJhbXtNZXNzYWdlfS0+e0FnZW50fSB9OwogICAgICAgICAgICAgICAgJFByZWZlcnJlZExhbmd1YWdlID0gJExhbmd1YWdlc1swXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJE5vdGlmaWNhdGlvbiA9ICRQYXJhbXtNZXNzYWdlfS0+e0FnZW50fS0+eyRQcmVmZXJyZWRMYW5ndWFnZX07CiAgICAgICAgcmV0dXJuIGlmICEkTm90aWZpY2F0aW9uOwoKICAgICAgICAjIGRvIHRleHQvcGxhaW4gdG8gdGV4dC9odG1sIGNvbnZlcnQKICAgICAgICBpZiAoICRTZWxmLT57UmljaFRleHR9ICYmICROb3RpZmljYXRpb24tPntDb250ZW50VHlwZX0gPX4gbXsgdGV4dC9wbGFpbiB9eG1zaSApIHsKICAgICAgICAgICAgJE5vdGlmaWNhdGlvbi0+e0NvbnRlbnRUeXBlfSA9ICd0ZXh0L2h0bWwnOwogICAgICAgICAgICAkTm90aWZpY2F0aW9uLT57Qm9keX0gICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5Ub0hUTUwoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJE5vdGlmaWNhdGlvbi0+e0JvZHl9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBkbyB0ZXh0L2h0bWwgdG8gdGV4dC9wbGFpbiBjb252ZXJ0CiAgICAgICAgZWxzaWYgKCAhJFNlbGYtPntSaWNoVGV4dH0gJiYgJE5vdGlmaWNhdGlvbi0+e0NvbnRlbnRUeXBlfSA9fiBteyB0ZXh0L2h0bWwgfXhtc2kgKSB7CiAgICAgICAgICAgICROb3RpZmljYXRpb24tPntDb250ZW50VHlwZX0gPSAndGV4dC9wbGFpbic7CiAgICAgICAgICAgICROb3RpZmljYXRpb24tPntCb2R5fSAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyktPlRvQXNjaWkoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJE5vdGlmaWNhdGlvbi0+e0JvZHl9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyByZXBsYWNlIG90cnMgbWFjcm9zCiAgICAgICAgJE5vdGlmaWNhdGlvbi0+e0JvZHl9ID0gJFNlbGYtPl9Ob3RpZmljYXRpb25SZXBsYWNlTWFjcm9zKAogICAgICAgICAgICBUeXBlICAgICAgPT4gJFBhcmFte1R5cGV9LAogICAgICAgICAgICBUZXh0ICAgICAgPT4gJE5vdGlmaWNhdGlvbi0+e0JvZHl9LAogICAgICAgICAgICBSZWNpcGllbnQgPT4geyVVc2VyfSwKICAgICAgICAgICAgUmljaFRleHQgID0+ICRTZWxmLT57UmljaFRleHR9LAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIENoYW5nZSAgICA9PiAkQ2hhbmdlLAogICAgICAgICAgICBXb3JrT3JkZXIgPT4gJFdvcmtPcmRlciwKICAgICAgICAgICAgTGluayAgICAgID0+ICRMaW5rLAogICAgICAgICAgICBEYXRhICAgICAgPT4gJFBhcmFte0RhdGF9LAogICAgICAgICAgICBMYW5ndWFnZSAgPT4gJFByZWZlcnJlZExhbmd1YWdlLAogICAgICAgICk7CgogICAgICAgICROb3RpZmljYXRpb24tPntTdWJqZWN0fSA9ICRTZWxmLT5fTm90aWZpY2F0aW9uUmVwbGFjZU1hY3JvcygKICAgICAgICAgICAgVHlwZSAgICAgID0+ICRQYXJhbXtUeXBlfSwKICAgICAgICAgICAgVGV4dCAgICAgID0+ICROb3RpZmljYXRpb24tPntTdWJqZWN0fSwKICAgICAgICAgICAgUmVjaXBpZW50ID0+IHslVXNlcn0sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgQ2hhbmdlICAgID0+ICRDaGFuZ2UsCiAgICAgICAgICAgIFdvcmtPcmRlciA9PiAkV29ya09yZGVyLAogICAgICAgICAgICBMaW5rICAgICAgPT4gJExpbmssCiAgICAgICAgICAgIERhdGEgICAgICA9PiAkUGFyYW17RGF0YX0sCiAgICAgICAgICAgIExhbmd1YWdlICA9PiAkUHJlZmVycmVkTGFuZ3VhZ2UsCiAgICAgICAgKTsKCiAgICAgICAgIyBhZGQgdXJscyBhbmQgdmVyaWZ5IHRvIGJlIGZ1bGwgaHRtbCBkb2N1bWVudAogICAgICAgIGlmICggJFNlbGYtPntSaWNoVGV4dH0gKSB7CgogICAgICAgICAgICAkTm90aWZpY2F0aW9uLT57Qm9keX0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyktPkxpbmtRdW90ZSgKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkTm90aWZpY2F0aW9uLT57Qm9keX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTm90aWZpY2F0aW9uLT57Qm9keX0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyktPkRvY3VtZW50Q29tcGxldGUoCiAgICAgICAgICAgICAgICBDaGFyc2V0ID0+ICd1dGYtOCcsCiAgICAgICAgICAgICAgICBTdHJpbmcgID0+ICROb3RpZmljYXRpb24tPntCb2R5fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2VuZCBub3RpZmljYXRpb24KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RW1haWwnKS0+U2VuZCgKICAgICAgICAgICAgRnJvbSA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ05vdGlmaWNhdGlvblNlbmRlck5hbWUnKSAuICcgPCcKICAgICAgICAgICAgICAgIC4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdOb3RpZmljYXRpb25TZW5kZXJFbWFpbCcpIC4gJz4nLAogICAgICAgICAgICBUbyAgICAgICA9PiAkVXNlcntVc2VyRW1haWx9LAogICAgICAgICAgICBTdWJqZWN0ICA9PiAkTm90aWZpY2F0aW9uLT57U3ViamVjdH0sCiAgICAgICAgICAgIE1pbWVUeXBlID0+ICROb3RpZmljYXRpb24tPntDb250ZW50VHlwZX0gfHwgJ3RleHQvcGxhaW4nLAogICAgICAgICAgICBDaGFyc2V0ICA9PiAndXRmLTgnLAogICAgICAgICAgICBCb2R5ICAgICA9PiAkTm90aWZpY2F0aW9uLT57Qm9keX0sCiAgICAgICAgICAgIExvb3AgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGhlIGV2ZW50IHR5cGUKICAgICAgICBteSAkVHlwZTsKICAgICAgICBpZiAoICRFdmVudCA9fiBteyBcQSAoQ2hhbmdlfEFjdGlvbkV4ZWN1dGUpIH14bXMgKSB7CiAgICAgICAgICAgICRUeXBlID0gJ0NoYW5nZSc7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJEV2ZW50ID1+IG17IFxBIFdvcmtPcmRlciB9eG1zICkgewogICAgICAgICAgICAkVHlwZSA9ICdXb3JrT3JkZXInOwogICAgICAgIH0KCiAgICAgICAgIyB0cmlnZ2VyIE5vdGlmaWNhdGlvblNlbnQtRXZlbnQKICAgICAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgICAgICBFdmVudCA9PiAkVHlwZSAuICdOb3RpZmljYXRpb25TZW50UG9zdCcsCiAgICAgICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXItPntXb3JrT3JkZXJJRH0sCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkQ2hhbmdlLT57Q2hhbmdlSUR9LAogICAgICAgICAgICAgICAgRXZlbnRUeXBlICAgPT4gJEV2ZW50LAogICAgICAgICAgICAgICAgVG8gICAgICAgICAgPT4gJFVzZXJ7VXNlckVtYWlsfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICRBZ2VudHNTZW50eyRBZ2VudElEfSA9IDE7CiAgICB9CgogICAgbXkgJUN1c3RvbWVyc1NlbnQ7CgogICAgQ1VTVE9NRVJJRDoKICAgIGZvciBteSAkQ3VzdG9tZXJJRCAoIEB7ICRQYXJhbXtDdXN0b21lcklEc30gfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBub3RpZmljYXRpb24gd2FzIGFscmVhZHkgc2VudCB0byBjdXN0b21lcgogICAgICAgIG5leHQgQ1VTVE9NRVJJRCBpZiAkQ3VzdG9tZXJzU2VudHskQ3VzdG9tZXJJRH07CgogICAgICAgICMgVXNlciBpbmZvIGZvciBwcmVmZXJlZCBsYW5ndWFnZSBhbmQgbWFjcm8gcmVwbGFjZW1lbnQKICAgICAgICBteSAlQ3VzdG9tZXJVc2VyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcicpLT5DdXN0b21lclVzZXJEYXRhR2V0KAogICAgICAgICAgICBVc2VyID0+ICRDdXN0b21lcklELAogICAgICAgICk7CgogICAgICAgICMgZG8gbm90IHNlbmQgZW1haWxzIHRvIGludmFsaWQgY3VzdG9tZXJzCiAgICAgICAgaWYgKCBleGlzdHMgJEN1c3RvbWVyVXNlcntWYWxpZElEfSAmJiAhJFZhbGlkSURMb29rdXB7ICRDdXN0b21lclVzZXJ7VmFsaWRJRH0gfSApIHsKICAgICAgICAgICAgbmV4dCBDVVNUT01FUklEOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgc3lzdGVtIGRlZmF1bHQgbGFuZ3VhZ2UKICAgICAgICBteSAkRGVmYXVsdExhbmd1YWdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdEZWZhdWx0TGFuZ3VhZ2UnKSB8fCAnZW4nOwoKICAgICAgICAjIGdldCB1c2VyIHByZWZlcnJlZCBsYW5ndWFnZQogICAgICAgIG15ICRQcmVmZXJyZWRMYW5ndWFnZSA9ICRDdXN0b21lclVzZXJ7VXNlckxhbmd1YWdlfSB8fCAkRGVmYXVsdExhbmd1YWdlOwoKICAgICAgICAjIG1ha2Ugc3VyZSBhIG1lc3NhZ2UgaW4gdGhlIHVzZXIgbGFuZ3VhZ2UgZXhpc3RzCiAgICAgICAgaWYgKCAhJFBhcmFte01lc3NhZ2V9LT57Q3VzdG9tZXJ9LT57JFByZWZlcnJlZExhbmd1YWdlfSApIHsKCiAgICAgICAgICAgICMgb3RoZXJ3aXNlIHVzZSBkZWZhdWx0IGxhbmd1YWdlCiAgICAgICAgICAgICRQcmVmZXJyZWRMYW5ndWFnZSA9ICREZWZhdWx0TGFuZ3VhZ2U7CgogICAgICAgICAgICAjIGlmIG5vIG1lc3NhZ2UgZXhpc3RzIGluIGRlZmF1bHQgbGFuZ3VhZ2UsIHRoZW4gdGFrZSB0aGUgZmlyc3QgYXZhaWxhYmxlIGxhbmd1YWdlCiAgICAgICAgICAgIGlmICggISRQYXJhbXtNZXNzYWdlfS0+e0N1c3RvbWVyfS0+eyRQcmVmZXJyZWRMYW5ndWFnZX0gKSB7CiAgICAgICAgICAgICAgICBteSBATGFuZ3VhZ2VzID0gc29ydCBrZXlzICV7ICRQYXJhbXtNZXNzYWdlfS0+e0N1c3RvbWVyfSB9OwogICAgICAgICAgICAgICAgJFByZWZlcnJlZExhbmd1YWdlID0gJExhbmd1YWdlc1swXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJE5vdGlmaWNhdGlvbiA9ICRQYXJhbXtNZXNzYWdlfS0+e0N1c3RvbWVyfS0+eyRQcmVmZXJyZWRMYW5ndWFnZX07CiAgICAgICAgcmV0dXJuIGlmICEkTm90aWZpY2F0aW9uOwoKICAgICAgICAjIGRvIHRleHQvcGxhaW4gdG8gdGV4dC9odG1sIGNvbnZlcnQKICAgICAgICBpZiAoICRTZWxmLT57UmljaFRleHR9ICYmICROb3RpZmljYXRpb24tPntDb250ZW50VHlwZX0gPX4gbXsgdGV4dC9wbGFpbiB9eG1zaSApIHsKICAgICAgICAgICAgJE5vdGlmaWNhdGlvbi0+e0NvbnRlbnRUeXBlfSA9ICd0ZXh0L2h0bWwnOwogICAgICAgICAgICAkTm90aWZpY2F0aW9uLT57Qm9keX0gICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5Ub0hUTUwoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJE5vdGlmaWNhdGlvbi0+e0JvZHl9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBkbyB0ZXh0L2h0bWwgdG8gdGV4dC9wbGFpbiBjb252ZXJ0CiAgICAgICAgZWxzaWYgKCAhJFNlbGYtPntSaWNoVGV4dH0gJiYgJE5vdGlmaWNhdGlvbi0+e0NvbnRlbnRUeXBlfSA9fiBteyB0ZXh0L2h0bWwgfXhtc2kgKSB7CiAgICAgICAgICAgICROb3RpZmljYXRpb24tPntDb250ZW50VHlwZX0gPSAndGV4dC9wbGFpbic7CiAgICAgICAgICAgICROb3RpZmljYXRpb24tPntCb2R5fSAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyktPlRvQXNjaWkoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJE5vdGlmaWNhdGlvbi0+e0JvZHl9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyByZXBsYWNlIG90cnMgbWFjcm9zCiAgICAgICAgJE5vdGlmaWNhdGlvbi0+e0JvZHl9ID0gJFNlbGYtPl9Ob3RpZmljYXRpb25SZXBsYWNlTWFjcm9zKAogICAgICAgICAgICBUeXBlICAgICAgPT4gJFBhcmFte1R5cGV9LAogICAgICAgICAgICBUZXh0ICAgICAgPT4gJE5vdGlmaWNhdGlvbi0+e0JvZHl9LAogICAgICAgICAgICBSZWNpcGllbnQgPT4geyVDdXN0b21lclVzZXJ9LAogICAgICAgICAgICBSaWNoVGV4dCAgPT4gJFNlbGYtPntSaWNoVGV4dH0sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgQ2hhbmdlICAgID0+ICRDaGFuZ2UsCiAgICAgICAgICAgIFdvcmtPcmRlciA9PiAkV29ya09yZGVyLAogICAgICAgICAgICBMaW5rICAgICAgPT4gJExpbmssCiAgICAgICAgICAgIERhdGEgICAgICA9PiAkUGFyYW17RGF0YX0sCiAgICAgICAgICAgIExhbmd1YWdlICA9PiAkUHJlZmVycmVkTGFuZ3VhZ2UsCiAgICAgICAgKTsKCiAgICAgICAgJE5vdGlmaWNhdGlvbi0+e1N1YmplY3R9ID0gJFNlbGYtPl9Ob3RpZmljYXRpb25SZXBsYWNlTWFjcm9zKAogICAgICAgICAgICBUeXBlICAgICAgPT4gJFBhcmFte1R5cGV9LAogICAgICAgICAgICBUZXh0ICAgICAgPT4gJE5vdGlmaWNhdGlvbi0+e1N1YmplY3R9LAogICAgICAgICAgICBSZWNpcGllbnQgPT4geyVDdXN0b21lclVzZXJ9LAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIENoYW5nZSAgICA9PiAkQ2hhbmdlLAogICAgICAgICAgICBXb3JrT3JkZXIgPT4gJFdvcmtPcmRlciwKICAgICAgICAgICAgTGluayAgICAgID0+ICRMaW5rLAogICAgICAgICAgICBEYXRhICAgICAgPT4gJFBhcmFte0RhdGF9LAogICAgICAgICAgICBMYW5ndWFnZSAgPT4gJFByZWZlcnJlZExhbmd1YWdlLAogICAgICAgICk7CgogICAgICAgICMgc2VuZCBub3RpZmljYXRpb24KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RW1haWwnKS0+U2VuZCgKICAgICAgICAgICAgRnJvbSA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ05vdGlmaWNhdGlvblNlbmRlck5hbWUnKSAuICcgPCcKICAgICAgICAgICAgICAgIC4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdOb3RpZmljYXRpb25TZW5kZXJFbWFpbCcpIC4gJz4nLAogICAgICAgICAgICBUbyAgICAgICA9PiAkQ3VzdG9tZXJVc2Vye1VzZXJFbWFpbH0sCiAgICAgICAgICAgIFN1YmplY3QgID0+ICROb3RpZmljYXRpb24tPntTdWJqZWN0fSwKICAgICAgICAgICAgTWltZVR5cGUgPT4gJE5vdGlmaWNhdGlvbi0+e0NvbnRlbnRUeXBlfSB8fCAndGV4dC9wbGFpbicsCiAgICAgICAgICAgIENoYXJzZXQgID0+ICd1dGYtOCcsCiAgICAgICAgICAgIEJvZHkgICAgID0+ICROb3RpZmljYXRpb24tPntCb2R5fSwKICAgICAgICAgICAgTG9vcCAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIHRyaWdnZXIgTm90aWZpY2F0aW9uU2VudC1FdmVudAogICAgICAgIG15ICgkVHlwZSkgPSAkRXZlbnQgPX4gbXsgKFdvcmtPcmRlcnxDaGFuZ2UpIH14bXM7CiAgICAgICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICAgICAgRXZlbnQgPT4gJFR5cGUgLiAnTm90aWZpY2F0aW9uU2VudFBvc3QnLAogICAgICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVyLT57V29ya09yZGVySUR9LAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgPT4gJENoYW5nZS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgICAgIEV2ZW50VHlwZSAgID0+ICRFdmVudCwKICAgICAgICAgICAgICAgIFRvICAgICAgICAgID0+ICRDdXN0b21lclVzZXJ7VXNlckVtYWlsfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICRDdXN0b21lcnNTZW50eyRDdXN0b21lcklEfSA9IDE7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBOb3RpZmljYXRpb25SdWxlR2V0KCkKCkdldCBpbmZvIGFib3V0IGEgc2luZ2xlIG5vdGlmaWNhdGlvbiBydWxlCgogICAgbXkgJE5vdGlmaWNhdGlvblJ1bGUgPSAkTm90aWZpY2F0aW9uT2JqZWN0LT5Ob3RpZmljYXRpb25SdWxlR2V0KAogICAgICAgIElEID0+IDEyMywKICAgICk7CgpyZXR1cm5zCgogICAgewogICAgICAgIElEICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdhIGRlc2NyaXB0aXZlIG5hbWUnLAogICAgICAgIEF0dHJpYnV0ZSAgICA9PiAnQ2hhbmdlVGl0bGUnLAogICAgICAgIEV2ZW50SUQgICAgICA9PiAxLAogICAgICAgIEV2ZW50ICAgICAgICA9PiAnQ2hhbmdlVXBkYXRlJywKICAgICAgICBWYWxpZElEICAgICAgPT4gMSwKICAgICAgICBDb21tZW50ICAgICAgPT4gJ2Rlc2NyaXB0aW9uIHdoYXQgdGhlIHJ1bGUgZG9lcycsCiAgICAgICAgUnVsZSAgICAgICAgID0+ICdyZWplY3RlZCcsCiAgICAgICAgUmVjaXBpZW50cyAgID0+IFsgJ0NoYW5nZUJ1aWxkZXInLCAnQ2hhbmdlTWFuYWdlcicsICdDaGFuZ2VDQUJDdXN0b21lcnMnIF0sCiAgICAgICAgUmVjaXBpZW50SURzID0+IFsgMiwgMywgNyBdLAogICAgICAgIE1lc3NhZ2UgPT4gewogICAgICAgICAgICBBZ2VudCA9PiB7CiAgICAgICAgICAgICAgICAnZW4nID0+IHsKICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ICAgICA9PiAnSGVsbG8gQWdlbnQnLAogICAgICAgICAgICAgICAgICAgIEJvZHkgICAgICAgID0+ICdIZWxsbyBXb3JsZCcsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICdkZScgPT4gewogICAgICAgICAgICAgICAgICAgIFN1YmplY3QgICAgID0+ICdIYWxsbyBBZ2VudCcsCiAgICAgICAgICAgICAgICAgICAgQm9keSAgICAgICAgPT4gJ0hhbGxvIFdlbHQnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICdlbicgPT4gewogICAgICAgICAgICAgICAgICAgIFN1YmplY3QgICAgID0+ICdIZWxsbyBDdXN0b21lcicsCiAgICAgICAgICAgICAgICAgICAgQm9keSAgICAgICAgPT4gJ0hlbGxvIFdvcmxkJywKICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgJ2RlJyA9PiB7CiAgICAgICAgICAgICAgICAgICAgU3ViamVjdCAgICAgPT4gJ0hhbGxvIEt1bmRlJywKICAgICAgICAgICAgICAgICAgICBCb2R5ICAgICAgICA9PiAnSGFsbG8gV2VsdCcsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfQoKPWN1dAoKc3ViIE5vdGlmaWNhdGlvblJ1bGVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0lEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgSUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIHRoZSBjYWNoZQogICAgbXkgJENhY2hlS2V5ID0gJ05vdGlmaWNhdGlvblJ1bGVHZXQ6OklEOjonIC4gJFBhcmFte0lEfTsKICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgVHlwZSAgICAgICAgICAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgICAgICAgICAgID0+ICRDYWNoZUtleSwKICAgICAgICBDYWNoZUluTWVtb3J5ICA9PiAxLAogICAgICAgIENhY2hlSW5CYWNrZW5kID0+IDAsCiAgICApOwoKICAgICMgcmV0dXJuIGEgY2xvbmUgb2YgdGhlIGNhY2hlLCBhcyB0aGUgY2FsbGVyIHNob3VsZCBub3QgYmUgYWJsZSB0byBjaGFuZ2UgdGhlIGNhY2hlCiAgICByZXR1cm4gU3RvcmFibGU6OmRjbG9uZSgkQ2FjaGUpIGlmICRDYWNoZTsKCiAgICAjIGRvIHNxbCBxdWVyeQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBjbi5pZCwgY24ubmFtZSwgaXRlbV9hdHRyaWJ1dGUsIGV2ZW50X2lkLCBjaHQubmFtZSwKICAgICAgICAgICAgY24udmFsaWRfaWQsIGNuLmNvbW1lbnRzLCBub3RpZmljYXRpb25fcnVsZQogICAgICAgICAgICBGUk9NIGNoYW5nZV9ub3RpZmljYXRpb24gY24sIGNoYW5nZV9oaXN0b3J5X3R5cGUgY2h0CiAgICAgICAgICAgIFdIRVJFIGV2ZW50X2lkID0gY2h0LmlkIEFORCBjbi5pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtJRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIG5vdGlmaWNhdGlvbiBydWxlCiAgICBteSAlTm90aWZpY2F0aW9uUnVsZTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJU5vdGlmaWNhdGlvblJ1bGUgPSAoCiAgICAgICAgICAgIElEICAgICAgICAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJFJvd1sxXSwKICAgICAgICAgICAgQXR0cmlidXRlICAgID0+ICRSb3dbMl0gLy8gJycsCiAgICAgICAgICAgIEV2ZW50SUQgICAgICA9PiAkUm93WzNdLAogICAgICAgICAgICBFdmVudCAgICAgICAgPT4gJFJvd1s0XSwKICAgICAgICAgICAgVmFsaWRJRCAgICAgID0+ICRSb3dbNV0sCiAgICAgICAgICAgIENvbW1lbnQgICAgICA9PiAkUm93WzZdLAogICAgICAgICAgICBSdWxlICAgICAgICAgPT4gJFJvd1s3XSAvLyAnJywKICAgICAgICAgICAgUmVjaXBpZW50cyAgID0+IHVuZGVmLAogICAgICAgICAgICBSZWNpcGllbnRJRHMgPT4gdW5kZWYsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBhZGRpdGlvbmFsIGluZm8KICAgIGlmICglTm90aWZpY2F0aW9uUnVsZSkgewoKICAgICAgICAjIGdldCByZWNpcGllbnRzCiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICdTRUxFQ1QgZ3JwLmlkLCBncnAubmFtZQogICAgICAgICAgICAgICAgRlJPTSBjaGFuZ2Vfbm90aWZpY2F0aW9uX2dycHMgZ3JwLCBjaGFuZ2Vfbm90aWZpY2F0aW9uX3JlYyByCiAgICAgICAgICAgICAgICBXSEVSRSBncnAuaWQgPSByLmdyb3VwX2lkIEFORCByLm5vdGlmaWNhdGlvbl9pZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsgXCROb3RpZmljYXRpb25SdWxle0lEfSBdLAogICAgICAgICk7CgogICAgICAgICMgZmV0Y2ggcmVjaXBpZW50cwogICAgICAgIG15IEBSZWNpcGllbnRzOwogICAgICAgIG15IEBSZWNpcGllbnRJRHM7CiAgICAgICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgcHVzaCBAUmVjaXBpZW50SURzLCAkUm93WzBdOwogICAgICAgICAgICBwdXNoIEBSZWNpcGllbnRzLCAgICRSb3dbMV07CiAgICAgICAgfQoKICAgICAgICAkTm90aWZpY2F0aW9uUnVsZXtSZWNpcGllbnRzfSAgID0gXEBSZWNpcGllbnRzOwogICAgICAgICROb3RpZmljYXRpb25SdWxle1JlY2lwaWVudElEc30gPSBcQFJlY2lwaWVudElEczsKCiAgICAgICAgIyBnZXQgY2hhbmdlIG5vdGlmaWNhdGlvbiBtZXNzYWdlIGRhdGEKICAgICAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgPT4gJ1NFTEVDVCBzdWJqZWN0LCB0ZXh0LCBjb250ZW50X3R5cGUsIGxhbmd1YWdlLCBub3RpZmljYXRpb25fdHlwZQogICAgICAgICAgICAgICAgRlJPTSBjaGFuZ2Vfbm90aWZpY2F0aW9uX21lc3NhZ2UKICAgICAgICAgICAgICAgIFdIRVJFIG5vdGlmaWNhdGlvbl9pZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsgXCROb3RpZmljYXRpb25SdWxle0lEfSBdLAogICAgICAgICk7CgogICAgICAgIG15ICVNZXNzYWdlOwogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CgogICAgICAgICAgICAjIGFkZCB0byBtZXNzYWdlIGhhc2ggd2l0aCB0aGUgbm90aWZpY2F0aW9uIHR5cGUgYW5kIHRoZSBsYW5ndWFnZSBhcyBrZXkKICAgICAgICAgICAgIyBlLmcuICRNZXNzYWdle0FnZW50fS0+e2RlfSwgb3IgJE1lc3NhZ2V7Q3VzdG9tZXJ9LT57ZW59CiAgICAgICAgICAgICRNZXNzYWdleyAkUm93WzRdIH0tPnsgJFJvd1szXSB9ID0gewogICAgICAgICAgICAgICAgU3ViamVjdCAgICAgPT4gJFJvd1swXSwKICAgICAgICAgICAgICAgIEJvZHkgICAgICAgID0+ICRSb3dbMV0sCiAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAkUm93WzJdLAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgJE5vdGlmaWNhdGlvblJ1bGV7TWVzc2FnZX0gPSBcJU1lc3NhZ2U7CiAgICB9CgogICAgIyBzYXZlIHZhbHVlcyBpbiBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKCiAgICAgICAgIyBtYWtlIGEgbG9jYWwgY29weSBvZiB0aGUgbm90aWZpY2F0aW9uIGRhdGEgdG8gYXZvaWQgaXQgYmVpbmcgYWx0ZXJlZCBpbi1tZW1vcnkgbGF0ZXIKICAgICAgICBWYWx1ZSA9PiB7JU5vdGlmaWNhdGlvblJ1bGV9LAoKICAgICAgICBDYWNoZUluTWVtb3J5ICA9PiAxLAogICAgICAgIENhY2hlSW5CYWNrZW5kID0+IDAsCiAgICAgICAgVFRMICAgICAgICAgICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICApOwoKICAgICMgcmV0dXJuIGEgY2xvbmUgb2YgdGhlIGNhY2hlLCBhcyB0aGUgY2FsbGVyIHNob3VsZCBub3QgYmUgYWJsZSB0byBjaGFuZ2UgdGhlIGNhY2hlCiAgICByZXR1cm4gU3RvcmFibGU6OmRjbG9uZSggXCVOb3RpZmljYXRpb25SdWxlICk7Cn0KCj1oZWFkMiBOb3RpZmljYXRpb25SdWxlQWRkKCkKCkFkZCBhIG5vdGlmaWNhdGlvbiBydWxlLiBSZXR1cm5zIHRoZSBJRCBvZiB0aGUgcnVsZS4KCiAgICBteSAkSUQgPSAkTm90aWZpY2F0aW9uT2JqZWN0LT5Ob3RpZmljYXRpb25SdWxlQWRkKAogICAgICAgIE5hbWUgICAgICAgICA9PiAnYSBkZXNjcmlwdGl2ZSBuYW1lJywKICAgICAgICBBdHRyaWJ1dGUgICAgPT4gJ0NoYW5nZVRpdGxlJywKICAgICAgICBFdmVudElEICAgICAgPT4gMSwKICAgICAgICBWYWxpZElEICAgICAgPT4gMSwKICAgICAgICBDb21tZW50ICAgICAgPT4gJ2Rlc2NyaXB0aW9uIHdoYXQgdGhlIHJ1bGUgZG9lcycsCiAgICAgICAgUnVsZSAgICAgICAgID0+ICdyZWplY3RlZCcsCiAgICAgICAgUmVjaXBpZW50SURzID0+IFsgMiwgMywgNyBdLAogICAgICAgIE1lc3NhZ2UgPT4gewogICAgICAgICAgICBBZ2VudCA9PiB7CiAgICAgICAgICAgICAgICAnZW4nID0+IHsKICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ICAgICA9PiAnSGVsbG8gQWdlbnQnLAogICAgICAgICAgICAgICAgICAgIEJvZHkgICAgICAgID0+ICdIZWxsbyBXb3JsZCcsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICdkZScgPT4gewogICAgICAgICAgICAgICAgICAgIFN1YmplY3QgICAgID0+ICdIYWxsbyBBZ2VudCcsCiAgICAgICAgICAgICAgICAgICAgQm9keSAgICAgICAgPT4gJ0hhbGxvIFdlbHQnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICdlbicgPT4gewogICAgICAgICAgICAgICAgICAgIFN1YmplY3QgICAgID0+ICdIZWxsbyBDdXN0b21lcicsCiAgICAgICAgICAgICAgICAgICAgQm9keSAgICAgICAgPT4gJ0hlbGxvIFdvcmxkJywKICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgJ2RlJyA9PiB7CiAgICAgICAgICAgICAgICAgICAgU3ViamVjdCAgICAgPT4gJ0hhbGxvIEt1bmRlJywKICAgICAgICAgICAgICAgICAgICBCb2R5ICAgICAgICA9PiAnSGFsbG8gV2VsdCcsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBOb3RpZmljYXRpb25SdWxlQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhOYW1lIEV2ZW50SUQgVmFsaWRJRCBSZWNpcGllbnRJRHMgTWVzc2FnZSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIFJlY2lwaWVudElEcyBtdXN0IGJlIGFuIGFycmF5IHJlZmVyZW5jZQogICAgaWYgKCByZWYgJFBhcmFte1JlY2lwaWVudElEc30gbmUgJ0FSUkFZJyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1JlY2lwaWVudElEcyBtdXN0IGJlIGFuIGFycmF5IHJlZmVyZW5jZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgbWVzc2FnZQogICAgZm9yIG15ICRUeXBlIChxdyhBZ2VudCBDdXN0b21lcikpIHsKCiAgICAgICAgIyBjaGVjayBtZXNzYWdlIHBhcmFtZXRlciwgd2UgYWx3YXlzIG5lZWQgYWdlbnQgYW5kIG1lc3NhZ2UKICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte01lc3NhZ2V9LT57JFR5cGV9ICkgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRUeXBlIE1lc3NhZ2UhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBlYWNoIGFyZ3VtZW50IGZvciBlYWNoIG1lc3NhZ2UgbGFuZ3VhZ2UKICAgICAgICBmb3IgbXkgJExhbmd1YWdlICggc29ydCBrZXlzICV7ICRQYXJhbXtNZXNzYWdlfS0+eyRUeXBlfSB9ICkgewoKICAgICAgICAgICAgZm9yIG15ICRBcmd1bWVudCAocXcoU3ViamVjdCBCb2R5IENvbnRlbnRUeXBlKSkgewoKICAgICAgICAgICAgICAgICMgZXJyb3IgaWYgbWVzc2FnZSBkYXRhIGlzIGluY29tcGxldGUKICAgICAgICAgICAgICAgIGlmICggISRQYXJhbXtNZXNzYWdlfS0+eyRUeXBlfS0+eyRMYW5ndWFnZX0tPnskQXJndW1lbnR9ICkgewogICAgICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkVHlwZSBNZXNzYWdlIGFyZ3VtZW50ICckQXJndW1lbnQnIGZvciBsYW5ndWFnZSAnJExhbmd1YWdlJyEiLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGZpeCBzb21lIGJhZCBzdHVmZiBmcm9tIHNvbWUgYnJvd3NlcnMgKE9wZXJhKSEKICAgICAgICAgICAgJFBhcmFte01lc3NhZ2V9LT57JFR5cGV9LT57JExhbmd1YWdlfS0+e0JvZHl9ID1+IHMvKFxuXHJ8XHJcclxufFxyXG58XHIpL1xuL2c7CiAgICAgICAgfQogICAgfQoKICAgICMgc2F2ZSBub3RpZmljYXRpb24gcnVsZQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICdJTlNFUlQgSU5UTyBjaGFuZ2Vfbm90aWZpY2F0aW9uCiAgICAgICAgICAgIChuYW1lLCBldmVudF9pZCwgdmFsaWRfaWQsIGl0ZW1fYXR0cmlidXRlLCBjb21tZW50cywgbm90aWZpY2F0aW9uX3J1bGUpCiAgICAgICAgICAgIFZBTFVFUyAoPywgPywgPywgPywgPywgPyknLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte05hbWV9LCAgICAgIFwkUGFyYW17RXZlbnRJRH0sIFwkUGFyYW17VmFsaWRJRH0sCiAgICAgICAgICAgIFwkUGFyYW17QXR0cmlidXRlfSwgXCRQYXJhbXtDb21tZW50fSwgXCRQYXJhbXtSdWxlfSwKICAgICAgICBdLAogICAgKTsKCiAgICAjIGdldCBJRCBvZiBydWxlCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIGlkCiAgICAgICAgICAgIEZST00gY2hhbmdlX25vdGlmaWNhdGlvbgogICAgICAgICAgICBXSEVSRSBuYW1lID0gPwogICAgICAgICAgICBBTkQgZXZlbnRfaWQgPSA/CiAgICAgICAgICAgIEFORCB2YWxpZF9pZCA9ID8KICAgICAgICAgICAgQU5EIGl0ZW1fYXR0cmlidXRlID0gPwogICAgICAgICAgICBBTkQgY29tbWVudHMgPSA/CiAgICAgICAgICAgIEFORCBub3RpZmljYXRpb25fcnVsZSA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte05hbWV9LCAgICAgIFwkUGFyYW17RXZlbnRJRH0sIFwkUGFyYW17VmFsaWRJRH0sCiAgICAgICAgICAgIFwkUGFyYW17QXR0cmlidXRlfSwgXCRQYXJhbXtDb21tZW50fSwgXCRQYXJhbXtSdWxlfSwKICAgICAgICBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggSUQKICAgIG15ICRSdWxlSUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRSdWxlSUQgPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBpZiAhJFJ1bGVJRDsKCiAgICAjIGluc2VydCByZWNpcGllbnRzCiAgICBmb3IgbXkgJFJlY2lwaWVudElEICggQHsgJFBhcmFte1JlY2lwaWVudElEc30gfSApIHsKICAgICAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICAgICAgU1FMICA9PiAnSU5TRVJUIElOVE8gY2hhbmdlX25vdGlmaWNhdGlvbl9yZWMgKG5vdGlmaWNhdGlvbl9pZCwgZ3JvdXBfaWQpIFZBTFVFUyAoPywgPyknLAogICAgICAgICAgICBCaW5kID0+IFsgXCRSdWxlSUQsIFwkUmVjaXBpZW50SUQgXSwKICAgICAgICApOwogICAgfQoKICAgICMgaW5zZXJ0IGNoYW5nZSBub3RpZmljYXRpb24gbWVzc2FnZSBkYXRhCiAgICBmb3IgbXkgJFR5cGUgKHF3KEFnZW50IEN1c3RvbWVyKSkgewoKICAgICAgICBmb3IgbXkgJExhbmd1YWdlICggc29ydCBrZXlzICV7ICRQYXJhbXtNZXNzYWdlfS0+eyRUeXBlfSB9ICkgewoKICAgICAgICAgICAgbXkgJU1lc3NhZ2UgPSAleyAkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0tPnskTGFuZ3VhZ2V9IH07CgogICAgICAgICAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICAgICAgICAgIFNRTCA9PiAnSU5TRVJUIElOVE8gY2hhbmdlX25vdGlmaWNhdGlvbl9tZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgKG5vdGlmaWNhdGlvbl9pZCwgc3ViamVjdCwgdGV4dCwgY29udGVudF90eXBlLCBsYW5ndWFnZSwgbm90aWZpY2F0aW9uX3R5cGUpCiAgICAgICAgICAgICAgICAgICAgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/KScsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgICAgICAgICBcJFJ1bGVJRCwKICAgICAgICAgICAgICAgICAgICBcJE1lc3NhZ2V7U3ViamVjdH0sCiAgICAgICAgICAgICAgICAgICAgXCRNZXNzYWdle0JvZHl9LAogICAgICAgICAgICAgICAgICAgIFwkTWVzc2FnZXtDb250ZW50VHlwZX0sCiAgICAgICAgICAgICAgICAgICAgXCRMYW5ndWFnZSwKICAgICAgICAgICAgICAgICAgICBcJFR5cGUsCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgZm9yIG15ICRLZXkgKAogICAgICAgICdOb3RpZmljYXRpb25SdWxlTGlzdCcsCiAgICAgICAgJ05vdGlmaWNhdGlvblJ1bGVTZWFyY2g6OlZhbGlkOjowJywKICAgICAgICAnTm90aWZpY2F0aW9uUnVsZVNlYXJjaDo6VmFsaWQ6OjEnLAogICAgICAgICdOb3RpZmljYXRpb25SdWxlU2VhcmNoOjpWYWxpZDo6MDo6RXZlbnRJRDo6JyAuICRQYXJhbXtFdmVudElEfSwKICAgICAgICAnTm90aWZpY2F0aW9uUnVsZVNlYXJjaDo6VmFsaWQ6OjE6OkV2ZW50SUQ6OicgLiAkUGFyYW17RXZlbnRJRH0sCiAgICAgICAgKQogICAgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuICRSdWxlSUQ7Cn0KCj1oZWFkMiBOb3RpZmljYXRpb25SdWxlVXBkYXRlKCkKClVwZGF0ZXMgYW4gZXhpc3Rpbmcgbm90aWZpY2F0aW9uIHJ1bGUuCgogICAgbXkgJFN1Y2Nlc3MgPSAkTm90aWZpY2F0aW9uT2JqZWN0LT5Ob3RpZmljYXRpb25SdWxlVXBkYXRlKAogICAgICAgIElEICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdhIGRlc2NyaXB0aXZlIG5hbWUnLAogICAgICAgIEF0dHJpYnV0ZSAgICA9PiAnQ2hhbmdlVGl0bGUnLAogICAgICAgIEV2ZW50SUQgICAgICA9PiAxLAogICAgICAgIFZhbGlkSUQgICAgICA9PiAxLAogICAgICAgIENvbW1lbnQgICAgICA9PiAnZGVzY3JpcHRpb24gd2hhdCB0aGUgcnVsZSBkb2VzJywKICAgICAgICBSdWxlICAgICAgICAgPT4gJ3JlamVjdGVkJywKICAgICAgICBSZWNpcGllbnRJRHMgPT4gWyAyLCAzLCA3IF0sCiAgICAgICAgTWVzc2FnZSA9PiB7CiAgICAgICAgICAgIEFnZW50ID0+IHsKICAgICAgICAgICAgICAgICdlbicgPT4gewogICAgICAgICAgICAgICAgICAgIFN1YmplY3QgICAgID0+ICdIZWxsbyBBZ2VudCcsCiAgICAgICAgICAgICAgICAgICAgQm9keSAgICAgICAgPT4gJ0hlbGxvIFdvcmxkJywKICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgJ2RlJyA9PiB7CiAgICAgICAgICAgICAgICAgICAgU3ViamVjdCAgICAgPT4gJ0hhbGxvIEFnZW50JywKICAgICAgICAgICAgICAgICAgICBCb2R5ICAgICAgICA9PiAnSGFsbG8gV2VsdCcsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ3VzdG9tZXIgPT4gewogICAgICAgICAgICAgICAgJ2VuJyA9PiB7CiAgICAgICAgICAgICAgICAgICAgU3ViamVjdCAgICAgPT4gJ0hlbGxvIEN1c3RvbWVyJywKICAgICAgICAgICAgICAgICAgICBCb2R5ICAgICAgICA9PiAnSGVsbG8gV29ybGQnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAnZGUnID0+IHsKICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ICAgICA9PiAnSGFsbG8gS3VuZGUnLAogICAgICAgICAgICAgICAgICAgIEJvZHkgICAgICAgID0+ICdIYWxsbyBXZWx0JywKICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIE5vdGlmaWNhdGlvblJ1bGVVcGRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIE5hbWUgRXZlbnRJRCBWYWxpZElEIFJlY2lwaWVudElEcyBNZXNzYWdlKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgUmVjaXBpZW50SURzIG11c3QgYmUgYW4gYXJyYXkgcmVmZXJlbmNlCiAgICBpZiAoIHJlZiAkUGFyYW17UmVjaXBpZW50SURzfSBuZSAnQVJSQVknICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnUmVjaXBpZW50SURzIG11c3QgYmUgYW4gYXJyYXkgcmVmZXJlbmNlIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBtZXNzYWdlCiAgICBmb3IgbXkgJFR5cGUgKHF3KEFnZW50IEN1c3RvbWVyKSkgewoKICAgICAgICAjIGNoZWNrIG1lc3NhZ2UgcGFyYW1ldGVyLCB3ZSBhbHdheXMgbmVlZCBhZ2VudCBhbmQgbWVzc2FnZQogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0gKSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJFR5cGUgTWVzc2FnZSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGVhY2ggYXJndW1lbnQgZm9yIGVhY2ggbWVzc2FnZSBsYW5ndWFnZQogICAgICAgIGZvciBteSAkTGFuZ3VhZ2UgKCBzb3J0IGtleXMgJXsgJFBhcmFte01lc3NhZ2V9LT57JFR5cGV9IH0gKSB7CgogICAgICAgICAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhTdWJqZWN0IEJvZHkgQ29udGVudFR5cGUpKSB7CgogICAgICAgICAgICAgICAgIyBlcnJvciBpZiBtZXNzYWdlIGRhdGEgaXMgaW5jb21wbGV0ZQogICAgICAgICAgICAgICAgaWYgKCAhJFBhcmFte01lc3NhZ2V9LT57JFR5cGV9LT57JExhbmd1YWdlfS0+eyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRUeXBlIE1lc3NhZ2UgYXJndW1lbnQgJyRBcmd1bWVudCcgZm9yIGxhbmd1YWdlICckTGFuZ3VhZ2UnISIsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZml4IHNvbWUgYmFkIHN0dWZmIGZyb20gc29tZSBicm93c2VycyAoT3BlcmEpIQogICAgICAgICAgICAkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0tPnskTGFuZ3VhZ2V9LT57Qm9keX0gPX4gcy8oXG5ccnxcclxyXG58XHJcbnxccikvXG4vZzsKICAgICAgICB9CiAgICB9CgogICAgIyBzYXZlIG5vdGlmaWNhdGlvbiBydWxlCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJ1VQREFURSBjaGFuZ2Vfbm90aWZpY2F0aW9uICcKICAgICAgICAgICAgLiAnU0VUIG5hbWUgPSA/LCBldmVudF9pZCA9ID8sIHZhbGlkX2lkID0gPywgaXRlbV9hdHRyaWJ1dGUgPSA/LCAnCiAgICAgICAgICAgIC4gJ2NvbW1lbnRzID0gPywgbm90aWZpY2F0aW9uX3J1bGUgPSA/IFdIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17TmFtZX0sICAgICAgXCRQYXJhbXtFdmVudElEfSwgXCRQYXJhbXtWYWxpZElEfSwKICAgICAgICAgICAgXCRQYXJhbXtBdHRyaWJ1dGV9LCBcJFBhcmFte0NvbW1lbnR9LCBcJFBhcmFte1J1bGV9LAogICAgICAgICAgICBcJFBhcmFte0lEfSwKICAgICAgICBdLAogICAgKTsKCiAgICAjIGRlbGV0ZSBvbGQgcmVjaXBpZW50IGVudHJpZXMKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCAgPT4gJ0RFTEVURSBGUk9NIGNoYW5nZV9ub3RpZmljYXRpb25fcmVjIFdIRVJFIG5vdGlmaWNhdGlvbl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0lEfSBdLAogICAgKTsKCiAgICAjIGluc2VydCByZWNpcGllbnRzCiAgICBmb3IgbXkgJFJlY2lwaWVudElEICggQHsgJFBhcmFte1JlY2lwaWVudElEc30gfSApIHsKICAgICAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICAgICAgU1FMICA9PiAnSU5TRVJUIElOVE8gY2hhbmdlX25vdGlmaWNhdGlvbl9yZWMgKG5vdGlmaWNhdGlvbl9pZCwgZ3JvdXBfaWQpIFZBTFVFUyAoPywgPyknLAogICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtJRH0sIFwkUmVjaXBpZW50SUQgXSwKICAgICAgICApOwogICAgfQoKICAgICMgZGVsZXRlIG9sZCBjaGFuZ2Ugbm90aWZpY2F0aW9uIG1lc3NhZ2UgZGF0YQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMICA9PiAnREVMRVRFIEZST00gY2hhbmdlX25vdGlmaWNhdGlvbl9tZXNzYWdlIFdIRVJFIG5vdGlmaWNhdGlvbl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0lEfSBdLAogICAgKTsKCiAgICAjIGluc2VydCBjaGFuZ2Ugbm90aWZpY2F0aW9uIG1lc3NhZ2UgZGF0YQogICAgZm9yIG15ICRUeXBlIChxdyhBZ2VudCBDdXN0b21lcikpIHsKCiAgICAgICAgZm9yIG15ICRMYW5ndWFnZSAoIHNvcnQga2V5cyAleyAkUGFyYW17TWVzc2FnZX0tPnskVHlwZX0gfSApIHsKCiAgICAgICAgICAgIG15ICVNZXNzYWdlID0gJXsgJFBhcmFte01lc3NhZ2V9LT57JFR5cGV9LT57JExhbmd1YWdlfSB9OwoKICAgICAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgICAgICAgICBTUUwgPT4gJ0lOU0VSVCBJTlRPIGNoYW5nZV9ub3RpZmljYXRpb25fbWVzc2FnZQogICAgICAgICAgICAgICAgICAgIChub3RpZmljYXRpb25faWQsIHN1YmplY3QsIHRleHQsIGNvbnRlbnRfdHlwZSwgbGFuZ3VhZ2UsIG5vdGlmaWNhdGlvbl90eXBlKQogICAgICAgICAgICAgICAgICAgIFZBTFVFUyAoPywgPywgPywgPywgPywgPyknLAogICAgICAgICAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgICAgICAgICAgXCRQYXJhbXtJRH0sCiAgICAgICAgICAgICAgICAgICAgXCRNZXNzYWdle1N1YmplY3R9LAogICAgICAgICAgICAgICAgICAgIFwkTWVzc2FnZXtCb2R5fSwKICAgICAgICAgICAgICAgICAgICBcJE1lc3NhZ2V7Q29udGVudFR5cGV9LAogICAgICAgICAgICAgICAgICAgIFwkTGFuZ3VhZ2UsCiAgICAgICAgICAgICAgICAgICAgXCRUeXBlLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBkZWxldGUgY2FjaGUKICAgIGZvciBteSAkS2V5ICgKICAgICAgICAnTm90aWZpY2F0aW9uUnVsZUdldDo6SUQ6OicgLiAkUGFyYW17SUR9LAogICAgICAgICdOb3RpZmljYXRpb25SdWxlTGlzdCcsCiAgICAgICAgJ05vdGlmaWNhdGlvblJ1bGVTZWFyY2g6OlZhbGlkOjowJywKICAgICAgICAnTm90aWZpY2F0aW9uUnVsZVNlYXJjaDo6VmFsaWQ6OjEnLAogICAgICAgICdOb3RpZmljYXRpb25SdWxlU2VhcmNoOjpWYWxpZDo6MDo6RXZlbnRJRDo6JyAuICRQYXJhbXtFdmVudElEfSwKICAgICAgICAnTm90aWZpY2F0aW9uUnVsZVNlYXJjaDo6VmFsaWQ6OjE6OkV2ZW50SUQ6OicgLiAkUGFyYW17RXZlbnRJRH0sCiAgICAgICAgKQogICAgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBOb3RpZmljYXRpb25SdWxlRGVsZXRlKCkKCmRlbGV0ZXMgYW4gZXhpc3Rpbmcgbm90aWZpY2F0aW9uIHJ1bGUKCiAgICBteSAkU3VjY2VzcyA9ICROb3RpZmljYXRpb25PYmplY3QtPk5vdGlmaWNhdGlvblJ1bGVEZWxldGUoCiAgICAgICAgSUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBOb3RpZmljYXRpb25SdWxlRGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIElEISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBkZWxldGUgY2hhbmdlIG5vdGlmaWNhdGlvbiByZWNpcGllbnQgZW50cmllcwogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMICA9PiAnREVMRVRFIEZST00gY2hhbmdlX25vdGlmaWNhdGlvbl9yZWMgV0hFUkUgbm90aWZpY2F0aW9uX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17SUR9IF0sCiAgICApOwoKICAgICMgZGVsZXRlIGNoYW5nZSBub3RpZmljYXRpb24gbWVzc2FnZSBkYXRhCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgID0+ICdERUxFVEUgRlJPTSBjaGFuZ2Vfbm90aWZpY2F0aW9uX21lc3NhZ2UgV0hFUkUgbm90aWZpY2F0aW9uX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17SUR9IF0sCiAgICApOwoKICAgICMgZGVsZXRlIGNoYW5nZSBub3RpZmljYXRpb24KICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCAgPT4gJ0RFTEVURSBGUk9NIGNoYW5nZV9ub3RpZmljYXRpb24gV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtJRH0gXSwKICAgICk7CgogICAgIyBjbGVhbnVwIGNhY2hlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBOb3RpZmljYXRpb25SdWxlTGlzdCgpCgpyZXR1cm5zIGFuIGFycmF5IHJlZmVyZW5jZSB3aXRoIElEcyBvZiBhbGwgZXhpc3Rpbmcgbm90aWZpY2F0aW9uIHJ1bGVzCgogICAgbXkgJExpc3QgPSAkTm90aWZpY2F0aW9uT2JqZWN0LT5Ob3RpZmljYXRpb25SdWxlTGlzdCgpOwoKcmV0dXJucwoKICAgIFsgMSwgMiwgMyBdCgo9Y3V0CgpzdWIgTm90aWZpY2F0aW9uUnVsZUxpc3QgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIGNoZWNrIHRoZSBjYWNoZQogICAgbXkgJENhY2hlS2V5ID0gJ05vdGlmaWNhdGlvblJ1bGVMaXN0JzsKICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwogICAgcmV0dXJuICRDYWNoZSBpZiAkQ2FjaGU7CgogICAgIyBkbyBzcWwgcXVlcnksCiAgICAjIHNvcnQgaW4gYSB1c2VyZnJpZW5kbHkgZmFzaGlvbgogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBpZCBGUk9NIGNoYW5nZV9ub3RpZmljYXRpb24gJwogICAgICAgICAgICAuICdPUkRFUiBCWSBldmVudF9pZCwgaXRlbV9hdHRyaWJ1dGUsIG5vdGlmaWNhdGlvbl9ydWxlJywKICAgICk7CgogICAgIyBmZXRjaCBJRHMKICAgIG15IEBJRHM7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQElEcywgJFJvd1swXTsKICAgIH0KCiAgICAjIHNhdmUgdmFsdWVzIGluIGNhY2hlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+U2V0KAogICAgICAgIFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXksCiAgICAgICAgVmFsdWUgPT4gXEBJRHMsCiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICApOwoKICAgIHJldHVybiBcQElEczsKfQoKPWhlYWQyIE5vdGlmaWNhdGlvblJ1bGVTZWFyY2goKQoKUmV0dXJucyBhbiBhcnJheSByZWZlcmVuY2Ugd2l0aCBJRHMgb2YgYWxsIG1hdGNoaW5nIG5vdGlmaWNhdGlvbiBydWxlcy4KVGhlIG9ubHkgdmFsaWQgc2VhcmNoIHBhcmFtZXRlciBpcyB0aGUgRXZlbnRJRC4KCiAgICBteSAkTm90aWZpY2F0aW9uUnVsZUlEcyA9ICROb3RpZmljYXRpb25PYmplY3QtPk5vdGlmaWNhdGlvblJ1bGVTZWFyY2goCiAgICAgICAgRXZlbnRJRCA9PiA0LCAgICAjIG9wdGlvbmFsLCBwcmltYXJ5IGtleSBpbiBjaGFuZ2VfaGlzdG9yeV90eXBlCiAgICAgICAgVmFsaWQgICA9PiAxLCAgICAjIG9wdGlvbmFsLCBkZWZhdWx0IGlzIDEKICAgICk7CgpyZXR1cm5zCgogICAgWyAxLCAyLCAzIF0KCj1jdXQKCnN1YiBOb3RpZmljYXRpb25SdWxlU2VhcmNoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFZhbGlkID0gZGVmaW5lZCAkUGFyYW17VmFsaWR9ID8gJFBhcmFte1ZhbGlkfSA6IDE7CgogICAgbXkgQFNRTFdoZXJlOyAgICAjIGFzc2VtYmxlIHRoZSBjb25kaXRpb25zIHVzZWQgaW4gdGhlIFdIRVJFIGNsYXVzZQogICAgbXkgQFNRTEJpbmQ7ICAgICAjIHBhcmFtZXRlcnMgZm9yIHRoZSBXSEVSRSBjbGF1c2UKCiAgICAjIGRlZmluZSB0aGUgY2FjaGUga2V5CiAgICBteSAkQ2FjaGVLZXkgPSAnTm90aWZpY2F0aW9uUnVsZVNlYXJjaDo6VmFsaWQ6OicgLiAkVmFsaWQ7CgogICAgIyBmb3Igbm93IHdlIG9ubHkgaGF2ZSBhIHNpbmdsZSBzZWFyY2ggcGFyYW0KICAgIGlmICggJFBhcmFte0V2ZW50SUR9ICkgewogICAgICAgIHB1c2ggQFNRTFdoZXJlLCAnY24uZXZlbnRfaWQgPSA/JzsKICAgICAgICBwdXNoIEBTUUxCaW5kLCAgXCRQYXJhbXtFdmVudElEfTsKICAgICAgICAkQ2FjaGVLZXkgLj0gJzo6RXZlbnRJRDo6JyAuICRQYXJhbXtFdmVudElEfTsKICAgIH0KCiAgICBteSAkQ2FjaGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5LAogICAgKTsKICAgIHJldHVybiAkQ2FjaGUgaWYgJENhY2hlOwoKICAgIG15ICRTUUwgPSAnU0VMRUNUIGlkIEZST00gY2hhbmdlX25vdGlmaWNhdGlvbiBjbiAnOwoKICAgICMgYWRkIHRoZSBXSEVSRSBjbGF1c2UKICAgIGlmIChAU1FMV2hlcmUpIHsKICAgICAgICAkU1FMIC49ICdXSEVSRSAnOwogICAgICAgICRTUUwgLj0gam9pbiAnIEFORCAnLCBtYXAgeyIoICRfICkifSBAU1FMV2hlcmU7CiAgICAgICAgJFNRTCAuPSAnICc7CiAgICB9CgogICAgIyBhZGQgdmFsaWQgb3B0aW9uCiAgICBpZiAoJFZhbGlkKSB7CiAgICAgICAgJFNRTCAuPSAnQU5EIGNuLnZhbGlkX2lkIElOICgnCiAgICAgICAgICAgIC4gam9pbiggJywgJywgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkSURzR2V0KCkgKSAuICcpICc7CiAgICB9CgogICAgIyBhZGQgdGhlIE9SREVSIEJZIGNsYXVzZQogICAgJFNRTCAuPSAnT1JERVIgQlkgY24uaWQgJzsKCiAgICAjIGRvIHNxbCBxdWVyeQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgQmluZCA9PiBcQFNRTEJpbmQsCiAgICApOwoKICAgICMgZmV0Y2ggSURzCiAgICBteSBASURzOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBwdXNoIEBJRHMsICRSb3dbMF07CiAgICB9CgogICAgIyBzYXZlIHZhbHVlcyBpbiBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+IFxASURzLAogICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgKTsKCiAgICByZXR1cm4gXEBJRHM7Cn0KCj1oZWFkMiBSZWNpcGllbnRMb29rdXAoKQoKUmV0dXJucyB0aGUgSUQgd2hlbiB5b3UgcGFzcyB0aGUgcmVjaXBpZW50IG5hbWUgYW5kIHJldHVybnMgdGhlIG5hbWUgaWYgeW91CnBhc3MgdGhlIHJlY2lwaWVudCBJRC4KCiAgICBteSAkSUQgPSAkTm90aWZpY2F0aW9uT2JqZWN0LT5SZWNpcGllbnRMb29rdXAoCiAgICAgICAgTmFtZSA9PiAnQ2hhbmdlQnVpbGRlcicsCiAgICApOwoKICAgIG15ICROYW1lID0gJE5vdGlmaWNhdGlvbk9iamVjdC0+UmVjaXBpZW50TG9va3VwKAogICAgICAgIElEID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgUmVjaXBpZW50TG9va3VwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtJRH0gJiYgISRQYXJhbXtOYW1lfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgZWl0aGVyIElEIG9yIE5hbWUhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtJRH0gJiYgJFBhcmFte05hbWV9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBlaXRoZXIgSUQgb3IgTmFtZSAtIG5vdCBib3RoIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayB0aGUgY2FjaGUKICAgIG15ICRDYWNoZUtleTsKICAgIGlmICggJFBhcmFte0lEfSApIHsKICAgICAgICAkQ2FjaGVLZXkgPSAnUmVjaXBpZW50TG9va3VwOjpJRDo6JyAuICRQYXJhbXtJRH07CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtOYW1lfSApIHsKICAgICAgICAkQ2FjaGVLZXkgPSAnUmVjaXBpZW50TG9va3VwOjpOYW1lOjonIC4gJFBhcmFte05hbWV9OwogICAgfQogICAgbXkgJENhY2hlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkdldCgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICk7CiAgICByZXR1cm4gJENhY2hlIGlmICRDYWNoZTsKCiAgICAjIGRldGVybWluZSBzcWwgc3RhdGVtZW50IGFuZCBiaW5kIHBhcmFtZXRlcnMKICAgIG15ICRTUUw7CiAgICBteSBAQmluZHM7CiAgICBpZiAoICRQYXJhbXtJRH0gKSB7CiAgICAgICAgJFNRTCAgID0gJ1NFTEVDVCBuYW1lIEZST00gY2hhbmdlX25vdGlmaWNhdGlvbl9ncnBzIFdIRVJFIGlkID0gPyc7CiAgICAgICAgQEJpbmRzID0gKCBcJFBhcmFte0lEfSApOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17TmFtZX0gKSB7CiAgICAgICAgJFNRTCAgID0gJ1NFTEVDVCBpZCBGUk9NIGNoYW5nZV9ub3RpZmljYXRpb25fZ3JwcyBXSEVSRSBuYW1lID0gPyc7CiAgICAgICAgQEJpbmRzID0gKCBcJFBhcmFte05hbWV9ICk7CiAgICB9CgogICAgIyBkbyBzcWwgcXVlcnkKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJFNRTCwKICAgICAgICBCaW5kICA9PiBcQEJpbmRzLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZ2V0IHZhbHVlCiAgICBteSAkVmFsdWU7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRWYWx1ZSA9ICRSb3dbMF07CiAgICB9CgogICAgIyBzYXZlIHZhbHVlIGluIGNhY2hlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+U2V0KAogICAgICAgIFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXksCiAgICAgICAgVmFsdWUgPT4gJFZhbHVlLAogICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgKTsKCiAgICByZXR1cm4gJFZhbHVlOwp9Cgo9aGVhZDIgUmVjaXBpZW50TGlzdCgpCgpSZXR1cm5zIGFuIGFycmF5IHJlZmVyZW5jZSB3aXRoIGhhc2ggcmVmZXJlbmNlcy4gVGhlIGtleSBvZiB0aGUgaGFzaCByZWZlcmVuY2UgaXMgdGhlIGlkCm9mIGFuIHJlY2lwaWVudCBhbmQgdGhlIGh1bWFuIHJlYWRhYmxlIGFuZCB0cmFuc2xhdGFibGUgbmFtZSBpcyB0aGUgdmFsdWUuCgogICAgbXkgJExpc3QgPSAkTm90aWZpY2F0aW9uT2JqZWN0LT5SZWNpcGllbnRMaXN0KCk7CgpyZXR1cm5zCgogICAgWwogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gMSwKICAgICAgICAgICAgVmFsdWUgPT4gJ0NoYW5nZSBCdWlsZGVyJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gMiwKICAgICAgICAgICAgVmFsdWUgPT4gJ0NoYW5nZSBNYW5hZ2VyJywKICAgICAgICB9LAogICAgXQoKPWN1dAoKc3ViIFJlY2lwaWVudExpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIEh1bWFuIHJlYWRhYmxlIHRyYW5zbGF0YWJsZSBuYW1lcyBvZiByZWNpcGllbnRzLgogICAgbXkgJUh1bWFuUmVhZGFibGVSZWNpcGllbnQgPSAoCiAgICAgICAgQ2hhbmdlQnVpbGRlciAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0NoYW5nZSBCdWlsZGVyJyksCiAgICAgICAgT2xkQ2hhbmdlQnVpbGRlciAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1ByZXZpb3VzIENoYW5nZSBCdWlsZGVyJyksCiAgICAgICAgQ2hhbmdlTWFuYWdlciAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0NoYW5nZSBNYW5hZ2VyJyksCiAgICAgICAgT2xkQ2hhbmdlTWFuYWdlciAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1ByZXZpb3VzIENoYW5nZSBNYW5hZ2VyJyksCiAgICAgICAgQ0FCQ3VzdG9tZXJzICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0NBQiBDdXN0b21lcnMnKSwKICAgICAgICBDQUJBZ2VudHMgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnQ0FCIEFnZW50cycpLAogICAgICAgIFdvcmtPcmRlckFnZW50cyAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdXb3Jrb3JkZXIgQWdlbnRzJyksCiAgICAgICAgV29ya09yZGVyQWdlbnQgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1dvcmtvcmRlciBBZ2VudCcpLAogICAgICAgIE9sZFdvcmtPcmRlckFnZW50ICAgICAgPT4gVHJhbnNsYXRhYmxlKCdQcmV2aW91cyBXb3Jrb3JkZXIgQWdlbnQnKSwKICAgICAgICBDaGFuZ2VJbml0aWF0b3JzICAgICAgID0+IFRyYW5zbGF0YWJsZSgnQ2hhbmdlIEluaXRpYXRvcnMnKSwKICAgICAgICBHcm91cElUU01DaGFuZ2UgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnR3JvdXAgSVRTTUNoYW5nZScpLAogICAgICAgIEdyb3VwSVRTTUNoYW5nZUJ1aWxkZXIgPT4gVHJhbnNsYXRhYmxlKCdHcm91cCBJVFNNQ2hhbmdlQnVpbGRlcicpLAogICAgICAgIEdyb3VwSVRTTUNoYW5nZU1hbmFnZXIgPT4gVHJhbnNsYXRhYmxlKCdHcm91cCBJVFNNQ2hhbmdlTWFuYWdlcicpLAogICAgKTsKCiAgICAjIGRvIFNRTCBxdWVyeQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBpZCwgbmFtZQogICAgICAgICAgICBGUk9NIGNoYW5nZV9ub3RpZmljYXRpb25fZ3JwcwogICAgICAgICAgICBPUkRFUiBCWSBuYW1lJywKICAgICk7CgogICAgIyBmZXRjaCByZWNpcGllbnRzCiAgICBteSBAUmVjaXBpZW50czsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgbXkgJFJlY2lwaWVudCA9IHsKICAgICAgICAgICAgS2V5ICAgPT4gJFJvd1swXSwKICAgICAgICAgICAgVmFsdWUgPT4gJEh1bWFuUmVhZGFibGVSZWNpcGllbnR7ICRSb3dbMV0gfSB8fCAkUm93WzFdLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAUmVjaXBpZW50cywgJFJlY2lwaWVudDsKICAgIH0KCiAgICByZXR1cm4gXEBSZWNpcGllbnRzOwp9Cgo9YmVnaW4gSW50ZXJuYWw6Cgo9aGVhZDIgX05vdGlmaWNhdGlvblJlcGxhY2VNYWNyb3MoKQoKVGhpcyBtZXRob2QgcmVwbGFjZXMgYWxsIHRoZSA8T1RSU194eHh4PiBtYWNyb3MgaW4gbm90aWZpY2F0aW9uIHRleHQuCgogICAgbXkgJENsZWFuVGV4dCA9ICROb3RpZmljYXRpb25PYmplY3QtPl9Ob3RpZmljYXRpb25SZXBsYWNlTWFjcm9zKAogICAgICAgIFR5cGUgICAgICA9PiAnQ2hhbmdlJywgICAgIyBDaGFuZ2V8V29ya09yZGVyCiAgICAgICAgVGV4dCAgICAgID0+ICdTb21lIDxPVFJTX0NPTkZJR19GUUROPiB0ZXh0JywKICAgICAgICBSaWNoVGV4dCAgPT4gMSwgICAgICAgICAgICMgb3B0aW9uYWwsIGlzIFRleHQgcmljaHRleHQgb3Igbm90LiBkZWZhdWx0IDAKICAgICAgICBSZWNpcGllbnQgPT4geyVVc2VyfSwKICAgICAgICBEYXRhICAgICAgPT4gewogICAgICAgICAgICBDaGFuZ2VCdWlsZGVyID0+IHsKICAgICAgICAgICAgICAgIFVzZXJGaXJzdG5hbWUgPT4gJ1RvbScsCiAgICAgICAgICAgICAgICBVc2VyTGFzdG5hbWUgID0+ICdUZXN0ZXInLAogICAgICAgICAgICAgICAgVXNlckVtYWlsICAgICA9PiAndHRAb3Rycy5jb20nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgQ2hhbmdlICAgID0+ICRDaGFuZ2UsCiAgICAgICAgV29ya09yZGVyID0+ICRXb3JrT3JkZXIsCiAgICAgICAgTGluayAgICAgID0+ICRMaW5rLAogICAgICAgIExhbmd1YWdlICA9PiAkTGFuZ3VhZ2UsICAgICMgdXNlZCBmb3IgdHJhbnNsYXRpbmcgc3RhdGVzIGFuZCBzdWNoCiAgICAgICAgVXNlcklEICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIF9Ob3RpZmljYXRpb25SZXBsYWNlTWFjcm9zIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhUeXBlIFRleHQgRGF0YSBVc2VySUQgQ2hhbmdlIFdvcmtPcmRlciBMaW5rIExhbmd1YWdlKSkgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFRleHQgPSAkUGFyYW17VGV4dH07CgogICAgIyBkZXRlcm1pbmUgd2hhdCAibWFjcm8iIGRlbGltaXRlcnMgYXJlIHVzZWQKICAgIG15ICRTdGFydCA9ICc8JzsKICAgIG15ICRFbmQgICA9ICc+JzsKCiAgICAjIHdpdGggcmljaHRleHQgZW5hYmxlZCwgdGhlIGRlbGltaXRlcnMgY2hhbmdlCiAgICBpZiAoICRQYXJhbXtSaWNoVGV4dH0gKSB7CiAgICAgICAgJFN0YXJ0ID0gJyZsdDsnOwogICAgICAgICRFbmQgICA9ICcmZ3Q7JzsKICAgICAgICAkVGV4dCA9fiBzeyAoXG58XHIpIH17fXhtc2c7CiAgICB9CgogICAgIyB0cmFuc2xhdGUgQ2hhbmdlIGFuZCBXb3Jrb3JkZXIgdmFsdWVzLCB3aGVyZSBhcHByb3ByaWF0ZQogICAgIyB3ZSBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBsYW5ndWFnZSBvYmplY3QgbWFudWFsbHkgKHdpdGhvdXQgdGhlIG9iamVjdCBtYW5hZ2VyKSwKICAgICMgc28gd2UgY2FuIHRyYW5zbGF0ZSBpbnRvIHRoZSBsYW5ndWFnZSBvZiB0aGUgcmVjaXBpZW50CiAgICBteSAkTGFuZ3VhZ2VPYmplY3QgPSBLZXJuZWw6Okxhbmd1YWdlLT5uZXcoCiAgICAgICAgVXNlckxhbmd1YWdlID0+ICRQYXJhbXtMYW5ndWFnZX0sCiAgICApOwogICAgbXkgJUNoYW5nZURhdGEgPSAleyAkUGFyYW17Q2hhbmdlfSB9OwogICAgZm9yIG15ICRGaWVsZCAocXcoQ2hhbmdlU3RhdGUgQ2F0ZWdvcnkgUHJpb3JpdHkgSW1wYWN0KSkgewogICAgICAgICRDaGFuZ2VEYXRheyRGaWVsZH0gPSAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggJENoYW5nZURhdGF7JEZpZWxkfSApOwogICAgfQoKICAgIG15ICVXb3JrT3JkZXJEYXRhID0gJXsgJFBhcmFte1dvcmtPcmRlcn0gfTsKICAgIGZvciBteSAkRmllbGQgKHF3KFdvcmtPcmRlclN0YXRlIFdvcmtPcmRlclR5cGUpKSB7CiAgICAgICAgJFdvcmtPcmRlckRhdGF7JEZpZWxkfSA9ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAkV29ya09yZGVyRGF0YXskRmllbGR9ICk7CiAgICB9CgogICAgIyByZXBsYWNlIGNvbmZpZyBvcHRpb25zCiAgICBteSAkVGFnID0gJFN0YXJ0IC4gJ09UUlNfQ09ORklHXyc7CiAgICAkVGV4dCA9fiBzeyAkVGFnICguKz8pICRFbmQgfXskS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJDEpfWVneDsKCiAgICAjIGNsZWFudXAKICAgICRUZXh0ID1+IHN7ICRUYWcgLis/ICRFbmQgfXstfWdpOwoKICAgICRUYWcgPSAkU3RhcnQgLiAnT1RSU19BZ2VudF8nOwogICAgbXkgJFRhZzIgICAgICAgID0gJFN0YXJ0IC4gJ09UUlNfQ1VSUkVOVF8nOwogICAgbXkgJUN1cnJlbnRVc2VyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0VXNlckRhdGEoIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSApOwoKICAgICMgaHRtbCBxdW90aW5nIG9mIGNvbnRlbnQKICAgIGlmICggJFBhcmFte1JpY2hUZXh0fSApIHsKICAgICAgICBLRVk6CiAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJUN1cnJlbnRVc2VyICkgewogICAgICAgICAgICBuZXh0IEtFWSBpZiAhJEN1cnJlbnRVc2VyeyRLZXl9OwogICAgICAgICAgICAkQ3VycmVudFVzZXJ7JEtleX0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyktPlRvSFRNTCgKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkQ3VycmVudFVzZXJ7JEtleX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgcmVwbGFjZSBpdAogICAgS0VZOgogICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJUN1cnJlbnRVc2VyICkgewogICAgICAgIG5leHQgS0VZIGlmICFkZWZpbmVkICRDdXJyZW50VXNlcnskS2V5fTsKICAgICAgICAkVGV4dCA9fiBzeyAkVGFnICRLZXkgJEVuZCB9eyRDdXJyZW50VXNlcnskS2V5fX1neG1zaTsKICAgICAgICAkVGV4dCA9fiBzeyAkVGFnMiAkS2V5ICRFbmQgfXskQ3VycmVudFVzZXJ7JEtleX19Z3htc2k7CiAgICB9CgogICAgIyByZXBsYWNlIG90aGVyIG5lZWRlZCBzdHVmZgogICAgJFRleHQgPX4gc3sgJFN0YXJ0IE9UUlNfRklSU1RfTkFNRSAkRW5kIH17JEN1cnJlbnRVc2Vye1VzZXJGaXJzdG5hbWV9fWd4bXM7CiAgICAkVGV4dCA9fiBzeyAkU3RhcnQgT1RSU19MQVNUX05BTUUgJEVuZCB9eyRDdXJyZW50VXNlcntVc2VyTGFzdG5hbWV9fWd4bXM7CgogICAgIyBjbGVhbnVwCiAgICAkVGV4dCA9fiBzeyAkVGFnIC4rPyAkRW5kfXstfXhtc2dpOwogICAgJFRleHQgPX4gc3sgJFRhZzIgLis/ICRFbmR9ey19eG1zZ2k7CgogICAgIyBnZXQgYW5kIHByZXBhcmUgcmVhbG5hbWUKICAgICRUYWcgPSAkU3RhcnQgLiAnT1RSU19DVVNUT01FUl9SRUFMTkFNRSc7CiAgICAkVGV4dCA9fiBzeyRUYWckRW5kfXstfWc7CgogICAgIyBnZXQgY3VzdG9tZXIgZGF0YSBhbmQgcmVwbGFjZSBpdCB3aXRoIDxPVFJTX0NVU1RPTUVSX0RBVEFfLi4uCiAgICAkVGFnICA9ICRTdGFydCAuICdPVFJTX0NVU1RPTUVSXyc7CiAgICAkVGFnMiA9ICRTdGFydCAuICdPVFJTX0NVU1RPTUVSX0RBVEFfJzsKCiAgICAjIGNsZWFudXAgYWxsIG5vdCBuZWVkZWQgPE9UUlNfQ1VTVE9NRVJfREFUQV8gdGFncwogICAgJFRleHQgPX4gc3sgJFRhZyAuKz8gJEVuZCB9ey19eG1zZ2k7CiAgICAkVGV4dCA9fiBzeyAkVGFnMiAuKz8gJEVuZH17LX14bXNnaTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIG9iamVjdHMKICAgIG15ICREeW5hbWljRmllbGRPYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgIyByZXBsYWNlIDxPVFJTX0NIQU5HRV8uLi4gdGFncwogICAgewogICAgICAgIG15ICRUYWcgPSAkU3RhcnQgLiAnT1RSU19DSEFOR0VfJzsKCiAgICAgICAgIyBodG1sIHF1b3Rpbmcgb2YgY29udGVudAogICAgICAgIGlmICggJFBhcmFte1JpY2hUZXh0fSApIHsKICAgICAgICAgICAgS0VZOgogICAgICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlQ2hhbmdlRGF0YSApIHsKICAgICAgICAgICAgICAgIG5leHQgS0VZIGlmICEkQ2hhbmdlRGF0YXskS2V5fTsKICAgICAgICAgICAgICAgICRDaGFuZ2VEYXRheyRLZXl9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5Ub0hUTUwoCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRDaGFuZ2VEYXRheyRLZXl9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBnZXQgY2hhbmdlIGJ1aWxkZXIgYW5kIGNoYW5nZSBtYW5hZ2VyCiAgICAgICAgVVNFUjoKICAgICAgICBmb3IgbXkgJFVzZXIgKHF3KENoYW5nZUJ1aWxkZXIgQ2hhbmdlTWFuYWdlcikpIHsKCiAgICAgICAgICAgIG15ICRBdHRyaWJ1dGUgPSAkVXNlciAuICdJRCc7CgogICAgICAgICAgICAjIG9ubHkgaWYgYW4gYWdlbnQgaXMgc2V0IGZvciB0aGlzIGF0dHJpYnV0ZQogICAgICAgICAgICBuZXh0IFVTRVIgaWYgISRDaGFuZ2VEYXRheyRBdHRyaWJ1dGV9OwoKICAgICAgICAgICAgIyBnZXQgdXNlciBkYXRhCiAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRDaGFuZ2VEYXRheyRBdHRyaWJ1dGV9LAogICAgICAgICAgICAgICAgVmFsaWQgID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IFVTRVIgaWYgISVVc2VyRGF0YTsKCiAgICAgICAgICAgICMgYnVpbGQgdXNlciBhdHRyaWJ1dGUKICAgICAgICAgICAgJENoYW5nZURhdGF7JFVzZXJ9ID0gIiRVc2VyRGF0YXtVc2VyRnVsbG5hbWV9IjsKICAgICAgICB9CgogICAgICAgICMgRHJvcGRvd24sIENoZWNrYm94IGFuZCBNdWx0aXBsZVNlbGVjdCBEeW5hbWljRmllbGRzLCBjYW4gc3RvcmUgdmFsdWVzIChrZXlzKSB0aGF0IGFyZQogICAgICAgICMgZGlmZmVyZW50IGZyb20gdGhlIHRoZSB2YWx1ZXMgdG8gZGlzcGxheQogICAgICAgICMgPE9UUlNfQ0hBTkdFX0R5bmFtaWNGaWVsZF9OYW1lWD4gcmV0dXJucyB0aGUgc3RvcmVkIGtleQogICAgICAgICMgPE9UUlNfQ0hBTkdFX0R5bmFtaWNGaWVsZF9OYW1lWF9WYWx1ZT4gcmV0dXJucyB0aGUgZGlzcGxheSB2YWx1ZQoKICAgICAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIGNoYW5nZSBvYmplY3QKICAgICAgICBteSAkRHluYW1pY0ZpZWxkTGlzdCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgICAgIFZhbGlkICAgICAgPT4gMSwKICAgICAgICAgICAgT2JqZWN0VHlwZSA9PiBbJ0lUU01DaGFuZ2UnXSwKICAgICAgICApIHx8IFtdOwoKICAgICAgICAjIGN5Y2xlIHRocm91Z2ggYWxsIGNoYW5nZSBEeW5hbWljIEZpZWxkcwogICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZExpc3R9ICkgewoKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgIyBnZXQgdGhlIGRpc3BsYXkgdmFsdWUgZm9yIGVhY2ggZHluYW1pYyBmaWVsZAogICAgICAgICAgICBteSAkRGlzcGxheVZhbHVlID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlTG9va3VwKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBLZXkgICAgICAgICAgICAgICAgPT4gJENoYW5nZURhdGF7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgID0+ICRMYW5ndWFnZU9iamVjdCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IHRoZSByZWFkYWJsZSB2YWx1ZSAodmFsdWUpIGZvciBlYWNoIGR5bmFtaWMgZmllbGQKICAgICAgICAgICAgbXkgJERpc3BsYXlWYWx1ZVN0cmcgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+UmVhZGFibGVWYWx1ZVJlbmRlcigKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREaXNwbGF5VmFsdWUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGZpbGwgdGhlIER5bmFtaWNGaWVsc0Rpc3BsYXlWYWx1ZXMKICAgICAgICAgICAgaWYgKCREaXNwbGF5VmFsdWVTdHJnKSB7CiAgICAgICAgICAgICAgICAkQ2hhbmdlRGF0YXsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IC4gJ19WYWx1ZScgfSA9ICREaXNwbGF5VmFsdWVTdHJnLT57VmFsdWV9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGdldCB0aGUgcmVhZGFibGUgdmFsdWUgKGtleSkgZm9yIGVhY2ggZHluYW1pYyBmaWVsZAogICAgICAgICAgICBteSAkVmFsdWVTdHJnID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlJlYWRhYmxlVmFsdWVSZW5kZXIoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkQ2hhbmdlRGF0YXsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHJlcGxhY2UgdGlja2V0IGNvbnRlbnQgd2l0aCB0aGUgdmFsdWUgZnJvbSBSZWFkYWJsZVZhbHVlUmVuZGVyIChpZiBhbnkpCiAgICAgICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJFZhbHVlU3RyZykgKSB7CiAgICAgICAgICAgICAgICAkQ2hhbmdlRGF0YXsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPSAkVmFsdWVTdHJnLT57VmFsdWV9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHJlcGxhY2UgaXQKICAgICAgICBLRVk6CiAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJUNoYW5nZURhdGEgKSB7CiAgICAgICAgICAgIG5leHQgS0VZIGlmICFkZWZpbmVkICRDaGFuZ2VEYXRheyRLZXl9OwogICAgICAgICAgICAkVGV4dCA9fiBzeyAkVGFnICRLZXkgJEVuZCB9eyRDaGFuZ2VEYXRheyRLZXl9fWd4bXNpOwogICAgICAgIH0KCiAgICAgICAgIyBjbGVhbnVwCiAgICAgICAgJFRleHQgPX4gc3sgJFRhZyAuKz8gJEVuZH17LX1neG1zaTsKICAgIH0KCiAgICAjIHJlcGxhY2UgPE9UUlNfV09SS09SREVSXy4uLiB0YWdzCiAgICB7CiAgICAgICAgbXkgJFRhZyA9ICRTdGFydCAuICdPVFJTX1dPUktPUkRFUl8nOwoKICAgICAgICAjIGh0bWwgcXVvdGluZyBvZiBjb250ZW50CiAgICAgICAgaWYgKCAkUGFyYW17UmljaFRleHR9ICkgewogICAgICAgICAgICBLRVk6CiAgICAgICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVXb3JrT3JkZXJEYXRhICkgewogICAgICAgICAgICAgICAgbmV4dCBLRVkgaWYgISRXb3JrT3JkZXJEYXRheyRLZXl9OwogICAgICAgICAgICAgICAgJFdvcmtPcmRlckRhdGF7JEtleX0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyktPlRvSFRNTCgKICAgICAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFdvcmtPcmRlckRhdGF7JEtleX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGdldCB3b3Jrb3JkZXIgYWdlbnQKICAgICAgICBpZiAoICRXb3JrT3JkZXJEYXRhe1dvcmtPcmRlckFnZW50SUR9ICkgewoKICAgICAgICAgICAgIyBnZXQgdXNlciBkYXRhCiAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRXb3JrT3JkZXJEYXRhe1dvcmtPcmRlckFnZW50SUR9LAogICAgICAgICAgICAgICAgVmFsaWQgID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGJ1aWxkIHdvcmtvcmRlciBhZ2VudCBhdHRyaWJ1dGUKICAgICAgICAgICAgaWYgKCVVc2VyRGF0YSkgewogICAgICAgICAgICAgICAgJFdvcmtPcmRlckRhdGF7V29ya09yZGVyQWdlbnR9ID0gIiRVc2VyRGF0YXtVc2VyRnVsbG5hbWV9IjsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBEcm9wZG93biwgQ2hlY2tib3ggYW5kIE11bHRpcGxlU2VsZWN0IER5bmFtaWNGaWVsZHMsIGNhbiBzdG9yZSB2YWx1ZXMgKGtleXMpIHRoYXQgYXJlCiAgICAgICAgIyBkaWZmZXJlbnQgZnJvbSB0aGUgdGhlIHZhbHVlcyB0byBkaXNwbGF5CiAgICAgICAgIyA8T1RSU19XT1JLT1JERVJfRHluYW1pY0ZpZWxkX05hbWVYPiByZXR1cm5zIHRoZSBzdG9yZWQga2V5CiAgICAgICAgIyA8T1RSU19XT1JLT1JERVJfRHluYW1pY0ZpZWxkX05hbWVYX1ZhbHVlPiByZXR1cm5zIHRoZSBkaXNwbGF5IHZhbHVlCgogICAgICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3Igd29ya29yZGVyIG9iamVjdAogICAgICAgIG15ICREeW5hbWljRmllbGRMaXN0ID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICAgICAgVmFsaWQgICAgICA9PiAxLAogICAgICAgICAgICBPYmplY3RUeXBlID0+IFsnSVRTTVdvcmtPcmRlciddLAogICAgICAgICkgfHwgW107CgogICAgICAgICMgY3ljbGUgdGhyb3VnaCBhbGwgd29ya29yZGVyIER5bmFtaWMgRmllbGRzCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkTGlzdH0gKSB7CgogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICAgICAjIGdldCB0aGUgZGlzcGxheSB2YWx1ZSBmb3IgZWFjaCBkeW5hbWljIGZpZWxkCiAgICAgICAgICAgIG15ICREaXNwbGF5VmFsdWUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVMb29rdXAoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIEtleSAgICAgICAgICAgICAgICA9PiAkV29ya09yZGVyRGF0YXsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgPT4gJExhbmd1YWdlT2JqZWN0LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgdGhlIHJlYWRhYmxlIHZhbHVlICh2YWx1ZSkgZm9yIGVhY2ggZHluYW1pYyBmaWVsZAogICAgICAgICAgICBteSAkRGlzcGxheVZhbHVlU3RyZyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5SZWFkYWJsZVZhbHVlUmVuZGVyKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJERpc3BsYXlWYWx1ZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZmlsbCB0aGUgRHluYW1pY0ZpZWxzRGlzcGxheVZhbHVlcwogICAgICAgICAgICBpZiAoJERpc3BsYXlWYWx1ZVN0cmcpIHsKICAgICAgICAgICAgICAgICRXb3JrT3JkZXJEYXRheyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gLiAnX1ZhbHVlJyB9ID0gJERpc3BsYXlWYWx1ZVN0cmctPntWYWx1ZX07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IHRoZSByZWFkYWJsZSB2YWx1ZSAoa2V5KSBmb3IgZWFjaCBkeW5hbWljIGZpZWxkCiAgICAgICAgICAgIG15ICRWYWx1ZVN0cmcgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+UmVhZGFibGVWYWx1ZVJlbmRlcigKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICRXb3JrT3JkZXJEYXRheyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgcmVwbGFjZSB0aWNrZXQgY29udGVudCB3aXRoIHRoZSB2YWx1ZSBmcm9tIFJlYWRhYmxlVmFsdWVSZW5kZXIgKGlmIGFueSkKICAgICAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkVmFsdWVTdHJnKSApIHsKICAgICAgICAgICAgICAgICRXb3JrT3JkZXJEYXRheyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9ICRWYWx1ZVN0cmctPntWYWx1ZX07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcmVwbGFjZSBpdAogICAgICAgIEtFWToKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlV29ya09yZGVyRGF0YSApIHsKICAgICAgICAgICAgbmV4dCBLRVkgaWYgIWRlZmluZWQgJFdvcmtPcmRlckRhdGF7JEtleX07CiAgICAgICAgICAgICRUZXh0ID1+IHN7ICRUYWcgJEtleSAkRW5kIH17JFdvcmtPcmRlckRhdGF7JEtleX19Z3htc2k7CiAgICAgICAgfQoKICAgICAgICAjIGNsZWFudXAKICAgICAgICAkVGV4dCA9fiBzeyAkVGFnIC4rPyAkRW5kfXstfWd4bXNpOwogICAgfQoKICAgICMgcmVwbGFjZSA8T1RSU19DT05ESVRJT04uLi4gdGFncwogICAgewogICAgICAgIG15ICRUYWcgID0gJFN0YXJ0IC4gJ09UUlNfQ09ORElUSU9OXyc7CiAgICAgICAgbXkgJURhdGEgPSAleyAkUGFyYW17RGF0YX0gfTsKCiAgICAgICAgIyBodG1sIHF1b3Rpbmcgb2YgY29udGVudAogICAgICAgIGlmICggJFBhcmFte1JpY2hUZXh0fSApIHsKICAgICAgICAgICAgS0VZOgogICAgICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlRGF0YSApIHsKICAgICAgICAgICAgICAgIG5leHQgS0VZIGlmICEkRGF0YXskS2V5fTsKICAgICAgICAgICAgICAgICREYXRheyRLZXl9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5Ub0hUTUwoCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICREYXRheyRLZXl9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyByZXBsYWNlIGl0CiAgICAgICAgS0VZOgogICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVEYXRhICkgewogICAgICAgICAgICBuZXh0IEtFWSBpZiAhZGVmaW5lZCAkRGF0YXskS2V5fTsKICAgICAgICAgICAgJFRleHQgPX4gc3sgJFRhZyAkS2V5ICRFbmQgfXskRGF0YXskS2V5fX1neG1zaTsKICAgICAgICB9CgogICAgICAgICMgY2xlYW51cAogICAgICAgICRUZXh0ID1+IHN7ICRUYWcgLis/ICRFbmR9ey19Z3htc2k7CiAgICB9CgogICAgIyByZXBsYWNlIDxPVFJTX0xJTktfLi4uIHRhZ3MKICAgIHsKICAgICAgICBteSAkVGFnICAgICAgPSAkU3RhcnQgLiAnT1RSU19MSU5LXyc7CiAgICAgICAgbXkgJUxpbmtEYXRhID0gJXsgJFBhcmFte0xpbmt9IH07CgogICAgICAgICMgaHRtbCBxdW90aW5nIG9mIGNvbnRlbnQKICAgICAgICBpZiAoICRQYXJhbXtSaWNoVGV4dH0gKSB7CiAgICAgICAgICAgIEtFWToKICAgICAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJUxpbmtEYXRhICkgewogICAgICAgICAgICAgICAgbmV4dCBLRVkgaWYgISRMaW5rRGF0YXskS2V5fTsKICAgICAgICAgICAgICAgICRMaW5rRGF0YXskS2V5fSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpIVE1MVXRpbHMnKS0+VG9IVE1MKAogICAgICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkTGlua0RhdGF7JEtleX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHJlcGxhY2UgaXQKICAgICAgICBLRVk6CiAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJUxpbmtEYXRhICkgewogICAgICAgICAgICBuZXh0IEtFWSBpZiAhZGVmaW5lZCAkTGlua0RhdGF7JEtleX07CiAgICAgICAgICAgICRUZXh0ID1+IHN7ICRUYWcgJEtleSAkRW5kIH17JExpbmtEYXRheyRLZXl9fWd4bXNpOwogICAgICAgIH0KCiAgICAgICAgIyBjbGVhbnVwCiAgICAgICAgJFRleHQgPX4gc3sgJFRhZyAuKz8gJEVuZH17LX1neG1zaTsKICAgIH0KCiAgICAjIHJlcGxhY2UgZXh0ZW5kZWQgPE9UUlNfQ0hBTkdFXy4uLiB0YWdzCiAgICBteSAlSW5mb0hhc2ggPSAleyAkUGFyYW17RGF0YX0gfTsKCiAgICBmb3IgbXkgJE9iamVjdCAocXcoQ2hhbmdlQnVpbGRlciBDaGFuZ2VNYW5hZ2VyIFdvcmtPcmRlckFnZW50KSkgewogICAgICAgIG15ICRUYWcgPSAkU3RhcnQgLiB1YyAnT1RSU18nIC4gJE9iamVjdCAuICdfJzsKCiAgICAgICAgaWYgKCBleGlzdHMgJEluZm9IYXNoeyRPYmplY3R9ICYmIHJlZiAkSW5mb0hhc2h7JE9iamVjdH0gZXEgJ0hBU0gnICkgewoKICAgICAgICAgICAgIyBodG1sIHF1b3Rpbmcgb2YgY29udGVudAogICAgICAgICAgICBpZiAoICRQYXJhbXtSaWNoVGV4dH0gKSB7CgogICAgICAgICAgICAgICAgS0VZOgogICAgICAgICAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJXsgJEluZm9IYXNoeyRPYmplY3R9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBLRVkgaWYgISRJbmZvSGFzaHskT2JqZWN0fS0+eyRLZXl9OwogICAgICAgICAgICAgICAgICAgICRJbmZvSGFzaHskT2JqZWN0fS0+eyRLZXl9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5Ub0hUTUwoCiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkSW5mb0hhc2h7JE9iamVjdH0tPnskS2V5fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHJlcGxhY2UgaXQKICAgICAgICAgICAgS0VZOgogICAgICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyAkSW5mb0hhc2h7JE9iamVjdH0gfSApIHsKICAgICAgICAgICAgICAgIG5leHQgS0VZIGlmICFkZWZpbmVkICRJbmZvSGFzaHskT2JqZWN0fS0+eyRLZXl9OwogICAgICAgICAgICAgICAgJFRleHQgPX4gc3sgJFRhZyAkS2V5ICRFbmQgfXskSW5mb0hhc2h7JE9iamVjdH0tPnskS2V5fX1neG1zaTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjbGVhbnVwCiAgICAgICAgJFRleHQgPX4gc3sgJFRhZyAuKz8gJEVuZH17LX1neG1zaTsKICAgIH0KCiAgICAjIGdldCByZWNpcGllbnQgZGF0YSBhbmQgcmVwbGFjZSBpdCB3aXRoIDxPVFJTXy4uLgogICAgJFRhZyA9ICRTdGFydCAuICdPVFJTXyc7CiAgICBpZiAoICRQYXJhbXtSZWNpcGllbnR9ICkgewoKICAgICAgICAjIGh0bWwgcXVvdGluZyBvZiBjb250ZW50CiAgICAgICAgaWYgKCAkUGFyYW17UmljaFRleHR9ICkgewogICAgICAgICAgICBLRVk6CiAgICAgICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICV7ICRQYXJhbXtSZWNpcGllbnR9IH0gKSB7CiAgICAgICAgICAgICAgICBuZXh0IEtFWSBpZiAhJFBhcmFte1JlY2lwaWVudH0tPnskS2V5fTsKICAgICAgICAgICAgICAgICRQYXJhbXtSZWNpcGllbnR9LT57JEtleX0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyktPlRvSFRNTCgKICAgICAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte1JlY2lwaWVudH0tPnskS2V5fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcmVwbGFjZSBpdAogICAgICAgIEtFWToKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyAkUGFyYW17UmVjaXBpZW50fSB9ICkgewogICAgICAgICAgICBuZXh0IEtFWSBpZiAhZGVmaW5lZCAkUGFyYW17UmVjaXBpZW50fS0+eyRLZXl9OwogICAgICAgICAgICBteSAkVmFsdWUgPSAkUGFyYW17UmVjaXBpZW50fS0+eyRLZXl9OwogICAgICAgICAgICAkVGV4dCA9fiBzeyAkVGFnICRLZXkgJEVuZCB9eyRWYWx1ZX1neG1zaTsKICAgICAgICB9CiAgICB9CgogICAgIyBjbGVhbnVwCiAgICAkVGV4dCA9fiBzeyAkVGFnIC4rPyAkRW5kfXstfWd4bXNpOwoKICAgIHJldHVybiAkVGV4dDsKfQoKMTsKCj1lbmQgSW50ZXJuYWw6Cgo9aGVhZDIgVGhlIGZvbGxvd2luZyBwbGFjZWhvbGRlcnMgY2FuIGJlIHVzZWQgaW4gQ2hhbmdlOjp4eHggbm90aWZpY2F0aW9ucwoKPWhlYWQzIEM8T1RSU19DSEFOR0VfeHh4PgoKd2l0aCB0aGUgc3Vic2VxdWVudCB2YWx1ZXMgZm9yIHh4eDoKCiAgICBDaGFuZ2VJRAogICAgICAgIFRoZSBJRCBvZiB0aGUgY2hhbmdlCiAgICBDaGFuZ2VOdW1iZXIKICAgICAgICBUaGUgbnVtYmVyIG9mIHRoZSBjaGFuZ2UKICAgIENoYW5nZVN0YXRlSUQKICAgICAgICBUaGUgSUQgb2YgdGhlIGNoYW5nZSBzdGF0ZQogICAgQ2hhbmdlU3RhdGUKICAgICAgICBUaGUgbmFtZSBvZiB0aGUgY2hhbmdlIHN0YXRlIChlLmcuIHJlcXVlc3RlZCwgYXBwcm92ZWQpCiAgICBDaGFuZ2VTdGF0ZVNpZ25hbAogICAgQ2hhbmdlVGl0bGUKICAgICAgICBUaGUgY2hhbmdlIHRpdGxlCiAgICBEZXNjcmlwdGlvbgogICAgICAgIFRoZSAib3JpZ2luYWwiIGRlc2NyaXB0aW9uLiBQbGVhc2Ugbm90ZTogSWYgcmljaHRleHQgZmVhdHVyZSBpcyBlbmFibGVkLAogICAgICAgIHRoaXMgY29udGFpbnMgSFRNTCBtYXJrdXAuIFNvIHRoaXMgY2FuIGJlIHVzZWQgdG8gc2VuZCBIVE1MIG5vdGlmaWNhdGlvbnMuCiAgICBEZXNjcmlwdGlvblBsYWluCiAgICAgICAgVGhpcyBpcyB0aGUgcGxhaW4gZGVzY3JpcHRpb24gd2l0aG91dCBhbnkgSFRNTCBtYXJrdXAuIFRoaXMgaXMgYmV0dGVyIGZvciBwbGFpbiBub3RpZmljYXRpb25zLgogICAgSnVzdGlmaWNhdGlvbgogICAgICAgIFRoZSBzYW1lIGFzIGZvciBEZXNjcmlwdGlvbiBhcHBsaWVzIGhlcmUuCiAgICBKdXN0aWZpY2F0aW9uUGxhaW4KICAgICAgICBTZWUgRGVzY3JpcHRpb25QbGFpbi4KICAgIENoYW5nZUJ1aWxkZXJJRAogICAgICAgIENoYW5nZSBidWlsZGVyIElECiAgICBDaGFuZ2VNYW5hZ2VySUQKICAgICAgICBDaGFuZ2UgbWFuYWdlciBJRAogICAgQ2F0ZWdvcnlJRAogICAgICAgIElEIG9mIGNoYW5nZXMnIGNhdGVnb3J5LgogICAgQ2F0ZWdvcnkKICAgICAgICBOYW1lIG9mIGNoYW5nZXMnIGNhdGVnb3J5LgogICAgSW1wYWN0SUQKICAgICAgICBJRCBvZiBjaGFuZ2VzJyBpbXBhY3QuCiAgICBJbXBhY3QKICAgICAgICBOYW1lIG9mIGNoYW5nZXMnIGltcGFjdC4KICAgIFByaW9yaXR5SUQKICAgICAgICBJRCBvZiBjaGFuZ2VzJyBwcmlvcml0eS4KICAgIFByaW9yaXR5CiAgICAgICAgTmFtZSBvZiBjaGFuZ2VzJyBwcmlvcml0eS4KICAgIFdvcmtPcmRlckNvdW50CiAgICAgICAgTnVtYmVyIG9mIGFsbCB3b3JrIG9yZGVycyB0aGF0IGJlbG9uZyB0byB0aGUgY2hhbmdlLgogICAgUmVxdWVzdGVkVGltZQogICAgICAgIFRoZSB0aW1lIHRoZSBjdXN0b21lciB3YW50IHRoZSBjaGFuZ2UgdG8gYmUgZmluaXNoZWQuCiAgICBQbGFubmVkRWZmb3J0CiAgICAgICAgU3VtIG9mIHRoZSBwbGFubmVkIGVmZm9ydHMgKGNhbGN1bGF0ZWQgZnJvbSB0aGUgd29ya29yZGVycykuCiAgICBBY2NvdW50ZWRUaW1lCiAgICAgICAgQWNjb3VudGVkIHRpbWUgb2YgdGhlIGNoYW5nZSAoY2FsY3VsYXRlZCBmcm9tIHRoZSB3b3Jrb3JkZXJzKS4KICAgIFBsYW5uZWRTdGFydFRpbWUKICAgICAgICBQbGFubmVkIHN0YXJ0IHRpbWUgb2YgdGhlIGNoYW5nZSAoY2FsY3VsYXRlZCBmcm9tIHRoZSB3b3Jrb3JkZXJzKS4KICAgIFBsYW5uZWRFbmRUaW1lCiAgICAgICAgUGxhbm5lZCBlbmQgdGltZSBvZiB0aGUgY2hhbmdlIChjYWxjdWxhdGVkIGZyb20gdGhlIHdvcmtvcmRlcnMpLgogICAgQWN0dWFsU3RhcnRUaW1lCiAgICAgICAgQWN0dWFsIHN0YXJ0IHRpbWUgb2YgdGhlIGNoYW5nZSAoY2FsY3VsYXRlZCBmcm9tIHRoZSB3b3Jrb3JkZXJzKS4KICAgIEFjdHVhbEVuZFRpbWUKICAgICAgICBBY3R1YWwgZW5kIHRpbWUgb2YgdGhlIGNoYW5nZSAoY2FsY3VsYXRlZCBmcm9tIHRoZSB3b3Jrb3JkZXJzKS4KCj1oZWFkMyBDPE9UUlNfQ0hBTkdFQlVJTERFUl94eHg+LCBDPE9UUlNfQ0hBTkdFTUFOQUdFUl94eHg+LCBDPE9UUlNfV09SS09SREVSQUdFTlRfeHh4PgoKd2l0aCB0aGUgc3Vic2VxdWVudCB2YWx1ZXMgZm9yIHh4eDoKCiAgICBVc2VyRmlyc3RuYW1lCiAgICAgICAgRmlyc3RuYW1lIG9mIHRoZSBwZXJzb24uCiAgICBVc2VyTGFzdG5hbWUKICAgICAgICBMYXN0bmFtZSBvZiB0aGUgcGVyc29uLgogICAgVXNlckVtYWlsCiAgICAgICAgRW1haWwgYWRkcmVzcyBvZiB0aGUgcGVyc29uLgoKPWhlYWQzIEM8T1RSU19XT1JLT1JERVJfeHh4PgoKd2l0aCB0aGUgc3Vic2VxdWVudCB2YWx1ZXMgZm9yIHh4eDoKCiAgICBXb3JrT3JkZXJJRAogICAgICAgIElEIG9mIHRoZSB3b3Jrb3JkZXIKICAgIENoYW5nZUlECiAgICAgICAgSUQgb2YgdGhlIGNoYW5nZSB0aGUgd29ya29yZGVyIGJlbG9uZ3MgdG8uCiAgICBXb3JrT3JkZXJOdW1iZXIKICAgICAgICBXb3Jrb3JkZXIgbnVtYmVyCiAgICBXb3JrT3JkZXJUaXRsZQogICAgICAgIFRpdGxlIG9mIHRoZSB3b3Jrb3JkZXIKICAgIEluc3RydWN0aW9uCiAgICAgICAgU2VlIENoYW5nZSBwbGFjZWhvbGRlcnMgLT4gRGVzY3JpcHRpb24KICAgIEluc3RydWN0aW9uUGxhaW4KICAgICAgICBTZWUgQ2hhbmdlIHBsYWNlaG9sZGVycyAtPiBEZXNjcmlwdGlvblBsYWluCiAgICBSZXBvcnQKICAgICAgICBTZWUgQ2hhbmdlIHBsYWNlaG9sZGVycyAtPiBEZXNjcmlwdGlvbgogICAgUmVwb3J0UGxhaW4KICAgICAgICBTZWUgQ2hhbmdlIHBsYWNlaG9sZGVycyAtPiBEZXNjcmlwdGlvblBsYWluCiAgICBXb3JrT3JkZXJTdGF0ZUlECiAgICAgICAgSUQgb2YgdGhlIHdvcmtvcmRlciBzdGF0ZS4KICAgIFdvcmtPcmRlclN0YXRlCiAgICAgICAgTmFtZSBvZiB0aGUgd29ya29yZGVyIHN0YXRlLgogICAgV29ya09yZGVyU3RhdGVTaWduYWwKICAgIFdvcmtPcmRlclR5cGVJRAogICAgICAgIElEIG9mIHRoZSB3b3Jrb3JkZXIgdHlwZS4KICAgIFdvcmtPcmRlclR5cGUKICAgICAgICBUaGUgbmFtZSBvZiB0aGUgd29yayBvcmRlciB0eXBlLgogICAgV29ya09yZGVyQWdlbnRJRAogICAgICAgIFRoZSBJRCBvZiB0aGUgd29ya29yZGVyIGFnZW50LgogICAgUGxhbm5lZFN0YXJ0VGltZQogICAgICAgIFRoZSBwbGFubmVkIHN0YXJ0IHRpbWUgZm9yIHRoZSB3b3Jrb3JkZXIuCiAgICBQbGFubmVkRW5kVGltZQogICAgICAgIFRoZSBwbGFubmVkIGVuZCB0aW1lIGZvciB0aGUgd29ya29yZGVyLgogICAgQWN0dWFsU3RhcnRUaW1lCiAgICAgICAgV2hlbiBkaWQgdGhlIHdvcmtvcmRlciBhY3R1YWxseSBzdGFydC4KICAgIEFjdHVhbEVuZFRpbWUKICAgICAgICBXaGVuIGRpZCB0aGUgd29ya29yZGVyIGFjdHVhbGx5IGVuZC4KICAgIEFjY291bnRlZFRpbWUKICAgICAgICBUaGUgc28gZmFyIGFjY291bnRlZCB0aW1lIGZvciB0aGUgc2luZ2xlIHdvcmtvcmRlcgogICAgUGxhbm5lZEVmZm9ydAogICAgICAgIFRoaXMgaXMgdGhlIGVmZm9ydCBwbGFubmVkIGZvciB0aGUgc2luZ2xlIHdvcmtvcmRlci4KCj1oZWFkMyBDPE9UUlNfTElOS194eHg+Cgp3aXRoIHRoZSBzdWJzZXF1ZW50IHZhbHVlcyBmb3IgeHh4OgoKICAgIE9iamVjdAogICAgICAgIG90aGVyIG9iamVjdCBvZiB0aGUgbGluawogICAgU291cmNlT2JqZWN0CiAgICAgICAgb3RoZXIgb2JqZWN0IG9mIHRoZSBsaW5rLCB3aGVuIHRoZSBvdGhlciBvYmplY3QgaXMgdGhlIHNvdXJjZQogICAgVGFyZ2V0T2JqZWN0CiAgICAgICAgb3RoZXIgb2JqZWN0IG9mIHRoZSBsaW5rLCB3aGVuIHRoZSBvdGhlciBvYmplY3QgaXN0IHRoZSB0YXJnZXQKICAgIFN0YXRlCiAgICAgICAgU3RhdGUgb2YgdGhlIGxpbmsKICAgIFR5cGUKICAgICAgICBUeXBlIG9mIHRoZSBsaW5rCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Template.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIyBub2ZpbHRlcihUaWR5QWxsOjpQbHVnaW46OlpudW55OjpQZXJsOjpEdW1wZXIpCnVzZSBEYXRhOjpEdW1wZXI7CnVzZSBLZXJuZWw6OlN5c3RlbTo6RXZlbnRIYW5kbGVyOwoKdXNlIHZhcnMgcXcoQElTQSk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6REInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlRlbXBsYXRlIC0gdGVtcGxhdGUgbGliCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIG5ldygpCgpDcmVhdGUgYW4gb2JqZWN0LgoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJFRlbXBsYXRlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlRlbXBsYXRlJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgc2V0IHRoZSBkZWJ1ZyBmbGFnCiAgICAkU2VsZi0+e0RlYnVnfSA9ICRQYXJhbXtEZWJ1Z30gfHwgMDsKCiAgICBASVNBID0gKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RXZlbnRIYW5kbGVyJywKICAgICk7CgogICAgIyBpbml0IG9mIGV2ZW50IGhhbmRsZXIKICAgICRTZWxmLT5FdmVudEhhbmRsZXJJbml0KAogICAgICAgIENvbmZpZyA9PiAnSVRTTVRlbXBsYXRlOjpFdmVudE1vZHVsZScsCiAgICApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIFRlbXBsYXRlQWRkKCkKCkFkZCBhIG5ldyB0ZW1wbGF0ZS4KCiAgICBteSAkVGVtcGxhdGVJRCA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVBZGQoCiAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1RoZSB0ZW1wbGF0ZSBuYW1lJywKICAgICAgICBDb250ZW50ICAgICAgICA9PiAnW3sgQ2hhbmdlQWRkID0+IHsgLi4uIH0gfV0nLCAgICMgYSBzZXJpYWxpemVkIGNoYW5nZSwgd29ya29yZGVyLCAuLi4KICAgICAgICBDb21tZW50ICAgICAgICA9PiAnQSBjb21tZW50JywgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFRlbXBsYXRlVHlwZSAgID0+ICdJVFNNQ2hhbmdlJywgICAgICAgICAgICAgICAgICAgIyBhbHRlcm5hdGl2ZWx5OiBUZW1wbGF0ZVR5cGVJRAogICAgICAgIFRlbXBsYXRlVHlwZUlEID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhbHRlcm5hdGl2ZWx5OiBUZW1wbGF0ZVR5cGUKICAgICAgICBWYWxpZElEICAgICAgICA9PiAxLAogICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIFRlbXBsYXRlQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayB0aGF0IG5vdCBib3RoIFRlbXBsYXRlVHlwZSBhbmQgVGVtcGxhdGVUeXBlSUQgYXJlIGdpdmVuCiAgICBpZiAoICRQYXJhbXtUZW1wbGF0ZVR5cGV9ICYmICRQYXJhbXtUZW1wbGF0ZVR5cGVJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIGVpdGhlciBUZW1wbGF0ZVR5cGUgT1IgVGVtcGxhdGVUeXBlSUQgLSBub3QgYm90aCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgd2hlbiB0aGUgdGVtcGxhdGUgdHlwZSBpcyBnaXZlbiwgdGhlbiBsb29rIHVwIHRoZSBJRAogICAgaWYgKCAkUGFyYW17VGVtcGxhdGVUeXBlfSApIHsKICAgICAgICAkUGFyYW17VGVtcGxhdGVUeXBlSUR9ID0gJFNlbGYtPlRlbXBsYXRlVHlwZUxvb2t1cCgKICAgICAgICAgICAgVGVtcGxhdGVUeXBlID0+ICRQYXJhbXtUZW1wbGF0ZVR5cGV9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENvbnRlbnQgTmFtZSBUZW1wbGF0ZVR5cGVJRCBWYWxpZElEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayB3aGV0aGVyIGEgdGVtcGxhdGUgd2l0aCB0aGlzIG5hbWUgYW5kIHR5cGUgYWxyZWFkeSBleGlzdHMKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJ1NFTEVDVCBpZCBGUk9NIGNoYW5nZV90ZW1wbGF0ZSBXSEVSRSBuYW1lID0gPyBBTkQgdHlwZV9pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtOYW1lfSwgXCRQYXJhbXtUZW1wbGF0ZVR5cGVJRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRUZW1wbGF0ZUlEOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVGVtcGxhdGVJRCA9ICRSb3dbMF07CiAgICB9CgogICAgIyBhIHRlbXBsYXRlIHdpdGggdGhpcyBuYW1lIGV4aXN0cyBhbHJlYWR5CiAgICBpZiAoJFRlbXBsYXRlSUQpIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4KICAgICAgICAgICAgICAgICJBIHRlbXBsYXRlIHdpdGggdGhlIG5hbWUgJyRQYXJhbXtOYW1lfScgYW5kIHRoZSB0eXBlICckUGFyYW17VGVtcGxhdGVUeXBlSUR9JyBhbHJlYWR5IGV4aXN0cyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgdHJpZ2dlciBUZW1wbGF0ZUFkZFByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnVGVtcGxhdGVBZGRQcmUnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGFkZCBuZXcgdGVtcGxhdGUgdG8gZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnSU5TRVJUIElOVE8gY2hhbmdlX3RlbXBsYXRlICcKICAgICAgICAgICAgLiAnKG5hbWUsIGNvbW1lbnRzLCBjb250ZW50LCB0eXBlX2lkLCB2YWxpZF9pZCwgJwogICAgICAgICAgICAuICdjcmVhdGVfdGltZSwgY3JlYXRlX2J5LCBjaGFuZ2VfdGltZSwgY2hhbmdlX2J5KSAnCiAgICAgICAgICAgIC4gJ1ZBTFVFUyAoPywgPywgPywgPywgPywgY3VycmVudF90aW1lc3RhbXAsID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/KScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17TmFtZX0sICAgIFwkUGFyYW17Q29tbWVudH0sIFwkUGFyYW17Q29udGVudH0sIFwkUGFyYW17VGVtcGxhdGVUeXBlSUR9LAogICAgICAgICAgICBcJFBhcmFte1ZhbGlkSUR9LCBcJFBhcmFte1VzZXJJRH0sICBcJFBhcmFte1VzZXJJRH0sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBwcmVwYXJlIFNRTCBzdGF0ZW1lbnQKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJ1NFTEVDVCBpZCBGUk9NIGNoYW5nZV90ZW1wbGF0ZSBXSEVSRSBuYW1lID0gPyBBTkQgdHlwZV9pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtOYW1lfSwgXCRQYXJhbXtUZW1wbGF0ZVR5cGVJRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFRlbXBsYXRlSUQgPSAkUm93WzBdOwogICAgfQoKICAgICMgY2hlY2sgaWYgdGVtcGxhdGUgY291bGQgYmUgYWRkZWQKICAgIGlmICggISRUZW1wbGF0ZUlEICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnVGVtcGxhdGVBZGQoKSBmYWlsZWQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHRyaWdnZXIgVGVtcGxhdGVBZGRQb3N0LUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdUZW1wbGF0ZUFkZFBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBUZW1wbGF0ZUlEID0+ICRUZW1wbGF0ZUlELAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIFRPRE86IGFsbCBhdHRhY2htZW50cyBpbiB0aGUgdGVtcGxhdGUgc2hvdWxkIGJlIGNvcGllZAogICAgIyBpbiB0aGUgdmlydHVhbCBmcy4gT3RoZXJ3aXNlIGl0IGNvdWxkIGhhcHBlbiB0aGF0IGFuCiAgICAjIGF0dGFjaG1lbnQgaXMgZGVsZXRlZCBhZnRlciB0ZW1wbGF0ZSBjcmVhdGlvbiBhbmQgdGhlcmVmb3JlCiAgICAjIG5vIGxvbmdlciBhdmFpbGFibGUuCgogICAgcmV0dXJuICRUZW1wbGF0ZUlEOwp9Cgo9aGVhZDIgVGVtcGxhdGVVcGRhdGUoKQoKVXBkYXRlIGEgdGVtcGxhdGUuCgogICAgbXkgJFN1Y2Nlc3MgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlVXBkYXRlKAogICAgICAgIFRlbXBsYXRlSUQgPT4gMTIzNCwKICAgICAgICBOYW1lICAgICAgID0+ICdUaGUgdGVtcGxhdGUgbmFtZScsICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIENvbW1lbnQgICAgPT4gJ0EgY29tbWVudCcsICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgQ29udGVudCAgPT4gJ1t7IENoYW5nZUFkZCA9PiB7IC4uLiB9IH1dJywgICAjIChvcHRpb25hbCkgYSBzZXJpYWxpemVkIGNoYW5nZSwgd29ya29yZGVyLCAuLi4KICAgICAgICBWYWxpZElEICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFR5cGVJRCAgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBUZW1wbGF0ZVVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhUZW1wbGF0ZUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyB0cmlnZ2VyIFRlbXBsYXRlVXBkYXRlUHJlLUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdUZW1wbGF0ZVVwZGF0ZVByZScsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IHRlbXBsYXRlIGRhdGEKICAgIG15ICRUZW1wbGF0ZURhdGEgPSAkU2VsZi0+VGVtcGxhdGVHZXQoCiAgICAgICAgVGVtcGxhdGVJRCA9PiAkUGFyYW17VGVtcGxhdGVJRH0sCiAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBtYXAgdXBkYXRlIGF0dHJpYnV0ZXMgdG8gY29sdW1uIG5hbWVzCiAgICBteSAlQXR0cmlidXRlID0gKAogICAgICAgIE5hbWUgICAgPT4gJ25hbWUnLAogICAgICAgIENvbW1lbnQgPT4gJ2NvbW1lbnRzJywKICAgICAgICBDb250ZW50ID0+ICdjb250ZW50JywKICAgICAgICBWYWxpZElEID0+ICd2YWxpZF9pZCcsCiAgICAgICAgVHlwZUlEICA9PiAndHlwZV9pZCcsCiAgICApOwoKICAgICMgYnVpbGQgU1FMIHRvIHVwZGF0ZSB0ZW1wbGF0ZQogICAgbXkgJFNRTCA9ICdVUERBVEUgY2hhbmdlX3RlbXBsYXRlIFNFVCAnOwogICAgbXkgQEJpbmQ7CgogICAgQVRUUklCVVRFOgogICAgZm9yIG15ICRBdHRyaWJ1dGUgKCBzb3J0IGtleXMgJUF0dHJpYnV0ZSApIHsKCiAgICAgICAgIyBwcmVzZXJ2ZSB0aGUgb2xkIHZhbHVlLCB3aGVuIHRoZSBjb2x1bW4gaXNuJ3QgaW4gZnVuY3Rpb24gcGFyYW1ldGVycwogICAgICAgIG5leHQgQVRUUklCVVRFIGlmICFleGlzdHMgJFBhcmFteyRBdHRyaWJ1dGV9OwoKICAgICAgICAjIHBhcmFtIGNoZWNraW5nIGhhcyBhbHJlYWR5IGJlZW4gZG9uZSwgc28gdGhpcyBpcyBzYWZlCiAgICAgICAgJFNRTCAuPSAiJEF0dHJpYnV0ZXskQXR0cmlidXRlfSA9ID8sICI7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXskQXR0cmlidXRlfTsKICAgIH0KCiAgICAjIGFkZCBjaGFuZ2UgdGltZSBhbmQgY2hhbmdlIHVzZXIKICAgICRTUUwgLj0gJ2NoYW5nZV90aW1lID0gY3VycmVudF90aW1lc3RhbXAsIGNoYW5nZV9ieSA9ID8gJzsKICAgIHB1c2ggQEJpbmQsIFwkUGFyYW17VXNlcklEfTsKCiAgICAjIHNldCBtYXRjaGluZyBvZiBTUUwgc3RhdGVtZW50CiAgICAkU1FMIC49ICdXSEVSRSBpZCA9ID8nOwogICAgcHVzaCBAQmluZCwgXCRQYXJhbXtUZW1wbGF0ZUlEfTsKCiAgICAjIHVwZGF0ZSB0ZW1wbGF0ZQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gXEBCaW5kLAogICAgKTsKCiAgICAjIHRyaWdnZXIgVGVtcGxhdGVVcGRhdGVQb3N0LUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdUZW1wbGF0ZVVwZGF0ZVBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgT2xkVGVtcGxhdGVEYXRhID0+ICRUZW1wbGF0ZURhdGEsCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBUT0RPOiBhbGwgYXR0YWNobWVudHMgaW4gdGhlIHRlbXBsYXRlIHNob3VsZCBiZSBjb3BpZWQKICAgICMgaW4gdGhlIHZpcnR1YWwgZnMuIE90aGVyd2lzZSBpdCBjb3VsZCBoYXBwZW4gdGhhdCBhbgogICAgIyBhdHRhY2htZW50IGlzIGRlbGV0ZWQgYWZ0ZXIgdGVtcGxhdGUgY3JlYXRpb24gYW5kIHRoZXJlZm9yZQogICAgIyBubyBsb25nZXIgYXZhaWxhYmxlLgoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgVGVtcGxhdGVHZXQoKQoKUmV0dXJucyBhIGhhc2ggcmVmZXJlbmNlIG9mIHRoZSB0ZW1wbGF0ZSBkYXRhIGZvciBhIGdpdmVuIFRlbXBsYXRlSUQuCgogICAgbXkgJFRlbXBsYXRlRGF0YSA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVHZXQoCiAgICAgICAgVGVtcGxhdGVJRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7CgpUaGUgcmV0dXJuZWQgaGFzaCByZWZlcmVuY2UgY29udGFpbnMgZm9sbG93aW5nIGVsZW1lbnRzOgoKICAgICRUZW1wbGF0ZURhdGF7VGVtcGxhdGVJRH0KICAgICRUZW1wbGF0ZURhdGF7TmFtZX0KICAgICRUZW1wbGF0ZURhdGF7Q29tbWVudH0KICAgICRUZW1wbGF0ZURhdGF7Q29udGVudH0KICAgICRUZW1wbGF0ZURhdGF7VHlwZUlEfQogICAgJFRlbXBsYXRlRGF0YXtUeXBlfQogICAgJFRlbXBsYXRlRGF0YXtWYWxpZElEfQogICAgJFRlbXBsYXRlRGF0YXtDcmVhdGVUaW1lfQogICAgJFRlbXBsYXRlRGF0YXtDcmVhdGVCeX0KICAgICRUZW1wbGF0ZURhdGF7Q2hhbmdlVGltZX0KICAgICRUZW1wbGF0ZURhdGF7Q2hhbmdlQnl9Cgo9Y3V0CgpzdWIgVGVtcGxhdGVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVGVtcGxhdGVJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcHJlcGFyZSBTUUwgc3RhdGVtZW50CiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIGN0LmlkLCBjdC5uYW1lLCBjb21tZW50cywgY29udGVudCwgdHlwZV9pZCwgY3R0Lm5hbWUsICcKICAgICAgICAgICAgLiAnY3QudmFsaWRfaWQsIGN0LmNyZWF0ZV90aW1lLCBjdC5jcmVhdGVfYnksIGN0LmNoYW5nZV90aW1lLCBjdC5jaGFuZ2VfYnkgJwogICAgICAgICAgICAuICdGUk9NIGNoYW5nZV90ZW1wbGF0ZSBjdCwgY2hhbmdlX3RlbXBsYXRlX3R5cGUgY3R0ICcKICAgICAgICAgICAgLiAnV0hFUkUgY3QudHlwZV9pZCA9IGN0dC5pZCBBTkQgY3QuaWQgPSA/JywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17VGVtcGxhdGVJRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICVUZW1wbGF0ZURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRUZW1wbGF0ZURhdGF7VGVtcGxhdGVJRH0gPSAkUm93WzBdOwogICAgICAgICRUZW1wbGF0ZURhdGF7TmFtZX0gICAgICAgPSAkUm93WzFdOwogICAgICAgICRUZW1wbGF0ZURhdGF7Q29tbWVudH0gICAgPSAkUm93WzJdOwogICAgICAgICRUZW1wbGF0ZURhdGF7Q29udGVudH0gICAgPSAkUm93WzNdOwogICAgICAgICRUZW1wbGF0ZURhdGF7VHlwZUlEfSAgICAgPSAkUm93WzRdOwogICAgICAgICRUZW1wbGF0ZURhdGF7VHlwZX0gICAgICAgPSAkUm93WzVdOwogICAgICAgICRUZW1wbGF0ZURhdGF7VmFsaWRJRH0gICAgPSAkUm93WzZdOwogICAgICAgICRUZW1wbGF0ZURhdGF7Q3JlYXRlVGltZX0gPSAkUm93WzddOwogICAgICAgICRUZW1wbGF0ZURhdGF7Q3JlYXRlQnl9ICAgPSAkUm93WzhdOwogICAgICAgICRUZW1wbGF0ZURhdGF7Q2hhbmdlVGltZX0gPSAkUm93WzldOwogICAgICAgICRUZW1wbGF0ZURhdGF7Q2hhbmdlQnl9ICAgPSAkUm93WzEwXTsKICAgIH0KCiAgICAjIGNoZWNrIGVycm9yCiAgICBpZiAoICElVGVtcGxhdGVEYXRhICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVGVtcGxhdGVJRCAkUGFyYW17VGVtcGxhdGVJRH0gZG9lcyBub3QgZXhpc3QhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNsZWFudXAgdGltZSBzdGFtcHMgKHNvbWUgZGF0YWJhc2VzIGFyZSB1c2luZyBlLiBnLiAyMDA4LTAyLTI1IDIyOjAzOjAwLjAwMDAwMCkKICAgIFRJTUVGSUVMRDoKICAgIGZvciBteSAkVGltZWZpZWxkICggJ0NyZWF0ZVRpbWUnLCAnQ2hhbmdlVGltZScsICkgewogICAgICAgIG5leHQgVElNRUZJRUxEIGlmICEkVGVtcGxhdGVEYXRheyRUaW1lZmllbGR9OwogICAgICAgICRUZW1wbGF0ZURhdGF7JFRpbWVmaWVsZH0KICAgICAgICAgICAgPX4gc3sgXEEgKCBcZFxkXGRcZCAtIFxkXGQgLSBcZFxkIFxzIFxkXGQ6XGRcZDpcZFxkICkgXC4gLis/IFx6IH17JDF9eG1zOwogICAgfQoKICAgIHJldHVybiBcJVRlbXBsYXRlRGF0YTsKfQoKPWhlYWQyIFRlbXBsYXRlTGlzdCgpCgpyZXR1cm4gYSBoYXNocmVmIG9mIGFsbCB0ZW1wbGF0ZXMKCiAgICBteSAkVGVtcGxhdGVzID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZUxpc3QoCiAgICAgICAgVmFsaWQgICAgICAgICAgPT4gMCwgICAgICAgICAgICAgIyAob3B0aW9uYWwpIGRlZmF1bHQgMSAoMHwxKQogICAgICAgIENvbW1lbnRMZW5ndGggID0+IDE1LCAgICAgICAgICAgICMgKG9wdGlvbmFsKSBkZWZhdWx0IDAKICAgICAgICBUZW1wbGF0ZVR5cGUgICA9PiAnSVRTTUNoYW5nZScgICAjIChvcHRpb25hbCkgb3IgVGVtcGxhdGVUeXBlCiAgICAgICAgVGVtcGxhdGVUeXBlSUQgPT4gMSwgICAgICAgICAgICAgIyAob3B0aW9uYWwpIG9yIFRlbXBsYXRlVHlwZUlECiAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICk7CgpyZXR1cm5zCgogICAgJFRlbXBsYXRlcyA9IHsKICAgICAgICAxID0+ICdteSB0ZW1wbGF0ZScsCiAgICAgICAgMyA9PiAneW91ciB0ZW1wbGF0ZSBuYW1lJywKICAgIH07CgpJZiBwYXJhbWV0ZXIgQzxDb21tZW50TGVuZ3RoPiBpcyBwYXNzZWQsIGFuIGV4Y2VycHQgKG9mIHRoZSBwYXNzZWQgbGVuZ3RoKQpvZiB0aGUgY29tbWVudCBpcyBhcHBlbmRlZCB0byB0aGUgdGVtcGxhdGUgbmFtZS4KSWYgdGhlIHBhcmFtZXRlciBDPFRlbXBsYXRlVHlwZT4gb3IgQzxUZW1wbGF0ZVR5cGVJRD4gaXMgcGFzc2VkLCB0aGVuIHRoZQpsaXN0IG9mIHRlbXBsYXRlcyBpcyByZXN0cmljdGVkIHRvIHRoZSBnaXZlbiB0eXBlLgoKPWN1dAoKc3ViIFRlbXBsYXRlTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgdGhhdCBub3QgYm90aCBUZW1wbGF0ZVR5cGUgYW5kIFRlbXBsYXRlVHlwZUlEIGFyZSBnaXZlbgogICAgaWYgKCAkUGFyYW17VGVtcGxhdGVUeXBlfSAmJiAkUGFyYW17VGVtcGxhdGVUeXBlSUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBlaXRoZXIgVGVtcGxhdGVUeXBlIE9SIFRlbXBsYXRlVHlwZUlEIC0gbm90IGJvdGghJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHdoZW4gdGhlIHRlbXBsYXRlIHR5cGUgaXMgZ2l2ZW4sIHRoZW4gbG9vayB1cCB0aGUgSUQKICAgIGlmICggJFBhcmFte1RlbXBsYXRlVHlwZX0gKSB7CiAgICAgICAgJFBhcmFte1RlbXBsYXRlVHlwZUlEfSA9ICRTZWxmLT5UZW1wbGF0ZVR5cGVMb29rdXAoCiAgICAgICAgICAgIFRlbXBsYXRlVHlwZSA9PiAkUGFyYW17VGVtcGxhdGVUeXBlfSwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgdmFsaWQgcGFyYW0KICAgIGlmICggIWRlZmluZWQgJFBhcmFte1ZhbGlkfSApIHsKICAgICAgICAkUGFyYW17VmFsaWR9ID0gMTsKICAgIH0KCiAgICAjIGRlZmluZSBTUUwgc3RhdGVtZW50CiAgICBteSAkU1FMID0gJ1NFTEVDVCBpZCwgbmFtZSwgY29tbWVudHMgRlJPTSBjaGFuZ2VfdGVtcGxhdGUgJzsKICAgIG15IEBTUUxXaGVyZTsgICAgIyBhc3NlbWJsZSB0aGUgY29uZGl0aW9ucyB1c2VkIGluIHRoZSBXSEVSRSBjbGF1c2UKICAgIG15IEBTUUxCaW5kOwoKICAgICMgcmVzdHJpY3QgYnkgdGVtcGxhdGUgdHlwZQogICAgaWYgKCAkUGFyYW17VGVtcGxhdGVUeXBlSUR9ICkgewogICAgICAgIHB1c2ggQFNRTFdoZXJlLCAidHlwZV9pZCA9ID8iOwogICAgICAgIHB1c2ggQFNRTEJpbmQsICBcJFBhcmFte1RlbXBsYXRlVHlwZUlEfTsKICAgIH0KCiAgICAjIGdldCBvbmx5IHZhbGlkIHRlbXBsYXRlIGlkcwogICAgaWYgKCAkUGFyYW17VmFsaWR9ICkgewoKICAgICAgICBteSBAVmFsaWRJRHMgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZElEc0dldCgpOwogICAgICAgIG15ICRWYWxpZElEU3RyaW5nID0gam9pbiAnLCAnLCBAVmFsaWRJRHM7CgogICAgICAgIHB1c2ggQFNRTFdoZXJlLCAidmFsaWRfaWQgSU4gKCAkVmFsaWRJRFN0cmluZyApIjsKICAgIH0KCiAgICAjIGFwcGVuZCB0aGUgV0hFUkUtY2xhdXNlCiAgICBpZiAoQFNRTFdoZXJlKSB7CiAgICAgICAgJFNRTCAuPSAnV0hFUkUgJzsKICAgICAgICAkU1FMIC49IGpvaW4gJyBBTkQgJywgbWFwIHsiKCAkXyApIn0gQFNRTFdoZXJlOwogICAgICAgICRTUUwgLj0gJyAnOwogICAgfQoKICAgICMgcHJlcGFyZSBTUUwgc3RhdGVtZW50CiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFxAU1FMQmluZCwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAlVGVtcGxhdGVzOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVGVtcGxhdGVzeyAkUm93WzBdIH0gPSBbICRSb3dbMV0sICRSb3dbMl0gXTsKICAgIH0KCiAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlVGVtcGxhdGVzICkgewogICAgICAgIG15ICggJE5hbWUsICRDb21tZW50ICkgPSBAeyAkVGVtcGxhdGVzeyRLZXl9IH07CgogICAgICAgIG15ICRDb21tZW50QXBwZW5kID0gJyc7CiAgICAgICAgaWYgKCAkUGFyYW17Q29tbWVudExlbmd0aH0gJiYgJENvbW1lbnQgKSB7CiAgICAgICAgICAgIG15ICRMZW5ndGggPSAkUGFyYW17Q29tbWVudExlbmd0aH0gPiBsZW5ndGggJENvbW1lbnQKICAgICAgICAgICAgICAgID8gbGVuZ3RoICRDb21tZW50CiAgICAgICAgICAgICAgICA6ICRQYXJhbXtDb21tZW50TGVuZ3RofTsKICAgICAgICAgICAgbXkgJEVsbGlwc2lzID0gJFBhcmFte0NvbW1lbnRMZW5ndGh9ID4gbGVuZ3RoICRDb21tZW50CiAgICAgICAgICAgICAgICA/ICcnCiAgICAgICAgICAgICAgICA6ICcuLi4nOwogICAgICAgICAgICAkQ29tbWVudCAgICAgICA9IHN1YnN0ciAkQ29tbWVudCwgMCwgJExlbmd0aDsKICAgICAgICAgICAgJENvbW1lbnRBcHBlbmQgPSAnICgnIC4gJENvbW1lbnQgLiAkRWxsaXBzaXMgLiAnKSc7CiAgICAgICAgfQoKICAgICAgICAkVGVtcGxhdGVzeyRLZXl9ID0gJE5hbWUgLiAkQ29tbWVudEFwcGVuZDsKICAgIH0KCiAgICByZXR1cm4gXCVUZW1wbGF0ZXM7Cn0KCj1oZWFkMiBUZW1wbGF0ZVNlYXJjaCgpCgpSZXR1cm5zIGVpdGhlciBhIGxpc3QsIGFzIGFuIGFycmF5cmVmLCBvciBhIGNvdW50IG9mIGZvdW5kIHRlbXBsYXRlIGlkcy4KVGhlIGNvdW50IG9mIHJlc3VsdHMgaXMgcmV0dXJuZWQgd2hlbiB0aGUgcGFyYW1ldGVyIEM8UmVzdWx0ID0+ICdDT1VOVCc+IGlzIHBhc3NlZC4KClRoZSBzZWFyY2ggY3JpdGVyaWEgYXJlIGxvZ2ljYWxseSBBTkQgY29ubmVjdGVkLgpXaGVuIGEgbGlzdCBpcyBwYXNzZWQgYXMgQzxjcml0ZXJpdW0+LCB0aGUgaW5kaXZpZHVhbCBtZW1iZXJzIGFyZSBPUiBjb25uZWN0ZWQuCldoZW4gYW4gdW5kZWYgb3IgYSByZWZlcmVuY2UgdG8gYW4gZW1wdHkgYXJyYXkgaXMgcGFzc2VkLCB0aGVuIHRoZSBzZWFyY2ggQzxjcml0ZXJpdW0+CmlzIGlnbm9yZWQuCgogICAgbXkgJFRlbXBsYXRlSURzUmVmID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZVNlYXJjaCgKCiAgICAgICAgTmFtZSAgICAgICAgICAgICAgPT4gJ1NhbXBsZSB0ZW1wbGF0ZScsICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgQ29tbWVudCAgICAgICAgICAgPT4gJ2p1c3QgYW4gZXhhbXBsZScsICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgIFRlbXBsYXRlVHlwZUlEcyAgID0+IFsgMTEsIDEyIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFRlbXBsYXRlVHlwZXMgICAgID0+IFsgJ0lUU01DaGFuZ2UnLCAnQ0FCJyBdLCAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICBDcmVhdGVCeSAgICAgICAgICA9PiBbIDUsIDIsIDMgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBDaGFuZ2VCeSAgICAgICAgICA9PiBbIDMsIDIsIDEgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgIyB0ZW1wbGF0ZXMgd2l0aCBjcmVhdGVkIHRpbWUgYWZ0ZXIgLi4uCiAgICAgICAgQ3JlYXRlVGltZU5ld2VyRGF0ZSAgICAgICA9PiAnMjAwNi0wMS0wOSAwMDowMDowMScsICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyB0ZW1wbGF0ZXMgd2l0aCBjcmVhdGVkIHRpbWUgYmVmb3JlIHRoZW4gLi4uLgogICAgICAgIENyZWF0ZVRpbWVPbGRlckRhdGUgICAgICAgPT4gJzIwMDYtMDEtMTkgMjM6NTk6NTknLCAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICAjIHRlbXBsYXRlcyB3aXRoIGNoYW5nZWQgdGltZSBhZnRlciAuLi4KICAgICAgICBDaGFuZ2VUaW1lTmV3ZXJEYXRlICAgICAgID0+ICcyMDA2LTAxLTA5IDAwOjAwOjAxJywgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICAjIHRlbXBsYXRlcyB3aXRoIGNoYW5nZWQgdGltZSBiZWZvcmUgdGhlbiAuLi4uCiAgICAgICAgQ2hhbmdlVGltZU9sZGVyRGF0ZSAgICAgICA9PiAnMjAwNi0wMS0xOSAyMzo1OTo1OScsICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgIE9yZGVyQnkgPT4gWyAnVGVtcGxhdGVJRCcsICdOYW1lJyBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgICMgaWdub3JlZCB3aGVuIHRoZSByZXN1bHQgdHlwZSBpcyAnQ09VTlQnCiAgICAgICAgIyBkZWZhdWx0OiBbICdUZW1wbGF0ZUlEJyBdLAogICAgICAgICMgKFRlbXBsYXRlSUQsIE5hbWUsIENvbW1lbnQsIFRlbXBsYXRlVHlwZUlELAogICAgICAgICMgQ3JlYXRlVGltZSwgQ3JlYXRlQnksIENoYW5nZVRpbWUsIENoYW5nZUJ5KQoKICAgICAgICAjIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIE9yZGVyQnk6CiAgICAgICAgIyBUaGUgT3JkZXJCeURpcmVjdGlvbiBjYW4gYmUgc3BlY2lmaWVkIGZvciBlYWNoIE9yZGVyQnkgYXR0cmlidXRlLgogICAgICAgICMgVGhlIHBhaXJpbmcgaXMgbWFkZSBieSB0aGUgYXJyYXkgaW5kaWNlcy4KCiAgICAgICAgT3JkZXJCeURpcmVjdGlvbiA9PiBbICdEb3duJywgJ1VwJyBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyBpZ25vcmVkIHdoZW4gdGhlIHJlc3VsdCB0eXBlIGlzICdDT1VOVCcKICAgICAgICAjIGRlZmF1bHQ6IFsgJ0Rvd24nIF0KICAgICAgICAjIChEb3duIHwgVXApCgogICAgICAgIFVzaW5nV2lsZGNhcmRzID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgICMgKDAgfCAxKSBkZWZhdWx0IDEKCiAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScgfHwgJ0NPVU5UJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyBkZWZhdWx0OiBBUlJBWSwgcmV0dXJucyBhbiBhcnJheSBvZiB0ZW1wbGF0ZSBpZHMKICAgICAgICAjIENPVU5UIHJldHVybnMgYSBzY2FsYXIgd2l0aCB0aGUgbnVtYmVyIG9mIGZvdW5kIHRlbXBsYXRlcwoKICAgICAgICBMaW1pdCA9PiAxMDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICAjIGlnbm9yZWQgd2hlbiB0aGUgcmVzdWx0IHR5cGUgaXMgJ0NPVU5UJwoKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgVGVtcGxhdGVTZWFyY2ggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFVzZXJJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgdmVyaWZ5IHRoYXQgYWxsIHBhc3NlZCBhcnJheSBwYXJhbWV0ZXJzIGNvbnRhaW4gYW4gYXJyYXlyZWYKICAgIEFSR1VNRU5UOgogICAgZm9yIG15ICRBcmd1bWVudCAoCiAgICAgICAgcXcoCiAgICAgICAgT3JkZXJCeQogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24KICAgICAgICBUZW1wbGF0ZVR5cGVzCiAgICAgICAgVGVtcGxhdGVUeXBlSURzCiAgICAgICAgQ3JlYXRlQnkKICAgICAgICBDaGFuZ2VCeQogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gfHw9IFtdOwoKICAgICAgICAgICAgbmV4dCBBUkdVTUVOVDsKICAgICAgICB9CgogICAgICAgIGlmICggcmVmICRQYXJhbXskQXJndW1lbnR9IG5lICdBUlJBWScgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICIkQXJndW1lbnQgbXVzdCBiZSBhbiBhcnJheSByZWZlcmVuY2UhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSBAU1FMV2hlcmU7ICAgICMgYXNzZW1ibGUgdGhlIGNvbmRpdGlvbnMgdXNlZCBpbiB0aGUgV0hFUkUgY2xhdXNlCgogICAgIyBkZWZpbmUgb3JkZXIgdGFibGUKICAgIG15ICVPcmRlckJ5VGFibGUgPSAoCiAgICAgICAgVGVtcGxhdGVJRCAgICAgPT4gJ3QuaWQnLAogICAgICAgIE5hbWUgICAgICAgICAgID0+ICd0Lm5hbWUnLAogICAgICAgIENvbW1lbnQgICAgICAgID0+ICd0LmNvbW1lbnRzJywKICAgICAgICBUZW1wbGF0ZVR5cGVJRCA9PiAndC50eXBlX2lkJywKICAgICAgICBWYWxpZElEICAgICAgICA9PiAndC52YWxpZF9pZCcsCiAgICAgICAgQ3JlYXRlVGltZSAgICAgPT4gJ3QuY3JlYXRlX3RpbWUnLAogICAgICAgIENyZWF0ZUJ5ICAgICAgID0+ICd0LmNyZWF0ZV9ieScsCiAgICAgICAgQ2hhbmdlVGltZSAgICAgPT4gJ3QuY2hhbmdlX3RpbWUnLAogICAgICAgIENoYW5nZUJ5ICAgICAgID0+ICd0LmNoYW5nZV9ieScsCiAgICApOwoKICAgICMgY2hlY2sgaWYgT3JkZXJCeSBjb250YWlucyBvbmx5IHVuaXF1ZSB2YWxpZCB2YWx1ZXMKICAgIG15ICVPcmRlckJ5U2VlbjsKICAgIGZvciBteSAkT3JkZXJCeSAoIEB7ICRQYXJhbXtPcmRlckJ5fSB9ICkgewoKICAgICAgICBpZiAoICEkT3JkZXJCeSB8fCAhJE9yZGVyQnlUYWJsZXskT3JkZXJCeX0gfHwgJE9yZGVyQnlTZWVueyRPcmRlckJ5fSApIHsKCiAgICAgICAgICAgICMgZm91bmQgYW4gZXJyb3IKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk9yZGVyQnkgY29udGFpbnMgaW52YWxpZCB2YWx1ZSAnJE9yZGVyQnknICIKICAgICAgICAgICAgICAgICAgICAuICdvciB0aGUgdmFsdWUgaXMgdXNlZCBtb3JlIHRoYW4gb25jZSEnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHJlbWVtYmVyIHRoZSB2YWx1ZSB0byBjaGVjayBpZiBpdCBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlCiAgICAgICAgJE9yZGVyQnlTZWVueyRPcmRlckJ5fSA9IDE7CiAgICB9CgogICAgIyBjaGVjayBpZiBPcmRlckJ5RGlyZWN0aW9uIGFycmF5IGNvbnRhaW5zIG9ubHkgJ1VwJyBvciAnRG93bicKICAgIERJUkVDVElPTjoKICAgIGZvciBteSAkRGlyZWN0aW9uICggQHsgJFBhcmFte09yZGVyQnlEaXJlY3Rpb259IH0gKSB7CgogICAgICAgICMgb25seSAnVXAnIG9yICdEb3duJyBhbGxvd2VkCiAgICAgICAgbmV4dCBESVJFQ1RJT04gaWYgJERpcmVjdGlvbiBlcSAnVXAnOwogICAgICAgIG5leHQgRElSRUNUSU9OIGlmICREaXJlY3Rpb24gZXEgJ0Rvd24nOwoKICAgICAgICAjIGZvdW5kIGFuIGVycm9yCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJPcmRlckJ5RGlyZWN0aW9uIGNhbiBvbmx5IGNvbnRhaW4gJ1VwJyBvciAnRG93bichIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCBkZWZhdWx0IHZhbHVlcwogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17VXNpbmdXaWxkY2FyZHN9ICkgewogICAgICAgICRQYXJhbXtVc2luZ1dpbGRjYXJkc30gPSAxOwogICAgfQoKICAgICMgc2V0IHRoZSBkZWZhdWx0IGJlaGF2aW91ciBmb3IgdGhlIHJldHVybiB0eXBlCiAgICBteSAkUmVzdWx0ID0gJFBhcmFte1Jlc3VsdH0gfHwgJ0FSUkFZJzsKCiAgICAjIGNoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIFRlbXBsYXRlVHlwZUlEcyBhcmUgYWxsIHZhbGlkCiAgICByZXR1cm4gaWYgISRTZWxmLT5fQ2hlY2tUZW1wbGF0ZVR5cGVJRHMoCiAgICAgICAgVGVtcGxhdGVUeXBlSURzID0+ICRQYXJhbXtUZW1wbGF0ZVR5cGVJRHN9LAogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBsb29rIHVwIGFuZCB0aHVzIGNoZWNrIHRoZSBUZW1wbGF0ZVR5cGVzCiAgICBmb3IgbXkgJFR5cGUgKCBAeyAkUGFyYW17VGVtcGxhdGVUeXBlc30gfSApIHsKCiAgICAgICAgIyBnZXQgdGhlIElEIGZvciB0aGUgbmFtZQogICAgICAgIG15ICRUeXBlSUQgPSAkU2VsZi0+VGVtcGxhdGVUeXBlTG9va3VwKAogICAgICAgICAgICBUZW1wbGF0ZVR5cGUgPT4gJFR5cGUsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayB3aGV0aGVyIHRoZSBJRCB3YXMgZm91bmQsIHdoZXRoZXIgdGhlIG5hbWUgZXhpc3RzCiAgICAgICAgaWYgKCAhJFR5cGVJRCApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSB0ZW1wbGF0ZSB0eXBlICckVHlwZScgaXMgbm90IGtub3duISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIHB1c2ggQHsgJFBhcmFte1RlbXBsYXRlVHlwZUlEc30gfSwgJFR5cGVJRDsKICAgIH0KCiAgICAjIGFkZCBzdHJpbmcgcGFyYW1zIHRvIHRoZSBXSEVSRSBjbGF1c2UKICAgIG15ICVTdHJpbmdQYXJhbXMgPSAoCiAgICAgICAgTmFtZSAgICA9PiAndC5uYW1lJywKICAgICAgICBDb21tZW50ID0+ICd0LmNvbW1lbnRzJywKICAgICk7CgogICAgIyBhZGQgc3RyaW5nIHBhcmFtcyB0byBzcWwtd2hlcmUtYXJyYXkKICAgIFNUUklOR1BBUkFNOgogICAgZm9yIG15ICRTdHJpbmdQYXJhbSAoIHNvcnQga2V5cyAlU3RyaW5nUGFyYW1zICkgewoKICAgICAgICAjIGNoZWNrIHN0cmluZyBwYXJhbXMgZm9yIHVzZWZ1bCB2YWx1ZXMsIHRoZSBzdHJpbmcgJzAnIGlzIGFsbG93ZWQKICAgICAgICBuZXh0IFNUUklOR1BBUkFNIGlmICFleGlzdHMgJFBhcmFteyRTdHJpbmdQYXJhbX07CiAgICAgICAgbmV4dCBTVFJJTkdQQVJBTSBpZiAhZGVmaW5lZCAkUGFyYW17JFN0cmluZ1BhcmFtfTsKICAgICAgICBuZXh0IFNUUklOR1BBUkFNIGlmICRQYXJhbXskU3RyaW5nUGFyYW19IGVxICcnOwoKICAgICAgICAjIHF1b3RlCiAgICAgICAgJFBhcmFteyRTdHJpbmdQYXJhbX0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UXVvdGUoICRQYXJhbXskU3RyaW5nUGFyYW19ICk7CgogICAgICAgICMgd2lsZGNhcmRzIGFyZSB1c2VkCiAgICAgICAgaWYgKCAkUGFyYW17VXNpbmdXaWxkY2FyZHN9ICkgewoKICAgICAgICAgICAgIyBnZXQgbGlrZSBlc2NhcGUgc3RyaW5nIG5lZWRlZCBmb3Igc29tZSBkYXRhYmFzZXMgKGUuZy4gb3JhY2xlKQogICAgICAgICAgICBteSAkTGlrZUVzY2FwZVN0cmluZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5HZXREYXRhYmFzZUZ1bmN0aW9uKCdMaWtlRXNjYXBlU3RyaW5nJyk7CgogICAgICAgICAgICAjIFF1b3RlCiAgICAgICAgICAgICRQYXJhbXskU3RyaW5nUGFyYW19ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlF1b3RlKCAkUGFyYW17JFN0cmluZ1BhcmFtfSwgJ0xpa2UnICk7CgogICAgICAgICAgICAjIHJlcGxhY2UgKiB3aXRoICUKICAgICAgICAgICAgJFBhcmFteyRTdHJpbmdQYXJhbX0gPX4gc3sgXCorIH17JX14bXNnOwoKICAgICAgICAgICAgIyBkbyBub3QgdXNlIHN0cmluZyBwYXJhbXMgd2hpY2ggY29udGFpbiBvbmx5ICUKICAgICAgICAgICAgbmV4dCBTVFJJTkdQQVJBTSBpZiAkUGFyYW17JFN0cmluZ1BhcmFtfSA9fiBteyBcQSAlKiBceiB9eG1zOwoKICAgICAgICAgICAgcHVzaCBAU1FMV2hlcmUsCiAgICAgICAgICAgICAgICAiTE9XRVIoJFN0cmluZ1BhcmFtc3skU3RyaW5nUGFyYW19KSBMSUtFIExPV0VSKCckUGFyYW17JFN0cmluZ1BhcmFtfScpICRMaWtlRXNjYXBlU3RyaW5nIjsKICAgICAgICB9CgogICAgICAgICMgbm8gd2lsZGNhcmRzIGFyZSB1c2VkCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHB1c2ggQFNRTFdoZXJlLAogICAgICAgICAgICAgICAgIkxPV0VSKCRTdHJpbmdQYXJhbXN7JFN0cmluZ1BhcmFtfSkgPSBMT1dFUignJFBhcmFteyRTdHJpbmdQYXJhbX0nKSI7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGFycmF5IHBhcmFtcwogICAgbXkgJUFycmF5UGFyYW1zID0gKAogICAgICAgIFRlbXBsYXRlVHlwZUlEcyA9PiAndC50eXBlX2lkJywKICAgICAgICBDcmVhdGVCeSAgICAgICAgPT4gJ3QuY3JlYXRlX2J5JywKICAgICAgICBDaGFuZ2VCeSAgICAgICAgPT4gJ3QuY2hhbmdlX2J5JywKICAgICk7CgogICAgIyBhZGQgYXJyYXkgcGFyYW1zIHRvIHNxbC13aGVyZS1hcnJheQogICAgQVJSQVlQQVJBTToKICAgIGZvciBteSAkQXJyYXlQYXJhbSAoIHNvcnQga2V5cyAlQXJyYXlQYXJhbXMgKSB7CgogICAgICAgICMgaWdub3JlIGVtcHR5IGxpc3RzCiAgICAgICAgbmV4dCBBUlJBWVBBUkFNIGlmICFAeyAkUGFyYW17JEFycmF5UGFyYW19IH07CgogICAgICAgICMgcXVvdGUgYXMgaW50ZWdlcgogICAgICAgIGZvciBteSAkT25lUGFyYW0gKCBAeyAkUGFyYW17JEFycmF5UGFyYW19IH0gKSB7CiAgICAgICAgICAgICRPbmVQYXJhbSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5RdW90ZSggJE9uZVBhcmFtLCAnSW50ZWdlcicgKTsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIHN0cmluZwogICAgICAgIG15ICRJblN0cmluZyA9IGpvaW4gJywgJywgQHsgJFBhcmFteyRBcnJheVBhcmFtfSB9OwoKICAgICAgICBwdXNoIEBTUUxXaGVyZSwgIiRBcnJheVBhcmFtc3skQXJyYXlQYXJhbX0gSU4gKCRJblN0cmluZykiOwogICAgfQoKICAgICMgY2hlY2sgdGhlIHRpbWUgcGFyYW1zIGFuZCBhZGQgdGhlbSB0byB0aGUgV0hFUkUgY2xhdXNlIG9mIHRoZSBTRUxFQ1QtU3RhdGVtZW50CiAgICBteSAlVGltZVBhcmFtcyA9ICgKICAgICAgICBDcmVhdGVUaW1lTmV3ZXJEYXRlID0+ICd0LmNyZWF0ZV90aW1lID49JywKICAgICAgICBDcmVhdGVUaW1lT2xkZXJEYXRlID0+ICd0LmNyZWF0ZV90aW1lIDw9JywKICAgICAgICBDaGFuZ2VUaW1lTmV3ZXJEYXRlID0+ICd0LmNoYW5nZV90aW1lID49JywKICAgICAgICBDaGFuZ2VUaW1lT2xkZXJEYXRlID0+ICd0LmNoYW5nZV90aW1lIDw9JywKICAgICk7CiAgICBUSU1FUEFSQU06CiAgICBmb3IgbXkgJFRpbWVQYXJhbSAoIHNvcnQga2V5cyAlVGltZVBhcmFtcyApIHsKCiAgICAgICAgbmV4dCBUSU1FUEFSQU0gaWYgISRQYXJhbXskVGltZVBhcmFtfTsKCiAgICAgICAgaWYgKCAkUGFyYW17JFRpbWVQYXJhbX0gIX4gbXsgXEEgXGRcZFxkXGQtXGRcZC1cZFxkIFxzIFxkXGQ6XGRcZDpcZFxkIFx6IH14bXMgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgcGFyYW1ldGVyICRUaW1lUGFyYW0gaGFzIGFuIGludmFsaWQgZGF0ZSBmb3JtYXQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBxdW90ZQogICAgICAgICRQYXJhbXskVGltZVBhcmFtfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5RdW90ZSggJFBhcmFteyRUaW1lUGFyYW19ICk7CgogICAgICAgIHB1c2ggQFNRTFdoZXJlLCAiJFRpbWVQYXJhbXN7JFRpbWVQYXJhbX0gJyRQYXJhbXskVGltZVBhcmFtfSciOwogICAgfQoKICAgICMgZGVsZXRlIHRoZSBPcmRlckJ5IHBhcmFtZXRlciB3aGVuIHRoZSByZXN1bHQgdHlwZSBpcyAnQ09VTlQnCiAgICBpZiAoICRSZXN1bHQgZXEgJ0NPVU5UJyApIHsKICAgICAgICAkUGFyYW17T3JkZXJCeX0gPSBbXTsKICAgIH0KCiAgICAjIGFzc2VtYmxlIHRoZSBPUkRFUiBCWSBjbGF1c2UKICAgIG15IEBTUUxPcmRlckJ5OwogICAgbXkgJENvdW50ID0gMDsKICAgIGZvciBteSAkT3JkZXJCeSAoIEB7ICRQYXJhbXtPcmRlckJ5fSB9ICkgewoKICAgICAgICAjIHNldCB0aGUgZGVmYXVsdCBvcmRlciBkaXJlY3Rpb24KICAgICAgICBteSAkRGlyZWN0aW9uID0gJ0RFU0MnOwoKICAgICAgICAjIGFkZCB0aGUgZ2l2ZW4gb3JkZXIgZGlyZWN0aW9uCiAgICAgICAgaWYgKCAkUGFyYW17T3JkZXJCeURpcmVjdGlvbn0tPlskQ291bnRdICkgewogICAgICAgICAgICBpZiAoICRQYXJhbXtPcmRlckJ5RGlyZWN0aW9ufS0+WyRDb3VudF0gZXEgJ1VwJyApIHsKICAgICAgICAgICAgICAgICREaXJlY3Rpb24gPSAnQVNDJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRQYXJhbXtPcmRlckJ5RGlyZWN0aW9ufS0+WyRDb3VudF0gZXEgJ0Rvd24nICkgewogICAgICAgICAgICAgICAgJERpcmVjdGlvbiA9ICdERVNDJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBhZGQgU1FMCiAgICAgICAgcHVzaCBAU1FMT3JkZXJCeSwgIiRPcmRlckJ5VGFibGV7JE9yZGVyQnl9ICREaXJlY3Rpb24iOwogICAgfQogICAgY29udGludWUgewogICAgICAgICRDb3VudCsrOwogICAgfQoKICAgICMgaWYgdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSB0aGF0IHRoZSBvcmRlcmluZyBpcyBub3QgZGV0ZXJtaW5lZAogICAgIyB3ZSBhZGQgYW4gZGVzY2VuZGluZyBvcmRlcmluZyBieSBpZAogICAgaWYgKCAhZ3JlcCB7ICRfIGVxICdUZW1wbGF0ZUlEJyB9ICggQHsgJFBhcmFte09yZGVyQnl9IH0gKSApIHsKICAgICAgICBwdXNoIEBTUUxPcmRlckJ5LCAiJE9yZGVyQnlUYWJsZXtUZW1wbGF0ZUlEfSBERVNDIjsKICAgIH0KCiAgICAjIGFzc2VtYmxlIHRoZSBTUUwgcXVlcnkKICAgIG15ICRTUUwgPSAnU0VMRUNUIHQuaWQgRlJPTSBjaGFuZ2VfdGVtcGxhdGUgdCAnOwoKICAgICMgbW9kaWZ5IFNRTCB3aGVuIHRoZSByZXN1bHQgdHlwZSBpcyAnQ09VTlQnLgogICAgIyBUaGVyZSBpcyBubyAnR1JPVVAgQlknIFNRTC1jbGF1c2UsIHRoZXJlZm9yZSBDT1VOVChjLmlkKSBhbHdheXMgZ2l2ZSB0aGUgd2FudGVkIGNvdW50CiAgICBpZiAoICRSZXN1bHQgZXEgJ0NPVU5UJyApIHsKICAgICAgICAkU1FMICAgICAgICA9ICdTRUxFQ1QgQ09VTlQodC5pZCkgRlJPTSBjaGFuZ2VfdGVtcGxhdGUgdCAnOwogICAgICAgIEBTUUxPcmRlckJ5ID0gKCk7CiAgICB9CgogICAgIyBhZGQgdGhlIFdIRVJFIGNsYXVzZQogICAgaWYgKEBTUUxXaGVyZSkgewogICAgICAgICRTUUwgLj0gJ1dIRVJFICc7CiAgICAgICAgJFNRTCAuPSBqb2luICcgQU5EICcsIG1hcCB7IiggJF8gKSJ9IEBTUUxXaGVyZTsKICAgICAgICAkU1FMIC49ICcgJzsKICAgIH0KCiAgICAjIGFkZCB0aGUgT1JERVIgQlkgY2xhdXNlCiAgICBpZiAoQFNRTE9yZGVyQnkpIHsKICAgICAgICAkU1FMIC49ICdPUkRFUiBCWSAnOwogICAgICAgICRTUUwgLj0gam9pbiAnLCAnLCBAU1FMT3JkZXJCeTsKICAgICAgICAkU1FMIC49ICcgJzsKICAgIH0KCiAgICAjIGlnbm9yZSB0aGUgcGFyYW1ldGVyICdMaW1pdCcgd2hlbiByZXN1bHQgdHlwZSBpcyAnQ09VTlQnCiAgICBpZiAoICRSZXN1bHQgZXEgJ0NPVU5UJyApIHsKICAgICAgICAkUGFyYW17TGltaXR9ID0gMTsKICAgIH0KCiAgICAjIGFzayBkYXRhYmFzZQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgICA9PiAkU1FMLAogICAgICAgIExpbWl0ID0+ICRQYXJhbXtMaW1pdH0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgQElEczsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgcHVzaCBASURzLCAkUm93WzBdOwogICAgfQoKICAgICMgcmV0dXJuIHRoZSBjb3VudCBhcyBzY2FsYXIKICAgIHJldHVybiAkSURzWzBdIGlmICRSZXN1bHQgZXEgJ0NPVU5UJzsKCiAgICByZXR1cm4gXEBJRHM7Cn0KCj1oZWFkMiBUZW1wbGF0ZURlbGV0ZSgpCgpEZWxldGUgYSB0ZW1wbGF0ZS4KCiAgICBteSAkU3VjY2VzcyA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVEZWxldGUoCiAgICAgICAgVGVtcGxhdGVJRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgVGVtcGxhdGVEZWxldGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVGVtcGxhdGVJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgdHJpZ2dlciBUZW1wbGF0ZURlbGV0ZVByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnVGVtcGxhdGVEZWxldGVQcmUnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCB0ZW1wbGF0ZSBkYXRhCiAgICBteSAkVGVtcGxhdGVEYXRhID0gJFNlbGYtPlRlbXBsYXRlR2V0KAogICAgICAgIFRlbXBsYXRlSUQgPT4gJFBhcmFte1RlbXBsYXRlSUR9LAogICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZGVsZXRlIHRlbXBsYXRlIGZyb20gZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCAgPT4gJ0RFTEVURSBGUk9NIGNoYW5nZV90ZW1wbGF0ZSBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1RlbXBsYXRlSUR9IF0sCiAgICApOwoKICAgICMgdHJpZ2dlciBUZW1wbGF0ZURlbGV0ZVBvc3QtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ1RlbXBsYXRlRGVsZXRlUG9zdCcsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICBPbGRUZW1wbGF0ZURhdGEgPT4gJFRlbXBsYXRlRGF0YSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIFRlbXBsYXRlVHlwZUxvb2t1cCgpCgpSZXR1cm4gdGhlIHRlbXBsYXRlIHR5cGUgaWQgd2hlbiB0aGUgdGVtcGxhdGUgdHlwZSBuYW1lIGlzIHBhc3NlZC4KUmV0dXJuIHRoZSB0ZW1wbGF0ZSB0eXBlIG5hbWUgd2hlbiB0aGUgdGVtcGxhdGUgdHlwZSBpZCBpcyBwYXNzZWQuCldoZW4gbm8gdGVtcGxhdGUgdHlwZSBpZCBvciB0ZW1wbGF0ZSB0eXBlIG5hbWUgaXMgZm91bmQsIHRoZW4gdGhlCnVuZGVmaW5lZCB2YWx1ZSBpcyByZXR1cm5lZC4KCiAgICBteSAkVHlwZUlEID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZVR5cGVMb29rdXAoCiAgICAgICAgVGVtcGxhdGVUeXBlID0+ICdteSB0ZW1wbGF0ZSB0eXBlIG5hbWUnLAogICAgKTsKCiAgICBteSAkVHhwZU5hbWUgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlVHlwZUxvb2t1cCgKICAgICAgICBUZW1wbGF0ZVR5cGVJRCA9PiA0MiwKICAgICk7Cgo9Y3V0CgpzdWIgVGVtcGxhdGVUeXBlTG9va3VwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0aGUgdGVtcGxhdGUgdHlwZSBpZCBvciB0aGUgdGVtcGxhdGUgdHlwZSBuYW1lIG11c3QgYmUgcGFzc2VkCiAgICBpZiAoICEkUGFyYW17VGVtcGxhdGVUeXBlSUR9ICYmICEkUGFyYW17VGVtcGxhdGVUeXBlfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgdGhlIFRlbXBsYXRlVHlwZUlEIG9yIHRoZSBUZW1wbGF0ZVR5cGUhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIG9ubHkgb25lIG9mIHRlbXBsYXRlIGlkIGFuZCB0ZW1wbGF0ZSBuYW1lIGNhbiBiZSBwYXNzZWQKICAgIGlmICggJFBhcmFte1RlbXBsYXRlVHlwZUlEfSAmJiAkUGFyYW17VGVtcGxhdGVUeXBlfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgZWl0aGVyIHRoZSBUZW1wbGF0ZVR5cGUgb3IgdGhlIFRlbXBsYXRlVGVtcGxhdGVJRCwgbm90IGJvdGghJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCB0eXBlIGlkCiAgICBpZiAoICRQYXJhbXtUZW1wbGF0ZVR5cGV9ICkgewogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCAgID0+ICdTRUxFQ1QgaWQgRlJPTSBjaGFuZ2VfdGVtcGxhdGVfdHlwZSBXSEVSRSBuYW1lID0gPycsCiAgICAgICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtUZW1wbGF0ZVR5cGV9IF0sCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFR5cGVJRDsKICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAkVHlwZUlEID0gJFJvd1swXTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkVHlwZUlEOwogICAgfQoKICAgICMgZ2V0IHR5cGUgbmFtZQogICAgZWxzaWYgKCAkUGFyYW17VGVtcGxhdGVUeXBlSUR9ICkgewoKICAgICAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgICA9PiAnU0VMRUNUIG5hbWUgRlJPTSBjaGFuZ2VfdGVtcGxhdGVfdHlwZSBXSEVSRSBpZCA9ID8nLAogICAgICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17VGVtcGxhdGVUeXBlSUR9IF0sCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFR5cGVOYW1lOwogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICRUeXBlTmFtZSA9ICRSb3dbMF07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJFR5cGVOYW1lOwogICAgfQoKICAgIHJldHVybjsKfQoKPWhlYWQyIFRlbXBsYXRlU2VyaWFsaXplKCkKClRoaXMgbWV0aG9kIGlzIGluIGZhY3QgYSBkaXNwYXRjaGVyIGZvciBkaWZmZXJlbnQgdGVtcGxhdGUgdHlwZXMuCkN1cnJlbnRseSBJVFNNQ2hhbmdlTWFuYWdlbWVudCBzdXBwb3J0cyB0aGVzZSB0ZW1wbGF0ZSB0eXBlczoKCklUU01DaGFuZ2UKSVRTTVdvcmtPcmRlcgpDQUIKSVRTTUNvbmRpdGlvbgoKVGhlIG1ldGhvZCByZXR1cm5zIGEgZGF0YSBzdHJ1Y3R1cmUsIHNlcmlhbGl6ZWQgd2l0aCBEYXRhOjpEdW1wZXIuCgogICAgbXkgJENoYW5nZVRlbXBsYXRlID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZVNlcmlhbGl6ZSgKICAgICAgICBUZW1wbGF0ZVR5cGUgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgIFN0YXRlUmVzZXQgICA9PiAxLCAjIChvcHRpb25hbCkgcmVzZXQgdG8gZGVmYXVsdCBzdGF0ZQogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAoKICAgICAgICAjIG90aGVyIG9wdGlvbnMgbmVlZGVkIGRlcGVuZGluZyBvbiB0aGUgdGVtcGxhdGUgdHlwZQogICAgICAgIENoYW5nZUlEID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgVGVtcGxhdGVTZXJpYWxpemUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFVzZXJJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgdGhlIHRlbXBsYXRlIHR5cGUgaWQgb3IgdGhlIHRlbXBsYXRlIHR5cGUgbmFtZSBtdXN0IGJlIHBhc3NlZAogICAgaWYgKCAhJFBhcmFte1RlbXBsYXRlVHlwZUlEfSAmJiAhJFBhcmFte1RlbXBsYXRlVHlwZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIHRoZSBUZW1wbGF0ZVR5cGVJRCBvciB0aGUgVGVtcGxhdGVUeXBlIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBvbmx5IG9uZSBvZiB0ZW1wbGF0ZSB0eXBlIG5hbWUgYW5kIHRlbXBsYXRlIHR5cGUgaWQgY2FuIGJlIHBhc3NlZAogICAgaWYgKCAkUGFyYW17VGVtcGxhdGVUeXBlfSAmJiAkUGFyYW17VGVtcGxhdGVUeXBlSUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBlaXRoZXIgdGhlIFRlbXBsYXRlVHlwZUlEIG9yIHRoZSBUZW1wbGF0ZVR5cGUsIG5vdCBib3RoIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJFRlbXBsYXRlVHlwZSA9ICRQYXJhbXtUZW1wbGF0ZVR5cGV9OwogICAgaWYgKCAkUGFyYW17VGVtcGxhdGVUeXBlSUR9ICkgewogICAgICAgICRUZW1wbGF0ZVR5cGUgPSAkU2VsZi0+VGVtcGxhdGVUeXBlTG9va3VwKAogICAgICAgICAgICBUZW1wbGF0ZVR5cGVJRCA9PiAkUGFyYW17VGVtcGxhdGVUeXBlSUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyB3aGF0IHR5cGVzIG9mIHRlbXBsYXRlcyBhcmUgc3VwcG9ydGVkIGFuZCB3aGF0IHN1YnJvdXRpbmVzIGRvIHRoZSBzZXJpYWxpemF0aW9uCiAgICBteSAkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGU6OicgLiAkVGVtcGxhdGVUeXBlICk7CgogICAgcmV0dXJuIGlmICEkQmFja2VuZE9iamVjdDsKCiAgICBteSAkU2VyaWFsaXplZERhdGEgPSAkQmFja2VuZE9iamVjdC0+U2VyaWFsaXplKAogICAgICAgICVQYXJhbSwKICAgICk7CgogICAgcmV0dXJuICRTZXJpYWxpemVkRGF0YTsKfQoKPWhlYWQyIFRlbXBsYXRlRGVTZXJpYWxpemUoKQoKVGhpcyBtZXRob2QgZGVzZXJpYWxpemVzIHRoZSB0ZW1wbGF0ZSBjb250ZW50LiBJdCByZXR1cm5zIHRoZQpJRCBvZiB0aGUgIm1haW4iIGVsZW1lbnQgdGhhdCB3YXMgY3JlYXRlZCBiYXNlZCBvbiB0aGUgdGVtcGxhdGUuCgogICAgbXkgJEVsZW1lbnRJRCA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVEZVNlcmlhbGl6ZSgKICAgICAgICBUZW1wbGF0ZUlEID0+IDEyMywKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIFRlbXBsYXRlRGVTZXJpYWxpemUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIFRlbXBsYXRlSUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IHRlbXBsYXRlCiAgICBteSAkVGVtcGxhdGUgPSAkU2VsZi0+VGVtcGxhdGVHZXQoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCiAgICByZXR1cm4gaWYgISRUZW1wbGF0ZTsKCiAgICAjIGdldCB0aGUgUGVybCBkYXRhc3RydWN0dXJlCiAgICBteSAkVGVtcGxhdGVDb250ZW50ID0gJFRlbXBsYXRlLT57Q29udGVudH07CiAgICBteSAkVkFSMTsKCiAgICByZXR1cm4gaWYgIWV2YWwgIlwkVkFSMSA9ICRUZW1wbGF0ZUNvbnRlbnQ7IDE7IjsgICAgIyMgbm8gY3JpdGljCgogICAgcmV0dXJuIGlmICEkVkFSMTsKICAgIHJldHVybiBpZiByZWYgJFZBUjEgbmUgJ0hBU0gnOwoKICAgICMgY3JlYXRlIGVudGl0aWVzIGRlZmluZWQgYnkgdGhlIHRlbXBsYXRlCiAgICBteSAlSW5mbyA9ICRTZWxmLT5fQ3JlYXRlVGVtcGxhdGVFbGVtZW50cygKICAgICAgICAlUGFyYW0sCiAgICAgICAgVGVtcGxhdGUgPT4gJFZBUjEsCiAgICApOwoKICAgIHJldHVybiAkSW5mb3tJRH07Cn0KCj1oZWFkMSBQUklWQVRFIElOVEVSRkFDRQoKPWhlYWQyIF9DcmVhdGVUZW1wbGF0ZUVsZW1lbnRzKCkKClRoaXMgbWV0aG9kIGRpc3BhdGNoZXMgdGhlIGVsZW1lbnRzIGNyZWF0aW9uLiBJdCBjYWxscyB0aGUgc3Vicm91dGluZQp0aGF0IGJlbG9uZ3MgdG8gdGhlIGdpdmVuIHR5cGUgKGUuZy4gQ2hhbmdlQWRkKS4gQWZ0ZXIgdGhhdCBpdAppbnZva2VzIGl0c2VsZiBmb3IgYWxsIHRoZSBjaGlsZHJlbiBvZiB0aGUgbWFpbiBlbGVtZW50LgoKVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUQgb2YgdGhlIG1haW4gZWxlbWVudC4KCiAgICBteSAkRWxlbWVudElEID0gJFRlbXBsYXRlT2JqZWN0LT5fQ3JlYXRlVGVtcGxhdGVFbGVtZW50cygKICAgICAgICBUZW1wbGF0ZSA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7IC4uLiB9LAogICAgICAgICAgICBDaGlsZHJlbiAgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7IC4uLiB9LAogICAgICAgICAgICAgICAgICAgIENoaWxkcmVuICAgICA9PiBbIC4uLiBdLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4geyAuLi4gfSwKICAgICAgICAgICAgICAgICAgICBDaGlsZHJlbiAgICAgPT4gWyAuLi4gXSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKCiAgICAgICAgIyBhbnkgb3RoZXIgcGFyYW1ldGVycyBjYW4gZm9sbG93CiAgICApCgo9Y3V0CgpzdWIgX0NyZWF0ZVRlbXBsYXRlRWxlbWVudHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVGVtcGxhdGUpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGNoaWxkcmVuCiAgICBteSAkQ2hpbGRyZW4gPSBkZWxldGUgJFBhcmFte1RlbXBsYXRlfS0+e0NoaWxkcmVufTsKICAgICRDaGlsZHJlbiB8fD0gW107CgogICAgIyBkaXNwYXRjaCB0YWJsZQogICAgbXkgJU1ldGhvZDJPYmplY3QgPSAoCiAgICAgICAgQ2hhbmdlQWRkICAgICA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgV29ya09yZGVyQWRkICA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgQ0FCQWRkICAgICAgICA9PiAnQ0FCJywKICAgICAgICBDb25kaXRpb25BZGQgID0+ICdJVFNNQ29uZGl0aW9uJywKICAgICAgICBBdHRhY2htZW50QWRkID0+ICdQYXJlbnQnLAogICAgICAgIEV4cHJlc3Npb25BZGQgPT4gJ1BhcmVudCcsCiAgICAgICAgQWN0aW9uQWRkICAgICA9PiAnUGFyZW50JywKICAgICAgICBMaW5rQWRkICAgICAgID0+ICdQYXJlbnQnLAogICAgKTsKCiAgICAjIGdldCBhY3Rpb24KICAgIG15ICggJE1ldGhvZCwgJERhdGEgKSA9IGVhY2ggJXsgJFBhcmFte1RlbXBsYXRlfSB9OwogICAgbXkgJFR5cGUgPSAkTWV0aG9kMk9iamVjdHskTWV0aG9kfTsKICAgIG15ICRCYWNrZW5kT2JqZWN0OwogICAgaWYgKCAkVHlwZSBlcSAnUGFyZW50JyApIHsKICAgICAgICAkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGU6OicgLiAkUGFyYW17UGFyZW50fSApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlRlbXBsYXRlOjonIC4gJFR5cGUgKTsKICAgIH0KCiAgICByZXR1cm4gaWYgISRCYWNrZW5kT2JqZWN0OwoKICAgICMgY3JlYXRlIHBhcmVudCBlbGVtZW50CiAgICBteSAlUGFyZW50UmV0dXJuID0gJEJhY2tlbmRPYmplY3QtPkRlU2VyaWFsaXplKAogICAgICAgICVQYXJhbSwKICAgICAgICBEYXRhICAgPT4gJERhdGEsCiAgICAgICAgVHlwZSAgID0+ICRUeXBlLAogICAgICAgIE1ldGhvZCA9PiAkTWV0aG9kLAogICAgKTsKCiAgICByZXR1cm4gaWYgISVQYXJlbnRSZXR1cm47CgogICAgbXkgJVNpYmxpbmdzSW5mbzsKCiAgICAjIGNyZWF0ZSBjaGlsZCBlbGVtZW50cwogICAgIyBwcmV2ZW50IG5ldyBudW1iZXIgY2FsY3VsYXRpb24gZm9yIHdvcmtvcmRlcnMsCiAgICAjIGFzIHRoZSBvcmlnaW5hbCBudW1iZXIgd2lsbCBiZSB1c2VkCiAgICBmb3IgbXkgJENoaWxkICggQHskQ2hpbGRyZW59ICkgewogICAgICAgIG15ICVDaGlsZEluZm8gPSAkU2VsZi0+X0NyZWF0ZVRlbXBsYXRlRWxlbWVudHMoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJVNpYmxpbmdzSW5mbywKICAgICAgICAgICAgJVBhcmVudFJldHVybiwKICAgICAgICAgICAgVGVtcGxhdGUgICAgID0+ICRDaGlsZCwKICAgICAgICAgICAgUGFyZW50ICAgICAgID0+ICRUeXBlLAogICAgICAgICAgICBNZXRob2QgICAgICAgPT4gJE1ldGhvZCwKICAgICAgICAgICAgTm9OdW1iZXJDYWxjID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBzYXZlIGluZm8gZm9yIG5leHQgc2libGluZwogICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVDaGlsZEluZm8gKSB7CiAgICAgICAgICAgICRTaWJsaW5nc0luZm97JEtleX0gPSAkQ2hpbGRJbmZveyRLZXl9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJVBhcmVudFJldHVybjsKfQoKPWhlYWQyIF9DaGVja1RlbXBsYXRlVHlwZUlEcygpCgpjaGVjayB3aGV0aGVyIHRoZSBnaXZlbiB0ZW1wbGF0ZSB0eXBlIGlkcyBhcmUgYWxsIHZhbGlkCgogICAgbXkgJE9rID0gJFRlbXBsYXRlT2JqZWN0LT5fQ2hlY2tUZW1wbGF0ZVR5cGVJRHMoCiAgICAgICAgVGVtcGxhdGVUeXBlSURzID0+IFsgMiwgNTAwIF0sCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIF9DaGVja1RlbXBsYXRlVHlwZUlEcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhUZW1wbGF0ZVR5cGVJRHMgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoIHJlZiAkUGFyYW17VGVtcGxhdGVUeXBlSURzfSBuZSAnQVJSQVknICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnVGhlIHBhcmFtIFRlbXBsYXRlVHlwZUlEcyBtdXN0IGJlIGFuIEFSUkFZIHJlZmVyZW5jZSEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIGlmIFRlbXBsYXRlVHlwZUlEcyBjYW4gYmUgbG9va2VkIHVwCiAgICBmb3IgbXkgJFR5cGVJRCAoIEB7ICRQYXJhbXtUZW1wbGF0ZVR5cGVJRHN9IH0gKSB7CiAgICAgICAgbXkgJFR5cGUgPSAkU2VsZi0+VGVtcGxhdGVUeXBlTG9va3VwKAogICAgICAgICAgICBUZW1wbGF0ZVR5cGVJRCA9PiAkVHlwZUlELAogICAgICAgICk7CgogICAgICAgIGlmICggISRUeXBlICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIHR5cGUgaWQgJFR5cGVJRCBpcyBub3QgdmFsaWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Event/Condition.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6OkNvbmRpdGlvbjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhEYXRhIEV2ZW50IENvbmZpZyBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgdG8gc3RvcmUgdGhlIGNoYW5nZSBpZAogICAgbXkgJENoYW5nZUlEOwoKICAgICMgdG8gc3RvcmUgdGhlIG9iamVjdCB3ZXJlIHRoZSBkYXRhIGNvbWVzIGZyb20KICAgIG15ICRPYmplY3Q7CgogICAgIyBoYW5kbGUgY2hhbmdlIGV2ZW50cwogICAgaWYgKCAkUGFyYW17RXZlbnR9ID1+IG17IFxBIENoYW5nZSB9eG1zICkgewoKICAgICAgICAjIHNldCB0aGUgY2hhbmdlIGlkCiAgICAgICAgJENoYW5nZUlEID0gJFBhcmFte0RhdGF9LT57Q2hhbmdlSUR9OwoKICAgICAgICAjIHNldCB0aGUgb2JqZWN0CiAgICAgICAgJE9iamVjdCA9ICdJVFNNQ2hhbmdlJzsKICAgIH0KCiAgICAjIGhhbmRsZSB3b3Jrb3JkZXIgZXZlbnRzCiAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gPX4gbXsgXEEgV29ya09yZGVyIH14bXMgKSB7CgogICAgICAgICMgZ2V0IHdvcmtvcmRlcgogICAgICAgIG15ICRXb3JrT3JkZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzZXQgdGhlIGNoYW5nZSBpZCBmcm9tIHdvcmtvcmRlciBkYXRhCiAgICAgICAgJENoYW5nZUlEID0gJFdvcmtPcmRlci0+e0NoYW5nZUlEfTsKCiAgICAgICAgIyBzZXQgdGhlIG9iamVjdAogICAgICAgICRPYmplY3QgPSAnSVRTTVdvcmtPcmRlcic7CiAgICB9CgogICAgIyBzaG93IGVycm9yIGZvciB1bmtub3duIGV2ZW50cwogICAgZWxzZSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDYW4gbm90IGhhbmRsZSBldmVudCAnJFBhcmFte0V2ZW50fSchIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGluIGNhc2Ugb2YgYW4gdXBkYXRlIGV2ZW50IG9yIGEgdGltZSByZWFjaGVkIGV2ZW50LCBzdG9yZSB0aGUgdXBkYXRlZCBhdHRyaWJ1dGVzCiAgICBteSBAQXR0cmlidXRlc0NoYW5nZWQ7CiAgICBpZiAoICRQYXJhbXtFdmVudH0gZXEgJ0NoYW5nZVVwZGF0ZVBvc3QnICkgewoKICAgICAgICAjIGdldCBvbGQgZGF0YQogICAgICAgIG15ICRPbGREYXRhID0gJFBhcmFte0RhdGF9LT57T2xkQ2hhbmdlRGF0YX07CgogICAgICAgIEZJRUxEOgogICAgICAgIGZvciBteSAkRmllbGQgKCBzb3J0IGtleXMgJXsgJFBhcmFte0RhdGF9IH0gKSB7CgogICAgICAgICAgICAjIGF2b2lkIHJlY3Vyc2lvbgogICAgICAgICAgICBuZXh0IEZJRUxEIGlmICRGaWVsZCBlcSAnT2xkQ2hhbmdlRGF0YSc7CgogICAgICAgICAgICAjIHdlIGRvIG5vdCB0cmFjayB0aGUgdXNlciBpZCBhbmQgInBsYWluIiBjb2x1bW5zCiAgICAgICAgICAgIG5leHQgRklFTEQgaWYgJEZpZWxkIGVxICdVc2VySUQnOwogICAgICAgICAgICBuZXh0IEZJRUxEIGlmICRGaWVsZCBlcSAnSnVzdGlmaWNhdGlvblBsYWluJzsKICAgICAgICAgICAgbmV4dCBGSUVMRCBpZiAkRmllbGQgZXEgJ0Rlc2NyaXB0aW9uUGxhaW4nOwoKICAgICAgICAgICAgIyBjaGVjayBpZiBmaWVsZCBoYXMgY2hhbmdlZAogICAgICAgICAgICBteSAkRmllbGRIYXNDaGFuZ2VkID0gJFNlbGYtPl9IYXNGaWVsZENoYW5nZWQoCiAgICAgICAgICAgICAgICBOZXcgPT4gJFBhcmFte0RhdGF9LT57JEZpZWxkfSwKICAgICAgICAgICAgICAgIE9sZCA9PiAkT2xkRGF0YS0+eyRGaWVsZH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IEZJRUxEIGlmICEkRmllbGRIYXNDaGFuZ2VkOwoKICAgICAgICAgICAgIyByZW1lbWJlciBjaGFuZ2VkIGZpZWxkIG5hbWUKICAgICAgICAgICAgcHVzaCBAQXR0cmlidXRlc0NoYW5nZWQsICRGaWVsZDsKICAgICAgICB9CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gZXEgJ1dvcmtPcmRlclVwZGF0ZVBvc3QnICkgewoKICAgICAgICAjIGdldCBvbGQgZGF0YQogICAgICAgIG15ICRPbGREYXRhID0gJFBhcmFte0RhdGF9LT57T2xkV29ya09yZGVyRGF0YX07CgogICAgICAgIEZJRUxEOgogICAgICAgIGZvciBteSAkRmllbGQgKCBzb3J0IGtleXMgJXsgJFBhcmFte0RhdGF9IH0gKSB7CgogICAgICAgICAgICAjIGF2b2lkIHJlY3Vyc2lvbgogICAgICAgICAgICBuZXh0IEZJRUxEIGlmICRGaWVsZCBlcSAnT2xkV29ya09yZGVyRGF0YSc7CgogICAgICAgICAgICAjIHdlIGRvIG5vdCB0cmFjayB0aGUgdXNlciBpZCBhbmQgInBsYWluIiBjb2x1bW5zCiAgICAgICAgICAgIG5leHQgRklFTEQgaWYgJEZpZWxkIGVxICdVc2VySUQnOwogICAgICAgICAgICBuZXh0IEZJRUxEIGlmICRGaWVsZCBlcSAnUmVwb3J0UGxhaW4nOwogICAgICAgICAgICBuZXh0IEZJRUxEIGlmICRGaWVsZCBlcSAnSW5zdHJ1Y3Rpb25QbGFpbic7CgogICAgICAgICAgICAjIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGFjY291bnRlZCB0aW1lCiAgICAgICAgICAgIGlmICggJEZpZWxkIGVxICdBY2NvdW50ZWRUaW1lJyApIHsKCiAgICAgICAgICAgICAgICAjIHdlIGRvIG5vdCB0cmFjayBpZiBhY2NvdW50ZWQgdGltZSB3YXMgZW1wdHkgb3IgemVybwogICAgICAgICAgICAgICAgbmV4dCBGSUVMRCBpZiAhJFBhcmFte0RhdGF9LT57QWNjb3VudGVkVGltZX07CgogICAgICAgICAgICAgICAgIyByZW1lbWJlciBjaGFuZ2VkIGZpZWxkIG5hbWUKICAgICAgICAgICAgICAgIHB1c2ggQEF0dHJpYnV0ZXNDaGFuZ2VkLCAkRmllbGQ7CgogICAgICAgICAgICAgICAgbmV4dCBGSUVMRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBpZiBmaWVsZCBoYXMgY2hhbmdlZAogICAgICAgICAgICBteSAkRmllbGRIYXNDaGFuZ2VkID0gJFNlbGYtPl9IYXNGaWVsZENoYW5nZWQoCiAgICAgICAgICAgICAgICBOZXcgPT4gJFBhcmFte0RhdGF9LT57JEZpZWxkfSwKICAgICAgICAgICAgICAgIE9sZCA9PiAkT2xkRGF0YS0+eyRGaWVsZH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IEZJRUxEIGlmICEkRmllbGRIYXNDaGFuZ2VkOwoKICAgICAgICAgICAgIyByZW1lbWJlciBjaGFuZ2VkIGZpZWxkIG5hbWUKICAgICAgICAgICAgcHVzaCBAQXR0cmlidXRlc0NoYW5nZWQsICRGaWVsZDsKICAgICAgICB9CiAgICB9CgogICAgIyBhbGwga2luZCBvZiBjaGFuZ2UgYW5kIHdvcmtvcmRlciB0aW1lIHJlYWNoZWQgZXZlbnRzCiAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gPX4gbXsgXEEgKD86IENoYW5nZSB8IFdvcmtPcmRlciApICggLisgVGltZSApIFJlYWNoZWRQb3N0IFx6IH14bXMgKSB7CgogICAgICAgICMgZ2V0IHRoZSBuYW1lIG9mIHRoZSByZWFjaGVkIHRpbWUgZmllbGQKICAgICAgICBteSAkRmllbGQgPSAkMTsKCiAgICAgICAgIyByZW1lbWJlciBjaGFuZ2VkIGZpZWxkIG5hbWUKICAgICAgICBwdXNoIEBBdHRyaWJ1dGVzQ2hhbmdlZCwgJEZpZWxkOwogICAgfQoKICAgICMgbWF0Y2ggYWxsIGNvbmRpdGlvbnMgZm9yIHRoaXMgY2hhbmdlIGFuZCBleGVjdXRlIGFsbCBhY3Rpb25zCiAgICBteSAkU3VjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyktPkNvbmRpdGlvbk1hdGNoRXhlY3V0ZUFsbCgKICAgICAgICBDaGFuZ2VJRCAgICAgICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgQXR0cmlidXRlc0NoYW5nZWQgPT4geyAkT2JqZWN0ID0+IFxAQXR0cmlidXRlc0NoYW5nZWQgfSwKICAgICAgICBFdmVudCAgICAgICAgICAgICA9PiAkUGFyYW17RXZlbnR9LAogICAgICAgIFVzZXJJRCAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGVycm9ycwogICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb25kaXRpb25NYXRjaEV4ZWN1dGVBbGwgY291bGQgbm90IGJlICIKICAgICAgICAgICAgICAgIC4gImV4ZWN1dGVkIHN1Y2Nlc3NmdWxseSBmb3IgZXZlbnQgJyRQYXJhbXtFdmVudH0nIG9uIENoYW5nZUlEICckQ2hhbmdlSUQnISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMSBQUklWQVRFIElOVEVSRkFDRQoKPWhlYWQyIF9IYXNGaWVsZENoYW5nZWQoKQoKVGhpcyBtZXRob2QgY2hlY2tzIHdoZXRoZXIgYSBmaWVsZCB3YXMgY2hhbmdlZCBvciBub3QuIEl0IHJldHVybnMgMSB3aGVuIGZpZWxkCndhcyBjaGFuZ2VkLCAwIG90aGVyd2lzZQoKICAgIG15ICRGaWVsZEhhc0NoYW5nZWQgPSAkQ29uZGl0aW9uT2JqZWN0LT5fSGFzRmllbGRDaGFuZ2VkKAogICAgICAgIE9sZCA9PiAnb2xkIHZhbHVlJywgIyBjYW4gYmUgYXJyYXkgcmVmZXJlbmNlIG9yIGhhc2ggcmVmZXJlbmNlIGFzIHdlbGwKICAgICAgICBOZXcgPT4gJ25ldyB2YWx1ZScsICMgY2FuIGJlIGFycmF5IHJlZmVyZW5jZSBvciBoYXNoIHJlZmVyZW5jZSBhcyB3ZWxsCiAgICApOwoKPWN1dAoKc3ViIF9IYXNGaWVsZENoYW5nZWQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGZpZWxkIGhhcyBjaGFuZ2VkIHdoZW4gZWl0aGVyICduZXcnIG9yICdvbGQgaXMgbm90IHNldAogICAgcmV0dXJuIDEgaWYgISggJFBhcmFte05ld30gJiYgJFBhcmFte09sZH0gKSAmJiAoICRQYXJhbXtOZXd9IHx8ICRQYXJhbXtPbGR9ICk7CgogICAgIyBmaWVsZCBoYXMgbm90IGNoYW5nZWQgd2hlbiBib3RoIHZhbHVlcyBhcmUgZW1wdHkKICAgIHJldHVybiBpZiAhJFBhcmFte05ld30gJiYgISRQYXJhbXtPbGR9OwoKICAgICMgcmV0dXJuIHJlc3VsdCBvZiAnZXEnIHdoZW4gYm90aCBwYXJhbXMgYXJlIHNjYWxhcnMKICAgIHJldHVybiAkUGFyYW17TmV3fSBuZSAkUGFyYW17T2xkfSBpZiAhcmVmKCAkUGFyYW17TmV3fSApICYmICFyZWYoICRQYXJhbXtPbGR9ICk7CgogICAgIyBhIGZpZWxkIGhhcyBjaGFuZ2VkIHdoZW4gJ3JlZicgaXMgZGlmZmVyZW50CiAgICByZXR1cm4gMSBpZiByZWYoICRQYXJhbXtOZXd9ICkgbmUgcmVmKCAkUGFyYW17T2xkfSApOwoKICAgICMgY2hlY2sgaGFzaGVzCiAgICBpZiAoIHJlZiAkUGFyYW17TmV3fSBlcSAnSEFTSCcgKSB7CgogICAgICAgICMgZmllbGQgaGFzIGNoYW5nZWQgd2hlbiBudW1iZXIgb2Yga2V5cyBhcmUgZGlmZmVyZW50CiAgICAgICAgcmV0dXJuIDEgaWYgc2NhbGFyIGtleXMgJXsgJFBhcmFte05ld30gfSAhPSBzY2FsYXIga2V5cyAleyAkUGFyYW17T2xkfSB9OwoKICAgICAgICAjIGNoZWNrIHRoZSB2YWx1ZXMgZm9yIGVhY2gga2V5CiAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJXsgJFBhcmFte05ld30gfSApIHsKICAgICAgICAgICAgcmV0dXJuIDEgaWYgJFBhcmFte05ld30tPnskS2V5fSBuZSAkUGFyYW17T2xkfS0+eyRLZXl9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGFycmF5cwogICAgaWYgKCByZWYgJFBhcmFte05ld30gZXEgJ0FSUkFZJyApIHsKCiAgICAgICAgIyBjaGFuZ2VkIHdoZW4gbnVtYmVyIG9mIGVsZW1lbnRzIGRpZmZlcgogICAgICAgIHJldHVybiAxIGlmIHNjYWxhciBAeyAkUGFyYW17TmV3fSB9ICE9IHNjYWxhciBAeyAkUGFyYW17T2xkfSB9OwoKICAgICAgICAjIGNoZWNrIGVhY2ggZWxlbWVudAogICAgICAgIGZvciBteSAkSW5kZXggKCAwIC4uICQjeyAkUGFyYW17TmV3fSB9ICkgewogICAgICAgICAgICByZXR1cm4gMSBpZiAkUGFyYW17TmV3fS0+WyRJbmRleF0gbmUgJFBhcmFte09sZH0tPlskSW5kZXhdOwogICAgICAgIH0KICAgIH0KCiAgICAjIGZpZWxkIGhhcyBub3QgYmVlbiBjaGFuZ2VkCiAgICByZXR1cm4gMDsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Event/ConditionDelete.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6OkNvbmRpdGlvbkRlbGV0ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KERhdGEgRXZlbnQgQ29uZmlnIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBoYW5kbGUgZGVsZXRpb24gb2YgYSBjaGFuZ2UKICAgIGlmICggJFBhcmFte0V2ZW50fSBlcSAnQ2hhbmdlRGVsZXRlUG9zdCcgKSB7CgogICAgICAgICMgZGVsZXRlIGFsbCBjb25kaXRpb25zIChhbmQgZXhwcmVzc2lvbnMgYW5kIGFjdGlvbnMpIGZvciB0aGlzIGNoYW5nZSBpZAogICAgICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKS0+Q29uZGl0aW9uRGVsZXRlQWxsKAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkUGFyYW17RGF0YX0tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgaGFuZGxlIGVycm9yCiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb25kaXRpb25EZWxldGVBbGwoKSBmYWlsZWQgZm9yIENoYW5nZUlEICckUGFyYW17RGF0YX0tPntDaGFuZ2VJRH0nISIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBlcnJvcgogICAgZWxzZSB7CgogICAgICAgICMgYW4gdW5rbm93biBldmVudAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiJFBhcmFte0V2ZW50fSBpcyBhbiB1bmtub3duIGV2ZW50ISIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Event/HistoryAdd.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6Okhpc3RvcnlBZGQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SGlzdG9yeScsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KERhdGEgRXZlbnQgQ29uZmlnIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRvIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIGV2ZW50LCBiZWNhdXNlIHdlIG5lZWQgdGhpcyB1bm1vZGlmaWVkIGluIGxhdGVyIGV2ZW50IG1vZHVsZXMKICAgIG15ICRFdmVudCA9ICRQYXJhbXtFdmVudH07CgogICAgIyBpbiBoaXN0b3J5IGV2ZW50IGhhbmRsaW5nIHdlIHVzZSBFdmVudCBuYW1lIHdpdGhvdXQgdGhlIHRyYWlsaW5nICdQb3N0JwogICAgJEV2ZW50ID1+IHN7IFBvc3QgXHogfXt9eG1zOwoKICAgICMgZGlzdGluZ3Vpc2ggYmV0d2VlbiBDaGFuZ2UgYW5kIFdvcmtPcmRlciBldmVudHMsIGJhc2VkIG9uIG5hbWluZyBjb252ZW50aW9uCiAgICBteSAoJFR5cGUpID0gJEV2ZW50ID1+IG17IFxBICggQ2hhbmdlIHwgV29ya09yZGVyIHwgQ29uZGl0aW9uIHwgRXhwcmVzc2lvbiB8IEFjdGlvbiApIH14bXM7CiAgICBpZiAoICEkVHlwZSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIG9iamVjdCB0eXBlIGZvciB0aGUgZXZlbnQgJyRFdmVudCchIgogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc3RvcmUgYWxsIGhpc3RvcnkgYWRkIGRhdGEKICAgIG15IEBIaXN0b3J5QWRkRGF0YTsKCiAgICAjIGRvIGhpc3Rvcnkgc3R1ZmYKICAgIGlmICggJEV2ZW50IGVxICdDaGFuZ2VBZGQnIHx8ICRFdmVudCBlcSAnV29ya09yZGVyQWRkJyApIHsKCiAgICAgICAgIyB0ZWxsIGhpc3RvcnkgdGhhdCBhIGNoYW5nZSB3YXMgYWRkZWQKICAgICAgICBwdXNoIEBIaXN0b3J5QWRkRGF0YSwgewogICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkUGFyYW17RGF0YX0tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICBDb250ZW50TmV3ICA9PiAkUGFyYW17RGF0YX0tPnsgJFR5cGUgLiAnSUQnIH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIH07CiAgICB9CgogICAgZWxzaWYgKCAkRXZlbnQgZXEgJ0NoYW5nZVVwZGF0ZScgfHwgJEV2ZW50IGVxICdXb3JrT3JkZXJVcGRhdGUnICkgewoKICAgICAgICAjIGdldCBvbGQgZGF0YSwgZWl0aGVyIGZyb20gY2hhbmdlIG9yIHdvcmtvcmRlcgogICAgICAgIG15ICRPbGREYXRhICA9ICRQYXJhbXtEYXRhfS0+eyJPbGQke1R5cGV9RGF0YSJ9OwogICAgICAgIG15ICRDaGFuZ2VJRCA9ICRPbGREYXRhLT57Q2hhbmdlSUR9OyAgICAgICAgICAgICAgICMgd29ya3MgZm9yIGNoYW5nZSBhbmQgd29ya29yZGVyIGV2ZW50cwoKICAgICAgICBGSUVMRDoKICAgICAgICBmb3IgbXkgJEZpZWxkICggc29ydCBrZXlzICV7ICRQYXJhbXtEYXRhfSB9ICkgewoKICAgICAgICAgICAgIyBkbyBub3QgdHJhY2sgc3BlY2lhbCBmaWVsZHMgJ09sZENoYW5nZURhdGEnIG9yICdPbGRXb3JrT3JkZXJEYXRhJwogICAgICAgICAgICBuZXh0IEZJRUxEIGlmICRGaWVsZCBlcSAiT2xkJHtUeXBlfURhdGEiOwoKICAgICAgICAgICAgIyB3ZSBkbyBub3QgdHJhY2sgdGhlIHVzZXIgaWQKICAgICAgICAgICAgbmV4dCBGSUVMRCBpZiAkRmllbGQgZXEgJ1VzZXJJRCc7CgogICAgICAgICAgICAjIHdlIGRvIG5vdCB0cmFjayB0aGUgInBsYWluIiBjb2x1bW5zLCBvbmx5IHRoZSBub24tcGxhaW4gY29sdW1ucwogICAgICAgICAgICBuZXh0IEZJRUxEIGlmICRGaWVsZCBlcSAnSnVzdGlmaWNhdGlvblBsYWluJzsgICAgIyBjaGFuZ2UKICAgICAgICAgICAgbmV4dCBGSUVMRCBpZiAkRmllbGQgZXEgJ0Rlc2NyaXB0aW9uUGxhaW4nOyAgICAgICMgY2hhbmdlCiAgICAgICAgICAgIG5leHQgRklFTEQgaWYgJEZpZWxkIGVxICdSZXBvcnRQbGFpbic7ICAgICAgICAgICAjIHdvcmtvcmRlcgogICAgICAgICAgICBuZXh0IEZJRUxEIGlmICRGaWVsZCBlcSAnSW5zdHJ1Y3Rpb25QbGFpbic7ICAgICAgIyB3b3Jrb3JkZXIKCiAgICAgICAgICAgICMgd2UgZG8gbm8gd2FudCB0byB0cmFjayB0aGUgaW50ZXJuYWwgZmllbGQgIk5vTnVtYmVyQ2FsYyIKICAgICAgICAgICAgbmV4dCBGSUVMRCBpZiAkRmllbGQgZXEgJ05vTnVtYmVyQ2FsYyc7ICAgICAgICAgICMgd29ya29yZGVyCgogICAgICAgICAgICAjIFRoZSBoaXN0b3J5IG9mIENBQiB1cGRhdGVzIGlzIG5vdCB0cmFja2VkIGhlcmUsCiAgICAgICAgICAgICMgYnV0IGluIHRoZSBoYW5kbGVyIGZvciBDaGFuZ2VDQUJVcGRhdGUuCiAgICAgICAgICAgIG5leHQgRklFTEQgaWYgJEZpZWxkIGVxICdDQUJBZ2VudHMnOyAgICAgICAjIGNoYW5nZQogICAgICAgICAgICBuZXh0IEZJRUxEIGlmICRGaWVsZCBlcSAnQ0FCQ3VzdG9tZXJzJzsgICAgIyBjaGFuZ2UKCiAgICAgICAgICAgICMgc3BlY2lhbCBoYW5kbGluZyBmb3IgYWNjb3VudGVkIHRpbWUKICAgICAgICAgICAgaWYgKCAkVHlwZSBlcSAnV29ya09yZGVyJyAmJiAkRmllbGQgZXEgJ0FjY291bnRlZFRpbWUnICkgewoKICAgICAgICAgICAgICAgICMgd2UgZG8gbm90IHRyYWNrIGlmIGFjY291bnRlZCB0aW1lIHdhcyBlbXB0eQogICAgICAgICAgICAgICAgbmV4dCBGSUVMRCBpZiAhJFBhcmFte0RhdGF9LT57JEZpZWxkfTsKCiAgICAgICAgICAgICAgICAjIGlmIGFjY291bnRlZCB0aW1lIGlzIG5vdCBlbXB0eSwgd2UgYWx3YXlzIHRyYWNrIHRoZSBoaXN0b3J5CgogICAgICAgICAgICAgICAgIyBnZXQgd29ya29yZGVyIGRhdGEKICAgICAgICAgICAgICAgIG15ICRXb3JrT3JkZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFBhcmFte0RhdGF9LT57V29ya09yZGVySUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNhdmUgaGlzdG9yeSBpZiBhY2NvdW50ZWQgdGltZSBoYXMgY2hhbmdlZAogICAgICAgICAgICAgICAgcHVzaCBASGlzdG9yeUFkZERhdGEsIHsKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFBhcmFte0RhdGF9LT57V29ya09yZGVySUR9LAogICAgICAgICAgICAgICAgICAgIEhpc3RvcnlUeXBlID0+ICRFdmVudCwKICAgICAgICAgICAgICAgICAgICBGaWVsZG5hbWUgICA9PiAkRmllbGQsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudE5ldyAgPT4gJFdvcmtPcmRlci0+eyRGaWVsZH0sCiAgICAgICAgICAgICAgICAgICAgQ29udGVudE9sZCAgPT4gJE9sZERhdGEtPnskRmllbGR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICBuZXh0IEZJRUxEOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIGlmIGZpZWxkIGhhcyBjaGFuZ2VkCiAgICAgICAgICAgIG15ICRGaWVsZEhhc0NoYW5nZWQgPSAkU2VsZi0+X0hhc0ZpZWxkQ2hhbmdlZCgKICAgICAgICAgICAgICAgIE5ldyA9PiAkUGFyYW17RGF0YX0tPnskRmllbGR9LAogICAgICAgICAgICAgICAgT2xkID0+ICRPbGREYXRhLT57JEZpZWxkfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2F2ZSBoaXN0b3J5IGlmIGZpZWxkIGhhcyBjaGFuZ2VkCiAgICAgICAgICAgIGlmICgkRmllbGRIYXNDaGFuZ2VkKSB7CgogICAgICAgICAgICAgICAgcHVzaCBASGlzdG9yeUFkZERhdGEsIHsKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFBhcmFte0RhdGF9LT57V29ya09yZGVySUR9LAogICAgICAgICAgICAgICAgICAgIEhpc3RvcnlUeXBlID0+ICRFdmVudCwKICAgICAgICAgICAgICAgICAgICBGaWVsZG5hbWUgICA9PiAkRmllbGQsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudE5ldyAgPT4gJFBhcmFte0RhdGF9LT57JEZpZWxkfSwKICAgICAgICAgICAgICAgICAgICBDb250ZW50T2xkICA9PiAkT2xkRGF0YS0+eyRGaWVsZH0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGVsc2lmICggJEV2ZW50IGVxICdXb3JrT3JkZXJEZWxldGUnICkgewoKICAgICAgICAjIGdldCBvbGQgZGF0YQogICAgICAgIG15ICRPbGREYXRhID0gJFBhcmFte0RhdGF9LT57T2xkV29ya09yZGVyRGF0YX07CgogICAgICAgICMgZ2V0IGV4aXN0aW5nIGhpc3RvcnkgZW50cmllcyBmb3IgdGhpcyB3b3Jrb3JkZXIKICAgICAgICBteSAkSGlzdG9yeUVudHJpZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SGlzdG9yeScpLT5Xb3JrT3JkZXJIaXN0b3J5R2V0KAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkT2xkRGF0YS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyB1cGRhdGUgaGlzdG9yeSBlbnRyaWVzOiBkZWxldGUgd29ya29yZGVyIGlkCiAgICAgICAgSElTVE9SWUVOVFJZOgogICAgICAgIGZvciBteSAkSGlzdG9yeUVudHJ5ICggQHskSGlzdG9yeUVudHJpZXN9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SGlzdG9yeScpLT5IaXN0b3J5VXBkYXRlKAogICAgICAgICAgICAgICAgSGlzdG9yeUVudHJ5SUQgPT4gJEhpc3RvcnlFbnRyeS0+e0hpc3RvcnlFbnRyeUlEfSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEICAgID0+IHVuZGVmLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGFkZCBoaXN0b3J5IGVudHJ5IGZvciBXb3JrT3JkZXIgZGVsZXRpb24KICAgICAgICAjIGNhbGwgSGlzdG9yeUFkZCBkaXJlY3RseSBmcm9tIGhlcmUgaW5zdGVhZCBvZiB1c2luZyB0aGUgQEhpc3RvcnlBZGREYXRhCiAgICAgICAgIyBhcyB3ZSB3YW50IHRoaXMgdG8gYXBwZWFyIG5leHQgdG8gdGhlIGxpbmUgaW4gaGlzdG9yeSB0aGF0IEhpc3RvcnlVcGRhdGUKICAgICAgICAjIGp1c3QgYWRkZWQgaW4gdGhlIGNvZGUgYmxvY2sgYmVmb3JlCiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SGlzdG9yeScpLT5IaXN0b3J5QWRkKAogICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkT2xkRGF0YS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICBDb250ZW50TmV3ICA9PiAkT2xkRGF0YS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGhhbmRsZSBDaGFuZ2VDQUIgZXZlbnRzCiAgICBlbHNpZiAoICRFdmVudCBlcSAnQ2hhbmdlQ0FCVXBkYXRlJyB8fCAkRXZlbnQgZXEgJ0NoYW5nZUNBQkRlbGV0ZScgKSB7CgogICAgICAgICMgZ2V0IG9sZCBkYXRhCiAgICAgICAgbXkgJE9sZERhdGEgPSAkUGFyYW17RGF0YX0tPntPbGRDaGFuZ2VDQUJEYXRhfTsKCiAgICAgICAgRklFTEQ6CiAgICAgICAgZm9yIG15ICRGaWVsZCAocXcoQ0FCQWdlbnRzIENBQkN1c3RvbWVycykpIHsKCiAgICAgICAgICAgICMgd2UgZG8gbm90IHRyYWNrIHdoZW4gdGhlIHBhcmFtIGhhcyBub3QgYmVlbiBwYXNzZWQKICAgICAgICAgICAgbmV4dCBGSUVMRCBpZiAhJFBhcmFte0RhdGF9LT57JEZpZWxkfTsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgZmllbGQgaGFzIGNoYW5nZWQKICAgICAgICAgICAgbXkgJEZpZWxkSGFzQ2hhbmdlZCA9ICRTZWxmLT5fSGFzRmllbGRDaGFuZ2VkKAogICAgICAgICAgICAgICAgTmV3ID0+ICRQYXJhbXtEYXRhfS0+eyRGaWVsZH0sCiAgICAgICAgICAgICAgICBPbGQgPT4gJE9sZERhdGEtPnskRmllbGR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzYXZlIGhpc3RvcnkgaWYgZmllbGQgaGFzIGNoYW5nZWQKICAgICAgICAgICAgaWYgKCRGaWVsZEhhc0NoYW5nZWQpIHsKCiAgICAgICAgICAgICAgICBwdXNoIEBIaXN0b3J5QWRkRGF0YSwgewogICAgICAgICAgICAgICAgICAgIENoYW5nZUlEICAgID0+ICRQYXJhbXtEYXRhfS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgICAgICAgICBIaXN0b3J5VHlwZSA9PiAkRXZlbnQsCiAgICAgICAgICAgICAgICAgICAgRmllbGRuYW1lICAgPT4gJEZpZWxkLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnROZXcgID0+IGpvaW4oICclJScsIEB7ICRQYXJhbXtEYXRhfS0+eyRGaWVsZH0gfSApLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnRPbGQgID0+IGpvaW4oICclJScsIEB7ICRPbGREYXRhLT57JEZpZWxkfSB9ICksCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgaGFuZGxlIGxpbmsgZXZlbnRzCiAgICBlbHNpZiAoCiAgICAgICAgJEV2ZW50IGVxICdDaGFuZ2VMaW5rQWRkJwogICAgICAgIHx8ICRFdmVudCBlcSAnQ2hhbmdlTGlua0RlbGV0ZScKICAgICAgICB8fCAkRXZlbnQgZXEgJ1dvcmtPcmRlckxpbmtBZGQnCiAgICAgICAgfHwgJEV2ZW50IGVxICdXb3JrT3JkZXJMaW5rRGVsZXRlJwogICAgICAgICkKICAgIHsKCiAgICAgICAgIyBmb3IgIHdvcmtvcmRlciBsaW5rcyBnZXQgdGhlIGNoYW5nZSBpZAogICAgICAgIGlmICggJFBhcmFte0RhdGF9LT57V29ya09yZGVySUR9ICkgewogICAgICAgICAgICBteSAkV29ya09yZGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyR2V0KAogICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFBhcmFte0RhdGF9LT57V29ya09yZGVySUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkUGFyYW17RGF0YX0tPntDaGFuZ2VJRH0gPSAkV29ya09yZGVyLT57Q2hhbmdlSUR9OwogICAgICAgIH0KCiAgICAgICAgbXkgJENvbnRlbnROZXcgPSBqb2luICclJScsCiAgICAgICAgICAgICRQYXJhbXtEYXRhfS0+e1NvdXJjZU9iamVjdH0gfHwgJFBhcmFte0RhdGF9LT57VGFyZ2V0T2JqZWN0fSwKICAgICAgICAgICAgJFBhcmFte0RhdGF9LT57U291cmNlS2V5fSAgICB8fCAkUGFyYW17RGF0YX0tPntUYXJnZXRLZXl9OwoKICAgICAgICAjIHRlbGwgaGlzdG9yeSB0aGF0IGEgbGluayB3YXMgYWRkZWQKICAgICAgICBwdXNoIEBIaXN0b3J5QWRkRGF0YSwgewogICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkUGFyYW17RGF0YX0tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICBDb250ZW50TmV3ICA9PiAkQ29udGVudE5ldywKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIGhhbmRsZSBhdHRhY2htZW50IGV2ZW50cwogICAgZWxzaWYgKAogICAgICAgICRFdmVudCBlcSAnQ2hhbmdlQXR0YWNobWVudEFkZCcKICAgICAgICB8fCAkRXZlbnQgZXEgJ0NoYW5nZUF0dGFjaG1lbnREZWxldGUnCiAgICAgICAgfHwgJEV2ZW50IGVxICdXb3JrT3JkZXJBdHRhY2htZW50QWRkJwogICAgICAgIHx8ICRFdmVudCBlcSAnV29ya09yZGVyQXR0YWNobWVudERlbGV0ZScKICAgICAgICB8fCAkRXZlbnQgZXEgJ1dvcmtPcmRlclJlcG9ydEF0dGFjaG1lbnRBZGQnCiAgICAgICAgfHwgJEV2ZW50IGVxICdXb3JrT3JkZXJSZXBvcnRBdHRhY2htZW50RGVsZXRlJwogICAgICAgICkKICAgIHsKCiAgICAgICAgIyB0ZWxsIGhpc3RvcnkgdGhhdCBhbiBhdHRhY2htZW50IGV2ZW50IHdhcyB0cmlnZ2VyZWQKICAgICAgICBwdXNoIEBIaXN0b3J5QWRkRGF0YSwgewogICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkUGFyYW17RGF0YX0tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICBDb250ZW50TmV3ICA9PiAkUGFyYW17RGF0YX0tPntGaWxlbmFtZX0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIH07CiAgICB9CgogICAgIyBoYW5kbGUgeHh4VGltZVJlYWNoZWQgZXZlbnRzCiAgICBlbHNpZiAoICRFdmVudCA9fiBteyBUaW1lUmVhY2hlZCBceiB9eG1zICkgewoKICAgICAgICAjIGdldCBlaXRoZXIgV29ya09yZGVySUQgb3IgQ2hhbmdlSUQKICAgICAgICBteSAkSUQgPSAkUGFyYW17RGF0YX0tPntXb3JrT3JkZXJJRH0gfHwgJFBhcmFte0RhdGF9LT57Q2hhbmdlSUR9OwoKICAgICAgICBwdXNoIEBIaXN0b3J5QWRkRGF0YSwgewogICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkUGFyYW17RGF0YX0tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICBDb250ZW50TmV3ICA9PiAkSUQgLiAnJSVOb3RpZmljYXRpb24gU2VudCcsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIH07CiAgICB9CgogICAgIyBhZGQgaGlzdG9yeSBlbnRyeSB3aGVuIG5vdGlmaWNhdGlvbiB3YXMgc2VudAogICAgZWxzaWYgKCAkRXZlbnQgPX4gbXsgTm90aWZpY2F0aW9uU2VudCBceiB9eG1zICkgewoKICAgICAgICAjIGdldCBlaXRoZXIgV29ya09yZGVySUQgb3IgQ2hhbmdlSUQKICAgICAgICBteSAkSUQgPSAkUGFyYW17RGF0YX0tPntXb3JrT3JkZXJJRH0gfHwgJFBhcmFte0RhdGF9LT57Q2hhbmdlSUR9OwoKICAgICAgICBwdXNoIEBIaXN0b3J5QWRkRGF0YSwgewogICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkUGFyYW17RGF0YX0tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICBDb250ZW50TmV3ICA9PiAkUGFyYW17RGF0YX0tPntUb30gLiAnJSUnIC4gJFBhcmFte0RhdGF9LT57RXZlbnRUeXBlfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIGhhbmRsZSBjb25kaXRpb24gZXZlbnRzCiAgICBlbHNpZiAoICRFdmVudCBlcSAnQ29uZGl0aW9uQWRkJyApIHsKCiAgICAgICAgIyBjcmVhdGUgaGlzdG9yeSBmb3IgY29uZGl0aW9uCiAgICAgICAgcHVzaCBASGlzdG9yeUFkZERhdGEsIHsKICAgICAgICAgICAgQ2hhbmdlSUQgICAgPT4gJFBhcmFte0RhdGF9LT57Q2hhbmdlSUR9LAogICAgICAgICAgICBIaXN0b3J5VHlwZSA9PiAkRXZlbnQsCiAgICAgICAgICAgIENvbnRlbnROZXcgID0+ICRQYXJhbXtEYXRhfS0+e0NvbmRpdGlvbklEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgfTsKCiAgICAgICAgIyBjcmVhdGUgaGlzdG9yeSBmb3IgYWxsIGNvbmRpdGlvbiBmaWVsZHMKICAgICAgICBteSBAQ29uZGl0aW9uU3RhdGljID0gcXcoQ29uZGl0aW9uSUQgVXNlcklEIENoYW5nZUlEKTsKICAgICAgICBDT05ESVRJT05GSUVMRDoKICAgICAgICBmb3IgbXkgJENvbmRpdGlvbkZpZWxkICggc29ydCBrZXlzICV7ICRQYXJhbXtEYXRhfSB9ICkgewoKICAgICAgICAgICAgIyBjaGVjayBmb3Igc3RhdGljIGZpZWxkcwogICAgICAgICAgICBuZXh0IENPTkRJVElPTkZJRUxEIGlmIGdyZXAgeyAkXyBlcSAkQ29uZGl0aW9uRmllbGQgfSBAQ29uZGl0aW9uU3RhdGljOwoKICAgICAgICAgICAgIyBkbyBub3QgYWRkIGVtcHR5IGZpZWxkcyB0byBoaXN0b3J5CiAgICAgICAgICAgIG5leHQgQ09ORElUSU9ORklFTEQgaWYgISRQYXJhbXtEYXRhfS0+eyRDb25kaXRpb25GaWVsZH07CgogICAgICAgICAgICBwdXNoIEBIaXN0b3J5QWRkRGF0YSwgewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgPT4gJFBhcmFte0RhdGF9LT57Q2hhbmdlSUR9LAogICAgICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICAgICAgRmllbGRuYW1lICAgPT4gJENvbmRpdGlvbkZpZWxkLAogICAgICAgICAgICAgICAgQ29udGVudE5ldyAgPT4gJFBhcmFte0RhdGF9LT57JENvbmRpdGlvbkZpZWxkfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGhhbmRsZSBjb25kaXRpb24gdXBkYXRlIGV2ZW50cwogICAgZWxzaWYgKCAkRXZlbnQgZXEgJ0NvbmRpdGlvblVwZGF0ZScgKSB7CgogICAgICAgICMgZ2V0IG9sZCBkYXRhCiAgICAgICAgbXkgJE9sZERhdGEgPSAkUGFyYW17RGF0YX0tPntPbGRDb25kaXRpb25EYXRhfTsKCiAgICAgICAgIyBjcmVhdGUgaGlzdG9yeSBmb3IgYWxsIGNvbmRpdGlvbiBmaWVsZHMKICAgICAgICBteSBAQ29uZGl0aW9uU3RhdGljID0gcXcoQ29uZGl0aW9uSUQgVXNlcklEIENoYW5nZUlEIE9sZENvbmRpdGlvbkRhdGEpOwogICAgICAgIENPTkRJVElPTkZJRUxEOgogICAgICAgIGZvciBteSAkQ29uZGl0aW9uRmllbGQgKCBzb3J0IGtleXMgJXsgJFBhcmFte0RhdGF9IH0gKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgIG5leHQgQ09ORElUSU9ORklFTEQgaWYgZ3JlcCB7ICRfIGVxICRDb25kaXRpb25GaWVsZCB9IEBDb25kaXRpb25TdGF0aWM7CgogICAgICAgICAgICAjIGRvIG5vdCBhZGQgZW1wdHkgZmllbGRzIHRvIGhpc3RvcnkKICAgICAgICAgICAgbmV4dCBDT05ESVRJT05GSUVMRCBpZiAhJFBhcmFte0RhdGF9LT57JENvbmRpdGlvbkZpZWxkfTsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgZmllbGQgaGFzIGNoYW5nZWQKICAgICAgICAgICAgbXkgJEZpZWxkSGFzQ2hhbmdlZCA9ICRTZWxmLT5fSGFzRmllbGRDaGFuZ2VkKAogICAgICAgICAgICAgICAgTmV3ID0+ICRQYXJhbXtEYXRhfS0+eyRDb25kaXRpb25GaWVsZH0sCiAgICAgICAgICAgICAgICBPbGQgPT4gJE9sZERhdGEtPnskQ29uZGl0aW9uRmllbGR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBjcmVhdGUgaGlzdG9yeSBvbmx5IGZvciBjaGFuZ2VkIGZpZWxkcwogICAgICAgICAgICBuZXh0IENPTkRJVElPTkZJRUxEIGlmICEkRmllbGRIYXNDaGFuZ2VkOwoKICAgICAgICAgICAgcHVzaCBASGlzdG9yeUFkZERhdGEsIHsKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgID0+ICRPbGREYXRhLT57Q2hhbmdlSUR9LAogICAgICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICAgICAgRmllbGRuYW1lICAgPT4gJENvbmRpdGlvbkZpZWxkLAogICAgICAgICAgICAgICAgQ29udGVudE5ldyAgPT4gJFBhcmFte0RhdGF9LT57Q29uZGl0aW9uSUR9IC4gJyUlJyAuICRQYXJhbXtEYXRhfS0+eyRDb25kaXRpb25GaWVsZH0sCiAgICAgICAgICAgICAgICBDb250ZW50T2xkICA9PiAkUGFyYW17RGF0YX0tPntDb25kaXRpb25JRH0gLiAnJSUnIC4gJE9sZERhdGEtPnskQ29uZGl0aW9uRmllbGR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgaGFuZGxlIGNvbmRpdGlvbiBkZWxldGUgZXZlbnRzCiAgICBlbHNpZiAoICRFdmVudCBlcSAnQ29uZGl0aW9uRGVsZXRlJyApIHsKCiAgICAgICAgIyBnZXQgb2xkIGRhdGEKICAgICAgICBteSAkT2xkRGF0YSA9ICRQYXJhbXtEYXRhfS0+e09sZENvbmRpdGlvbkRhdGF9OwoKICAgICAgICBwdXNoIEBIaXN0b3J5QWRkRGF0YSwgewogICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkT2xkRGF0YS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICBDb250ZW50TmV3ICA9PiAkT2xkRGF0YS0+e0NvbmRpdGlvbklEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIGhhbmRsZSBjb25kaXRpb24gZGVsZXRlIGV2ZW50cwogICAgZWxzaWYgKCAkRXZlbnQgZXEgJ0NvbmRpdGlvbkRlbGV0ZUFsbCcgKSB7CgogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Okhpc3RvcnknKS0+SGlzdG9yeUFkZCgKICAgICAgICAgICAgQ2hhbmdlSUQgICAgPT4gJFBhcmFte0RhdGF9LT57Q2hhbmdlSUR9LAogICAgICAgICAgICBIaXN0b3J5VHlwZSA9PiAkRXZlbnQsCiAgICAgICAgICAgIENvbnRlbnROZXcgID0+ICRQYXJhbXtEYXRhfS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGhhbmRsZSBleHByZXNzaW9uIGV2ZW50cwogICAgZWxzaWYgKCAkRXZlbnQgZXEgJ0V4cHJlc3Npb25BZGQnICkgewoKICAgICAgICAjIGNyZWF0ZSBoaXN0b3J5IGZvciBleHByZXNzaW9uCiAgICAgICAgcHVzaCBASGlzdG9yeUFkZERhdGEsIHsKICAgICAgICAgICAgQ2hhbmdlSUQgICAgPT4gJFBhcmFte0RhdGF9LT57Q2hhbmdlSUR9LAogICAgICAgICAgICBIaXN0b3J5VHlwZSA9PiAkRXZlbnQsCiAgICAgICAgICAgIENvbnRlbnROZXcgID0+ICRQYXJhbXtEYXRhfS0+e0V4cHJlc3Npb25JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIH07CgogICAgICAgICMgY3JlYXRlIGhpc3RvcnkgZm9yIGFsbCBleHByZXNzaW9uIGZpZWxkcwogICAgICAgIG15IEBFeHByZXNzaW9uU3RhdGljID0gcXcoIEV4cHJlc3Npb25JRCBVc2VySUQgQ2hhbmdlSUQpOwogICAgICAgIEVYUFJFU1NJT05GSUVMRDoKICAgICAgICBmb3IgbXkgJEV4cHJlc3Npb25GaWVsZCAoIHNvcnQga2V5cyAleyAkUGFyYW17RGF0YX0gfSApIHsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgbmV4dCBFWFBSRVNTSU9ORklFTEQgaWYgZ3JlcCB7ICRfIGVxICRFeHByZXNzaW9uRmllbGQgfSBARXhwcmVzc2lvblN0YXRpYzsKCiAgICAgICAgICAgICMgZG8gbm90IGFkZCBlbXB0eSBmaWVsZHMgdG8gaGlzdG9yeQogICAgICAgICAgICBuZXh0IEVYUFJFU1NJT05GSUVMRCBpZiAhJFBhcmFte0RhdGF9LT57JEV4cHJlc3Npb25GaWVsZH07CgogICAgICAgICAgICBwdXNoIEBIaXN0b3J5QWRkRGF0YSwgewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgPT4gJFBhcmFte0RhdGF9LT57Q2hhbmdlSUR9LAogICAgICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICAgICAgRmllbGRuYW1lICAgPT4gJEV4cHJlc3Npb25GaWVsZCwKICAgICAgICAgICAgICAgIENvbnRlbnROZXcgID0+ICRQYXJhbXtEYXRhfS0+eyRFeHByZXNzaW9uRmllbGR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgaGFuZGxlIGV4cHJlc3Npb24gdXBkYXRlIGV2ZW50cwogICAgZWxzaWYgKCAkRXZlbnQgZXEgJ0V4cHJlc3Npb25VcGRhdGUnICkgewoKICAgICAgICAjIGdldCBvbGQgZGF0YQogICAgICAgIG15ICRPbGREYXRhID0gJFBhcmFte0RhdGF9LT57T2xkRXhwcmVzc2lvbkRhdGF9OwoKICAgICAgICAjIGNyZWF0ZSBoaXN0b3J5IGZvciBhbGwgZXhwcmVzc2lvbiBmaWVsZHMKICAgICAgICBteSBARXhwcmVzc2lvblN0YXRpYyA9IHF3KCBFeHByZXNzaW9uSUQgVXNlcklEIENoYW5nZUlEIE9sZEV4cHJlc3Npb25EYXRhICk7CiAgICAgICAgRVhQUkVTU0lPTkZJRUxEOgogICAgICAgIGZvciBteSAkRXhwcmVzc2lvbkZpZWxkICggc29ydCBrZXlzICV7ICRQYXJhbXtEYXRhfSB9ICkgewoKICAgICAgICAgICAgIyBjaGVjayBmb3Igc3RhdGljIGZpZWxkcwogICAgICAgICAgICBuZXh0IEVYUFJFU1NJT05GSUVMRCBpZiBncmVwIHsgJF8gZXEgJEV4cHJlc3Npb25GaWVsZCB9IEBFeHByZXNzaW9uU3RhdGljOwoKICAgICAgICAgICAgIyBkbyBub3QgYWRkIGVtcHR5IGZpZWxkcyB0byBoaXN0b3J5CiAgICAgICAgICAgIG5leHQgRVhQUkVTU0lPTkZJRUxEIGlmICEkUGFyYW17RGF0YX0tPnskRXhwcmVzc2lvbkZpZWxkfTsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgZmllbGQgaGFzIGNoYW5nZWQKICAgICAgICAgICAgbXkgJEZpZWxkSGFzQ2hhbmdlZCA9ICRTZWxmLT5fSGFzRmllbGRDaGFuZ2VkKAogICAgICAgICAgICAgICAgTmV3ID0+ICRQYXJhbXtEYXRhfS0+eyRFeHByZXNzaW9uRmllbGR9LAogICAgICAgICAgICAgICAgT2xkID0+ICRPbGREYXRhLT57JEV4cHJlc3Npb25GaWVsZH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNyZWF0ZSBoaXN0b3J5IG9ubHkgZm9yIGNoYW5nZWQgZmllbGRzCiAgICAgICAgICAgIG5leHQgRVhQUkVTU0lPTkZJRUxEIGlmICEkRmllbGRIYXNDaGFuZ2VkOwoKICAgICAgICAgICAgcHVzaCBASGlzdG9yeUFkZERhdGEsIHsKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgID0+ICRQYXJhbXtEYXRhfS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgICAgIEhpc3RvcnlUeXBlID0+ICRFdmVudCwKICAgICAgICAgICAgICAgIEZpZWxkbmFtZSAgID0+ICRFeHByZXNzaW9uRmllbGQsCiAgICAgICAgICAgICAgICBDb250ZW50TmV3ICA9PiAkUGFyYW17RGF0YX0tPntFeHByZXNzaW9uSUR9IC4gJyUlJwogICAgICAgICAgICAgICAgICAgIC4gJFBhcmFte0RhdGF9LT57JEV4cHJlc3Npb25GaWVsZH0sCiAgICAgICAgICAgICAgICBDb250ZW50T2xkID0+ICRQYXJhbXtEYXRhfS0+e0V4cHJlc3Npb25JRH0gLiAnJSUnIC4gJE9sZERhdGEtPnskRXhwcmVzc2lvbkZpZWxkfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgaGFuZGxlIGV4cHJlc3Npb24gZGVsZXRlIGV2ZW50cwogICAgZWxzaWYgKCAkRXZlbnQgZXEgJ0V4cHJlc3Npb25EZWxldGUnICkgewoKICAgICAgICBwdXNoIEBIaXN0b3J5QWRkRGF0YSwgewogICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkUGFyYW17RGF0YX0tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlID0+ICRFdmVudCwKICAgICAgICAgICAgQ29udGVudE5ldyAgPT4gJFBhcmFte0RhdGF9LT57RXhwcmVzc2lvbklEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIGhhbmRsZSBkZWxldGUgYWxsIGV4cHJlc3Npb25zIGV2ZW50cwogICAgZWxzaWYgKCAkRXZlbnQgZXEgJ0V4cHJlc3Npb25EZWxldGVBbGwnICkgewoKICAgICAgICBwdXNoIEBIaXN0b3J5QWRkRGF0YSwgewogICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkUGFyYW17RGF0YX0tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlID0+ICRFdmVudCwKICAgICAgICAgICAgQ29udGVudE5ldyAgPT4gJFBhcmFte0RhdGF9LT57Q29uZGl0aW9uSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICB9OwogICAgfQoKICAgICMgaGFuZGxlIGFjdGlvbiBldmVudHMKICAgIGVsc2lmICggJEV2ZW50IGVxICdBY3Rpb25BZGQnICkgewoKICAgICAgICAjIGNyZWF0ZSBoaXN0b3J5IGZvciBhY3Rpb24KICAgICAgICBwdXNoIEBIaXN0b3J5QWRkRGF0YSwgewogICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkUGFyYW17RGF0YX0tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlID0+ICRFdmVudCwKICAgICAgICAgICAgQ29udGVudE5ldyAgPT4gJFBhcmFte0RhdGF9LT57QWN0aW9uSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICB9OwoKICAgICAgICAjIGNyZWF0ZSBoaXN0b3J5IGZvciBhbGwgYWN0aW9uIGZpZWxkcwogICAgICAgIG15IEBBY3Rpb25TdGF0aWMgPSBxdyggQWN0aW9uSUQgVXNlcklEIENoYW5nZUlEKTsKICAgICAgICBBQ1RJT05GSUVMRDoKICAgICAgICBmb3IgbXkgJEFjdGlvbkZpZWxkICggc29ydCBrZXlzICV7ICRQYXJhbXtEYXRhfSB9ICkgewoKICAgICAgICAgICAgIyBjaGVjayBmb3Igc3RhdGljIGZpZWxkcwogICAgICAgICAgICBuZXh0IEFDVElPTkZJRUxEIGlmIGdyZXAgeyAkXyBlcSAkQWN0aW9uRmllbGQgfSBAQWN0aW9uU3RhdGljOwoKICAgICAgICAgICAgIyBkbyBub3QgYWRkIGVtcHR5IGZpZWxkcyB0byBoaXN0b3J5CiAgICAgICAgICAgIG5leHQgQUNUSU9ORklFTEQgaWYgISRQYXJhbXtEYXRhfS0+eyRBY3Rpb25GaWVsZH07CgogICAgICAgICAgICBwdXNoIEBIaXN0b3J5QWRkRGF0YSwgewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgPT4gJFBhcmFte0RhdGF9LT57Q2hhbmdlSUR9LAogICAgICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICAgICAgRmllbGRuYW1lICAgPT4gJEFjdGlvbkZpZWxkLAogICAgICAgICAgICAgICAgQ29udGVudE5ldyAgPT4gJFBhcmFte0RhdGF9LT57JEFjdGlvbkZpZWxkfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGhhbmRsZSBhY3Rpb24gdXBkYXRlIGV2ZW50cwogICAgZWxzaWYgKCAkRXZlbnQgZXEgJ0FjdGlvblVwZGF0ZScgKSB7CgogICAgICAgICMgZ2V0IG9sZCBkYXRhCiAgICAgICAgbXkgJE9sZERhdGEgPSAkUGFyYW17RGF0YX0tPntPbGRBY3Rpb25EYXRhfTsKCiAgICAgICAgIyBjcmVhdGUgaGlzdG9yeSBmb3IgYWxsIGV4cHJlc3Npb24gZmllbGRzCiAgICAgICAgbXkgQEFjdGlvblN0YXRpYyA9IHF3KCBBY3Rpb25JRCBVc2VySUQgQ2hhbmdlSUQgT2xkQWN0aW9uRGF0YSApOwogICAgICAgIEFDVElPTkZJRUxEOgogICAgICAgIGZvciBteSAkQWN0aW9uRmllbGQgKCBzb3J0IGtleXMgJXsgJFBhcmFte0RhdGF9IH0gKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgIG5leHQgQUNUSU9ORklFTEQgaWYgZ3JlcCB7ICRfIGVxICRBY3Rpb25GaWVsZCB9IEBBY3Rpb25TdGF0aWM7CgogICAgICAgICAgICAjIGRvIG5vdCBhZGQgZW1wdHkgZmllbGRzIHRvIGhpc3RvcnkKICAgICAgICAgICAgbmV4dCBBQ1RJT05GSUVMRCBpZiAhJFBhcmFte0RhdGF9LT57JEFjdGlvbkZpZWxkfTsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgZmllbGQgaGFzIGNoYW5nZWQKICAgICAgICAgICAgbXkgJEZpZWxkSGFzQ2hhbmdlZCA9ICRTZWxmLT5fSGFzRmllbGRDaGFuZ2VkKAogICAgICAgICAgICAgICAgTmV3ID0+ICRQYXJhbXtEYXRhfS0+eyRBY3Rpb25GaWVsZH0sCiAgICAgICAgICAgICAgICBPbGQgPT4gJE9sZERhdGEtPnskQWN0aW9uRmllbGR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBjcmVhdGUgaGlzdG9yeSBvbmx5IGZvciBjaGFuZ2VkIGZpZWxkcwogICAgICAgICAgICBuZXh0IEFDVElPTkZJRUxEIGlmICEkRmllbGRIYXNDaGFuZ2VkOwoKICAgICAgICAgICAgcHVzaCBASGlzdG9yeUFkZERhdGEsIHsKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgID0+ICRQYXJhbXtEYXRhfS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgICAgIEhpc3RvcnlUeXBlID0+ICRFdmVudCwKICAgICAgICAgICAgICAgIEZpZWxkbmFtZSAgID0+ICRBY3Rpb25GaWVsZCwKICAgICAgICAgICAgICAgIENvbnRlbnROZXcgID0+ICRQYXJhbXtEYXRhfS0+e0FjdGlvbklEfSAuICclJScgLiAkUGFyYW17RGF0YX0tPnskQWN0aW9uRmllbGR9LAogICAgICAgICAgICAgICAgQ29udGVudE9sZCAgPT4gJFBhcmFte0RhdGF9LT57QWN0aW9uSUR9IC4gJyUlJyAuICRPbGREYXRhLT57JEFjdGlvbkZpZWxkfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGhhbmRsZSBhY3Rpb24gZGVsZXRlIGV2ZW50cwogICAgZWxzaWYgKCAkRXZlbnQgZXEgJ0FjdGlvbkRlbGV0ZScgKSB7CgogICAgICAgIHB1c2ggQEhpc3RvcnlBZGREYXRhLCB7CiAgICAgICAgICAgIENoYW5nZUlEICAgID0+ICRQYXJhbXtEYXRhfS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICBDb250ZW50TmV3ICA9PiAkUGFyYW17RGF0YX0tPntBY3Rpb25JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIH07CiAgICB9CgogICAgIyBoYW5kbGUgZGVsZXRlIGFsbCBhY3Rpb25zIGV2ZW50cwogICAgZWxzaWYgKCAkRXZlbnQgZXEgJ0FjdGlvbkRlbGV0ZUFsbCcgKSB7CgogICAgICAgIHB1c2ggQEhpc3RvcnlBZGREYXRhLCB7CiAgICAgICAgICAgIENoYW5nZUlEICAgID0+ICRQYXJhbXtEYXRhfS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICBDb250ZW50TmV3ICA9PiAkUGFyYW17RGF0YX0tPntDb25kaXRpb25JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIH07CiAgICB9CgogICAgIyBoYW5kbGUgYWN0aW9uIGV4ZWN1dGUgZXZlbnRzCiAgICBlbHNpZiAoICRFdmVudCBlcSAnQWN0aW9uRXhlY3V0ZScgKSB7CgogICAgICAgIHB1c2ggQEhpc3RvcnlBZGREYXRhLCB7CiAgICAgICAgICAgIENoYW5nZUlEICAgID0+ICRQYXJhbXtEYXRhfS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgICAgICAgICBDb250ZW50TmV3ICA9PiAkUGFyYW17RGF0YX0tPntBY3Rpb25JRH0gLiAnJSUnIC4gJFBhcmFte0RhdGF9LT57QWN0aW9uUmVzdWx0fSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIGVycm9yCiAgICBlbHNlIHsKCiAgICAgICAgIyBhbiB1bmtub3duIGV2ZW50CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICIkRXZlbnQgaXMgYW4gdW5rbm93biBldmVudCEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGlmIHRoZXJlIGlzIG5vdGhpbmcgdG8gd3JpdGUgdG8gdGhlIGhpc3RvcnkKICAgIHJldHVybiAxIGlmICFASGlzdG9yeUFkZERhdGE7CgogICAgIyBpZiB0aGVyZSBpcyBqdXN0IG9uZSBoaXN0b3J5IGVudHJ5IHRvIHdyaXRlCiAgICBpZiAoIHNjYWxhciBASGlzdG9yeUFkZERhdGEgPT0gMSApIHsKCiAgICAgICAgIyB3cml0ZSB0aGUgZmlyc3QgYW5kIG9ubHkgZW50cnkgb2YgdGhlIGFycmF5IHRvIHRoZSBoaXN0b3J5CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Okhpc3RvcnknKS0+SGlzdG9yeUFkZCgKICAgICAgICAgICAgJXsgJEhpc3RvcnlBZGREYXRhWzBdIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgZW50cnkgdG8gd3JpdGUKICAgICMgbGV0IHRoZSBIaXN0b3J5QWRkTXVsdGlwbGUgZnVuY3Rpb24gaGFuZGxlIHRoYXQKICAgIGVsc2UgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpIaXN0b3J5JyktPkhpc3RvcnlBZGRNdWx0aXBsZSgKICAgICAgICAgICAgRGF0YSA9PiBcQEhpc3RvcnlBZGREYXRhLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMSBQUklWQVRFIElOVEVSRkFDRQoKPWhlYWQyIF9IYXNGaWVsZENoYW5nZWQoKQoKVGhpcyBtZXRob2QgY2hlY2tzIHdoZXRoZXIgYSBmaWVsZCB3YXMgY2hhbmdlZCBvciBub3QuIEl0IHJldHVybnMgMSB3aGVuIGZpZWxkCndhcyBjaGFuZ2VkLCB1bmRlZiBvdGhlcndpc2UuCgogICAgbXkgJEZpZWxkSGFzQ2hhbmdlZCA9ICRIaXN0b3J5T2JqZWN0LT5fSGFzRmllbGRDaGFuZ2VkKAogICAgICAgIE9sZCA9PiAnb2xkIHZhbHVlJywgIyBjYW4gYmUgYXJyYXkgcmVmZXJlbmNlIG9yIGhhc2ggcmVmZXJlbmNlIGFzIHdlbGwKICAgICAgICBOZXcgPT4gJ25ldyB2YWx1ZScsICMgY2FuIGJlIGFycmF5IHJlZmVyZW5jZSBvciBoYXNoIHJlZmVyZW5jZSBhcyB3ZWxsCiAgICApOwoKPWN1dAoKc3ViIF9IYXNGaWVsZENoYW5nZWQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGZpZWxkIGhhcyBjaGFuZ2VkIHdoZW4gZWl0aGVyICduZXcnIG9yICdvbGQgaXMgbm90IHNldAogICAgcmV0dXJuIDEgaWYgISggJFBhcmFte05ld30gJiYgJFBhcmFte09sZH0gKSAmJiAoICRQYXJhbXtOZXd9IHx8ICRQYXJhbXtPbGR9ICk7CgogICAgIyBmaWVsZCBoYXMgbm90IGNoYW5nZWQgd2hlbiBib3RoIHZhbHVlcyBhcmUgZW1wdHkKICAgIHJldHVybiBpZiAhJFBhcmFte05ld30gJiYgISRQYXJhbXtPbGR9OwoKICAgICMgcmV0dXJuIHJlc3VsdCBvZiAnZXEnIHdoZW4gYm90aCBwYXJhbXMgYXJlIHNjYWxhcnMKICAgIHJldHVybiAkUGFyYW17TmV3fSBuZSAkUGFyYW17T2xkfSBpZiAhcmVmKCAkUGFyYW17TmV3fSApICYmICFyZWYoICRQYXJhbXtPbGR9ICk7CgogICAgIyBhIGZpZWxkIGhhcyBjaGFuZ2VkIHdoZW4gJ3JlZicgaXMgZGlmZmVyZW50CiAgICByZXR1cm4gMSBpZiByZWYoICRQYXJhbXtOZXd9ICkgbmUgcmVmKCAkUGFyYW17T2xkfSApOwoKICAgICMgY2hlY2sgaGFzaGVzCiAgICBpZiAoIHJlZiAkUGFyYW17TmV3fSBlcSAnSEFTSCcgKSB7CgogICAgICAgICMgZmllbGQgaGFzIGNoYW5nZWQgd2hlbiBudW1iZXIgb2Yga2V5cyBhcmUgZGlmZmVyZW50CiAgICAgICAgcmV0dXJuIDEgaWYgc2NhbGFyIGtleXMgJXsgJFBhcmFte05ld30gfSAhPSBzY2FsYXIga2V5cyAleyAkUGFyYW17T2xkfSB9OwoKICAgICAgICAjIGNoZWNrIHRoZSB2YWx1ZXMgZm9yIGVhY2gga2V5CiAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJXsgJFBhcmFte05ld30gfSApIHsKICAgICAgICAgICAgcmV0dXJuIDEgaWYgJFBhcmFte05ld30tPnskS2V5fSBuZSAkUGFyYW17T2xkfS0+eyRLZXl9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGFycmF5cwogICAgaWYgKCByZWYgJFBhcmFte05ld30gZXEgJ0FSUkFZJyApIHsKCiAgICAgICAgIyBjaGFuZ2VkIHdoZW4gbnVtYmVyIG9mIGVsZW1lbnRzIGRpZmZlcgogICAgICAgIHJldHVybiAxIGlmIHNjYWxhciBAeyAkUGFyYW17TmV3fSB9ICE9IHNjYWxhciBAeyAkUGFyYW17T2xkfSB9OwoKICAgICAgICAjIGNoZWNrIGVhY2ggZWxlbWVudAogICAgICAgIGZvciBteSAkSW5kZXggKCAwIC4uICQjeyAkUGFyYW17TmV3fSB9ICkgewogICAgICAgICAgICByZXR1cm4gMSBpZiAkUGFyYW17TmV3fS0+WyRJbmRleF0gbmUgJFBhcmFte09sZH0tPlskSW5kZXhdOwogICAgICAgIH0KICAgIH0KCiAgICAjIGZpZWxkIGhhcyBub3QgYmVlbiBjaGFuZ2VkCiAgICByZXR1cm47Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Event/HistoryDelete.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6Okhpc3RvcnlEZWxldGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SGlzdG9yeScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhEYXRhIEV2ZW50IENvbmZpZyBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgaGFuZGxlIGRlbGV0aW9uIG9mIGEgY2hhbmdlCiAgICBpZiAoICRQYXJhbXtFdmVudH0gZXEgJ0NoYW5nZURlbGV0ZVBvc3QnICkgewoKICAgICAgICAjIGRlbGV0ZSBoaXN0b3J5IG9mIGNoYW5nZQogICAgICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Okhpc3RvcnknKS0+Q2hhbmdlSGlzdG9yeURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0RhdGF9LT57Q2hhbmdlSUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGhhbmRsZSBlcnJvcgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ2hhbmdlRGVsZXRlKCkgZmFpbGVkIGZvciBDaGFuZ2VJRCAnJFBhcmFte0RhdGF9LT57Q2hhbmdlSUR9JyEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGVycm9yCiAgICBlbHNlIHsKCiAgICAgICAgIyBhbiB1bmtub3duIGV2ZW50CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICIkUGFyYW17RXZlbnR9IGlzIGFuIHVua25vd24gZXZlbnQhIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Event/Notification.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6Ok5vdGlmaWNhdGlvbjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpIaXN0b3J5JywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Ok5vdGlmaWNhdGlvbicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoRGF0YSBFdmVudCBDb25maWcgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRvIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIGV2ZW50LCBiZWNhdXNlIHdlIG5lZWQgdGhpcyB1bm1vZGlmaWVkIGluIGxhdGVyIGV2ZW50IG1vZHVsZXMKICAgIG15ICRFdmVudCA9ICRQYXJhbXtFdmVudH07CgogICAgIyBpbiBoaXN0b3J5IGV2ZW50IGhhbmRsaW5nIHdlIHVzZSBFdmVudCBuYW1lIHdpdGhvdXQgdGhlIHRyYWlsaW5nICdQb3N0JwogICAgJEV2ZW50ID1+IHN7IFBvc3QgXHogfXt9eG1zOwoKICAgICMgZGlzdGluZ3Vpc2ggYmV0d2VlbiBDaGFuZ2UgYW5kIFdvcmtPcmRlciBldmVudHMsIGJhc2VkIG9uIG5hbWluZyBjb252ZW50aW9uCiAgICBteSAkVHlwZTsKICAgIGlmICggJEV2ZW50ID1+IG17IFxBIChDaGFuZ2V8QWN0aW9uRXhlY3V0ZSkgfXhtcyApIHsKICAgICAgICAkVHlwZSA9ICdDaGFuZ2UnOwogICAgfQogICAgZWxzaWYgKCAkRXZlbnQgPX4gbXsgXEEgV29ya09yZGVyIH14bXMgKSB7CiAgICAgICAgJFR5cGUgPSAnV29ya09yZGVyJzsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IGRldGVybWluZSB0aGUgb2JqZWN0IHR5cGUgZm9yIHRoZSBldmVudCAnJEV2ZW50JyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IHRoZSBldmVudCBpZCwgZm9yIGxvb2tpbmcgdXAgdGhlIGxpc3Qgb2YgcmVsZXZhbnQgcnVsZXMKICAgIG15ICRFdmVudElEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Okhpc3RvcnknKS0+SGlzdG9yeVR5cGVMb29rdXAoCiAgICAgICAgSGlzdG9yeVR5cGUgPT4gJEV2ZW50LAogICAgKTsKICAgIGlmICggISRFdmVudElEICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRW5jb3VudGVyZWQgdW5rbm93biBldmVudCAnJEV2ZW50JyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICROb3RpZmljYXRpb25SdWxlSURzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Ok5vdGlmaWNhdGlvbicpLT5Ob3RpZmljYXRpb25SdWxlU2VhcmNoKAogICAgICAgIEV2ZW50SUQgPT4gJEV2ZW50SUQsCiAgICApOwogICAgaWYgKCAhJE5vdGlmaWNhdGlvblJ1bGVJRHMgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3QgZ2V0IG5vdGlmaWNhdGlvbiBydWxlcyBmb3IgdGhlIGV2ZW50ICckRXZlbnQnISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBpbiBjYXNlIG9mIGFuIHVwZGF0ZSwgd2UgaGF2ZSB0aGUgb2xkIGRhdGEgZm9yIGNvbXBhcmlzb24KICAgIG15ICRPbGREYXRhID0gJFBhcmFte0RhdGF9LT57Ik9sZCR7VHlwZX1EYXRhIn07CgogICAgIyBUaGUgbm90aWZpY2F0aW9uIHJ1bGVzIGFyZSBiYXNlZCBvbiBuYW1lcywgd2hpbGUgdGhlIENoYW5nZVVwZGF0ZS1GdW5jdGlvbgogICAgIyBwcmltYXJpbHkgY2FyZXMgYWJvdXQgSURzLiBTbyB0aGVyZSBuZWVkcyB0byBiZSBhIG1hcHBpbmcuCiAgICBteSAlTmFtZTJJRCA9ICgKICAgICAgICBDaGFuZ2VTdGF0ZSAgICA9PiAnQ2hhbmdlU3RhdGVJRCcsCiAgICAgICAgV29ya09yZGVyU3RhdGUgPT4gJ1dvcmtPcmRlclN0YXRlSUQnLAogICAgKTsKCiAgICAjIGxvb3Agb3ZlciB0aGUgbm90aWZpY2F0aW9uIHJ1bGVzIGFuZCBjaGVjayB0aGUgY29uZGl0aW9uCiAgICBSVUxFSUQ6CiAgICBmb3IgbXkgJFJ1bGVJRCAoIEB7JE5vdGlmaWNhdGlvblJ1bGVJRHN9ICkgewogICAgICAgIG15ICRSdWxlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Ok5vdGlmaWNhdGlvbicpLT5Ob3RpZmljYXRpb25SdWxlR2V0KAogICAgICAgICAgICBJRCA9PiAkUnVsZUlELAogICAgICAgICk7CgogICAgICAgIG15ICRBdHRyaWJ1dGUgPSAkUnVsZS0+e0F0dHJpYnV0ZX0gfHwgJyc7CiAgICAgICAgaWYgKCAkTmFtZTJJRHskQXR0cmlidXRlfSApIHsKICAgICAgICAgICAgJEF0dHJpYnV0ZSA9ICROYW1lMklEeyRBdHRyaWJ1dGV9OwogICAgICAgIH0KCiAgICAgICAgIyBubyBub3RpZmljYXRpb24gaWYgdGhlIGF0dHJpYnV0ZSBpcyBub3QgcmVsZXZhbnQKICAgICAgICBpZiAoICRBdHRyaWJ1dGUgJiYgIWV4aXN0cyAkUGFyYW17RGF0YX0tPnskQXR0cmlidXRlfSApIHsKICAgICAgICAgICAgbmV4dCBSVUxFSUQ7CiAgICAgICAgfQoKICAgICAgICAjIGluIGNhc2Ugb2YgYW4gdXBkYXRlLCBjaGVjayB3aGV0aGVyIHRoZSBhdHRyaWJ1dGUgaGFzIGNoYW5nZWQKICAgICAgICBpZiAoCiAgICAgICAgICAgICRBdHRyaWJ1dGUKICAgICAgICAgICAgJiYgKCAkRXZlbnQgZXEgJ0NoYW5nZVVwZGF0ZScgfHwgJEV2ZW50IGVxICdXb3JrT3JkZXJVcGRhdGUnICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEhhc0NoYW5nZWQgPSAkU2VsZi0+X0hhc0ZpZWxkQ2hhbmdlZCgKICAgICAgICAgICAgICAgIE5ldyA9PiAkUGFyYW17RGF0YX0tPnskQXR0cmlidXRlfSwKICAgICAgICAgICAgICAgIE9sZCA9PiAkT2xkRGF0YS0+eyRBdHRyaWJ1dGV9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBSVUxFSUQgaWYgISRIYXNDaGFuZ2VkOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgdGhlIHN0cmluZyB0byBtYXRjaCBhZ2FpbnN0CiAgICAgICAgIyBUT0RPOiBzdXBwb3J0IG90aGVyIGNvbWJpbmF0aW9ucywgbWF5YmUgdXNlIEdlbmVyYWxDYXRhbG9nIGRpcmVjdGx5CiAgICAgICAgbXkgJE5ld0ZpZWxkQ29udGVudCA9ICRBdHRyaWJ1dGUgPyAkUGFyYW17RGF0YX0tPnskQXR0cmlidXRlfSA6ICcnOwoKICAgICAgICBpZiAoICRBdHRyaWJ1dGUgZXEgJ0NoYW5nZVN0YXRlSUQnICkgewogICAgICAgICAgICAkTmV3RmllbGRDb250ZW50ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlU3RhdGVMb29rdXAoCiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICROZXdGaWVsZENvbnRlbnQsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnV29ya09yZGVyU3RhdGVJRCcgKSB7CiAgICAgICAgICAgICROZXdGaWVsZENvbnRlbnQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJTdGF0ZUxvb2t1cCgKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlSUQgPT4gJE5ld0ZpZWxkQ29udGVudCwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2hvdWxkIHRoZSBub3RpZmljYXRpb24gYmUgc2VudCA/CiAgICAgICAgIyB0aGUgeC1tb2RpZmllciBpcyBoYXJtZnVsIGhlcmUsIGFzICRSdWxlLT57UnVsZX0gY2FuIGNvbnRhaW4gc3BhY2VzCiAgICAgICAgaWYgKAogICAgICAgICAgICBkZWZpbmVkICRSdWxlLT57UnVsZX0KICAgICAgICAgICAgJiYgZGVmaW5lZCAkTmV3RmllbGRDb250ZW50CiAgICAgICAgICAgICYmICROZXdGaWVsZENvbnRlbnQgIX4gbS9eJFJ1bGUtPntSdWxlfSQvCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG5leHQgUlVMRUlEOwogICAgICAgIH0KCiAgICAgICAgIyBkZXRlcm1pbmUgbGlzdCBvZiBhZ2VudHMgYW5kIGN1c3RvbWVycwogICAgICAgIG15ICRBZ2VudEFuZEN1c3RvbWVySURzID0gJFNlbGYtPl9BZ2VudEFuZEN1c3RvbWVySURzR2V0KAogICAgICAgICAgICBSZWNpcGllbnRzICA9PiAkUnVsZS0+e1JlY2lwaWVudHN9LAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAkVHlwZSwKICAgICAgICAgICAgRXZlbnQgICAgICAgPT4gJEV2ZW50LAogICAgICAgICAgICBDaGFuZ2VJRCAgICA9PiAkUGFyYW17RGF0YX0tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgT2xkRGF0YSAgICAgPT4gJE9sZERhdGEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG5leHQgUlVMRUlEIGlmICEkQWdlbnRBbmRDdXN0b21lcklEczsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Ok5vdGlmaWNhdGlvbicpLT5Ob3RpZmljYXRpb25TZW5kKAogICAgICAgICAgICAleyRBZ2VudEFuZEN1c3RvbWVySURzfSwKICAgICAgICAgICAgVHlwZSAgID0+ICRUeXBlLAogICAgICAgICAgICBFdmVudCAgPT4gJEV2ZW50LAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIERhdGEgICA9PiB7CiAgICAgICAgICAgICAgICAleyAkUGFyYW17RGF0YX0gfSwgICAgIyBkbyBub3QgcGFzcyBhcyByZWZlcmVuY2UsIGFzIGl0IHdvdWxkIGluZmx1ZW5jZSBsYXRlciBldmVudHMhCiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBNZXNzYWdlID0+ICRSdWxlLT57TWVzc2FnZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWJlZ2luIEludGVybmFsOgoKPWhlYWQyIF9IYXNGaWVsZENoYW5nZWQoKQoKVGhpcyBtZXRob2QgY2hlY2tzIHdoZXRoZXIgYSBmaWVsZCB3YXMgY2hhbmdlZCBvciBub3QuIEl0IHJldHVybnMgMSB3aGVuIGZpZWxkCndhcyBjaGFuZ2VkLCAwIG90aGVyd2lzZQoKICAgIG15ICRGaWVsZEhhc0NoYW5nZWQgPSAkTm90aWZpY2F0aW9uRXZlbnRPYmplY3QtPl9IYXNGaWVsZENoYW5nZWQoCiAgICAgICAgT2xkID0+ICdvbGQgdmFsdWUnLCAjIGNhbiBiZSBhcnJheSByZWZlcmVuY2Ugb3IgaGFzaCByZWZlcmVuY2UgYXMgd2VsbAogICAgICAgIE5ldyA9PiAnbmV3IHZhbHVlJywgIyBjYW4gYmUgYXJyYXkgcmVmZXJlbmNlIG9yIGhhc2ggcmVmZXJlbmNlIGFzIHdlbGwKICAgICk7Cgo9Y3V0CgpzdWIgX0hhc0ZpZWxkQ2hhbmdlZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZmllbGQgaGFzIGNoYW5nZWQgd2hlbiBlaXRoZXIgJ25ldycgb3IgJ29sZCBpcyBub3Qgc2V0CiAgICByZXR1cm4gMSBpZiAhKCAkUGFyYW17TmV3fSAmJiAkUGFyYW17T2xkfSApICYmICggJFBhcmFte05ld30gfHwgJFBhcmFte09sZH0gKTsKCiAgICAjIGZpZWxkIGhhcyBub3QgY2hhbmdlZCB3aGVuIGJvdGggdmFsdWVzIGFyZSBlbXB0eQogICAgcmV0dXJuIGlmICEkUGFyYW17TmV3fSAmJiAhJFBhcmFte09sZH07CgogICAgIyByZXR1cm4gcmVzdWx0IG9mICdlcScgd2hlbiBib3RoIHBhcmFtcyBhcmUgc2NhbGFycwogICAgcmV0dXJuICRQYXJhbXtOZXd9IG5lICRQYXJhbXtPbGR9IGlmICFyZWYoICRQYXJhbXtOZXd9ICkgJiYgIXJlZiggJFBhcmFte09sZH0gKTsKCiAgICAjIGEgZmllbGQgaGFzIGNoYW5nZWQgd2hlbiAncmVmJyBpcyBkaWZmZXJlbnQKICAgIHJldHVybiAxIGlmIHJlZiggJFBhcmFte05ld30gKSBuZSByZWYoICRQYXJhbXtPbGR9ICk7CgogICAgIyBjaGVjayBoYXNoZXMKICAgIGlmICggcmVmICRQYXJhbXtOZXd9IGVxICdIQVNIJyApIHsKCiAgICAgICAgIyBmaWVsZCBoYXMgY2hhbmdlZCB3aGVuIG51bWJlciBvZiBrZXlzIGFyZSBkaWZmZXJlbnQKICAgICAgICByZXR1cm4gMSBpZiBzY2FsYXIga2V5cyAleyAkUGFyYW17TmV3fSB9ICE9IHNjYWxhciBrZXlzICV7ICRQYXJhbXtPbGR9IH07CgogICAgICAgICMgY2hlY2sgdGhlIHZhbHVlcyBmb3IgZWFjaCBrZXkKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyAkUGFyYW17TmV3fSB9ICkgewogICAgICAgICAgICByZXR1cm4gMSBpZiAkUGFyYW17TmV3fS0+eyRLZXl9IG5lICRQYXJhbXtPbGR9LT57JEtleX07CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgYXJyYXlzCiAgICBpZiAoIHJlZiAkUGFyYW17TmV3fSBlcSAnQVJSQVknICkgewoKICAgICAgICAjIGNoYW5nZWQgd2hlbiBudW1iZXIgb2YgZWxlbWVudHMgZGlmZmVyCiAgICAgICAgcmV0dXJuIDEgaWYgc2NhbGFyIEB7ICRQYXJhbXtOZXd9IH0gIT0gc2NhbGFyIEB7ICRQYXJhbXtPbGR9IH07CgogICAgICAgICMgY2hlY2sgZWFjaCBlbGVtZW50CiAgICAgICAgZm9yIG15ICRJbmRleCAoIDAgLi4gJCN7ICRQYXJhbXtOZXd9IH0gKSB7CiAgICAgICAgICAgIHJldHVybiAxIGlmICRQYXJhbXtOZXd9LT5bJEluZGV4XSBuZSAkUGFyYW17T2xkfS0+WyRJbmRleF07CiAgICAgICAgfQogICAgfQoKICAgICMgZmllbGQgaGFzIG5vdCBiZWVuIGNoYW5nZWQKICAgIHJldHVybiAwOwp9Cgo9aGVhZDIgX0FnZW50QW5kQ3VzdG9tZXJJRHNHZXQoKQoKR2V0IHRoZSBhZ2VudCBhbmQgY3VzdG9tZXIgSURzIGZyb20gdGhlIHJlY2lwaWVudCBsaXN0LgoKICAgIG15ICRBZ2VudEFuZEN1c3RvbWVySURzID0gJEhpc3RvcnlPYmplY3QtPl9BZ2VudEFuZEN1c3RvbWVySURzR2V0KAogICAgICAgIFJlY2lwaWVudHMgPT4gWydDaGFuZ2VCdWlsZGVyJywgJ0NoYW5nZU1hbmFnZXInXSwKICAgICk7CgpyZXR1cm5zCgogICAgJEFnZW50QW5kQ3VzdG9tZXJJRHMgPSB7CiAgICAgICAgQWdlbnRJRHMgICAgPT4gWyAyLCA0IF0sCiAgICAgICAgQ3VzdG9tZXJJRHMgPT4gW10sCiAgICB9OwoKPWN1dAoKc3ViIF9BZ2VudEFuZEN1c3RvbWVySURzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFdvcmtPcmRlckFnZW50SUQ7CiAgICBpZiAoICRQYXJhbXtUeXBlfSBlcSAnV29ya09yZGVyJyApIHsKCiAgICAgICAgIyBjaGVjayBXb3JrT3JkZXJJRAogICAgICAgIGlmICggISRQYXJhbXtXb3JrT3JkZXJJRH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgcGFyYW0gJ1dvcmtPcmRlcklEJyBpcyByZXF1aXJlZCBmb3IgV29ya09yZGVyIGV2ZW50cyEiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gZXEgJ1dvcmtPcmRlckRlbGV0ZScgKSB7CgogICAgICAgICAgICAjIHRoZSB3b3Jrb3JkZXIgaXMgYWxyZWFkeSBkZWxldGVkLCBzbyB3ZSBsb29rIGF0IHRoZSBPbGREYXRhCiAgICAgICAgICAgICRQYXJhbXtDaGFuZ2VJRH0gPSAkUGFyYW17T2xkRGF0YX0tPntDaGFuZ2VJRH07CiAgICAgICAgICAgICRXb3JrT3JkZXJBZ2VudElEID0gJFBhcmFte09sZERhdGF9LT57V29ya09yZGVyQWdlbnRJRH07CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBnZXQgQ2hhbmdlSUQgYW5kIFdvcmtPcmRlckFnZW50SUQgZnJvbSB0aGUgV29ya09yZGVyLAogICAgICAgICAgICAjIHRoZSBXb3JrT3JkZXJBZ2VudCBtaWdodCBoYXZlIGJlZW4gcmVjZW50bHkgdXBkYXRlZAogICAgICAgICAgICBteSAkV29ya09yZGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyR2V0KAogICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFBhcmFte1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAoKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFBhcmFte0NoYW5nZUlEfSA9ICRXb3JrT3JkZXItPntDaGFuZ2VJRH07CiAgICAgICAgICAgICRXb3JrT3JkZXJBZ2VudElEID0gJFdvcmtPcmRlci0+e1dvcmtPcmRlckFnZW50SUR9OwogICAgICAgIH0KICAgIH0KCiAgICAjIHRoZXNlIGFycmF5cyB3aWxsIGJlIHJldHVybmVkCiAgICBteSAoIEBBZ2VudElEcywgQEN1c3RvbWVySURzICk7CgogICAgIyBuZWVkZWQgZm9yIGRldGVybWluaW5nIHRoZSBhY3R1YWwgcmVjaXBpZW50cwogICAgbXkgJENoYW5nZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gaWYgISRDaGFuZ2U7CiAgICByZXR1cm4gaWYgcmVmICRDaGFuZ2UgbmUgJ0hBU0gnOwogICAgcmV0dXJuIGlmICEleyRDaGFuZ2V9OwoKICAgIGZvciBteSAkUmVjaXBpZW50ICggQHsgJFBhcmFte1JlY2lwaWVudHN9IH0gKSB7CgogICAgICAgIGlmICggJFJlY2lwaWVudCBlcSAnQ2hhbmdlQnVpbGRlcicgfHwgJFJlY2lwaWVudCBlcSAnQ2hhbmdlTWFuYWdlcicgKSB7CgogICAgICAgICAgICAjIHRha2UgdGhlIGJ1aWxkZXIgb3IgbWFuYWdlciBmcm9tIHRoZSBjdXJyZW50IGNoYW5nZSBkYXRhCiAgICAgICAgICAgIHB1c2ggQEFnZW50SURzLCAkQ2hhbmdlLT57ICRSZWNpcGllbnQgLiAnSUQnIH07CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFJlY2lwaWVudCBlcSAnT2xkQ2hhbmdlQnVpbGRlcicgfHwgJFJlY2lwaWVudCBlcSAnT2xkQ2hhbmdlTWFuYWdlcicgKSB7CiAgICAgICAgICAgIGlmICggJFBhcmFte0V2ZW50fSBuZSAnQ2hhbmdlVXBkYXRlJyApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlJlY2lwaWVudCAkUmVjaXBpZW50IGlzIG9ubHkgdmFsaWQgZm9yIENoYW5nZVVwZGF0ZSBldmVudHMsICIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiYnV0IHRoZSBldmVudCB3YXMgYSAnJFBhcmFte0V2ZW50fScgZXZlbnQhIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyB0YWtlIHRoZSBidWlsZGVyIG9yIG1hbmFnZXIgZnJvbSB0aGUgb3JpZ2luYWwgY2hhbmdlIGRhdGEKICAgICAgICAgICAgICAgICRSZWNpcGllbnQgPX4gc3sgXEEgT2xkIH17fXhtczsKICAgICAgICAgICAgICAgIHB1c2ggQEFnZW50SURzLCAkUGFyYW17T2xkRGF0YX0tPnsgJFJlY2lwaWVudCAuICdJRCcgfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRSZWNpcGllbnQgZXEgJ0NBQkN1c3RvbWVycycgKSB7CiAgICAgICAgICAgIHB1c2ggQEN1c3RvbWVySURzLCBAeyAkQ2hhbmdlLT57Q0FCQ3VzdG9tZXJzfSB9OwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRSZWNpcGllbnQgZXEgJ0NBQkFnZW50cycgKSB7CiAgICAgICAgICAgIHB1c2ggQEFnZW50SURzLCBAeyAkQ2hhbmdlLT57Q0FCQWdlbnRzfSB9OwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRSZWNpcGllbnQgZXEgJ1dvcmtPcmRlckFnZW50JyApIHsKICAgICAgICAgICAgaWYgKCAkUGFyYW17VHlwZX0gbmUgJ1dvcmtPcmRlcicgKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJSZWNpcGllbnQgJFJlY2lwaWVudCBpcyBvbmx5IHZhbGlkIGZvciB3b3Jrb3JkZXIgZXZlbnRzICIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiYnV0IHRoZSBldmVudCB3YXMgYSAnJFBhcmFte0V2ZW50fScgZXZlbnQhIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBwdXNoIEBBZ2VudElEcywgJFdvcmtPcmRlckFnZW50SUQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAkUmVjaXBpZW50IGVxICdPbGRXb3JrT3JkZXJBZ2VudCcgKSB7CiAgICAgICAgICAgIGlmICggJFBhcmFte0V2ZW50fSBuZSAnV29ya09yZGVyVXBkYXRlJyApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlJlY2lwaWVudCAkUmVjaXBpZW50IGlzIG9ubHkgdmFsaWQgZm9yIFdvcmtPcmRlclVwZGF0ZSBldmVudHMgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJidXQgdGhlIGV2ZW50IHdhcyBhICckUGFyYW17RXZlbnR9JyBldmVudCEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIHRha2UgdGhlIHdvcmtvcmRlciBhZ2VudCBmcm9tIHRoZSBvcmlnaW5hbCB3b3Jrb3JkZXIgZGF0YQogICAgICAgICAgICAgICAgJFJlY2lwaWVudCA9fiBzeyBcQSBPbGQgfXt9eG1zOwogICAgICAgICAgICAgICAgcHVzaCBAQWdlbnRJRHMsICRQYXJhbXtPbGREYXRhfS0+eyAkUmVjaXBpZW50IC4gJ0lEJyB9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFJlY2lwaWVudCBlcSAnV29ya09yZGVyQWdlbnRzJyApIHsKCiAgICAgICAgICAgICMgbG9vcCBvdmVyIHRoZSB3b3Jrb3JkZXJzIG9mIGEgY2hhbmdlIGFuZCBnZXQgdGhlaXIgd29ya29yZGVyIGFnZW50cwogICAgICAgICAgICBmb3IgbXkgJFdvcmtPcmRlcklEICggQHsgJENoYW5nZS0+e1dvcmtPcmRlcklEc30gfSApIHsKICAgICAgICAgICAgICAgIG15ICRXb3JrT3JkZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBwdXNoIEBBZ2VudElEcywgJFdvcmtPcmRlci0+e1dvcmtPcmRlckFnZW50SUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFJlY2lwaWVudCBlcSAnQ2hhbmdlSW5pdGlhdG9ycycgKSB7CgogICAgICAgICAgICAjIGdldCBsaW5rZWQgb2JqZWN0cyB3aGljaCBhcmUgZGlyZWN0bHkgbGlua2VkIHdpdGggdGhpcyBjaGFuZ2Ugb2JqZWN0CiAgICAgICAgICAgIG15ICRMaW5rTGlzdFdpdGhEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnKS0+TGlua0xpc3RXaXRoRGF0YSgKICAgICAgICAgICAgICAgIE9iamVjdCA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgICAgICAgICBLZXkgICAgPT4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICAgICAgICAgIFN0YXRlICA9PiAnVmFsaWQnLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgY2hhbmdlIGluaXRpYXRvcnMgKGN1c3RvbWVyIHVzZXJzIG9mIGxpbmtlZCB0aWNrZXRzKQogICAgICAgICAgICAjIFRoaXMgc2hvdWxkIGJlIHRoZSBzYW1lIGxpc3QgYSBkaXNwbGF5ZWQgaW4gQ2hhbmdlWm9vbS4KICAgICAgICAgICAgbXkgJExpbmtMaXN0ID0gJExpbmtMaXN0V2l0aERhdGEtPntUaWNrZXR9IHx8IHt9OwogICAgICAgICAgICBmb3IgbXkgJExpbmtUeXBlICggc29ydCBrZXlzICV7JExpbmtMaXN0fSApIHsKCiAgICAgICAgICAgICAgICAjIHRoZSBsaW5rZWQgdGlja2V0cyBhcmUgYWx3YXlzIHRoZSAnU291cmNlJy4KICAgICAgICAgICAgICAgIGZvciBteSAkVGlja2V0RGF0YSAoIHZhbHVlcyAleyAkTGlua0xpc3QtPnskTGlua1R5cGV9LT57U291cmNlfSB9ICkgewoKICAgICAgICAgICAgICAgICAgICAjIFRoZSBkYXRhIGZvciB0aGUgbGlua2VkIHRpY2tldCBjYW4gaGF2ZSBhIGN1c3RvbWVyIGlkLgogICAgICAgICAgICAgICAgICAgICMgSWYgaXQgZG9lc24ndCwgZmFsbCBiYWNrIHRvIHRoZSBvd25lci4KICAgICAgICAgICAgICAgICAgICBpZiAoICRUaWNrZXREYXRhLT57Q3VzdG9tZXJVc2VySUR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBDdXN0b21lcklEcywgJFRpY2tldERhdGEtPntDdXN0b21lclVzZXJJRH07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBBZ2VudElEcywgJFRpY2tldERhdGEtPntPd25lcklEfTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAkUmVjaXBpZW50ID1+IG17IFxBIEdyb3VwSVRTTUNoYW5nZSh8QnVpbGRlcnxNYW5hZ2VyKSBceiB9eG1zICkgewoKICAgICAgICAgICAgbXkgJVJlY2lwaWVudDJHcm91cCA9ICgKICAgICAgICAgICAgICAgIEdyb3VwSVRTTUNoYW5nZSAgICAgICAgPT4gJ2l0c20tY2hhbmdlJywKICAgICAgICAgICAgICAgIEdyb3VwSVRTTUNoYW5nZUJ1aWxkZXIgPT4gJ2l0c20tY2hhbmdlLWJ1aWxkZXInLAogICAgICAgICAgICAgICAgR3JvdXBJVFNNQ2hhbmdlTWFuYWdlciA9PiAnaXRzbS1jaGFuZ2UtbWFuYWdlcicsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBncm91cCBpZAogICAgICAgICAgICBteSAkR3JvdXBJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cExvb2t1cCgKICAgICAgICAgICAgICAgIEdyb3VwID0+ICRSZWNpcGllbnQyR3JvdXB7JFJlY2lwaWVudH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IG1lbWJlcnMgb2YgZ3JvdXAKICAgICAgICAgICAgbXkgJVVzZXJzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdyb3VwSUQsCiAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdybycsCiAgICAgICAgICAgICAgICBSZXN1bHQgID0+ICdIQVNIJywKICAgICAgICAgICAgICAgIENhY2hlZCAgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHB1c2ggQEFnZW50SURzLCBrZXlzICVVc2VyczsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJVbmtub3duIHJlY2lwaWVudCAnJFJlY2lwaWVudCchIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIG5vIG5lZWQgdG8gZWxpbWluYXRlIGR1cGxpY2F0ZXMsIE5vdGlmaWNhdGlvblNlbmQoKSB0YWtlcyBjYXJlIG9mIHRoYXQKICAgICMgcmVtb3ZlIGVtcHR5IElEcwogICAgQEFnZW50SURzICAgID0gZ3JlcCB7JF99IEBBZ2VudElEczsKICAgIEBDdXN0b21lcklEcyA9IGdyZXAgeyRffSBAQ3VzdG9tZXJJRHM7CgogICAgbXkgJUFnZW50QW5kQ3VzdG9tZXJJRHMgPSAoCiAgICAgICAgQWdlbnRJRHMgICAgPT4gXEBBZ2VudElEcywKICAgICAgICBDdXN0b21lcklEcyA9PiBcQEN1c3RvbWVySURzLAogICAgKTsKCiAgICByZXR1cm4gXCVBZ2VudEFuZEN1c3RvbWVySURzOwp9CgoxOwoKPWVuZCBJbnRlcm5hbDoK</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Event/ToolBarChangeManagerCacheDelete.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6OlRvb2xCYXJDaGFuZ2VNYW5hZ2VyQ2FjaGVEZWxldGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoRGF0YSBFdmVudCBDb25maWcgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCB0aGUgY2FjaGUgdHlwZSBwcmVmaXgKICAgIG15ICRDYWNoZVR5cGVQcmVmaXggPSAnSVRTTUNoYW5nZU1hbmFnZW1lbnRUb29sQmFyQ2hhbmdlTWFuYWdlcic7CgogICAgIyBoYW5kbGUgYWRkaW5nIG9mIGEgY2hhbmdlCiAgICBpZiAoICRQYXJhbXtFdmVudH0gZXEgJ0NoYW5nZUFkZFBvc3QnICkgewoKICAgICAgICAjIGRvIG5vdGhpbmcgaWYgdGhlIENoYW5nZU1hbmFnZXJJRCB3YXMgbm90IHNldAogICAgICAgIHJldHVybiAxIGlmICEkUGFyYW17RGF0YX0tPntDaGFuZ2VNYW5hZ2VySUR9OwoKICAgICAgICAjIHNldCB0aGUgY2FjaGUgdHlwZQogICAgICAgIG15ICRDYWNoZVR5cGUgPSAkQ2FjaGVUeXBlUHJlZml4IC4gJFBhcmFte0RhdGF9LT57Q2hhbmdlTWFuYWdlcklEfTsKCiAgICAgICAgIyBkZWxldGUgdGhlIGNhY2hlCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoCiAgICAgICAgICAgIFR5cGUgPT4gJENhY2hlVHlwZSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGhhbmRsZSB1cGRhdGUgb2YgYSBjaGFuZ2UKICAgIGVsc2lmICggJFBhcmFte0V2ZW50fSBlcSAnQ2hhbmdlVXBkYXRlUG9zdCcgKSB7CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBkYXRhIGlzIGluaXRpYWxpemVkCiAgICAgICAgJFBhcmFte0RhdGF9LT57Q2hhbmdlTWFuYWdlcklEfSB8fD0gJyc7CiAgICAgICAgJFBhcmFte0RhdGF9LT57T2xkQ2hhbmdlRGF0YX0tPntDaGFuZ2VNYW5hZ2VySUR9IHx8PSAnJzsKCiAgICAgICAgIyBkbyBub3RoaW5nIGlmIHRoZSBDaGFuZ2VNYW5hZ2VySUQgZGlkIG5vdCBjaGFuZ2UKICAgICAgICByZXR1cm4gMQogICAgICAgICAgICBpZiAkUGFyYW17RGF0YX0tPntDaGFuZ2VNYW5hZ2VySUR9IGVxICRQYXJhbXtEYXRhfS0+e09sZENoYW5nZURhdGF9LT57Q2hhbmdlTWFuYWdlcklEfTsKCiAgICAgICAgIyBzZXQgdGhlIGNhY2hlIHR5cGUgcG9zdGZpeAogICAgICAgIG15IEBDYWNoZVR5cGVQb3N0Zml4ZXMgPSAoCiAgICAgICAgICAgICRQYXJhbXtEYXRhfS0+e0NoYW5nZU1hbmFnZXJJRH0sCiAgICAgICAgICAgICRQYXJhbXtEYXRhfS0+e09sZENoYW5nZURhdGF9LT57Q2hhbmdlTWFuYWdlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGRlbGV0ZSB0aGUgY2FjaGUgZm9yIHRoZSBvbGQgYW5kIHRoZSBjdXJyZW50IGNoYW5nZSBtYW5hZ2VyCiAgICAgICAgQ0FDSEVUWVBFUE9TVEZJWDoKICAgICAgICBmb3IgbXkgJENhY2hlVHlwZVBvc3RmaXggKEBDYWNoZVR5cGVQb3N0Zml4ZXMpIHsKCiAgICAgICAgICAgICMgZG8gbm90aGluZyBpZiB0aGUgQ2hhbmdlTWFuYWdlcklEIHdhcyBub3Qgc2V0CiAgICAgICAgICAgIG5leHQgQ0FDSEVUWVBFUE9TVEZJWCBpZiAhJENhY2hlVHlwZVBvc3RmaXg7CgogICAgICAgICAgICAjIHNldCB0aGUgY2FjaGUgdHlwZQogICAgICAgICAgICBteSAkQ2FjaGVUeXBlID0gJENhY2hlVHlwZVByZWZpeCAuICRDYWNoZVR5cGVQb3N0Zml4OwoKICAgICAgICAgICAgIyBkZWxldGUgdGhlIGNhY2hlCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgICAgICAgICAgVHlwZSA9PiAkQ2FjaGVUeXBlLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBoYW5kbGUgZGVsZXRpbmcgYSBjaGFuZ2UKICAgIGVsc2lmICggJFBhcmFte0V2ZW50fSBlcSAnQ2hhbmdlRGVsZXRlUG9zdCcgKSB7CgogICAgICAgICMgZG8gbm90aGluZyBpZiB0aGUgQ2hhbmdlTWFuYWdlcklEIHdhcyBub3Qgc2V0CiAgICAgICAgcmV0dXJuIDEgaWYgISRQYXJhbXtEYXRhfS0+e09sZENoYW5nZURhdGF9LT57Q2hhbmdlTWFuYWdlcklEfTsKCiAgICAgICAgIyBzZXQgdGhlIGNhY2hlIHR5cGUKICAgICAgICBteSAkQ2FjaGVUeXBlID0gJENhY2hlVHlwZVByZWZpeCAuICRQYXJhbXtEYXRhfS0+e09sZENoYW5nZURhdGF9LT57Q2hhbmdlTWFuYWdlcklEfTsKCiAgICAgICAgIyBkZWxldGUgdGhlIGNhY2hlCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoCiAgICAgICAgICAgIFR5cGUgPT4gJENhY2hlVHlwZSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Event/ToolBarMyCABCacheDelete.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6OlRvb2xCYXJNeUNBQkNhY2hlRGVsZXRlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KERhdGEgRXZlbnQgQ29uZmlnIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgdGhlIGNhY2hlIHR5cGUgcHJlZml4CiAgICBteSAkQ2FjaGVUeXBlUHJlZml4ID0gJ0lUU01DaGFuZ2VNYW5hZ2VtZW50VG9vbEJhck15Q0FCJzsKCiAgICAjIGhhbmRsZSB1cGRhdGUgb2YgYSBDQUIKICAgIGlmICggJFBhcmFte0V2ZW50fSBlcSAnQ2hhbmdlQ0FCVXBkYXRlUG9zdCcgKSB7CgogICAgICAgICMgZG8gbm90aGluZyBpZiB0aGUgQ0FCQWdlbnRzIHdlcmUgbm90IHVwZGF0ZWQKICAgICAgICByZXR1cm4gMSBpZiAhJFBhcmFte0RhdGF9LT57Q0FCQWdlbnRzfTsKCiAgICAgICAgIyBtYWtlIHN1cmUgdGhlIGRhdGEgaXMgaW5pdGlhbGl6ZWQKICAgICAgICAkUGFyYW17RGF0YX0tPntDQUJBZ2VudHN9IHx8PSBbXTsKICAgICAgICAkUGFyYW17RGF0YX0tPntPbGRDaGFuZ2VDQUJEYXRhfS0+e0NBQkFnZW50c30gfHw9IFtdOwoKICAgICAgICAjIGJ1aWxkIGxvb2t1cCBoYXNoIGZvciBDQUJBZ2VudHMgZnJvbSAibmV3IiBhbmQgIm9sZCIgQWdlbnRzCiAgICAgICAgbXkgJUNoYW5nZWRDQUJBZ2VudHNMb29rdXA7CiAgICAgICAgZm9yIG15ICRDQUJBZ2VudCAoCiAgICAgICAgICAgIEB7ICRQYXJhbXtEYXRhfS0+e0NBQkFnZW50c30gfSwKICAgICAgICAgICAgQHsgJFBhcmFte0RhdGF9LT57T2xkQ2hhbmdlQ0FCRGF0YX0tPntDQUJBZ2VudHN9IH0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJENoYW5nZWRDQUJBZ2VudHNMb29rdXB7JENBQkFnZW50fSsrOwogICAgICAgIH0KCiAgICAgICAgIyBmaW5kIHRoZSBDQUJBZ2VudHMgd2hpY2ggaGF2ZSBiZWVuIGNoYW5nZWQsIHdoaWNoIGFyZSBvbmx5IGFnZW50cyB3aXRoIGEgY291bnQgb2YgZXhhY3RseSBvbmUKICAgICAgICBteSBAQ2hhbmdlZENBQkFnZW50czsKICAgICAgICBmb3IgbXkgJENBQkFnZW50ICggc29ydCBrZXlzICVDaGFuZ2VkQ0FCQWdlbnRzTG9va3VwICkgewogICAgICAgICAgICBpZiAoICRDaGFuZ2VkQ0FCQWdlbnRzTG9va3VweyRDQUJBZ2VudH0gPT0gMSApIHsKICAgICAgICAgICAgICAgIHB1c2ggQENoYW5nZWRDQUJBZ2VudHMsICRDQUJBZ2VudDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBkZWxldGUgY2FjaGUgZm9yIGFsbCBjaGFuZ2VkIENBQkFnZW50cwogICAgICAgIGZvciBteSAkQ0FCQWdlbnQgKEBDaGFuZ2VkQ0FCQWdlbnRzKSB7CgogICAgICAgICAgICAjIHNldCB0aGUgY2FjaGUgdHlwZQogICAgICAgICAgICBteSAkQ2FjaGVUeXBlID0gJENhY2hlVHlwZVByZWZpeCAuICRDQUJBZ2VudDsKCiAgICAgICAgICAgICMgZGVsZXRlIHRoZSBjYWNoZQogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCgKICAgICAgICAgICAgICAgIFR5cGUgPT4gJENhY2hlVHlwZSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgaGFuZGxlIGRlbGV0aW5nIGEgQ0FCCiAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gZXEgJ0NoYW5nZUNBQkRlbGV0ZVBvc3QnICkgewoKICAgICAgICAjIGRvIG5vdGhpbmcgaWYgdGhlcmUgd2VyZSBubyBDQUJBZ2VudHMgc2V0CiAgICAgICAgcmV0dXJuIDEgaWYgISRQYXJhbXtEYXRhfS0+e09sZENoYW5nZUNBQkRhdGF9LT57Q0FCQWdlbnRzfTsKICAgICAgICByZXR1cm4gMSBpZiAhQHsgJFBhcmFte0RhdGF9LT57T2xkQ2hhbmdlQ0FCRGF0YX0tPntDQUJBZ2VudHN9IH07CgogICAgICAgICMgZGVsZXRlIGNhY2hlIGZvciBhbGwgQ0FCQWdlbnRzCiAgICAgICAgZm9yIG15ICRDQUJBZ2VudCAoIEB7ICRQYXJhbXtEYXRhfS0+e09sZENoYW5nZUNBQkRhdGF9LT57Q0FCQWdlbnRzfSB9ICkgewoKICAgICAgICAgICAgIyBzZXQgdGhlIGNhY2hlIHR5cGUKICAgICAgICAgICAgbXkgJENhY2hlVHlwZSA9ICRDYWNoZVR5cGVQcmVmaXggLiAkQ0FCQWdlbnQ7CgogICAgICAgICAgICAjIGRlbGV0ZSB0aGUgY2FjaGUKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoCiAgICAgICAgICAgICAgICBUeXBlID0+ICRDYWNoZVR5cGUsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Event/ToolBarMyChangesCacheDelete.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6RXZlbnQ6OlRvb2xCYXJNeUNoYW5nZXNDYWNoZURlbGV0ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhEYXRhIEV2ZW50IENvbmZpZyBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IHRoZSBjYWNoZSB0eXBlIHByZWZpeAogICAgbXkgJENhY2hlVHlwZVByZWZpeCA9ICdJVFNNQ2hhbmdlTWFuYWdlbWVudFRvb2xCYXJNeUNoYW5nZXMnOwoKICAgICMgaGFuZGxlIGFkZGluZyBvZiBhIGNoYW5nZQogICAgaWYgKCAkUGFyYW17RXZlbnR9IGVxICdDaGFuZ2VBZGRQb3N0JyApIHsKCiAgICAgICAgIyBkbyBub3RoaW5nIGlmIHRoZSBDaGFuZ2VCdWlsZGVySUQgd2FzIG5vdCBzZXQKICAgICAgICByZXR1cm4gMSBpZiAhJFBhcmFte0RhdGF9LT57Q2hhbmdlQnVpbGRlcklEfTsKCiAgICAgICAgIyBzZXQgdGhlIGNhY2hlIHR5cGUKICAgICAgICBteSAkQ2FjaGVUeXBlID0gJENhY2hlVHlwZVByZWZpeCAuICRQYXJhbXtEYXRhfS0+e0NoYW5nZUJ1aWxkZXJJRH07CgogICAgICAgICMgZGVsZXRlIHRoZSBjYWNoZQogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgICAgICBUeXBlID0+ICRDYWNoZVR5cGUsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBoYW5kbGUgdXBkYXRlIG9mIGEgY2hhbmdlCiAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gZXEgJ0NoYW5nZVVwZGF0ZVBvc3QnICkgewoKICAgICAgICAjIG1ha2Ugc3VyZSB0aGUgZGF0YSBpcyBpbml0aWFsaXplZAogICAgICAgICRQYXJhbXtEYXRhfS0+e0NoYW5nZUJ1aWxkZXJJRH0gfHw9ICcnOwogICAgICAgICRQYXJhbXtEYXRhfS0+e09sZENoYW5nZURhdGF9LT57Q2hhbmdlQnVpbGRlcklEfSB8fD0gJyc7CgogICAgICAgICMgZG8gbm90aGluZyBpZiB0aGUgQ2hhbmdlQnVpbGRlcklEIGRpZCBub3QgY2hhbmdlCiAgICAgICAgcmV0dXJuIDEKICAgICAgICAgICAgaWYgJFBhcmFte0RhdGF9LT57Q2hhbmdlQnVpbGRlcklEfSBlcSAkUGFyYW17RGF0YX0tPntPbGRDaGFuZ2VEYXRhfS0+e0NoYW5nZUJ1aWxkZXJJRH07CgogICAgICAgICMgc2V0IHRoZSBjYWNoZSB0eXBlIHBvc3RmaXgKICAgICAgICBteSBAQ2FjaGVUeXBlUG9zdGZpeGVzID0gKAogICAgICAgICAgICAkUGFyYW17RGF0YX0tPntDaGFuZ2VCdWlsZGVySUR9LAogICAgICAgICAgICAkUGFyYW17RGF0YX0tPntPbGRDaGFuZ2VEYXRhfS0+e0NoYW5nZUJ1aWxkZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGhlIGNhY2hlIGZvciB0aGUgb2xkIGFuZCB0aGUgY3VycmVudCBjaGFuZ2UgYnVpbGRlcgogICAgICAgIENBQ0hFVFlQRVBPU1RGSVg6CiAgICAgICAgZm9yIG15ICRDYWNoZVR5cGVQb3N0Zml4IChAQ2FjaGVUeXBlUG9zdGZpeGVzKSB7CgogICAgICAgICAgICAjIGRvIG5vdGhpbmcgaWYgdGhlIENoYW5nZUJ1aWxkZXJJRCB3YXMgbm90IHNldAogICAgICAgICAgICBuZXh0IENBQ0hFVFlQRVBPU1RGSVggaWYgISRDYWNoZVR5cGVQb3N0Zml4OwoKICAgICAgICAgICAgIyBzZXQgdGhlIGNhY2hlIHR5cGUKICAgICAgICAgICAgbXkgJENhY2hlVHlwZSA9ICRDYWNoZVR5cGVQcmVmaXggLiAkQ2FjaGVUeXBlUG9zdGZpeDsKCiAgICAgICAgICAgICMgZGVsZXRlIHRoZSBjYWNoZQogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCgKICAgICAgICAgICAgICAgIFR5cGUgPT4gJENhY2hlVHlwZSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgaGFuZGxlIGRlbGV0aW5nIGEgY2hhbmdlCiAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gZXEgJ0NoYW5nZURlbGV0ZVBvc3QnICkgewoKICAgICAgICAjIGRvIG5vdGhpbmcgaWYgdGhlIENoYW5nZUJ1aWxkZXJJRCB3YXMgbm90IHNldAogICAgICAgIHJldHVybiAxIGlmICEkUGFyYW17RGF0YX0tPntPbGRDaGFuZ2VEYXRhfS0+e0NoYW5nZUJ1aWxkZXJJRH07CgogICAgICAgICMgc2V0IHRoZSBjYWNoZSB0eXBlCiAgICAgICAgbXkgJENhY2hlVHlwZSA9ICRDYWNoZVR5cGVQcmVmaXggLiAkUGFyYW17RGF0YX0tPntPbGRDaGFuZ2VEYXRhfS0+e0NoYW5nZUJ1aWxkZXJJRH07CgogICAgICAgICMgZGVsZXRlIHRoZSBjYWNoZQogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgICAgICBUeXBlID0+ICRDYWNoZVR5cGUsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMCondition/Action.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6QWN0aW9uOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uOjpBY3Rpb24gLSBjb25kaXRpb24gYWN0aW9uIGxpYgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBBY3Rpb25BZGQoKQoKQWRkIGEgbmV3IGNvbmRpdGlvbiBhY3Rpb24uCgogICAgbXkgJEFjdGlvbklEID0gJENvbmRpdGlvbk9iamVjdC0+QWN0aW9uQWRkKAogICAgICAgIENvbmRpdGlvbklEICA9PiAxMjMsCiAgICAgICAgQWN0aW9uTnVtYmVyID0+IDUsCiAgICAgICAgT2JqZWN0SUQgICAgID0+IDIzNCwKICAgICAgICBBdHRyaWJ1dGVJRCAgPT4gMzQ1LAogICAgICAgIE9wZXJhdG9ySUQgICA9PiA0NTYsCiAgICAgICAgU2VsZWN0b3IgICAgID0+IDEyMzQsCiAgICAgICAgQWN0aW9uVmFsdWUgID0+ICdyZWplY3RlZCcsCiAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEFjdGlvbkFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDb25kaXRpb25JRCBPYmplY3RJRCBBdHRyaWJ1dGVJRCBPcGVyYXRvcklEIFNlbGVjdG9yIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBoYW5kbGUgJ0FjdGlvblZhbHVlJyBpbiBhIHNwZWNpYWwgd2F5CiAgICBpZiAoICFleGlzdHMgJFBhcmFte0FjdGlvblZhbHVlfSB8fCAhZGVmaW5lZCAkUGFyYW17QWN0aW9uVmFsdWV9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBBY3Rpb25WYWx1ZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGNvbmRpdGlvbiBmb3IgZXZlbnQgaGFuZGxlcgogICAgbXkgJENvbmRpdGlvbiA9ICRTZWxmLT5Db25kaXRpb25HZXQoCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBjb25kaXRpb24KICAgIHJldHVybiBpZiAhJENvbmRpdGlvbjsKCiAgICAjIHRyaWdnZXIgQWN0aW9uQWRkUHJlLUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdBY3Rpb25BZGRQcmUnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ29uZGl0aW9uLT57Q2hhbmdlSUR9LAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBkZWZhdWx0IGFjdGlvbiBudW1iZXIgaWYgbm90IGdpdmVuCiAgICBteSAkQWN0aW9uTnVtYmVyID0gZGVsZXRlICRQYXJhbXtBY3Rpb25OdW1iZXJ9OwogICAgaWYgKCAhJEFjdGlvbk51bWJlciApIHsKICAgICAgICAkQWN0aW9uTnVtYmVyID0gJFNlbGYtPl9DcmVhdGVOZXdBY3Rpb25OdW1iZXIoJVBhcmFtKTsKICAgIH0KCiAgICAjIGFkZCBuZXcgYWN0aW9uIG5hbWUgdG8gZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnSU5TRVJUIElOVE8gY29uZGl0aW9uX2FjdGlvbiAnCiAgICAgICAgICAgIC4gJyhjb25kaXRpb25faWQsIGFjdGlvbl9udW1iZXIsIG9iamVjdF9pZCwgJwogICAgICAgICAgICAuICdhdHRyaWJ1dGVfaWQsIG9wZXJhdG9yX2lkLCBzZWxlY3RvciwgJwogICAgICAgICAgICAuICcgYWN0aW9uX3ZhbHVlKSAnCiAgICAgICAgICAgIC4gJ1ZBTFVFUyAoPywgPywgPywgPywgPywgPywgPyknLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte0NvbmRpdGlvbklEfSwgXCRBY3Rpb25OdW1iZXIsICAgICAgXCRQYXJhbXtPYmplY3RJRH0sCiAgICAgICAgICAgIFwkUGFyYW17QXR0cmlidXRlSUR9LCBcJFBhcmFte09wZXJhdG9ySUR9LCBcJFBhcmFte1NlbGVjdG9yfSwKICAgICAgICAgICAgXCRQYXJhbXtBY3Rpb25WYWx1ZX0sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBwcmVwYXJlIFNRTCBzdGF0ZW1lbnQKICAgIG15ICRBY3Rpb25JRDsKCiAgICAjIHRoaXMgaXMgaW1wb3J0YW50IGZvciBvcmFjbGUgZm9yIHdoaWNoIGFuIGVtcHR5IHN0cmluZyBhbmQgTlVMTCBpcyB0aGUgc2FtZSEKICAgIGlmICggJFNlbGYtPntEQlR5cGV9IGVxICdvcmFjbGUnICYmICRQYXJhbXtBY3Rpb25WYWx1ZX0gZXEgJycgKSB7CgogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnU0VMRUNUIGlkIEZST00gY29uZGl0aW9uX2FjdGlvbiAnCiAgICAgICAgICAgICAgICAuICdXSEVSRSBjb25kaXRpb25faWQgPSA/IEFORCBhY3Rpb25fbnVtYmVyID0gPyBBTkQgb2JqZWN0X2lkID0gPyAnCiAgICAgICAgICAgICAgICAuICdBTkQgYXR0cmlidXRlX2lkID0gPyBBTkQgb3BlcmF0b3JfaWQgPSA/IEFORCBzZWxlY3RvciA9ID8gJwogICAgICAgICAgICAgICAgLiAnQU5EIGFjdGlvbl92YWx1ZSBJUyBOVUxMJywKICAgICAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgICAgICBcJFBhcmFte0NvbmRpdGlvbklEfSwgXCRBY3Rpb25OdW1iZXIsICAgICAgXCRQYXJhbXtPYmplY3RJRH0sCiAgICAgICAgICAgICAgICBcJFBhcmFte0F0dHJpYnV0ZUlEfSwgXCRQYXJhbXtPcGVyYXRvcklEfSwgXCRQYXJhbXtTZWxlY3Rvcn0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGZvciBhbGwgb3RoZXIgZGF0YWJhc2VzIEFORCBmb3Igb3JhY2xlIElGIHRoZSBhY3Rpb24gdmFsdWUgaXMgTk9UIGFuIGVtcHR5IHN0cmluZwogICAgZWxzZSB7CiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQgRlJPTSBjb25kaXRpb25fYWN0aW9uICcKICAgICAgICAgICAgICAgIC4gJ1dIRVJFIGNvbmRpdGlvbl9pZCA9ID8gQU5EIGFjdGlvbl9udW1iZXIgPSA/IEFORCBvYmplY3RfaWQgPSA/ICcKICAgICAgICAgICAgICAgIC4gJ0FORCBhdHRyaWJ1dGVfaWQgPSA/IEFORCBvcGVyYXRvcl9pZCA9ID8gQU5EIHNlbGVjdG9yID0gPyAnCiAgICAgICAgICAgICAgICAuICdBTkQgYWN0aW9uX3ZhbHVlID0gPycsCiAgICAgICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICAgICAgXCRQYXJhbXtDb25kaXRpb25JRH0sIFwkQWN0aW9uTnVtYmVyLCAgICAgIFwkUGFyYW17T2JqZWN0SUR9LAogICAgICAgICAgICAgICAgXCRQYXJhbXtBdHRyaWJ1dGVJRH0sIFwkUGFyYW17T3BlcmF0b3JJRH0sIFwkUGFyYW17U2VsZWN0b3J9LAogICAgICAgICAgICAgICAgXCRQYXJhbXtBY3Rpb25WYWx1ZX0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBpZCBvZiBjcmVhdGVkIGFjdGlvbgogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQWN0aW9uSUQgPSAkUm93WzBdOwogICAgfQoKICAgICMgY2hlY2sgaWYgYWN0aW9uIGNvdWxkIGJlIGFkZGVkCiAgICBpZiAoICEkQWN0aW9uSUQgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJBY3Rpb25BZGQoKSBmYWlsZWQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkRlbGV0ZSgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICdBY3Rpb25MaXN0OjpDb25kaXRpb25JRDo6JyAuICRQYXJhbXtDb25kaXRpb25JRH0sCiAgICApOwoKICAgICMgdHJpZ2dlciBBY3Rpb25BZGRQb3N0LUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdBY3Rpb25BZGRQb3N0JywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENvbmRpdGlvbi0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgQWN0aW9uSUQgPT4gJEFjdGlvbklELAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gJEFjdGlvbklEOwp9Cgo9aGVhZDIgQWN0aW9uVXBkYXRlKCkKClVwZGF0ZSBhIGNvbmRpdGlvbiBhY3Rpb24uCgogICAgbXkgJFN1Y2Nlc3MgPSAkQ29uZGl0aW9uT2JqZWN0LT5BY3Rpb25VcGRhdGUoCiAgICAgICAgQWN0aW9uSUQgICAgID0+IDEyMzQsCiAgICAgICAgQWN0aW9uTnVtYmVyID0+IDEsICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIE9iamVjdElEICAgICA9PiAyMzQsICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBBdHRyaWJ1dGVJRCAgPT4gMzQ1LCAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgT3BlcmF0b3JJRCAgID0+IDQ1NiwgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFNlbGVjdG9yICAgICA9PiAxMjM0JywgICAgICAjIChvcHRpb25hbCkKICAgICAgICBBY3Rpb25WYWx1ZSAgPT4gJ3JlamVjdGVkJywgIyAob3B0aW9uYWwpCiAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEFjdGlvblVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhBY3Rpb25JRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGFjdGlvbgogICAgbXkgJEFjdGlvbiA9ICRTZWxmLT5BY3Rpb25HZXQoCiAgICAgICAgQWN0aW9uSUQgPT4gJFBhcmFte0FjdGlvbklEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBhY3Rpb24KICAgIHJldHVybiBpZiAhJEFjdGlvbjsKCiAgICAjIGdldCBjb25kaXRpb24gZm9yIGV2ZW50IGhhbmRsZXIKICAgIG15ICRDb25kaXRpb24gPSAkU2VsZi0+Q29uZGl0aW9uR2V0KAogICAgICAgIENvbmRpdGlvbklEID0+ICRBY3Rpb24tPntDb25kaXRpb25JRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgY29uZGl0aW9uCiAgICByZXR1cm4gaWYgISRDb25kaXRpb247CgogICAgIyB0cmlnZ2VyIEFjdGlvblVwZGF0ZVByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnQWN0aW9uVXBkYXRlUHJlJywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENvbmRpdGlvbi0+e0NoYW5nZUlEfSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBtYXAgdXBkYXRlIGF0dHJpYnV0ZXMgdG8gY29sdW1uIG5hbWVzCiAgICBteSAlQXR0cmlidXRlID0gKAogICAgICAgIEFjdGlvbk51bWJlciA9PiAnYWN0aW9uX251bWJlcicsCiAgICAgICAgT2JqZWN0SUQgICAgID0+ICdvYmplY3RfaWQnLAogICAgICAgIEF0dHJpYnV0ZUlEICA9PiAnYXR0cmlidXRlX2lkJywKICAgICAgICBPcGVyYXRvcklEICAgPT4gJ29wZXJhdG9yX2lkJywKICAgICAgICBTZWxlY3RvciAgICAgPT4gJ3NlbGVjdG9yJywKICAgICAgICBBY3Rpb25WYWx1ZSAgPT4gJ2FjdGlvbl92YWx1ZScsCiAgICApOwoKICAgICMgYnVpbGQgU1FMIHRvIHVwZGF0ZSBhY3Rpb24KICAgIG15ICRTUUwgPSAnVVBEQVRFIGNvbmRpdGlvbl9hY3Rpb24gU0VUICc7CiAgICBteSBAQmluZDsKCiAgICBBVFRSSUJVVEU6CiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAlQXR0cmlidXRlICkgewoKICAgICAgICAjIHByZXNlcnZlIHRoZSBvbGQgdmFsdWUsIHdoZW4gdGhlIGNvbHVtbiBpc24ndCBpbiBmdW5jdGlvbiBwYXJhbWV0ZXJzCiAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgIWV4aXN0cyAkUGFyYW17JEF0dHJpYnV0ZX07CiAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgIWRlZmluZWQgJFBhcmFteyRBdHRyaWJ1dGV9OwoKICAgICAgICAjIHBhcmFtIGNoZWNraW5nIGhhcyBhbHJlYWR5IGJlZW4gZG9uZSwgc28gdGhpcyBpcyBzYWZlCiAgICAgICAgJFNRTCAuPSAiJEF0dHJpYnV0ZXskQXR0cmlidXRlfSA9ID8sICI7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXskQXR0cmlidXRlfTsKICAgIH0KCiAgICAjIHNldCBjb25kaXRpb24gSUQgdG8gYWxsb3cgdHJhaWxpbmcgY29tbWEgb2YgcHJldmlvdXMgbG9vcAogICAgJFNRTCAuPSAnIGNvbmRpdGlvbl9pZCA9IGNvbmRpdGlvbl9pZCAnOwoKICAgICMgc2V0IG1hdGNoaW5nIG9mIFNRTCBzdGF0ZW1lbnQKICAgICRTUUwgLj0gJ1dIRVJFIGlkID0gPyc7CiAgICBwdXNoIEBCaW5kLCBcJFBhcmFte0FjdGlvbklEfTsKCiAgICAjIHVwZGF0ZSBhY3Rpb24KICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFxAQmluZCwKICAgICk7CgogICAgIyBkZWxldGUgY2FjaGUKICAgIGZvciBteSAkS2V5ICgKICAgICAgICAnQWN0aW9uTGlzdDo6Q29uZGl0aW9uSUQ6OicgLiAkQWN0aW9uLT57Q29uZGl0aW9uSUR9LAogICAgICAgICdBY3Rpb25HZXQ6OicgLiAkUGFyYW17QWN0aW9uSUR9LAogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgIyB0cmlnZ2VyIEFjdGlvblVwZGF0ZVBvc3QtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ0FjdGlvblVwZGF0ZVBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBDaGFuZ2VJRCAgICAgID0+ICRDb25kaXRpb24tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIE9sZEFjdGlvbkRhdGEgPT4gJEFjdGlvbiwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBBY3Rpb25HZXQoKQoKR2V0IGEgY29uZGl0aW9uIGFjdGlvbiBmb3IgYSBnaXZlbiBhY3Rpb24gaWQuClJldHVybnMgYSBoYXNoIHJlZmVyZW5jZSBvZiB0aGUgYWN0aW9uIGRhdGEuCgogICAgbXkgJENvbmRpdGlvbkFjdGlvblJlZiA9ICRDb25kaXRpb25PYmplY3QtPkFjdGlvbkdldCgKICAgICAgICBBY3Rpb25JRCA9PiAxMjM0LAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKVGhlIHJldHVybmVkIGhhc2ggcmVmZXJlbmNlIGNvbnRhaW5zIGZvbGxvd2luZyBlbGVtZW50czoKCiAgICAkQ29uZGl0aW9uQWN0aW9ue0FjdGlvbklEfQogICAgJENvbmRpdGlvbkFjdGlvbntDb25kaXRpb25JRH0KICAgICRDb25kaXRpb25BY3Rpb257QWN0aW9uTnVtYmVyfQogICAgJENvbmRpdGlvbkFjdGlvbntPYmplY3RJRH0KICAgICRDb25kaXRpb25BY3Rpb257QXR0cmlidXRlSUR9CiAgICAkQ29uZGl0aW9uQWN0aW9ue09wZXJhdG9ySUR9CiAgICAkQ29uZGl0aW9uQWN0aW9ue1NlbGVjdG9yfQogICAgJENvbmRpdGlvbkFjdGlvbntBY3Rpb25WYWx1ZX0KCj1jdXQKCnN1YiBBY3Rpb25HZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoQWN0aW9uSUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGNhY2hlCiAgICBteSAkQ2FjaGVLZXkgPSAnQWN0aW9uR2V0OjonIC4gJFBhcmFte0FjdGlvbklEfTsKICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwogICAgcmV0dXJuICRDYWNoZSBpZiAkQ2FjaGU7CgogICAgIyBwcmVwYXJlIFNRTCBzdGF0ZW1lbnQKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQsIGNvbmRpdGlvbl9pZCwgYWN0aW9uX251bWJlciwgb2JqZWN0X2lkLCAnCiAgICAgICAgICAgIC4gJ2F0dHJpYnV0ZV9pZCwgb3BlcmF0b3JfaWQsIHNlbGVjdG9yLCBhY3Rpb25fdmFsdWUgJwogICAgICAgICAgICAuICdGUk9NIGNvbmRpdGlvbl9hY3Rpb24gV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17QWN0aW9uSUR9IF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAlQWN0aW9uRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJEFjdGlvbkRhdGF7QWN0aW9uSUR9ICAgICA9ICRSb3dbMF07CiAgICAgICAgJEFjdGlvbkRhdGF7Q29uZGl0aW9uSUR9ICA9ICRSb3dbMV07CiAgICAgICAgJEFjdGlvbkRhdGF7QWN0aW9uTnVtYmVyfSA9ICRSb3dbMl07CiAgICAgICAgJEFjdGlvbkRhdGF7T2JqZWN0SUR9ICAgICA9ICRSb3dbM107CiAgICAgICAgJEFjdGlvbkRhdGF7QXR0cmlidXRlSUR9ICA9ICRSb3dbNF07CiAgICAgICAgJEFjdGlvbkRhdGF7T3BlcmF0b3JJRH0gICA9ICRSb3dbNV07CiAgICAgICAgJEFjdGlvbkRhdGF7U2VsZWN0b3J9ICAgICA9ICRSb3dbNl07CgogICAgICAgICMgdGhpcyBpcyBpbXBvcnRhbnQgZm9yIG9yYWNsZSBmb3Igd2hpY2ggYW4gZW1wdHkgc3RyaW5nIGFuZCBOVUxMIGlzIHRoZSBzYW1lIQogICAgICAgICRBY3Rpb25EYXRhe0FjdGlvblZhbHVlfSA9ICRSb3dbN10gLy8gJyc7CiAgICB9CgogICAgIyBjaGVjayBlcnJvcgogICAgaWYgKCAhJUFjdGlvbkRhdGEgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJBY3Rpb25JRCAkUGFyYW17QWN0aW9uSUR9IGRvZXMgbm90IGV4aXN0ISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICBWYWx1ZSA9PiBcJUFjdGlvbkRhdGEsCiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICApOwoKICAgIHJldHVybiBcJUFjdGlvbkRhdGE7Cn0KCj1oZWFkMiBBY3Rpb25MaXN0KCkKClJldHVybnMgYSBzb3J0ZWQgbGlzdCBvZiBhbGwgY29uZGl0aW9uIGFjdGlvbgppZHMgZm9yIGEgZ2l2ZW4gQ29uZGl0aW9uSUQgYXMgYXJyYXkgcmVmZXJlbmNlLgoKICAgIG15ICRDb25kaXRpb25BY3Rpb25JRHNSZWYgPSAkQ29uZGl0aW9uT2JqZWN0LT5BY3Rpb25MaXN0KAogICAgICAgIENvbmRpdGlvbklEID0+IDEyMzQsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQWN0aW9uTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDb25kaXRpb25JRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgY2FjaGUKICAgIG15ICRDYWNoZUtleSA9ICdBY3Rpb25MaXN0OjpDb25kaXRpb25JRDo6JyAuICRQYXJhbXtDb25kaXRpb25JRH07CiAgICBteSAkQ2FjaGUgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5LAogICAgKTsKICAgIHJldHVybiAkQ2FjaGUgaWYgJENhY2hlOwoKICAgICMgcHJlcGFyZSBTUUwgc3RhdGVtZW50CiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIGlkIEZST00gY29uZGl0aW9uX2FjdGlvbiAnCiAgICAgICAgICAgIC4gJ1dIRVJFIGNvbmRpdGlvbl9pZCA9ID8gJwogICAgICAgICAgICAuICdPUkRFUiBCWSBhY3Rpb25fbnVtYmVyIEFTQycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17Q29uZGl0aW9uSUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgQEFjdGlvbkxpc3Q7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQEFjdGlvbkxpc3QsICRSb3dbMF07CiAgICB9CgogICAgIyBzZXQgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICBWYWx1ZSA9PiBcQEFjdGlvbkxpc3QsCiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICApOwoKICAgIHJldHVybiBcQEFjdGlvbkxpc3Q7Cn0KCj1oZWFkMiBBY3Rpb25EZWxldGUoKQoKRGVsZXRlcyBhIGNvbmRpdGlvbiBhY3Rpb24uCgogICAgbXkgJFN1Y2Nlc3MgPSAkQ29uZGl0aW9uT2JqZWN0LT5BY3Rpb25EZWxldGUoCiAgICAgICAgQWN0aW9uSUQgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEFjdGlvbkRlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhBY3Rpb25JRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGFjdGlvbgogICAgbXkgJEFjdGlvbiA9ICRTZWxmLT5BY3Rpb25HZXQoCiAgICAgICAgQWN0aW9uSUQgPT4gJFBhcmFte0FjdGlvbklEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBhY3Rpb24KICAgIHJldHVybiBpZiAhJEFjdGlvbjsKCiAgICAjIGdldCBjb25kaXRpb24gZm9yIGV2ZW50IGhhbmRsZXIKICAgIG15ICRDb25kaXRpb24gPSAkU2VsZi0+Q29uZGl0aW9uR2V0KAogICAgICAgIENvbmRpdGlvbklEID0+ICRBY3Rpb24tPntDb25kaXRpb25JRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgY29uZGl0aW9uCiAgICByZXR1cm4gaWYgISRDb25kaXRpb247CgogICAgIyB0cmlnZ2VyIEFjdGlvbkRlbGV0ZVByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnQWN0aW9uRGVsZXRlUHJlJywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENvbmRpdGlvbi0+e0NoYW5nZUlEfSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBkZWxldGUgY29uZGl0aW9uIGFjdGlvbiBmcm9tIGRhdGFiYXNlCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJ0RFTEVURSBGUk9NIGNvbmRpdGlvbl9hY3Rpb24gJwogICAgICAgICAgICAuICdXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0FjdGlvbklEfSBdLAogICAgKTsKCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgZm9yIG15ICRLZXkgKAogICAgICAgICdBY3Rpb25MaXN0OjpDb25kaXRpb25JRDo6JyAuICRBY3Rpb24tPntDb25kaXRpb25JRH0sCiAgICAgICAgJ0FjdGlvbkdldDo6JyAuICRQYXJhbXtBY3Rpb25JRH0sCiAgICAgICAgKQogICAgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5EZWxldGUoCiAgICAgICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkgID0+ICRLZXksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHRyaWdnZXIgQWN0aW9uRGVsZXRlUG9zdC1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnQWN0aW9uRGVsZXRlUG9zdCcsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDb25kaXRpb24tPntDaGFuZ2VJRH0sCiAgICAgICAgfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQWN0aW9uRGVsZXRlQWxsKCkKCkRlbGV0ZXMgYWxsIGNvbmRpdGlvbiBhY3Rpb25zIGZvciBhIGdpdmVuIGNvbmRpdGlvbiBpZC4KCiAgICBteSAkU3VjY2VzcyA9ICRDb25kaXRpb25PYmplY3QtPkFjdGlvbkRlbGV0ZUFsbCgKICAgICAgICBDb25kaXRpb25JRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQWN0aW9uRGVsZXRlQWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENvbmRpdGlvbklEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgY29uZGl0aW9uIGZvciBldmVudCBoYW5kbGVyCiAgICBteSAkQ29uZGl0aW9uID0gJFNlbGYtPkNvbmRpdGlvbkdldCgKICAgICAgICBDb25kaXRpb25JRCA9PiAkUGFyYW17Q29uZGl0aW9uSUR9LAogICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGNvbmRpdGlvbgogICAgcmV0dXJuIGlmICEkQ29uZGl0aW9uOwoKICAgICMgZ2V0IGFsbCBhY3Rpb25zIGZvciB0aGUgZ2l2ZW4gY29uZGl0aW9uIGlkCiAgICBteSAkQWN0aW9uSURzUmVmID0gJFNlbGYtPkFjdGlvbkxpc3QoCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyB0cmlnZ2VyIEFjdGlvbkRlbGV0ZUFsbFByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnQWN0aW9uRGVsZXRlQWxsUHJlJywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQ2hhbmdlSUQgICAgPT4gJENvbmRpdGlvbi0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBkZWxldGUgY29uZGl0aW9uIGFjdGlvbnMgZnJvbSBkYXRhYmFzZQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICdERUxFVEUgRlJPTSBjb25kaXRpb25fYWN0aW9uICcKICAgICAgICAgICAgLiAnV0hFUkUgY29uZGl0aW9uX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17Q29uZGl0aW9uSUR9IF0sCiAgICApOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgPT4gJ0FjdGlvbkxpc3Q6OkNvbmRpdGlvbklEOjonIC4gJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICk7CgogICAgIyBkZWxldGUgY2FjaGUKICAgIGlmICggJEFjdGlvbklEc1JlZiAmJiBAeyRBY3Rpb25JRHNSZWZ9ICkgewogICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBAeyRBY3Rpb25JRHNSZWZ9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgICAgICBLZXkgID0+ICdBY3Rpb25HZXQ6OicgLiAkQWN0aW9uSUQsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgdHJpZ2dlciBBY3Rpb25EZWxldGVBbGxQb3N0LUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdBY3Rpb25EZWxldGVBbGxQb3N0JywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQ2hhbmdlSUQgICAgPT4gJENvbmRpdGlvbi0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBBY3Rpb25FeGVjdXRlKCkKClJldHVybnMgdGhlIHN1Y2Nlc3MgdmFsdWUgb2YgdGhlIGV4ZWN1dGlvbiBvZiBhbiBhY3Rpb24uCgogICAgbXkgJFN1Y2Nlc3MgPSAkQ29uZGl0aW9uT2JqZWN0LT5BY3Rpb25FeGVjdXRlKAogICAgICAgIEFjdGlvbklEID0+IDEyMywKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBBY3Rpb25FeGVjdXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEFjdGlvbklEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgYWN0aW9uIGNvbnRlbnQKICAgIG15ICRBY3Rpb24gPSAkU2VsZi0+QWN0aW9uR2V0KAogICAgICAgIEFjdGlvbklEID0+ICRQYXJhbXtBY3Rpb25JRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgYWN0aW9uIGNvbnRlbnQKICAgIHJldHVybiBpZiAhJEFjdGlvbjsKCiAgICAjIGdldCBjb25kaXRpb24gZm9yIGV2ZW50IGhhbmRsZXIKICAgIG15ICRDb25kaXRpb24gPSAkU2VsZi0+Q29uZGl0aW9uR2V0KAogICAgICAgIENvbmRpdGlvbklEID0+ICRBY3Rpb24tPntDb25kaXRpb25JRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgY29uZGl0aW9uCiAgICByZXR1cm4gaWYgISRDb25kaXRpb247CgogICAgIyBnZXQgYWN0aW9uIGF0dHJpYnV0ZXMKICAgIG15ICRBY3Rpb25EYXRhID0gJFNlbGYtPl9BY3Rpb25FeGVjdXRlSW5pdCgKICAgICAgICBBY3Rpb24gPT4gJEFjdGlvbiwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgYWN0aW9uIGF0dHJpYnV0ZXMKICAgIHJldHVybiBpZiAhJEFjdGlvbkRhdGE7CgogICAgIyBkbyBub3QgZXhlY3V0ZSAnbG9jaycgYWN0aW9ucywgdGhleSBhcmUgcGFzc2l2ZSEKICAgIG15IEBPbWl0QWN0aW9ucyA9IHF3KCBsb2NrICk7CiAgICByZXR1cm4gMCBpZiBncmVwIHsgJEFjdGlvbkRhdGEtPntPcGVyYXRvcn0tPntOYW1lfSBlcSAkXyB9IEBPbWl0QWN0aW9uczsKCiAgICAjIHRyaWdnZXIgQWN0aW9uRXhlY3V0ZVByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnQWN0aW9uRXhlY3V0ZVByZScsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICV7JENvbmRpdGlvbn0sCiAgICAgICAgICAgIENvbmRpdGlvbk5hbWUgPT4gJENvbmRpdGlvbi0+e05hbWV9LAogICAgICAgICAgICBDaGFuZ2VJRCAgICAgID0+ICRDb25kaXRpb24tPntDaGFuZ2VJRH0sCiAgICAgICAgfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IG9iamVjdCBuYW1lCiAgICBteSAkT2JqZWN0TmFtZSA9ICRBY3Rpb25EYXRhLT57T2JqZWN0fS0+e05hbWV9OwoKICAgICMgZ2V0IG9iamVjdCBkYXRhCiAgICBteSAkQWN0aW9uT2JqZWN0RGF0YSA9ICRTZWxmLT5PYmplY3REYXRhR2V0KAogICAgICAgIENvbmRpdGlvbklEID0+ICRBY3Rpb24tPntDb25kaXRpb25JRH0sCiAgICAgICAgT2JqZWN0TmFtZSAgPT4gJE9iamVjdE5hbWUsCiAgICAgICAgU2VsZWN0b3IgICAgPT4gJEFjdGlvbi0+e1NlbGVjdG9yfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBmb3IgYWN0aW9uIG9iamVjdCBkYXRhCiAgICAjIG5vIG5lZWQgdG8gZXhlY3V0ZSBvcGVyYXRvciBpZiBpdCBpcyBhbiBlbXB0eSBhcnJheSByZWYKICAgIGlmICgKICAgICAgICAhJEFjdGlvbk9iamVjdERhdGEKICAgICAgICB8fCByZWYgJEFjdGlvbk9iamVjdERhdGEgbmUgJ0FSUkFZJwogICAgICAgIHx8IHJlZiAkQWN0aW9uT2JqZWN0RGF0YSBlcSAnQVJSQVknICYmICFAeyRBY3Rpb25PYmplY3REYXRhfQogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIG9iamVjdCBkYXRhIGZvciAkT2JqZWN0TmFtZSAoJEFjdGlvbi0+e1NlbGVjdG9yfSkgZm91bmQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBhdHRyaWJ1dGUgdHlwZQogICAgbXkgJEF0dHJpYnV0ZVR5cGUgPSAkQWN0aW9uRGF0YS0+e0F0dHJpYnV0ZX0tPntOYW1lfTsKCiAgICAjIGNoZWNrIGF0dHJpYnV0ZSB0eXBlCiAgICBpZiAoICEkQXR0cmlidXRlVHlwZSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIGF0dHJpYnV0ZSAkT2JqZWN0TmFtZSAoJEFjdGlvbi0+e1NlbGVjdG9yfSkgZm91bmQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIGZvciBvYmplY3QgYXR0cmlidXRlCiAgICBmb3IgbXkgJEFjdGlvbk9iamVjdCAoIEB7JEFjdGlvbk9iamVjdERhdGF9ICkgewogICAgICAgIGlmICggIWV4aXN0cyAkQWN0aW9uT2JqZWN0LT57JEF0dHJpYnV0ZVR5cGV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gb2JqZWN0IGF0dHJpYnV0ZSBmb3IgJE9iamVjdE5hbWUgKCRBdHRyaWJ1dGVUeXBlKSBmb3VuZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZGVmaW5lIG9wZXJhdG9yIHZhbHVlcwogICAgbXkgJU9wZXJhdG9yRXhlY3V0ZSA9ICgKICAgICAgICBPcGVyYXRvck5hbWUgPT4gJEFjdGlvbkRhdGEtPntPcGVyYXRvcn0tPntOYW1lfSwKICAgICAgICBPYmplY3REYXRhICAgPT4gJEFjdGlvbk9iamVjdERhdGEsCiAgICAgICAgT2JqZWN0TmFtZSAgID0+ICRPYmplY3ROYW1lLAogICAgICAgIFNlbGVjdG9yICAgICA9PiAkQWN0aW9uLT57U2VsZWN0b3J9LAogICAgICAgIEF0dHJpYnV0ZSAgICA9PiAkQXR0cmlidXRlVHlwZSwKICAgICAgICBBY3Rpb25WYWx1ZSAgPT4gJEFjdGlvbi0+e0FjdGlvblZhbHVlfSwKICAgICAgICBBY3Rpb25JRCAgICAgPT4gJEFjdGlvbi0+e0FjdGlvbklEfSwKICAgICk7CgogICAgIyByZXR1cm4gcmVzdWx0IG9mIHRoZSBhY3Rpb25zIGV4ZWN1dGlvbgogICAgbXkgJFJlc3VsdCA9ICRTZWxmLT5PcGVyYXRvckV4ZWN1dGUoCiAgICAgICAgJU9wZXJhdG9yRXhlY3V0ZSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IG5pY2UgYWN0aW9uIHJlc3VsdAogICAgbXkgJEFjdGlvblJlc3VsdCA9ICgkUmVzdWx0KSA/ICdzdWNjZXNzZnVsbHknIDogJ3Vuc3VjY2Vzc2Z1bGx5JzsKCiAgICAjIHRyaWdnZXIgQWN0aW9uRXhlY3V0ZVBvc3QtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ0FjdGlvbkV4ZWN1dGVQb3N0JywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXskQ29uZGl0aW9ufSwKICAgICAgICAgICAgQ29uZGl0aW9uTmFtZSA9PiAkQ29uZGl0aW9uLT57TmFtZX0sCiAgICAgICAgICAgICVPcGVyYXRvckV4ZWN1dGUsCiAgICAgICAgICAgIENoYW5nZUlEICAgICA9PiAkQ29uZGl0aW9uLT57Q2hhbmdlSUR9LAogICAgICAgICAgICBBY3Rpb25SZXN1bHQgPT4gJEFjdGlvblJlc3VsdCwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyByZXR1cm4gcmVzdWx0IG9mIHRoZSBhY3Rpb25zIGV4ZWN1dGlvbgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCj1oZWFkMSBQUklWQVRFIElOVEVSRkFDRQoKPWhlYWQyIF9BY3Rpb25FeGVjdXRlSW5pdCgpCgpSZXR1cm5zIG9iamVjdCwgYXR0cmlidXRlIGFuZCBvcGVyYXRvciBvZiBhIGdpdmVuIGFjdGlvbi4KCiAgICBteSAkQWN0aW9uRGF0YSA9ICRDb25kaXRpb25PYmplY3QtPl9BY3Rpb25FeGVjdXRlSW5pdCgKICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblJlZiwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgX0FjdGlvbkV4ZWN1dGVJbml0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBleHRyYWN0IGFjdGlvbgogICAgbXkgJEFjdGlvbiA9ICRQYXJhbXtBY3Rpb259OwoKICAgICMgZGVjbGFyZSBhY3Rpb24gZGF0YQogICAgbXkgJUFjdGlvbkRhdGE7CgogICAgIyBnZXQgb2JqZWN0IGRhdGEKICAgICRBY3Rpb25EYXRhe09iamVjdH0gPSAkU2VsZi0+T2JqZWN0R2V0KAogICAgICAgIE9iamVjdElEID0+ICRBY3Rpb24tPntPYmplY3RJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZm9yIG9iamVjdCBkYXRhCiAgICBpZiAoICEkQWN0aW9uRGF0YXtPYmplY3R9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gdmFsdWUgZm9yICdPYmplY3QnIHdpdGggSUQgJyRBY3Rpb24tPntPYmplY3RJRH0nISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgYXR0cmlidXRlIGRhdGEKICAgICRBY3Rpb25EYXRhe0F0dHJpYnV0ZX0gPSAkU2VsZi0+QXR0cmlidXRlR2V0KAogICAgICAgIEF0dHJpYnV0ZUlEID0+ICRBY3Rpb24tPntBdHRyaWJ1dGVJRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZm9yIGF0dHJpYnV0ZSBkYXRhCiAgICBpZiAoICEkQWN0aW9uRGF0YXtBdHRyaWJ1dGV9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gdmFsdWUgZm9yICdBdHRyaWJ1dGUnIHdpdGggSUQgJyRBY3Rpb24tPntBdHRyaWJ1dGVJRH0nISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgb3BlcmF0b3IgZGF0YQogICAgJEFjdGlvbkRhdGF7T3BlcmF0b3J9ID0gJFNlbGYtPk9wZXJhdG9yR2V0KAogICAgICAgIE9wZXJhdG9ySUQgPT4gJEFjdGlvbi0+e09wZXJhdG9ySUR9LAogICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZm9yIG9wZXJhdG9yIGRhdGEKICAgIGlmICggISRBY3Rpb25EYXRhe09wZXJhdG9yfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIHZhbHVlIGZvciAnT3BlcmF0b3InIHdpdGggSUQgJyRBY3Rpb24tPntPcGVyYXRvcklEfSchIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICByZXR1cm4gXCVBY3Rpb25EYXRhOwp9Cgo9aGVhZDIgX0NyZWF0ZU5ld0FjdGlvbk51bWJlcigpCgpDcmVhdGUgYSBuZXcgdW51c2VkIGFjdGlvbiBudW1iZXIgZm9yIHRoZSBnaXZlbiBjb25kaXRpb24uClRoZSBoaWdoZXN0IGN1cnJlbnQgYWN0aW9uIG51bWJlciBmb3IgdGhlIGdpdmVuIGNvbmRpdGlvbiBpcwpsb29rZWQgdXAgYW5kIGluY3JlbWVudGVkIGJ5IG9uZS4KCiAgICBteSAkQWN0aW9uTnVtYmVyID0gJENvbmRpdGlvbk9iamVjdC0+X0NyZWF0ZU5ld0FjdGlvbk51bWJlcigKICAgICAgICBDb25kaXRpb25JRCA9PiAxMjMsCiAgICApOwoKPWN1dAoKc3ViIF9DcmVhdGVOZXdBY3Rpb25OdW1iZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0NvbmRpdGlvbklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ29uZGl0aW9uSUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCB0aGUgbGFyZ2VzdCBhY3Rpb24gbnVtYmVyCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIE1BWChhY3Rpb25fbnVtYmVyKSAnCiAgICAgICAgICAgIC4gJ0ZST00gY29uZGl0aW9uX2FjdGlvbiAnCiAgICAgICAgICAgIC4gJ1dIRVJFIGNvbmRpdGlvbl9pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtDb25kaXRpb25JRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQsIGRlZmF1bHQgdG8gMCB3aGVuIHRoZXJlIGFyZSBubyBhY3Rpb25zIHlldAogICAgbXkgJEFjdGlvbk51bWJlcjsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJEFjdGlvbk51bWJlciA9ICRSb3dbMF07CiAgICB9CiAgICAkQWN0aW9uTnVtYmVyIHx8PSAwOwoKICAgICMgaW5jcmVtZW50IG51bWJlciB0byBnZXQgYSBub24tZXhpc3RlbnQgYWN0aW9uIG51bWJlcgogICAgJEFjdGlvbk51bWJlcisrOwoKICAgIHJldHVybiAkQWN0aW9uTnVtYmVyOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMCondition/Attribute.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6QXR0cmlidXRlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBJTVBPUlRBTlQhCiMgRG8gbm90IGRlbGV0ZSB0aGlzIGxpbmUhIFRoaXMgcHJldmVudHMgdGhlICJGcm9udGVuZC9CYXNpYyIgVW5pdFRlc3QgZnJvbSBmYWlsaW5nCiMgb24gb3BlbnN1c2UgMTEuMyBhbmQgMTEuNCAoNjRiaXQpIGlmIG1vZF9wZXJsIGlzIHVzZWQhCgp1c2UgdmFycyBxdygkVkVSU0lPTik7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb246OkF0dHJpYnV0ZSAtIGNvbmRpdGlvbiBhdHRyaWJ1dGUgbGliCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIEF0dHJpYnV0ZUFkZCgpCgpBZGQgYSBuZXcgY29uZGl0aW9uIGF0dHJpYnV0ZS4KCiAgICBteSAkQXR0cmlidXRlSUQgPSAkQ29uZGl0aW9uT2JqZWN0LT5BdHRyaWJ1dGVBZGQoCiAgICAgICAgTmFtZSAgID0+ICdBdHRyaWJ1dGVOYW1lJywKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQXR0cmlidXRlQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE5hbWUgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIG1ha2UgbG9va3VwIHdpdGggZ2l2ZW4gbmFtZSBmb3IgY2hlY2tzCiAgICBteSAkQXR0cmlidXRlSUQgPSAkU2VsZi0+QXR0cmlidXRlTG9va3VwKAogICAgICAgIE5hbWUgPT4gJFBhcmFte05hbWV9LAogICAgKTsKCiAgICAjIGNoZWNrIGlmIGF0dHJpYnV0ZSBuYW1lIGFscmVhZHkgZXhpc3RzCiAgICBpZiAoJEF0dHJpYnV0ZUlEKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb25kaXRpb24gYXR0cmlidXRlICgkUGFyYW17TmFtZX0pIGFscmVhZHkgZXhpc3RzISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBhZGQgbmV3IGF0dHJpYnV0ZSBuYW1lIHRvIGRhdGFiYXNlCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJ0lOU0VSVCBJTlRPIGNvbmRpdGlvbl9hdHRyaWJ1dGUgJwogICAgICAgICAgICAuICcobmFtZSkgJwogICAgICAgICAgICAuICdWQUxVRVMgKD8pJywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtOYW1lfSBdLAogICAgKTsKCiAgICAjIGdldCBpZCBvZiBjcmVhdGVkIGF0dHJpYnV0ZQogICAgJEF0dHJpYnV0ZUlEID0gJFNlbGYtPkF0dHJpYnV0ZUxvb2t1cCgKICAgICAgICBOYW1lID0+ICRQYXJhbXtOYW1lfSwKICAgICk7CgogICAgIyBjaGVjayBpZiBhdHRyaWJ1dGUgY291bGQgYmUgYWRkZWQKICAgIGlmICggISRBdHRyaWJ1dGVJRCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkF0dHJpYnV0ZUFkZCgpIGZhaWxlZCEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZGVsZXRlIGNhY2hlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgPT4gJ0F0dHJpYnV0ZUxpc3QnLAogICAgKTsKCiAgICByZXR1cm4gJEF0dHJpYnV0ZUlEOwp9Cgo9aGVhZDIgQXR0cmlidXRlVXBkYXRlKCkKClVwZGF0ZSBhIGNvbmRpdGlvbiBhdHRyaWJ1dGUuCgogICAgbXkgJFN1Y2Nlc3MgPSAkQ29uZGl0aW9uT2JqZWN0LT5BdHRyaWJ1dGVVcGRhdGUoCiAgICAgICAgQXR0cmlidXRlSUQgPT4gMTIzNCwKICAgICAgICBOYW1lICAgICAgICA9PiAnTmV3QXR0cmlidXRlTmFtZScsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQXR0cmlidXRlVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEF0dHJpYnV0ZUlEIE5hbWUgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBhdHRyaWJ1dGUgZGF0YQogICAgbXkgJEF0dHJpYnV0ZURhdGEgPSAkU2VsZi0+QXR0cmlidXRlR2V0KAogICAgICAgIEF0dHJpYnV0ZUlEID0+ICRQYXJhbXtBdHRyaWJ1dGVJRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgYXR0cmlidXRlIGRhdGEKICAgIGlmICggISRBdHRyaWJ1dGVEYXRhICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQXR0cmlidXRlVXBkYXRlIG9mICRQYXJhbXtBdHRyaWJ1dGVJRH0gZmFpbGVkISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB1cGRhdGUgYXR0cmlidXRlIGluIGRhdGFiYXNlCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJ1VQREFURSBjb25kaXRpb25fYXR0cmlidXRlICcKICAgICAgICAgICAgLiAnU0VUIG5hbWUgPSA/ICcKICAgICAgICAgICAgLiAnV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtOYW1lfSwKICAgICAgICAgICAgXCRQYXJhbXtBdHRyaWJ1dGVJRH0sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBkZWxldGUgY2FjaGUKICAgIGZvciBteSAkS2V5ICgKICAgICAgICAnQXR0cmlidXRlTGlzdCcsCiAgICAgICAgJ0F0dHJpYnV0ZUdldDo6QXR0cmlidXRlSUQ6OicgLiAkUGFyYW17QXR0cmlidXRlSUR9LAogICAgICAgICdBdHRyaWJ1dGVMb29rdXA6OkF0dHJpYnV0ZUlEOjonIC4gJFBhcmFte0F0dHJpYnV0ZUlEfSwKICAgICAgICAnQXR0cmlidXRlTG9va3VwOjpOYW1lOjonIC4gJEF0dHJpYnV0ZURhdGEtPntOYW1lfSwgICAgIyB1c2UgdGhlIG9sZCBuYW1lCiAgICAgICAgKQogICAgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5EZWxldGUoCiAgICAgICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkgID0+ICRLZXksCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIEF0dHJpYnV0ZUdldCgpCgpHZXQgYSBjb25kaXRpb24gYXR0cmlidXRlIGZvciBhIGdpdmVuIGF0dHJpYnV0ZSBpZC4KUmV0dXJucyBhIGhhc2ggcmVmZXJlbmNlIG9mIHRoZSBhdHRyaWJ1dGUgZGF0YS4KCiAgICBteSAkQ29uZGl0aW9uQXR0cmlidXRlUmVmID0gJENvbmRpdGlvbk9iamVjdC0+QXR0cmlidXRlR2V0KAogICAgICAgIEF0dHJpYnV0ZUlEID0+IDEyMzQsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7CgpUaGUgcmV0dXJuZWQgaGFzaCByZWZlcmVuY2UgY29udGFpbnMgZm9sbG93aW5nIGVsZW1lbnRzOgoKICAgICRDb25kaXRpb25BdHRyaWJ1dGV7QXR0cmlidXRlSUR9CiAgICAkQ29uZGl0aW9uQXR0cmlidXRle05hbWV9Cgo9Y3V0CgpzdWIgQXR0cmlidXRlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEF0dHJpYnV0ZUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJENhY2hlS2V5ID0gJ0F0dHJpYnV0ZUdldDo6QXR0cmlidXRlSUQ6OicgLiAkUGFyYW17QXR0cmlidXRlSUR9OwogICAgbXkgJENhY2hlICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkdldCgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICk7CiAgICByZXR1cm4gJENhY2hlIGlmICRDYWNoZTsKCiAgICAjIHByZXBhcmUgU1FMIHN0YXRlbWVudAogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgICA9PiAnU0VMRUNUIGlkLCBuYW1lIEZST00gY29uZGl0aW9uX2F0dHJpYnV0ZSBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtBdHRyaWJ1dGVJRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICVBdHRyaWJ1dGVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQXR0cmlidXRlRGF0YXtBdHRyaWJ1dGVJRH0gPSAkUm93WzBdOwogICAgICAgICRBdHRyaWJ1dGVEYXRhe05hbWV9ICAgICAgICA9ICRSb3dbMV07CiAgICB9CgogICAgIyBjaGVjayBlcnJvcgogICAgaWYgKCAhJUF0dHJpYnV0ZURhdGEgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJBdHRyaWJ1dGVJRCAkUGFyYW17QXR0cmlidXRlSUR9IGRvZXMgbm90IGV4aXN0ISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICBWYWx1ZSA9PiBcJUF0dHJpYnV0ZURhdGEsCiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICApOwoKICAgIHJldHVybiBcJUF0dHJpYnV0ZURhdGE7Cn0KCj1oZWFkMiBBdHRyaWJ1dGVMb29rdXAoKQoKVGhpcyBtZXRob2QgZG9lcyBhIGxvb2t1cCBmb3IgYSBjb25kaXRpb24gYXR0cmlidXRlLiBJZiBhbiBhdHRyaWJ1dGUKaWQgaXMgZ2l2ZW4sIGl0IHJldHVybnMgdGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZS4gSWYgdGhlIG5hbWUgb2YgdGhlCmF0dHJpYnV0ZSBpcyBnaXZlbiwgdGhlIGFwcHJvcHJpYXRlIGlkIGlzIHJldHVybmVkLgoKICAgIG15ICRBdHRyaWJ1dGVOYW1lID0gJENvbmRpdGlvbk9iamVjdC0+QXR0cmlidXRlTG9va3VwKAogICAgICAgIEF0dHJpYnV0ZUlEID0+IDQzMjEsCiAgICApOwoKICAgIG15ICRBdHRyaWJ1dGVJRCA9ICRDb25kaXRpb25PYmplY3QtPkF0dHJpYnV0ZUxvb2t1cCgKICAgICAgICBOYW1lICAgPT4gJ0F0dHJpYnV0ZU5hbWUnLAogICAgKTsKCj1jdXQKCnN1YiBBdHRyaWJ1dGVMb29rdXAgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIGlmIGJvdGggcGFyYW1ldGVycyBhcmUgZ2l2ZW4KICAgIGlmICggJFBhcmFte0F0dHJpYnV0ZUlEfSAmJiAkUGFyYW17TmFtZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIEF0dHJpYnV0ZUlEIG9yIE5hbWUgLSBub3QgYm90aCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgaWYgYm90aCBwYXJhbWV0ZXJzIGFyZSBub3QgZ2l2ZW4KICAgIGlmICggISRQYXJhbXtBdHRyaWJ1dGVJRH0gJiYgISRQYXJhbXtOYW1lfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQXR0cmlidXRlSUQgb3IgTmFtZSAtIG5vbmUgaXMgZ2l2ZW4hJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIGlmIEF0dHJpYnV0ZUlEIGlzIGEgbnVtYmVyCiAgICBpZiAoICRQYXJhbXtBdHRyaWJ1dGVJRH0gJiYgJFBhcmFte0F0dHJpYnV0ZUlEfSAhfiBteyBcQSBcZCsgXHogfXhtcyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkF0dHJpYnV0ZUlEIG11c3QgYmUgYSBudW1iZXIhIChBdHRyaWJ1dGVJRDogJFBhcmFte0F0dHJpYnV0ZUlEfSkiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRDYWNoZUtleTsKCiAgICAjIHByZXBhcmUgU1FMIHN0YXRlbWVudHMKICAgIGlmICggJFBhcmFte0F0dHJpYnV0ZUlEfSApIHsKCiAgICAgICAgIyBjaGVjayBjYWNoZQogICAgICAgICRDYWNoZUtleSA9ICdBdHRyaWJ1dGVMb29rdXA6OkF0dHJpYnV0ZUlEOjonIC4gJFBhcmFte0F0dHJpYnV0ZUlEfTsKICAgICAgICBteSAkQ2FjaGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJENhY2hlIGlmICRDYWNoZTsKCiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMICAgPT4gJ1NFTEVDVCBuYW1lIEZST00gY29uZGl0aW9uX2F0dHJpYnV0ZSBXSEVSRSBpZCA9ID8nLAogICAgICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17QXR0cmlidXRlSUR9IF0sCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte05hbWV9ICkgewoKICAgICAgICAjIGNoZWNrIGNhY2hlCiAgICAgICAgJENhY2hlS2V5ID0gJ0F0dHJpYnV0ZUxvb2t1cDo6TmFtZTo6JyAuICRQYXJhbXtOYW1lfTsKICAgICAgICBteSAkQ2FjaGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJENhY2hlIGlmICRDYWNoZTsKCiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMICAgPT4gJ1NFTEVDVCBpZCBGUk9NIGNvbmRpdGlvbl9hdHRyaWJ1dGUgV0hFUkUgbmFtZSA9ID8nLAogICAgICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17TmFtZX0gXSwKICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJExvb2t1cCA9ICcnOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkTG9va3VwID0gJFJvd1swXTsKICAgIH0KCiAgICAjIHNldCBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+ICRMb29rdXAsCiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICApOwoKICAgIHJldHVybiAkTG9va3VwOwp9Cgo9aGVhZDIgQXR0cmlidXRlTGlzdCgpCgpSZXR1cm5zIGEgbGlzdCBvZiBhbGwgY29uZGl0aW9uIGF0dHJpYnV0ZXMgYXMgaGFzaCByZWZlcmVuY2UKCiAgICBteSAkQ29uZGl0aW9uQXR0cmlidXRlc1JlZiA9ICRDb25kaXRpb25PYmplY3QtPkF0dHJpYnV0ZUxpc3QoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKVGhlIHJldHVybmVkIGhhc2ggcmVmZXJlbmNlIGNvbnRhaW5zIGVudHJpZXMgbGlrZSB0aGlzOgoKICAgICRDb25kaXRpb25BdHRyaWJ1dGV7QXR0cmlidXRlSUR9ID0gJ0F0dHJpYnV0ZU5hbWUnCgo9Y3V0CgpzdWIgQXR0cmlidXRlTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJENhY2hlS2V5ID0gJ0F0dHJpYnV0ZUxpc3QnOwogICAgbXkgJENhY2hlICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkdldCgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICk7CiAgICByZXR1cm4gJENhY2hlIGlmICRDYWNoZTsKCiAgICAjIHByZXBhcmUgU1FMIHN0YXRlbWVudAogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBpZCwgbmFtZSBGUk9NIGNvbmRpdGlvbl9hdHRyaWJ1dGUnLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICVBdHRyaWJ1dGVMaXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQXR0cmlidXRlTGlzdHsgJFJvd1swXSB9ID0gJFJvd1sxXTsKICAgIH0KCiAgICAjIHNldCBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+IFwlQXR0cmlidXRlTGlzdCwKICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICk7CgogICAgcmV0dXJuIFwlQXR0cmlidXRlTGlzdDsKfQoKPWhlYWQyIEF0dHJpYnV0ZURlbGV0ZSgpCgpEZWxldGVzIGEgY29uZGl0aW9uIGF0dHJpYnV0ZS4KCiAgICBteSAkU3VjY2VzcyA9ICRDb25kaXRpb25PYmplY3QtPkF0dHJpYnV0ZURlbGV0ZSgKICAgICAgICBBdHRyaWJ1dGVJRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQXR0cmlidXRlRGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEF0dHJpYnV0ZUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBsb29rdXAgYXR0cmlidXRlIG5hbWUKICAgIG15ICRBdHRyaWJ1dGVOYW1lID0gJFNlbGYtPkF0dHJpYnV0ZUxvb2t1cCgKICAgICAgICBBdHRyaWJ1dGVJRCA9PiAkUGFyYW17QXR0cmlidXRlSUR9LAogICAgKTsKCiAgICAjIGRlbGV0ZSBjb25kaXRpb24gYXR0cmlidXRlIGZyb20gZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnREVMRVRFIEZST00gY29uZGl0aW9uX2F0dHJpYnV0ZSAnCiAgICAgICAgICAgIC4gJ1dIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17QXR0cmlidXRlSUR9IF0sCiAgICApOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBmb3IgbXkgJEtleSAoCiAgICAgICAgJ0F0dHJpYnV0ZUxpc3QnLAogICAgICAgICdBdHRyaWJ1dGVHZXQ6OkF0dHJpYnV0ZUlEOjonIC4gJFBhcmFte0F0dHJpYnV0ZUlEfSwKICAgICAgICAnQXR0cmlidXRlTG9va3VwOjpBdHRyaWJ1dGVJRDo6JyAuICRQYXJhbXtBdHRyaWJ1dGVJRH0sCiAgICAgICAgJ0F0dHJpYnV0ZUxvb2t1cDo6TmFtZTo6JyAuICRBdHRyaWJ1dGVOYW1lLAogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMCondition/Expression.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6RXhwcmVzc2lvbjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6RXhwcmVzc2lvbiAtIGNvbmRpdGlvbiBleHByZXNzaW9uIGxpYgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBFeHByZXNzaW9uQWRkKCkKCkFkZCBhIG5ldyBjb25kaXRpb24gZXhwcmVzc2lvbi4KCiAgICBteSAkRXhwcmVzc2lvbklEID0gJENvbmRpdGlvbk9iamVjdC0+RXhwcmVzc2lvbkFkZCgKICAgICAgICBDb25kaXRpb25JRCAgPT4gMTIzLAogICAgICAgIE9iamVjdElEICAgICA9PiAyMzQsCiAgICAgICAgQXR0cmlidXRlSUQgID0+IDM0NSwKICAgICAgICBPcGVyYXRvcklEICAgPT4gNDU2LAogICAgICAgIFNlbGVjdG9yICAgICA9PiAxMjM0LAogICAgICAgIENvbXBhcmVWYWx1ZSA9PiAncmVqZWN0ZWQnLAogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBFeHByZXNzaW9uQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENvbmRpdGlvbklEIE9iamVjdElEIEF0dHJpYnV0ZUlEIE9wZXJhdG9ySUQgU2VsZWN0b3IgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGhhbmRsZSAnQ29tcGFyZVZhbHVlJyBpbiBhIHNwZWNpYWwgd2F5CiAgICBpZiAoICFleGlzdHMgJFBhcmFte0NvbXBhcmVWYWx1ZX0gfHwgIWRlZmluZWQgJFBhcmFte0NvbXBhcmVWYWx1ZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIENvbXBhcmVWYWx1ZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGNvbmRpdGlvbiBmb3IgZXZlbnQgaGFuZGxlcgogICAgbXkgJENvbmRpdGlvbiA9ICRTZWxmLT5Db25kaXRpb25HZXQoCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBjb25kaXRpb24KICAgIHJldHVybiBpZiAhJENvbmRpdGlvbjsKCiAgICAjIHRyaWdnZXIgRXhwcmVzc2lvbkFkZFByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnRXhwcmVzc2lvbkFkZFByZScsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDb25kaXRpb24tPntDaGFuZ2VJRH0sCiAgICAgICAgfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgYWRkIG5ldyBleHByZXNzaW9uIG5hbWUgdG8gZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnSU5TRVJUIElOVE8gY29uZGl0aW9uX2V4cHJlc3Npb24gJwogICAgICAgICAgICAuICcoY29uZGl0aW9uX2lkLCBvYmplY3RfaWQsIGF0dHJpYnV0ZV9pZCwgJwogICAgICAgICAgICAuICdvcGVyYXRvcl9pZCwgc2VsZWN0b3IsIGNvbXBhcmVfdmFsdWUpICcKICAgICAgICAgICAgLiAnVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/KScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17Q29uZGl0aW9uSUR9LCBcJFBhcmFte09iamVjdElEfSwgXCRQYXJhbXtBdHRyaWJ1dGVJRH0sCiAgICAgICAgICAgIFwkUGFyYW17T3BlcmF0b3JJRH0sICBcJFBhcmFte1NlbGVjdG9yfSwgXCRQYXJhbXtDb21wYXJlVmFsdWV9LAogICAgICAgIF0sCiAgICApOwoKICAgICMgcHJlcGFyZSBTUUwgc3RhdGVtZW50CiAgICBteSAkRXhwcmVzc2lvbklEOwoKICAgICMgdGhpcyBpcyBpbXBvcnRhbnQgZm9yIG9yYWNsZSBmb3Igd2hpY2ggYW4gZW1wdHkgc3RyaW5nIGFuZCBOVUxMIGlzIHRoZSBzYW1lIQogICAgaWYgKCAkU2VsZi0+e0RCVHlwZX0gZXEgJ29yYWNsZScgJiYgJFBhcmFte0NvbXBhcmVWYWx1ZX0gZXEgJycgKSB7CgogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnU0VMRUNUIGlkIEZST00gY29uZGl0aW9uX2V4cHJlc3Npb24gJwogICAgICAgICAgICAgICAgLiAnV0hFUkUgY29uZGl0aW9uX2lkID0gPyBBTkQgb2JqZWN0X2lkID0gPyBBTkQgYXR0cmlidXRlX2lkID0gPyAnCiAgICAgICAgICAgICAgICAuICdBTkQgb3BlcmF0b3JfaWQgPSA/IEFORCBzZWxlY3RvciA9ID8gQU5EIGNvbXBhcmVfdmFsdWUgSVMgTlVMTCcsCiAgICAgICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICAgICAgXCRQYXJhbXtDb25kaXRpb25JRH0sIFwkUGFyYW17T2JqZWN0SUR9LCBcJFBhcmFte0F0dHJpYnV0ZUlEfSwKICAgICAgICAgICAgICAgIFwkUGFyYW17T3BlcmF0b3JJRH0sICBcJFBhcmFte1NlbGVjdG9yfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgZm9yIGFsbCBvdGhlciBkYXRhYmFzZXMgQU5EIGZvciBvcmFjbGUgSUYgdGhlIGNvbXBhcmUgdmFsdWUgaXMgTk9UIGFuIGVtcHR5IHN0cmluZwogICAgZWxzZSB7CiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQgRlJPTSBjb25kaXRpb25fZXhwcmVzc2lvbiAnCiAgICAgICAgICAgICAgICAuICdXSEVSRSBjb25kaXRpb25faWQgPSA/IEFORCBvYmplY3RfaWQgPSA/IEFORCBhdHRyaWJ1dGVfaWQgPSA/ICcKICAgICAgICAgICAgICAgIC4gJ0FORCBvcGVyYXRvcl9pZCA9ID8gQU5EIHNlbGVjdG9yID0gPyBBTkQgY29tcGFyZV92YWx1ZSA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgICAgIFwkUGFyYW17Q29uZGl0aW9uSUR9LCBcJFBhcmFte09iamVjdElEfSwgXCRQYXJhbXtBdHRyaWJ1dGVJRH0sCiAgICAgICAgICAgICAgICBcJFBhcmFte09wZXJhdG9ySUR9LCAgXCRQYXJhbXtTZWxlY3Rvcn0sIFwkUGFyYW17Q29tcGFyZVZhbHVlfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGlkIG9mIGNyZWF0ZWQgZXhwcmVzc2lvbgogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRXhwcmVzc2lvbklEID0gJFJvd1swXTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIGV4cHJlc3Npb24gY291bGQgYmUgYWRkZWQKICAgIGlmICggISRFeHByZXNzaW9uSUQgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFeHByZXNzaW9uQWRkKCkgZmFpbGVkISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBkZWxldGUgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5EZWxldGUoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAnRXhwcmVzc2lvbkxpc3Q6OkNvbmRpdGlvbklEOjonIC4gJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICk7CgogICAgIyB0cmlnZ2VyIEV4cHJlc3Npb25BZGRQb3N0LUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdFeHByZXNzaW9uQWRkUG9zdCcsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIENoYW5nZUlEICAgICA9PiAkQ29uZGl0aW9uLT57Q2hhbmdlSUR9LAogICAgICAgICAgICBFeHByZXNzaW9uSUQgPT4gJEV4cHJlc3Npb25JRCwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuICRFeHByZXNzaW9uSUQ7Cn0KCj1oZWFkMiBFeHByZXNzaW9uVXBkYXRlKCkKClVwZGF0ZSBhIGNvbmRpdGlvbiBleHByZXNzaW9uLgoKICAgIG15ICRTdWNjZXNzID0gJENvbmRpdGlvbk9iamVjdC0+RXhwcmVzc2lvblVwZGF0ZSgKICAgICAgICBFeHByZXNzaW9uSUQgPT4gMTIzNCwKICAgICAgICBPYmplY3RJRCAgICAgPT4gMjM0LCAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgQXR0cmlidXRlSUQgID0+IDM0NSwgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIE9wZXJhdG9ySUQgICA9PiA0NTYsICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBTZWxlY3RvciAgICAgPT4gMTIzNCwgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgQ29tcGFyZVZhbHVlID0+ICdyZWplY3RlZCcsICMgKG9wdGlvbmFsKQogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBFeHByZXNzaW9uVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEV4cHJlc3Npb25JRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGV4cHJlc3Npb24KICAgIG15ICRFeHByZXNzaW9uID0gJFNlbGYtPkV4cHJlc3Npb25HZXQoCiAgICAgICAgRXhwcmVzc2lvbklEID0+ICRQYXJhbXtFeHByZXNzaW9uSUR9LAogICAgICAgIFVzZXJJRCAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBleHByZXNzaW9uCiAgICByZXR1cm4gaWYgISRFeHByZXNzaW9uOwoKICAgICMgZ2V0IGNvbmRpdGlvbiBmb3IgZXZlbnQgaGFuZGxlcgogICAgbXkgJENvbmRpdGlvbiA9ICRTZWxmLT5Db25kaXRpb25HZXQoCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gJEV4cHJlc3Npb24tPntDb25kaXRpb25JRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgY29uZGl0aW9uCiAgICByZXR1cm4gaWYgISRDb25kaXRpb247CgogICAgIyB0cmlnZ2VyIEV4cHJlc3Npb25VcGRhdGVQcmUtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ0V4cHJlc3Npb25VcGRhdGVQcmUnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ29uZGl0aW9uLT57Q2hhbmdlSUR9LAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIG1hcCB1cGRhdGUgYXR0cmlidXRlcyB0byBjb2x1bW4gbmFtZXMKICAgIG15ICVBdHRyaWJ1dGUgPSAoCiAgICAgICAgT2JqZWN0SUQgICAgID0+ICdvYmplY3RfaWQnLAogICAgICAgIEF0dHJpYnV0ZUlEICA9PiAnYXR0cmlidXRlX2lkJywKICAgICAgICBPcGVyYXRvcklEICAgPT4gJ29wZXJhdG9yX2lkJywKICAgICAgICBTZWxlY3RvciAgICAgPT4gJ3NlbGVjdG9yJywKICAgICAgICBDb21wYXJlVmFsdWUgPT4gJ2NvbXBhcmVfdmFsdWUnLAogICAgKTsKCiAgICAjIGJ1aWxkIFNRTCB0byB1cGRhdGUgZXhwcmVzc2lvbgogICAgbXkgJFNRTCA9ICdVUERBVEUgY29uZGl0aW9uX2V4cHJlc3Npb24gU0VUICc7CiAgICBteSBAQmluZDsKCiAgICBBVFRSSUJVVEU6CiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAlQXR0cmlidXRlICkgewoKICAgICAgICAjIHByZXNlcnZlIHRoZSBvbGQgdmFsdWUsIHdoZW4gdGhlIGNvbHVtbiBpc24ndCBpbiBmdW5jdGlvbiBwYXJhbWV0ZXJzCiAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgIWV4aXN0cyAkUGFyYW17JEF0dHJpYnV0ZX07CiAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgIWRlZmluZWQgJFBhcmFteyRBdHRyaWJ1dGV9OwoKICAgICAgICAjIHBhcmFtIGNoZWNraW5nIGhhcyBhbHJlYWR5IGJlZW4gZG9uZSwgc28gdGhpcyBpcyBzYWZlCiAgICAgICAgJFNRTCAuPSAiJEF0dHJpYnV0ZXskQXR0cmlidXRlfSA9ID8sICI7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXskQXR0cmlidXRlfTsKICAgIH0KCiAgICAjIHNldCBjb25kaXRpb24gSUQgdG8gYWxsb3cgdHJhaWxpbmcgY29tbWEgb2YgcHJldmlvdXMgbG9vcAogICAgJFNRTCAuPSAnIGNvbmRpdGlvbl9pZCA9IGNvbmRpdGlvbl9pZCAnOwoKICAgICMgc2V0IG1hdGNoaW5nIG9mIFNRTCBzdGF0ZW1lbnQKICAgICRTUUwgLj0gJ1dIRVJFIGlkID0gPyc7CiAgICBwdXNoIEBCaW5kLCBcJFBhcmFte0V4cHJlc3Npb25JRH07CgogICAgIyB1cGRhdGUgZXhwcmVzc2lvbgogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gXEBCaW5kLAogICAgKTsKCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgZm9yIG15ICRLZXkgKAogICAgICAgICdFeHByZXNzaW9uTGlzdDo6Q29uZGl0aW9uSUQ6OicgLiAkRXhwcmVzc2lvbi0+e0NvbmRpdGlvbklEfSwKICAgICAgICAnRXhwcmVzc2lvbkdldDo6JyAuICRQYXJhbXtFeHByZXNzaW9uSUR9LAogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgIyB0cmlnZ2VyIEV4cHJlc3Npb25VcGRhdGVQb3N0LUV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdFeHByZXNzaW9uVXBkYXRlUG9zdCcsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIENoYW5nZUlEICAgICAgICAgID0+ICRDb25kaXRpb24tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIE9sZEV4cHJlc3Npb25EYXRhID0+ICRFeHByZXNzaW9uLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIEV4cHJlc3Npb25HZXQoKQoKR2V0IGEgY29uZGl0aW9uIGV4cHJlc3Npb24gZm9yIGEgZ2l2ZW4gZXhwcmVzc2lvbiBpZC4KUmV0dXJucyBhIGhhc2ggcmVmZXJlbmNlIG9mIHRoZSBleHByZXNzaW9uIGRhdGEuCgogICAgbXkgJENvbmRpdGlvbkV4cHJlc3Npb25SZWYgPSAkQ29uZGl0aW9uT2JqZWN0LT5FeHByZXNzaW9uR2V0KAogICAgICAgIEV4cHJlc3Npb25JRCA9PiAxMjM0LAogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKClRoZSByZXR1cm5lZCBoYXNoIHJlZmVyZW5jZSBjb250YWlucyBmb2xsb3dpbmcgZWxlbWVudHM6CgogICAgJENvbmRpdGlvbkV4cHJlc3Npb257RXhwcmVzc2lvbklEfQogICAgJENvbmRpdGlvbkV4cHJlc3Npb257Q29uZGl0aW9uSUR9CiAgICAkQ29uZGl0aW9uRXhwcmVzc2lvbntPYmplY3RJRH0KICAgICRDb25kaXRpb25FeHByZXNzaW9ue0F0dHJpYnV0ZUlEfQogICAgJENvbmRpdGlvbkV4cHJlc3Npb257T3BlcmF0b3JJRH0KICAgICRDb25kaXRpb25FeHByZXNzaW9ue1NlbGVjdG9yfQogICAgJENvbmRpdGlvbkV4cHJlc3Npb257Q29tcGFyZVZhbHVlfQoKPWN1dAoKc3ViIEV4cHJlc3Npb25HZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoRXhwcmVzc2lvbklEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJENhY2hlS2V5ID0gJ0V4cHJlc3Npb25HZXQ6OicgLiAkUGFyYW17RXhwcmVzc2lvbklEfTsKICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwogICAgcmV0dXJuICRDYWNoZSBpZiAkQ2FjaGU7CgogICAgIyBwcmVwYXJlIFNRTCBzdGF0ZW1lbnQKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQsIGNvbmRpdGlvbl9pZCwgb2JqZWN0X2lkLCBhdHRyaWJ1dGVfaWQsICcKICAgICAgICAgICAgLiAnb3BlcmF0b3JfaWQsIHNlbGVjdG9yLCBjb21wYXJlX3ZhbHVlICcKICAgICAgICAgICAgLiAnRlJPTSBjb25kaXRpb25fZXhwcmVzc2lvbiBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtFeHByZXNzaW9uSUR9IF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAlRXhwcmVzc2lvbkRhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRFeHByZXNzaW9uRGF0YXtFeHByZXNzaW9uSUR9ID0gJFJvd1swXTsKICAgICAgICAkRXhwcmVzc2lvbkRhdGF7Q29uZGl0aW9uSUR9ICA9ICRSb3dbMV07CiAgICAgICAgJEV4cHJlc3Npb25EYXRhe09iamVjdElEfSAgICAgPSAkUm93WzJdOwogICAgICAgICRFeHByZXNzaW9uRGF0YXtBdHRyaWJ1dGVJRH0gID0gJFJvd1szXTsKICAgICAgICAkRXhwcmVzc2lvbkRhdGF7T3BlcmF0b3JJRH0gICA9ICRSb3dbNF07CiAgICAgICAgJEV4cHJlc3Npb25EYXRhe1NlbGVjdG9yfSAgICAgPSAkUm93WzVdOwoKICAgICAgICAjIHRoaXMgaXMgaW1wb3J0YW50IGZvciBvcmFjbGUgZm9yIHdoaWNoIGFuIGVtcHR5IHN0cmluZyBhbmQgTlVMTCBpcyB0aGUgc2FtZSEKICAgICAgICAkRXhwcmVzc2lvbkRhdGF7Q29tcGFyZVZhbHVlfSA9ICRSb3dbNl0gLy8gJyc7CiAgICB9CgogICAgIyBjaGVjayBlcnJvcgogICAgaWYgKCAhJUV4cHJlc3Npb25EYXRhICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRXhwcmVzc2lvbklEICRQYXJhbXtFeHByZXNzaW9uSUR9IGRvZXMgbm90IGV4aXN0ISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICBWYWx1ZSA9PiBcJUV4cHJlc3Npb25EYXRhLAogICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgKTsKCiAgICByZXR1cm4gXCVFeHByZXNzaW9uRGF0YTsKfQoKPWhlYWQyIEV4cHJlc3Npb25MaXN0KCkKClJldHVybnMgYSBsaXN0IG9mIGFsbCBjb25kaXRpb24gZXhwcmVzc2lvbiBpZHMgZm9yCmEgZ2l2ZW4gQ29uZGl0aW9uSUQgYXMgYXJyYXkgcmVmZXJlbmNlLgoKICAgIG15ICRDb25kaXRpb25FeHByZXNzaW9uSURzUmVmID0gJENvbmRpdGlvbk9iamVjdC0+RXhwcmVzc2lvbkxpc3QoCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gMTIzNCwKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBFeHByZXNzaW9uTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDb25kaXRpb25JRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgY2FjaGUKICAgIG15ICRDYWNoZUtleSA9ICdFeHByZXNzaW9uTGlzdDo6Q29uZGl0aW9uSUQ6OicgLiAkUGFyYW17Q29uZGl0aW9uSUR9OwogICAgbXkgJENhY2hlICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkdldCgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICk7CiAgICByZXR1cm4gJENhY2hlIGlmICRDYWNoZTsKCiAgICAjIHByZXBhcmUgU1FMIHN0YXRlbWVudAogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBpZCBGUk9NIGNvbmRpdGlvbl9leHByZXNzaW9uICcKICAgICAgICAgICAgLiAnV0hFUkUgY29uZGl0aW9uX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17Q29uZGl0aW9uSUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgQEV4cHJlc3Npb25MaXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBwdXNoIEBFeHByZXNzaW9uTGlzdCwgJFJvd1swXTsKICAgIH0KCiAgICAjIHNldCBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+IFxARXhwcmVzc2lvbkxpc3QsCiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICApOwoKICAgIHJldHVybiBcQEV4cHJlc3Npb25MaXN0Owp9Cgo9aGVhZDIgRXhwcmVzc2lvbkRlbGV0ZSgpCgpEZWxldGVzIGEgY29uZGl0aW9uIGV4cHJlc3Npb24uCgogICAgbXkgJFN1Y2Nlc3MgPSAkQ29uZGl0aW9uT2JqZWN0LT5FeHByZXNzaW9uRGVsZXRlKAogICAgICAgIEV4cHJlc3Npb25JRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEV4cHJlc3Npb25EZWxldGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoRXhwcmVzc2lvbklEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgZXhwcmVzc2lvbgogICAgbXkgJEV4cHJlc3Npb24gPSAkU2VsZi0+RXhwcmVzc2lvbkdldCgKICAgICAgICBFeHByZXNzaW9uSUQgPT4gJFBhcmFte0V4cHJlc3Npb25JRH0sCiAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGV4cHJlc3Npb24KICAgIHJldHVybiBpZiAhJEV4cHJlc3Npb247CgogICAgIyBnZXQgY29uZGl0aW9uIGZvciBldmVudCBoYW5kbGVyCiAgICBteSAkQ29uZGl0aW9uID0gJFNlbGYtPkNvbmRpdGlvbkdldCgKICAgICAgICBDb25kaXRpb25JRCA9PiAkRXhwcmVzc2lvbi0+e0NvbmRpdGlvbklEfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBjb25kaXRpb24KICAgIHJldHVybiBpZiAhJENvbmRpdGlvbjsKCiAgICAjIHRyaWdnZXIgRXhwcmVzc2lvbkRlbGV0ZVByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnRXhwcmVzc2lvbkRlbGV0ZVByZScsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDb25kaXRpb24tPntDaGFuZ2VJRH0sCiAgICAgICAgfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZGVsZXRlIGNvbmRpdGlvbiBleHByZXNzaW9uIGZyb20gZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnREVMRVRFIEZST00gY29uZGl0aW9uX2V4cHJlc3Npb24gJwogICAgICAgICAgICAuICdXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0V4cHJlc3Npb25JRH0gXSwKICAgICk7CgogICAgIyBkZWxldGUgY2FjaGUKICAgIGZvciBteSAkS2V5ICgKICAgICAgICAnRXhwcmVzc2lvbkxpc3Q6OkNvbmRpdGlvbklEOjonIC4gJEV4cHJlc3Npb24tPntDb25kaXRpb25JRH0sCiAgICAgICAgJ0V4cHJlc3Npb25HZXQ6OicgLiAkUGFyYW17RXhwcmVzc2lvbklEfSwKICAgICAgICApCiAgICB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkRlbGV0ZSgKICAgICAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgIEtleSAgPT4gJEtleSwKICAgICAgICApOwogICAgfQoKICAgICMgdHJpZ2dlciBFeHByZXNzaW9uRGVsZXRlUG9zdC1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnRXhwcmVzc2lvbkRlbGV0ZVBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ29uZGl0aW9uLT57Q2hhbmdlSUR9LAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIEV4cHJlc3Npb25EZWxldGVBbGwoKQoKRGVsZXRlcyBhbGwgY29uZGl0aW9uIGV4cHJlc3Npb25zIGZvciBhIGdpdmVuIGNvbmRpdGlvbiBpZC4KCiAgICBteSAkU3VjY2VzcyA9ICRDb25kaXRpb25PYmplY3QtPkV4cHJlc3Npb25EZWxldGVBbGwoCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEV4cHJlc3Npb25EZWxldGVBbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoQ29uZGl0aW9uSUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBjb25kaXRpb24gZm9yIGV2ZW50IGhhbmRsZXIKICAgIG15ICRDb25kaXRpb24gPSAkU2VsZi0+Q29uZGl0aW9uR2V0KAogICAgICAgIENvbmRpdGlvbklEID0+ICRQYXJhbXtDb25kaXRpb25JRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgY29uZGl0aW9uCiAgICByZXR1cm4gaWYgISRDb25kaXRpb247CgogICAgIyBnZXQgYWxsIGV4cHJlc3Npb25zIGZvciB0aGUgZ2l2ZW4gY29uZGl0aW9uIGlkCiAgICBteSAkRXhwcmVzc2lvbklEc1JlZiA9ICRTZWxmLT5FeHByZXNzaW9uTGlzdCgKICAgICAgICBDb25kaXRpb25JRCA9PiAkUGFyYW17Q29uZGl0aW9uSUR9LAogICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIHRyaWdnZXIgRXhwcmVzc2lvbkRlbGV0ZUFsbFByZS1FdmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnRXhwcmVzc2lvbkRlbGV0ZUFsbFByZScsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIENoYW5nZUlEICAgID0+ICRDb25kaXRpb24tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIENvbmRpdGlvbklEID0+ICRQYXJhbXtDb25kaXRpb25JRH0sCiAgICAgICAgfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZGVsZXRlIGNvbmRpdGlvbiBleHByZXNzaW9ucyBmcm9tIGRhdGFiYXNlCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJ0RFTEVURSBGUk9NIGNvbmRpdGlvbl9leHByZXNzaW9uICcKICAgICAgICAgICAgLiAnV0hFUkUgY29uZGl0aW9uX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17Q29uZGl0aW9uSUR9IF0sCiAgICApOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgPT4gJ0V4cHJlc3Npb25MaXN0OjpDb25kaXRpb25JRDo6JyAuICRQYXJhbXtDb25kaXRpb25JRH0sCiAgICApOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBpZiAoICRFeHByZXNzaW9uSURzUmVmICYmIEB7JEV4cHJlc3Npb25JRHNSZWZ9ICkgewogICAgICAgIGZvciBteSAkRXhwcmVzc2lvbklEICggQHskRXhwcmVzc2lvbklEc1JlZn0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5EZWxldGUoCiAgICAgICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgICAgIEtleSAgPT4gJ0V4cHJlc3Npb25HZXQ6OicgLiAkRXhwcmVzc2lvbklELAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHRyaWdnZXIgRXhwcmVzc2lvbkRlbGV0ZUFsbFBvc3QtRXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ0V4cHJlc3Npb25EZWxldGVBbGxQb3N0JywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQ2hhbmdlSUQgICAgPT4gJENvbmRpdGlvbi0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBFeHByZXNzaW9uTWF0Y2goKQoKUmV0dXJucyB0aGUgYm9vbGVhbiB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLgoKICAgIG15ICRNYXRjaCA9ICRDb25kaXRpb25PYmplY3QtPkV4cHJlc3Npb25NYXRjaCgKICAgICAgICBFeHByZXNzaW9uSUQgICAgICA9PiAxMjMsCiAgICAgICAgQXR0cmlidXRlc0NoYW5nZWQgPT4geyBJVFNNQ2hhbmdlID0+IFsgQ2hhbmdlVGl0bGUsIENoYW5nZURlc2NyaXB0aW9uIF0gfSwgICMgKG9wdGlvbmFsKQogICAgICAgIFVzZXJJRCAgICAgICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEV4cHJlc3Npb25NYXRjaCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhFeHByZXNzaW9uSUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBleHByZXNzaW9uIGNvbnRlbnQKICAgIG15ICRFeHByZXNzaW9uID0gJFNlbGYtPkV4cHJlc3Npb25HZXQoCiAgICAgICAgRXhwcmVzc2lvbklEID0+ICRQYXJhbXtFeHByZXNzaW9uSUR9LAogICAgICAgIFVzZXJJRCAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBleHByZXNzaW9uIGNvbnRlbnQKICAgIHJldHVybiBpZiAhJEV4cHJlc3Npb247CgogICAgIyBnZXQgZXhwcmVzc2lvbiBhdHRyaWJ1dGVzCiAgICBteSAkRXhwcmVzc2lvbkRhdGEgPSAkU2VsZi0+X0V4cHJlc3Npb25NYXRjaEluaXQoCiAgICAgICAgRXhwcmVzc2lvbiA9PiAkRXhwcmVzc2lvbiwKICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGV4cHJlc3Npb24gYXR0cmlidXRlcwogICAgcmV0dXJuIGlmICEkRXhwcmVzc2lvbkRhdGE7CgogICAgIyBnZXQgY2hhbmdlZCBhdHRyaWJ1dGVzCiAgICBteSAkQXR0cmlidXRlc0NoYW5nZWRUeXBlOwogICAgbXkgQEF0dHJpYnV0ZXNDaGFuZ2VkOwogICAgaWYgKCBleGlzdHMgJFBhcmFte0F0dHJpYnV0ZXNDaGFuZ2VkfSAmJiBkZWZpbmVkICRQYXJhbXtBdHRyaWJ1dGVzQ2hhbmdlZH0gKSB7CgogICAgICAgICMgY2hhbmdlZCBhdHRyaWJ1dGVzCiAgICAgICAgbXkgJUF0dHJpYnV0ZUNoYW5nZWQ7CgogICAgICAgICMgY2hlY2sgZm9yIHJlZmVyZW5jZSB0eXBlCiAgICAgICAgaWYgKCByZWYgJFBhcmFte0F0dHJpYnV0ZXNDaGFuZ2VkfSBlcSAnSEFTSCcgKSB7CiAgICAgICAgICAgICVBdHRyaWJ1dGVDaGFuZ2VkID0gJXsgJFBhcmFte0F0dHJpYnV0ZXNDaGFuZ2VkfSB9OwoKICAgICAgICAgICAgIyBnZXQgYXR0cmlidXRlIHR5cGUKICAgICAgICAgICAgJEF0dHJpYnV0ZXNDaGFuZ2VkVHlwZSA9ICgga2V5cyAlQXR0cmlidXRlQ2hhbmdlZCApWzBdOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBmb3IgcmVmZXJlbmNlIHR5cGUKICAgICAgICBpZiAoICRBdHRyaWJ1dGVzQ2hhbmdlZFR5cGUgJiYgcmVmICRBdHRyaWJ1dGVDaGFuZ2VkeyRBdHRyaWJ1dGVzQ2hhbmdlZFR5cGV9IGVxICdBUlJBWScgKSB7CgogICAgICAgICAgICAjIGdldCBsaXN0IG9mIGNoYW5nZWQgYXR0cmlidXRlcwogICAgICAgICAgICBAQXR0cmlidXRlc0NoYW5nZWQgPSBAeyAkQXR0cmlidXRlQ2hhbmdlZHskQXR0cmlidXRlc0NoYW5nZWRUeXBlfSB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBvYmplY3QgbmFtZQogICAgbXkgJE9iamVjdE5hbWUgPSAkRXhwcmVzc2lvbkRhdGEtPntPYmplY3R9LT57TmFtZX07CgogICAgIyBjaGVjayBmb3IgY2hhbmdlZCBhdHRyaWJ1dGVzIHR5cGVzCiAgICBpZiAoICRBdHRyaWJ1dGVzQ2hhbmdlZFR5cGUgJiYgJEF0dHJpYnV0ZXNDaGFuZ2VkVHlwZSBuZSAkT2JqZWN0TmFtZSApIHsKCiAgICAgICAgIyB0aGlzIGV4cHJlc3Npb24gZG9lcyBub3QgbWF0Y2ggcmVxdWVzdGVkIHR5cGUKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgYXR0cmlidXRlIHR5cGUKICAgIG15ICRBdHRyaWJ1dGVUeXBlID0gJEV4cHJlc3Npb25EYXRhLT57QXR0cmlidXRlfS0+e05hbWV9OwoKICAgICMgY2hlY2sgZm9yIGNoYW5nZWQgYXR0cmlidXRlcyBhbmQgYXZhaWxhYmxlIGF0dHJpYnV0ZXMgb2YgZXhwcmVzc2lvbgogICAgaWYgKCAkQXR0cmlidXRlVHlwZSAmJiBAQXR0cmlidXRlc0NoYW5nZWQgKSB7CgogICAgICAgICMgY2hlY2sgZm9yIG91ciBhdHRyaWJ1dGUgaW4gY2hhbmdlZCBhdHRyaWJ1dGUgbGlzdAogICAgICAgIG15IEBBdHRyaWJ1dGVGb3VuZCA9IGdyZXAgeyAkXyBlcSAkQXR0cmlidXRlVHlwZSB9IEBBdHRyaWJ1dGVzQ2hhbmdlZDsKCiAgICAgICAgIyB0aGlzIGV4cHJlc3Npb24gZG9lcyBub3QgaGF2ZSB0aGUgcmVxdWVzdGVkIGF0dHJpYnV0ZQogICAgICAgIHJldHVybiBpZiAhQEF0dHJpYnV0ZUZvdW5kOwogICAgfQoKICAgICMgZ2V0IG9iamVjdCBkYXRhCiAgICBteSAkRXhwcmVzc2lvbk9iamVjdERhdGEgPSAkU2VsZi0+T2JqZWN0RGF0YUdldCgKICAgICAgICBDb25kaXRpb25JRCA9PiAkRXhwcmVzc2lvbi0+e0NvbmRpdGlvbklEfSwKICAgICAgICBPYmplY3ROYW1lICA9PiAkT2JqZWN0TmFtZSwKICAgICAgICBTZWxlY3RvciAgICA9PiAkRXhwcmVzc2lvbi0+e1NlbGVjdG9yfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBmb3IgZXhwcmVzc2lvbiBvYmplY3QgZGF0YQogICAgIyBubyBuZWVkIHRvIGV4ZWN1dGUgb3BlcmF0b3IgaWYgaXQgaXMgYW4gZW1wdHkgYXJyYXkgcmVmCiAgICBpZiAoCiAgICAgICAgISRFeHByZXNzaW9uT2JqZWN0RGF0YQogICAgICAgIHx8IHJlZiAkRXhwcmVzc2lvbk9iamVjdERhdGEgbmUgJ0FSUkFZJwogICAgICAgIHx8IHJlZiAkRXhwcmVzc2lvbk9iamVjdERhdGEgZXEgJ0FSUkFZJyAmJiAhQHskRXhwcmVzc2lvbk9iamVjdERhdGF9CiAgICAgICAgKQogICAgewogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIGF0dHJpYnV0ZSB0eXBlCiAgICBpZiAoICEkQXR0cmlidXRlVHlwZSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIGF0dHJpYnV0ZSAkT2JqZWN0TmFtZSAoJEV4cHJlc3Npb24tPntTZWxlY3Rvcn0pIGZvdW5kISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBmb3Igb2JqZWN0IGF0dHJpYnV0ZQogICAgZm9yIG15ICRFeHByZXNzaW9uT2JqZWN0ICggQHskRXhwcmVzc2lvbk9iamVjdERhdGF9ICkgewogICAgICAgIGlmICggIWV4aXN0cyAkRXhwcmVzc2lvbk9iamVjdC0+eyRBdHRyaWJ1dGVUeXBlfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIG9iamVjdCBhdHRyaWJ1dGUgZm9yICRPYmplY3ROYW1lICgkQXR0cmlidXRlVHlwZSkgZm91bmQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHJldHVybiByZXN1bHQgb2YgdGhlIGV4cHJlc3Npb25zIGV4ZWN1dGlvbgogICAgbXkgJFJlc3VsdCA9ICRTZWxmLT5PcGVyYXRvckV4ZWN1dGUoCiAgICAgICAgT3BlcmF0b3JOYW1lID0+ICRFeHByZXNzaW9uRGF0YS0+e09wZXJhdG9yfS0+e05hbWV9LAogICAgICAgIEF0dHJpYnV0ZSAgICA9PiAkQXR0cmlidXRlVHlwZSwKICAgICAgICBTZWxlY3RvciAgICAgPT4gJEV4cHJlc3Npb24tPntTZWxlY3Rvcn0sCiAgICAgICAgT2JqZWN0RGF0YSAgID0+ICRFeHByZXNzaW9uT2JqZWN0RGF0YSwKICAgICAgICBDb21wYXJlVmFsdWUgPT4gJEV4cHJlc3Npb24tPntDb21wYXJlVmFsdWV9LAogICAgICAgIFVzZXJJRCAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyByZXR1cm4gcmVzdWx0IG9mIHRoZSBleHByZXNzaW9ucyBleGVjdXRpb24KICAgIHJldHVybiAkUmVzdWx0Owp9Cgo9aGVhZDEgUFJJVkFURSBJTlRFUkZBQ0UKCj1oZWFkMiBfRXhwcmVzc2lvbk1hdGNoSW5pdCgpCgpSZXR1cm5zIG9iamVjdCwgYXR0cmlidXRlIGFuZCBvcGVyYXRvciBvZiBhIGdpdmVuIGV4cHJlc3Npb24uCgogICAgbXkgJEV4cHJlc3Npb25EYXRhID0gJENvbmRpdGlvbk9iamVjdC0+X0V4cHJlc3Npb25NYXRjaEluaXQoCiAgICAgICAgRXhwcmVzc2lvbiA9PiAkRXhwcmVzc2lvblJlZiwKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIF9FeHByZXNzaW9uTWF0Y2hJbml0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBleHRyYWN0IGV4cHJlc3Npb24KICAgIG15ICRFeHByZXNzaW9uID0gJFBhcmFte0V4cHJlc3Npb259OwoKICAgICMgZGVjbGFyZSBleHByZXNzaW9uIGRhdGEKICAgIG15ICVFeHByZXNzaW9uRGF0YTsKCiAgICAjIGdldCBvYmplY3QgZGF0YQogICAgJEV4cHJlc3Npb25EYXRhe09iamVjdH0gPSAkU2VsZi0+T2JqZWN0R2V0KAogICAgICAgIE9iamVjdElEID0+ICRFeHByZXNzaW9uLT57T2JqZWN0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGZvciBvYmplY3QgZGF0YQogICAgaWYgKCAhJEV4cHJlc3Npb25EYXRhe09iamVjdH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJObyB2YWx1ZSBmb3IgJ09iamVjdCcgd2l0aCBJRCAnJEV4cHJlc3Npb24tPntPYmplY3RJRH0nISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgYXR0cmlidXRlIGRhdGEKICAgICRFeHByZXNzaW9uRGF0YXtBdHRyaWJ1dGV9ID0gJFNlbGYtPkF0dHJpYnV0ZUdldCgKICAgICAgICBBdHRyaWJ1dGVJRCA9PiAkRXhwcmVzc2lvbi0+e0F0dHJpYnV0ZUlEfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBmb3IgYXR0cmlidXRlIGRhdGEKICAgIGlmICggISRFeHByZXNzaW9uRGF0YXtBdHRyaWJ1dGV9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gdmFsdWUgZm9yICdBdHRyaWJ1dGUnIHdpdGggSUQgJyRFeHByZXNzaW9uLT57QXR0cmlidXRlSUR9JyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IG9wZXJhdG9yIGRhdGEKICAgICRFeHByZXNzaW9uRGF0YXtPcGVyYXRvcn0gPSAkU2VsZi0+T3BlcmF0b3JHZXQoCiAgICAgICAgT3BlcmF0b3JJRCA9PiAkRXhwcmVzc2lvbi0+e09wZXJhdG9ySUR9LAogICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZm9yIG9wZXJhdG9yIGRhdGEKICAgIGlmICggISRFeHByZXNzaW9uRGF0YXtPcGVyYXRvcn0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJObyB2YWx1ZSBmb3IgJ09wZXJhdG9yJyB3aXRoIElEICckRXhwcmVzc2lvbi0+e09wZXJhdG9ySUR9JyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHJldHVybiBcJUV4cHJlc3Npb25EYXRhOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMCondition/Object.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T2JqZWN0OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uOjpPYmplY3QgLSBjb25kaXRpb24gb2JqZWN0IGxpYgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBPYmplY3RBZGQoKQoKQWRkIGEgbmV3IGNvbmRpdGlvbiBvYmplY3QuCgogICAgbXkgJENvbmRpdGlvbklEID0gJENvbmRpdGlvbk9iamVjdC0+T2JqZWN0QWRkKAogICAgICAgIE5hbWUgICA9PiAnT2JqZWN0TmFtZScsCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIE9iamVjdEFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhOYW1lIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBtYWtlIGxvb2t1cCB3aXRoIGdpdmVuIG5hbWUgZm9yIGNoZWNrcwogICAgbXkgJE9iamVjdElEID0gJFNlbGYtPk9iamVjdExvb2t1cCgKICAgICAgICBOYW1lID0+ICRQYXJhbXtOYW1lfSwKICAgICk7CgogICAgIyBjaGVjayBpZiBvYmplY3QgbmFtZSBhbHJlYWR5IGV4aXN0cwogICAgaWYgKCRPYmplY3RJRCkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQ29uZGl0aW9uIG9iamVjdCAoJFBhcmFte05hbWV9KSBhbHJlYWR5IGV4aXN0cyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgYWRkIG5ldyBvYmplY3QgbmFtZSB0byBkYXRhYmFzZQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICdJTlNFUlQgSU5UTyBjb25kaXRpb25fb2JqZWN0ICcKICAgICAgICAgICAgLiAnKG5hbWUpICcKICAgICAgICAgICAgLiAnVkFMVUVTICg/KScsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17TmFtZX0gXSwKICAgICk7CgogICAgIyBnZXQgaWQgb2YgY3JlYXRlZCBvYmplY3QKICAgICRPYmplY3RJRCA9ICRTZWxmLT5PYmplY3RMb29rdXAoCiAgICAgICAgTmFtZSA9PiAkUGFyYW17TmFtZX0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgb2JqZWN0IGNvdWxkIGJlIGFkZGVkCiAgICBpZiAoICEkT2JqZWN0SUQgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJPYmplY3RBZGQoKSBmYWlsZWQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkRlbGV0ZSgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICdPYmplY3RMaXN0JywKICAgICk7CgogICAgcmV0dXJuICRPYmplY3RJRDsKfQoKPWhlYWQyIE9iamVjdFVwZGF0ZSgpCgpVcGRhdGUgYSBjb25kaXRpb24gb2JqZWN0LgoKICAgIG15ICRTdWNjZXNzID0gJENvbmRpdGlvbk9iamVjdC0+T2JqZWN0VXBkYXRlKAogICAgICAgIE9iamVjdElEID0+IDEyMzQsCiAgICAgICAgTmFtZSAgICAgPT4gJ05ld09iamVjdE5hbWUnLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIE9iamVjdFVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhPYmplY3RJRCBOYW1lIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgb2JqZWN0IGRhdGEKICAgIG15ICRPYmplY3REYXRhID0gJFNlbGYtPk9iamVjdEdldCgKICAgICAgICBPYmplY3RJRCA9PiAkUGFyYW17T2JqZWN0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIG9iamVjdCBkYXRhCiAgICBpZiAoICEkT2JqZWN0RGF0YSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk9iamVjdFVwZGF0ZSBvZiAkUGFyYW17T2JqZWN0SUR9IGZhaWxlZCEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgdXBkYXRlIG9iamVjdCBpbiBkYXRhYmFzZQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICdVUERBVEUgY29uZGl0aW9uX29iamVjdCAnCiAgICAgICAgICAgIC4gJ1NFVCBuYW1lID0gPyAnCiAgICAgICAgICAgIC4gJ1dIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17TmFtZX0sCiAgICAgICAgICAgIFwkUGFyYW17T2JqZWN0SUR9LAogICAgICAgIF0sCiAgICApOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBmb3IgbXkgJEtleSAoCiAgICAgICAgJ09iamVjdExpc3QnLAogICAgICAgICdPYmplY3RHZXQ6Ok9iamVjdElEOjonIC4gJFBhcmFte09iamVjdElEfSwKICAgICAgICAnT2JqZWN0TG9va3VwOjpPYmplY3RJRDo6JyAuICRQYXJhbXtPYmplY3RJRH0sCiAgICAgICAgJ09iamVjdExvb2t1cDo6TmFtZTo6JyAuICRPYmplY3REYXRhLT57TmFtZX0sICAgICMgdXNlIHRoZSBvbGQgbmFtZQogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBPYmplY3RHZXQoKQoKR2V0IGEgY29uZGl0aW9uIG9iamVjdCBmb3IgYSBnaXZlbiBvYmplY3QgaWQuClJldHVybnMgYSBoYXNoIHJlZmVyZW5jZSBvZiB0aGUgb2JqZWN0IGRhdGEuCgogICAgbXkgJENvbmRpdGlvbk9iamVjdFJlZiA9ICRDb25kaXRpb25PYmplY3QtPk9iamVjdEdldCgKICAgICAgICBPYmplY3RJRCA9PiAxMjM0LAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKVGhlIHJldHVybmVkIGhhc2ggcmVmZXJlbmNlIGNvbnRhaW5zIGZvbGxvd2luZyBlbGVtZW50czoKCiAgICAkQ29uZGl0aW9uT2JqZWN0LT57T2JqZWN0SUR9CiAgICAkQ29uZGl0aW9uT2JqZWN0LT57TmFtZX0KCj1jdXQKCnN1YiBPYmplY3RHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoT2JqZWN0SUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGNhY2hlCiAgICBteSAkQ2FjaGVLZXkgPSAnT2JqZWN0R2V0OjpPYmplY3RJRDo6JyAuICRQYXJhbXtPYmplY3RJRH07CiAgICBteSAkQ2FjaGUgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5LAogICAgKTsKICAgIHJldHVybiAkQ2FjaGUgaWYgJENhY2hlOwoKICAgICMgcHJlcGFyZSBTUUwgc3RhdGVtZW50CiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgIFNRTCAgID0+ICdTRUxFQ1QgaWQsIG5hbWUgRlJPTSBjb25kaXRpb25fb2JqZWN0IFdIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte09iamVjdElEfSBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJU9iamVjdERhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRPYmplY3REYXRhe09iamVjdElEfSA9ICRSb3dbMF07CiAgICAgICAgJE9iamVjdERhdGF7TmFtZX0gICAgID0gJFJvd1sxXTsKICAgIH0KCiAgICAjIGNoZWNrIGVycm9yCiAgICBpZiAoICElT2JqZWN0RGF0YSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk9iamVjdElEICRQYXJhbXtPYmplY3RJRH0gZG9lcyBub3QgZXhpc3QhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+IFwlT2JqZWN0RGF0YSwKICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICk7CgogICAgcmV0dXJuIFwlT2JqZWN0RGF0YTsKfQoKPWhlYWQyIE9iamVjdExvb2t1cCgpCgpUaGlzIG1ldGhvZCBkb2VzIGEgbG9va3VwIGZvciBhIGNvbmRpdGlvbiBvYmplY3QuIElmIGFuIG9iamVjdAppZCBpcyBnaXZlbiwgaXQgcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgb2JqZWN0LiBJZiB0aGUgbmFtZSBvZiB0aGUKb2JqZWN0IGlzIGdpdmVuLCB0aGUgYXBwcm9wcmlhdGUgaWQgaXMgcmV0dXJuZWQuCgogICAgbXkgJE9iamVjdE5hbWUgPSAkQ29uZGl0aW9uT2JqZWN0LT5PYmplY3RMb29rdXAoCiAgICAgICAgT2JqZWN0SUQgPT4gNDMyMSwKICAgICk7CgogICAgbXkgJE9iamVjdElEID0gJENvbmRpdGlvbk9iamVjdC0+T2JqZWN0TG9va3VwKAogICAgICAgIE5hbWUgICA9PiAnT2JqZWN0TmFtZScsCiAgICApOwoKPWN1dAoKc3ViIE9iamVjdExvb2t1cCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgaWYgYm90aCBwYXJhbWV0ZXJzIGFyZSBnaXZlbgogICAgaWYgKCAkUGFyYW17T2JqZWN0SUR9ICYmICRQYXJhbXtOYW1lfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgT2JqZWN0SUQgb3IgTmFtZSAtIG5vdCBib3RoIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBpZiBib3RoIHBhcmFtZXRlcnMgYXJlIG5vdCBnaXZlbgogICAgaWYgKCAhJFBhcmFte09iamVjdElEfSAmJiAhJFBhcmFte05hbWV9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBPYmplY3RJRCBvciBOYW1lIC0gbm9uZSBpcyBnaXZlbiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgaWYgT2JqZWN0SUQgaXMgYSBudW1iZXIKICAgIGlmICggJFBhcmFte09iamVjdElEfSAmJiAkUGFyYW17T2JqZWN0SUR9ICF+IG17IFxBIFxkKyBceiB9eG1zICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiT2JqZWN0SUQgbXVzdCBiZSBhIG51bWJlciEgKE9iamVjdElEOiAkUGFyYW17T2JqZWN0SUR9KSIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJENhY2hlS2V5OwoKICAgICMgcHJlcGFyZSBTUUwgc3RhdGVtZW50cwogICAgaWYgKCAkUGFyYW17T2JqZWN0SUR9ICkgewoKICAgICAgICAjIGNoZWNrIGNhY2hlCiAgICAgICAgJENhY2hlS2V5ID0gJ09iamVjdExvb2t1cDo6T2JqZWN0SUQ6OicgLiAkUGFyYW17T2JqZWN0SUR9OwogICAgICAgIG15ICRDYWNoZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICAgICApOwogICAgICAgIHJldHVybiAkQ2FjaGUgaWYgJENhY2hlOwoKICAgICAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgICA9PiAnU0VMRUNUIG5hbWUgRlJPTSBjb25kaXRpb25fb2JqZWN0IFdIRVJFIGlkID0gPycsCiAgICAgICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtPYmplY3RJRH0gXSwKICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17TmFtZX0gKSB7CgogICAgICAgICMgY2hlY2sgY2FjaGUKICAgICAgICAkQ2FjaGVLZXkgPSAnT2JqZWN0TG9va3VwOjpOYW1lOjonIC4gJFBhcmFte05hbWV9OwogICAgICAgIG15ICRDYWNoZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICAgICApOwogICAgICAgIHJldHVybiAkQ2FjaGUgaWYgJENhY2hlOwoKICAgICAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgICA9PiAnU0VMRUNUIGlkIEZST00gY29uZGl0aW9uX29iamVjdCBXSEVSRSBuYW1lID0gPycsCiAgICAgICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtOYW1lfSBdLAogICAgICAgICAgICBMaW1pdCA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkTG9va3VwOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkTG9va3VwID0gJFJvd1swXTsKICAgIH0KCiAgICAjIHNldCBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+ICRMb29rdXAsCiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICApOwoKICAgIHJldHVybiAkTG9va3VwOwp9Cgo9aGVhZDIgT2JqZWN0TGlzdCgpCgpSZXR1cm5zIGEgbGlzdCBvZiBhbGwgY29uZGl0aW9uIG9iamVjdHMgYXMgaGFzaCByZWZlcmVuY2UKCiAgICBteSAkQ29uZGl0aW9uT2JqZWN0c1JlZiA9ICRDb25kaXRpb25PYmplY3QtPk9iamVjdExpc3QoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKVGhlIHJldHVybmVkIGhhc2ggcmVmZXJlbmNlIGNvbnRhaW5zIGVudHJpZXMgbGlrZSB0aGlzOgoKICAgICRDb25kaXRpb25PYmplY3R7T2JqZWN0SUR9ID0gJ09iamVjdE5hbWUnCgo9Y3V0CgpzdWIgT2JqZWN0TGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJENhY2hlS2V5ID0gJ09iamVjdExpc3QnOwogICAgbXkgJENhY2hlICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkdldCgKICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICk7CiAgICByZXR1cm4gJENhY2hlIGlmICRDYWNoZTsKCiAgICAjIHByZXBhcmUgU1FMIHN0YXRlbWVudAogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBpZCwgbmFtZSBGUk9NIGNvbmRpdGlvbl9vYmplY3QnLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICVPYmplY3RMaXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkT2JqZWN0TGlzdHsgJFJvd1swXSB9ID0gJFJvd1sxXTsKICAgIH0KCiAgICAjIHNldCBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+IFwlT2JqZWN0TGlzdCwKICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICk7CgogICAgcmV0dXJuIFwlT2JqZWN0TGlzdDsKfQoKPWhlYWQyIE9iamVjdERlbGV0ZSgpCgpEZWxldGVzIGEgY29uZGl0aW9uIG9iamVjdC4KCiAgICBteSAkU3VjY2VzcyA9ICRDb25kaXRpb25PYmplY3QtPk9iamVjdERlbGV0ZSgKICAgICAgICBPYmplY3RJRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgT2JqZWN0RGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE9iamVjdElEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBsb29rdXAgb2JqZWN0IG5hbWUKICAgIG15ICRPYmplY3ROYW1lID0gJFNlbGYtPk9iamVjdExvb2t1cCgKICAgICAgICBPYmplY3RJRCA9PiAkUGFyYW17T2JqZWN0SUR9LAogICAgKTsKCiAgICAjIGRlbGV0ZSBjb25kaXRpb24gb2JqZWN0IGZyb20gZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnREVMRVRFIEZST00gY29uZGl0aW9uX29iamVjdCAnCiAgICAgICAgICAgIC4gJ1dIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17T2JqZWN0SUR9IF0sCiAgICApOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBmb3IgbXkgJEtleSAoCiAgICAgICAgJ09iamVjdExpc3QnLAogICAgICAgICdPYmplY3RHZXQ6Ok9iamVjdElEOjonIC4gJFBhcmFte09iamVjdElEfSwKICAgICAgICAnT2JqZWN0TG9va3VwOjpPYmplY3RJRDo6JyAuICRQYXJhbXtPYmplY3RJRH0sCiAgICAgICAgJ09iamVjdExvb2t1cDo6TmFtZTo6JyAuICRPYmplY3ROYW1lLAogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBPYmplY3RTZWxlY3Rvckxpc3QoKQoKUmV0dXJucyBhIGxpc3Qgb2YgYWxsIHNlbGVjdG9ycyBhdmFpbGFibGUgZm9yIHRoZSBnaXZlbiBvYmplY3QgaWQgYW5kIGNvbmRpdGlvbiBpZCBhcyBoYXNoIHJlZmVyZW5jZQoKICAgIG15ICRTZWxlY3Rvckxpc3QgPSAkQ29uZGl0aW9uT2JqZWN0LT5PYmplY3RTZWxlY3Rvckxpc3QoCiAgICAgICAgT2JqZWN0SUQgICAgPT4gMTIzNCwKICAgICAgICBDb25kaXRpb25JRCA9PiA1LAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKUmV0dXJucyBhIGhhc2ggcmVmZXJlbmNlIGxpa2UgdGhpcyAoZm9yIEM8d29ya29yZGVyPiBvYmplY3RzKQoKICAgICRTZWxlY3Rvckxpc3QgPSB7CiAgICAgICAgMTAgICAgPT4gJzEgLSBXb3Jrb3JkZXJUaXRsZSBvZiBXb3Jrb3JkZXIgMScsCiAgICAgICAgMTIgICAgPT4gJzIgLSBXb3Jrb3JkZXJUaXRsZSBvZiBXb3Jrb3JkZXIgMicsCiAgICAgICAgMzQgICAgPT4gJzMgLSBXb3Jrb3JkZXJUaXRsZSBvZiBXb3Jrb3JkZXIgMycsCiAgICAgICAgJ2FueScgPT4gJ2FueScsCiAgICAgICAgJ2FsbCcgPT4gJ2FsbCcsCiAgICB9CgpvciBmb3IgY2hhbmdlIG9iamVjdHM6CgogICAgJFNlbGVjdG9yTGlzdCA9IHsKICAgICAgICA0NTYgPT4gJ0NoYW5nZSMgMjAxMDAxMTYxMDAwMDYxOCcsCiAgICB9Cgo9Y3V0CgpzdWIgT2JqZWN0U2VsZWN0b3JMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE9iamVjdElEIENvbmRpdGlvbklEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBsb29rdXAgb2JqZWN0IG5hbWUKICAgIG15ICRPYmplY3ROYW1lID0gJFNlbGYtPk9iamVjdExvb2t1cCgKICAgICAgICBPYmplY3RJRCA9PiAkUGFyYW17T2JqZWN0SUR9LAogICAgKTsKCiAgICAjIGdldCBjb25kaXRpb24gZGF0YQogICAgbXkgJENvbmRpdGlvbkRhdGEgPSAkU2VsZi0+Q29uZGl0aW9uR2V0KAogICAgICAgIENvbmRpdGlvbklEID0+ICRQYXJhbXtDb25kaXRpb25JRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZm9yIGVycm9yCiAgICByZXR1cm4gaWYgISRDb25kaXRpb25EYXRhOwoKICAgICMgZ2V0IG9iamVjdCBiYWNrZW5kCiAgICBteSAkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T2JqZWN0OjonIC4gJE9iamVjdE5hbWUgKTsKCiAgICAjIGNoZWNrIGZvciBlcnJvcgogICAgcmV0dXJuIGlmICEkQmFja2VuZE9iamVjdDsKCiAgICAjIGRlZmluZSBkZWZhdWx0IGZ1bmN0aW9ucyBmb3IgYmFja2VuZAogICAgbXkgJFN1YiA9ICdTZWxlY3Rvckxpc3QnOwoKICAgICMgY2hlY2sgZm9yIGF2YWlsYWJsZSBmdW5jdGlvbgogICAgaWYgKCAhJEJhY2tlbmRPYmplY3QtPmNhbigkU3ViKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIGZ1bmN0aW9uICckU3ViJyBhdmFpbGFibGUgZm9yIGJhY2tlbmQgJyRPYmplY3ROYW1lJyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZXhlY3V0ZSB0aGUgYWN0aW9uIHN1YnJvdXRpbmUKICAgIG15ICRTZWxlY3Rvckxpc3QgPSAkQmFja2VuZE9iamVjdC0+JFN1YigKICAgICAgICBDb25kaXRpb25JRCAgPT4gJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICBDaGFuZ2VJRCAgICAgPT4gJENvbmRpdGlvbkRhdGEtPntDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIEV4cHJlc3Npb25JRCA9PiAkUGFyYW17RXhwcmVzc2lvbklEfSwKICAgICAgICBBY3Rpb25JRCAgICAgPT4gJFBhcmFte0FjdGlvbklEfSwKICAgICkgfHwge307CgogICAgcmV0dXJuICRTZWxlY3Rvckxpc3Q7Cn0KCj1oZWFkMiBPYmplY3RDb21wYXJlVmFsdWVMaXN0KCkKClJldHVybnMgYSBsaXN0IG9mIGF2YWlsYWJsZSBDb21wYXJlVmFsdWVzIGZvciB0aGUgZ2l2ZW4gb2JqZWN0IGlkIGFuZCBhdHRyaWJ1dGUgaWQgYXMgaGFzaCByZWZlcmVuY2UuCgogICAgbXkgJENvbXBhcmVWYWx1ZUxpc3QgPSAkQ29uZGl0aW9uT2JqZWN0LT5PYmplY3RDb21wYXJlVmFsdWVMaXN0KAogICAgICAgIE9iamVjdElEICAgICAgPT4gMTIzNCwKICAgICAgICBBdHRyaWJ1dGVOYW1lID0+ICdXb3JrT3JkZXJTdGF0ZUlEJywKICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICApOwoKUmV0dXJucyBhIGhhc2ggcmVmZXJlbmNlIGxpa2UgdGhpcywgZm9yIGEgQzx3b3Jrb3JkZXI+IG9iamVjdCBhbmQgdGhlIGF0dHJpYnV0ZSAnV29ya09yZGVyU3RhdGVJRCc6CgogICAgJENvbXBhcmVWYWx1ZUxpc3QgPSB7CiAgICAgICAgMTAgICAgPT4gJ2NyZWF0ZWQnLAogICAgICAgIDEyICAgID0+ICdhY2NlcHRlZCcsCiAgICAgICAgMTMgICAgPT4gJ3JlYWR5JywKICAgICAgICAxNCAgICA9PiAnaW4gcHJvZ3Jlc3MnLAogICAgICAgIDE1ICAgID0+ICdjbG9zZWQnLAogICAgICAgIDE2ICAgID0+ICdjYW5jZWxlZCcsCiAgICB9Cgo9Y3V0CgpzdWIgT2JqZWN0Q29tcGFyZVZhbHVlTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhPYmplY3RJRCBBdHRyaWJ1dGVOYW1lIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgb2JqZWN0IG5hbWUKICAgIG15ICRPYmplY3ROYW1lID0gJFBhcmFte09iamVjdE5hbWV9OwogICAgaWYgKCAkUGFyYW17T2JqZWN0SUR9ICkgewogICAgICAgICRPYmplY3ROYW1lID0gJFNlbGYtPk9iamVjdExvb2t1cCgKICAgICAgICAgICAgT2JqZWN0SUQgPT4gJFBhcmFte09iamVjdElEfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IG9iamVjdCB0eXBlCiAgICBteSAkT2JqZWN0VHlwZSA9ICRPYmplY3ROYW1lOwoKICAgICMgZ2V0IG9iamVjdCBiYWNrZW5kCiAgICBteSAkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T2JqZWN0OjonIC4gJE9iamVjdFR5cGUgKTsKCiAgICByZXR1cm4gaWYgISRCYWNrZW5kT2JqZWN0OwoKICAgICMgZGVmaW5lIGRlZmF1bHQgZnVuY3Rpb25zIGZvciBiYWNrZW5kCiAgICBteSAkU3ViID0gJ0NvbXBhcmVWYWx1ZUxpc3QnOwoKICAgICMgY2hlY2sgZm9yIGF2YWlsYWJsZSBmdW5jdGlvbgogICAgaWYgKCAhJEJhY2tlbmRPYmplY3QtPmNhbigkU3ViKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIGZ1bmN0aW9uICckU3ViJyBhdmFpbGFibGUgZm9yIGJhY2tlbmQgJyRPYmplY3RUeXBlJyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZXhlY3V0ZSB0aGUgYWN0aW9uIHN1YnJvdXRpbmUKICAgIG15ICRDb21wYXJlVmFsdWVMaXN0ID0gJEJhY2tlbmRPYmplY3QtPiRTdWIoCiAgICAgICAgQXR0cmlidXRlTmFtZSA9PiAkUGFyYW17QXR0cmlidXRlTmFtZX0sCiAgICAgICAgVXNlcklEICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICkgfHwge307CgogICAgcmV0dXJuICRDb21wYXJlVmFsdWVMaXN0Owp9Cgo9aGVhZDIgT2JqZWN0RGF0YUdldCgpCgpSZXR1cm4gdGhlIGRhdGEgb2YgYSBnaXZlbiB0eXBlIGFuZCBzZWxlY3RvciBvZiBhIGNlcnRhaW4gb2JqZWN0LgoKICAgIG15ICRPYmplY3REYXRhUmVmID0gJENvbmRpdGlvbk9iamVjdC0+T2JqZWN0RGF0YUdldCgKICAgICAgICBDb25kaXRpb25JRCA9PiAxMjM0LAogICAgICAgIE9iamVjdE5hbWUgID0+ICdJVFNNQ2hhbmdlJywgICAgIyBvciBPYmplY3RJRAogICAgICAgIE9iamVjdElEICAgID0+IDEsICAgICAgICAgICAgICAgIyBvciBPYmplY3ROYW1lCiAgICAgICAgU2VsZWN0b3IgICAgPT4gJzEyMycsICAgICAgICAgICAjICAoIE9iamVjdEtleSB8IGFueSB8IGFsbCApCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgT2JqZWN0RGF0YUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDb25kaXRpb25JRCBTZWxlY3RvciBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZWl0aGVyIE9iamVjdE5hbWUgb3IgT2JqZWN0SUQgbXVzdCBiZSBwYXNzZWQKICAgIGlmICggISRQYXJhbXtPYmplY3ROYW1lfSAmJiAhJFBhcmFte09iamVjdElEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ09iamVjdE5hbWUgSUQgb3IgT2JqZWN0SUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIHRoYXQgbm90IGJvdGggT2JqZWN0TmFtZSBhbmQgT2JqZWN0SUQgYXJlIGdpdmVuCiAgICBpZiAoICRQYXJhbXtPYmplY3ROYW1lfSAmJiAkUGFyYW17T2JqZWN0SUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBlaXRoZXIgT2JqZWN0TmFtZSBPUiBPYmplY3RJRCAtIG5vdCBib3RoIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgb2JqZWN0IG5hbWUKICAgIG15ICRPYmplY3ROYW1lID0gJFBhcmFte09iamVjdE5hbWV9OwogICAgaWYgKCAkUGFyYW17T2JqZWN0SUR9ICkgewogICAgICAgICRPYmplY3ROYW1lID0gJFNlbGYtPk9iamVjdExvb2t1cCgKICAgICAgICAgICAgT2JqZWN0SUQgPT4gJFBhcmFte09iamVjdElEfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IG9iamVjdCB0eXBlCiAgICBteSAkT2JqZWN0VHlwZSA9ICRPYmplY3ROYW1lOwoKICAgICMgZ2V0IG9iamVjdCBiYWNrZW5kCiAgICBteSAkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T2JqZWN0OjonIC4gJE9iamVjdFR5cGUgKTsKCiAgICByZXR1cm4gaWYgISRCYWNrZW5kT2JqZWN0OwoKICAgICMgZGVmaW5lIGRlZmF1bHQgZnVuY3Rpb25zIGZvciBiYWNrZW5kCiAgICBteSAkU3ViID0gJ0RhdGFHZXQnOwoKICAgICMgY2hlY2sgZm9yIGF2YWlsYWJsZSBmdW5jdGlvbgogICAgaWYgKCAhJEJhY2tlbmRPYmplY3QtPmNhbigkU3ViKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIGZ1bmN0aW9uICckU3ViJyBhdmFpbGFibGUgZm9yIGJhY2tlbmQgJyRPYmplY3RUeXBlJyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IG9iamVjdCBkYXRhCiAgICBteSAkT2JqZWN0RGF0YSA9ICRCYWNrZW5kT2JqZWN0LT4kU3ViKAogICAgICAgIENvbmRpdGlvbklEID0+ICRQYXJhbXtDb25kaXRpb25JRH0sCiAgICAgICAgU2VsZWN0b3IgICAgPT4gJFBhcmFte1NlbGVjdG9yfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICkgfHwgW107CgogICAgcmV0dXJuICRPYmplY3REYXRhOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMCondition/Operator.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T3BlcmF0b3I7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb246Ok9wZXJhdG9yIC0gY29uZGl0aW9uIG9wZXJhdG9yIGxpYgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBPcGVyYXRvckFkZCgpCgpBZGQgYSBuZXcgY29uZGl0aW9uIG9wZXJhdG9yLgoKICAgIG15ICRPcGVyYXRvcklEID0gJENvbmRpdGlvbk9iamVjdC0+T3BlcmF0b3JBZGQoCiAgICAgICAgTmFtZSAgID0+ICdPcGVyYXRvck5hbWUnLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBPcGVyYXRvckFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhOYW1lIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBtYWtlIGxvb2t1cCB3aXRoIGdpdmVuIG5hbWUgZm9yIGNoZWNrcwogICAgbXkgJE9wZXJhdG9ySUQgPSAkU2VsZi0+T3BlcmF0b3JMb29rdXAoIE5hbWUgPT4gJFBhcmFte05hbWV9ICk7CgogICAgIyBjaGVjayBpZiBvcGVyYXRvciBuYW1lIGFscmVhZHkgZXhpc3RzCiAgICBpZiAoJE9wZXJhdG9ySUQpIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvbmRpdGlvbiBvcGVyYXRvciAoJFBhcmFte05hbWV9KSBhbHJlYWR5IGV4aXN0cyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgYWRkIG5ldyBvcGVyYXRvciBuYW1lIHRvIGRhdGFiYXNlCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJ0lOU0VSVCBJTlRPIGNvbmRpdGlvbl9vcGVyYXRvciAnCiAgICAgICAgICAgIC4gJyhuYW1lKSAnCiAgICAgICAgICAgIC4gJ1ZBTFVFUyAoPyknLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte05hbWV9IF0sCiAgICApOwoKICAgICMgZ2V0IGlkIG9mIGNyZWF0ZWQgb3BlcmF0b3IKICAgICRPcGVyYXRvcklEID0gJFNlbGYtPk9wZXJhdG9yTG9va3VwKAogICAgICAgIE5hbWUgPT4gJFBhcmFte05hbWV9LAogICAgKTsKCiAgICAjIGNoZWNrIGlmIG9wZXJhdG9yIGNvdWxkIGJlIGFkZGVkCiAgICBpZiAoICEkT3BlcmF0b3JJRCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk9wZXJhdG9yQWRkKCkgZmFpbGVkISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBkZWxldGUgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5EZWxldGUoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAnT3BlcmF0b3JMaXN0JywKICAgICk7CgogICAgcmV0dXJuICRPcGVyYXRvcklEOwp9Cgo9aGVhZDIgT3BlcmF0b3JVcGRhdGUoKQoKVXBkYXRlIGEgY29uZGl0aW9uIG9wZXJhdG9yLgoKICAgIG15ICRTdWNjZXNzID0gJENvbmRpdGlvbk9iamVjdC0+T3BlcmF0b3JVcGRhdGUoCiAgICAgICAgT3BlcmF0b3JJRCA9PiAxMjM0LAogICAgICAgIE5hbWUgICAgICAgPT4gJ05ld09wZXJhdG9yTmFtZScsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBPcGVyYXRvclVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhPcGVyYXRvcklEIE5hbWUgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBvcGVyYXRvciBkYXRhCiAgICBteSAkT3BlcmF0b3JEYXRhID0gJFNlbGYtPk9wZXJhdG9yR2V0KAogICAgICAgIE9wZXJhdG9ySUQgPT4gJFBhcmFte09wZXJhdG9ySUR9LAogICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgb3BlcmF0b3IgZGF0YQogICAgaWYgKCAhJE9wZXJhdG9yRGF0YSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk9wZXJhdG9yVXBkYXRlIG9mICRQYXJhbXtPcGVyYXRvcklEfSBmYWlsZWQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHVwZGF0ZSBvcGVyYXRvciBpbiBkYXRhYmFzZQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICdVUERBVEUgY29uZGl0aW9uX29wZXJhdG9yICcKICAgICAgICAgICAgLiAnU0VUIG5hbWUgPSA/ICcKICAgICAgICAgICAgLiAnV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtOYW1lfSwKICAgICAgICAgICAgXCRQYXJhbXtPcGVyYXRvcklEfSwKICAgICAgICBdLAogICAgKTsKCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgZm9yIG15ICRLZXkgKAogICAgICAgICdPcGVyYXRvckxpc3QnLAogICAgICAgICdPcGVyYXRvckdldDo6T3BlcmF0b3JJRDo6JyAuICRQYXJhbXtPcGVyYXRvcklEfSwKICAgICAgICAnT3BlcmF0b3JMb29rdXA6Ok9wZXJhdG9ySUQ6OicgLiAkUGFyYW17T3BlcmF0b3JJRH0sCiAgICAgICAgJ09wZXJhdG9yTG9va3VwOjpOYW1lOjonIC4gJE9wZXJhdG9yRGF0YS0+e05hbWV9LCAgICAjIHVzZSB0aGUgb2xkIG5hbWUKICAgICAgICApCiAgICB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkRlbGV0ZSgKICAgICAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgIEtleSAgPT4gJEtleSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgT3BlcmF0b3JHZXQoKQoKR2V0IGEgY29uZGl0aW9uIG9wZXJhdG9yIGZvciBhIGdpdmVuIG9wZXJhdG9yIGlkLgpSZXR1cm5zIGEgaGFzaCByZWZlcmVuY2Ugb2YgdGhlIG9wZXJhdG9yIGRhdGEuCgogICAgbXkgJENvbmRpdGlvbk9wZXJhdG9yUmVmID0gJENvbmRpdGlvbk9iamVjdC0+T3BlcmF0b3JHZXQoCiAgICAgICAgT3BlcmF0b3JJRCA9PiAxMjM0LAogICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICk7CgpUaGUgcmV0dXJuZWQgaGFzaCByZWZlcmVuY2UgY29udGFpbnMgZm9sbG93aW5nIGVsZW1lbnRzOgoKICAgICRDb25kaXRpb25PcGVyYXRvcntPcGVyYXRvcklEfQogICAgJENvbmRpdGlvbk9wZXJhdG9ye05hbWV9Cgo9Y3V0CgpzdWIgT3BlcmF0b3JHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoT3BlcmF0b3JJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgY2FjaGUKICAgIG15ICRDYWNoZUtleSA9ICdPcGVyYXRvckdldDo6T3BlcmF0b3JJRDo6JyAuICRQYXJhbXtPcGVyYXRvcklEfTsKICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwogICAgcmV0dXJuICRDYWNoZSBpZiAkQ2FjaGU7CgogICAgIyBwcmVwYXJlIFNRTCBzdGF0ZW1lbnQKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJ1NFTEVDVCBpZCwgbmFtZSBGUk9NIGNvbmRpdGlvbl9vcGVyYXRvciBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtPcGVyYXRvcklEfSBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJU9wZXJhdG9yRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJE9wZXJhdG9yRGF0YXtPcGVyYXRvcklEfSA9ICRSb3dbMF07CiAgICAgICAgJE9wZXJhdG9yRGF0YXtOYW1lfSAgICAgICA9ICRSb3dbMV07CiAgICB9CgogICAgIyBjaGVjayBlcnJvcgogICAgaWYgKCAhJU9wZXJhdG9yRGF0YSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk9wZXJhdG9ySUQgJFBhcmFte09wZXJhdG9ySUR9IGRvZXMgbm90IGV4aXN0ISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICBWYWx1ZSA9PiBcJU9wZXJhdG9yRGF0YSwKICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICk7CgogICAgcmV0dXJuIFwlT3BlcmF0b3JEYXRhOwp9Cgo9aGVhZDIgT3BlcmF0b3JMb29rdXAoKQoKVGhpcyBtZXRob2QgZG9lcyBhIGxvb2t1cCBmb3IgYSBjb25kaXRpb24gb3BlcmF0b3IuIElmIGFuIG9wZXJhdG9yCmlkIGlzIGdpdmVuLCBpdCByZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBvcGVyYXRvci4gSWYgdGhlIG5hbWUgb2YgdGhlCm9wZXJhdG9yIGlzIGdpdmVuLCB0aGUgYXBwcm9wcmlhdGUgaWQgaXMgcmV0dXJuZWQuCgogICAgbXkgJE9wZXJhdG9yTmFtZSA9ICRDb25kaXRpb25PYmplY3QtPk9wZXJhdG9yTG9va3VwKAogICAgICAgIE9wZXJhdG9ySUQgPT4gNDMyMSwKICAgICk7CgogICAgbXkgJE9wZXJhdG9ySUQgPSAkQ29uZGl0aW9uT2JqZWN0LT5PcGVyYXRvckxvb2t1cCgKICAgICAgICBOYW1lICAgPT4gJ09wZXJhdG9yTmFtZScsCiAgICApOwoKPWN1dAoKc3ViIE9wZXJhdG9yTG9va3VwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBpZiBib3RoIHBhcmFtZXRlcnMgYXJlIGdpdmVuCiAgICBpZiAoICRQYXJhbXtPcGVyYXRvcklEfSAmJiAkUGFyYW17TmFtZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE9wZXJhdG9ySUQgb3IgTmFtZSAtIG5vdCBib3RoIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBpZiBib3RoIHBhcmFtZXRlcnMgYXJlIG5vdCBnaXZlbgogICAgaWYgKCAhJFBhcmFte09wZXJhdG9ySUR9ICYmICEkUGFyYW17TmFtZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE9wZXJhdG9ySUQgb3IgTmFtZSAtIG5vbmUgaXMgZ2l2ZW4hJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIGlmIE9wZXJhdG9ySUQgaXMgYSBudW1iZXIKICAgIGlmICggJFBhcmFte09wZXJhdG9ySUR9ICYmICRQYXJhbXtPcGVyYXRvcklEfSAhfiBteyBcQSBcZCsgXHogfXhtcyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk9wZXJhdG9ySUQgbXVzdCBiZSBhIG51bWJlciEgKE9wZXJhdG9ySUQ6ICRQYXJhbXtPcGVyYXRvcklEfSkiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRDYWNoZUtleTsKCiAgICAjIHByZXBhcmUgU1FMIHN0YXRlbWVudHMKICAgIGlmICggJFBhcmFte09wZXJhdG9ySUR9ICkgewoKICAgICAgICAjIGNoZWNrIGNhY2hlCiAgICAgICAgJENhY2hlS2V5ID0gJ09wZXJhdG9yTG9va3VwOjpPcGVyYXRvcklEOjonIC4gJFBhcmFte09wZXJhdG9ySUR9OwogICAgICAgIG15ICRDYWNoZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICAgICApOwogICAgICAgIHJldHVybiAkQ2FjaGUgaWYgJENhY2hlOwoKICAgICAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgICA9PiAnU0VMRUNUIG5hbWUgRlJPTSBjb25kaXRpb25fb3BlcmF0b3IgV0hFUkUgaWQgPSA/JywKICAgICAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte09wZXJhdG9ySUR9IF0sCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte05hbWV9ICkgewoKICAgICAgICAjIGNoZWNrIGNhY2hlCiAgICAgICAgJENhY2hlS2V5ID0gJ09wZXJhdG9yTG9va3VwOjpOYW1lOjonIC4gJFBhcmFte05hbWV9OwogICAgICAgIG15ICRDYWNoZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICAgICApOwogICAgICAgIHJldHVybiAkQ2FjaGUgaWYgJENhY2hlOwoKICAgICAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgICA9PiAnU0VMRUNUIGlkIEZST00gY29uZGl0aW9uX29wZXJhdG9yIFdIRVJFIG5hbWUgPSA/JywKICAgICAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte05hbWV9IF0sCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRMb29rdXA7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRMb29rdXAgPSAkUm93WzBdOwogICAgfQoKICAgICMgc2V0IGNhY2hlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+U2V0KAogICAgICAgIFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXksCiAgICAgICAgVmFsdWUgPT4gJExvb2t1cCwKICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICk7CgogICAgcmV0dXJuICRMb29rdXA7Cn0KCj1oZWFkMiBPcGVyYXRvckxpc3QoKQoKUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGNvbmRpdGlvbiBvcGVyYXRvcnMgYXMgaGFzaCByZWZlcmVuY2UKCiAgICBteSAkQ29uZGl0aW9uT3BlcmF0b3JzUmVmID0gJENvbmRpdGlvbk9iamVjdC0+T3BlcmF0b3JMaXN0KAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKClRoZSByZXR1cm5lZCBoYXNoIHJlZmVyZW5jZSBjb250YWlucyBlbnRyaWVzIGxpa2UgdGhpczoKCiAgICAkQ29uZGl0aW9uT3BlcmF0b3J7T2JqZWN0SUR9ID0gJ09iamVjdE5hbWUnCgo9Y3V0CgpzdWIgT3BlcmF0b3JMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIGNhY2hlCiAgICBteSAkQ2FjaGVLZXkgPSAnT3BlcmF0b3JMaXN0JzsKICAgIG15ICRDYWNoZSAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwogICAgcmV0dXJuICRDYWNoZSBpZiAkQ2FjaGU7CgogICAgIyBwcmVwYXJlIFNRTCBzdGF0ZW1lbnQKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQsIG5hbWUgRlJPTSBjb25kaXRpb25fb3BlcmF0b3InLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICVPcGVyYXRvckxpc3Q7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRPcGVyYXRvckxpc3R7ICRSb3dbMF0gfSA9ICRSb3dbMV07CiAgICB9CgogICAgIyBzZXQgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICBWYWx1ZSA9PiBcJU9wZXJhdG9yTGlzdCwKICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICk7CgogICAgcmV0dXJuIFwlT3BlcmF0b3JMaXN0Owp9Cgo9aGVhZDIgT3BlcmF0b3JEZWxldGUoKQoKRGVsZXRlcyBhIGNvbmRpdGlvbiBvcGVyYXRvci4KCiAgICBteSAkU3VjY2VzcyA9ICRDb25kaXRpb25PYmplY3QtPk9wZXJhdG9yRGVsZXRlKAogICAgICAgIE9wZXJhdG9ySUQgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIE9wZXJhdG9yRGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE9wZXJhdG9ySUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGxvb2t1cCBvcGVyYXRvciBuYW1lCiAgICBteSAkT3BlcmF0b3JOYW1lID0gJFNlbGYtPk9wZXJhdG9yTG9va3VwKAogICAgICAgIE9wZXJhdG9ySUQgPT4gJFBhcmFte09wZXJhdG9ySUR9LAogICAgKTsKCiAgICAjIGRlbGV0ZSBjb25kaXRpb24gb3BlcmF0b3IgZnJvbSBkYXRhYmFzZQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICdERUxFVEUgRlJPTSBjb25kaXRpb25fb3BlcmF0b3IgJwogICAgICAgICAgICAuICdXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte09wZXJhdG9ySUR9IF0sCiAgICApOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBmb3IgbXkgJEtleSAoCiAgICAgICAgJ09wZXJhdG9yTGlzdCcsCiAgICAgICAgJ09wZXJhdG9yR2V0OjpPcGVyYXRvcklEOjonIC4gJFBhcmFte09wZXJhdG9ySUR9LAogICAgICAgICdPcGVyYXRvckxvb2t1cDo6T3BlcmF0b3JJRDo6JyAuICRQYXJhbXtPcGVyYXRvcklEfSwKICAgICAgICAnT3BlcmF0b3JMb29rdXA6Ok5hbWU6OicgLiAkT3BlcmF0b3JOYW1lLAogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkS2V5LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBPcGVyYXRvckV4ZWN1dGUoKQoKRXhlY3V0ZXMgdGhlIG9wZXJhdG9yIGFuZCByZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KCiAgICBteSAkUmVzdWx0ID0gJENvbmRpdGlvbk9iamVjdC0+T3BlcmF0b3JFeGVjdXRlKAogICAgICAgIE9wZXJhdG9yTmFtZSA9PiAnaXMnLAogICAgICAgIEF0dHJpYnV0ZSAgICA9PiAnV29ya09yZGVyU3RhdGVJRCcsCiAgICAgICAgU2VsZWN0b3IgICAgID0+ICcxMjM0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICggT2JqZWN0S2V5IHwgYW55IHwgYWxsICkKICAgICAgICBPYmplY3REYXRhICAgPT4gWyAkV29ya09yZGVyRGF0YTEsICRXb3JrT3JkZXJEYXRhMiBdLAogICAgICAgIENvbXBhcmVWYWx1ZSA9PiAnU29tZVZhbHVlJywgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9yIEFjdGlvblZhbHVlCiAgICAgICAgT2JqZWN0TmFtZSAgID0+ICdJVFNNV29ya09yZGVyJywgICAgICAgICAgICAgICAgICAgICAgICMgbmVlZGVkIGZvciBBY3Rpb25WYWx1ZQogICAgICAgIEFjdGlvbklEICAgICA9PiAxMjM0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRlZCBmb3IgQWN0aW9uVmFsdWUKICAgICAgICBBY3Rpb25WYWx1ZSAgPT4gJ1NvbWVWYWx1ZScsICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvciBDb21wYXJlVmFsdWUKICAgICAgICBVc2VySUQgICAgICAgPT4gMTIzNCwKICAgICk7Cgo9Y3V0CgpzdWIgT3BlcmF0b3JFeGVjdXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE9wZXJhdG9yTmFtZSBBdHRyaWJ1dGUgU2VsZWN0b3IgT2JqZWN0RGF0YSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgaGFuZGxlICdDb21wYXJlVmFsdWUnIGFuZCAnQWN0aW9uVmFsdWUnIGluIGEgc3BlY2lhbCB3YXkKICAgIGlmICgKICAgICAgICAoICFleGlzdHMgJFBhcmFte0NvbXBhcmVWYWx1ZX0gfHwgIWRlZmluZWQgJFBhcmFte0NvbXBhcmVWYWx1ZX0gKQogICAgICAgICYmICggIWV4aXN0cyAkUGFyYW17QWN0aW9uVmFsdWV9IHx8ICFkZWZpbmVkICRQYXJhbXtBY3Rpb25WYWx1ZX0gKQogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgZWl0aGVyIENvbXBhcmVWYWx1ZSBvciBBY3Rpb25WYWx1ZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcyBmb3IgYWN0aW9ucwogICAgcmV0dXJuIGlmIGV4aXN0cyAkUGFyYW17QWN0aW9uVmFsdWV9ICYmICEkUGFyYW17T2JqZWN0TmFtZX07CgogICAgIyBnZXQgb2JqZWN0IGRhdGEKICAgIG15ICRPYmplY3REYXRhID0gJFBhcmFte09iamVjdERhdGF9OwoKICAgICMgY2hlY2sgT2JqZWN0RGF0YQogICAgaWYgKCByZWYgJE9iamVjdERhdGEgbmUgJ0FSUkFZJyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ09iamVjdERhdGEgaXMgbm90IGFuIGFycmF5IHJlZmVyZW5jZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZm9yIGFjdGlvbnMgJ2FueScgaXMgbm90IGFsbG93ZWQKICAgIHJldHVybiBpZiBleGlzdHMgJFBhcmFte0FjdGlvblZhbHVlfSAmJiAkUGFyYW17U2VsZWN0b3J9IGVxICdhbnknOwoKICAgICMgZXhlY3V0ZSBvcGVyYXRvciBmb3IgYWN0aW9ucyBoZXJlCiAgICAjIG5vIG5lZWQgdG8gaXRlcmF0ZSBvdmVyIG9iamVjdCBpbiB0aGlzIGNhc2UKICAgIGlmICggZXhpc3RzICRQYXJhbXtBY3Rpb25WYWx1ZX0gKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fT3BlcmF0b3JBY3Rpb25FeGVjdXRlKAogICAgICAgICAgICBPcGVyYXRvciAgICA9PiAkUGFyYW17T3BlcmF0b3JOYW1lfSwKICAgICAgICAgICAgT2JqZWN0TmFtZSAgPT4gJFBhcmFte09iamVjdE5hbWV9LAogICAgICAgICAgICBTZWxlY3RvciAgICA9PiAkUGFyYW17U2VsZWN0b3J9LAogICAgICAgICAgICBBdHRyaWJ1dGUgICA9PiAkUGFyYW17QXR0cmlidXRlfSwKICAgICAgICAgICAgQWN0aW9uSUQgICAgPT4gJFBhcmFte0FjdGlvbklEfSwKICAgICAgICAgICAgQWN0aW9uVmFsdWUgPT4gJFBhcmFte0FjdGlvblZhbHVlfSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHJldHVybiBmYWxzZSBpZiBubyBvYmplY3QgZGF0YSBpcyBnaXZlbgogICAgcmV0dXJuIGlmICFAeyRPYmplY3REYXRhfTsKCiAgICAjIGV4ZWN1dGUgb3BlcmF0b3IgZm9yIGVhY2ggb2JqZWN0CiAgICBteSBAT3BlcmF0b3JFeGVjdXRlUmVzdWx0OwogICAgZm9yIG15ICRPYmplY3QgKCBAeyRPYmplY3REYXRhfSApIHsKCiAgICAgICAgIyBnZXQgZXF1YXRpb24gcmVzdWx0IGZvciBvYmplY3QKICAgICAgICBteSAkUmVzdWx0ID0gJFNlbGYtPl9PcGVyYXRvckV4ZWN1dGUoCiAgICAgICAgICAgIE9wZXJhdG9yTmFtZSA9PiAkUGFyYW17T3BlcmF0b3JOYW1lfSwKICAgICAgICAgICAgVmFsdWUxICAgICAgID0+ICRPYmplY3QtPnsgJFBhcmFte0F0dHJpYnV0ZX0gfSB8fCAnJywKICAgICAgICAgICAgVmFsdWUyICAgICAgID0+ICRQYXJhbXtDb21wYXJlVmFsdWV9LAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKSB8fCAwOwoKICAgICAgICAjIHJldHVybiB0cnVlIGlmIHJlc3VsdCBpcyBwb3NpdGl2ZSBhbmQgJ2FueScgaXMgcmVxdWVzdGVkCiAgICAgICAgaWYgKCAkUGFyYW17U2VsZWN0b3J9IGVxICdhbnknICYmICRSZXN1bHQgKSB7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KCiAgICAgICAgIyByZXR1cm4gZmFsc2UgaWYgcmVzdWx0IGlzIG5lZ2F0aXZlIGFuZCAnYWxsJyBpcyByZXF1ZXN0ZWQKICAgICAgICBpZiAoICRQYXJhbXtTZWxlY3Rvcn0gZXEgJ2FsbCcgJiYgISRSZXN1bHQgKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgc2F2ZSBjdXJyZW50IHJlc3VsdCBmb3IgY29taW5nIGNoZWNrcwogICAgICAgIHB1c2ggQE9wZXJhdG9yRXhlY3V0ZVJlc3VsdCwgJFJlc3VsdDsKICAgIH0KCiAgICAjIGNvdW50IGFsbCByZXN1bHRzIHdoaWNoIGhhdmUgYSB0cnVlIHZhbHVlCiAgICBteSAkVHJ1ZUNvdW50ID0gc2NhbGFyIGdyZXAgeyAkXyA9PSAxIH0gQE9wZXJhdG9yRXhlY3V0ZVJlc3VsdDsKCiAgICAjIHJldHVybiBmYWxzZSBpZiBub3QgYWxsIHJlc3VsdHMgYXJlIHRydWUKICAgIHJldHVybiBpZiAkVHJ1ZUNvdW50ICE9IHNjYWxhciBAeyRPYmplY3REYXRhfTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQxIFBSSVZBVEUgSU5URVJGQUNFCgo9aGVhZDIgX09wZXJhdG9yRXhlY3V0ZSgpCgpSZXR1cm5zIHRydWUgb3IgZmFsc2UgKDEvdW5kZWYpLgoKICAgIG15ICRSZXN1bHQgPSAkQ29uZGl0aW9uT2JqZWN0LT5fT3BlcmF0b3JFeGVjdXRlKAogICAgICAgIE9wZXJhdG9yTmFtZSA9PiAnaXMnLAogICAgICAgIFZhbHVlMSAgICAgICA9PiAnU29tZVZhbHVlJywKICAgICAgICBWYWx1ZTIgICAgICAgPT4gJ1NvbWVPdGhlclZhbHVlJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMTIzNCwKICAgICk7Cgo9Y3V0CgpzdWIgX09wZXJhdG9yRXhlY3V0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhPcGVyYXRvck5hbWUgVXNlcklEKSkgewogICAgICAgIGlmICggIWV4aXN0cyAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFZhbHVlMSBWYWx1ZTIpKSB7CiAgICAgICAgaWYgKCAhZXhpc3RzICRQYXJhbXskQXJndW1lbnR9IHx8ICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIG1hcCBmb3Igb3BlcmF0b3IgYWN0aW9uCiAgICBteSAlT3BlcmF0b3JBY3Rpb24gPSAoCgogICAgICAgICMgY29tbW9uIG1hdGNoaW5nCiAgICAgICAgJ2lzJyAgICAgICAgICAgPT4gJ19PcGVyYXRvckVxdWFsJywKICAgICAgICAnaXMgbm90JyAgICAgICA9PiAnX09wZXJhdG9yTm90RXF1YWwnLAogICAgICAgICdpcyBlbXB0eScgICAgID0+ICdfT3BlcmF0b3JJc0VtcHR5JywKICAgICAgICAnaXMgbm90IGVtcHR5JyA9PiAnX09wZXJhdG9ySXNOb3RFbXB0eScsCgogICAgICAgICMgZGlnaXQgbWF0Y2hpbmcKICAgICAgICAnaXMgZ3JlYXRlciB0aGFuJyA9PiAnX09wZXJhdG9ySXNHcmVhdGVyVGhhbicsCiAgICAgICAgJ2lzIGxlc3MgdGhhbicgICAgPT4gJ19PcGVyYXRvcklzTGVzc1RoYW4nLAoKICAgICAgICAjIGRhdGUgbWF0Y2hpbmcKICAgICAgICAnaXMgYmVmb3JlJyA9PiAnX09wZXJhdG9ySXNCZWZvcmUnLAogICAgICAgICdpcyBhZnRlcicgID0+ICdfT3BlcmF0b3JJc0FmdGVyJywKCiAgICAgICAgIyBzdHJpbmcgbWF0Y2hpbmcKICAgICAgICAnY29udGFpbnMnICAgICA9PiAnX09wZXJhdG9yQ29udGFpbnMnLAogICAgICAgICdub3QgY29udGFpbnMnID0+ICdfT3BlcmF0b3JOb3RDb250YWlucycsCiAgICAgICAgJ2JlZ2lucyB3aXRoJyAgPT4gJ19PcGVyYXRvckJlZ2luc1dpdGgnLAogICAgICAgICdlbmRzIHdpdGgnICAgID0+ICdfT3BlcmF0b3JFbmRzV2l0aCcsCiAgICApOwoKICAgICMgZ2V0IG9wZXJhdG9yIG5hbWUKICAgIG15ICRPcGVyYXRvck5hbWUgPSAkUGFyYW17T3BlcmF0b3JOYW1lfTsKCiAgICAjIGNoZWNrIGZvciBtYXRjaGluZyBvcGVyYXRvcgogICAgaWYgKCAhZXhpc3RzICRPcGVyYXRvckFjdGlvbnskT3BlcmF0b3JOYW1lfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIG1hdGNoaW5nIG9wZXJhdG9yIGZvciAnJE9wZXJhdG9yTmFtZScgZm91bmQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGV4dHJhY3Qgb3BlcmF0b3Igc3ViCiAgICBteSAkU3ViID0gJE9wZXJhdG9yQWN0aW9ueyRPcGVyYXRvck5hbWV9OwoKICAgICMgY2hlY2sgZm9yIGF2YWlsYWJsZSBmdW5jdGlvbgogICAgaWYgKCAhJFNlbGYtPmNhbigkU3ViKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIGZ1bmN0aW9uICckU3ViJyBhdmFpbGFibGUgZm9yICckT3BlcmF0b3JOYW1lJyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZXhlY3V0ZSBleHRyYWN0ZWQgbWF0Y2gKICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+JFN1YigKICAgICAgICBWYWx1ZTEgPT4gJFBhcmFte1ZhbHVlMX0sCiAgICAgICAgVmFsdWUyID0+ICRQYXJhbXtWYWx1ZTJ9LAogICAgKTsKCiAgICByZXR1cm4gJFJlc3VsdDsKfQoKPWhlYWQyIF9PcGVyYXRvckFjdGlvbkV4ZWN1dGUoKQoKUmV0dXJucyB0cnVlIG9yIGZhbHNlICgxL3VuZGVmKSBpZiBnaXZlbiBhY3Rpb24gY291bGQgYmUKZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5LgoKICAgIG15ICRSZXN1bHQgPSAkQ29uZGl0aW9uT2JqZWN0LT5fT3BlcmF0b3JBY3Rpb25FeGVjdXRlKAogICAgICAgIE9wZXJhdG9yICAgID0+ICdzZXQnLAogICAgICAgIE9iamVjdE5hbWUgID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBTZWxlY3RvciAgICA9PiAnMTIzNCcKICAgICAgICBBdHRyaWJ1dGUgICA9PiAnQ2hhbmdlU3RhdGVJRCcsCiAgICAgICAgQWN0aW9uSUQgICAgPT4gMjM0NSwKICAgICAgICBBY3Rpb25WYWx1ZSA9PiAnMTMnLAogICAgICAgIFVzZXJJRCAgICAgID0+IDEyMzQsCiAgICApOwoKPWN1dAoKc3ViIF9PcGVyYXRvckFjdGlvbkV4ZWN1dGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoT3BlcmF0b3IgT2JqZWN0TmFtZSBTZWxlY3RvciBBdHRyaWJ1dGUgQWN0aW9uSUQgQWN0aW9uVmFsdWUgVXNlcklEKSkgewogICAgICAgIGlmICggIWV4aXN0cyAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYgaW4gYSBzcGVjaWFsIHdheQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoQWN0aW9uVmFsdWUpKSB7CiAgICAgICAgaWYgKCAhZXhpc3RzICRQYXJhbXskQXJndW1lbnR9IHx8ICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIG1hcCBmb3Igb3BlcmF0b3IgYWN0aW9uCiAgICBteSAlT3BlcmF0b3JBY3Rpb24gPSAoCiAgICAgICAgJ3NldCcgPT4gJ19PcGVyYXRvclNldCcsCiAgICApOwoKICAgICMgZ2V0IG9wZXJhdG9yIG5hbWUKICAgIG15ICRPcGVyYXRvck5hbWUgPSAkUGFyYW17T3BlcmF0b3J9OwoKICAgICMgY2hlY2sgZm9yIG1hdGNoaW5nIG9wZXJhdG9yCiAgICBpZiAoICFleGlzdHMgJE9wZXJhdG9yQWN0aW9ueyRPcGVyYXRvck5hbWV9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gbWF0Y2hpbmcgb3BlcmF0b3IgZm9yICckT3BlcmF0b3JOYW1lJyBmb3VuZCEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZXh0cmFjdCBvcGVyYXRvciBzdWIKICAgIG15ICRTdWIgPSAkT3BlcmF0b3JBY3Rpb257JE9wZXJhdG9yTmFtZX07CgogICAgIyBjaGVjayBmb3IgYXZhaWxhYmxlIGZ1bmN0aW9uCiAgICBpZiAoICEkU2VsZi0+Y2FuKCRTdWIpICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gZnVuY3Rpb24gJyRTdWInIGF2YWlsYWJsZSBmb3IgJyRPcGVyYXRvck5hbWUnISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBleGVjdXRlIGV4dHJhY3RlZCBhY3Rpb24KICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+JFN1YigKICAgICAgICBPcGVyYXRvciAgICA9PiAkUGFyYW17T3BlcmF0b3J9LAogICAgICAgIE9iamVjdE5hbWUgID0+ICRQYXJhbXtPYmplY3ROYW1lfSwKICAgICAgICBTZWxlY3RvciAgICA9PiAkUGFyYW17U2VsZWN0b3J9LAogICAgICAgIEF0dHJpYnV0ZSAgID0+ICRQYXJhbXtBdHRyaWJ1dGV9LAogICAgICAgIEFjdGlvbklEICAgID0+ICRQYXJhbXtBY3Rpb25JRH0sCiAgICAgICAgQWN0aW9uVmFsdWUgPT4gJFBhcmFte0FjdGlvblZhbHVlfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCj1oZWFkMiBfT3BlcmF0b3JFcXVhbCgpCgpSZXR1cm5zIHRydWUgb3IgZmFsc2UgKDEvdW5kZWYpIGlmIGdpdmVuIHZhbHVlcyBhcmUgZXF1YWwuCgogICAgbXkgJFJlc3VsdCA9ICRDb25kaXRpb25PYmplY3QtPl9PcGVyYXRvckVxdWFsKAogICAgICAgIFZhbHVlMSA9PiAnU29tZVZhbHVlJywKICAgICAgICBWYWx1ZTIgPT4gJ1NvbWVPdGhlclZhbHVlJywKICAgICk7Cgo9Y3V0CgpzdWIgX09wZXJhdG9yRXF1YWwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVmFsdWUxIFZhbHVlMikpIHsKICAgICAgICBpZiAoICFleGlzdHMgJFBhcmFteyRBcmd1bWVudH0gfHwgIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcmV0dXJuIHJlc3VsdCBvZiBlcXVhdGlvbgogICAgcmV0dXJuICRQYXJhbXtWYWx1ZTF9IGVxICRQYXJhbXtWYWx1ZTJ9Owp9Cgo9aGVhZDIgX09wZXJhdG9yTm90RXF1YWwoKQoKUmV0dXJucyB0cnVlIG9yIGZhbHNlICgxL3VuZGVmKSBpZiBnaXZlbiB2YWx1ZXMgYXJlIG5vdCBlcXVhbC4KCiAgICBteSAkUmVzdWx0ID0gJENvbmRpdGlvbk9iamVjdC0+X09wZXJhdG9yTm90RXF1YWwoCiAgICAgICAgVmFsdWUxID0+ICdTb21lVmFsdWUnLAogICAgICAgIFZhbHVlMiA9PiAnU29tZU90aGVyVmFsdWUnLAogICAgKTsKCj1jdXQKCnN1YiBfT3BlcmF0b3JOb3RFcXVhbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhWYWx1ZTEgVmFsdWUyKSkgewogICAgICAgIGlmICggIWV4aXN0cyAkUGFyYW17JEFyZ3VtZW50fSB8fCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyByZXR1cm4gcmVzdWx0IG9mIG5lZ2F0ZWQgZXF1YXRpb24KICAgIHJldHVybiAhJFNlbGYtPl9PcGVyYXRvckVxdWFsKCVQYXJhbSk7Cn0KCj1oZWFkMiBfT3BlcmF0b3JJc0VtcHR5KCkKClJldHVybnMgdHJ1ZSBvciBmYWxzZSAoMS91bmRlZikgaWYgZ2l2ZW4gdmFsdWUgaXMgZW1wdHkuCgogICAgbXkgJFJlc3VsdCA9ICRDb25kaXRpb25PYmplY3QtPl9PcGVyYXRvcklzRW1wdHkoCiAgICAgICAgVmFsdWUxID0+ICcnLAogICAgKTsKCj1jdXQKCnN1YiBfT3BlcmF0b3JJc0VtcHR5IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFZhbHVlMSkpIHsKICAgICAgICBpZiAoICFleGlzdHMgJFBhcmFteyRBcmd1bWVudH0gfHwgIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgbGVuZ3RoIG9mIHZhbHVlCiAgICBteSAkVmFsdWVMZW5ndGggPSBsZW5ndGggJFBhcmFte1ZhbHVlMX07CgogICAgIyByZXR1cm4gcmVzdWx0IG9mIGxlbmd0aCBjaGVjawogICAgcmV0dXJuICRWYWx1ZUxlbmd0aCA9PSAwOwp9Cgo9aGVhZDIgX09wZXJhdG9ySXNOb3RFbXB0eSgpCgpSZXR1cm5zIHRydWUgb3IgZmFsc2UgKDEvdW5kZWYpIGlmIGdpdmVuIHZhbHVlIGlzIG5vdCBlbXB0eS4KCiAgICBteSAkUmVzdWx0ID0gJENvbmRpdGlvbk9iamVjdC0+X09wZXJhdG9ySXNOb3RFbXB0eSgKICAgICAgICBWYWx1ZTEgPT4gJ1NvbWVWYWx1ZScsCiAgICApOwoKPWN1dAoKc3ViIF9PcGVyYXRvcklzTm90RW1wdHkgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVmFsdWUxKSkgewogICAgICAgIGlmICggIWV4aXN0cyAkUGFyYW17JEFyZ3VtZW50fSB8fCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyByZXR1cm4gcmVzdWx0IG9mIG5lZ2F0ZWQgZXF1YXRpb24KICAgIHJldHVybiAhJFNlbGYtPl9PcGVyYXRvcklzRW1wdHkoJVBhcmFtKTsKfQoKPWhlYWQyIF9PcGVyYXRvcklzR3JlYXRlclRoYW4oKQoKUmV0dXJucyB0cnVlIG9yIGZhbHNlICgxL3VuZGVmKSBpZiBWYWx1ZTEgaXMgZ3JlYXRlciB0aGFuCnRoZSBjb21wYXJlIFZhbHVlMi4KCiAgICBteSAkUmVzdWx0ID0gJENvbmRpdGlvbk9iamVjdC0+X09wZXJhdG9ySXNHcmVhdGVyVGhhbigKICAgICAgICBWYWx1ZTEgPT4gMjM0NSwKICAgICAgICBWYWx1ZTIgPT4gMTIzNCwKICAgICk7Cgo9Y3V0CgpzdWIgX09wZXJhdG9ySXNHcmVhdGVyVGhhbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhWYWx1ZTEgVmFsdWUyKSkgewogICAgICAgIGlmICggIWV4aXN0cyAkUGFyYW17JEFyZ3VtZW50fSB8fCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgc2V0IGRlZmF1bHQgdG8gbnVtYmVyIDAgKHplcm8pCiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gMDsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBmb3IgZGlnaXRzLCBhbGxvdyBkZWNpbWFsIHBvaW50LCBhbGxvdyBuZWdhdGl2ZSBudW1iZXJzCiAgICByZXR1cm4gaWYgJFBhcmFte1ZhbHVlMX0gIX4gbXsgXEEgWystXT8gXGQrICggXC4gXGQrICk/IFx6IH14bXM7CiAgICByZXR1cm4gaWYgJFBhcmFte1ZhbHVlMn0gIX4gbXsgXEEgWystXT8gXGQrICggXC4gXGQrICk/IFx6IH14bXM7CgogICAgIyByZXR1cm4gcmVzdWx0IG9mIGdyZWF0ZXIgdGhhbiBjaGVjawogICAgcmV0dXJuICRQYXJhbXtWYWx1ZTF9ID4gJFBhcmFte1ZhbHVlMn07Cn0KCj1oZWFkMiBfT3BlcmF0b3JJc0xlc3NUaGFuKCkKClJldHVybnMgdHJ1ZSBvciBmYWxzZSAoMS91bmRlZikgaWYgVmFsdWUxIGlzIGxlc3MgdGhhbgp0aGUgY29tcGFyZSBWYWx1ZTIuCgogICAgbXkgJFJlc3VsdCA9ICRDb25kaXRpb25PYmplY3QtPl9PcGVyYXRvcklzTGVzc1RoYW4oCiAgICAgICAgVmFsdWUxID0+IDIzNDUsCiAgICAgICAgVmFsdWUyID0+IDEyMzQsCiAgICApOwoKPWN1dAoKc3ViIF9PcGVyYXRvcklzTGVzc1RoYW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVmFsdWUxIFZhbHVlMikpIHsKICAgICAgICBpZiAoICFleGlzdHMgJFBhcmFteyRBcmd1bWVudH0gfHwgIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHNldCBkZWZhdWx0IHRvIG51bWJlciAwICh6ZXJvKQogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSA9IDA7CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgZm9yIGRpZ2l0cywgYWxsb3cgZGVjaW1hbCBwb2ludCwgYWxsb3cgbmVnYXRpdmUgbnVtYmVycwogICAgcmV0dXJuIGlmICRQYXJhbXtWYWx1ZTF9ICF+IG17IFxBIFsrLV0/IFxkKyAoIFwuIFxkKyApPyBceiB9eG1zOwogICAgcmV0dXJuIGlmICRQYXJhbXtWYWx1ZTJ9ICF+IG17IFxBIFsrLV0/IFxkKyAoIFwuIFxkKyApPyBceiB9eG1zOwoKICAgICMgcmV0dXJuIHJlc3VsdCBvZiBsZXNzIHRoYW4gY2hlY2sKICAgIHJldHVybiAkUGFyYW17VmFsdWUxfSA8ICRQYXJhbXtWYWx1ZTJ9Owp9Cgo9aGVhZDIgX09wZXJhdG9ySXNCZWZvcmUoKQoKUmV0dXJucyB0cnVlIG9yIGZhbHNlICgxL3VuZGVmKSBpZiBWYWx1ZTEgaXMgYmVmb3JlIHRoZSBjb21wYXJlIFZhbHVlMi4KCiAgICBteSAkUmVzdWx0ID0gJENvbmRpdGlvbk9iamVjdC0+X09wZXJhdG9ySXNCZWZvcmUoCiAgICAgICAgVmFsdWUxID0+ICcyMDEwLTAxLTAxIDAxOjAxOjAxJywKICAgICAgICBWYWx1ZTIgPT4gJzIwMTAtMDEtMDEgMTA6MDE6MDEnLAogICAgKTsKCj1jdXQKCnN1YiBfT3BlcmF0b3JJc0JlZm9yZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhWYWx1ZTEgVmFsdWUyKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGZvciBkYXRlIGZvcm1hdAogICAgcmV0dXJuIGlmICRQYXJhbXtWYWx1ZTF9ICF+IG17IFxBIFxkezR9LVxkezJ9LVxkezJ9IFxzIFxkezJ9OlxkezJ9OlxkezJ9IFx6IH14bXM7CiAgICByZXR1cm4gaWYgJFBhcmFte1ZhbHVlMn0gIX4gbXsgXEEgXGR7NH0tXGR7Mn0tXGR7Mn0gXHMgXGR7Mn06XGR7Mn06XGR7Mn0gXHogfXhtczsKCiAgICAjIGdldCB0aW1lc3RhbXBzCiAgICBteSAlVGltZXN0YW1wOwogICAgZm9yIG15ICREYXRlIChxdyhWYWx1ZTEgVmFsdWUyKSkgewoKICAgICAgICAjIGNvbnZlcnQgdGltZQogICAgICAgICRUaW1lc3RhbXB7JERhdGV9ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFteyREYXRlfQogICAgICAgICAgICB9CiAgICAgICAgKS0+VG9FcG9jaCgpOwoKICAgICAgICAjIGNoZWNrIGZvciB0aW1lCiAgICAgICAgcmV0dXJuIGlmICEkVGltZXN0YW1weyREYXRlfTsKICAgIH0KCiAgICAjIHJldHVybiByZXN1bHQgb2YgbG93ZXIgdGhhbiBjaGVjawogICAgcmV0dXJuICRUaW1lc3RhbXB7VmFsdWUxfSA8ICRUaW1lc3RhbXB7VmFsdWUyfTsKfQoKPWhlYWQyIF9PcGVyYXRvcklzQWZ0ZXIoKQoKUmV0dXJucyB0cnVlIG9yIGZhbHNlICgxL3VuZGVmKSBpZiBWYWx1ZTEgaXMgYWZ0ZXIgdGhlIGNvbXBhcmUgVmFsdWUyLgoKICAgIG15ICRSZXN1bHQgPSAkQ29uZGl0aW9uT2JqZWN0LT5fT3BlcmF0b3JJc0FmdGVyKAogICAgICAgIFZhbHVlMSA9PiAnMjAxMC0wMS0wMSAxMDowMTowMScsCiAgICAgICAgVmFsdWUyID0+ICcyMDEwLTAxLTAxIDAxOjAxOjAxJywKICAgICk7Cgo9Y3V0CgpzdWIgX09wZXJhdG9ySXNBZnRlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhWYWx1ZTEgVmFsdWUyKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGZvciBkYXRlIGZvcm1hdAogICAgcmV0dXJuIGlmICRQYXJhbXtWYWx1ZTF9ICF+IG17IFxBIFxkezR9LVxkezJ9LVxkezJ9IFxzIFxkezJ9OlxkezJ9OlxkezJ9ICBceiB9eG1zOwogICAgcmV0dXJuIGlmICRQYXJhbXtWYWx1ZTJ9ICF+IG17IFxBIFxkezR9LVxkezJ9LVxkezJ9IFxzIFxkezJ9OlxkezJ9OlxkezJ9ICBceiB9eG1zOwoKICAgICMgcmV0dXJuIHJlc3VsdCBvZiBuZWdhdGVkIGVxdWF0aW9uCiAgICByZXR1cm4gISRTZWxmLT5fT3BlcmF0b3JJc0JlZm9yZSglUGFyYW0pOwp9Cgo9aGVhZDIgX09wZXJhdG9yQ29udGFpbnMoKQoKUmV0dXJucyB0cnVlIG9yIGZhbHNlICgxL3VuZGVmKSBpZiBDPHZhbHVlMT4gY29udGFpbnMgQzx2YWx1ZTI+LgoKICAgIG15ICRSZXN1bHQgPSAkQ29uZGl0aW9uT2JqZWN0LT5fT3BlcmF0b3JDb250YWlucygKICAgICAgICBWYWx1ZTEgPT4gJ1NvbWVWYWx1ZScsCiAgICAgICAgVmFsdWUyID0+ICdWYWx1ZScsCiAgICApOwoKPWN1dAoKc3ViIF9PcGVyYXRvckNvbnRhaW5zIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFZhbHVlMSBWYWx1ZTIpKSB7CiAgICAgICAgaWYgKCAhZXhpc3RzICRQYXJhbXskQXJndW1lbnR9IHx8ICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBsb3dlciBjYXNlLCBmb3IgcGVyZm9ybWFuY2UgaXNzdWVzCiAgICBteSAkTG93ZXJWYWx1ZTEgPSBsYyAkUGFyYW17VmFsdWUxfTsKICAgIG15ICRMb3dlclZhbHVlMiA9IGxjICRQYXJhbXtWYWx1ZTJ9OwoKICAgICMgY2hlY2sgZW1iZWRkZWQgc3RyaW5nCiAgICBteSAkQ29udGFpbnMgPSAkTG93ZXJWYWx1ZTEgPX4gbXsgXEEgLiogJExvd2VyVmFsdWUyIC4qIFx6IH14bXM7CgogICAgIyByZXR1cm4gcmVzdWx0IG9mIGVxdWF0aW9uCiAgICByZXR1cm4gJENvbnRhaW5zOwp9Cgo9aGVhZDIgX09wZXJhdG9yTm90Q29udGFpbnMoKQoKUmV0dXJucyB0cnVlIG9yIGZhbHNlICgxL3VuZGVmKSBpZiBDPHZhbHVlMT4gbm90IGNvbnRhaW5zIEM8dmFsdWUyPi4KCiAgICBteSAkUmVzdWx0ID0gJENvbmRpdGlvbk9iamVjdC0+X09wZXJhdG9yTm90Q29udGFpbnMoCiAgICAgICAgVmFsdWUxID0+ICdTb21lVmFsdWUnLAogICAgICAgIFZhbHVlMiA9PiAnU29tZU90aGVyVmFsdWUnLAogICAgKTsKCj1jdXQKCnN1YiBfT3BlcmF0b3JOb3RDb250YWlucyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhWYWx1ZTEgVmFsdWUyKSkgewogICAgICAgIGlmICggIWV4aXN0cyAkUGFyYW17JEFyZ3VtZW50fSB8fCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyByZXR1cm4gcmVzdWx0IG9mIG5lZ2F0ZWQgZXF1YXRpb24KICAgIHJldHVybiAhJFNlbGYtPl9PcGVyYXRvckNvbnRhaW5zKCVQYXJhbSk7Cn0KCj1oZWFkMiBfT3BlcmF0b3JCZWdpbnNXaXRoKCkKClJldHVybnMgdHJ1ZSBvciBmYWxzZSAoMS91bmRlZikgaWYgQzx2YWx1ZTE+IGJlZ2lucyB3aXRoIEM8dmFsdWUyPi4KCiAgICBteSAkUmVzdWx0ID0gJENvbmRpdGlvbk9iamVjdC0+X09wZXJhdG9yQmVnaW5zV2l0aCgKICAgICAgICBWYWx1ZTEgPT4gJ1NvbWVWYWx1ZScsCiAgICAgICAgVmFsdWUyID0+ICdTb21lJywKICAgICk7Cgo9Y3V0CgpzdWIgX09wZXJhdG9yQmVnaW5zV2l0aCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhWYWx1ZTEgVmFsdWUyKSkgewogICAgICAgIGlmICggIWV4aXN0cyAkUGFyYW17JEFyZ3VtZW50fSB8fCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgbG93ZXIgY2FzZSwgZm9yIHBlcmZvcm1hbmNlIGlzc3VlcwogICAgbXkgJExvd2VyVmFsdWUxID0gbGMgJFBhcmFte1ZhbHVlMX07CiAgICBteSAkTG93ZXJWYWx1ZTIgPSBsYyAkUGFyYW17VmFsdWUyfTsKCiAgICAjIGNoZWNrIGVtYmVkZGVkIHN0cmluZwogICAgbXkgJEJlZ2luc1dpdGggPSAkTG93ZXJWYWx1ZTEgPX4gbXsgXEEgJExvd2VyVmFsdWUyIC4qIFx6IH14bXM7CgogICAgIyByZXR1cm4gcmVzdWx0IG9mIGVxdWF0aW9uCiAgICByZXR1cm4gJEJlZ2luc1dpdGg7Cn0KCj1oZWFkMiBfT3BlcmF0b3JFbmRzV2l0aCgpCgpSZXR1cm5zIHRydWUgb3IgZmFsc2UgKDEvdW5kZWYpIGlmIEM8dmFsdWUxPiBlbmRzIHdpdGggQzx2YWx1ZTI+LgoKICAgIG15ICRSZXN1bHQgPSAkQ29uZGl0aW9uT2JqZWN0LT5fT3BlcmF0b3JFbmRzV2l0aCgKICAgICAgICBWYWx1ZTEgPT4gJ1NvbWVWYWx1ZScsCiAgICAgICAgVmFsdWUyID0+ICdWYWx1ZScsCiAgICApOwoKPWN1dAoKc3ViIF9PcGVyYXRvckVuZHNXaXRoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFZhbHVlMSBWYWx1ZTIpKSB7CiAgICAgICAgaWYgKCAhZXhpc3RzICRQYXJhbXskQXJndW1lbnR9IHx8ICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBsb3dlciBjYXNlLCBmb3IgcGVyZm9ybWFuY2UgaXNzdWVzCiAgICBteSAkTG93ZXJWYWx1ZTEgPSBsYyAkUGFyYW17VmFsdWUxfTsKICAgIG15ICRMb3dlclZhbHVlMiA9IGxjICRQYXJhbXtWYWx1ZTJ9OwoKICAgICMgY2hlY2sgZW1iZWRkZWQgc3RyaW5nCiAgICBteSAkRW5kc1dpdGggPSAkTG93ZXJWYWx1ZTEgPX4gbXsgXEEgLiogJExvd2VyVmFsdWUyIFx6IH14bXM7CgogICAgIyByZXR1cm4gcmVzdWx0IG9mIGVxdWF0aW9uCiAgICByZXR1cm4gJEVuZHNXaXRoOwp9Cgo9aGVhZDIgX09wZXJhdG9yU2V0KCkKClJldHVybnMgdGhlIHN1Y2Nlc3Mgb2Ygc2V0dGluZyBhIG5ldyB2YWx1ZS4KCiAgICBteSAkUmVzdWx0ID0gJENvbmRpdGlvbk9iamVjdC0+X09wZXJhdG9yU2V0KAogICAgICAgIE9wZXJhdG9yICAgID0+ICdzZXQnLAogICAgICAgIE9iamVjdE5hbWUgID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBTZWxlY3RvciAgICA9PiAnMTIzNCcKICAgICAgICBBdHRyaWJ1dGUgICA9PiAnQ2hhbmdlU3RhdGVJRCcsCiAgICAgICAgQWN0aW9uSUQgICAgPT4gJ0NoYW5nZVN0YXRlSUQnLAogICAgICAgIEFjdGlvblZhbHVlID0+ICcxMycsCiAgICAgICAgVXNlcklEICAgICAgPT4gMTIzNCwKICAgICk7Cgo9Y3V0CgpzdWIgX09wZXJhdG9yU2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE9wZXJhdG9yIE9iamVjdE5hbWUgU2VsZWN0b3IgQXR0cmlidXRlIEFjdGlvbklEIEFjdGlvblZhbHVlIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICFleGlzdHMgJFBhcmFteyRBcmd1bWVudH0gfHwgIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IG9wZXJhdG9yIG5hbWUKICAgIG15ICRPcGVyYXRvck5hbWUgPSAkUGFyYW17T2JqZWN0TmFtZX07CgogICAgIyBnZXQgb3BlcmF0b3IgYmFja2VuZAogICAgbXkgJEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T3BlcmF0b3I6OicgLiAkT3BlcmF0b3JOYW1lCiAgICApOwoKICAgIHJldHVybiBpZiAhJEJhY2tlbmRPYmplY3Q7CgogICAgIyBkZWZpbmUgZGVmYXVsdCBmdW5jdGlvbnMgZm9yIGJhY2tlbmQKICAgIG15ICRTdWIgPSAnU2V0JzsKCiAgICAjIGNoZWNrIGZvciBhdmFpbGFibGUgZnVuY3Rpb24KICAgIGlmICggISRCYWNrZW5kT2JqZWN0LT5jYW4oJFN1YikgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJObyBmdW5jdGlvbiAnJFN1YicgYXZhaWxhYmxlIGZvciBiYWNrZW5kICckT3BlcmF0b3JOYW1lJyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgcmVzdWx0IHZhbHVlCiAgICBteSAkUmVzdWx0OwoKICAgICMgZXhlY3V0ZSBleHRyYWN0ZWQgYWN0aW9uIHdpdGggc2VsZWN0b3IgJ2FsbCcKICAgIGlmICggJFBhcmFte1NlbGVjdG9yfSBlcSAnYWxsJyApIHsKCiAgICAgICAgIyBkZWZpbmUgJ2FsbCcgZnVuY3Rpb24gZm9yIGJhY2tlbmQKICAgICAgICAkU3ViID0gJ1NldEFsbCc7CgogICAgICAgICMgY2hlY2sgZm9yIGF2YWlsYWJsZSBmdW5jdGlvbgogICAgICAgIGlmICggISRCYWNrZW5kT2JqZWN0LT5jYW4oJFN1YikgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJObyBmdW5jdGlvbiAnJFN1YicgYXZhaWxhYmxlIGZvciBiYWNrZW5kICckT3BlcmF0b3JOYW1lJyEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGdldCBhY3Rpb24KICAgICAgICBteSAkQWN0aW9uID0gJFNlbGYtPkFjdGlvbkdldCgKICAgICAgICAgICAgQWN0aW9uSUQgPT4gJFBhcmFte0FjdGlvbklEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBhY3Rpb24KICAgICAgICByZXR1cm4gaWYgISRBY3Rpb247CgogICAgICAgICMgZ2V0IG9iamVjdHMgZm9yICdhbGwnCiAgICAgICAgbXkgJEFjdGlvbk9iamVjdHMgPSAkU2VsZi0+T2JqZWN0RGF0YUdldCgKICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJEFjdGlvbi0+e0NvbmRpdGlvbklEfSwKICAgICAgICAgICAgT2JqZWN0TmFtZSAgPT4gJFBhcmFte09iamVjdE5hbWV9LAogICAgICAgICAgICBTZWxlY3RvciAgICA9PiAkUGFyYW17U2VsZWN0b3J9LAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIG9iamVjdHMKICAgICAgICByZXR1cm4gMSBpZiAhJEFjdGlvbk9iamVjdHM7CiAgICAgICAgcmV0dXJuICAgaWYgcmVmICRBY3Rpb25PYmplY3RzIG5lICdBUlJBWSc7CgogICAgICAgICMgZXhlY3V0ZSBhY3Rpb25zIGZvciBhbGwgb2JqZWN0cwogICAgICAgICRSZXN1bHQgPSAkQmFja2VuZE9iamVjdC0+JFN1YigKICAgICAgICAgICAgT3BlcmF0b3IgICAgPT4gJFBhcmFte09wZXJhdG9yfSwKICAgICAgICAgICAgT2JqZWN0TmFtZSAgPT4gJFBhcmFte09iamVjdE5hbWV9LAogICAgICAgICAgICBPYmplY3RzICAgICA9PiAkQWN0aW9uT2JqZWN0cywKICAgICAgICAgICAgQXR0cmlidXRlICAgPT4gJFBhcmFte0F0dHJpYnV0ZX0sCiAgICAgICAgICAgIEFjdGlvblZhbHVlID0+ICRQYXJhbXtBY3Rpb25WYWx1ZX0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBleGVjdXRlIGV4dHJhY3RlZCBhY3Rpb24gd2l0aCBzaW5nbGUgc2VsZWN0b3IKICAgICAgICAkUmVzdWx0ID0gJEJhY2tlbmRPYmplY3QtPiRTdWIoCiAgICAgICAgICAgIE9wZXJhdG9yICAgID0+ICRQYXJhbXtPcGVyYXRvcn0sCiAgICAgICAgICAgIE9iamVjdE5hbWUgID0+ICRQYXJhbXtPYmplY3ROYW1lfSwKICAgICAgICAgICAgU2VsZWN0b3IgICAgPT4gJFBhcmFte1NlbGVjdG9yfSwKICAgICAgICAgICAgQXR0cmlidXRlICAgPT4gJFBhcmFte0F0dHJpYnV0ZX0sCiAgICAgICAgICAgIEFjdGlvblZhbHVlID0+ICRQYXJhbXtBY3Rpb25WYWx1ZX0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMCondition/Object/ITSMChange.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T2JqZWN0OjpJVFNNQ2hhbmdlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T2JqZWN0OjpJVFNNQ2hhbmdlIC0gY29uZGl0aW9uIGl0c20gY2hhbmdlIG9iamVjdCBsaWIKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDb25kaXRpb25PYmplY3RJVFNNQ2hhbmdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb246Ok9iamVjdDo6SVRTTUNoYW5nZScpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBEYXRhR2V0KCkKClJldHVybnMgY2hhbmdlIGRhdGEgaW4gYW4gYXJyYXkgcmVmZXJlbmNlLgoKICAgIG15ICRDaGFuZ2VEYXRhUmVmID0gJENvbmRpdGlvbk9iamVjdElUU01DaGFuZ2UtPkRhdGFHZXQoCiAgICAgICAgU2VsZWN0b3IgPT4gMTIzNCwKICAgICAgICBVc2VySUQgICA9PiAyMzQ1LAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFNlbGVjdG9yIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICFleGlzdHMgJFBhcmFteyRBcmd1bWVudH0gfHwgIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcmVtYXAgcGFyYW1zCiAgICBteSAlQ2hhbmdlR2V0ID0gKAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtTZWxlY3Rvcn0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IGNoYW5nZSBkYXRhIGFzIGFub24gaGFzaCByZWYKICAgIG15ICRDaGFuZ2UgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VHZXQoJUNoYW5nZUdldCk7CgogICAgIyBjaGVjayBmb3IgY2hhbmdlCiAgICByZXR1cm4gaWYgISRDaGFuZ2U7CgogICAgIyBidWlsZCBhcnJheSByZWYKICAgIG15ICRDaGFuZ2VEYXRhID0gWyRDaGFuZ2VdOwoKICAgIHJldHVybiAkQ2hhbmdlRGF0YTsKfQoKPWhlYWQyIENvbXBhcmVWYWx1ZUxpc3QoKQoKUmV0dXJucyBhIGxpc3Qgb2YgYXZhaWxhYmxlIENvbXBhcmVWYWx1ZXMgZm9yIHRoZSBnaXZlbiBhdHRyaWJ1dGUgaWQgb2YgYSBjaGFuZ2Ugb2JqZWN0IGFzIGhhc2ggcmVmZXJlbmNlLgoKICAgIG15ICRDb21wYXJlVmFsdWVMaXN0ID0gJENvbmRpdGlvbk9iamVjdElUU01DaGFuZ2UtPkNvbXBhcmVWYWx1ZUxpc3QoCiAgICAgICAgQXR0cmlidXRlTmFtZSA9PiAnUHJpb3JpdHlJRCcsCiAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgKTsKClJldHVybnMgYSBoYXNoIHJlZmVyZW5jZSBsaWtlIHRoaXMsIGZvciB0aGUgY2hhbmdlIGF0dHJpYnV0ZSAnUHJpb3JpdHknOgoKICAgICRDb21wYXJlVmFsdWVMaXN0ID0gewogICAgICAgIDIzICAgID0+ICcxIHZlcnkgbG93JywKICAgICAgICAyNCAgICA9PiAnMiBsb3cnLAogICAgICAgIDI1ICAgID0+ICczIG5vcm1hbCcsCiAgICAgICAgMjYgICAgPT4gJzQgaGlnaCcsCiAgICAgICAgMjcgICAgPT4gJzUgdmVyeSBoaWdoJywKICAgIH0KCj1jdXQKCnN1YiBDb21wYXJlVmFsdWVMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEF0dHJpYnV0ZU5hbWUgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHRvIHN0b3JlIHRoZSBsaXN0CiAgICBteSAkQ29tcGFyZVZhbHVlTGlzdCA9IHt9OwoKICAgICMgQ2F0ZWdvcnlJRCwgSW1wYWN0SUQsIFByaW9yaXR5SUQKICAgIGlmICggJFBhcmFte0F0dHJpYnV0ZU5hbWV9ID1+IG17IFxBICggQ2F0ZWdvcnkgfCBJbXBhY3QgfCBQcmlvcml0eSApIElEIFx6IH14bXMgKSB7CgogICAgICAgICMgcmVtb3ZlICdJRCcgYXQgdGhlIGVuZCBvZiBhdHRyaWJ1dGUKICAgICAgICBteSAkVHlwZSA9ICQxOwoKICAgICAgICAjIGdldCB0aGUgY2F0ZWdvcnkgb3IgaW1wYWN0IG9yIHByaW9yaXR5IGxpc3QKICAgICAgICAkQ29tcGFyZVZhbHVlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZVBvc3NpYmxlQ0lQR2V0KAogICAgICAgICAgICBUeXBlICAgPT4gJFR5cGUsCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgQ2hhbmdlU3RhdGVJRAogICAgZWxzaWYgKCAkUGFyYW17QXR0cmlidXRlTmFtZX0gZXEgJ0NoYW5nZVN0YXRlSUQnICkgewoKICAgICAgICAjIGdldCBjaGFuZ2Ugc3RhdGUgbGlzdAogICAgICAgICRDb21wYXJlVmFsdWVMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlUG9zc2libGVTdGF0ZXNHZXQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKAogICAgICAgICRQYXJhbXtBdHRyaWJ1dGVOYW1lfSBlcSAnQ2hhbmdlQnVpbGRlcklEJwogICAgICAgIHx8ICRQYXJhbXtBdHRyaWJ1dGVOYW1lfSBlcSAnQ2hhbmdlTWFuYWdlcklEJwogICAgICAgICkKICAgIHsKCiAgICAgICAgIyBnZXQgYSBjb21wbGV0ZSBsaXN0IG9mIHVzZXJzCiAgICAgICAgbXkgJVVzZXJzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAkQ29tcGFyZVZhbHVlTGlzdCA9IFwlVXNlcnM7CiAgICB9CgogICAgcmV0dXJuICRDb21wYXJlVmFsdWVMaXN0Owp9Cgo9aGVhZDIgU2VsZWN0b3JMaXN0KCkKClJldHVybnMgYSBsaXN0IG9mIGFsbCBzZWxlY3RvcnMgYXZhaWxhYmxlIGZvciB0aGUgZ2l2ZW4gY2hhbmdlIG9iamVjdCBpZCBhbmQgY29uZGl0aW9uIGlkIGFzIGhhc2ggcmVmZXJlbmNlCgogICAgbXkgJFNlbGVjdG9yTGlzdCA9ICRDb25kaXRpb25PYmplY3RJVFNNQ2hhbmdlLT5TZWxlY3Rvckxpc3QoCiAgICAgICAgT2JqZWN0SUQgICAgPT4gMTIzNCwKICAgICAgICBDb25kaXRpb25JRCA9PiA1LAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKUmV0dXJucyBhIGhhc2ggcmVmZXJlbmNlIGxpa2UgdGhpczoKCiAgICAkU2VsZWN0b3JMaXN0ID0gewogICAgICAgIDQ1NiA9PiAnQ2hhbmdlIyAyMDEwMDExNjEwMDAwNjE4JywKICAgIH0KCj1jdXQKCnN1YiBTZWxlY3Rvckxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjaGFuZ2UgZGF0YQogICAgbXkgJENoYW5nZURhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBlcnJvcgogICAgcmV0dXJuIGlmICEkQ2hhbmdlRGF0YTsKCiAgICAjIGJ1aWxkIHNlbGVjdG9yIGxpc3QKICAgIG15ICVTZWxlY3Rvckxpc3QgPSAoCiAgICAgICAgJENoYW5nZURhdGEtPntDaGFuZ2VJRH0gPT4gJENoYW5nZURhdGEtPntDaGFuZ2VOdW1iZXJ9LAogICAgKTsKCiAgICByZXR1cm4gXCVTZWxlY3Rvckxpc3Q7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMCondition/Object/ITSMWorkOrder.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T2JqZWN0OjpJVFNNV29ya09yZGVyOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OlVzZXInLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uOjpPYmplY3Q6OklUU01Xb3JrT3JkZXIgLSBjb25kaXRpb24gaXRzbSBDPHdvcmtvcmRlcj4gb2JqZWN0IGxpYgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJENvbmRpdGlvbk9iamVjdElUU01Xb3JrT3JkZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T2JqZWN0OjpJVFNNV29ya09yZGVyJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIERhdGFHZXQoKQoKUmV0dXJucyBDPHdvcmtvcmRlcj4gZGF0YSBpbiBhbiBhcnJheSByZWZlcmVuY2UuCgogICAgbXkgJFdvcmtPcmRlckRhdGFSZWYgPSAkQ29uZGl0aW9uT2JqZWN0SVRTTVdvcmtPcmRlci0+RGF0YUdldCgKICAgICAgICBTZWxlY3RvciA9PiAxMjM0LAogICAgICAgIFVzZXJJRCAgID0+IDIzNDUsCiAgICApOwoKPWN1dAoKc3ViIERhdGFHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoU2VsZWN0b3IgVXNlcklEKSkgewogICAgICAgIGlmICggIWV4aXN0cyAkUGFyYW17JEFyZ3VtZW50fSB8fCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBoYW5kbGUgJ2FueScgb3IgJ2FsbCcgaW4gYSBzcGVjaWFsIGNhc2UKICAgIHJldHVybiAkU2VsZi0+X0RhdGFHZXRBbGwoJVBhcmFtKSBpZiAkUGFyYW17U2VsZWN0b3J9IGVxICdhbnknOwogICAgcmV0dXJuICRTZWxmLT5fRGF0YUdldEFsbCglUGFyYW0pIGlmICRQYXJhbXtTZWxlY3Rvcn0gZXEgJ2FsbCc7CgogICAgIyByZW1hcCBwYXJhbXMKICAgIG15ICVXb3JrT3JkZXJHZXQgPSAoCiAgICAgICAgV29ya09yZGVySUQgPT4gJFBhcmFte1NlbGVjdG9yfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgd29ya29yZGVyIGFzIGFub24gaGFzaCByZWYKICAgIG15ICRXb3JrT3JkZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJHZXQoJVdvcmtPcmRlckdldCk7CgogICAgIyBjaGVjayBmb3Igd29ya29yZGVyCiAgICByZXR1cm4gaWYgISRXb3JrT3JkZXI7CgogICAgIyBidWlsZCBhcnJheSByZWYKICAgIG15ICRXb3JrT3JkZXJEYXRhID0gWyRXb3JrT3JkZXJdOwoKICAgIHJldHVybiAkV29ya09yZGVyRGF0YTsKfQoKPWhlYWQyIENvbXBhcmVWYWx1ZUxpc3QoKQoKUmV0dXJucyBhIGxpc3Qgb2YgYXZhaWxhYmxlIENvbXBhcmVWYWx1ZXMgZm9yIHRoZSBnaXZlbiBhdHRyaWJ1dGUgaWQgb2YgYSBDPHdvcmtvcmRlcj4gb2JqZWN0IGFzIGhhc2ggcmVmZXJlbmNlLgoKICAgIG15ICRDb21wYXJlVmFsdWVMaXN0ID0gJENvbmRpdGlvbk9iamVjdElUU01Xb3JrT3JkZXItPkNvbXBhcmVWYWx1ZUxpc3QoCiAgICAgICAgQXR0cmlidXRlTmFtZSA9PiAnV29ya09yZGVyU3RhdGVJRCcsCiAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgKTsKClJldHVybnMgYSBoYXNoIHJlZmVyZW5jZSBsaWtlIHRoaXMsIGZvciB0aGUgQzx3b3Jrb3JkZXI+IGF0dHJpYnV0ZSAnV29ya09yZGVyU3RhdGVJRCc6CgogICAgJENvbXBhcmVWYWx1ZUxpc3QgPSB7CiAgICAgICAgMTAgICAgPT4gJ2NyZWF0ZWQnLAogICAgICAgIDEyICAgID0+ICdhY2NlcHRlZCcsCiAgICAgICAgMTMgICAgPT4gJ3JlYWR5JywKICAgICAgICAxNCAgICA9PiAnaW4gcHJvZ3Jlc3MnLAogICAgICAgIDE1ICAgID0+ICdjbG9zZWQnLAogICAgICAgIDE2ICAgID0+ICdjYW5jZWxlZCcsCiAgICB9Cgo9Y3V0CgpzdWIgQ29tcGFyZVZhbHVlTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhBdHRyaWJ1dGVOYW1lIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyB0byBzdG9yZSB0aGUgbGlzdAogICAgbXkgJENvbXBhcmVWYWx1ZUxpc3QgPSB7fTsKCiAgICAjIFdvcmtPcmRlclN0YXRlSUQKICAgIGlmICggJFBhcmFte0F0dHJpYnV0ZU5hbWV9IGVxICdXb3JrT3JkZXJTdGF0ZUlEJyApIHsKCiAgICAgICAgIyBnZXQgd29ya29yZGVyIHN0YXRlIGxpc3QKICAgICAgICAkQ29tcGFyZVZhbHVlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlclBvc3NpYmxlU3RhdGVzR2V0KAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIFdvcmtPcmRlclR5cGVJRAogICAgZWxzaWYgKCAkUGFyYW17QXR0cmlidXRlTmFtZX0gZXEgJ1dvcmtPcmRlclR5cGVJRCcgKSB7CgogICAgICAgICMgZ2V0IHdvcmtvcmRlciB0eXBlIGxpc3QKICAgICAgICAkQ29tcGFyZVZhbHVlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlclR5cGVMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte0F0dHJpYnV0ZU5hbWV9IGVxICdXb3JrT3JkZXJBZ2VudElEJyApIHsKCiAgICAgICAgIyBnZXQgYSBjb21wbGV0ZSBsaXN0IG9mIHVzZXJzCiAgICAgICAgbXkgJVVzZXJzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAkQ29tcGFyZVZhbHVlTGlzdCA9IFwlVXNlcnM7CiAgICB9CgogICAgcmV0dXJuICRDb21wYXJlVmFsdWVMaXN0Owp9Cgo9aGVhZDIgU2VsZWN0b3JMaXN0KCkKClJldHVybnMgYSBsaXN0IG9mIGFsbCBzZWxlY3RvcnMgYXZhaWxhYmxlIGZvciB0aGUgZ2l2ZW4gQzx3b3Jrb3JkZXI+IG9iamVjdCBpZCBhbmQgY29uZGl0aW9uIGlkIGFzIGhhc2ggcmVmZXJlbmNlCgogICAgbXkgJFNlbGVjdG9yTGlzdCA9ICRDb25kaXRpb25PYmplY3RJVFNNV29ya09yZGVyLT5TZWxlY3Rvckxpc3QoCiAgICAgICAgT2JqZWN0SUQgICAgPT4gMTIzNCwKICAgICAgICBDb25kaXRpb25JRCA9PiA1LAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKUmV0dXJucyBhIGhhc2ggcmVmZXJlbmNlIGxpa2UgdGhpczoKCiAgICAkU2VsZWN0b3JMaXN0ID0gewogICAgICAgIDEwICAgID0+ICcxIC0gV29ya29yZGVyVGl0bGUgb2YgV29ya29yZGVyIDEnLAogICAgICAgIDEyICAgID0+ICcyIC0gV29ya29yZGVyVGl0bGUgb2YgV29ya29yZGVyIDInLAogICAgICAgIDM0ICAgID0+ICczIC0gV29ya29yZGVyVGl0bGUgb2YgV29ya29yZGVyIDMnLAogICAgICAgICdhbnknID0+ICdhbnknLAogICAgICAgICdhbGwnID0+ICdhbGwnLAogICAgfQoKPWN1dAoKc3ViIFNlbGVjdG9yTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGFsbCB3b3Jrb3JkZXIgaWRzIG9mIGNoYW5nZQogICAgbXkgJFdvcmtPcmRlcklEcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckxpc3QoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBmb3Igd29ya29yZGVyIGlkcwogICAgcmV0dXJuIGlmICEkV29ya09yZGVySURzOwogICAgcmV0dXJuIGlmIHJlZiAkV29ya09yZGVySURzIG5lICdBUlJBWSc7CgogICAgIyBidWlsZCBzZWxlY3RvciBsaXN0CiAgICBteSAlU2VsZWN0b3JMaXN0OwogICAgZm9yIG15ICRXb3JrT3JkZXJJRCAoIEB7JFdvcmtPcmRlcklEc30gKSB7CgogICAgICAgICMgZ2V0IHdvcmtvcmRlciBkYXRhCiAgICAgICAgbXkgJFdvcmtPcmRlckRhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVjdG9yTGlzdHsgJFdvcmtPcmRlckRhdGEtPntXb3JrT3JkZXJJRH0gfQogICAgICAgICAgICA9ICRXb3JrT3JkZXJEYXRhLT57V29ya09yZGVyTnVtYmVyfSAuICcgLSAnIC4gJFdvcmtPcmRlckRhdGEtPntXb3JrT3JkZXJUaXRsZX07CiAgICB9CgogICAgIyBhZGQgJ2FsbCcgc2VsZWN0b3IgKGZvciBleHByZXNzaW9ucyBhbmQgYWN0aW9ucykKICAgICRTZWxlY3Rvckxpc3R7J2FsbCd9ID0gVHJhbnNsYXRhYmxlKCdhbGwnKTsKCiAgICAjIGFkZCAnYW55JyBzZWxlY3RvciBvbmx5IGZvciBleHByZXNzaW9ucwogICAgaWYgKCAkUGFyYW17RXhwcmVzc2lvbklEfSApIHsKICAgICAgICAkU2VsZWN0b3JMaXN0eydhbnknfSA9IFRyYW5zbGF0YWJsZSgnYW55Jyk7CiAgICB9CgogICAgcmV0dXJuIFwlU2VsZWN0b3JMaXN0Owp9Cgo9aGVhZDEgUFJJVkFURSBJTlRFUkZBQ0UKCj1oZWFkMiBfRGF0YUdldEFsbCgpCgogICAgbXkgJFdvcmtPcmRlckRhdGFBcnJheVJlZiA9ICRDb25kaXRpb25PYmplY3RJVFNNV29ya09yZGVyLT5fRGF0YUdldEFsbCgKICAgICAgICBDb25kaXRpb25JRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgX0RhdGFHZXRBbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjb25kaXRpb24KICAgIG15ICRDb25kaXRpb25EYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKS0+Q29uZGl0aW9uR2V0KAogICAgICAgIENvbmRpdGlvbklEID0+ICRQYXJhbXtDb25kaXRpb25JRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZm9yIGNvbmRpdGlvbgogICAgcmV0dXJuIGlmICEkQ29uZGl0aW9uRGF0YTsKCiAgICAjIGdldCBhbGwgd29ya29yZGVyIGlkcyBvZiBjaGFuZ2UKICAgIG15ICRXb3JrT3JkZXJJRHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJMaXN0KAogICAgICAgIENoYW5nZUlEID0+ICRDb25kaXRpb25EYXRhLT57Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGZvciB3b3Jrb3JkZXIgaWRzCiAgICByZXR1cm4gaWYgISRXb3JrT3JkZXJJRHM7CiAgICByZXR1cm4gaWYgcmVmICRXb3JrT3JkZXJJRHMgbmUgJ0FSUkFZJzsKICAgIHJldHVybiBpZiAhQHskV29ya09yZGVySURzfTsKCiAgICAjIGdldCB3b3Jrb3JkZXIgZGF0YQogICAgbXkgQFdvcmtPcmRlckRhdGE7CiAgICBXT1JLT1JERVJJRDoKICAgIGZvciBteSAkV29ya09yZGVySUQgKCBAeyRXb3JrT3JkZXJJRHN9ICkgewogICAgICAgIG15ICRXb3JrT3JkZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayB3b3Jrb3JkZXIKICAgICAgICBuZXh0IFdPUktPUkRFUklEIGlmICEkV29ya09yZGVyOwoKICAgICAgICAjIGFkZCB3b3Jrb3JkZXIgdG8gcmV0dXJuIGFycmF5CiAgICAgICAgcHVzaCBAV29ya09yZGVyRGF0YSwgJFdvcmtPcmRlcjsKICAgIH0KCiAgICAjIHJldHVybiB3b3Jrb3JkZXIgZGF0YQogICAgcmV0dXJuIFxAV29ya09yZGVyRGF0YTsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cHM6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMCondition/Operator/ITSMChange.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T3BlcmF0b3I6OklUU01DaGFuZ2U7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb246Ok9wZXJhdG9yOjpJVFNNQ2hhbmdlIC0gY29uZGl0aW9uIGl0c20gY2hhbmdlIG9wZXJhdG9yIGxpYgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKQ3JlYXRlIGFuIG9iamVjdC4KCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDb25kaXRpb25PcGVyYXRvcklUU01DaGFuZ2UgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T3BlcmF0b3I6OklUU01DaGFuZ2UnKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgU2V0KCkKClVwZGF0ZXMgYSBjaGFuZ2Ugd2l0aCB0aGUgZ2l2ZW4gZGF0YS4KCiAgICBteSAkU3VjY2VzcyA9ICRJVFNNQ2hhbmdlT3BlcmF0b3ItPlNldCgKICAgICAgICBTZWxlY3RvciAgICA9PiAxMjM0LAogICAgICAgIEF0dHJpYnV0ZSAgID0+ICdDaGFuZ2VTdGF0ZUlEJywKICAgICAgICBBY3Rpb25WYWx1ZSA9PiAyMzQ1LAogICAgICAgIFVzZXJJRCAgICAgID0+IDEyMzQsCiAgICApOwoKPWN1dAoKc3ViIFNldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhTZWxlY3RvciBBdHRyaWJ1dGUgQWN0aW9uVmFsdWUgVXNlcklEKSkgewogICAgICAgIGlmICggIWV4aXN0cyAkUGFyYW17JEFyZ3VtZW50fSB8fCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgY2hhbmdlCiAgICBteSAkQ2hhbmdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtTZWxlY3Rvcn0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZXJyb3IKICAgIHJldHVybiBpZiAhJENoYW5nZTsKICAgIHJldHVybiBpZiByZWYgJENoYW5nZSBuZSAnSEFTSCc7CgogICAgIyBzZXQgY2hhbmdlIGF0dHJpYnV0ZSB0byBlbXB0eSBzdHJpbmcgaWYgaXQgaXMgbm90IHRydWUKICAgICRDaGFuZ2UtPnsgJFBhcmFte0F0dHJpYnV0ZX0gfSB8fD0gJyc7CgogICAgIyBkbyBub3QgdXBkYXRlIHRoZSBhdHRyaWJ1dGUgaWYgaXQgYWxyZWFkeSBoYXMgdGhpcyB2YWx1ZQogICAgIyAoIHRoaXMgd2lsbCBwcmV2ZW50IGluZmluaXRlIGV2ZW50IGxvb3BpbmchICkKICAgIHJldHVybiAxIGlmICRDaGFuZ2UtPnsgJFBhcmFte0F0dHJpYnV0ZX0gfSBlcSAkUGFyYW17QWN0aW9uVmFsdWV9OwoKICAgICMgdXBkYXRlIGNoYW5nZSBhbmQgcmV0dXJuIHVwZGF0ZSByZXN1bHQKICAgIHJldHVybiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VVcGRhdGUoCiAgICAgICAgQ2hhbmdlSUQgICAgICAgICAgPT4gJFBhcmFte1NlbGVjdG9yfSwKICAgICAgICAkUGFyYW17QXR0cmlidXRlfSA9PiAkUGFyYW17QWN0aW9uVmFsdWV9LAogICAgICAgIFVzZXJJRCAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cHM6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMCondition/Operator/ITSMWorkOrder.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T3BlcmF0b3I6OklUU01Xb3JrT3JkZXI7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb246Ok9wZXJhdG9yOjpJVFNNV29ya09yZGVyIC0gY29uZGl0aW9uIGl0c20gd29ya29yZGVyIG9wZXJhdG9yIGxpYgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKQ3JlYXRlIGFuIG9iamVjdC4KCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDb25kaXRpb25PcGVyYXRvcklUU01Xb3JrT3JkZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbjo6T3BlcmF0b3I6OklUU01Xb3JrT3JkZXInKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgU2V0KCkKClVwZGF0ZXMgYSBDPHdvcmtvcmRlcj4gd2l0aCB0aGUgZ2l2ZW4gZGF0YS4KCiAgICBteSAkU3VjY2VzcyA9ICRJVFNNV29ya09yZGVyT3BlcmF0b3ItPlNldCgKICAgICAgICBTZWxlY3RvciAgICA9PiAxMjM0LAogICAgICAgIEF0dHJpYnV0ZSAgID0+ICdXb3JrT3JkZXJTdGF0ZUlEJywKICAgICAgICBBY3Rpb25WYWx1ZSA9PiAyMzQ1LAogICAgICAgIFVzZXJJRCAgICAgID0+IDEyMzQsCiAgICApOwoKPWN1dAoKc3ViIFNldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhTZWxlY3RvciBBdHRyaWJ1dGUgQWN0aW9uVmFsdWUgVXNlcklEKSkgewogICAgICAgIGlmICggIWV4aXN0cyAkUGFyYW17JEFyZ3VtZW50fSB8fCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgd29ya29yZGVyCiAgICBteSAkV29ya09yZGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtTZWxlY3Rvcn0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgZXJyb3IKICAgIHJldHVybiBpZiAhJFdvcmtPcmRlcjsKICAgIHJldHVybiBpZiByZWYgJFdvcmtPcmRlciBuZSAnSEFTSCc7CgogICAgIyBzZXQgd29ya29yZGVyIGF0dHJpYnV0ZSB0byBlbXB0eSBzdHJpbmcgaWYgaXQgaXMgbm90IHRydWUKICAgICRXb3JrT3JkZXItPnsgJFBhcmFte0F0dHJpYnV0ZX0gfSB8fD0gJyc7CgogICAgIyBkbyBub3QgdXBkYXRlIHRoZSBhdHRyaWJ1dGUgaWYgaXQgYWxyZWFkeSBoYXMgdGhpcyB2YWx1ZQogICAgIyAoIHRoaXMgd2lsbCBwcmV2ZW50IGluZmluaXRlIGV2ZW50IGxvb3BpbmchICkKICAgIHJldHVybiAxIGlmICRXb3JrT3JkZXItPnsgJFBhcmFte0F0dHJpYnV0ZX0gfSBlcSAkUGFyYW17QWN0aW9uVmFsdWV9OwoKICAgICMgaWYgdGhlIHdvcmtvcmRlciBhZ2VudCBzaG91bGQgYmUgZGVsZXRlZCBpdCBoYXMgdG8gYmUgdW5kZWZpbmVkCiAgICBpZiAoICRQYXJhbXtBdHRyaWJ1dGV9IGVxICdXb3JrT3JkZXJBZ2VudElEJyAmJiAhJFBhcmFte0FjdGlvblZhbHVlfSApIHsKICAgICAgICAkUGFyYW17QWN0aW9uVmFsdWV9ID0gdW5kZWY7CiAgICB9CgogICAgIyB1cGRhdGUgd29ya29yZGVyIGFuZCByZXR1cm4gdXBkYXRlIHJlc3VsdAogICAgcmV0dXJuICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlclVwZGF0ZSgKICAgICAgICBXb3JrT3JkZXJJRCAgICAgICA9PiAkUGFyYW17U2VsZWN0b3J9LAogICAgICAgICRQYXJhbXtBdHRyaWJ1dGV9ID0+ICRQYXJhbXtBY3Rpb25WYWx1ZX0sCiAgICAgICAgVXNlcklEICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwp9Cgo9aGVhZDIgU2V0QWxsKCkKClVwZGF0ZXMgYSBzZXQgb2YgQzx3b3Jrb3JkZXJzPiB3aXRoIHRoZSBnaXZlbiBkYXRhLgoKICAgIG15ICRTdWNjZXNzID0gJElUU01Xb3JrT3JkZXJPcGVyYXRvci0+U2V0QWxsKAogICAgICAgIE9iamVjdHMgICAgID0+IFsgey4uLn0sIHsuLi59LCBdLCAgIyBkYXRhIG9mIElUU01Xb3JrT3JkZXJzCiAgICAgICAgQXR0cmlidXRlICAgPT4gJ1dvcmtPcmRlclN0YXRlSUQnLAogICAgICAgIEFjdGlvblZhbHVlID0+IDIzNDUsCiAgICAgICAgVXNlcklEICAgICAgPT4gMTIzNCwKICAgICk7Cgo9Y3V0CgpzdWIgU2V0QWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE9iamVjdHMgQXR0cmlidXRlIEFjdGlvblZhbHVlIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICFleGlzdHMgJFBhcmFteyRBcmd1bWVudH0gfHwgIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgb2JqZWN0cwogICAgcmV0dXJuIGlmIHJlZiAkUGFyYW17T2JqZWN0c30gbmUgJ0FSUkFZJzsKCiAgICAjIHRoaXMgd2lsbCBiZSBzZXQgdG8gemVybyBpZiBhbnkgb2YgdGhlIFNldC1PcGVyYXRpb25zIGZhaWxzCiAgICBteSAkU2V0QWxsU3VjY2VzcyA9IDE7CgogICAgIyB1cGRhdGUgZWFjaCB3b3Jrb3JkZXIgb2JqZWN0CiAgICBXT1JLT1JERVJPQkpFQ1Q6CiAgICBmb3IgbXkgJFdvcmtPcmRlck9iamVjdCAoIEB7ICRQYXJhbXtPYmplY3RzfSB9ICkgewoKICAgICAgICAjIGNoZWNrIHdvcmtvcmRlciBvYmplY3QKICAgICAgICBuZXh0IFdPUktPUkRFUk9CSkVDVCBpZiAhJFdvcmtPcmRlck9iamVjdDsKICAgICAgICBuZXh0IFdPUktPUkRFUk9CSkVDVCBpZiByZWYgJFdvcmtPcmRlck9iamVjdCBuZSAnSEFTSCc7CgogICAgICAgICMgdXBkYXRlIHdvcmtvcmRlciBvYmplY3QKICAgICAgICBteSAkUmVzdWx0ID0gJFNlbGYtPlNldCgKICAgICAgICAgICAgU2VsZWN0b3IgICAgPT4gJFdvcmtPcmRlck9iamVjdC0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgQXR0cmlidXRlICAgPT4gJFBhcmFte0F0dHJpYnV0ZX0sCiAgICAgICAgICAgIEFjdGlvblZhbHVlID0+ICRQYXJhbXtBY3Rpb25WYWx1ZX0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgaWYgYSBzZXQgb3BlcmF0aW9uIHdhcyBub3Qgc3VjY2Vzc2Z1bCwKICAgICAgICAjIHRoZW4gdGhlIGNvbXBsZXRlIFNldEFsbCBvcGVyYXRpb24gd2lsbCBub3QgYmUgc3VjY2Vzc2Z1bAogICAgICAgIGlmICggISRSZXN1bHQgKSB7CiAgICAgICAgICAgICRTZXRBbGxTdWNjZXNzID0gMDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICRTZXRBbGxTdWNjZXNzOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMWorkOrder/Event/ToolBarMyWorkOrdersCacheDelete.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjo6RXZlbnQ6OlRvb2xCYXJNeVdvcmtPcmRlcnNDYWNoZURlbGV0ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhEYXRhIEV2ZW50IENvbmZpZyBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IHRoZSBjYWNoZSB0eXBlIHByZWZpeAogICAgbXkgJENhY2hlVHlwZVByZWZpeCA9ICdJVFNNQ2hhbmdlTWFuYWdlbWVudFRvb2xCYXJNeVdvcmtPcmRlcnMnOwoKICAgICMgaGFuZGxlIGFkZGluZyBvZiBhIHdvcmtvcmRlcgogICAgaWYgKCAkUGFyYW17RXZlbnR9IGVxICdXb3JrT3JkZXJBZGRQb3N0JyApIHsKCiAgICAgICAgIyBkbyBub3RoaW5nIGlmIHRoZSBXb3JrT3JkZXJBZ2VudElEIHdhcyBub3Qgc2V0CiAgICAgICAgcmV0dXJuIDEgaWYgISRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlckFnZW50SUR9OwoKICAgICAgICAjIHNldCB0aGUgY2FjaGUgdHlwZQogICAgICAgIG15ICRDYWNoZVR5cGUgPSAkQ2FjaGVUeXBlUHJlZml4IC4gJFBhcmFte0RhdGF9LT57V29ya09yZGVyQWdlbnRJRH07CgogICAgICAgICMgZGVsZXRlIHRoZSBjYWNoZQogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgICAgICBUeXBlID0+ICRDYWNoZVR5cGUsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBoYW5kbGUgdXBkYXRlIG9mIGEgd29ya29yZGVyCiAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gZXEgJ1dvcmtPcmRlclVwZGF0ZVBvc3QnICkgewoKICAgICAgICAjIG1ha2Ugc3VyZSB0aGUgZGF0YSBpcyBpbml0aWFsaXplZAogICAgICAgICRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlckFnZW50SUR9IHx8PSAnJzsKICAgICAgICAkUGFyYW17RGF0YX0tPntPbGRXb3JrT3JkZXJEYXRhfS0+e1dvcmtPcmRlckFnZW50SUR9IHx8PSAnJzsKCiAgICAgICAgIyBkbyBub3RoaW5nIGlmIHRoZSBXb3JrT3JkZXJBZ2VudElEIGRpZCBub3QgY2hhbmdlCiAgICAgICAgcmV0dXJuIDEKICAgICAgICAgICAgaWYgJFBhcmFte0RhdGF9LT57V29ya09yZGVyQWdlbnRJRH0gZXEKICAgICAgICAgICAgJFBhcmFte0RhdGF9LT57T2xkV29ya09yZGVyRGF0YX0tPntXb3JrT3JkZXJBZ2VudElEfTsKCiAgICAgICAgIyBzZXQgdGhlIGNhY2hlIHR5cGUgcG9zdGZpeAogICAgICAgIG15IEBDYWNoZVR5cGVQb3N0Zml4ZXMgPSAoCiAgICAgICAgICAgICRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlckFnZW50SUR9LAogICAgICAgICAgICAkUGFyYW17RGF0YX0tPntPbGRXb3JrT3JkZXJEYXRhfS0+e1dvcmtPcmRlckFnZW50SUR9LAogICAgICAgICk7CgogICAgICAgICMgZGVsZXRlIHRoZSBjYWNoZSBmb3IgdGhlIG9sZCBhbmQgdGhlIGN1cnJlbnQgd29ya29yZGVyIGFnZW50CiAgICAgICAgQ0FDSEVUWVBFUE9TVEZJWDoKICAgICAgICBmb3IgbXkgJENhY2hlVHlwZVBvc3RmaXggKEBDYWNoZVR5cGVQb3N0Zml4ZXMpIHsKCiAgICAgICAgICAgICMgZG8gbm90aGluZyBpZiB0aGUgV29ya09yZGVyQWdlbnRJRCB3YXMgbm90IHNldAogICAgICAgICAgICBuZXh0IENBQ0hFVFlQRVBPU1RGSVggaWYgISRDYWNoZVR5cGVQb3N0Zml4OwoKICAgICAgICAgICAgIyBzZXQgdGhlIGNhY2hlIHR5cGUKICAgICAgICAgICAgbXkgJENhY2hlVHlwZSA9ICRDYWNoZVR5cGVQcmVmaXggLiAkQ2FjaGVUeXBlUG9zdGZpeDsKCiAgICAgICAgICAgICMgZGVsZXRlIHRoZSBjYWNoZQogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCgKICAgICAgICAgICAgICAgIFR5cGUgPT4gJENhY2hlVHlwZSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgaGFuZGxlIGRlbGV0aW5nIGEgd29ya29yZGVyCiAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gZXEgJ1dvcmtPcmRlckRlbGV0ZVBvc3QnICkgewoKICAgICAgICAjIGRvIG5vdGhpbmcgaWYgdGhlIFdvcmtPcmRlckFnZW50SUQgd2FzIG5vdCBzZXQKICAgICAgICByZXR1cm4gMSBpZiAhJFBhcmFte0RhdGF9LT57T2xkV29ya09yZGVyRGF0YX0tPntXb3JrT3JkZXJBZ2VudElEfTsKCiAgICAgICAgIyBzZXQgdGhlIGNhY2hlIHR5cGUKICAgICAgICBteSAkQ2FjaGVUeXBlID0gJENhY2hlVHlwZVByZWZpeCAuICRQYXJhbXtEYXRhfS0+e09sZFdvcmtPcmRlckRhdGF9LT57V29ya09yZGVyQWdlbnRJRH07CgogICAgICAgICMgZGVsZXRlIHRoZSBjYWNoZQogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgICAgICBUeXBlID0+ICRDYWNoZVR5cGUsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMWorkOrder/Event/WorkOrderActualTimesSet.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjo6RXZlbnQ6OldvcmtPcmRlckFjdHVhbFRpbWVzU2V0OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01TdGF0ZU1hY2hpbmUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhEYXRhIEV2ZW50IENvbmZpZyBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBoYW5kbGUgV29ya09yZGVyVXBkYXRlIGV2ZW50CiAgICBpZiAoICRQYXJhbXtFdmVudH0gZXEgJ1dvcmtPcmRlclVwZGF0ZVBvc3QnICkgewoKICAgICAgICAjIGdldCBXb3JrT3JkZXIKICAgICAgICBteSAkV29ya09yZGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyR2V0KAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkUGFyYW17RGF0YX0tPntXb3JrT3JkZXJJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICByZXR1cm4gaWYgISRXb3JrT3JkZXI7CgogICAgICAgICMgZ2V0IGFjdHVhbCBzdGFydCB0aW1lIGZyb20gd29ya29yZGVyCiAgICAgICAgbXkgJEFjdHVhbFN0YXJ0VGltZSA9ICRXb3JrT3JkZXItPntBY3R1YWxTdGFydFRpbWV9OwoKICAgICAgICAjIGdldCBjb25maWd1cmVkIHdvcmtvcmRlciBzdGF0ZXMgd2hlbiB0byBzZXQgYWN0dWFsIHN0YXJ0IHRpbWUKICAgICAgICBteSAkQ29uZmlndXJlZFdvcmtPcmRlclN0YXJ0U3RhdGVzCiAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdJVFNNV29ya09yZGVyOjpBY3R1YWxTdGFydFRpbWVTZXQ6OlN0YXRlcycpOwoKICAgICAgICAjIGNvbnZlcnQgaW50byBoYXNoIGZvciBlYXNpZXIgbG9va3VwCiAgICAgICAgbXkgJUFjdHVhbFN0YXJ0VGltZVNldFN0YXRlcyA9IG1hcCB7ICRfID0+IDEgfSBAeyRDb25maWd1cmVkV29ya09yZGVyU3RhcnRTdGF0ZXN9OwoKICAgICAgICAjIGdldCBjdXJyZW50IHRpbWUgc3RhbXAKICAgICAgICBteSAkQ3VycmVudFRpbWVTdGFtcCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpLT5Ub1N0cmluZygpOwoKICAgICAgICAjIGNoZWNrIGlmIEFjdHVhbFN0YXJ0VGltZSBpcyBlbXB0eSwKICAgICAgICAjIGFuZCBXb3JrT3JkZXJTdGF0ZSBpcyBpbiBhbiBBY3R1YWxTdGFydFRpbWVTZXRTdGF0ZQogICAgICAgIGlmICggISRBY3R1YWxTdGFydFRpbWUgJiYgJEFjdHVhbFN0YXJ0VGltZVNldFN0YXRlc3sgJFdvcmtPcmRlci0+e1dvcmtPcmRlclN0YXRlfSB9ICkgewoKICAgICAgICAgICAgIyBzZXQgdGhlIGFjdHVhbCBzdGFydCB0aW1lCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyVXBkYXRlKAogICAgICAgICAgICAgICAgV29ya09yZGVySUQgICAgID0+ICRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlcklEfSwKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZSA9PiAkQ3VycmVudFRpbWVTdGFtcCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICJDb3VsZCBub3Qgc2V0IEFjdHVhbFN0YXJ0VGltZSBmb3IgV29ya09yZGVySUQgJyRQYXJhbXtEYXRhfS0+e1dvcmtPcmRlcklEfSchIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcmVtZW1iZXIgdGhlIGp1c3Qgc2V0IGFjdHVhbCBzdGFydCB0aW1lCiAgICAgICAgICAgICRBY3R1YWxTdGFydFRpbWUgPSAkQ3VycmVudFRpbWVTdGFtcDsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgdGhlIEFjdHVhbEVuZFRpbWUgaXMgZW1wdHkKICAgICAgICAjIGFuZCB0aGUgY3VycmVudCB3b3Jrb3JkZXIgc3RhdGUgaXMgYW4gZW5kIHN0YXRlCiAgICAgICAgaWYgKCAhJFdvcmtPcmRlci0+e0FjdHVhbEVuZFRpbWV9ICkgewoKICAgICAgICAgICAgIyBnZXQgdGhlIHBvc3NpYmxlIG5leHQgc3RhdGUgaWRzCiAgICAgICAgICAgIG15ICROZXh0U3RhdGVJRHNSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVN0YXRlTWFjaGluZScpLT5TdGF0ZVRyYW5zaXRpb25HZXQoCiAgICAgICAgICAgICAgICBTdGF0ZUlEID0+ICRXb3JrT3JkZXItPntXb3JrT3JkZXJTdGF0ZUlEfSwKICAgICAgICAgICAgICAgIENsYXNzICAgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6U3RhdGUnLAogICAgICAgICAgICApIHx8IFtdOwoKICAgICAgICAgICAgIyBpZiB0aGVyZSBpcyBvbmx5IG9uZSBuZXh0IHN0YXRlLCB3aGljaCBpcyBhbHNvIDAsCiAgICAgICAgICAgICMgd2hpY2ggbWVhbnMgdGhhdCB0aGlzIGlzIGFuIGVuZCBzdGF0ZQogICAgICAgICAgICBpZiAoICggc2NhbGFyIEB7JE5leHRTdGF0ZUlEc1JlZn0gPT0gMSApICYmICggISROZXh0U3RhdGVJRHNSZWYtPlswXSApICkgewoKICAgICAgICAgICAgICAgICMgaWYgbm8gYWN0dWFsIHN0YXJ0IHRpbWUgaXMgc2V0LCB1c2UgdGhlIGN1cnJlbnQgdGltZQogICAgICAgICAgICAgICAgaWYgKCAhJEFjdHVhbFN0YXJ0VGltZSApIHsKICAgICAgICAgICAgICAgICAgICAkQWN0dWFsU3RhcnRUaW1lID0gJEN1cnJlbnRUaW1lU3RhbXA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBpbmNyZWFzZSB0aGUgY3VycmVudCB0aW1lIHN0YW1wIGJ5IG9uZSBzZWNvbmQgdG8gYXZvaWQgdGhlIGNhc2UgdGhhdAogICAgICAgICAgICAgICAgIyBhY3R1YWwgc3RhcnQgYW5kIGVuZCB0aW1lcyBhcmUgdGhlIHNhbWUKICAgICAgICAgICAgICAgIG15ICRBY3R1YWxFbmRUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJEN1cnJlbnRUaW1lU3RhbXAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkQWN0dWFsRW5kVGltZS0+QWRkKAogICAgICAgICAgICAgICAgICAgIFNlY29uZHMgPT4gMSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkQWN0dWFsRW5kVGltZSA9ICRBY3R1YWxFbmRUaW1lLT5Ub1N0cmluZygpOwoKICAgICAgICAgICAgICAgICMgc2V0IHRoZSBhY3R1YWwgZW5kIHRpbWUsCiAgICAgICAgICAgICAgICAjIGFuZCBpZiB0aGUgYWN0dWFsIHN0YXJ0IHRpbWUgd2FzIG5vdCBzZXQsIHNldCBpdCBhbHNvCiAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlclVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCAgICAgPT4gJFBhcmFte0RhdGF9LT57V29ya09yZGVySUR9LAogICAgICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZSA9PiAkQWN0dWFsU3RhcnRUaW1lLAogICAgICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWUgICA9PiAkQWN0dWFsRW5kVGltZSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBzZXQgQWN0dWFsU3RhcnRUaW1lIGZvciBXb3JrT3JkZXJJRCAnJFBhcmFte0RhdGF9LT57V29ya09yZGVySUR9JyEiLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgZXJyb3IKICAgIGVsc2UgewoKICAgICAgICAjIGFuIHVua25vd24gZXZlbnQKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIiRQYXJhbXtFdmVudH0gaXMgYW4gdW5rbm93biBldmVudCBmb3IgdGhpcyBldmVudGhhbmRsZXIhIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMWorkOrder/Event/WorkOrderNumberCalc.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjo6RXZlbnQ6OldvcmtPcmRlck51bWJlckNhbGM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoRGF0YSBFdmVudCBDb25maWcgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgaWYgcmVjYWxjdWxhdGlvbiBvZiB3b3Jrb3JkZXIgbnVtYmVycyBpcyBuZWVkZWQKICAgIHJldHVybiAxIGlmICRQYXJhbXtEYXRhfS0+e05vTnVtYmVyQ2FsY307CgogICAgIyBoYW5kbGUgV29ya09yZGVyVXBkYXRlIGFuZCBXb3JrT3JkZXJEZWxldGVQb3N0IGV2ZW50cwogICAgaWYgKCAkUGFyYW17RXZlbnR9ID1+IG17IFxBICggV29ya09yZGVyVXBkYXRlUG9zdCB8IFdvcmtPcmRlckRlbGV0ZVBvc3QgKSBceiB9eG1zICkgewoKICAgICAgICAjIHJlY2FsY3VsYXRlIFdvcmtPcmRlciBudW1iZXJzCiAgICAgICAgIyB0aGUgQ2hhbmdlSUQgaXMgaW4gdGhlIE9sZFdvcmtPcmRlckRhdGEgc28gd2UgZG8gbm90IG5lZWQgdG8gbWFrZSBhIFdvcmtPcmRlckdldCgpIGhlcmUKICAgICAgICByZXR1cm4gaWYgISRTZWxmLT5fV29ya09yZGVyTnVtYmVyQ2FsYygKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0RhdGF9LT57T2xkV29ya09yZGVyRGF0YX0tPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBlcnJvcgogICAgZWxzZSB7CgogICAgICAgICMgYW4gdW5rbm93biBldmVudAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiJFBhcmFte0V2ZW50fSBpcyBhbiB1bmtub3duIGV2ZW50IGZvciB0aGlzIGV2ZW50aGFuZGxlciEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWhlYWQxIFBSSVZBVEUgSU5URVJGQUNFCgo9aGVhZDIgX1dvcmtPcmRlck51bWJlckNhbGMoKQoKVGhpcyBtZXRob2QgYWN0dWFsbHkgcmVjYWxjdWxhdGVzIHRoZSBXb3JrT3JkZXJOdW1iZXJzIGZvciB0aGUgQzx3b3Jrb3JkZXJzPiBvZgp0aGUgZ2l2ZW4gY2hhbmdlLgpJdCByZXR1cm5zIDEgb24gc3VjY2VzcywgQzx1bmRlZj4gb3RoZXJ3aXNlLgoKICAgIG15ICRTdWNjZXNzID0gJEV2ZW50T2JqZWN0LT5fV29ya09yZGVyTnVtYmVyQ2FsYygKICAgICAgICBDaGFuZ2VJRCA9PiAxMjMsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgX1dvcmtPcmRlck51bWJlckNhbGMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIGZvciBuZWVkZWQgc3R1ZmYgLSBDaGFuZ2VJRCBhbmQgVXNlcklECiAgICBmb3IgbXkgJE5lZWRlZCAocXcoQ2hhbmdlSUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZGVmaW5lIHRoZSBvcmRlciBkaXJlY3Rpb24gZm9yIGVhY2ggYXR0cmlidXRlCiAgICBteSAlT3JkZXJEaXJlY3Rpb24gPSAoCiAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnVXAnLAogICAgICAgIFBsYW5uZWRFbmRUaW1lICAgPT4gJ0Rvd24nLAogICAgICAgIFdvcmtPcmRlcklEICAgICAgPT4gJ1VwJywKICAgICk7CgogICAgIyBkZWZpbmUgdGhlIE9yZGVyQnkgYXJyYXkKICAgIG15IEBPcmRlckJ5ID0gKAogICAgICAgICdQbGFubmVkU3RhcnRUaW1lJywKICAgICAgICAnUGxhbm5lZEVuZFRpbWUnLAogICAgICAgICdXb3JrT3JkZXJJRCcsCiAgICApOwoKICAgICMgZGVmaW5lIHRoZSBPcmRlckJ5RGlyZWN0aW9uIGFycmF5CiAgICBteSBAT3JkZXJCeURpcmVjdGlvbiA9IG1hcCB7ICRPcmRlckRpcmVjdGlvbnskX30gfSBAT3JkZXJCeTsKCiAgICAjIHVzZSBXb3JrT3JkZXJTZWFyY2g6IFNlYXJjaCBmb3IgZ2l2ZW4gSURzLCBvcmRlcmVkIGJ5OgogICAgIyBQbGFubmVkU3RhcnRUaW1lLCBQbGFubmVkRW5kVGltZSwgV29yT3JkZXJJRAogICAgbXkgJFNvcnRlZFdvcmtPcmRlcklEcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlclNlYXJjaCgKICAgICAgICBDaGFuZ2VJRHMgICAgICAgID0+IFsgJFBhcmFte0NoYW5nZUlEfSBdLAogICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gXEBPcmRlckJ5LAogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gXEBPcmRlckJ5RGlyZWN0aW9uLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApIHx8IFtdOwoKICAgICMgY291bnRlciAtIHVzZWQgYXMgV29ya09yZGVyTnVtYmVyCiAgICBteSAkQ291bnRlciA9IDA7CgogICAgIyB0byBzdG9yZSB0aGUgV29ya09yZGVySURzIGFuZCB0aGVpciBuZXcgV29ya09yZGVyTnVtYmVycwogICAgbXkgJU5ld1dvcmtPcmRlck51bWJlcjsKCiAgICAjIHNldCBuZXcgV29ya09yZGVyTnVtYmVyCiAgICBXT1JLT1JERVJJRDoKICAgIGZvciBteSAkV29ya09yZGVySUQgKCBAeyRTb3J0ZWRXb3JrT3JkZXJJRHN9ICkgewoKICAgICAgICAjIGluY3JlbWVudCBDb3VudGVyIHRvIGdldCBuZXcgV29ya09yZGVyTnVtYmVyCiAgICAgICAgJENvdW50ZXIrKzsKCiAgICAgICAgIyBnZXQgV29ya09yZGVyCiAgICAgICAgbXkgJFdvcmtPcmRlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckdldCgKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIHVwZGF0ZSBvbmx5IHdoZW4gTnVtYmVyIGNoYW5nZWQgLSB0byBhdm9pZCBpbmZpbml0IGxvb3BzCiAgICAgICAgbmV4dCBXT1JLT1JERVJJRCBpZiAkQ291bnRlciA9PSAkV29ya09yZGVyLT57V29ya09yZGVyTnVtYmVyfTsKCiAgICAgICAgIyBzdG9yZSB0aGUgbmV3IFdvcmtPcmRlck51bWJlciBmb3IgdGhpcyBXb3JrT3JkZXJJRAogICAgICAgICROZXdXb3JrT3JkZXJOdW1iZXJ7JFdvcmtPcmRlcklEfSA9ICRDb3VudGVyOwogICAgfQoKICAgICMgdXBkYXRlIHRoZSB3b3Jrb3JkZXJzIHRoYXQgbmVlZCBhIG5ldyBXb3JrT3JkZXJOdW1iZXIKICAgIGZvciBteSAkV29ya09yZGVySUQgKCBzb3J0IGtleXMgJU5ld1dvcmtPcmRlck51bWJlciApIHsKCiAgICAgICAgIyB1cGRhdGUgZWFjaCB3b3Jrb3JkZXIsIHByZXZlbnQgcmVjYWxjdWxhdGlvbiBvZiB0aGUgV29ya09yZGVyTnVtYmVyIGFnYWluCiAgICAgICAgbXkgJENvdWxkVXBkYXRlV29ya09yZGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyVXBkYXRlKAogICAgICAgICAgICBXb3JrT3JkZXJJRCAgICAgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBXb3JrT3JkZXJOdW1iZXIgPT4gJE5ld1dvcmtPcmRlck51bWJlcnskV29ya09yZGVySUR9LAogICAgICAgICAgICBOb051bWJlckNhbGMgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMWorkOrder/Permission/CABCheck.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjo6UGVybWlzc2lvbjo6Q0FCQ2hlY2s7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyOjpQZXJtaXNzaW9uOjpDQUJDaGVjayAtIENBQiBiYXNlZCBwZXJtaXNzaW9uIGNoZWNrCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIG5ldygpCgpDcmVhdGUgYW4gb2JqZWN0LgoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJENoZWNrT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXI6OlBlcm1pc3Npb246OkNBQkNoZWNrJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIFJ1bigpCgpUaGlzIG1ldGhvZCBkb2VzIHRoZSBjaGVjay4gQWNjZXNzIGlzIGFsbG93ZWQgd2hlbiB0eXBlIGlzIEM8cm8+IGFuZCB0aGUgYWdlbnQgaXMgYSBtZW1iZXIKb2YgdGhlIENBQiBvZiB0aGUgY2hhbmdlIG9mIHRoZSBDPHdvcmtvcmRlcj4uCgogICAgbXkgJEhhc0FjY2VzcyA9ICRDaGVja09iamVjdC0+UnVuKAogICAgICAgIFVzZXJJRCAgICAgID0+IDEyMywKICAgICAgICBUeXBlICAgICAgICA9PiAncncnLCAgICAgIyAncm8nIG9yICdydycKICAgICAgICBXb3JrT3JkZXJJRCA9PiA0NDQ0LAogICAgKTsKCj1jdXQKCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIFR5cGUgV29ya09yZGVySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIG9ubHkgJ3JvJyBhY2Nlc3MgbWlnaHQgYmUgZ3JhbnRlZCBieSB0aGlzIG1vZHVsZQogICAgcmV0dXJuIGlmICRQYXJhbXtUeXBlfSBuZSAncm8nOwoKICAgICMgdGhlcmUgYWxyZWFkeSBpcyBhIHdvcmtvcmRlcgogICAgbXkgJFdvcmtPcmRlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckdldCgKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkUGFyYW17V29ya09yZGVySUR9LAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIG5vIHdvcmtvcmRlciB3YXMgZm91bmQKICAgIHJldHVybiBpZiAhJFdvcmtPcmRlciB8fCAhJXskV29ya09yZGVyfSB8fCAhJFdvcmtPcmRlci0+e0NoYW5nZUlEfTsKCiAgICAjIGdldCB0aGUgQ0FCIG9mIHRoZSBjaGFuZ2UKICAgIG15ICRDQUIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VDQUJHZXQoCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlci0+e0NoYW5nZUlEfSwKICAgICk7CgogICAgIyBsb29rIGZvciBhIENBQiBtZW1iZXIgd2l0aCB0aGUgcmVsZXZhbnQgVXNlcklECiAgICBteSAoJEZvdW5kQ0FCTWVtYmVyKSA9IGdyZXAgeyAkXyA9PSAkUGFyYW17VXNlcklEfSB9IEB7ICRDQUItPntDQUJBZ2VudHN9IH07CgogICAgIyBhbGxvdyBhY2Nlc3MgdGhlIHRoZSBhZ2VudCBpcyBhIENBQiBtZW1iZXIKICAgIHJldHVybiAxIGlmICRGb3VuZENBQk1lbWJlcjsKCiAgICAjIGRlbnkgYWNjZXNzIG90aGVyd2lzZQogICAgcmV0dXJuOwp9Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0CgoxOwo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMWorkOrder/Permission/ChangeBuilderCheck.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjo6UGVybWlzc2lvbjo6Q2hhbmdlQnVpbGRlckNoZWNrOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyOjpQZXJtaXNzaW9uOjpDaGFuZ2VCdWlsZGVyQ2hlY2sgLSBjaGFuZ2UgYnVpbGRlciBiYXNlZCBwZXJtaXNzaW9uIGNoZWNrCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIG5ldygpCgpDcmVhdGUgYW4gb2JqZWN0LgoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJENoZWNrT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXI6OlBlcm1pc3Npb246OkNoYW5nZUJ1aWxkZXJDaGVjaycpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBSdW4oKQoKVGhpcyBtZXRob2QgZG9lcyB0aGUgY2hlY2suIEM8cm8+IGFuZCBDPHJ3PiBhY2Nlc3MgaXMgZ3JhbnRlZAp3aGVuIHRoZSBhZ2VudCBoYXMgdGhlIEM8cHJpdj4gaW4gdGhlICdpdHNtLWNoYW5nZS1idWlsZGVyJyBncm91cCBhbmQKd2hlbiB0aGUgYWdlbnQgaXMgdGhlIGNoYW5nZSBidWlsZGVyIG9mIHRoZSBjaGFuZ2UuCgogICAgbXkgJEhhc0FjY2VzcyA9ICRDaGVja09iamVjdC0+UnVuKAogICAgICAgIFVzZXJJRCAgICAgID0+IDEyMywKICAgICAgICBUeXBlICAgICAgICA9PiAncncnLCAgICAgIyAncm8nIG9yICdydycKICAgICAgICBXb3JrT3JkZXJJRCA9PiA0NDQ0LAogICAgKTsKCj1jdXQKCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIFR5cGUgV29ya09yZGVySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHRoZSBjaGVjayBpcyBiYXNlZCB1cG9uIHRoZSBjaGFuZ2UgYnVpbGRlcgogICAgbXkgJEdyb3VwSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJ2l0c20tY2hhbmdlLWJ1aWxkZXInLAogICAgKTsKCiAgICAjIGRvIG5vdCBncmFudCBhY2Nlc3MsIHdoZW4gdGhlIGdyb3VwIGlzIG5vdCBmb3VuZAogICAgcmV0dXJuIGlmICEkR3JvdXBJRDsKCiAgICAjIGdldCB1c2VyIGdyb3Vwcywgd2hlcmUgdGhlIHVzZXIgaGFzIHRoZSBhcHByb3ByaWF0ZSBwcml2aWxlZ2UKICAgIG15ICVHcm91cHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBUeXBlICAgPT4gJFBhcmFte1R5cGV9LAogICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICApOwoKICAgICMgZG8gbm90IGdyYW50IGFjY2VzcyBpZiB0aGUgYWdlbnQgZG9lc24ndCBoYXZlIHRoZSBhcHByb3ByaWF0ZSB0eXBlIGluIHRoZSBhcHByb3ByaWF0ZSBncm91cAogICAgcmV0dXJuIGlmICEkR3JvdXBzeyRHcm91cElEfTsKCiAgICAjIHRoZXJlIGFscmVhZHkgaXMgYSB3b3Jrb3JkZXIuIGUuZy4gQWdlbnRJVFNNV29ya09yZGVyRWRpdAogICAgbXkgJFdvcmtPcmRlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckdldCgKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkUGFyYW17V29ya09yZGVySUR9LAogICAgKTsKCiAgICAjIGRvIG5vdCBncmFudCBhY2Nlc3MsIHdoZW4gbm8gd29ya29yZGVyIHdhcyBmb3VuZAogICAgcmV0dXJuIGlmICEkV29ya09yZGVyIHx8ICEleyRXb3JrT3JkZXJ9IHx8ICEkV29ya09yZGVyLT57Q2hhbmdlSUR9OwoKICAgICMgZm9yIGNoZWNraW5nIHRoZSBjaGFuZ2UgYnVpbGRlciwgd2UgbmVlZCBpbmZvcm1hdGlvbiBvbiB0aGUgY2hhbmdlCiAgICBteSAkQ2hhbmdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlR2V0KAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIENoYW5nZUlEID0+ICRXb3JrT3JkZXItPntDaGFuZ2VJRH0sCiAgICApOwoKICAgICMgZG8gbm90IGdyYW50IGFjY2Vzcywgd2hlbiBubyBjaGFuZ2Ugd2FzIGZvdW5kCiAgICByZXR1cm4gaWYgISRDaGFuZ2UgfHwgISV7JENoYW5nZX0gfHwgISRDaGFuZ2UtPntDaGFuZ2VCdWlsZGVySUR9OwoKICAgICMgYWxsb3cgYWNjZXNzLCB3aGVuIHRoZSBhZ2VudCBpcyB0aGUgY2hhbmdlIGJ1aWxkZXIgb2YgdGhlIGNoYW5nZQogICAgcmV0dXJuIDEgaWYgJENoYW5nZS0+e0NoYW5nZUJ1aWxkZXJJRH0gPT0gJFBhcmFte1VzZXJJRH07CgogICAgIyBkbyBub3QgZ3JhbnQgYWNjZXNzIG90aGVyd2lzZQogICAgcmV0dXJuOwp9Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0CgoxOwo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMWorkOrder/Permission/ChangeManagerCheck.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjo6UGVybWlzc2lvbjo6Q2hhbmdlTWFuYWdlckNoZWNrOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjo6UGVybWlzc2lvbjo6Q2hhbmdlTWFuYWdlckNoZWNrIC0gY2hhbmdlIG1hbmFnZXIgYmFzZWQgcGVybWlzc2lvbiBjaGVjawoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKQ3JlYXRlIGFuIG9iamVjdC4KCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDaGVja09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyOjpQZXJtaXNzaW9uOjpDaGFuZ2VNYW5hZ2VyQ2hlY2snKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgUnVuKCkKClRoaXMgbWV0aG9kIGRvZXMgdGhlIGNoZWNrLiBDPHJvPiBhbmQgQzxydz4gYWNjZXNzIGlzIGdyYW50ZWQKd2hlbiB0aGUgYWdlbnQgaGFzIHRoZSBDPHByaXY+IGluIHRoZSAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgZ3JvdXAuCgogICAgbXkgJEhhc0FjY2VzcyA9ICRDaGVja09iamVjdC0+UnVuKAogICAgICAgIFVzZXJJRCAgICAgID0+IDEyMywKICAgICAgICBUeXBlICAgICAgICA9PiAncncnLCAgICAgIyAncm8nIG9yICdydycKICAgICAgICBXb3JrT3JkZXJJRCA9PiA0NDQ0LAogICAgKTsKCj1jdXQKCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIFR5cGUgV29ya09yZGVySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHRoZSBjaGVjayBpcyBiYXNlZCB1cG9uIHRoZSBjaGFuZ2UgbWFuYWdlcgogICAgbXkgJEdyb3VwSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJ2l0c20tY2hhbmdlLW1hbmFnZXInLAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIHRoZSBncm91cCBpcyBub3QgZm91bmQKICAgIHJldHVybiBpZiAhJEdyb3VwSUQ7CgogICAgIyBnZXQgdXNlciBncm91cHMsIHdoZXJlIHRoZSB1c2VyIGhhcyB0aGUgYXBwcm9wcmlhdGUgcHJpdmlsZWdlCiAgICBteSAlR3JvdXBzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgVHlwZSAgID0+ICRQYXJhbXtUeXBlfSwKICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgKTsKCiAgICAjIGFsbG93IHJvIGFuZCBydyBhY2Nlc3MgaWYgdGhlIGFnZW50IGlzIGEgY2hhbmdlIG1hbmFnZXIKICAgIHJldHVybiAxIGlmICRHcm91cHN7JEdyb3VwSUR9OwoKICAgICMgbm8gbmVlZCB0byBjaGVjayBpZiB0aGUgYWdlbnQgaXMgdGhlIGFjdHVhbCBtYW5hZ2VyIG9mIHRoZSBjaGFuZ2Ugb2YgdGhlIHdvcmtvcmRlcgoKICAgICMgZGVueSBhY2Nlc3Mgb3RoZXJ3aXNlCiAgICByZXR1cm47Cn0KCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cHM6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQKCjE7Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMWorkOrder/Permission/EmptyAgentCheck.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjo6UGVybWlzc2lvbjo6RW1wdHlBZ2VudENoZWNrOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXI6OlBlcm1pc3Npb246OkVtcHR5QWdlbnRDaGVjayAtIGdyYW50IHBlcm1pc3Npb24gd2hlbiBhZ2VudCBpcyBlbXB0eQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKQ3JlYXRlIGFuIG9iamVjdC4KCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDaGVja09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyOjpQZXJtaXNzaW9uOjpFbXB0eUFnZW50Q2hlY2snKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgUnVuKCkKClRoaXMgbWV0aG9kIGRvZXMgdGhlIGNoZWNrLiBDPHJvPiBhY2Nlc3MgaXMgZ3JhbnRlZCB3aGVuIHRoZSBhZ2VudCBpcyBhIEM8cm8+IG1lbWJlcgpvZiB0aGUgJ2l0c20tY2hhbmdlJyBncm91cC4gQzxydz4gYWNjZXNzIGlzIGdyYW50ZWQgd2hlbiB0aGUgQzx3b3Jrb3JkZXI+IGhhcyBubyBhZ2VudC4KCiAgICBteSAkSGFzQWNjZXNzID0gJENoZWNrT2JqZWN0LT5SdW4oCiAgICAgICAgVXNlcklEICAgICAgPT4gMTIzLAogICAgICAgIFR5cGUgICAgICAgID0+ICdydycsICAgICAjICdybycgb3IgJ3J3JwogICAgICAgIFdvcmtPcmRlcklEID0+IDQ0NDQsCiAgICApOwoKPWN1dAoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgVHlwZSBXb3JrT3JkZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgdGhlIGNoZWNrIGlzIGJhc2VkIHVwb24gdGhlIHdvcmtvcmRlciBhZ2VudAogICAgbXkgJEdyb3VwSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJ2l0c20tY2hhbmdlJywKICAgICk7CgogICAgIyBkZW55IGFjY2Vzcywgd2hlbiB0aGUgZ3JvdXAgaXMgbm90IGZvdW5kCiAgICByZXR1cm4gaWYgISRHcm91cElEOwoKICAgICMgZ2V0IHVzZXIgZ3JvdXBzLCB3aGVyZSB0aGUgdXNlciBoYXMgdGhlIGFwcHJvcHJpYXRlIHByaXZpbGVnZQogICAgbXkgJUdyb3VwcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIFR5cGUgICA9PiAkUGFyYW17VHlwZX0sCiAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICk7CgogICAgIyBkZW55IGFjY2VzcyBpZiB0aGUgYWdlbnQgZG9lc24ndCBoYXZlIHRoZSBhcHByb3ByaWF0ZSB0eXBlIGluIHRoZSBhcHByb3ByaWF0ZSBncm91cAogICAgcmV0dXJuIGlmICEkR3JvdXBzeyRHcm91cElEfTsKCiAgICAjIHdvcmtvcmRlciBhZ2VudHMgYXJlIGdyYW50ZWQgcm8gYWNjZXNzCiAgICByZXR1cm4gMSBpZiAkUGFyYW17VHlwZX0gZXEgJ3JvJzsKCiAgICAjIHRoZXJlIGFscmVhZHkgaXMgYSB3b3Jrb3JkZXIuIGUuZy4gQWdlbnRJVFNNV29ya09yZGVyRWRpdAogICAgbXkgJFdvcmtPcmRlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckdldCgKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkUGFyYW17V29ya09yZGVySUR9LAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIG5vIHdvcmtvcmRlciB3YXMgZm91bmQKICAgIHJldHVybiBpZiAhJFdvcmtPcmRlciB8fCAhJXskV29ya09yZGVyfTsKCiAgICAjIGFsbG93IGFjY2Vzcywgd2hlbiB0aGVyZSBpcyBubyB3b3Jrb3JkZXIgYWdlbnQKICAgIHJldHVybiAxIGlmICEkV29ya09yZGVyLT57V29ya09yZGVyQWdlbnRJRH07CgogICAgIyBkZW55IGFjY2Vzcywgd2hlbiB3b3Jrb3JkZXIgYWdlbnQgaXMgZW1wdHkKICAgIHJldHVybiBpZiAhJFdvcmtPcmRlci0+e1dvcmtPcmRlckFnZW50SUR9OwoKICAgICMgZGVueSBydyBhY2Nlc3Mgb3RoZXJ3aXNlCiAgICByZXR1cm47Cn0KCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cHM6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQKCjE7Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMWorkOrder/Permission/ListAgentCheck.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjo6UGVybWlzc2lvbjo6TGlzdEFnZW50Q2hlY2s7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OlVzZXInLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyOjpQZXJtaXNzaW9uOjpMaXN0QWdlbnRDaGVjayAtIGdyYW50IHBlcm1pc3Npb24gd2hlbiB0aGUgYWdlbnQgaXMgaW4gYSBsaXN0Cgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkQ2hlY2tPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjo6UGVybWlzc2lvbjo6TGlzdEFnZW50Q2hlY2snKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgUnVuKCkKClRoaXMgbWV0aG9kIGRvZXMgdGhlIGNoZWNrLiBDPHJvPiBhY2Nlc3MgaXMgZ3JhbnRlZCB3aGVuIHRoZSBhZ2VudCBpcyBhIEM8cm8+IG1lbWJlcgpvZiB0aGUgJ2l0c20tY2hhbmdlJyBncm91cC4gQzxydz4gYWNjZXNzIGlzIGdyYW50ZWQgd2hlbiB0aGUgY3VycmVudCBDPHdvcmtvcmRlcj4gYWdlbnQKaXMgY29udGFpbmVkIGluIHRoZSBjb25maWd1cmVkIGxpc3QuCgogICAgbXkgJEhhc0FjY2VzcyA9ICRDaGVja09iamVjdC0+UnVuKAogICAgICAgIFVzZXJJRCAgICAgID0+IDEyMywKICAgICAgICBUeXBlICAgICAgICA9PiAncncnLCAgICAgIyAncm8nIG9yICdydycKICAgICAgICBXb3JrT3JkZXJJRCA9PiA0NDQ0LAogICAgKTsKCj1jdXQKCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIFR5cGUgV29ya09yZGVySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgdGhlIGNoZWNrIGlzIGJhc2VkIHVwb24gdGhlIHdvcmtvcmRlciBhZ2VudAogICAgbXkgJEdyb3VwSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJ2l0c20tY2hhbmdlJywKICAgICk7CgogICAgIyBkZW55IGFjY2Vzcywgd2hlbiB0aGUgZ3JvdXAgaXMgbm90IGZvdW5kCiAgICByZXR1cm4gaWYgISRHcm91cElEOwoKICAgICMgZ2V0IHVzZXIgZ3JvdXBzLCB3aGVyZSB0aGUgdXNlciBoYXMgdGhlIGFwcHJvcHJpYXRlIHByaXZpbGVnZQogICAgbXkgJUdyb3VwcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIFR5cGUgICA9PiAkUGFyYW17VHlwZX0sCiAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICk7CgogICAgIyBkZW55IGFjY2VzcyBpZiB0aGUgYWdlbnQgZG9lc24ndCBoYXZlIHRoZSBhcHByb3ByaWF0ZSB0eXBlIGluIHRoZSBhcHByb3ByaWF0ZSBncm91cAogICAgcmV0dXJuIGlmICEkR3JvdXBzeyRHcm91cElEfTsKCiAgICAjIHdvcmtvcmRlciBhZ2VudHMgYXJlIGdyYW50ZWQgcm8gYWNjZXNzCiAgICByZXR1cm4gMSBpZiAkUGFyYW17VHlwZX0gZXEgJ3JvJzsKCiAgICAjIHRoZXJlIGFscmVhZHkgaXMgYSB3b3Jrb3JkZXIuIGUuZy4gQWdlbnRJVFNNV29ya09yZGVyRWRpdAogICAgbXkgJFdvcmtPcmRlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckdldCgKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkUGFyYW17V29ya09yZGVySUR9LAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIG5vIHdvcmtvcmRlciB3YXMgZm91bmQKICAgIHJldHVybiBpZiAhJFdvcmtPcmRlciB8fCAhJXskV29ya09yZGVyfTsKCiAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIHdvcmtvcmRlciBhZ2VudCBpcyBlbXB0eQogICAgcmV0dXJuIGlmICEkV29ya09yZGVyLT57V29ya09yZGVyQWdlbnRJRH07CgogICAgbXkgJFdvcmtPcmRlckFnZW50ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICBVc2VySUQgPT4gJFdvcmtPcmRlci0+e1dvcmtPcmRlckFnZW50SUR9LAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIHRoZSBuYW1lIGNhbiBub3QgYmUgbG9va2VkIHVwCiAgICByZXR1cm4gaWYgISRXb3JrT3JkZXJBZ2VudDsKCiAgICAjIHRha2UgbGlzdCBvZiBzcGVjaWFsIGFnZW50cyBmcm9tIHRoZSBzeXNjb25maWcKICAgIG15ICRBZ2VudExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0lUU01Xb3JrT3JkZXI6OlRha2VQZXJtaXNzaW9uOjpMaXN0Jyk7CgogICAgIyBhbGxvdyBhY2Nlc3MsIHdoZW4gdGhlIHdvcmtvcmRlciBhZ2VudCBpcyBpbiB0aGUgbGlzdAogICAgcmV0dXJuIDEgaWYgJEFnZW50TGlzdC0+eyRXb3JrT3JkZXJBZ2VudH07CgogICAgIyBkZW55IHJ3IGFjY2VzcyBvdGhlcndpc2UKICAgIHJldHVybjsKfQoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAoKMTsK</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/ITSMWorkOrder/Permission/WorkOrderAgentCheck.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjo6UGVybWlzc2lvbjo6V29ya09yZGVyQWdlbnRDaGVjazsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyOjpQZXJtaXNzaW9uOjpXb3JrT3JkZXJBZ2VudENoZWNrIC0gd29ya29yZGVyIGFnZW50IGJhc2VkIHBlcm1pc3Npb24gY2hlY2sKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCkNyZWF0ZSBhbiBvYmplY3QuCgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkQ2hlY2tPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcjo6UGVybWlzc2lvbjo6V29ya09yZGVyQWdlbnRDaGVjaycpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBSdW4oKQoKVGhpcyBtZXRob2QgZG9lcyB0aGUgY2hlY2suIEM8cm8+IGFjY2VzcyBpcyBncmFudGVkIHdoZW4gdGhlIGFnZW50IGlzIGEgQzxybz4gbWVtYmVyCm9mIHRoZSAnaXRzbS1jaGFuZ2UnIGdyb3VwLiBDPHJ3PiBhY2Nlc3MgaXMgZ3JhbnRlZCB3aGVuIHRoZSBhZ2VudCBpcyB0aGUgQzx3b3Jrb3JkZXI+IGFnZW50Cm9mIHRoZSBDPHdvcmtvcmRlcj4uCgogICAgbXkgJEhhc0FjY2VzcyA9ICRDaGVja09iamVjdC0+UnVuKAogICAgICAgIFVzZXJJRCAgICAgID0+IDEyMywKICAgICAgICBUeXBlICAgICAgICA9PiAncncnLCAgICAgIyAncm8nIG9yICdydycKICAgICAgICBXb3JrT3JkZXJJRCA9PiA0NDQ0LCAgICAgIyBvcHRpb25hbCBmb3IgV29ya09yZGVyQWRkCiAgICApOwoKPWN1dAoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgVHlwZSBXb3JrT3JkZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgdGhlIGNoZWNrIGlzIGJhc2VkIHVwb24gdGhlIHdvcmtvcmRlciBhZ2VudAogICAgbXkgJEdyb3VwSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJ2l0c20tY2hhbmdlJywKICAgICk7CgogICAgIyBkZW55IGFjY2Vzcywgd2hlbiB0aGUgZ3JvdXAgaXMgbm90IGZvdW5kCiAgICByZXR1cm4gaWYgISRHcm91cElEOwoKICAgICMgZ2V0IHVzZXIgZ3JvdXBzLCB3aGVyZSB0aGUgdXNlciBoYXMgdGhlIGFwcHJvcHJpYXRlIHByaXZpbGVnZQogICAgbXkgJUdyb3VwcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIFR5cGUgICA9PiAkUGFyYW17VHlwZX0sCiAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICk7CgogICAgIyBkZW55IGFjY2VzcyBpZiB0aGUgYWdlbnQgZG9lc24ndCBoYXZlIHRoZSBhcHByb3ByaWF0ZSB0eXBlIGluIHRoZSBhcHByb3ByaWF0ZSBncm91cAogICAgcmV0dXJuIGlmICEkR3JvdXBzeyRHcm91cElEfTsKCiAgICAjIHdvcmtvcmRlciBhZ2VudHMgYXJlIGdyYW50ZWQgcm8gYWNjZXNzCiAgICByZXR1cm4gMSBpZiAkUGFyYW17VHlwZX0gZXEgJ3JvJzsKCiAgICAjIHRoZXJlIGFscmVhZHkgaXMgYSB3b3Jrb3JkZXIuIGUuZy4gQWdlbnRJVFNNV29ya09yZGVyRWRpdAogICAgbXkgJFdvcmtPcmRlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckdldCgKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkUGFyYW17V29ya09yZGVySUR9LAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIG5vIHdvcmtvcmRlciB3YXMgZm91bmQKICAgIHJldHVybiBpZiAhJFdvcmtPcmRlciB8fCAhJXskV29ya09yZGVyfSB8fCAhJFdvcmtPcmRlci0+e1dvcmtPcmRlckFnZW50SUR9OwoKICAgICMgYWxsb3cgYWNjZXNzLCB3aGVuIHRoZSBhZ2VudCBpcyB0aGUgd29ya29yZGVyIGFnZW50IG9mIHRoZSB3b3Jrb3JkZXIKICAgIHJldHVybiAxIGlmICRXb3JrT3JkZXItPntXb3JrT3JkZXJBZ2VudElEfSA9PSAkUGFyYW17VXNlcklEfTsKCiAgICAjIGRlbnkgcncgYWNjZXNzIG90aGVyd2lzZQogICAgcmV0dXJuOwp9Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0CgoxOwo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/NumberBase.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6TnVtYmVyQmFzZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBUaW1lOjpIaVJlcygpOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRCJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RXhjbHVzaXZlTG9jaycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok1haW4nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6TnVtYmVyQmFzZSAtIENvbW1vbiBmdW5jdGlvbnMgZm9yIGNoYW5nZSBudW1iZXIgZ2VuZXJhdG9ycwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCRUeXBlKSA9IEBfOwoKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgSXNEYXRlQmFzZWQoKQoKaW5mb3JtcyBpZiB0aGUgY3VycmVudCBudW1iZXIgY291bnRlciBoYXMgYSByZXNldCB3aXRoIGV2ZXJ5IG5ldyBkYXkgb3Igbm90LiBBbGwgZ2VuZXJhdG9ycwpuZWVkIHRvIGltcGxlbWVudCB0aGlzIGZ1bmN0aW9uLgoKICAgIG15ICRJc0RhdGViYXNlZCA9ICRDaGFuZ2VOdW1iZXJPYmplY3QtPklzRGF0ZUJhc2VkKCk7Cgo9Y3V0Cgo9aGVhZDIgQ2hhbmdlTnVtYmVyQ291bnRlckFkZCgpCgpBZGQgYSBuZXcgdW5pcXVlIGNoYW5nZSBjb3VudGVyIGVudHJ5LiBUaGVzZSBjb3VudGVycyBhcmUgdXNlZCBieSB0aGUgZGlmZmVyZW50IG51bWJlciBnZW5lcmF0b3JzCiAgICB0byBnZW5lcmF0ZSB1bmlxdWUgQzxDaGFuZ2VOdW1iZXI+cwoKICAgIG15ICRDb3VudGVyID0gJENoYW5nZU51bWJlck9iamVjdC0+Q2hhbmdlTnVtYmVyQ291bnRlckFkZCgKICAgICAgICBPZmZzZXQgICAgICA9PiAxMjMsCiAgICApOwoKUmV0dXJuczoKCiAgICBteSAkQ291bnRlciA9IDEyMzsgICMgdW5kZWYgaW4gY2FzZSBvZiBhbiBlcnJvcgoKVGhpcyBtZXRob2QgaGFzIGxvZ2ljIHRvIGdlbmVyYXRlIHVuaXF1ZSBudW1iZXJzIGV2ZW4gdGhvdWdoIGNvbmN1cnJlbnQgcHJvY2Vzc2VzIG1pZ2h0IHdyaXRlIHRvIHRoZQpzYW1lIHRhYmxlLiBUaGUgYWxnb3JpdGhtIHJ1bnMgYXMgZm9sbG93czoKICAgIC0gSW5zZXJ0IGEgbmV3IHJlY29yZCBpbnRvIHRoZSBDPGNoYW5nZV9udW1iZXJfY291bnRlcj4gdGFibGUgd2l0aCBhIEM8Y291bnRlcj4gdmFsdWUgb2YgMC4KICAgIC0gVGhlbiB1cGRhdGUgYWxsIHByZWNlZGluZyByZWNvcmRzIGluY2x1ZGluZyBhbmQgdXAgdG8gdGhlIGN1cnJlbnQgb25lIHRoYXQgc3RpbGwgaGF2ZSB2YWx1ZSAwIGFuZCBjb21wdXRlIHRoZSBjb3JyZWN0IHZhbHVlIGZvciBlYWNoLCB3aGljaCBkZXBlbmRzIG9uIHRoZSBwcmV2aW91cyByZWNvcmQuCgpUaGlzIHdvcmtzIHdlbGwgYWxzbyBpZiBjb25jdXJyZW50IHByb2Nlc3NlcyB3cml0ZSB0byB0aGUgcmVjb3JkcyBhdCB0aGUgc2FtZSB0aW1lLCBiZWNhdXNlIHRoZXkgd2lsbCBjb21wdXRlIHRoZSBzYW1lICh1bmlxdWUpIHZhbHVlcyBmb3IgdGhlIGNvdW50ZXJzLgoKPWN1dAoKc3ViIENoYW5nZU51bWJlckNvdW50ZXJBZGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17T2Zmc2V0fSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgT2Zmc2V0ISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCAhSXNQb3NpdGl2ZUludGVnZXIoICRQYXJhbXtPZmZzZXR9ICkgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJPZmZzZXQgbmVlZHMgdG8gYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJENvdW50ZXJVSUQgPSAkU2VsZi0+X0dldFVJRCgpOwoKICAgIHJldHVybiBpZiAhJENvdW50ZXJVSUQ7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJwogICAgKTsKICAgIG15ICRDdXJyZW50VGltZVN0cmluZyA9ICREYXRlVGltZU9iamVjdC0+VG9TdHJpbmcoKTsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIEluc2VydCBuZXcgY2hhbmdlIGNvdW50ZXIgaW50byB0aGUgZGF0YWJhc2UgKHdpdGggdmFsdWUgMCkKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyBjaGFuZ2VfbnVtYmVyX2NvdW50ZXIKICAgICAgICAgICAgICAgIChjb3VudGVyLCBjb3VudGVyX3VpZCwgY3JlYXRlX3RpbWUpCiAgICAgICAgICAgIFZBTFVFUwogICAgICAgICAgICAgICAgKCAgMCwgPywgPyApJywKICAgICAgICBCaW5kID0+IFsgXCRDb3VudGVyVUlELCBcJEN1cnJlbnRUaW1lU3RyaW5nIF0sCiAgICApOwoKICAgICMgSXQncyBzdHJhbmdlLCBidXQgdGhpcyBzbGVlcCBzZWVtcyB0byBiZSBuZWVkZWQgdG8gbWFrZSBzdXJlIHRoYXQgb3RoZXIgZGF0YWJhc2Ugc2Vzc2lvbnMgYWxzbyBzZWUgdGhpcyByZWNvcmQuCiAgICAjICAgV2l0aG91dCBpdCwgdGhlcmUgd2VyZSByYWNlIGNvbmRpdGlvbnMgYmVjYXVzZSB0aGUgZmlsbHVwIG9mIHVuc2V0IHZhbHVlcyBiZWxvdyBkaWRuJ3QgZmluZCByZWNvcmRzIHRoYXQgb3RoZXIKICAgICMgICBzZXNzaW9ucyBhbHJlYWR5IGluc2VydGVkLgogICAgVGltZTo6SGlSZXM6OnNsZWVwKDAuMDUpOwoKICAgICMgR2V0IHRoZSBJRCBvZiB0aGUganVzdCBpbnNlcnRlZCBjaGFuZ2UgY291bnRlci4KICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBpZAogICAgICAgICAgICBGUk9NIGNoYW5nZV9udW1iZXJfY291bnRlcgogICAgICAgICAgICBXSEVSRSBjb3VudGVyX3VpZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRDb3VudGVyVUlEIF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgbXkgJENvdW50ZXJJRDsKICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQ291bnRlcklEID0gJERhdGFbMF07CiAgICB9CgogICAgIyBDYWxjdWxhdGUgdGhlIGNvdW50ZXIgdmFsdWVzIGZvciBhbGwgcmVjb3JkcyB0aGF0IGRvbid0IGhhdmUgYSBnZW5lcmF0ZWQgdmFsdWUgeWV0LgogICAgIyAgIFRoaXMgaXMgc2FmZSBldmVuIGlmIG11bHRpcGxlIHByb2Nlc3NlcyBhY2Nlc3MgdGhlIHJlY29yZHMgYXQgdGhlIHNhbWUgdGltZS4KCiAgICBteSAkRGF0ZUNvbmRpdGlvblNRTCA9ICcnOwoKICAgICMgT25seSBnZXQgY291bnRlcnMgZnJvbSB0aGUgY3VycmVudCBkYXRlIGlmIHRoZSBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZSBpcyBkYXRlIGJhc2VkLgogICAgaWYgKCAkU2VsZi0+SXNEYXRlQmFzZWQoKSApIHsKCiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwogICAgICAgIGZvciBteSAkRWxlbWVudCAocXcoSG91ciBNaW51dGUgU2Vjb25kKSkgewogICAgICAgICAgICAkRGF0ZVRpbWVTZXR0aW5ncy0+eyRFbGVtZW50fSA9IDA7CiAgICAgICAgfQoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPlNldCggJXskRGF0ZVRpbWVTZXR0aW5nc30gKTsKICAgICAgICAkRGF0ZUNvbmRpdGlvblNRTCA9ICIgQU5EIGNyZWF0ZV90aW1lID49ICciIC4gJERhdGVUaW1lT2JqZWN0LT5Ub1N0cmluZygpIC4gIiciOwogICAgfQoKICAgIG15ICRTUUwgPSAiCiAgICAgICAgU0VMRUNUIGlkCiAgICAgICAgRlJPTSBjaGFuZ2VfbnVtYmVyX2NvdW50ZXIKICAgICAgICBXSEVSRSBjb3VudGVyID0gMAogICAgICAgICAgICBBTkQgaWQgPD0gPwogICAgICAgICAgICAkRGF0ZUNvbmRpdGlvblNRTAogICAgICAgIE9SREVSIEJZIGlkIEFTQyI7CgogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gWyBcJENvdW50ZXJJRCBdCiAgICApOwoKICAgIG15IEBVbnNldENvdW50ZXJJRHM7CgogICAgUk9XOgogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgcHVzaCBAVW5zZXRDb3VudGVySURzLCAkUm93WzBdOwogICAgfQoKICAgIG15ICRTZXRPZmZzZXQ7CiAgICBmb3IgbXkgJFVuc2V0Q291bnRlcklEIChAVW5zZXRDb3VudGVySURzKSB7CgogICAgICAgICMgR2V0IHByZXZpb3VzIGNvdW50ZXIgcmVjb3JkIHZhbHVlICh0b2xlcmF0ZSBnYXBzKS4KICAgICAgICBteSAkUHJldmlvdXNDb3VudGVyID0gMDsKCiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAiCiAgICAgICAgICAgIFNFTEVDVCBjb3VudGVyCiAgICAgICAgICAgIEZST00gY2hhbmdlX251bWJlcl9jb3VudGVyCiAgICAgICAgICAgIFdIRVJFIGlkIDwgPwogICAgICAgICAgICAgICAgJERhdGVDb25kaXRpb25TUUwKICAgICAgICAgICAgT1JERVIgQlkgaWQgREVTQyIsCiAgICAgICAgICAgIEJpbmQgID0+IFsgXCRVbnNldENvdW50ZXJJRCBdLAogICAgICAgICAgICBMaW1pdCA9PiAxLAogICAgICAgICk7CgogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJFByZXZpb3VzQ291bnRlciA9ICREYXRhWzBdIHx8IDA7CiAgICAgICAgfQoKICAgICAgICAjIE9mZnNldCBtdXN0IG9ubHkgYmUgc2V0IG9uY2UgKGZvbGxvd2luZyBhcmUgY29uc2VjdXRpdmUpLgogICAgICAgIG15ICROZXdDb3VudGVyID0gJFByZXZpb3VzQ291bnRlciArIDE7CiAgICAgICAgaWYgKCAhJFNldE9mZnNldCApIHsKICAgICAgICAgICAgJE5ld0NvdW50ZXIgPSAkUHJldmlvdXNDb3VudGVyICsgJFBhcmFte09mZnNldH07CiAgICAgICAgICAgICRTZXRPZmZzZXQgID0gMTsKICAgICAgICB9CgogICAgICAgICMgVXBkYXRlIHRoZSBjb3VudGVyIHZhbHVlLCB1bmxlc3MgYW5vdGhlciBwcm9jZXNzIGFscmVhZHkgZGlkIGl0LgogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFVQREFURSBjaGFuZ2VfbnVtYmVyX2NvdW50ZXIKICAgICAgICAgICAgICAgIFNFVCBjb3VudGVyID0gPwogICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/CiAgICAgICAgICAgICAgICAgICAgQU5EIGNvdW50ZXIgPSAwJywKICAgICAgICAgICAgQmluZCA9PiBbIFwkTmV3Q291bnRlciwgXCRVbnNldENvdW50ZXJJRCBdLAogICAgICAgICk7CiAgICB9CgogICAgIyBHZXQgdGhlIGp1c3QgaW5zZXJ0ZWQgY2hhbmdlIGNvdW50ZXIgd2l0aCB0aGUgbm93IGNvbXB1dGVkIHZhbHVlLgogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGNvdW50ZXIKICAgICAgICAgICAgRlJPTSBjaGFuZ2VfbnVtYmVyX2NvdW50ZXIKICAgICAgICAgICAgV0hFUkUgY291bnRlcl91aWQgPSA/JywKICAgICAgICBCaW5kICA9PiBbIFwkQ291bnRlclVJRCBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgIG15ICRDb3VudGVyOwogICAgd2hpbGUgKCBteSBARGF0YSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRDb3VudGVyID0gJERhdGFbMF07CiAgICB9CgogICAgcmV0dXJuICRDb3VudGVyOwp9Cgo9aGVhZDIgQ2hhbmdlTnVtYmVyQ291bnRlckRlbGV0ZSgpCgpSZW1vdmUgYSBjaGFuZ2UgY291bnRlciBlbnRyeS4KCiAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VOdW1iZXJPYmplY3QtPkNoYW5nZU51bWJlckNvdW50ZXJEZWxldGUoCiAgICAgICAgQ291bnRlcklEID0+IDEyMywKICAgICk7CgpSZXR1cm5zOgoKICAgIG15ICRTdWNjZXNzID0gMTsgICMgZmFsc2UgaW4gY2FzZSBvZiBhbiBlcnJvcgoKPWN1dAoKc3ViIENoYW5nZU51bWJlckNvdW50ZXJEZWxldGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17Q291bnRlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgQ291bnRlcklEIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIERlbGV0ZSBjb3VudGVyIGZyb20gdGhlIGxpc3QuCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgID0+ICdERUxFVEUgRlJPTSBjaGFuZ2VfbnVtYmVyX2NvdW50ZXIgV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtDb3VudGVySUR9IF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQ2hhbmdlTnVtYmVyQ291bnRlcklzRW1wdHkoKQoKQ2hlY2sgaWYgdGhlcmUgYXJlIG5vIHJlY29yZHMgaW4gY2hhbmdlX251bWJlcl9jb3VudGVyIERCIHRhYmxlLgoKICAgIG15ICRJc0VtcHR5ID0gJENoYW5hZ2VOdW1iZXJPYmplY3QtPkNoYW5nZU51bWJlckNvdW50ZXJJc0VtcHR5KCk7CgpSZXR1cm5zOgoKICAgIG15ICRJc0VtcHR5ID0gMTsgICMgMCBpZiBpdCBpcyBub3QgZW1wdHkgYW5kIHVuZGVmIGluIGNhc2Ugb2YgYW4gZXJyb3IKCj1jdXQKCnN1YiBDaGFuZ2VOdW1iZXJDb3VudGVySXNFbXB0eSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIENPVU5UKCopIEZST00gY2hhbmdlX251bWJlcl9jb3VudGVyJywKICAgICk7CgogICAgbXkgJENvdW50OwogICAgd2hpbGUgKCBteSBARGF0YSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRDb3VudCA9ICREYXRhWzBdOwogICAgfQoKICAgIHJldHVybiAkQ291bnQgPyAwIDogMTsKfQoKPWhlYWQyIENoYW5nZU51bWJlckNvdW50ZXJDbGVhbnVwKCkKClJlbW92ZXMgb2xkIGNvdW50ZXJzIGZyb20gdGhlIHN5c3RlbS4KCiAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VOdW1iZXJPYmplY3QtPkNoYW5nZU51bWJlckNvdW50ZXJDbGVhbnVwKCk7CgpSZXR1cm5zOgoKICAgIG15ICRTdWNjZXNzID0gMTsgICMgb3IgZmFsc2UgaW4gY2FzZSBvZiBhbiBlcnJvcgoKPWN1dAoKc3ViIENoYW5nZU51bWJlckNvdW50ZXJDbGVhbnVwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBHZXQgYWxsIGNvdW50ZXJzLgogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQsIGNyZWF0ZV90aW1lIEZST00gY2hhbmdlX251bWJlcl9jb3VudGVyIE9SREVSIEJZIGlkIERFU0MnCiAgICApOwoKICAgIG15IEBDb3VudGVyTGlzdDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQENvdW50ZXJMaXN0LCB7CiAgICAgICAgICAgIElEICAgICAgICAgPT4gJFJvd1swXSwKICAgICAgICAgICAgQ3JlYXRlVGltZSA9PiAkUm93WzFdLAogICAgICAgIH07CiAgICB9CgogICAgIyBLZWVwIHRoZSBsYXRlc3QgMTAgY291bnRlcnMuCiAgICBteSAkUmVtYWluaW5nQ291bnRlcnMgPSAxMDsKICAgIEBDb3VudGVyTGlzdCA9IHNwbGljZSggQENvdW50ZXJMaXN0LCAkUmVtYWluaW5nQ291bnRlcnMgKTsKCiAgICAjIENyZWF0ZSBhIGRhdGUgdGltZSBvYmplY3Qgd2l0aCAxMCBtaW51dGVzIGluIHRoZSBwYXN0IGZvciBsYXRlciBjb21wYXJpc29ucy4KICAgIG15ICRUYXJnZXREYXRlVGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICApOwogICAgbXkgJFN1YnN0cmFjdFN1Y2Nlc3MgPSAkVGFyZ2V0RGF0ZVRpbWUtPlN1YnRyYWN0KAogICAgICAgIE1pbnV0ZXMgPT4gMTAsCiAgICApOwoKICAgIG15ICRNYXhDb3VudGVySUQ7CgogICAgQ09VTlRFUklEOgogICAgZm9yIG15ICRDb3VudGVyIChAQ291bnRlckxpc3QpIHsKCiAgICAgICAgbXkgJENvdW50ZXJEYXRlVGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRDb3VudGVyLT57Q3JlYXRlVGltZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBLZWVwIGFsc28gY291bnRlcnMgY3JlYXRlZCBpbiB0aGUgbGF0ZXN0IDEwIG1pbnV0ZXMuCiAgICAgICAgbmV4dCBDT1VOVEVSSUQgaWYgJENvdW50ZXJEYXRlVGltZSA+PSAkVGFyZ2V0RGF0ZVRpbWU7CgogICAgICAgICRNYXhDb3VudGVySUQgPSAkQ291bnRlci0+e0lEfTsKICAgICAgICBsYXN0IENPVU5URVJJRDsKICAgIH0KCiAgICAjIERlbGV0ZSBjb3VudGVyIGZyb20gdGhlIGxpc3QuCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMICA9PiAnREVMRVRFIEZST00gY2hhbmdlX251bWJlcl9jb3VudGVyIFdIRVJFIGlkIDw9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJE1heENvdW50ZXJJRCBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENoYW5nZUNyZWF0ZU51bWJlcigpCgpDcmVhdGVzIGEgdW5pcXVlIGNoYW5nZSBudW1iZXIuCgogICAgbXkgJENoYW5nZU51bWJlciA9ICRDaGFuZ2VOdW1iZXJPYmplY3QtPkNoYW5nZUNyZWF0ZU51bWJlcigpOwoKUmV0dXJuczoKCiAgICBteSAkQ2hhbmdlTnVtYmVyID0gNDU2OwoKPWN1dAoKc3ViIENoYW5nZUNyZWF0ZU51bWJlciB7CiAgICBteSAoICRTZWxmLCAkT2Zmc2V0ICkgPSBAXzsgICAgIyBPZmZzZXQgaXMgYW4gaW50ZXJuYWwgb2Zmc2V0IHZhbHVlIGZvciB0aGUgbmV3IGNvdW50ZXIgZW50cnkuCgogICAgIyBUcnkgdG8gZ2VuZXJhdGUgYSBuZXcgY2hhbmdlIG51bWJlci4KICAgIG15ICRDaGFuZ2VOdW1iZXIgPSAkU2VsZi0+Q2hhbmdlTnVtYmVyQnVpbGQoJE9mZnNldCk7CiAgICByZXR1cm4gaWYgISRDaGFuZ2VOdW1iZXI7CgogICAgbXkgJENoYW5nZU51bWJlckFscmVhZHlVc2VkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlTG9va3VwKAogICAgICAgIENoYW5nZU51bWJlciA9PiAkQ2hhbmdlTnVtYmVyLAogICAgKTsKCiAgICAjIE5vcm1hbCBjYXNlOiBldmVyeXRoaW5nIGZpbmUsIGNoYW5nZSBudW1iZXIgY2FuIGJlIHVzZWQuCiAgICByZXR1cm4gJENoYW5nZU51bWJlciBpZiAhJENoYW5nZU51bWJlckFscmVhZHlVc2VkOwoKICAgICMgT2ssIGNoYW5nZSBudW1iZXIgYWxyZWFkeSB1c2VkLiBUcnkgdG8gZ2VuZXJhdGUgYW5vdGhlciBvbmUsIHVudGlsIG9uZSBpcyB2YWxpZC4KICAgIGlmICggKyskU2VsZi0+e0xvb3BQcm90ZWN0aW9uQ291bnRlcn0gPj0gMTYwMDAgKSB7CgogICAgICAgICMgTG9vcCBwcm90ZWN0aW9uLgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bnRlckxvb3BQcm90ZWN0aW9uIGlzIG5vdyAkU2VsZi0+e0xvb3BQcm90ZWN0aW9uQ291bnRlcn0hIgogICAgICAgICAgICAgICAgLiAiIFN0b3BwZWQgQ2hhbmdlQ3JlYXRlTnVtYmVyKCkhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICBNZXNzYWdlICA9PiAiQ2hhbmdlTnVtYmVyICgkQ2hhbmdlTnVtYmVyKSBleGlzdHMhIENyZWF0aW5nIGEgbmV3IG9uZS4iLAogICAgKTsKCiAgICByZXR1cm4gJFNlbGYtPkNoYW5nZUNyZWF0ZU51bWJlciggJFNlbGYtPntMb29wUHJvdGVjdGlvbkNvdW50ZXJ9ICk7Cn0KCj1oZWFkMSBQUklWQVRFIElOVEVSRkFDRQoKPWhlYWQyIF9HZXRVSUQoKQoKR2VuZXJhdGVzIGEgdW5pcXVlIGlkZW50aWZpZXIuCgogICAgbXkgJFVJRCA9ICRDaGFuZ2VOdW1iZXJPYmplY3QtPl9HZXRVSUQoKTsKClJldHVybnM6CgogICAgbXkgJFVJRCA9IDE0OTA2MzI3OTQxMzYwZWQ4NDU1ZjEyNWQwNDUwMjc3OwoKPWN1dAoKc3ViIF9HZXRVSUQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTm9kZUlEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdOb2RlSUQnKSB8fCAxOwogICAgbXkgKCAkU2Vjb25kcywgJE1pY3Jvc2Vjb25kcyApID0gVGltZTo6SGlSZXM6OmdldHRpbWVvZmRheSgpOwogICAgbXkgJFByb2Nlc3NJRCA9ICQkOwoKICAgIG15ICRDb3VudGVyVUlEID0gJFByb2Nlc3NJRCAuICRTZWNvbmRzIC4gJE1pY3Jvc2Vjb25kcyAuICROb2RlSUQ7CgogICAgbXkgJFJhbmRvbVN0cmluZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkdlbmVyYXRlUmFuZG9tU3RyaW5nKAogICAgICAgIExlbmd0aCAgICAgPT4gMzIgLSBsZW5ndGggJENvdW50ZXJVSUQsCiAgICAgICAgRGljdGlvbmFyeSA9PiBbIDAgLi4gOSwgJ2EnIC4uICdmJyBdLCAgICAjIGhleGFkZWNpbWFsCiAgICApOwoKICAgICRDb3VudGVyVUlEIC49ICRSYW5kb21TdHJpbmc7CgogICAgcmV0dXJuICRDb3VudGVyVUlEOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Number/AutoIncrement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIwojIEdlbmVyYXRlcyBhdXRvIGluY3JlbWVudCBjaGFuZ2UgbnVtYmVycyBsaWtlIHNzLi4uLiAoZS4gZy4gMTAxMDEzOCwgMTAxMDEzOSwgLi4uKQojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpOdW1iZXI6OkF1dG9JbmNyZW1lbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgcGFyZW50IHF3KEtlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpOdW1iZXJCYXNlKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6REInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJywKKTsKCnN1YiBJc0RhdGVCYXNlZCB7CiAgICByZXR1cm4gMDsKfQoKc3ViIENoYW5nZU51bWJlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICRPZmZzZXQgKSA9IEBfOwoKICAgICRPZmZzZXQgfHw9IDA7CgogICAgbXkgJEJhc2VDb3VudGVyID0gMTsKICAgIGlmICggJFNlbGYtPkNoYW5nZU51bWJlckNvdW50ZXJJc0VtcHR5KCkgKSB7CiAgICAgICAgJEJhc2VDb3VudGVyID0gJFNlbGYtPkluaXRpYWxDb3VudGVyT2Zmc2V0Q2FsY3VsYXRlKCk7CiAgICB9CgogICAgbXkgJENvdW50ZXIgPSAkU2VsZi0+Q2hhbmdlTnVtYmVyQ291bnRlckFkZCgKICAgICAgICBPZmZzZXQgPT4gJEJhc2VDb3VudGVyICsgJE9mZnNldCwKICAgICk7CgogICAgcmV0dXJuIGlmICEkQ291bnRlcjsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkU3lzdGVtSUQgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1N5c3RlbUlEJyk7CiAgICBteSAkTWluU2l6ZSAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcjo6QXV0b0luY3JlbWVudDo6TWluQ291bnRlclNpemUnKQogICAgICAgIHx8ICRDb25maWdPYmplY3QtPkdldCgnSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yOjpNaW5Db3VudGVyU2l6ZScpCiAgICAgICAgfHwgNTsKCiAgICAjIFBhZCBjaGFuZ2UgbnVtYmVyIHdpdGggbGVhZGluZyAnMCcgdG8gbGVuZ3RoICRNaW5TaXplIChjb25maWcgb3B0aW9uKS4KICAgICRDb3VudGVyID0gc3ByaW50ZiAiJS4qdSIsICRNaW5TaXplLCAkQ291bnRlcjsKCiAgICBteSAkQ2hhbmdlTnVtYmVyID0gJFN5c3RlbUlEIC4gJENvdW50ZXI7CgogICAgcmV0dXJuICRDaGFuZ2VOdW1iZXI7Cn0KCiMKIyBDYWxjdWxhdGUgaW5pdGlhbCBjb3VudGVyIHZhbHVlIG9uIChtaWdyYXRlZCkgc3lzdGVtcyB0aGF0IGFscmVhZHkgaGF2ZSBjaGFuZ2VzLAojICAgYnV0IG5vIGNvdW50ZXIgZW50cmllcyB5ZXQuCiMKc3ViIEluaXRpYWxDb3VudGVyT2Zmc2V0Q2FsY3VsYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExhc3RDaGFuZ2VOdW1iZXIgPSAkU2VsZi0+X0dldExhc3RDaGFuZ2VOdW1iZXIoKTsKICAgIHJldHVybiAxIGlmICEkTGFzdENoYW5nZU51bWJlcjsKCiAgICAjIElmIHRoZSBjaGFuZ2UgbnVtYmVyIHdhcyBjcmVhdGVkIGJ5IGEgZGF0ZSBiYXNlZCBnZW5lcmF0b3IsIGNoYW5nZSBjb3VudGVyIG5lZWRzIHRvIHN0YXJ0IGZyb20gMQogICAgcmV0dXJuIDEgaWYgJFNlbGYtPl9Mb29rc0xpa2VEYXRlQmFzZWRDaGFuZ2VOdW1iZXIoJExhc3RDaGFuZ2VOdW1iZXIpOwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFN5c3RlbUlEICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnU3lzdGVtSUQnKTsKCiAgICAjIFJlbW92ZSBTeXN0ZW1JRCBhbmQgbGVhZGluZyB6ZXJvcwogICAgJExhc3RDaGFuZ2VOdW1iZXIgPX4gc3tcQSAkU3lzdGVtSUQgMCogfXt9bXN4OwoKICAgIHJldHVybiAxIGlmICEkTGFzdENoYW5nZU51bWJlcjsKCiAgICByZXR1cm4gJExhc3RDaGFuZ2VOdW1iZXIgKyAxOwp9CgpzdWIgX0dldExhc3RDaGFuZ2VOdW1iZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBNQVgoaWQpIEZST00gY2hhbmdlX2l0ZW0nLAogICAgKTsKCiAgICBteSAkQ2hhbmdlSUQ7CiAgICB3aGlsZSAoIG15IEBEYXRhID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJENoYW5nZUlEID0gJERhdGFbMF07CiAgICB9CgogICAgcmV0dXJuIGlmICRDaGFuZ2VJRCAmJiAkQ2hhbmdlSUQgPT0gMTsKCiAgICBteSAlQ2hhbmdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIExvZ05vICAgID0+IDEsCiAgICApOwoKICAgIHJldHVybiBpZiAhJUNoYW5nZTsKICAgIHJldHVybiBpZiAhJENoYW5nZXtDaGFuZ2VOdW1iZXJ9OwoKICAgIHJldHVybiAkQ2hhbmdle0NoYW5nZU51bWJlcn07Cn0KCnN1YiBfTG9va3NMaWtlRGF0ZUJhc2VkQ2hhbmdlTnVtYmVyIHsKICAgIG15ICggJFNlbGYsICRDaGFuZ2VOdW1iZXIgKSA9IEBfOwoKICAgIHJldHVybiBpZiAhJENoYW5nZU51bWJlcjsKCiAgICBteSAkUG9zc2libGVEYXRlID0gc3Vic3RyICRDaGFuZ2VOdW1iZXIsIDAsIDg7CiAgICByZXR1cm4gaWYgbGVuZ3RoICRQb3NzaWJsZURhdGUgIT0gODsKCiAgICAjIEZvcm1hdCBwb3NzaWJsZSBkYXRlIGFzIGEgZGF0ZSBzdHJpbmcKICAgICRQb3NzaWJsZURhdGUgPX4gc3tcQSAoXGR7NH0pIChcZHsyfSkgKFxkezJ9KSBcen17JDEtJDItJDMgMDA6MDA6MDB9Z3NteDsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKCiAgICBteSAkUmVzdWx0ID0gJERhdGVUaW1lT2JqZWN0LT5TZXQoIFN0cmluZyA9PiAkUG9zc2libGVEYXRlICk7CgogICAgcmV0dXJuIGlmICEkUmVzdWx0OwoKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Number/Date.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIwojIEdlbmVyYXRlcyBjaGFuZ2UgbnVtYmVycyBsaWtlIHl5eXltbWRkc3MuLi4uIChlLiBnLiAyMDAyMDYyMzEwMTAxMzgpCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Ok51bWJlcjo6RGF0ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBwYXJlbnQgcXcoS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Ok51bWJlckJhc2UpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAopOwoKc3ViIElzRGF0ZUJhc2VkIHsKICAgIHJldHVybiAxOwp9CgpzdWIgQ2hhbmdlTnVtYmVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJE9mZnNldCApID0gQF87CgogICAgJE9mZnNldCB8fD0gMDsKCiAgICBteSAkQ291bnRlciA9ICRTZWxmLT5DaGFuZ2VOdW1iZXJDb3VudGVyQWRkKAogICAgICAgIE9mZnNldCA9PiAxICsgJE9mZnNldCwKICAgICk7CgogICAgcmV0dXJuIGlmICEkQ291bnRlcjsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnSVRTTUNoYW5nZTo6TnVtYmVyR2VuZXJhdG9yOjpEYXRlOjpVc2VGb3JtYXR0ZWRDb3VudGVyJykgKSB7CiAgICAgICAgbXkgJE1pblNpemUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0lUU01DaGFuZ2U6Ok51bWJlckdlbmVyYXRvcjo6TWluQ291bnRlclNpemUnKQogICAgICAgICAgICB8fCA1OwoKICAgICAgICAjIFBhZCBjaGFuZ2UgbnVtYmVyIHdpdGggbGVhZGluZyAnMCcgdG8gbGVuZ3RoICRNaW5TaXplIChjb25maWcgb3B0aW9uKS4KICAgICAgICAkQ291bnRlciA9IHNwcmludGYgIiUuKnUiLCAkTWluU2l6ZSwgJENvdW50ZXI7CiAgICB9CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJwogICAgKTsKICAgIG15ICREYXRlVGltZVNldHRpbmdzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICAjIENyZWF0ZSBuZXcgY2hhbmdlIG51bWJlci4KICAgIG15ICRDaGFuZ2VOdW1iZXIgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9CiAgICAgICAgLiBzcHJpbnRmKCAiJS4ydSIsICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9ICkKICAgICAgICAuIHNwcmludGYoICIlLjJ1IiwgJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9ICkKICAgICAgICAuICRDb3VudGVyOwoKICAgIHJldHVybiAkQ2hhbmdlTnVtYmVyOwp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Number/DateChecksum.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIwojIFRoZSBhbGdvcml0aG0gdG8gY2FsY3VsYXRlIHRoZSBjaGVja3N1bSBpcyBkZXJpdmVkIGZyb20gdGhlIG9uZQojIERldXRzY2hlIEJ1bmRlc2JhaG4gKGdlcm1hbiByYWlsd2F5IGNvbXBhbnkpIHVzZXMgZm9yIGNhbGN1bGF0aW9uCiMgb2YgdGhlIGNoZWNrIGRpZ2l0IG9mIHRoZWlyIHZlaGlrZWwgbnVtYmVyaW5nLgojIFRoZSBjaGVja3N1bSBpcyBjYWxjdWxhdGVkIGJ5IGFsdGVybmF0ZWx5IG11bHRpcGx5aW5nIHRoZSBkaWdpdHMKIyB3aXRoIDEgYW5kIDIgYW5kIGFkZGluZyB0aGUgcmVzdWxzdHMgZnJvbSBsZWZ0IHRvIHJpZ2h0IG9mIHRoZQojIHZlaGlrZWwgbnVtYmVyLiBUaGUgbW9kdWx1cyB0byAxMCBvZiB0aGlzIHN1bSBpcyBzdWJzdHJhY3RlZCBmcm9tCiMgMTAuIFNlZTogaHR0cDovL3d3dy5wcnVlZnppZmZlcm5iZXJlY2hudW5nLmRlL0YvRmFocnpldWdudW1tZXIuc2h0bWwKIyAoZ2VybWFuKQojCiMgR2VuZXJhdGVzIGNoYW5nZSBudW1iZXJzIGxpa2UgeXl5eW1tZGRzc0lEIyMjIyNDIChlLiBnLiAyMDAyMDYyMzEwMTAwMDExKQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6TnVtYmVyOjpEYXRlQ2hlY2tzdW07Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgcGFyZW50IHF3KEtlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpOdW1iZXJCYXNlKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKKTsKCnN1YiBJc0RhdGVCYXNlZCB7CiAgICByZXR1cm4gMTsKfQoKc3ViIENoYW5nZU51bWJlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICRPZmZzZXQgKSA9IEBfOwoKICAgICRPZmZzZXQgfHw9IDA7CgogICAgbXkgJENvdW50ZXIgPSAkU2VsZi0+Q2hhbmdlTnVtYmVyQ291bnRlckFkZCgKICAgICAgICBPZmZzZXQgPT4gMSArICRPZmZzZXQsCiAgICApOwoKICAgIHJldHVybiBpZiAhJENvdW50ZXI7CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJFN5c3RlbUlEID0gJENvbmZpZ09iamVjdC0+R2V0KCdTeXN0ZW1JRCcpOwoKICAgICMgUGFkIHRpY2tldCBudW1iZXIgd2l0aCBsZWFkaW5nICcwJyB0byBsZW5ndGggNS4KICAgICRDb3VudGVyID0gc3ByaW50ZiAiJS41dSIsICRDb3VudGVyOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScKICAgICk7CiAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgIyBDcmVhdGUgbmV3IHRpY2tldCBudW1iZXIuCiAgICBteSAkQ2hhbmdlTnVtYmVyID0gJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfQogICAgICAgIC4gc3ByaW50ZiggIiUuMnUiLCAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofSApCiAgICAgICAgLiBzcHJpbnRmKCAiJS4ydSIsICREYXRlVGltZVNldHRpbmdzLT57RGF5fSApCiAgICAgICAgLiAkU3lzdGVtSUQgLiAkQ291bnRlcjsKCiAgICAjIENhbGN1bGF0ZSBhIGNoZWNrc3VtLgogICAgbXkgJENoZWNrU3VtID0gMDsKICAgIG15ICRNdWx0aXBseSA9IDE7CiAgICBmb3IgKCBteSAkaSA9IDA7ICRpIDwgbGVuZ3RoKCRDaGFuZ2VOdW1iZXIpOyArKyRpICkgewoKICAgICAgICBteSAkRGlnaXQgPSBzdWJzdHIoICRDaGFuZ2VOdW1iZXIsICRpLCAxICk7CgogICAgICAgICRDaGVja1N1bSA9ICRDaGVja1N1bSArICggJE11bHRpcGx5ICogJERpZ2l0ICk7CiAgICAgICAgJE11bHRpcGx5ICs9IDE7CgogICAgICAgIGlmICggJE11bHRpcGx5ID09IDMgKSB7CiAgICAgICAgICAgICRNdWx0aXBseSA9IDE7CiAgICAgICAgfQogICAgfQoKICAgICRDaGVja1N1bSAlPSAxMDsKICAgICRDaGVja1N1bSA9IDEwIC0gJENoZWNrU3VtOwoKICAgIGlmICggJENoZWNrU3VtID09IDEwICkgewogICAgICAgICRDaGVja1N1bSA9IDE7CiAgICB9CgogICAgJENoYW5nZU51bWJlciAuPSAkQ2hlY2tTdW07CgogICAgcmV0dXJuICRDaGFuZ2VOdW1iZXI7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Permission/AddWorkOrderCheck.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6UGVybWlzc2lvbjo6QWRkV29ya09yZGVyQ2hlY2s7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6UGVybWlzc2lvbjo6QWRkV29ya09yZGVyQ2hlY2sgLSBXb3JrT3JkZXJBZGQgYW5kIFdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSBwZXJtaXNzaW9uIGNoZWNrCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIG5ldygpCgpDcmVhdGUgYW4gb2JqZWN0LgoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJENoZWNrT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlBlcm1pc3Npb246OkFkZFdvcmtPcmRlckNoZWNrJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIFJ1bigpCgpUaGlzIG1ldGhvZCBkb2VzIHRoZSBjaGVjay4gQzxybz4gYW5kIEM8cnc+IGFjY2VzcyBpcyBncmFudGVkCndoZW4gdGhlIGFnZW50IGhhcyB0aGUgY29ycmVjdCBwcml2aWxlZ2VzIGluIHRoZSBncm91cCBkZWZpbmVkIGluIHRoZQpmcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uLgoKICAgIG15ICRIYXNBY2Nlc3MgPSAkQ2hlY2tPYmplY3QtPlJ1bigKICAgICAgICBVc2VySUQgICA9PiAxMjMsCiAgICAgICAgVHlwZSAgICAgPT4gJ3J3JywgICAgICMgJ3JvJyBvciAncncnCiAgICAgICAgQ2hhbmdlSUQgPT4gMzMzMywgICAgICMgb3B0aW9uYWwgZm9yIENoYW5nZUFkZAogICAgKTsKCj1jdXQKCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIFR5cGUpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGlmIG5vIGFjdGlvbiBpcyBnaXZlbiwgcGFzcyB0aGUgY2hlY2tzIHRvIHRoZSBmb2xsb3dpbmcgbW9kdWxlcwogICAgcmV0dXJuIDEgaWYgISRQYXJhbXtBY3Rpb259OwoKICAgICMgaWYgbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4sIHBhc3MgdGhlIGNoZWNrcyB0byB0aGUgZm9sbG93aW5nIG1vZHVsZXMKICAgIHJldHVybiAxIGlmICEkUGFyYW17Q2hhbmdlSUR9OwoKICAgICMgYWNjZXNzIGlzIHBhc3NlZCB0byBvdGhlciBwZXJtaXNzaW9uIG1vZHVsZXMgaWYgdGhlIGFjdGlvbiBpcyBub25lIG9mIHRoZSBiZWxvdwogICAgaWYgKAogICAgICAgICRQYXJhbXtBY3Rpb259IG5lICdBZ2VudElUU01Xb3JrT3JkZXJBZGQnCiAgICAgICAgJiYgJFBhcmFte0FjdGlvbn0gbmUgJ0FnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZScKICAgICAgICApCiAgICB7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBnZXQgY29uZmlnIGZvciB0aGUgcmVsZXZhbnQgYWN0aW9uCiAgICBteSAkRnJvbnRlbmRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIklUU01DaGFuZ2U6OkZyb250ZW5kOjokUGFyYW17QWN0aW9ufSIpOwoKICAgICMgZ2V0IHRoZSByZXF1aXJlZCBwcml2aWxlZ2UsICdybycgb3IgJ3J3JwogICAgbXkgJFJlcXVpcmVkUHJpdjsKICAgIGlmICggJEZyb250ZW5kQ29uZmlnICYmICRGcm9udGVuZENvbmZpZy0+e1Blcm1pc3Npb259ICkgewoKICAgICAgICAjIGdldCB0aGUgcmVxdWlyZWQgcHJpdiBmcm9tIHRoZSBmcm9udGVuZCBjb25maWd1cmF0aW9uCiAgICAgICAgJFJlcXVpcmVkUHJpdiA9ICRGcm9udGVuZENvbmZpZy0+e1Blcm1pc3Npb259OwogICAgfQoKICAgICMgYWNjZXNzIGlzIHBhc3NlZCB0byBvdGhlciBwZXJtaXNzaW9uIG1vZHVsZXMgaWYgdGhlcmUgaXMgbm8gcmVxdWlyZWQgcHJpdmlsZWdlCiAgICByZXR1cm4gMSBpZiAhJFJlcXVpcmVkUHJpdjsKCiAgICAjIGdldCB0aGUgcmVxdWlyZWQgZ3JvdXAgZm9yIHRoZSBmcm9udGVuZCBtb2R1bGUKICAgIG15ICRHcm91cCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnRnJvbnRlbmQ6Ok1vZHVsZScpLT57ICRQYXJhbXtBY3Rpb259IH0KICAgICAgICAtPntHcm91cFJvfS0+WzBdOwoKICAgICMgZGVueSBhY2Nlc3MsIHdoZW4gdGhlIGdyb3VwIGlzIG5vdCBmb3VuZAogICAgcmV0dXJuICRQYXJhbXtDb3VudGVyfSBpZiAhJEdyb3VwOwoKICAgICMgZ2V0IHRoZSBncm91cCBpZAogICAgbXkgJEdyb3VwSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJEdyb3VwLAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIHRoZSBncm91cCBpcyBub3QgZm91bmQKICAgIHJldHVybiAkUGFyYW17Q291bnRlcn0gaWYgISRHcm91cElEOwoKICAgICMgZ2V0IHVzZXIgZ3JvdXBzLCB3aGVyZSB0aGUgdXNlciBoYXMgdGhlIGFwcHJvcHJpYXRlIHByaXZpbGVnZQogICAgbXkgJUdyb3VwcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIFR5cGUgICA9PiAkUmVxdWlyZWRQcml2LAogICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICApOwoKICAgICMgYWNjZXNzIGlzIHBhc3NlZCB0byBvdGhlciBwZXJtaXNzaW9uIG1vZHVsZXMgaWYgdGhlIGFnZW50CiAgICAjIGhhcyB0aGUgYXBwcm9wcmlhdGUgdHlwZSBpbiB0aGUgYXBwcm9wcmlhdGUgZ3JvdXAKICAgIHJldHVybiAxIGlmICRHcm91cHN7JEdyb3VwSUR9OwoKICAgICMgZGVueSBhY2Nlc3Mgb3RoZXJ3aXNlCiAgICByZXR1cm47Cgp9Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0CgoxOwo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Permission/CABCheck.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6UGVybWlzc2lvbjo6Q0FCQ2hlY2s7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlBlcm1pc3Npb246OkNBQkNoZWNrIC0gQ0FCIGJhc2VkIHBlcm1pc3Npb24gY2hlY2sKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCkNyZWF0ZSBhbiBvYmplY3QuCgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkQ2hlY2tPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6UGVybWlzc2lvbjo6Q0FCQ2hlY2snKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgUnVuKCkKClRoaXMgbWV0aG9kIGRvZXMgdGhlIGNoZWNrLiBBY2Nlc3MgaXMgYWxsb3dlZCB3aGVuIHR5cGUgaXMgQzxybz4gYW5kIHRoZSBhZ2VudCBpcyBhIG1lbWJlcgpvZiB0aGUgQ0FCIG9mIHRoZSBjaGFuZ2UuCgogICAgbXkgJEhhc0FjY2VzcyA9ICRDaGVja09iamVjdC0+UnVuKAogICAgICAgIFVzZXJJRCAgID0+IDEyMywKICAgICAgICBUeXBlICAgICA9PiAncncnLCAgICAgIyAncm8nIG9yICdydycKICAgICAgICBDaGFuZ2VJRCA9PiAzMzMzLCAgICAgIyBvcHRpb25hbCBmb3IgQ2hhbmdlQWRkCiAgICApOwoKPWN1dAoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgVHlwZSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgb25seSAncm8nIGFjY2VzcyBtaWdodCBiZSBncmFudGVkIGJ5IHRoaXMgbW9kdWxlCiAgICByZXR1cm4gaWYgJFBhcmFte1R5cGV9IG5lICdybyc7CgogICAgIyBkZW55IGFjY2VzcyB3aGVuIHRoZXJlIGlzIG5vIGNoYW5nZSwgYW5kIHRodXMgbm8gQ0FCCiAgICByZXR1cm4gaWYgISRQYXJhbXtDaGFuZ2VJRH07CgogICAgIyBnZXQgdGhlIENBQiBvZiB0aGUgY2hhbmdlCiAgICBteSAkQ0FCID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlQ0FCR2V0KAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICApOwoKICAgICMgbG9vayBmb3IgYSBDQUIgbWVtYmVyIHdpdGggdGhlIHJlbGV2YW50IFVzZXJJRAogICAgbXkgKCRGb3VuZENBQk1lbWJlcikgPSBncmVwIHsgJF8gPT0gJFBhcmFte1VzZXJJRH0gfSBAeyAkQ0FCLT57Q0FCQWdlbnRzfSB9OwoKICAgICMgYWxsb3cgYWNjZXNzIHRoZSB0aGUgYWdlbnQgaXMgYSBDQUIgbWVtYmVyCiAgICByZXR1cm4gMSBpZiAkRm91bmRDQUJNZW1iZXI7CgogICAgIyBkZW55IGFjY2VzcyBvdGhlcndpc2UKICAgIHJldHVybjsKfQoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAoKMTsK</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Permission/ChangeAgentCheck.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6UGVybWlzc2lvbjo6Q2hhbmdlQWdlbnRDaGVjazsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlBlcm1pc3Npb246OkNoYW5nZUFnZW50Q2hlY2sgLSBjaGFuZ2UgYWdlbnQgYmFzZWQgcGVybWlzc2lvbiBjaGVjawoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKQ3JlYXRlIGFuIG9iamVjdC4KCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDaGVja09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpQZXJtaXNzaW9uOjpDaGFuZ2VBZ2VudENoZWNrJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIFJ1bigpCgpUaGlzIG1ldGhvZCBkb2VzIHRoZSBjaGVjay4gQzxybz4gYWNjZXNzIGlzIGFsbG93ZWQgd2hlbiB0aGUgYWdlbnQgaXMgYSA8cm8+IG1lbWJlcgpvZiB0aGUgJ2l0c20tY2hhbmdlJyBncm91cC4KCiAgICBteSAkSGFzQWNjZXNzID0gJENoZWNrT2JqZWN0LT5SdW4oCiAgICAgICAgVXNlcklEICAgPT4gMTIzLAogICAgICAgIFR5cGUgICAgID0+ICdydycsICAgICAjICdybycgb3IgJ3J3JwogICAgICAgIENoYW5nZUlEID0+IDMzMzMsICAgICAjIG9wdGlvbmFsIGZvciBDaGFuZ2VBZGQKICAgICk7Cgo9Y3V0CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFVzZXJJRCBUeXBlKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBvbmx5ICdybycgYWNjZXNzIG1pZ2h0IGJlIGdyYW50ZWQgYnkgdGhpcyBtb2R1bGUKICAgIHJldHVybiBpZiAkUGFyYW17VHlwZX0gbmUgJ3JvJzsKCiAgICAjIHRoZSBjaGVjayBpcyBiYXNlZCB1cG9uIHRoZSBjaGFuZ2UgYWdlbnQKICAgIG15ICRHcm91cElEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTG9va3VwKAogICAgICAgIEdyb3VwID0+ICdpdHNtLWNoYW5nZScsCiAgICApOwoKICAgICMgZGVueSBhY2Nlc3MsIHdoZW4gdGhlIGdyb3VwIGlzIG5vdCBmb3VuZAogICAgcmV0dXJuIGlmICEkR3JvdXBJRDsKCiAgICAjIGdldCB1c2VyIGdyb3Vwcywgd2hlcmUgdGhlIHVzZXIgaGFzIHRoZSBhcHByb3ByaWF0ZSBwcml2aWxlZ2UKICAgIG15ICVHcm91cHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBUeXBlICAgPT4gJFBhcmFte1R5cGV9LAogICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICApOwoKICAgICMgZGVueSBhY2Nlc3MgaWYgdGhlIGFnZW50IGRvZXNuJ3QgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgdHlwZSBpbiB0aGUgYXBwcm9wcmlhdGUgZ3JvdXAKICAgIHJldHVybiBpZiAhJEdyb3Vwc3skR3JvdXBJRH07CgogICAgIyBjaGFuZ2UgYWdlbnRzIGFyZSBncmFudGVkIHJvIGFjY2VzcwogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cHM6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQKCjE7Cg==</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Permission/ChangeBuilderCheck.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6UGVybWlzc2lvbjo6Q2hhbmdlQnVpbGRlckNoZWNrOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlBlcm1pc3Npb246OkNoYW5nZUJ1aWxkZXJDaGVjayAtIGNoYW5nZSBidWlsZGVyIGJhc2VkIHBlcm1pc3Npb24gY2hlY2sKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCkNyZWF0ZSBhbiBvYmplY3QuCgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkQ2hlY2tPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6UGVybWlzc2lvbjo6Q2hhbmdlQnVpbGRlckNoZWNrJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIFJ1bigpCgpUaGlzIG1ldGhvZCBkb2VzIHRoZSBjaGVjay4gV2hlbiBubyBDaGFuZ2VJRCBpcyBwYXNzZWQsIHRoYW4gQzxybz4gYW5kIEM8cnc+IGFjY2VzcyBpcyBncmFudGVkCndoZW4gdGhlIGFnZW50IGhhcyB0aGUgcHJpdmlsZWdlIGluIHRoZSAnaXRzbS1jaGFuZ2UtYnVpbGRlcicgZ3JvdXAuCldoZW4gdGhlIENoYW5nZUlEIHdhcyBwYXNzZWQsIHRoYW4gdGhlIGFnZW50IG11c3QgYWRkaXRpb25hbGx5IGJlIHRoZSBjaGFuZ2UgYnVpbGRlciBvZiB0aGUgY2hhbmdlLgoKICAgIG15ICRIYXNBY2Nlc3MgPSAkQ2hlY2tPYmplY3QtPlJ1bigKICAgICAgICBVc2VySUQgICA9PiAxMjMsCiAgICAgICAgVHlwZSAgICAgPT4gJ3J3JywgICAgICMgJ3JvJyBvciAncncnCiAgICAgICAgQ2hhbmdlSUQgPT4gMzMzMywgICAgICMgb3B0aW9uYWwgZm9yIENoYW5nZUFkZAogICAgKTsKCj1jdXQKCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIFR5cGUpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHRoZSBjaGVjayBpcyBiYXNlZCB1cG9uIHRoZSBjaGFuZ2UgYnVpbGRlcgogICAgbXkgJEdyb3VwSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJ2l0c20tY2hhbmdlLWJ1aWxkZXInLAogICAgKTsKCiAgICAjIGRvIG5vdCBncmFudCBhY2Nlc3MsIHdoZW4gdGhlIGdyb3VwIGlzIG5vdCBmb3VuZAogICAgcmV0dXJuIGlmICEkR3JvdXBJRDsKCiAgICAjIGdldCB1c2VyIGdyb3Vwcywgd2hlcmUgdGhlIHVzZXIgaGFzIHRoZSBhcHByb3ByaWF0ZSBwcml2aWxlZ2UKICAgIG15ICVHcm91cHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBUeXBlICAgPT4gJFBhcmFte1R5cGV9LAogICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICApOwoKICAgICMgZG8gbm90IGdyYW50IGFjY2VzcyBpZiB0aGUgYWdlbnQgZG9lc24ndCBoYXZlIHRoZSBhcHByb3ByaWF0ZSB0eXBlIGluIHRoZSBhcHByb3ByaWF0ZSBncm91cAogICAgcmV0dXJuIGlmICEkR3JvdXBzeyRHcm91cElEfTsKCiAgICAjIEFsbG93IGEgY2hhbmdlIGJ1aWxkZXIgdG8gY3JlYXRlIGEgY2hhbmdlLCB3aGVuIHRoZXJlIGlzbid0IGEgY2hhbmdlIHlldC4KICAgIHJldHVybiAxIGlmICEkUGFyYW17Q2hhbmdlSUR9OwoKICAgICMgdGhlcmUgYWxyZWFkeSBpcyBhIGNoYW5nZS4gZS5nLiBBZ2VudElUU01DaGFuZ2VFZGl0CiAgICBteSAkQ2hhbmdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlR2V0KAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICApOwoKICAgICMgZG8gbm90IGdyYW50IGFjY2Vzcywgd2hlbiBubyBjaGFuZ2Ugd2FzIGZvdW5kCiAgICByZXR1cm4gaWYgISRDaGFuZ2UgfHwgISV7JENoYW5nZX0gfHwgISRDaGFuZ2UtPntDaGFuZ2VCdWlsZGVySUR9OwoKICAgICMgYWxsb3cgYWNjZXNzLCB3aGVuIHRoZSBhZ2VudCBpcyB0aGUgY2hhbmdlIGJ1aWxkZXIgb2YgdGhlIGNoYW5nZQogICAgcmV0dXJuIDEgaWYgJENoYW5nZS0+e0NoYW5nZUJ1aWxkZXJJRH0gPT0gJFBhcmFte1VzZXJJRH07CgogICAgIyBkbyBub3QgZ3JhbnQgYWNjZXNzIG90aGVyd2lzZQogICAgcmV0dXJuOwp9Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0CgoxOwo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Permission/ChangeManagerCheck.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6UGVybWlzc2lvbjo6Q2hhbmdlTWFuYWdlckNoZWNrOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6UGVybWlzc2lvbjo6Q2hhbmdlTWFuYWdlckNoZWNrIC0gY2hhbmdlIG1hbmFnZXIgYmFzZWQgcGVybWlzc2lvbiBjaGVjawoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKQ3JlYXRlIGFuIG9iamVjdC4KCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDaGVja09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpQZXJtaXNzaW9uOjpDaGFuZ2VNYW5hZ2VyQ2hlY2snKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgUnVuKCkKClRoaXMgbWV0aG9kIGRvZXMgdGhlIGNoZWNrLiBDPHJvPiBhbmQgQzxydz4gYWNjZXNzIGlzIGdyYW50ZWQKd2hlbiB0aGUgYWdlbnQgaGFzIHRoZSBwcml2aWxlZ2UgaW4gdGhlICdpdHNtLWNoYW5nZS1tYW5hZ2VyJyBncm91cC4KCiAgICBteSAkSGFzQWNjZXNzID0gJENoZWNrT2JqZWN0LT5SdW4oCiAgICAgICAgVXNlcklEICAgPT4gMTIzLAogICAgICAgIFR5cGUgICAgID0+ICdydycsICAgICAjICdybycgb3IgJ3J3JwogICAgICAgIENoYW5nZUlEID0+IDMzMzMsICAgICAjIG9wdGlvbmFsIGZvciBDaGFuZ2VBZGQKICAgICk7Cgo9Y3V0CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFVzZXJJRCBUeXBlKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyB0aGUgY2hlY2sgaXMgYmFzZWQgdXBvbiB0aGUgY2hhbmdlIG1hbmFnZXIKICAgIG15ICRHcm91cElEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTG9va3VwKAogICAgICAgIEdyb3VwID0+ICdpdHNtLWNoYW5nZS1tYW5hZ2VyJywKICAgICk7CgogICAgIyBkZW55IGFjY2Vzcywgd2hlbiB0aGUgZ3JvdXAgaXMgbm90IGZvdW5kCiAgICByZXR1cm4gaWYgISRHcm91cElEOwoKICAgICMgZ2V0IHVzZXIgZ3JvdXBzLCB3aGVyZSB0aGUgdXNlciBoYXMgdGhlIGFwcHJvcHJpYXRlIHByaXZpbGVnZQogICAgbXkgJUdyb3VwcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIFR5cGUgICA9PiAkUGFyYW17VHlwZX0sCiAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICk7CgogICAgIyBhbGxvdyBybyBhbmQgcncgYWNjZXNzIGlmIHRoZSBhZ2VudCBpcyBhIGNoYW5nZSBtYW5hZ2VyCiAgICByZXR1cm4gMSBpZiAkR3JvdXBzeyRHcm91cElEfTsKCiAgICAjIG5vIG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgYWdlbnQgaXMgdGhlIGFjdHVhbCBtYW5hZ2VyIG9mIHRoZSBjaGFuZ2UKCiAgICAjIGRlbnkgYWNjZXNzIG90aGVyd2lzZQogICAgcmV0dXJuOwp9Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0CgoxOwo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Template/CAB.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGU6OkNBQjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMjIG5vZmlsdGVyKFRpZHlBbGw6OlBsdWdpbjo6Wm51bnk6OlBlcmw6OkR1bXBlcikKdXNlIERhdGE6OkR1bXBlcjsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TWFpbicsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlRlbXBsYXRlOjpDQUIgLSBhbGwgdGVtcGxhdGUgZnVuY3Rpb25zIGZvciBDQUIKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRUZW1wbGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZTo6Q0FCJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgc2V0IHRoZSBkZWJ1ZyBmbGFnCiAgICAkU2VsZi0+e0RlYnVnfSA9ICRQYXJhbXtEZWJ1Z30gfHwgMDsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBTZXJpYWxpemUoKQoKU2VyaWFsaXplIHRoZSBDQUIgb2YgYSBjaGFuZ2UuIFRoaXMgaXMgZG9uZSB3aXRoIERhdGE6OkR1bXBlci4gSXQgcmV0dXJucwphIHNlcmlhbGl6ZWQgc3RyaW5nIG9mIHRoZSBkYXRhIHN0cnVjdHVyZS4gVGhlIENBQiBhY3Rpb25zCmFyZSAid3JhcHBlZCIgd2l0aGluIGEgaGFzaCByZWZlcmVuY2UuLi4KCiAgICBteSAkVGVtcGxhdGVTdHJpbmcgPSAkVGVtcGxhdGVPYmplY3QtPlNlcmlhbGl6ZSgKICAgICAgICBDaGFuZ2VJRCA9PiAxLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgUmV0dXJuICAgPT4gJ0hBU0gnLCAjIChvcHRpb25hbCkgSEFTSHxTVFJJTkcgZGVmYXVsdCAnU1RSSU5HJwogICAgKTsKCnJldHVybnMKCiAgICAne0NBQkFkZCA9PiB7IENBQkN1c3RvbWVycyA9PiBbICdtbUBsb2NhbGhvc3QnIF0sIC4uLiB9fScKCklmIHBhcmFtZXRlciBDPFJldHVybj4gaXMgc2V0IHRvIEM8SEFTSD4sIHRoZSBQZXJsIGRhdGEgc3RydWN0dXJlCmlzIHJldHVybmVkCgogICAgewogICAgICAgIENBQkFkZCAgID0+IHsgLi4uIH0sCiAgICAgICAgQ2hpbGRyZW4gPT4gWyAuLi4gXSwKICAgIH0KCj1jdXQKCnN1YiBTZXJpYWxpemUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIENoYW5nZUlEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBkZWZhdWx0IHZhbHVlIGZvciAnUmV0dXJuJwogICAgJFBhcmFte1JldHVybn0gfHw9ICdTVFJJTkcnOwoKICAgICMgZ2V0IENBQiBvZiB0aGUgY2hhbmdlCiAgICBteSAkQ2hhbmdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiBpZiAhJENoYW5nZTsKCiAgICAjIHRlbXBsYXRlcyBoYXZlIHRvIGJlIGFuIGFycmF5IHJlZmVyZW5jZTsKICAgIG15ICRPcmlnaW5hbERhdGEgPSB7CiAgICAgICAgQ0FCQWRkID0+IHsKICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzID0+ICRDaGFuZ2UtPntDQUJDdXN0b21lcnN9LAogICAgICAgICAgICBDQUJBZ2VudHMgICAgPT4gJENoYW5nZS0+e0NBQkFnZW50c30sCiAgICAgICAgfSwKICAgIH07CgogICAgaWYgKCAkUGFyYW17UmV0dXJufSBlcSAnSEFTSCcgKSB7CiAgICAgICAgcmV0dXJuICRPcmlnaW5hbERhdGE7CiAgICB9CgogICAgIyBubyBpbmRlbnRhdGlvbiAoc2F2ZXMgc3BhY2UpCiAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOwoKICAgICMgZG8gbm90IHVzZSBjcm9zcy1yZWZlcmVuY2luZwogICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6RGVlcGNvcHkgPSAxOwoKICAgICMgc2VyaWFsaXplIHRoZSBkYXRhIChkbyBub3QgdXNlICRWQVIxLCBidXQgJFRlbXBsYXRlRGF0YSBmb3IgRHVtcGVyIG91dHB1dCkKICAgIG15ICRTZXJpYWxpemVkRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkR1bXAoICRPcmlnaW5hbERhdGEsICdiaW5hcnknICk7CgogICAgcmV0dXJuICRTZXJpYWxpemVkRGF0YTsKfQoKPWhlYWQyIERlU2VyaWFsaXplKCkKClVwZGF0ZXMgdGhlIENBQiBvZiBhIGNoYW5nZSBiYXNlZCBvbiB0aGUgZ2l2ZW4gQ0FCIHRlbXBsYXRlLiBJdApyZXR1cm5zIHRoZSBjaGFuZ2UgaWQgdGhlIGNhYiBpcyBmb3IuCgogICAgbXkgJENoYW5nZUlEID0gJFRlbXBsYXRlT2JqZWN0LT5EZVNlcmlhbGl6ZSgKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFsgJ21tQGxvY2FsaG9zdCcgXSwKICAgICAgICAgICAgQ0FCQWdlbnRzICAgID0+IFsgMSwgMiBdLAogICAgICAgIH0sCiAgICAgICAgQ2hhbmdlSUQgPT4gMSwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBEZVNlcmlhbGl6ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgQ2hhbmdlSUQgRGF0YSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgY3VycmVudCBDQUIgb2YgY2hhbmdlCiAgICBteSAkQ2hhbmdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgYSBDQUIgYWRkIGlzIGFjdHVhbGx5IGEgQ0FCIHVwZGF0ZSBvbiBhIGNoYW5nZQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VDQUJVcGRhdGUoCiAgICAgICAgQ2hhbmdlSUQgICAgID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFsgQHsgJFBhcmFte0RhdGF9LT57Q0FCQ3VzdG9tZXJzfSB9LCBAeyAkQ2hhbmdlLT57Q0FCQ3VzdG9tZXJzfSB9IF0sCiAgICAgICAgQ0FCQWdlbnRzICAgID0+IFsgQHsgJFBhcmFte0RhdGF9LT57Q0FCQWdlbnRzfSB9LCAgICBAeyAkQ2hhbmdlLT57Q0FCQWdlbnRzfSB9IF0sCiAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBteSAlSW5mbyA9ICgKICAgICAgICBJRCAgICAgICA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICApOwoKICAgIHJldHVybiAlSW5mbzsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cHM6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Template/ITSMChange.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGU6OklUU01DaGFuZ2U7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIyBub2ZpbHRlcihUaWR5QWxsOjpQbHVnaW46OlpudW55OjpQZXJsOjpEdW1wZXIpCnVzZSBEYXRhOjpEdW1wZXI7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVN0YXRlTWFjaGluZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlRlbXBsYXRlOjpJVFNNQ29uZGl0aW9uJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGU6OklUU01Xb3JrT3JkZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TWFpbicsCiAgICAnS2VybmVsOjpTeXN0ZW06OlVzZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlRlbXBsYXRlOjpJVFNNQ2hhbmdlIC0gYWxsIHRlbXBsYXRlIGZ1bmN0aW9ucyBmb3IgY2hhbmdlcwoKPWhlYWQxIERFU0NSSVBUSU9OCgpBbGwgZnVuY3Rpb25zIGZvciBjaGFuZ2UgdGVtcGxhdGVzIGluIElUU01DaGFuZ2VNYW5hZ2VtZW50LgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJFRlbXBsYXRlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlRlbXBsYXRlOjpJVFNNQ2hhbmdlJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgc2V0IHRoZSBkZWJ1ZyBmbGFnCiAgICAkU2VsZi0+e0RlYnVnfSA9ICRQYXJhbXtEZWJ1Z30gfHwgMDsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBTZXJpYWxpemUoKQoKU2VyaWFsaXplIGEgY2hhbmdlLiBUaGlzIGlzIGRvbmUgd2l0aCBEYXRhOjpEdW1wZXIuIEl0IHJldHVybnMKYSBzZXJpYWxpemVkIHN0cmluZyBvZiB0aGUgZGF0YSBzdHJ1Y3R1cmUuIFRoZSBjaGFuZ2UgYWN0aW9ucwphcmUgIndyYXBwZWQiIHdpdGhpbiBhbiBhcnJheSByZWZlcmVuY2UuLi4KCiAgICBteSAkVGVtcGxhdGVTdHJpbmcgPSAkVGVtcGxhdGVPYmplY3QtPlNlcmlhbGl6ZSgKICAgICAgICBDaGFuZ2VJRCAgID0+IDEsCiAgICAgICAgU3RhdGVSZXNldCA9PiAxLCAjIChvcHRpb25hbCkgcmVzZXQgdG8gZGVmYXVsdCBzdGF0ZQogICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICBSZXR1cm4gICAgID0+ICdIQVNIJywgIyAob3B0aW9uYWwpIEhBU0h8U1RSSU5HIGRlZmF1bHQgJ1NUUklORycKICAgICk7CgpyZXR1cm5zCgogICAgJ3tDaGFuZ2VBZGQgPT4ge1RpdGxlID0+ICd0aXRsZScsIC4uLn19LCB7V29ya09yZGVyQWRkID0+IHsgQ2hhbmdlSUQgPT4gMTIzLCAuLi4gfX0nCgpJZiBwYXJhbWV0ZXIgQzxSZXR1cm4+IGlzIHNldCB0byBDPEhBU0g+LCB0aGUgUGVybCBkYXRhIHN0cnVjdHVyZQppcyByZXR1cm5lZAoKICAgIHsKICAgICAgICBDaGFuZ2VBZGQgPT4geyAuLi4gfSwKICAgICAgICBDaGlsZHJlbiAgPT4gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4geyAuLi4gfSwKICAgICAgICAgICAgICAgIENoaWxkcmVuICAgICA9PiBbIC4uLiBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4geyAuLi4gfSwKICAgICAgICAgICAgICAgIENoaWxkcmVuICAgICA9PiBbIC4uLiBdLAogICAgICAgICAgICB9LAogICAgICAgIF0sCiAgICB9Cgo9Y3V0CgpzdWIgU2VyaWFsaXplIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFVzZXJJRCBDaGFuZ2VJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZSBmb3IgJ1JldHVybicKICAgICRQYXJhbXtSZXR1cm59IHx8PSAnU1RSSU5HJzsKCiAgICAjIGdldCBjaGFuZ2UKICAgIG15ICRDaGFuZ2UgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkQ2hhbmdlOwoKICAgICMga2VlcCBvbmx5IHdhbnRlZCBhdHRyaWJ1dGVzCiAgICBteSAkQ2xlYW5DaGFuZ2U7CiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoCiAgICAgICAgcXcoCiAgICAgICAgQ2hhbmdlSUQgQ2hhbmdlTnVtYmVyIENoYW5nZVN0YXRlSUQgQ2hhbmdlVGl0bGUgRGVzY3JpcHRpb24KICAgICAgICBKdXN0aWZpY2F0aW9uIENoYW5nZU1hbmFnZXJJRCBDaGFuZ2VCdWlsZGVySUQKICAgICAgICBDYXRlZ29yeUlEIEltcGFjdElEIFByaW9yaXR5SUQgQ0FCQWdlbnRzIENBQkN1c3RvbWVycyBSZXF1ZXN0ZWRUaW1lCiAgICAgICAgQ3JlYXRlVGltZSBDcmVhdGVCeSBDaGFuZ2VUaW1lIENoYW5nZUJ5IFBsYW5uZWRTdGFydFRpbWUgUGxhbm5lZEVuZFRpbWUpCiAgICAgICAgKQogICAgewogICAgICAgICRDbGVhbkNoYW5nZS0+eyRBdHRyaWJ1dGV9ID0gJENoYW5nZS0+eyRBdHRyaWJ1dGV9OwogICAgfQoKICAgICMgcmVzZXQgY2hhbmdlIHN0YXRlIHRvIGRlZmF1bHQgaWYgcmVxdWVzdGVkCiAgICBpZiAoICRQYXJhbXtTdGF0ZVJlc2V0fSApIHsKCiAgICAgICAgIyBnZXQgaW5pdGlhbCBjaGFuZ2Ugc3RhdGUgaWQKICAgICAgICBteSAkTmV4dFN0YXRlSURzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01TdGF0ZU1hY2hpbmUnKS0+U3RhdGVUcmFuc2l0aW9uR2V0KAogICAgICAgICAgICBTdGF0ZUlEID0+IDAsCiAgICAgICAgICAgIENsYXNzICAgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICk7CgogICAgICAgICRDbGVhbkNoYW5nZS0+e0NoYW5nZVN0YXRlSUR9ID0gJE5leHRTdGF0ZUlEcy0+WzBdOwogICAgfQoKICAgICMgYWRkIGNoYW5nZSBkeW5hbWljIGZpZWxkcyB0byBsaXN0IG9mIHdhbnRlZCBhdHRyaWJ1dGVzCiAgICBBVFRSSUJVVEU6CiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAleyRDaGFuZ2V9ICkgewoKICAgICAgICAjIGZpbmQgdGhlIGNoYW5nZSBkeW5hbWljIGZpZWxkIGF0dHJpYnV0ZXMKICAgICAgICBpZiAoICRBdHRyaWJ1dGUgPX4gbXsgXEEgRHluYW1pY0ZpZWxkXy4qIFx6IH14bXMgKSB7CgogICAgICAgICAgICAkQ2xlYW5DaGFuZ2UtPnskQXR0cmlidXRlfSA9ICRDaGFuZ2UtPnskQXR0cmlidXRlfTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE9yaWdpbmFsRGF0YSA9IHsgQ2hhbmdlQWRkID0+ICRDbGVhbkNoYW5nZSB9OwoKICAgICMgZ2V0IGF0dGFjaG1lbnRzCiAgICBteSBAQ2hhbmdlQXR0YWNobWVudHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VBdHRhY2htZW50TGlzdCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlLT57Q2hhbmdlSUR9LAogICAgKTsKICAgIGZvciBteSAkRmlsZW5hbWUgKEBDaGFuZ2VBdHRhY2htZW50cykgewoKICAgICAgICAjIHNhdmUgYXR0YWNobWVudHMgdG8gdGhpcyB0ZW1wbGF0ZQogICAgICAgIHB1c2ggQHsgJE9yaWdpbmFsRGF0YS0+e0NoaWxkcmVufSB9LCB7IEF0dGFjaG1lbnRBZGQgPT4geyBGaWxlbmFtZSA9PiAkRmlsZW5hbWUgfSB9OwogICAgfQoKICAgICMgZ2V0IHdvcmtvcmRlcnMKICAgIFdPUktPUkRFUklEOgogICAgZm9yIG15ICRXb3JrT3JkZXJJRCAoIEB7ICRDaGFuZ2UtPntXb3JrT3JkZXJJRHN9IH0gKSB7CiAgICAgICAgbXkgJFdvcmtPcmRlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZTo6SVRTTVdvcmtPcmRlcicpLT5TZXJpYWxpemUoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgU3RhdGVSZXNldCAgPT4gJFBhcmFte1N0YXRlUmVzZXR9IHx8IDAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBSZXR1cm4gICAgICA9PiAnSEFTSCcsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBXT1JLT1JERVJJRCBpZiAhJFdvcmtPcmRlcjsKCiAgICAgICAgcHVzaCBAeyAkT3JpZ2luYWxEYXRhLT57Q2hpbGRyZW59IH0sICRXb3JrT3JkZXI7CiAgICB9CgogICAgIyBnZXQgY29uZGl0aW9uIGxpc3QgZm9yIHRoZSBjaGFuZ2UKICAgIG15ICRDb25kaXRpb25MaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKS0+Q29uZGl0aW9uTGlzdCgKICAgICAgICBDaGFuZ2VJRCA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgIFZhbGlkICAgID0+IDAsCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApIHx8IFtdOwoKICAgICMgZ2V0IGVhY2ggY29uZGl0aW9uCiAgICBDT05ESVRJT05JRDoKICAgIGZvciBteSAkQ29uZGl0aW9uSUQgKCBAeyRDb25kaXRpb25MaXN0fSApIHsKICAgICAgICBteSAkQ29uZGl0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlRlbXBsYXRlOjpJVFNNQ29uZGl0aW9uJyktPlNlcmlhbGl6ZSgKICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJENvbmRpdGlvbklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgUmV0dXJuICAgICAgPT4gJ0hBU0gnLAogICAgICAgICk7CgogICAgICAgIG5leHQgQ09ORElUSU9OSUQgaWYgISRDb25kaXRpb247CgogICAgICAgIHB1c2ggQHsgJE9yaWdpbmFsRGF0YS0+e0NoaWxkcmVufSB9LCAkQ29uZGl0aW9uOwogICAgfQoKICAgICMgZ2V0IGxpbmtzIHRvIG90aGVyIG9iamVjdAogICAgbXkgJExpbmtMaXN0V2l0aERhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcpLT5MaW5rTGlzdFdpdGhEYXRhKAogICAgICAgIE9iamVjdCA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgS2V5ICAgID0+ICRDaGFuZ2UtPntDaGFuZ2VJRH0sCiAgICAgICAgU3RhdGUgID0+ICdWYWxpZCcsCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBmb3IgbXkgJFRhcmdldE9iamVjdCAoIHNvcnQga2V5cyAleyRMaW5rTGlzdFdpdGhEYXRhfSApIHsKICAgICAgICBmb3IgbXkgJFR5cGUgKCBzb3J0IGtleXMgJXsgJExpbmtMaXN0V2l0aERhdGEtPnskVGFyZ2V0T2JqZWN0fSB9ICkgewogICAgICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyAkTGlua0xpc3RXaXRoRGF0YS0+eyRUYXJnZXRPYmplY3R9LT57JFR5cGV9IH0gKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJFRhcmdldElEICgKICAgICAgICAgICAgICAgICAgICBzb3J0IGtleXMgJXsgJExpbmtMaXN0V2l0aERhdGEtPnskVGFyZ2V0T2JqZWN0fS0+eyRUeXBlfS0+eyRLZXl9IH0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbXkgJExpbmtJbmZvID0gewogICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2VPYmplY3QgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2VLZXkgICAgPT4gJENoYW5nZS0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0T2JqZWN0ID0+ICRUYXJnZXRPYmplY3QsCiAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldEtleSAgICA9PiAkVGFyZ2V0SUQsCiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICAgICA9PiAkVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgU3RhdGUgICAgICAgID0+ICdWYWxpZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgIHB1c2ggQHsgJE9yaWdpbmFsRGF0YS0+e0NoaWxkcmVufSB9LCB7IExpbmtBZGQgPT4gJExpbmtJbmZvIH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgaWYgKCAkUGFyYW17UmV0dXJufSBlcSAnSEFTSCcgKSB7CiAgICAgICAgcmV0dXJuICRPcmlnaW5hbERhdGE7CiAgICB9CgogICAgIyBubyBpbmRlbnRhdGlvbiAoc2F2ZXMgc3BhY2UpCiAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOwoKICAgICMgZG8gbm90IHVzZSBjcm9zcy1yZWZlcmVuY2luZwogICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6RGVlcGNvcHkgPSAxOwoKICAgICMgc2VyaWFsaXplIHRoZSBkYXRhIChkbyBub3QgdXNlICRWQVIxLCBidXQgJFRlbXBsYXRlRGF0YSBmb3IgRHVtcGVyIG91dHB1dCkKICAgIG15ICRTZXJpYWxpemVkRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkR1bXAoICRPcmlnaW5hbERhdGEsICdiaW5hcnknICk7CgogICAgcmV0dXJuICRTZXJpYWxpemVkRGF0YTsKfQoKPWhlYWQyIERlU2VyaWFsaXplKCkKCkRlU2VyaWFsaXplKCkgaXMgYSB3cmFwcGVyIGZvciBhbGwgdGhlIF9YWFhBZGQgbWV0aG9kcy4KCiAgICBteSAlSW5mbyA9ICRUZW1wbGF0ZU9iamVjdC0+RGVTZXJpYWxpemUoCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICMgLi4uIFBhcmFtcyBmb3IgQ2hhbmdlQWRkCiAgICAgICAgfSwKICAgICAgICBDaGFuZ2VJRCA9PiAxLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgTWV0aG9kICAgPT4gJ0NoYW5nZUFkZCcsCiAgICApOwoKPWN1dAoKc3ViIERlU2VyaWFsaXplIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFVzZXJJRCBNZXRob2QgRGF0YSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBkaXNwYXRjaCB0YWJsZQogICAgbXkgJU1ldGhvZDJTdWIgPSAoCiAgICAgICAgQ2hhbmdlQWRkICAgICA9PiAnX0NoYW5nZUFkZCcsCiAgICAgICAgQXR0YWNobWVudEFkZCA9PiAnX0F0dGFjaG1lbnRBZGQnLAogICAgICAgIExpbmtBZGQgICAgICAgPT4gJ19MaW5rQWRkJywKICAgICk7CgogICAgbXkgJFN1YiA9ICRNZXRob2QyU3VieyAkUGFyYW17TWV0aG9kfSB9OwoKICAgIGlmICggISRTdWIgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdJbnZhbGlkIE1ldGhvZG5hbWUhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICByZXR1cm4gJFNlbGYtPiRTdWIoJVBhcmFtKTsKfQoKPWhlYWQxIFBSSVZBVEUgSU5URVJGQUNFCgo9aGVhZDIgX0NoYW5nZUFkZCgpCgpDcmVhdGVzIGEgbmV3IGNoYW5nZSBiYXNlZCBvbiBhIHRlbXBsYXRlLiBJdCByZXR1cm5zIGEgaGFzaCB3aXRoIGFkZGl0aW9uYWwKaW5mbyBsaWtlIENoYW5nZUlELgoKICAgIG15ICVSZXR1cm4gPSAkVGVtcGxhdGVPYmplY3QtPl9DaGFuZ2VBZGQoCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICd0ZXN0JywKICAgICAgICB9LAogICAgICAgICMgb3RoZXIgY2hhbmdlIGF0dHJpYnV0ZXMKICAgICAgICBDaGFuZ2VJRCA9PiAwLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIF9DaGFuZ2VBZGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTG9nT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CiAgICBteSAkQ3VzdG9tZXJVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcicpOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgRGF0YSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgbWFrZSBhIGxvY2FsIGNvcHkKICAgIG15ICVEYXRhID0gJXsgJFBhcmFte0RhdGF9IH07CgogICAgIyB3ZSBuZWVkIHRoZSBvbGQgY2hhbmdlIGlkIGZvciBleHByZXNzaW9ucwogICAgbXkgJE9sZENoYW5nZUlEID0gJERhdGF7Q2hhbmdlSUR9OwoKICAgICMgdGhlc2UgYXR0cmlidXRlcyBhcmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHksIHNvIGRvbid0IHBhc3MgdGhlbSB0byBDaGFuZ2VBZGQoKQogICAgZGVsZXRlIEBEYXRhe3F3KENoYW5nZUlEIENoYW5nZU51bWJlciBDcmVhdGVUaW1lIENyZWF0ZUJ5IENoYW5nZVRpbWUgQ2hhbmdlQnkpfTsKICAgIGRlbGV0ZSBARGF0YXtxdyhEZXNjcmlwdGlvblBsYWluIEp1c3RpZmljYXRpb25QbGFpbil9OwoKICAgICMgaWYgdXNlciBzZXQgYSBuZXcgdGltZSwgY2FsY3VsYXRlIGRpZmZlcmVuY2UKICAgIG15ICREaWZmZXJlbmNlOwogICAgaWYgKCAkUGFyYW17TmV3VGltZUluRXBvY2hlfSApIHsKICAgICAgICBteSAkT2xkVGltZSA9ICREYXRheyAkUGFyYW17TW92ZVRpbWVUeXBlfSB9OwoKICAgICAgICBpZiAoJE9sZFRpbWUpIHsKICAgICAgICAgICAgJERpZmZlcmVuY2UgPSAkU2VsZi0+X0dldFRpbWVEaWZmZXJlbmNlKAogICAgICAgICAgICAgICAgQ3VycmVudFRpbWUgICAgID0+ICRPbGRUaW1lLAogICAgICAgICAgICAgICAgTmV3VGltZUluRXBvY2hlID0+ICRQYXJhbXtOZXdUaW1lSW5FcG9jaGV9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIFBsYW5uZWRYWFhUaW1lIHdhcyBzYXZlZCBqdXN0IGZvciAibW92ZSB0aW1lIiBwdXJwb3NlcwogICAgZGVsZXRlICREYXRhe1BsYW5uZWRFbmRUaW1lfTsKICAgIGRlbGV0ZSAkRGF0YXtQbGFubmVkU3RhcnRUaW1lfTsKCiAgICAjIFJlcXVlc3RlZFRpbWUgc2hvdWxkIG5vdCBiZSBzZXQKICAgIGRlbGV0ZSAkRGF0YXtSZXF1ZXN0ZWRUaW1lfTsKCiAgICAjIGRlbGV0ZSBhbGwgcGFyYW1ldGVycyB3aG9zZSB2YWx1ZXMgYXJlICd1bmRlZicKICAgICMgX0NoZWNrQ2hhbmdlUGFyYW1zIHRocm93cyBhbiBlcnJvciBvdGhlcndpc2UKICAgIGZvciBteSAkUGFyYW1ldGVyICggc29ydCBrZXlzICVEYXRhICkgewogICAgICAgIGRlbGV0ZSAkRGF0YXskUGFyYW1ldGVyfSBpZiAhZGVmaW5lZCAkRGF0YXskUGFyYW1ldGVyfTsKICAgIH0KCiAgICAjIHJlcGxhY2UgdGhlIENoYW5nZUJ1aWxkZXJJRCBmcm9tIHRoZSBzYXZlZCB0ZW1wbGF0ZSB3aXRoIHRoZSBjdXJyZW50IHVzZXIgaWQKICAgICREYXRhe0NoYW5nZUJ1aWxkZXJJRH0gPSAkUGFyYW17VXNlcklEfTsKCiAgICBpZiAoICREYXRhe0NoYW5nZU1hbmFnZXJJRH0gKSB7CgogICAgICAgICMgQ2hlY2sgaWYgdGhlIGNoYW5nZSBtYW5hZ2VyIGlzIHN0aWxsIHZhbGlkLCBsZWF2ZSBlbXB0eSBpZiBub3QKICAgICAgICBteSAlVXNlckRhdGEgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkRGF0YXtDaGFuZ2VNYW5hZ2VySUR9LAogICAgICAgICAgICBWYWxpZCAgPT4gMSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkVXNlckRhdGF7VXNlcklEfSApIHsKICAgICAgICAgICAgZGVsZXRlICREYXRhe0NoYW5nZU1hbmFnZXJJRH07CiAgICAgICAgfQogICAgfQoKICAgICMgQ2hlY2sgaWYgQ0FCIGFnZW50cyBhcmUgdmFsaWQgYWdlbnRzLCBvdGhlcndpc2UgcmVtb3ZlIHRoZW0uCiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJERhdGF7Q0FCQWdlbnRzfSApICkgewoKICAgICAgICBteSBATmV3Q0FCQWdlbnRzOwoKICAgICAgICAjIGNoZWNrIHVzZXJzCiAgICAgICAgVVNFUklEOgogICAgICAgIGZvciBteSAkVXNlcklEICggQHsgJERhdGF7Q0FCQWdlbnRzfSB9ICkgewoKICAgICAgICAgICAgIyBnZXQgdXNlciBkYXRhCiAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICAgICAgVmFsaWQgID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IFVTRVJJRCBpZiAhJFVzZXJEYXRhe1VzZXJJRH07CgogICAgICAgICAgICBwdXNoIEBOZXdDQUJBZ2VudHMsICRVc2VySUQ7CiAgICAgICAgfQoKICAgICAgICAkRGF0YXtDQUJBZ2VudHN9ID0gXEBOZXdDQUJBZ2VudHM7CiAgICB9CgogICAgIyBDaGVjayBpZiBDQUIgY3VzdG9tZXJzIGFyZSB2YWxpZCBjdXN0b21lcnMsIG90aGVyd2lzZSByZW1vdmUgdGhlbS4KICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkRGF0YXtDQUJDdXN0b21lcnN9ICkgKSB7CgogICAgICAgIG15IEBOZXdDQUJDdXN0b21lcnM7CgogICAgICAgICMgZ2V0IHRoZSB2YWxpZCBpZCBmb3IgInZhbGlkIgogICAgICAgIG15ICRWYWxpZElEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTG9va3VwKAogICAgICAgICAgICBWYWxpZCA9PiAndmFsaWQnLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgY3VzdG9tZXIgdXNlcnMKICAgICAgICBDVVNUT01FUlVTRVI6CiAgICAgICAgZm9yIG15ICRDdXN0b21lclVzZXIgKCBAeyAkRGF0YXtDQUJDdXN0b21lcnN9IH0gKSB7CgogICAgICAgICAgICAjIGdldCBjdXN0b21lciB1c2VyIGRhdGEKICAgICAgICAgICAgbXkgJUN1c3RvbWVyVXNlckRhdGEgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lclVzZXJEYXRhR2V0KAogICAgICAgICAgICAgICAgVXNlciAgPT4gJEN1c3RvbWVyVXNlciwKICAgICAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IENVU1RPTUVSVVNFUiBpZiAkQ3VzdG9tZXJVc2VyRGF0YXtWYWxpZElEfSBuZSAkVmFsaWRJRDsKCiAgICAgICAgICAgIHB1c2ggQE5ld0NBQkN1c3RvbWVycywgJEN1c3RvbWVyVXNlcjsKICAgICAgICB9CgogICAgICAgICREYXRhe0NBQkN1c3RvbWVyc30gPSBcQE5ld0NBQkN1c3RvbWVyczsKICAgIH0KCiAgICAjIGFkZCB0aGUgY2hhbmdlCiAgICBteSAkQ2hhbmdlSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VBZGQoCiAgICAgICAgJURhdGEsCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGVycm9yIGhhbmRsaW5nCiAgICBpZiAoICEkQ2hhbmdlSUQgKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IGNyZWF0ZSBjaGFuZ2UhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAlSW5mbyA9ICgKICAgICAgICBJRCAgICAgICAgICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgIFRpbWVEaWZmZXJlbmNlID0+ICREaWZmZXJlbmNlLAogICAgICAgIE9sZENoYW5nZUlEICAgID0+ICRPbGRDaGFuZ2VJRCwKICAgICk7CgogICAgcmV0dXJuICVJbmZvOwp9Cgo9aGVhZDIgX0dldFRpbWVEaWZmZXJlbmNlKCkKCklmIGEgbmV3IHBsYW5uZWQgc3RhcnQvZW5kIHRpbWUgd2FzIGdpdmVuLCB0aGUgZGlmZmVyZW5jZSBpcyBuZWVkZWQKdG8gbW92ZSBhbGwgdGltZSB2YWx1ZXMKCiAgICBteSAkRGlmZkluU2Vjb25kcyA9ICRUZW1wbGF0ZU9iamVjdC0+X0dldFRpbWVEaWZmZXJlbmNlKAogICAgICAgIEN1cnJlbnRUaW1lICAgICA9PiAnMjAxMC0wMS0xMiAwMDowMDowMCcsCiAgICAgICAgTmV3VGltZUluRXBvY2hlID0+IDEyMzQ1Njc4OTAsCiAgICApOwoKPWN1dAoKc3ViIF9HZXRUaW1lRGlmZmVyZW5jZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDdXJyZW50VGltZSBOZXdUaW1lSW5FcG9jaGUpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGN1cnJlbnQgdGltZSBhcyB0aW1lc3RhbXAKICAgIG15ICRDdXJyZW50U3lzdGVtVGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgU3RyaW5nID0+ICRQYXJhbXtDdXJyZW50VGltZX0sCiAgICAgICAgfQogICAgKS0+VG9FcG9jaCgpOwoKICAgIG15ICREaWZmU2Vjb25kcyA9ICRQYXJhbXtOZXdUaW1lSW5FcG9jaGV9IC0gJEN1cnJlbnRTeXN0ZW1UaW1lOwoKICAgIHJldHVybiAkRGlmZlNlY29uZHM7Cn0KCj1oZWFkMiBfQXR0YWNobWVudEFkZCgpCgpDcmVhdGVzIG5ldyBhdHRhY2htZW50cyBmb3IgYSBjaGFuZ2Ugb3IgYSBDPHdvcmtvcmRlcj4gYmFzZWQgb24gdGhlIGdpdmVuIHRlbXBsYXRlLgpJdCByZXR1cm5zIGEgaGFzaCBvZiBpbmZvcm1hdGlvbiAod2l0aCBqdXN0IG9uZSBrZXkgLSAiU3VjY2VzcyIpCgogICAgbXkgJUluZm8gPSAkVGVtcGxhdGVPYmplY3QtPl9BdHRhY2htZW50QWRkKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAjIC4uLiBQYXJhbXMgZm9yIEF0dGFjaG1lbnRBZGQKICAgICAgICB9LAogICAgICAgIENoYW5nZUlEID0+IDEsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgX0F0dGFjaG1lbnRBZGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIENoYW5nZUlEIERhdGEpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRBdHRhY2htZW50ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlQXR0YWNobWVudEdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkUGFyYW17T2xkQ2hhbmdlSUR9LAogICAgICAgIEZpbGVuYW1lID0+ICRQYXJhbXtEYXRhfS0+e0ZpbGVuYW1lfSwKICAgICk7CgogICAgbXkgJFN1Y2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VBdHRhY2htZW50QWRkKAogICAgICAgICV7JEF0dGFjaG1lbnR9LAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICVJbmZvID0gKAogICAgICAgIFN1Y2Nlc3MgPT4gJFN1Y2Nlc3MsCiAgICApOwoKICAgIHJldHVybiAlSW5mbzsKfQoKPWhlYWQyIF9MaW5rQWRkKCkKCkNyZWF0ZXMgbmV3IGxpbmtzIGZvciBhIGNoYW5nZSBvciBhIEM8d29ya29yZGVyPiBiYXNlZCBvbiB0aGUgZ2l2ZW4gdGVtcGxhdGUuIEl0CnJldHVybnMgYSBoYXNoIG9mIGluZm9ybWF0aW9uICh3aXRoIGp1c3Qgb25lIGtleSAtICJTdWNjZXNzIikKCiAgICBteSAlSW5mbyA9ICRUZW1wbGF0ZU9iamVjdC0+X0xpbmtBZGQoCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICMgLi4uIFBhcmFtcyBmb3IgTGlua0FkZAogICAgICAgIH0sCiAgICAgICAgQ2hhbmdlSUQgICAgPT4gMSwKICAgICAgICBXb3JrT3JkZXJJRCA9PiAxMjMsICMgb3B0aW9uYWwKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBfTGlua0FkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgRGF0YSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFNvdXJjZUtleTsKCiAgICBpZiAoICRQYXJhbXtEYXRhfS0+e1NvdXJjZU9iamVjdH0gZXEgJ0lUU01DaGFuZ2UnICkgewogICAgICAgICRTb3VyY2VLZXkgPSAkUGFyYW17Q2hhbmdlSUR9OwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17RGF0YX0tPntTb3VyY2VPYmplY3R9IGVxICdJVFNNV29ya09yZGVyJyApIHsKICAgICAgICAkU291cmNlS2V5ID0gJFBhcmFte1dvcmtPcmRlcklEfTsKICAgIH0KCiAgICBpZiAoICEkU291cmNlS2V5ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBXb3JrT3JkZXJJRCBvciBDaGFuZ2VJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnKS0+TGlua0FkZCgKICAgICAgICAleyAkUGFyYW17RGF0YX0gfSwKICAgICAgICBTb3VyY2VLZXkgPT4gJFNvdXJjZUtleSwKICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICVJbmZvID0gKAogICAgICAgIFN1Y2Nlc3MgPT4gJFN1Y2Nlc3MsCiAgICApOwoKICAgIHJldHVybiAlSW5mbzsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cHM6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Template/ITSMCondition.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGU6OklUU01Db25kaXRpb247Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIyBub2ZpbHRlcihUaWR5QWxsOjpQbHVnaW46OlpudW55OjpQZXJsOjpEdW1wZXIpCnVzZSBEYXRhOjpEdW1wZXI7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok1haW4nLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZTo6SVRTTUNvbmRpdGlvbiAtIGFsbCB0ZW1wbGF0ZSBmdW5jdGlvbnMgZm9yIGNvbmRpdGlvbnMKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCkNyZWF0ZSBhbiBvYmplY3QuCgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkVGVtcGxhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGU6OklUU01Db25kaXRpb24nKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBzZXQgdGhlIGRlYnVnIGZsYWcKICAgICRTZWxmLT57RGVidWd9ID0gJFBhcmFte0RlYnVnfSB8fCAwOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIFNlcmlhbGl6ZSgpCgpTZXJpYWxpemUgYSBjb25kaXRpb24uIFRoaXMgaXMgZG9uZSB3aXRoIERhdGE6OkR1bXBlci4gSXQgcmV0dXJucwphIHNlcmlhbGl6ZWQgc3RyaW5nIG9mIHRoZSBkYXRhIHN0cnVjdHVyZS4gVGhlIGNvbmRpdGlvbiBhY3Rpb25zCmFyZSAid3JhcHBlZCIgd2l0aGluIGEgaGFzaCByZWZlcmVuY2UuLi4KCiAgICBteSAkVGVtcGxhdGVTdHJpbmcgPSAkVGVtcGxhdGVPYmplY3QtPlNlcmlhbGl6ZSgKICAgICAgICBDb25kaXRpb25JRCA9PiAxLAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgUmV0dXJuICAgICAgPT4gJ0hBU0gnLCAjIChvcHRpb25hbCkgSEFTSHxTVFJJTkcgZGVmYXVsdCAnU1RSSU5HJwogICAgKTsKCnJldHVybnMKCiAgICAne0NvbmRpdGlvbkFkZCA9PiB7IC4uLiB9fScKCklmIHBhcmFtZXRlciBDPFJldHVybj4gaXMgc2V0IHRvIEM8SEFTSD4sIHRoZSBQZXJsIGRhdGEgc3RydWN0dXJlCmlzIHJldHVybmVkCgogICAgewogICAgICAgIENvbmRpdGlvbkFkZCA9PiB7IC4uLiB9LAogICAgICAgIENoaWxkcmVuICAgICA9PiBbIC4uLiBdLAogICAgfQoKPWN1dAoKc3ViIFNlcmlhbGl6ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgQ29uZGl0aW9uSUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGRlZmF1bHQgdmFsdWUgZm9yICdSZXR1cm4nCiAgICAkUGFyYW17UmV0dXJufSB8fD0gJ1NUUklORyc7CgogICAgIyBnZXQgY29uZGl0aW9uCiAgICBteSAkQ29uZGl0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKS0+Q29uZGl0aW9uR2V0KAogICAgICAgIENvbmRpdGlvbklEID0+ICRQYXJhbXtDb25kaXRpb25JRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiBpZiAhJENvbmRpdGlvbjsKCiAgICAjIHRlbXBsYXRlcyBoYXZlIHRvIGJlIGFuIGFycmF5IHJlZmVyZW5jZTsKICAgIG15ICRPcmlnaW5hbERhdGEgPSB7IENvbmRpdGlvbkFkZCA9PiAkQ29uZGl0aW9uIH07CgogICAgIyBnZXQgZXhwcmVzc2lvbnMKICAgIG15ICRFeHByZXNzaW9ucyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyktPkV4cHJlc3Npb25MaXN0KAogICAgICAgIENvbmRpdGlvbklEID0+ICRQYXJhbXtDb25kaXRpb25JRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApIHx8IFtdOwoKICAgICMgYWRkIGVhY2ggZXhwcmVzc2lvbiB0byBjb25kaXRpb24gZGF0YQogICAgZm9yIG15ICRFeHByZXNzaW9uSUQgKCBAeyRFeHByZXNzaW9uc30gKSB7CiAgICAgICAgbXkgJEV4cHJlc3Npb24gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbicpLT5FeHByZXNzaW9uR2V0KAogICAgICAgICAgICBFeHByZXNzaW9uSUQgPT4gJEV4cHJlc3Npb25JRCwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIHB1c2ggQHsgJE9yaWdpbmFsRGF0YS0+e0NoaWxkcmVufSB9LCB7IEV4cHJlc3Npb25BZGQgPT4gJEV4cHJlc3Npb24gfTsKICAgIH0KCiAgICAjIGdldCBhY3Rpb25zCiAgICBteSAkQWN0aW9ucyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyktPkFjdGlvbkxpc3QoCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gJFBhcmFte0NvbmRpdGlvbklEfSwKICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICkgfHwgW107CgogICAgIyBhZGQgZWFjaCBhY3Rpb24gdG8gY29uZGl0aW9uIGRhdGEKICAgIGZvciBteSAkQWN0aW9uSUQgKCBAeyRBY3Rpb25zfSApIHsKICAgICAgICBteSAkQWN0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKS0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb25JRCA9PiAkQWN0aW9uSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIHB1c2ggQHsgJE9yaWdpbmFsRGF0YS0+e0NoaWxkcmVufSB9LCB7IEFjdGlvbkFkZCA9PiAkQWN0aW9uIH07CiAgICB9CgogICAgaWYgKCAkUGFyYW17UmV0dXJufSBlcSAnSEFTSCcgKSB7CiAgICAgICAgcmV0dXJuICRPcmlnaW5hbERhdGE7CiAgICB9CgogICAgIyBubyBpbmRlbnRhdGlvbiAoc2F2ZXMgc3BhY2UpCiAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOwoKICAgICMgZG8gbm90IHVzZSBjcm9zcy1yZWZlcmVuY2luZwogICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6RGVlcGNvcHkgPSAxOwoKICAgICMgc2VyaWFsaXplIHRoZSBkYXRhIChkbyBub3QgdXNlICRWQVIxLCBidXQgJFRlbXBsYXRlRGF0YSBmb3IgRHVtcGVyIG91dHB1dCkKICAgIG15ICRTZXJpYWxpemVkRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkR1bXAoICRPcmlnaW5hbERhdGEsICdiaW5hcnknICk7CgogICAgcmV0dXJuICRTZXJpYWxpemVkRGF0YTsKfQoKPWhlYWQyIERlU2VyaWFsaXplKCkKCkRlU2VyaWFsaXplKCkgaXMgYSB3cmFwcGVyIGZvciBhbGwgdGhlIF9YWFhBZGQgbWV0aG9kcy4KCiAgICBteSAlSW5mbyA9ICRUZW1wbGF0ZU9iamVjdC0+RGVTZXJpYWxpemUoCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICMgLi4uIFBhcmFtcyBmb3IgQ29uZGl0aW9uQWRkCiAgICAgICAgfSwKICAgICAgICBDaGFuZ2VJRCA9PiAxLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgTWV0aG9kICAgPT4gJ0NvbmRpdGlvbkFkZCcsCiAgICApOwoKPWN1dAoKc3ViIERlU2VyaWFsaXplIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFVzZXJJRCBNZXRob2QgRGF0YSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBkaXNwYXRjaCB0YWJsZQogICAgbXkgJU1ldGhvZDJTdWIgPSAoCiAgICAgICAgQ29uZGl0aW9uQWRkICA9PiAnX0NvbmRpdGlvbkFkZCcsCiAgICAgICAgRXhwcmVzc2lvbkFkZCA9PiAnX0V4cHJlc3Npb25BZGQnLAogICAgICAgIEFjdGlvbkFkZCAgICAgPT4gJ19BY3Rpb25BZGQnLAogICAgKTsKCiAgICBteSAkU3ViID0gJE1ldGhvZDJTdWJ7ICRQYXJhbXtNZXRob2R9IH07CgogICAgaWYgKCAhJFN1YiApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0ludmFsaWQgTWV0aG9kbmFtZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHJldHVybiAkU2VsZi0+JFN1YiglUGFyYW0pOwp9Cgo9aGVhZDEgUFJJVkFURSBJTlRFUkZBQ0UKCj1oZWFkMiBfQ29uZGl0aW9uQWRkKCkKCkNyZWF0ZXMgbmV3IGNvbmRpdGlvbnMgZm9yIGEgY2hhbmdlIGJhc2VkIG9uIHRoZSBnaXZlbiB0ZW1wbGF0ZS4gSXQKcmV0dXJucyBhIGhhc2ggb2YgaW5mb3JtYXRpb24gKGNoYW5nZSBpZCBpdCB3YXMgY3JlYXRlZCBmb3IsIGlkIGlzCnRoZSBjb25kaXRpb24gaWQpCgogICAgbXkgJUluZm8gPSAkVGVtcGxhdGVPYmplY3QtPl9Db25kaXRpb25BZGQoCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICMgLi4uIFBhcmFtcyBmb3IgQ29uZGl0aW9uQWRkCiAgICAgICAgfSwKICAgICAgICBDaGFuZ2VJRCA9PiAxLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIF9Db25kaXRpb25BZGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIENoYW5nZUlEIERhdGEpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICVEYXRhID0gJXsgJFBhcmFte0RhdGF9IH07CgogICAgIyBkZWxldGUgYXR0cmlidXRlcwogICAgZGVsZXRlICREYXRhe0NvbmRpdGlvbklEfTsKCiAgICAjIGFkZCBjb25kaXRpb24KICAgIG15ICRDb25kaXRpb25JRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyktPkNvbmRpdGlvbkFkZCgKICAgICAgICAlRGF0YSwKICAgICAgICBDaGFuZ2VJRCA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBteSAlSW5mbyA9ICgKICAgICAgICBJRCAgICAgICAgICA9PiAkQ29uZGl0aW9uSUQsCiAgICAgICAgQ2hhbmdlSUQgICAgPT4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICBDb25kaXRpb25JRCA9PiAkQ29uZGl0aW9uSUQsCiAgICApOwoKICAgIHJldHVybiAlSW5mbzsKfQoKPWhlYWQyIF9FeHByZXNzaW9uQWRkKCkKCkNyZWF0ZXMgbmV3IGV4cHJlc3Npb25zIGZvciBhIGNvbmRpdGlvbiBiYXNlZCBvbiB0aGUgZ2l2ZW4gdGVtcGxhdGUuIEl0CnJldHVybnMgYSBoYXNoIG9mIGluZm9ybWF0aW9uIChjaGFuZ2UgaWQgaXQgd2FzIGNyZWF0ZWQgZm9yLCBpZCBpcwp0aGUgZXhwcmVzc2lvbiBpZCkKCiAgICBteSAlSW5mbyA9ICRUZW1wbGF0ZU9iamVjdC0+X0V4cHJlc3Npb25BZGQoCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICMgLi4uIFBhcmFtcyBmb3IgRXhwcmVzc2lvbkFkZAogICAgICAgIH0sCiAgICAgICAgQ2hhbmdlSUQgPT4gMSwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBfRXhwcmVzc2lvbkFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgQ2hhbmdlSUQgRGF0YSBDb25kaXRpb25JRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJURhdGEgPSAleyAkUGFyYW17RGF0YX0gfTsKCiAgICAjIGRlbGV0ZSBhdHRyaWJ1dGVzIHRoYXQgYXJlIG5vdCBuZWVkZWQKICAgIGRlbGV0ZSAkRGF0YXtFeHByZXNzaW9uSUR9OwoKICAgICMgcmVwbGFjZSBvbGQgaWRzIHdpdGggbmV3IGlkcwogICAgJERhdGF7Q29uZGl0aW9uSUR9ID0gJFBhcmFte0NvbmRpdGlvbklEfTsKCiAgICAjIHJlcGxhY2Ugb2xkIGlkIG9ubHkgaWYgaXQgaXMgYW4gSUQKICAgIGlmICggJERhdGF7U2VsZWN0b3J9ID1+IG17IFxBIFxkKyBceiB9eG1zICkgewogICAgICAgIG15ICRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbicpLT5PYmplY3RHZXQoCiAgICAgICAgICAgIE9iamVjdElEID0+ICREYXRhe09iamVjdElEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkT2JqZWN0LT57TmFtZX0gZXEgJ0lUU01DaGFuZ2UnICkgewogICAgICAgICAgICAkRGF0YXtTZWxlY3Rvcn0gPSAkUGFyYW17Q2hhbmdlSUR9OwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRPYmplY3QtPntOYW1lfSBlcSAnSVRTTVdvcmtPcmRlcicgKSB7CiAgICAgICAgICAgICREYXRhe1NlbGVjdG9yfSA9ICRQYXJhbXtPbGRXb3JrT3JkZXJJRHN9LT57ICREYXRhe1NlbGVjdG9yfSB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGFkZCBleHByZXNzaW9uCiAgICBteSAkRXhwcmVzc2lvbklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKS0+RXhwcmVzc2lvbkFkZCgKICAgICAgICAlRGF0YSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICVJbmZvID0gKAogICAgICAgIElEICAgICAgICAgICA9PiAkRXhwcmVzc2lvbklELAogICAgICAgIENoYW5nZUlEICAgICA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgIEV4cHJlc3Npb25JRCA9PiAkRXhwcmVzc2lvbklELAogICAgKTsKCiAgICByZXR1cm4gJUluZm87Cn0KCj1oZWFkMiBfQWN0aW9uQWRkKCkKCkNyZWF0ZXMgbmV3IGFjdGlvbnMgZm9yIGEgY29uZGl0aW9uIGJhc2VkIG9uIHRoZSBnaXZlbiB0ZW1wbGF0ZS4gSXQKcmV0dXJucyBhIGhhc2ggb2YgaW5mb3JtYXRpb24gKGNoYW5nZSBpZCBpdCB3YXMgY3JlYXRlZCBmb3IsIGlkIGlzCnRoZSBhY3Rpb24gaWQpCgogICAgbXkgJUluZm8gPSAkVGVtcGxhdGVPYmplY3QtPl9BY3Rpb25BZGQoCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICMgLi4uIFBhcmFtcyBmb3IgQWN0aW9uQWRkCiAgICAgICAgfSwKICAgICAgICBDaGFuZ2VJRCA9PiAxLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIF9BY3Rpb25BZGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIENoYW5nZUlEIERhdGEgQ29uZGl0aW9uSUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICVEYXRhID0gJXsgJFBhcmFte0RhdGF9IH07CgogICAgIyBkZWxldGUgYXR0cmlidXRlcyB0aGF0IGFyZSBub3QgbmVlZGVkCiAgICBkZWxldGUgJERhdGF7QWN0aW9uSUR9OwoKICAgICMgcmVwbGFjZSBvbGQgaWRzIHdpdGggbmV3IGlkcwogICAgJERhdGF7Q29uZGl0aW9uSUR9ID0gJFBhcmFte0NvbmRpdGlvbklEfTsKCiAgICAjIHJlcGxhY2Ugb2xkIGlkIG9ubHkgaWYgaXQgaXMgYW4gSUQKICAgIGlmICggJERhdGF7U2VsZWN0b3J9ID1+IG17IFxBIFxkKyBceiB9eG1zICkgewogICAgICAgIG15ICRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbicpLT5PYmplY3RHZXQoCiAgICAgICAgICAgIE9iamVjdElEID0+ICREYXRhe09iamVjdElEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkT2JqZWN0LT57TmFtZX0gZXEgJ0lUU01DaGFuZ2UnICkgewogICAgICAgICAgICAkRGF0YXtTZWxlY3Rvcn0gPSAkUGFyYW17Q2hhbmdlSUR9OwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRPYmplY3QtPntOYW1lfSBlcSAnSVRTTVdvcmtPcmRlcicgKSB7CiAgICAgICAgICAgICREYXRhe1NlbGVjdG9yfSA9ICRQYXJhbXtPbGRXb3JrT3JkZXJJRHN9LT57ICREYXRhe1NlbGVjdG9yfSB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGFkZCBhY3Rpb24KICAgIG15ICRBY3Rpb25JRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyktPkFjdGlvbkFkZCgKICAgICAgICAlRGF0YSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICVJbmZvID0gKAogICAgICAgIElEICAgICAgID0+ICRBY3Rpb25JRCwKICAgICAgICBDaGFuZ2VJRCA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgIEFjdGlvbklEID0+ICRBY3Rpb25JRCwKICAgICk7CgogICAgcmV0dXJuICVJbmZvOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="Kernel/System/ITSMChange/Template/ITSMWorkOrder.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGU6OklUU01Xb3JrT3JkZXI7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIyBub2ZpbHRlcihUaWR5QWxsOjpQbHVnaW46OlpudW55OjpQZXJsOjpEdW1wZXIpCnVzZSBEYXRhOjpEdW1wZXI7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNU3RhdGVNYWNoaW5lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpNYWluJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OlRlbXBsYXRlOjpJVFNNV29ya09yZGVyIC0gYWxsIHRlbXBsYXRlIGZ1bmN0aW9ucyBmb3Igd29ya29yZGVycwoKPWhlYWQxIERFU0NSSVBUSU9OCgpBbGwgZnVuY3Rpb25zIGZvciB3b3JrIG9yZGVyIHRlbXBsYXRlcyBpbiBJVFNNQ2hhbmdlTWFuYWdlbWVudC4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9Y3V0Cgo9aGVhZDIgbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRUZW1wbGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZTo6SVRTTVdvcmtPcmRlcicpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIHNldCB0aGUgZGVidWcgZmxhZwogICAgJFNlbGYtPntEZWJ1Z30gPSAkUGFyYW17RGVidWd9IHx8IDA7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgU2VyaWFsaXplKCkKClNlcmlhbGl6ZSBhIEM8d29ya29yZGVyPi4gVGhpcyBpcyBkb25lIHdpdGggRGF0YTo6RHVtcGVyLiBJdCByZXR1cm5zCmEgc2VyaWFsaXplZCBzdHJpbmcgb2YgdGhlIGRhdGEgc3RydWN0dXJlLiBUaGUgQzx3b3Jrb3JkZXI+IGFjdGlvbnMKYXJlICJ3cmFwcGVkIiB3aXRoaW4gYSBoYXNoIHJlZmVyZW5jZS4uLgoKICAgIG15ICRUZW1wbGF0ZVN0cmluZyA9ICRUZW1wbGF0ZU9iamVjdC0+U2VyaWFsaXplKAogICAgICAgIFdvcmtPcmRlcklEID0+IDEsCiAgICAgICAgU3RhdGVSZXNldCAgPT4gMSwgIyAob3B0aW9uYWwpIHJlc2V0IHRvIGRlZmF1bHQgc3RhdGUKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgIFJldHVybiAgICAgID0+ICdIQVNIJywgIyAob3B0aW9uYWwpIEhBU0h8U1RSSU5HIGRlZmF1bHQgJ1NUUklORycKICAgICk7CgpyZXR1cm5zCgogICAgJ3tXb3JrT3JkZXJBZGQgPT4geyBDaGFuZ2VJRCA9PiAxMjMsIC4uLiB9fScKCklmIHBhcmFtZXRlciBDPFJldHVybj4gaXMgc2V0IHRvIEM8SEFTSD4sIHRoZSBQZXJsIGRhdGEgc3RydWN0dXJlCmlzIHJldHVybmVkCgogICAgewogICAgICAgIFdvcmtPcmRlckFkZCA9PiB7IC4uLiB9LAogICAgICAgIENoaWxkcmVuICAgICA9PiBbIC4uLiBdLAogICAgfQoKPWN1dAoKc3ViIFNlcmlhbGl6ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgV29ya09yZGVySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGRlZmF1bHQgdmFsdWUgZm9yICdSZXR1cm4nCiAgICAkUGFyYW17UmV0dXJufSB8fD0gJ1NUUklORyc7CgogICAgIyBnZXQgd29ya29yZGVyCiAgICBteSAkV29ya09yZGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtXb3JrT3JkZXJJRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiBpZiAhJFdvcmtPcmRlcjsKCiAgICAjIGtlZXAganVzdCB3YW50ZWQgYXR0cmlidXRlcwogICAgbXkgJENsZWFuV29ya09yZGVyOwogICAgZm9yIG15ICRBdHRyaWJ1dGUgKAogICAgICAgIHF3KAogICAgICAgIFdvcmtPcmRlcklEIENoYW5nZUlEIFdvcmtPcmRlck51bWJlciBXb3JrT3JkZXJUaXRsZSBJbnN0cnVjdGlvbgogICAgICAgIFJlcG9ydCBXb3JrT3JkZXJTdGF0ZUlEIFdvcmtPcmRlclR5cGVJRCBXb3JrT3JkZXJBZ2VudElECiAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSBQbGFubmVkRW5kVGltZSBBY3R1YWxTdGFydFRpbWUgQWN0dWFsRW5kVGltZSBBY2NvdW50ZWRUaW1lIFBsYW5uZWRFZmZvcnQKICAgICAgICBDcmVhdGVUaW1lIENyZWF0ZUJ5IENoYW5nZVRpbWUgQ2hhbmdlQnkpCiAgICAgICAgKQogICAgewogICAgICAgICRDbGVhbldvcmtPcmRlci0+eyRBdHRyaWJ1dGV9ID0gJFdvcmtPcmRlci0+eyRBdHRyaWJ1dGV9OwogICAgfQoKICAgICMgcmVzZXQgd29ya29yZGVyIHN0YXRlIHRvIGRlZmF1bHQgaWYgcmVxdWVzdGVkCiAgICBpZiAoICRQYXJhbXtTdGF0ZVJlc2V0fSApIHsKCiAgICAgICAgIyBnZXQgaW5pdGlhbCB3b3Jrb3JkZXIgc3RhdGUgaWQKICAgICAgICBteSAkTmV4dFN0YXRlSURzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01TdGF0ZU1hY2hpbmUnKS0+U3RhdGVUcmFuc2l0aW9uR2V0KAogICAgICAgICAgICBTdGF0ZUlEID0+IDAsCiAgICAgICAgICAgIENsYXNzICAgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6U3RhdGUnLAogICAgICAgICk7CiAgICAgICAgJENsZWFuV29ya09yZGVyLT57V29ya09yZGVyU3RhdGVJRH0gPSAkTmV4dFN0YXRlSURzLT5bMF07CgogICAgICAgICMgcmVzZXQgYWN0dWFsIHN0YXJ0IGFuZCBlbmQgdGltZQogICAgICAgICRDbGVhbldvcmtPcmRlci0+e0FjdHVhbFN0YXJ0VGltZX0gPSB1bmRlZjsKICAgICAgICAkQ2xlYW5Xb3JrT3JkZXItPntBY3R1YWxFbmRUaW1lfSAgID0gdW5kZWY7CiAgICB9CgogICAgIyBhZGQgd29ya29yZGVyIGZpZWxkcyB0byBsaXN0IG9mIHdhbnRlZCBhdHRyaWJ1dGUKICAgIEFUVFJJQlVURToKICAgIGZvciBteSAkQXR0cmlidXRlICggc29ydCBrZXlzICV7JFdvcmtPcmRlcn0gKSB7CgogICAgICAgICMgZmluZCB0aGUgd29ya29yZGVyIGR5bmFtaWMgZmllbGQgYXR0cmlidXRlcwogICAgICAgIGlmICggJEF0dHJpYnV0ZSA9fiBteyBcQSBEeW5hbWljRmllbGRfLiogXHogfXhtcyApIHsKCiAgICAgICAgICAgICRDbGVhbldvcmtPcmRlci0+eyRBdHRyaWJ1dGV9ID0gJFdvcmtPcmRlci0+eyRBdHRyaWJ1dGV9OwogICAgICAgIH0KICAgIH0KCiAgICAjIHRlbXBsYXRlcyBoYXZlIHRvIGJlIGFuIGFycmF5IHJlZmVyZW5jZTsKICAgIG15ICRPcmlnaW5hbERhdGEgPSB7IFdvcmtPcmRlckFkZCA9PiAkQ2xlYW5Xb3JrT3JkZXIgfTsKCiAgICAjIGdldCBhdHRhY2htZW50cwogICAgbXkgQFdvcmtPcmRlckF0dGFjaG1lbnRzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyQXR0YWNobWVudExpc3QoCiAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlci0+e1dvcmtPcmRlcklEfSwKICAgICk7CgogICAgZm9yIG15ICRGaWxlbmFtZSAoQFdvcmtPcmRlckF0dGFjaG1lbnRzKSB7CgogICAgICAgICMgc2F2ZSBhdHRhY2htZW50cyB0byB0aGlzIHRlbXBsYXRlCiAgICAgICAgcHVzaCBAeyAkT3JpZ2luYWxEYXRhLT57Q2hpbGRyZW59IH0sIHsgQXR0YWNobWVudEFkZCA9PiB7IEZpbGVuYW1lID0+ICRGaWxlbmFtZSB9IH07CiAgICB9CgogICAgIyBnZXQgbGlua3MgdG8gb3RoZXIgb2JqZWN0CiAgICBteSAkTGlua0xpc3RXaXRoRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0JyktPkxpbmtMaXN0V2l0aERhdGEoCiAgICAgICAgT2JqZWN0ID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICBLZXkgICAgPT4gJFdvcmtPcmRlci0+e1dvcmtPcmRlcklEfSwKICAgICAgICBTdGF0ZSAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIGZvciBteSAkVGFyZ2V0T2JqZWN0ICggc29ydCBrZXlzICV7JExpbmtMaXN0V2l0aERhdGF9ICkgewogICAgICAgIGZvciBteSAkVHlwZSAoIHNvcnQga2V5cyAleyAkTGlua0xpc3RXaXRoRGF0YS0+eyRUYXJnZXRPYmplY3R9IH0gKSB7CiAgICAgICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICV7ICRMaW5rTGlzdFdpdGhEYXRhLT57JFRhcmdldE9iamVjdH0tPnskVHlwZX0gfSApIHsKICAgICAgICAgICAgICAgIGZvciBteSAkVGFyZ2V0SUQgKAogICAgICAgICAgICAgICAgICAgIHNvcnQga2V5cyAleyAkTGlua0xpc3RXaXRoRGF0YS0+eyRUYXJnZXRPYmplY3R9LT57JFR5cGV9LT57JEtleX0gfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBteSAkTGlua0luZm8gPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZU9iamVjdCA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZUtleSAgICA9PiAkV29ya09yZGVyLT57V29ya09yZGVySUR9LAogICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRPYmplY3QgPT4gJFRhcmdldE9iamVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0S2V5ICAgID0+ICRUYXJnZXRJRCwKICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgICAgID0+ICRUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgcHVzaCBAeyAkT3JpZ2luYWxEYXRhLT57Q2hpbGRyZW59IH0sIHsgTGlua0FkZCA9PiAkTGlua0luZm8gfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRQYXJhbXtSZXR1cm59IGVxICdIQVNIJyApIHsKICAgICAgICByZXR1cm4gJE9yaWdpbmFsRGF0YTsKICAgIH0KCiAgICAjIG5vIGluZGVudGF0aW9uIChzYXZlcyBzcGFjZSkKICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OkluZGVudCA9IDA7CgogICAgIyBkbyBub3QgdXNlIGNyb3NzLXJlZmVyZW5jaW5nCiAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpEZWVwY29weSA9IDE7CgogICAgIyBzZXJpYWxpemUgdGhlIGRhdGEgKGRvIG5vdCB1c2UgJFZBUjEsIGJ1dCAkVGVtcGxhdGVEYXRhIGZvciBEdW1wZXIgb3V0cHV0KQogICAgbXkgJFNlcmlhbGl6ZWREYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+RHVtcCggJE9yaWdpbmFsRGF0YSwgJ2JpbmFyeScgKTsKCiAgICByZXR1cm4gJFNlcmlhbGl6ZWREYXRhOwp9Cgo9aGVhZDIgRGVTZXJpYWxpemUoKQoKRGVTZXJpYWxpemUoKSBpcyBhIHdyYXBwZXIgZm9yIGFsbCB0aGUgX1hYWEFkZCBtZXRob2RzLgoKICAgIG15ICVJbmZvID0gJFRlbXBsYXRlT2JqZWN0LT5EZVNlcmlhbGl6ZSgKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgIyAuLi4gUGFyYW1zIGZvciBXb3JrT3JkZXJBZGQKICAgICAgICB9LAogICAgICAgIENoYW5nZUlEID0+IDEsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICBNZXRob2QgICA9PiAnV29ya09yZGVyQWRkJywKICAgICk7Cgo9Y3V0CgpzdWIgRGVTZXJpYWxpemUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIE1ldGhvZCBEYXRhKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRpc3BhdGNoIHRhYmxlCiAgICBteSAlTWV0aG9kMlN1YiA9ICgKICAgICAgICBXb3JrT3JkZXJBZGQgID0+ICdfV29ya09yZGVyQWRkJywKICAgICAgICBBdHRhY2htZW50QWRkID0+ICdfQXR0YWNobWVudEFkZCcsCiAgICAgICAgTGlua0FkZCAgICAgICA9PiAnX0xpbmtBZGQnLAogICAgKTsKCiAgICBteSAkU3ViID0gJE1ldGhvZDJTdWJ7ICRQYXJhbXtNZXRob2R9IH07CgogICAgaWYgKCAhJFN1YiApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0ludmFsaWQgTWV0aG9kbmFtZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHJldHVybiAkU2VsZi0+JFN1YiglUGFyYW0pOwp9Cgo9aGVhZDIgX1dvcmtPcmRlckFkZCgpCgpDcmVhdGVzIGEgbmV3IEM8d29ya29yZGVyPiBiYXNlZCBvbiBhIHRlbXBsYXRlLiBJdCByZXR1cm5zIHRoZQpjaGFuZ2UgaWQgaXQgd2FzIGNyZWF0ZWQgZm9yIGFuZCB0aGUgbmV3IEM8d29ya29yZGVyPiBpZC4KCiAgICBteSAoICRDaGFuZ2VJRCwgJFdvcmtPcmRlcklEICkgPSAkVGVtcGxhdGVPYmplY3QtPl9Xb3JrT3JkZXJBZGQoCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICd0ZXN0JywKICAgICAgICB9LAogICAgICAgIENoYW5nZUlEICAgICAgID0+IDEsCiAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgX1dvcmtPcmRlckFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgQ2hhbmdlSUQgRGF0YSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBtYWtlIGEgbG9jYWwgY29weQogICAgbXkgJURhdGEgPSAleyAkUGFyYW17RGF0YX0gfTsKCiAgICAjIHdlIG5lZWQgdGhlIG9sZCBjaGFuZ2UgaWQgZm9yIGV4cHJlc3Npb25zCiAgICBteSAkT2xkV29ya09yZGVySUQgPSAkRGF0YXtXb3JrT3JkZXJJRH07CgogICAgIyB0aGVzZSBhdHRyaWJ1dGVzIGFyZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSwgc28gZG9uJ3QgcGFzcyB0aGVtIHRvIFdvcmtPcmRlckFkZCgpCiAgICBkZWxldGUgQERhdGF7cXcoV29ya09yZGVySUQgQ3JlYXRlVGltZSBDcmVhdGVCeSBDaGFuZ2VUaW1lIENoYW5nZUJ5KX07CiAgICBkZWxldGUgQERhdGF7cXcoSW5zdHJ1Y3Rpb25QbGFpbiBSZXBvcnRQbGFpbil9OwoKICAgICMgZGVsZXRlIGFsbCBwYXJhbWV0ZXJzIHdob3NlIHZhbHVlcyBhcmUgJ3VuZGVmJwogICAgIyBfQ2hlY2tXb3JrT3JkZXJQYXJhbXMgdGhyb3dzIGFuIGVycm9yIG90aGVyd2lzZQogICAgZm9yIG15ICRQYXJhbWV0ZXIgKCBzb3J0IGtleXMgJURhdGEgKSB7CiAgICAgICAgZGVsZXRlICREYXRheyRQYXJhbWV0ZXJ9IGlmICFkZWZpbmVkICREYXRheyRQYXJhbWV0ZXJ9OwogICAgfQoKICAgICMgeHh4KD86U3RhcnR8RW5kKVRpbWVzIGFyZSBlbXB0eSBzdHJpbmdzIG9uIFdvcmtPcmRlckdldCB3aGVuCiAgICAjIG5vIHRpbWUgdmFsdWUgaXMgc2V0LiBUaGlzIGNvbmZ1c2VzIF9DaGVja1RpbWVzdGFtcHMuIFRodXMKICAgICMgZGVsZXRlIHRoZXNlIHBhcmFtZXRlcnMuCiAgICBmb3IgbXkgJFByZWZpeCAocXcoQWN0dWFsIFBsYW5uZWQpKSB7CiAgICAgICAgZm9yIG15ICRTdWZmaXggKHF3KFN0YXJ0IEVuZCkpIHsKICAgICAgICAgICAgaWYgKCAhJERhdGF7IiRQcmVmaXgke1N1ZmZpeH1UaW1lIn0gKSB7CiAgICAgICAgICAgICAgICBkZWxldGUgJERhdGF7IiRQcmVmaXgke1N1ZmZpeH1UaW1lIn07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBtb3ZlIHRpbWUgc2xvdCBmb3Igd29ya29yZGVyIGlmIG5lY2Nlc3NhcnkKICAgIG15ICREaWZmZXJlbmNlID0gJFBhcmFte1RpbWVEaWZmZXJlbmNlfTsKICAgIGlmICggJERpZmZlcmVuY2UgfHwgJFBhcmFte05ld1RpbWVJbkVwb2NoZX0gKSB7CgogICAgICAgICMgY2FsYyBuZXcgdmFsdWVzIGZvciBzdGFydCBhbmQgZW5kIHRpbWUKICAgICAgICBmb3IgbXkgJFN1ZmZpeCAocXcoU3RhcnQgRW5kKSkgewoKICAgICAgICAgICAgaWYgKCAkRGF0YXsiUGxhbm5lZCR7U3VmZml4fVRpbWUifSApIHsKCiAgICAgICAgICAgICAgICAjIGdldCBkaWZmZXJlbmNlIGlmIG5vdCBhbHJlYWR5IGNhbGN1bGF0ZWQgKGFsbG93IHplcm8gZGlmZmVyZW5jZSkKICAgICAgICAgICAgICAgIGlmICggIWRlZmluZWQgJERpZmZlcmVuY2UgJiYgJFBhcmFte05ld1RpbWVJbkVwb2NoZX0gKSB7CgogICAgICAgICAgICAgICAgICAgICMgdGltZSBuZWVkcyB0byBiZSBjb3JyZWN0ZWQgaWYgdGhlIG1vdmUgdGltZSB0eXBlIGlzIHRoZSBwbGFubmVkIGVuZCB0aW1lCiAgICAgICAgICAgICAgICAgICAgbXkgJFdvcmtPcmRlckxlbmd0aEluU2Vjb25kcyA9IDA7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17TW92ZVRpbWVUeXBlfSBlcSAnUGxhbm5lZEVuZFRpbWUnICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBjYWxjdWxhdGUgdGhlIG9sZCBwbGFubmVkIHN0YXJ0IHRpbWUgaW50byBlcG9jaCBzZWNvbmRzCiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRPbGRQbGFubmVkU3RhcnRUaW1lSW5TZWNvbmRzID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJERhdGF7UGxhbm5lZFN0YXJ0VGltZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICApLT5Ub0Vwb2NoKCk7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGNhbGN1bGF0ZSB0aGUgb2xkIHBsYW5uZWQgZW5kIHRpbWUgaW50byBlcG9jaCBzZWNvbmRzCiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRPbGRQbGFubmVkRW5kVGltZUluU2Vjb25kcyA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICREYXRhe1BsYW5uZWRFbmRUaW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICktPlRvRXBvY2goKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgdGhlIHRpbWUgbGVuZ3RoIG9mIHRoZSB3b3Jrb3JkZXIgaW4gc2Vjb25kcwogICAgICAgICAgICAgICAgICAgICAgICAkV29ya09yZGVyTGVuZ3RoSW5TZWNvbmRzID0gJE9sZFBsYW5uZWRFbmRUaW1lSW5TZWNvbmRzIC0gJE9sZFBsYW5uZWRTdGFydFRpbWVJblNlY29uZHM7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIGNhbGN1bGF0ZSB0aGUgdGltZSBkaWZmZXJlbmNlCiAgICAgICAgICAgICAgICAgICAgJERpZmZlcmVuY2UgPSAkU2VsZi0+X0dldFRpbWVEaWZmZXJlbmNlKAogICAgICAgICAgICAgICAgICAgICAgICBDdXJyZW50VGltZSAgICAgPT4gJERhdGF7IlBsYW5uZWQke1N1ZmZpeH1UaW1lIn0sCiAgICAgICAgICAgICAgICAgICAgICAgIE5ld1RpbWVJbkVwb2NoZSA9PiAkUGFyYW17TmV3VGltZUluRXBvY2hlfSAtICRXb3JrT3JkZXJMZW5ndGhJblNlY29uZHMsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGdldCBuZXcgdmFsdWUKICAgICAgICAgICAgICAgICREYXRheyJQbGFubmVkJHtTdWZmaXh9VGltZSJ9ID0gJFNlbGYtPl9Nb3ZlVGltZSgKICAgICAgICAgICAgICAgICAgICBDdXJyZW50VGltZSA9PiAkRGF0YXsiUGxhbm5lZCR7U3VmZml4fVRpbWUifSwKICAgICAgICAgICAgICAgICAgICBEaWZmZXJlbmNlICA9PiAkRGlmZmVyZW5jZSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgaWYgKCAkRGF0YXtXb3JrT3JkZXJBZ2VudElEfSApIHsKCiAgICAgICAgIyBDaGVjayBpZiB0aGUgd29ya29yZGVyIGFnZW50IGlzIHN0aWxsIHZhbGlkLCBsZWF2ZSBlbXB0eSBpZiBub3QKICAgICAgICBteSAlVXNlckRhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICREYXRhe1dvcmtPcmRlckFnZW50SUR9LAogICAgICAgICAgICBWYWxpZCAgPT4gMSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkVXNlckRhdGF7VXNlcklEfSApIHsKICAgICAgICAgICAgZGVsZXRlICREYXRhe1dvcmtPcmRlckFnZW50SUR9OwogICAgICAgIH0KICAgIH0KCiAgICAjIG92ZXJyaWRlIHRoZSBjaGFuZ2UgaWQgZnJvbSB0aGUgdGVtcGxhdGUKICAgIG15ICRXb3JrT3JkZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckFkZCgKICAgICAgICAlRGF0YSwKICAgICAgICBOb051bWJlckNhbGMgPT4gJFBhcmFte05vTnVtYmVyQ2FsY30sCiAgICAgICAgQ2hhbmdlSUQgICAgID0+ICRQYXJhbXtDaGFuZ2VJRH0sCiAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBpZiAoICEkV29ya09yZGVySUQgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3QgY3JlYXRlIFdvcmtvcmRlciBmcm9tIFRlbXBsYXRlISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB3ZSBuZWVkIGEgbWFwcGluZyAib2xkIGlkIiB0byAibmV3IGlkIiBmb3IgdGhlIGNvbmRpdGlvbnMKICAgIG15ICRPbGRJRHMyTmV3SURzID0gewogICAgICAgICV7ICRQYXJhbXtPbGRXb3JrT3JkZXJJRHN9IHx8IHt9IH0sCiAgICAgICAgJE9sZFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgIH07CgogICAgbXkgJUluZm8gPSAoCiAgICAgICAgSUQgICAgICAgICAgICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICBXb3JrT3JkZXJJRCAgICAgPT4gJFdvcmtPcmRlcklELAogICAgICAgIENoYW5nZUlEICAgICAgICA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgIE9sZFdvcmtPcmRlcklEcyA9PiAkT2xkSURzMk5ld0lEcywKICAgICk7CgogICAgcmV0dXJuICVJbmZvOwp9Cgo9aGVhZDEgUFJJVkFURSBJTlRFUkZBQ0UKCj1oZWFkMiBfR2V0VGltZURpZmZlcmVuY2UoKQoKSWYgYSBuZXcgcGxhbm5lZCBzdGFydC9lbmQgdGltZSB3YXMgZ2l2ZW4sIHRoZSBkaWZmZXJlbmNlIGlzIG5lZWRlZAp0byBtb3ZlIGFsbCB0aW1lIHZhbHVlcwoKICAgIG15ICREaWZmSW5TZWNvbmRzID0gJFRlbXBsYXRlT2JqZWN0LT5fR2V0VGltZURpZmZlcmVuY2UoCiAgICAgICAgQ3VycmVudFRpbWUgICAgID0+ICcyMDEwLTAxLTEyIDAwOjAwOjAwJywKICAgICAgICBOZXdUaW1lSW5FcG9jaGUgPT4gMTIzNDU2Nzg5MCwKICAgICk7Cgo9Y3V0CgpzdWIgX0dldFRpbWVEaWZmZXJlbmNlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEN1cnJlbnRUaW1lIE5ld1RpbWVJbkVwb2NoZSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgY3VycmVudCB0aW1lIGFzIHRpbWVzdGFtcAogICAgbXkgJEN1cnJlbnRTeXN0ZW1UaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte0N1cnJlbnRUaW1lfSwKICAgICAgICB9CiAgICApLT5Ub0Vwb2NoKCk7CgogICAgbXkgJERpZmZTZWNvbmRzID0gJFBhcmFte05ld1RpbWVJbkVwb2NoZX0gLSAkQ3VycmVudFN5c3RlbVRpbWU7CgogICAgcmV0dXJuICREaWZmU2Vjb25kczsKfQoKPWhlYWQyIF9Nb3ZlVGltZSgpCgpUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBuZXcgdmFsdWUgZm9yIGEgdGltZSBjb2x1bW4gYmFzZWQgb24gdGhlCmRpZmZlcmVuY2UuCgogICAgbXkgJFRpbWVWYWx1ZSA9ICRUZW1wbGF0ZU9iamVjdC0+X01vdmVUaW1lKAogICAgICAgIEN1cnJlbnRUaW1lID0+ICcyMDEwLTAxLTEyIDAwOjAwOjAwJywKICAgICAgICBEaWZmZXJlbmNlICA9PiAxMzUsICAgICAgICAgICAgICAgICAgICAgIyBpbiBzZWNvbmRzCiAgICApOwoKPWN1dAoKc3ViIF9Nb3ZlVGltZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICAjIG5lZWQgdG8gY2hlY2sgZm9yIGRlZmluZWQsIGJlY2F1c2UgMCBpcyBhbGxvd2VkIGZvciBEaWZmZXJlbmNlCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDdXJyZW50VGltZSBEaWZmZXJlbmNlKSkgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGN1cnJlbnQgdGltZSBhcyB0aW1lc3RhbXAKICAgIG15ICRDdXJyZW50U3lzdGVtVGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgU3RyaW5nID0+ICRQYXJhbXtDdXJyZW50VGltZX0sCiAgICAgICAgfSwKICAgICktPlRvRXBvY2goKTsKCiAgICAjIGdldCBwbGFubmVkIHRpbWUgYXMgdGltZXN0YW1wCiAgICBteSAkTmV3VGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgRXBvY2ggPT4gJEN1cnJlbnRTeXN0ZW1UaW1lICsgJFBhcmFte0RpZmZlcmVuY2V9LAogICAgICAgIH0sCiAgICApLT5Ub1N0cmluZygpOwoKICAgIHJldHVybiAkTmV3VGltZTsKfQoKPWhlYWQyIF9BdHRhY2htZW50QWRkKCkKCkNyZWF0ZXMgbmV3IGF0dGFjaG1lbnRzIGZvciBhIGNoYW5nZSBvciBhIEM8d29ya29yZGVyPiBiYXNlZCBvbiB0aGUgZ2l2ZW4gdGVtcGxhdGUuCkl0IHJldHVybnMgYSBoYXNoIG9mIGluZm9ybWF0aW9uICh3aXRoIGp1c3Qgb25lIGtleSAtICJTdWNjZXNzIikKCiAgICBteSAlSW5mbyA9ICRUZW1wbGF0ZU9iamVjdC0+X0F0dGFjaG1lbnRBZGQoCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICMgLi4uIFBhcmFtcyBmb3IgQXR0YWNobWVudEFkZAogICAgICAgIH0sCiAgICAgICAgQ2hhbmdlSUQgPT4gMSwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBfQXR0YWNobWVudEFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgQ2hhbmdlSUQgRGF0YSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBidWlsZCBhIGxvb2t1cCBoYXNoIGZyb20gbmV3IHdvcmtvcmRlciBpZCB0byBvbGQgd29ya29yZGVyIGlkCiAgICBteSAlTmV3V29ya09yZGVySUQyT2xkV29ya09yZGVySUQgPSByZXZlcnNlICV7ICRQYXJhbXtPbGRXb3JrT3JkZXJJRHN9IH07CgogICAgbXkgJE9sZFdvcmtPcmRlcklEID0gJE5ld1dvcmtPcmRlcklEMk9sZFdvcmtPcmRlcklEeyAkUGFyYW17V29ya09yZGVySUR9IH07CgogICAgbXkgJEF0dGFjaG1lbnQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJBdHRhY2htZW50R2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRPbGRXb3JrT3JkZXJJRCwKICAgICAgICBGaWxlbmFtZSAgICA9PiAkUGFyYW17RGF0YX0tPntGaWxlbmFtZX0sCiAgICApOwoKICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyQXR0YWNobWVudEFkZCgKICAgICAgICAleyRBdHRhY2htZW50fSwKICAgICAgICBDaGFuZ2VJRCAgICA9PiAkUGFyYW17Q2hhbmdlSUR9LAogICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtXb3JrT3JkZXJJRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICVJbmZvID0gKAogICAgICAgIFN1Y2Nlc3MgPT4gJFN1Y2Nlc3MsCiAgICApOwoKICAgIHJldHVybiAlSW5mbzsKfQoKPWhlYWQyIF9MaW5rQWRkKCkKCkNyZWF0ZXMgbmV3IGxpbmtzIGZvciBhIGNoYW5nZSBvciBhIEM8d29ya29yZGVyPiBiYXNlZCBvbiB0aGUgZ2l2ZW4gdGVtcGxhdGUuIEl0CnJldHVybnMgYSBoYXNoIG9mIGluZm9ybWF0aW9uICh3aXRoIGp1c3Qgb25lIGtleSAtICJTdWNjZXNzIikKCiAgICBteSAlSW5mbyA9ICRUZW1wbGF0ZU9iamVjdC0+X0xpbmtBZGQoCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICMgLi4uIFBhcmFtcyBmb3IgTGlua0FkZAogICAgICAgIH0sCiAgICAgICAgQ2hhbmdlSUQgICAgPT4gMSwKICAgICAgICBXb3JrT3JkZXJJRCA9PiAxMjMsICMgb3B0aW9uYWwKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBfTGlua0FkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgRGF0YSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFNvdXJjZUtleTsKCiAgICBpZiAoICRQYXJhbXtEYXRhfS0+e1NvdXJjZU9iamVjdH0gZXEgJ0lUU01DaGFuZ2UnICkgewogICAgICAgICRTb3VyY2VLZXkgPSAkUGFyYW17Q2hhbmdlSUR9OwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17RGF0YX0tPntTb3VyY2VPYmplY3R9IGVxICdJVFNNV29ya09yZGVyJyApIHsKICAgICAgICAkU291cmNlS2V5ID0gJFBhcmFte1dvcmtPcmRlcklEfTsKICAgIH0KCiAgICBpZiAoICEkU291cmNlS2V5ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBXb3JrT3JkZXJJRCBvciBDaGFuZ2VJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnKS0+TGlua0FkZCgKICAgICAgICAleyAkUGFyYW17RGF0YX0gfSwKICAgICAgICBTb3VyY2VLZXkgPT4gJFNvdXJjZUtleSwKICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICVJbmZvID0gKAogICAgICAgIFN1Y2Nlc3MgPT4gJFN1Y2Nlc3MsCiAgICApOwoKICAgIHJldHVybiAlSW5mbzsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cHM6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
        <File Permission="660" Location="Kernel/System/LinkObject/ITSMChange.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdDo6SVRTTUNoYW5nZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3Q6OklUU01DaGFuZ2UgLSBMaW5rT2JqZWN0IGJhY2tlbmQgZm9yIElUU01DaGFuZ2UKCj1jdXQKCj1oZWFkMiBuZXcoKQoKQ3JlYXRlIGFuIG9iamVjdC4KCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRMaW5rT2JqZWN0SVRTTUNoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0OjpJVFNNQ2hhbmdlJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIExpbmtMaXN0V2l0aERhdGEoKQoKRmlsbCB1cCB0aGUgbGluayBsaXN0IHdpdGggZGF0YQoKICAgICRTdWNjZXNzID0gJExpbmtPYmplY3RCYWNrZW5kLT5MaW5rTGlzdFdpdGhEYXRhKAogICAgICAgIExpbmtMaXN0ID0+ICRIYXNoUmVmLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIExpbmtMaXN0V2l0aERhdGEgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoTGlua0xpc3QgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGxpbmsgbGlzdAogICAgaWYgKCByZWYgJFBhcmFte0xpbmtMaXN0fSBuZSAnSEFTSCcgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdMaW5rTGlzdCBtdXN0IGJlIGEgaGFzaCByZWZlcmVuY2UhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBmb3IgbXkgJExpbmtUeXBlICggc29ydCBrZXlzICV7ICRQYXJhbXtMaW5rTGlzdH0gfSApIHsKCiAgICAgICAgZm9yIG15ICREaXJlY3Rpb24gKCBzb3J0IGtleXMgJXsgJFBhcmFte0xpbmtMaXN0fS0+eyRMaW5rVHlwZX0gfSApIHsKCiAgICAgICAgICAgIENIQU5HRUlEOgogICAgICAgICAgICBmb3IgbXkgJENoYW5nZUlEICggc29ydCBrZXlzICV7ICRQYXJhbXtMaW5rTGlzdH0tPnskTGlua1R5cGV9LT57JERpcmVjdGlvbn0gfSApIHsKCiAgICAgICAgICAgICAgICAjIGdldCBjaGFuZ2UgZGF0YQogICAgICAgICAgICAgICAgbXkgJENoYW5nZURhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VHZXQoCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHJlbW92ZSBpZCBmcm9tIGhhc2ggaWYgQ2hhbmdlR2V0KCkgcmV0dXJucyBubyByZXN1bHRzCiAgICAgICAgICAgICAgICBpZiAoICEkQ2hhbmdlRGF0YSApIHsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgJFBhcmFte0xpbmtMaXN0fS0+eyRMaW5rVHlwZX0tPnskRGlyZWN0aW9ufS0+eyRDaGFuZ2VJRH07CiAgICAgICAgICAgICAgICAgICAgbmV4dCBDSEFOR0VJRDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGFkZCBjaGFuZ2UgZGF0YQogICAgICAgICAgICAgICAgJFBhcmFte0xpbmtMaXN0fS0+eyRMaW5rVHlwZX0tPnskRGlyZWN0aW9ufS0+eyRDaGFuZ2VJRH0gPSAkQ2hhbmdlRGF0YTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIE9iamVjdFBlcm1pc3Npb24oKQoKQ2hlY2tzIHJlYWQgcGVybWlzc2lvbiBmb3IgYSBnaXZlbiBvYmplY3QgYW5kIFVzZXJJRC4KCiAgICAkUGVybWlzc2lvbiA9ICRMaW5rT2JqZWN0LT5PYmplY3RQZXJtaXNzaW9uKAogICAgICAgIE9iamVjdCAgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgIEtleSAgICAgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgT2JqZWN0UGVybWlzc2lvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhPYmplY3QgS2V5IFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgY29uZmlnIG9mIGNoYW5nZSB6b29tIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlWm9vbScpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIENoYW5nZUlEID0+ICRQYXJhbXtLZXl9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gJEFjY2VzczsKfQoKPWhlYWQyIE9iamVjdERlc2NyaXB0aW9uR2V0KCkKClJldHVybiBhIGhhc2ggb2Ygb2JqZWN0IGRlc2NyaXB0aW9ucy4KClJldHVybgogICAgJURlc2NyaXB0aW9uID0gKAogICAgICAgIE5vcm1hbCA9PiAiQ2hhbmdlIyAyMDA5MTAyMTEwMDAxNjc0IiwKICAgICAgICBMb25nICAgPT4gIkNoYW5nZSMgMjAwOTEwMjExMDAwMTY3NDogVGhlIENoYW5nZSBUaXRsZSIsCiAgICApOwoKICAgICVEZXNjcmlwdGlvbiA9ICRMaW5rT2JqZWN0LT5PYmplY3REZXNjcmlwdGlvbkdldCgKICAgICAgICBLZXkgICAgID0+IDEyMywKICAgICAgICBVc2VySUQgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIE9iamVjdERlc2NyaXB0aW9uR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE9iamVjdCBLZXkgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNyZWF0ZSBkZXNjcmlwdGlvbgogICAgbXkgJURlc2NyaXB0aW9uID0gKAogICAgICAgIE5vcm1hbCA9PiAnQ2hhbmdlJywKICAgICAgICBMb25nICAgPT4gJ0NoYW5nZScsCiAgICApOwoKICAgIHJldHVybiAlRGVzY3JpcHRpb24gaWYgJFBhcmFte01vZGV9ICYmICRQYXJhbXtNb2RlfSBlcSAnVGVtcG9yYXJ5JzsKCiAgICAjIGdldCBjaGFuZ2UgZGF0YQogICAgbXkgJENoYW5nZURhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0tleX0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiBpZiAhJENoYW5nZURhdGE7CiAgICByZXR1cm4gaWYgISV7JENoYW5nZURhdGF9OwoKICAgICMgZGVmaW5lIGRlc2NyaXB0aW9uIHRleHQKICAgIG15ICRDaGFuZ2VIb29rICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0lUU01DaGFuZ2U6Okhvb2snKTsKICAgIG15ICREZXNjcmlwdGlvblRleHQgPSAiJENoYW5nZUhvb2sgJENoYW5nZURhdGEtPntDaGFuZ2VOdW1iZXJ9IjsKCiAgICAjIGNyZWF0ZSBkZXNjcmlwdGlvbgogICAgJURlc2NyaXB0aW9uID0gKAogICAgICAgIE5vcm1hbCA9PiAkRGVzY3JpcHRpb25UZXh0LAogICAgICAgIExvbmcgICA9PiAiJERlc2NyaXB0aW9uVGV4dDogJENoYW5nZURhdGEtPntDaGFuZ2VUaXRsZX0iLAogICAgKTsKCiAgICByZXR1cm4gJURlc2NyaXB0aW9uOwp9Cgo9aGVhZDIgT2JqZWN0U2VhcmNoKCkKClJldHVybiBhIGhhc2ggbGlzdCBvZiB0aGUgc2VhcmNoIHJlc3VsdHMuCgogICAgJFNlYXJjaExpc3QgPSAkTGlua09iamVjdEJhY2tlbmQtPk9iamVjdFNlYXJjaCgKICAgICAgICBTZWFyY2hQYXJhbXMgPT4gJEhhc2hSZWYsICAgICMgKG9wdGlvbmFsKQogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKCiAgICAkU2VhcmNoTGlzdCA9IHsKICAgICAgICBOT1RMSU5LRUQgPT4gewogICAgICAgICAgICBTb3VyY2UgPT4gewogICAgICAgICAgICAgICAgMTIgID0+ICREYXRhT2ZJdGVtMTIsCiAgICAgICAgICAgICAgICAyMTIgPT4gJERhdGFPZkl0ZW0yMTIsCiAgICAgICAgICAgICAgICAzMzIgPT4gJERhdGFPZkl0ZW0zMzIsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH07Cgo9Y3V0CgpzdWIgT2JqZWN0U2VhcmNoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBVc2VySUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCBkZWZhdWx0IHBhcmFtcwogICAgJFBhcmFte1NlYXJjaFBhcmFtc30gfHw9IHt9OwoKICAgICMgYWRkIHdpbGRjYXJkcwogICAgbXkgJVNlYXJjaDsKICAgIGZvciBteSAkRWxlbWVudCAocXcoQ2hhbmdlTnVtYmVyIENoYW5nZVRpdGxlIFdvcmtPcmRlclRpdGxlKSkgewogICAgICAgIGlmICggJFBhcmFte1NlYXJjaFBhcmFtc30tPnskRWxlbWVudH0gKSB7CiAgICAgICAgICAgICRTZWFyY2h7JEVsZW1lbnR9ID0gJyonIC4gJFBhcmFte1NlYXJjaFBhcmFtc30tPnskRWxlbWVudH0gLiAnKic7CiAgICAgICAgfQogICAgfQoKICAgICMgc2VhcmNoIHRoZSBjaGFuZ2VzCiAgICAjIG5vIG5lZWQgdG8gdXNlIE9yZGVyQnkgaGVyZSwgYmVjYXVzZSBpdCBpcyBzb3J0ZWQgaW4gVGFibGVDcmVhdGVDb21wbGV4IGFuZCBUYWJsZUNyZWF0ZVNpbXBsZQogICAgbXkgJENoYW5nZUlEc1JlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZVNlYXJjaCgKICAgICAgICAleyAkUGFyYW17U2VhcmNoUGFyYW1zfSB9LAogICAgICAgICVTZWFyY2gsCiAgICAgICAgVXNpbmdXaWxkY2FyZHMgPT4gMSwKICAgICAgICBNaXJyb3JEQiAgICAgICA9PiAxLAoKICAgICAgICAjIFRPRE86CiAgICAgICAgIyB1c2Ugc3lzY29uZmlnIG9wdGlvbiBmb3IgJ2xpbWl0JyBpbnN0ZWFkLCBkZWNpZGUgd2hlYXRlciB0aGlzIG9wdGlvbiB3b3VsZCBiZSBvbmx5CiAgICAgICAgIyB2YWxpZCBmb3IgbGlua2luZyBjaGFuZ2VzLCBvciBqdXN0IHVzZSBhIGdsb2JhbCBzZXR0aW5nIGZvciBhbGwgbGlua2luZyBzdHVmZgogICAgICAgIExpbWl0ID0+IDIwMCwKCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBteSAlU2VhcmNoTGlzdDsKICAgIENIQU5HRUlEOgogICAgZm9yIG15ICRDaGFuZ2VJRCAoIEB7JENoYW5nZUlEc1JlZn0gKSB7CgogICAgICAgICMgZ2V0IGNoYW5nZSBkYXRhCiAgICAgICAgbXkgJENoYW5nZURhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VHZXQoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBDaGFuZ2VJRCBpZiAhJENoYW5nZURhdGE7CgogICAgICAgICMgYWRkIGNoYW5nZSBkYXRhCiAgICAgICAgJFNlYXJjaExpc3R7Tk9UTElOS0VEfS0+e1NvdXJjZX0tPnskQ2hhbmdlSUR9ID0gJENoYW5nZURhdGE7CiAgICB9CgogICAgcmV0dXJuIFwlU2VhcmNoTGlzdDsKfQoKPWhlYWQyIExpbmtBZGRQcmUoKQoKTGluayBhZGQgcHJlIGV2ZW50IG1vZHVsZS4KCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rQWRkUHJlKAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgU291cmNlT2JqZWN0ID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBTb3VyY2VLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7CgogICAgb3IKCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rQWRkUHJlKAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgVGFyZ2V0T2JqZWN0ID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBUYXJnZXRLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgTGlua0FkZFByZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhLZXkgVHlwZSBTdGF0ZSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZG8gbm90IHRyaWdnZXIgZXZlbnQgZm9yIHRlbXBvcmFyeSBsaW5rcwogICAgcmV0dXJuIDEgaWYgJFBhcmFte1N0YXRlfSBlcSAnVGVtcG9yYXJ5JzsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIExpbmtBZGRQb3N0KCkKCkxpbmsgYWRkIHByZSBldmVudCBtb2R1bGUuCgogICAgJFRydWUgPSAkTGlua09iamVjdC0+TGlua0FkZFBvc3QoCiAgICAgICAgS2V5ICAgICAgICAgID0+IDEyMywKICAgICAgICBTb3VyY2VPYmplY3QgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgIFNvdXJjZUtleSAgICA9PiAzMjEsCiAgICAgICAgVHlwZSAgICAgICAgID0+ICdOb3JtYWwnLAogICAgICAgIFN0YXRlICAgICAgICA9PiAnVmFsaWQnLAogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKCiAgICBvcgoKICAgICRUcnVlID0gJExpbmtPYmplY3QtPkxpbmtBZGRQb3N0KAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgVGFyZ2V0T2JqZWN0ID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBUYXJnZXRLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgTGlua0FkZFBvc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoS2V5IFR5cGUgU3RhdGUgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRvIG5vdCB0cmlnZ2VyIGV2ZW50IGZvciB0ZW1wb3JhcnkgbGlua3MKICAgIHJldHVybiAxIGlmICRQYXJhbXtTdGF0ZX0gZXEgJ1RlbXBvcmFyeSc7CgogICAgIyBnZXQgaW5mb3JtYXRpb24gYWJvdXQgbGlua2VkIG9iamVjdAogICAgbXkgJElEICAgICA9ICRQYXJhbXtUYXJnZXRLZXl9ICAgIHx8ICRQYXJhbXtTb3VyY2VLZXl9OwogICAgbXkgJE9iamVjdCA9ICRQYXJhbXtUYXJnZXRPYmplY3R9IHx8ICRQYXJhbXtTb3VyY2VPYmplY3R9OwoKICAgICMgdHJpZ2dlciBDaGFuZ2VMaW5rQWRkUG9zdC1FdmVudAogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdDaGFuZ2VMaW5rQWRkUG9zdCcsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkUGFyYW17S2V5fSwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJE9iamVjdCwgICAgICAgICAjIHRoZSBvdGhlciBvYmplY3Qgb2YgdGhlIGxpbmsKICAgICAgICAgICAgSUQgICAgICAgPT4gJElELCAgICAgICAgICAgICAjIGlkIG9mIHRoZSBvdGhlciBvYmplY3QKICAgICAgICAgICAgVHlwZSAgICAgPT4gJFBhcmFte1R5cGV9LCAgICAjIHRoZSBsaW5rIHR5cGUKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIExpbmtEZWxldGVQcmUoKQoKTGluayBkZWxldGUgcHJlIGV2ZW50IG1vZHVsZS4KCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rRGVsZXRlUHJlKAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgU291cmNlT2JqZWN0ID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBTb3VyY2VLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7CgogICAgb3IKCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rRGVsZXRlUHJlKAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgVGFyZ2V0T2JqZWN0ID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBUYXJnZXRLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgTGlua0RlbGV0ZVByZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhLZXkgVHlwZSBTdGF0ZSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZG8gbm90IHRyaWdnZXIgZXZlbnQgZm9yIHRlbXBvcmFyeSBsaW5rcwogICAgcmV0dXJuIDEgaWYgJFBhcmFte1N0YXRlfSBlcSAnVGVtcG9yYXJ5JzsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIExpbmtEZWxldGVQb3N0KCkKCkxpbmsgZGVsZXRlIHBvc3QgZXZlbnQgbW9kdWxlLgoKICAgICRUcnVlID0gJExpbmtPYmplY3QtPkxpbmtEZWxldGVQb3N0KAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgU291cmNlT2JqZWN0ID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBTb3VyY2VLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7CgogICAgb3IKCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rRGVsZXRlUG9zdCgKICAgICAgICBLZXkgICAgICAgICAgPT4gMTIzLAogICAgICAgIFRhcmdldE9iamVjdCA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgVGFyZ2V0S2V5ICAgID0+IDMyMSwKICAgICAgICBUeXBlICAgICAgICAgPT4gJ05vcm1hbCcsCiAgICAgICAgU3RhdGUgICAgICAgID0+ICdWYWxpZCcsCiAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIExpbmtEZWxldGVQb3N0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEtleSBUeXBlIFN0YXRlIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBkbyBub3QgdHJpZ2dlciBldmVudCBmb3IgdGVtcG9yYXJ5IGxpbmtzCiAgICByZXR1cm4gMSBpZiAkUGFyYW17U3RhdGV9IGVxICdUZW1wb3JhcnknOwoKICAgICMgZ2V0IGluZm9ybWF0aW9uIGFib3V0IGxpbmtlZCBvYmplY3QKICAgIG15ICRJRCAgICAgPSAkUGFyYW17VGFyZ2V0S2V5fSAgICB8fCAkUGFyYW17U291cmNlS2V5fTsKICAgIG15ICRPYmplY3QgPSAkUGFyYW17VGFyZ2V0T2JqZWN0fSB8fCAkUGFyYW17U291cmNlT2JqZWN0fTsKCiAgICAjIHRyaWdnZXIgQ2hhbmdlTGlua0RlbGV0ZVBvc3QtRXZlbnQKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnQ2hhbmdlTGlua0RlbGV0ZVBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0tleX0sCiAgICAgICAgICAgIE9iamVjdCAgID0+ICRPYmplY3QsICAgICAgICAgIyB0aGUgb3RoZXIgb2JqZWN0IG9mIHRoZSBsaW5rCiAgICAgICAgICAgIElEICAgICAgID0+ICRJRCwgICAgICAgICAgICAgIyBpZCBvZiB0aGUgb3RoZXIgb2JqZWN0CiAgICAgICAgICAgIFR5cGUgICAgID0+ICRQYXJhbXtUeXBlfSwgICAgIyB0aGUgbGluayB0eXBlCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Permission="660" Location="Kernel/System/LinkObject/ITSMWorkOrder.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdDo6SVRTTVdvcmtPcmRlcjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0OjpJVFNNV29ya09yZGVyIC0gTGlua09iamVjdCBJVFNNV29ya09yZGVyIG1vZHVsZQoKPWN1dAoKPWhlYWQyIG5ldygpCgpDcmVhdGUgYW4gb2JqZWN0LgoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJExpbmtPYmplY3RJVFNNV29ya09yZGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3Q6OklUU01Xb3JrT3JkZXInKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgTGlua0xpc3RXaXRoRGF0YSgpCgpGaWxsIHVwIHRoZSBsaW5rIGxpc3Qgd2l0aCBkYXRhLgoKICAgICRTdWNjZXNzID0gJExpbmtPYmplY3RCYWNrZW5kLT5MaW5rTGlzdFdpdGhEYXRhKAogICAgICAgIExpbmtMaXN0ID0+ICRIYXNoUmVmLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIExpbmtMaXN0V2l0aERhdGEgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoTGlua0xpc3QgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGxpbmsgbGlzdAogICAgaWYgKCByZWYgJFBhcmFte0xpbmtMaXN0fSBuZSAnSEFTSCcgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdMaW5rTGlzdCBtdXN0IGJlIGEgaGFzaCByZWZlcmVuY2UhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBmb3IgbXkgJExpbmtUeXBlICggc29ydCBrZXlzICV7ICRQYXJhbXtMaW5rTGlzdH0gfSApIHsKCiAgICAgICAgZm9yIG15ICREaXJlY3Rpb24gKCBzb3J0IGtleXMgJXsgJFBhcmFte0xpbmtMaXN0fS0+eyRMaW5rVHlwZX0gfSApIHsKCiAgICAgICAgICAgIFdPUktPUkRFUklEOgogICAgICAgICAgICBmb3IgbXkgJFdvcmtPcmRlcklEICggc29ydCBrZXlzICV7ICRQYXJhbXtMaW5rTGlzdH0tPnskTGlua1R5cGV9LT57JERpcmVjdGlvbn0gfSApIHsKCiAgICAgICAgICAgICAgICAjIGdldCB3b3Jrb3JkZXIgZGF0YQogICAgICAgICAgICAgICAgbXkgJFdvcmtPcmRlckRhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHJlbW92ZSBpZCBmcm9tIGhhc2ggaWYgV29ya09yZGVyR2V0KCkgcmV0dXJucyBubyByZXN1bHRzCiAgICAgICAgICAgICAgICBpZiAoICEkV29ya09yZGVyRGF0YSApIHsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgJFBhcmFte0xpbmtMaXN0fS0+eyRMaW5rVHlwZX0tPnskRGlyZWN0aW9ufS0+eyRXb3JrT3JkZXJJRH07CiAgICAgICAgICAgICAgICAgICAgbmV4dCBXT1JLT1JERVJJRDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGdldCBjaGFuZ2UgZGF0YSBmb3IgdGhpcyB3b3Jrb3JkZXIKICAgICAgICAgICAgICAgIG15ICRDaGFuZ2VEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlR2V0KAogICAgICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRXb3JrT3JkZXJEYXRhLT57Q2hhbmdlSUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHJlbW92ZSB3b3Jrb3JkZXIgaWQgZnJvbSBoYXNoIGlmIGNoYW5nZSBmb3IgdGhpcyB3b3Jrb3JkZXIgcmV0dXJucyBubyByZXN1bHRzCiAgICAgICAgICAgICAgICBpZiAoICEkQ2hhbmdlRGF0YSApIHsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgJFBhcmFte0xpbmtMaXN0fS0+eyRMaW5rVHlwZX0tPnskRGlyZWN0aW9ufS0+eyRXb3JrT3JkZXJJRH07CiAgICAgICAgICAgICAgICAgICAgbmV4dCBXT1JLT1JERVJJRDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGFkZCB0aGUgY2hhbmdlIGRhdGEgdG8gd29ya29yZGVyIGRhdGEKICAgICAgICAgICAgICAgIG15ICVEYXRhID0gKAogICAgICAgICAgICAgICAgICAgICV7JFdvcmtPcmRlckRhdGF9LAogICAgICAgICAgICAgICAgICAgIENoYW5nZURhdGEgPT4gJENoYW5nZURhdGEsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgYWRkIHdvcmtvcmRlciBkYXRhCiAgICAgICAgICAgICAgICAkUGFyYW17TGlua0xpc3R9LT57JExpbmtUeXBlfS0+eyREaXJlY3Rpb259LT57JFdvcmtPcmRlcklEfSA9IFwlRGF0YTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIE9iamVjdFBlcm1pc3Npb24oKQoKQ2hlY2tzIHJlYWQgcGVybWlzc2lvbiBmb3IgYSBnaXZlbiBvYmplY3QgYW5kIFVzZXJJRC4KCiAgICAkUGVybWlzc2lvbiA9ICRMaW5rT2JqZWN0LT5PYmplY3RQZXJtaXNzaW9uKAogICAgICAgIE9iamVjdCAgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgIEtleSAgICAgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgT2JqZWN0UGVybWlzc2lvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhPYmplY3QgS2V5IFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgY29uZmlnIG9mIHdvcmtvcmRlciB6b29tIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyWm9vbScpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5QZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtLZXl9LAogICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gJEFjY2VzczsKfQoKPWhlYWQyIE9iamVjdERlc2NyaXB0aW9uR2V0KCkKClJldHVybiBhIGhhc2ggb2Ygb2JqZWN0IGRlc2NyaXB0aW9ucy4KCiAgICAlRGVzY3JpcHRpb24gPSAkTGlua09iamVjdC0+T2JqZWN0RGVzY3JpcHRpb25HZXQoCiAgICAgICAgS2V5ICAgICA9PiAxMjMsCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgKTsKCiAgICAlRGVzY3JpcHRpb24gPSAoCiAgICAgICAgTm9ybWFsID0+ICJXb3Jrb3JkZXIjIDIwMDkxMDIxMTAwMDE2NzQtMSIsCiAgICAgICAgTG9uZyAgID0+ICJXb3Jrb3JkZXIjIDIwMDkxMDIxMTAwMDE2NzQtMTogVGhlIFdvcmtvcmRlciBUaXRsZSIsCiAgICApOwoKCj1jdXQKCnN1YiBPYmplY3REZXNjcmlwdGlvbkdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhPYmplY3QgS2V5IFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgZGVzY3JpcHRpb24KICAgIG15ICVEZXNjcmlwdGlvbiA9ICgKICAgICAgICBOb3JtYWwgPT4gJ1dvcmtvcmRlcicsCiAgICAgICAgTG9uZyAgID0+ICdXb3Jrb3JkZXInLAogICAgKTsKCiAgICByZXR1cm4gJURlc2NyaXB0aW9uIGlmICRQYXJhbXtNb2RlfSAmJiAkUGFyYW17TW9kZX0gZXEgJ1RlbXBvcmFyeSc7CgogICAgIyBnZXQgd29ya29yZGVyIGRhdGEKICAgIG15ICRXb3JrT3JkZXJEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRQYXJhbXtLZXl9LAogICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gaWYgISRXb3JrT3JkZXJEYXRhOwogICAgcmV0dXJuIGlmICEleyRXb3JrT3JkZXJEYXRhfTsKCiAgICAjIGdldCBjaGFuZ2UgZGF0YSBmb3IgdGhpcyB3b3Jrb3JkZXIKICAgIG15ICRDaGFuZ2VEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRXb3JrT3JkZXJEYXRhLT57Q2hhbmdlSUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gaWYgISRDaGFuZ2VEYXRhOwogICAgcmV0dXJuIGlmICEleyRDaGFuZ2VEYXRhfTsKCiAgICAjIGRlZmluZSBkZXNjcmlwdGlvbiB0ZXh0CiAgICBteSAkV29ya09yZGVySG9vayAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdJVFNNV29ya09yZGVyOjpIb29rJyk7CiAgICBteSAkRGVzY3JpcHRpb25UZXh0ID0gIiRXb3JrT3JkZXJIb29rICRDaGFuZ2VEYXRhLT57Q2hhbmdlTnVtYmVyfS0kV29ya09yZGVyRGF0YS0+e1dvcmtPcmRlck51bWJlcn0iOwoKICAgICMgY3JlYXRlIGRlc2NyaXB0aW9uCiAgICAlRGVzY3JpcHRpb24gPSAoCiAgICAgICAgTm9ybWFsID0+ICREZXNjcmlwdGlvblRleHQsCiAgICAgICAgTG9uZyAgID0+ICIkRGVzY3JpcHRpb25UZXh0OiAkV29ya09yZGVyRGF0YS0+e1dvcmtPcmRlclRpdGxlfSIsCiAgICApOwoKICAgIHJldHVybiAlRGVzY3JpcHRpb247Cn0KCj1oZWFkMiBPYmplY3RTZWFyY2goKQoKUmV0dXJuIGEgaGFzaCBsaXN0IG9mIHRoZSBzZWFyY2ggcmVzdWx0cy4KCiAgICAkU2VhcmNoTGlzdCA9ICRMaW5rT2JqZWN0QmFja2VuZC0+T2JqZWN0U2VhcmNoKAogICAgICAgIFNlYXJjaFBhcmFtcyA9PiAkSGFzaFJlZiwgICAgIyAob3B0aW9uYWwpCiAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICApOwoKICAgICRTZWFyY2hMaXN0ID0gewogICAgICAgIE5PVExJTktFRCA9PiB7CiAgICAgICAgICAgIFNvdXJjZSA9PiB7CiAgICAgICAgICAgICAgICAxMiAgPT4gJERhdGFPZkl0ZW0xMiwKICAgICAgICAgICAgICAgIDIxMiA9PiAkRGF0YU9mSXRlbTIxMiwKICAgICAgICAgICAgICAgIDMzMiA9PiAkRGF0YU9mSXRlbTMzMiwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfTsKCj1jdXQKCnN1YiBPYmplY3RTZWFyY2ggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFVzZXJJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2V0IGRlZmF1bHQgcGFyYW1zCiAgICAkUGFyYW17U2VhcmNoUGFyYW1zfSB8fD0ge307CgogICAgIyBhZGQgd2lsZGNhcmRzCiAgICBteSAlU2VhcmNoOwogICAgZm9yIG15ICRFbGVtZW50IChxdyhDaGFuZ2VOdW1iZXIgQ2hhbmdlVGl0bGUgV29ya09yZGVyVGl0bGUpKSB7CiAgICAgICAgaWYgKCAkUGFyYW17U2VhcmNoUGFyYW1zfS0+eyRFbGVtZW50fSApIHsKICAgICAgICAgICAgJFNlYXJjaHskRWxlbWVudH0gPSAnKicgLiAkUGFyYW17U2VhcmNoUGFyYW1zfS0+eyRFbGVtZW50fSAuICcqJzsKICAgICAgICB9CiAgICB9CgogICAgIyBzZWFyY2ggdGhlIHdvcmtvcmRlcnMKICAgICMgbm8gbmVlZCB0byB1c2UgT3JkZXJCeSBoZXJlLCBiZWNhdXNlIGl0IGlzIHNvcnRlZCBpbiBUYWJsZUNyZWF0ZUNvbXBsZXggYW5kIFRhYmxlQ3JlYXRTaW1wbGUKICAgIG15ICRXb3JrT3JkZXJJRHNSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJTZWFyY2goCiAgICAgICAgJXsgJFBhcmFte1NlYXJjaFBhcmFtc30gfSwKICAgICAgICAlU2VhcmNoLAogICAgICAgIFVzaW5nV2lsZGNhcmRzID0+IDEsCiAgICAgICAgTWlycm9yREIgICAgICAgPT4gMSwKCiAgICAgICAgIyBUT0RPOgogICAgICAgICMgdXNlIHN5c2NvbmZpZyBvcHRpb24gZm9yICdsaW1pdCcgaW5zdGVhZCwgZGVjaWRlIHdoZWF0ZXIgdGhpcyBvcHRpb24gd291bGQgYmUgb25seQogICAgICAgICMgdmFsaWQgZm9yIGxpbmtpbmcgd29ya29yZGVycywgb3IganVzdCB1c2UgYSBnbG9iYWwgc2V0dGluZyBmb3IgYWxsIGxpbmtpbmcgc3R1ZmYKICAgICAgICBMaW1pdCA9PiAyMDAsCgogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgbXkgJVNlYXJjaExpc3Q7CiAgICBXT1JLT1JERVJJRDoKICAgIGZvciBteSAkV29ya09yZGVySUQgKCBAeyRXb3JrT3JkZXJJRHNSZWZ9ICkgewoKICAgICAgICAjIGdldCB3b3Jrb3JkZXIgZGF0YQogICAgICAgIG15ICRXb3JrT3JkZXJEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyR2V0KAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG5leHQgV09SS09SREVSSUQgaWYgISRXb3JrT3JkZXJEYXRhOwoKICAgICAgICAjIGdldCBjaGFuZ2UgZGF0YSBmb3IgdGhpcyB3b3Jrb3JkZXIKICAgICAgICBteSAkQ2hhbmdlRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZUdldCgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckRhdGEtPntDaGFuZ2VJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG5leHQgV09SS09SREVSSUQgaWYgISRDaGFuZ2VEYXRhOwoKICAgICAgICAjIGFkZCB0aGUgY2hhbmdlIGRhdGEgdG8gd29ya29yZGVyIGRhdGEKICAgICAgICBteSAlRGF0YSA9ICgKICAgICAgICAgICAgJXskV29ya09yZGVyRGF0YX0sCiAgICAgICAgICAgIENoYW5nZURhdGEgPT4gJENoYW5nZURhdGEsCiAgICAgICAgKTsKCiAgICAgICAgIyBhZGQgd29ya29yZGVyIGRhdGEKICAgICAgICAkU2VhcmNoTGlzdHtOT1RMSU5LRUR9LT57U291cmNlfS0+eyRXb3JrT3JkZXJJRH0gPSBcJURhdGE7CiAgICB9CgogICAgcmV0dXJuIFwlU2VhcmNoTGlzdDsKfQoKPWhlYWQyIExpbmtBZGRQcmUoKQoKTGluayBhZGQgcHJlIGV2ZW50IG1vZHVsZS4KCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rQWRkUHJlKAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgU291cmNlT2JqZWN0ID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICBTb3VyY2VLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7CgogICAgb3IKCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rQWRkUHJlKAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgVGFyZ2V0T2JqZWN0ID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICBUYXJnZXRLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgTGlua0FkZFByZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhLZXkgVHlwZSBTdGF0ZSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZG8gbm90IHRyaWdnZXIgZXZlbnQgZm9yIHRlbXBvcmFyeSBsaW5rcwogICAgcmV0dXJuIDEgaWYgJFBhcmFte1N0YXRlfSBlcSAnVGVtcG9yYXJ5JzsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIExpbmtBZGRQb3N0KCkKCkxpbmsgYWRkIHByZSBldmVudCBtb2R1bGUuCgogICAgJFRydWUgPSAkTGlua09iamVjdC0+TGlua0FkZFBvc3QoCiAgICAgICAgS2V5ICAgICAgICAgID0+IDEyMywKICAgICAgICBTb3VyY2VPYmplY3QgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgIFNvdXJjZUtleSAgICA9PiAzMjEsCiAgICAgICAgVHlwZSAgICAgICAgID0+ICdOb3JtYWwnLAogICAgICAgIFN0YXRlICAgICAgICA9PiAnVmFsaWQnLAogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKCiAgICBvcgoKICAgICRUcnVlID0gJExpbmtPYmplY3QtPkxpbmtBZGRQb3N0KAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgVGFyZ2V0T2JqZWN0ID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICBUYXJnZXRLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgTGlua0FkZFBvc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoS2V5IFR5cGUgU3RhdGUgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRvIG5vdCB0cmlnZ2VyIGV2ZW50IGZvciB0ZW1wb3JhcnkgbGlua3MKICAgIHJldHVybiAxIGlmICRQYXJhbXtTdGF0ZX0gZXEgJ1RlbXBvcmFyeSc7CgogICAgIyBnZXQgaW5mb3JtYXRpb24gYWJvdXQgbGlua2VkIG9iamVjdAogICAgbXkgJElEICAgICA9ICRQYXJhbXtUYXJnZXRLZXl9ICAgIHx8ICRQYXJhbXtTb3VyY2VLZXl9OwogICAgbXkgJE9iamVjdCA9ICRQYXJhbXtUYXJnZXRPYmplY3R9IHx8ICRQYXJhbXtTb3VyY2VPYmplY3R9OwoKICAgICMgdHJpZ2dlciBXb3JrT3JkZXJMaW5rQWRkUG9zdC1FdmVudAogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdXb3JrT3JkZXJMaW5rQWRkUG9zdCcsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkUGFyYW17S2V5fSwKICAgICAgICAgICAgT2JqZWN0ICAgICAgPT4gJE9iamVjdCwgICAgICAgICAjIHRoZSBvdGhlciBvYmplY3Qgb2YgdGhlIGxpbmsKICAgICAgICAgICAgSUQgICAgICAgICAgPT4gJElELCAgICAgICAgICAgICAjIGlkIG9mIHRoZSBvdGhlciBvYmplY3QKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJFBhcmFte1R5cGV9LCAgICAjIHRoZSBsaW5rIHR5cGUKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIExpbmtEZWxldGVQcmUoKQoKTGluayBkZWxldGUgcHJlIGV2ZW50IG1vZHVsZS4KCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rRGVsZXRlUHJlKAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgU291cmNlT2JqZWN0ID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICBTb3VyY2VLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7CgogICAgb3IKCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rRGVsZXRlUHJlKAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgVGFyZ2V0T2JqZWN0ID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICBUYXJnZXRLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgTGlua0RlbGV0ZVByZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhLZXkgVHlwZSBTdGF0ZSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZG8gbm90IHRyaWdnZXIgZXZlbnQgZm9yIHRlbXBvcmFyeSBsaW5rcwogICAgcmV0dXJuIDEgaWYgJFBhcmFte1N0YXRlfSBlcSAnVGVtcG9yYXJ5JzsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIExpbmtEZWxldGVQb3N0KCkKCkxpbmsgZGVsZXRlIHBvc3QgZXZlbnQgbW9kdWxlLgoKICAgICRUcnVlID0gJExpbmtPYmplY3QtPkxpbmtEZWxldGVQb3N0KAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgU291cmNlT2JqZWN0ID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICBTb3VyY2VLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7CgogICAgb3IKCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rRGVsZXRlUG9zdCgKICAgICAgICBLZXkgICAgICAgICAgPT4gMTIzLAogICAgICAgIFRhcmdldE9iamVjdCA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgVGFyZ2V0S2V5ICAgID0+IDMyMSwKICAgICAgICBUeXBlICAgICAgICAgPT4gJ05vcm1hbCcsCiAgICAgICAgU3RhdGUgICAgICAgID0+ICdWYWxpZCcsCiAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIExpbmtEZWxldGVQb3N0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEtleSBUeXBlIFN0YXRlIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBkbyBub3QgdHJpZ2dlciBldmVudCBmb3IgdGVtcG9yYXJ5IGxpbmtzCiAgICByZXR1cm4gMSBpZiAkUGFyYW17U3RhdGV9IGVxICdUZW1wb3JhcnknOwoKICAgICMgZ2V0IGluZm9ybWF0aW9uIGFib3V0IGxpbmtlZCBvYmplY3QKICAgIG15ICRJRCAgICAgPSAkUGFyYW17VGFyZ2V0S2V5fSAgICB8fCAkUGFyYW17U291cmNlS2V5fTsKICAgIG15ICRPYmplY3QgPSAkUGFyYW17VGFyZ2V0T2JqZWN0fSB8fCAkUGFyYW17U291cmNlT2JqZWN0fTsKCiAgICAjIHRyaWdnZXIgV29ya09yZGVyTGlua0RlbGV0ZVBvc3QtRXZlbnQKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPkV2ZW50SGFuZGxlcigKICAgICAgICBFdmVudCA9PiAnV29ya09yZGVyTGlua0RlbGV0ZVBvc3QnLAogICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFBhcmFte0tleX0sCiAgICAgICAgICAgIE9iamVjdCAgICAgID0+ICRPYmplY3QsICAgICAgICAgIyB0aGUgb3RoZXIgb2JqZWN0IG9mIHRoZSBsaW5rCiAgICAgICAgICAgIElEICAgICAgICAgID0+ICRJRCwgICAgICAgICAgICAgIyBpZCBvZiB0aGUgb3RoZXIgb2JqZWN0CiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICRQYXJhbXtUeXBlfSwgICAgIyB0aGUgbGluayB0eXBlCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Permission="660" Location="Kernel/System/Stats/Dynamic/ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6U3RhdHM6OkR5bmFtaWM6OklUU01DaGFuZ2VNYW5hZ2VtZW50OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgY2hhbmdlIG9iamVjdAogICAgJFNlbGYtPntEeW5hbWljRmllbGR9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlID0+IFsnSVRTTUNIYW5nZSddLAogICAgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBHZXRPYmplY3ROYW1lIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuICdJVFNNQ2hhbmdlTWFuYWdlbWVudCc7Cn0KCnN1YiBHZXRPYmplY3RCZWhhdmlvdXJzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUJlaGF2aW91cnMgPSAoCiAgICAgICAgUHJvdmlkZXNEYXNoYm9hcmRXaWRnZXQgPT4gMSwKICAgICk7CgogICAgcmV0dXJuICVCZWhhdmlvdXJzOwp9CgpzdWIgR2V0T2JqZWN0QXR0cmlidXRlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNoYW5nZSBzdGF0ZSBsaXN0CiAgICBteSAkQ2hhbmdlU3RhdGVzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlUG9zc2libGVTdGF0ZXNHZXQoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwogICAgbXkgJUNoYW5nZVN0YXRlTGlzdCA9IG1hcCB7ICRfLT57S2V5fSA9PiAkXy0+e1ZhbHVlfSB9IEB7JENoYW5nZVN0YXRlc307CgogICAgIyBnZXQgY2lwIGxpc3RzCiAgICBteSAkQ2F0ZWdvcmllcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZVBvc3NpYmxlQ0lQR2V0KAogICAgICAgIFR5cGUgICA9PiAnQ2F0ZWdvcnknLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKICAgIG15ICVDYXRlZ29yeUxpc3QgPSBtYXAgeyAkXy0+e0tleX0gPT4gJF8tPntWYWx1ZX0gfSBAeyRDYXRlZ29yaWVzfTsKCiAgICBteSAkSW1wYWN0cyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZVBvc3NpYmxlQ0lQR2V0KAogICAgICAgIFR5cGUgICA9PiAnSW1wYWN0JywKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICBteSAlSW1wYWN0TGlzdCA9IG1hcCB7ICRfLT57S2V5fSA9PiAkXy0+e1ZhbHVlfSB9IEB7JEltcGFjdHN9OwoKICAgIG15ICRQcmlvcml0aWVzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlUG9zc2libGVDSVBHZXQoCiAgICAgICAgVHlwZSAgID0+ICdQcmlvcml0eScsCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwogICAgbXkgJVByaW9yaXR5TGlzdCA9IG1hcCB7ICRfLT57S2V5fSA9PiAkXy0+e1ZhbHVlfSB9IEB7JFByaW9yaXRpZXN9OwoKICAgICMgZ2V0IGN1cnJlbnQgdGltZSB0byBmaXggYnVnIzQ4NzAKICAgIG15ICRUb2RheSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpLT5Gb3JtYXQoIEZvcm1hdCA9PiAnJVktJW0tJWQgMjM6NTk6NTknICk7CgogICAgbXkgQE9iamVjdEF0dHJpYnV0ZXMgPSAoCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICdDaGFuZ2UgU3RhdGUnLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMSwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAxLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdDaGFuZ2VTdGF0ZUlEcycsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ011bHRpU2VsZWN0RmllbGQnLAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+IFwlQ2hhbmdlU3RhdGVMaXN0LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICdDYXRlZ29yeScsCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAxLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ0NhdGVnb3J5SURzJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnTXVsdGlTZWxlY3RGaWVsZCcsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gXCVDYXRlZ29yeUxpc3QsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDEsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnUHJpb3JpdHlJRHMnLAogICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICdNdWx0aVNlbGVjdEZpZWxkJywKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiBcJVByaW9yaXR5TGlzdCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAnSW1wYWN0JywKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDEsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnSW1wYWN0SURzJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnTXVsdGlTZWxlY3RGaWVsZCcsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgICAgPT4gMCwKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiBcJUltcGFjdExpc3QsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJ1RpbWVwZXJpb2QnLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMSwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAxLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdUaW1lUGVyaW9kJywKICAgICAgICAgICAgVGltZVBlcmlvZEZvcm1hdCA9PiAnRGF0ZUlucHV0Rm9ybWF0JywgICAgIyAnRGF0ZUlucHV0Rm9ybWF0TG9uZycsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ1RpbWUnLAogICAgICAgICAgICBUaW1lU3RvcCAgICAgICAgID0+ICRUb2RheSwKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICBUaW1lU3RhcnQgPT4gJ0NyZWF0ZVRpbWVOZXdlckRhdGUnLAogICAgICAgICAgICAgICAgVGltZVN0b3AgID0+ICdDcmVhdGVUaW1lT2xkZXJEYXRlJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGJhY2tlbmQgb2JqZWN0CiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICMgc2tpcCBhbGwgZmllbGRzIG5vdCBkZXNpZ25lZCB0byBiZSBzdXBwb3J0ZWQgYnkgc3RhdGlzdGljcwogICAgICAgIG15ICRJc1N0YXRzQ29uZGl0aW9uID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkhhc0JlaGF2aW9yKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc1N0YXRzQ29uZGl0aW9uJywKICAgICAgICApOwoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzU3RhdHNDb25kaXRpb247CgogICAgICAgIG15ICRQb3NzaWJsZVZhbHVlc0ZpbHRlcjsKCiAgICAgICAgIyBnZXQgZmllbGQgaHRtbAogICAgICAgIG15ICREeW5hbWljRmllbGRTdGF0c1BhcmFtZXRlciA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TdGF0c0ZpZWxkUGFyYW1ldGVyQnVpbGQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzRmlsdGVyID0+ICRQb3NzaWJsZVZhbHVlc0ZpbHRlciwKICAgICAgICApOwoKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRTdGF0c1BhcmFtZXRlcikgKSB7CgogICAgICAgICAgICAjIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKICAgICAgICAgICAgaWYgKCAhJER5bmFtaWNGaWVsZFN0YXRzUGFyYW1ldGVyLT57QmxvY2t9ICkgewogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZFN0YXRzUGFyYW1ldGVyLT57QmxvY2t9ID0gJ0lucHV0RmllbGQnOwogICAgICAgICAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJER5bmFtaWNGaWVsZFN0YXRzUGFyYW1ldGVyLT57VmFsdWVzfSApICkgewogICAgICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRTdGF0c1BhcmFtZXRlci0+e0Jsb2NrfSA9ICdNdWx0aVNlbGVjdEZpZWxkJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCAkRHluYW1pY0ZpZWxkU3RhdHNQYXJhbWV0ZXItPntCbG9ja30gZXEgJ1RpbWUnICkgewoKICAgICAgICAgICAgICAgICMgY3JlYXRlIG9iamVjdCBhdHRyaWJ1dGVzIChkYXRlL3RpbWUgZmllbGRzKQogICAgICAgICAgICAgICAgbXkgJFRpbWVQZXJpb2RGb3JtYXQgPSAkRHluYW1pY0ZpZWxkU3RhdHNQYXJhbWV0ZXItPntUaW1lUGVyaW9kRm9ybWF0fSB8fCAnRGF0ZUlucHV0Rm9ybWF0TG9uZyc7CgogICAgICAgICAgICAgICAgbXkgJU9iamVjdEF0dHJpYnV0ZSA9ICgKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRTdGF0c1BhcmFtZXRlci0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDEsCiAgICAgICAgICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAxLAogICAgICAgICAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFN0YXRzUGFyYW1ldGVyLT57RWxlbWVudH0sCiAgICAgICAgICAgICAgICAgICAgVGltZVBlcmlvZEZvcm1hdCA9PiAkVGltZVBlcmlvZEZvcm1hdCwKICAgICAgICAgICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRTdGF0c1BhcmFtZXRlci0+e0Jsb2NrfSwKICAgICAgICAgICAgICAgICAgICBUaW1lUGVyaW9kRm9ybWF0ID0+ICRUaW1lUGVyaW9kRm9ybWF0LAogICAgICAgICAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBUaW1lU3RhcnQgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRTdGF0c1BhcmFtZXRlci0+e0VsZW1lbnR9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICdfR3JlYXRlclRoYW5FcXVhbHMnLAogICAgICAgICAgICAgICAgICAgICAgICBUaW1lU3RvcCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZFN0YXRzUGFyYW1ldGVyLT57RWxlbWVudH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ19TbWFsbGVyVGhhbkVxdWFscycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBwdXNoIEBPYmplY3RBdHRyaWJ1dGVzLCBcJU9iamVjdEF0dHJpYnV0ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICREeW5hbWljRmllbGRTdGF0c1BhcmFtZXRlci0+e0Jsb2NrfSBlcSAnTXVsdGlTZWxlY3RGaWVsZCcgKSB7CgogICAgICAgICAgICAgICAgIyBjcmVhdGUgb2JqZWN0IGF0dHJpYnV0ZXMgKG11bHRpcGxlIHZhbHVlcykKICAgICAgICAgICAgICAgIG15ICVPYmplY3RBdHRyaWJ1dGUgPSAoCiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkU3RhdHNQYXJhbWV0ZXItPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAxLAogICAgICAgICAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICREeW5hbWljRmllbGRTdGF0c1BhcmFtZXRlci0+e0VsZW1lbnR9LAogICAgICAgICAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFN0YXRzUGFyYW1ldGVyLT57QmxvY2t9LAogICAgICAgICAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFN0YXRzUGFyYW1ldGVyLT57VmFsdWVzfSwKICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgSXNEeW5hbWljRmllbGQgICA9PiAxLAogICAgICAgICAgICAgICAgICAgIFNob3dBc1RyZWUgICAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30tPntUcmVlVmlld30gfHwgMCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBwdXNoIEBPYmplY3RBdHRyaWJ1dGVzLCBcJU9iamVjdEF0dHJpYnV0ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIGNyZWF0ZSBvYmplY3QgYXR0cmlidXRlcyAodGV4dCBmaWVsZHMpCiAgICAgICAgICAgICAgICBteSAlT2JqZWN0QXR0cmlidXRlID0gKAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFN0YXRzUGFyYW1ldGVyLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMCwKICAgICAgICAgICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkU3RhdHNQYXJhbWV0ZXItPntFbGVtZW50fSwKICAgICAgICAgICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRTdGF0c1BhcmFtZXRlci0+e0Jsb2NrfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBwdXNoIEBPYmplY3RBdHRyaWJ1dGVzLCBcJU9iamVjdEF0dHJpYnV0ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gQE9iamVjdEF0dHJpYnV0ZXM7Cn0KCnN1YiBHZXRTdGF0RWxlbWVudFByZXZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaW50IHJhbmQgNTA7Cn0KCnN1YiBHZXRTdGF0RWxlbWVudCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgYmFja2VuZCBvYmplY3QKICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgIGZvciBteSAkUGFyYW1ldGVyTmFtZSAoIHNvcnQga2V5cyAlUGFyYW0gKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgICAkUGFyYW1ldGVyTmFtZSA9fiBteyBcQSBEeW5hbWljRmllbGRfICggW2EtekEtWlxkXSsgKSAoPzogXyAoIFthLXpBLVpcZF0rICkgKT8gXHogfXhtcwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRmllbGROYW1lID0gJDE7CiAgICAgICAgICAgIG15ICRPcGVyYXRvciAgPSAkMjsKCiAgICAgICAgICAgICMgbG9vcCBvdmVyIHRoZSBkeW5hbWljIGZpZWxkcyBjb25maWd1cmVkCiAgICAgICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CgogICAgICAgICAgICAgICAgIyBza2lwIGFsbCBmaWVsZHMgdGhhdCBkbyBub3QgbWF0Y2ggd2l0aCBjdXJyZW50IGZpZWxkIG5hbWUKICAgICAgICAgICAgICAgICMgd2l0aG91dCB0aGUgJ0R5bmFtaWNGaWVsZF8nIHByZWZpeAogICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IG5lICRGaWVsZE5hbWU7CgogICAgICAgICAgICAgICAgIyBza2lwIGFsbCBmaWVsZHMgbm90IGRlc2lnbmVkIHRvIGJlIHN1cHBvcnRlZCBieSBzdGF0aXN0aWNzCiAgICAgICAgICAgICAgICBteSAkSXNTdGF0c0NvbmRpdGlvbiA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzU3RhdHNDb25kaXRpb24nLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzU3RhdHNDb25kaXRpb247CgogICAgICAgICAgICAgICAgIyBnZXQgbmV3IHNlYXJjaCBwYXJhbWV0ZXIKICAgICAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRTdGF0c1NlYXJjaFBhcmFtZXRlciA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TdGF0c1NlYXJjaEZpZWxkUGFyYW1ldGVyQnVpbGQoCiAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICRQYXJhbXskUGFyYW1ldGVyTmFtZX0sCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0b3IgICAgICAgICAgID0+ICRPcGVyYXRvciwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBhZGQgbmV3IHNlYXJjaCBwYXJhbWV0ZXIKICAgICAgICAgICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17IkR5bmFtaWNGaWVsZF8kRmllbGROYW1lIn0gKSApIHsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17IkR5bmFtaWNGaWVsZF8kRmllbGROYW1lIn0gPQogICAgICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkU3RhdHNTZWFyY2hQYXJhbWV0ZXI7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBleHRlbmQgc2VhcmNoIHBhcmFtZXRlcgogICAgICAgICAgICAgICAgZWxzaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkU3RhdHNTZWFyY2hQYXJhbWV0ZXIpICkgewogICAgICAgICAgICAgICAgICAgICRQYXJhbXsiRHluYW1pY0ZpZWxkXyRGaWVsZE5hbWUifSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgJXsgJFBhcmFteyJEeW5hbWljRmllbGRfJEZpZWxkTmFtZSJ9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICV7JER5bmFtaWNGaWVsZFN0YXRzU2VhcmNoUGFyYW1ldGVyfSwKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgc2VhcmNoIGNoYW5nZXMKICAgIG15ICRDb3VudCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZVNlYXJjaCgKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICBMaW1pdCAgICAgID0+IDEwMF8wMDBfMDAwLAogICAgICAgICVQYXJhbSwKICAgICk7CgogICAgcmV0dXJuICRDb3VudDsKfQoKc3ViIEV4cG9ydFdyYXBwZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHdyYXAgaWRzIHRvIHVzZWQgc3BlbGxpbmcKICAgIGZvciBteSAkVXNlIChxdyhVc2VBc1ZhbHVlU2VyaWVzIFVzZUFzUmVzdHJpY3Rpb24gVXNlQXNYdmFsdWUpKSB7CiAgICAgICAgRUxFTUVOVDoKICAgICAgICBmb3IgbXkgJEVsZW1lbnQgKCBAeyAkUGFyYW17JFVzZX0gfSApIHsKCiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQ7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBteSAkRWxlbWVudE5hbWUgPSAkRWxlbWVudC0+e0VsZW1lbnR9OwogICAgICAgICAgICBteSAkVmFsdWVzICAgICAgPSAkRWxlbWVudC0+e1NlbGVjdGVkVmFsdWVzfTsKCiAgICAgICAgICAgIGlmICggJEVsZW1lbnROYW1lIGVxICdDaGFuZ2VTdGF0ZUlEcycgKSB7CiAgICAgICAgICAgICAgICBteSAkU3RhdGVMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlUG9zc2libGVTdGF0ZXNHZXQoIFVzZXJJRCA9PiAxICk7CiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgU1RBVEU6CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRTdGF0ZSAoIEB7JFN0YXRlTGlzdH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgU1RBVEUgaWYgJElELT57Q29udGVudH0gbmUgJFN0YXRlLT57S2V5fTsKICAgICAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkU3RhdGUtPntWYWx1ZX07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICAgICAkRWxlbWVudE5hbWUgZXEgJ0NhdGVnb3J5SURzJyB8fCAkRWxlbWVudE5hbWUgZXEgJ0ltcGFjdElEcycKICAgICAgICAgICAgICAgIHx8ICRFbGVtZW50TmFtZSBlcSAnUHJpb3JpdHlJRHMnCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG15ICgkVHlwZSkgPSAkRWxlbWVudE5hbWUgPX4gbXsgXEEgKC4qPykgSURzIFx6IH14bXM7CgogICAgICAgICAgICAgICAgbXkgJENJUExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VQb3NzaWJsZUNJUEdldCgKICAgICAgICAgICAgICAgICAgICBUeXBlICAgPT4gJFR5cGUsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBFTEVNRU5UOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkRWxlbWVudCAoIEB7JENJUExpc3R9ICkgewogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgJElELT57Q29udGVudH0gbmUgJEVsZW1lbnQtPntLZXl9OwogICAgICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRFbGVtZW50LT57VmFsdWV9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVBhcmFtOwp9CgpzdWIgSW1wb3J0V3JhcHBlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgd3JhcCB1c2VkIHNwZWxsaW5nIHRvIGlkcwogICAgZm9yIG15ICRVc2UgKHF3KFVzZUFzVmFsdWVTZXJpZXMgVXNlQXNSZXN0cmljdGlvbiBVc2VBc1h2YWx1ZSkpIHsKICAgICAgICBFTEVNRU5UOgogICAgICAgIGZvciBteSAkRWxlbWVudCAoIEB7ICRQYXJhbXskVXNlfSB9ICkgewoKICAgICAgICAgICAgbmV4dCBFTEVNRU5UIGlmICEkRWxlbWVudDsKICAgICAgICAgICAgbmV4dCBFTEVNRU5UIGlmICEkRWxlbWVudC0+e1NlbGVjdGVkVmFsdWVzfTsKCiAgICAgICAgICAgIG15ICRFbGVtZW50TmFtZSA9ICRFbGVtZW50LT57RWxlbWVudH07CiAgICAgICAgICAgIG15ICRWYWx1ZXMgICAgICA9ICRFbGVtZW50LT57U2VsZWN0ZWRWYWx1ZXN9OwoKICAgICAgICAgICAgaWYgKCAkRWxlbWVudE5hbWUgZXEgJ0NoYW5nZVN0YXRlSURzJyApIHsKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBteSAkQ2hhbmdlU3RhdGVJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZVN0YXRlTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZSA9PiAkSUQtPntDb250ZW50fSwKICAgICAgICAgICAgICAgICAgICAgICAgQ2FjaGUgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICgkQ2hhbmdlU3RhdGVJRCkgewogICAgICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRDaGFuZ2VTdGF0ZUlEOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkltcG9ydDogQ2FuJ3QgZmluZCBzdGF0ZSAkSUQtPntDb250ZW50fSEiCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRCA9IHVuZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpbXBvcnQgd3JhcHBlciBmb3IgQ0lQCiAgICAgICAgICAgIGZvciBteSAkVHlwZSAocXcoQ2F0ZWdvcnkgSW1wYWN0IFByaW9yaXR5KSkgewogICAgICAgICAgICAgICAgaWYgKCAkRWxlbWVudE5hbWUgZXEgJFR5cGUgLiAnSURzJyApIHsKICAgICAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJENJUElEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlQ0lQTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0lQICA9PiAkSUQtPntDb250ZW50fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJFR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkQ0lQSUQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJENJUElEOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW1wb3J0OiBDYW4ndCBmaW5kICRUeXBlICRJRC0+e0NvbnRlbnR9ISIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkSUQgPSB1bmRlZjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVBhcmFtOwp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/System/Stats/Dynamic/ITSMChangeManagementChangesIncidents.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6U3RhdHM6OkR5bmFtaWM6OklUU01DaGFuZ2VNYW5hZ2VtZW50Q2hhbmdlc0luY2lkZW50czsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUeXBlJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgR2V0T2JqZWN0TmFtZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAnSVRTTUNoYW5nZU1hbmFnZW1lbnRDaGFuZ2VzSW5jaWRlbnRzJzsKfQoKc3ViIEdldE9iamVjdEJlaGF2aW91cnMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlQmVoYXZpb3VycyA9ICgKICAgICAgICBQcm92aWRlc0Rhc2hib2FyZFdpZGdldCA9PiAxLAogICAgKTsKCiAgICByZXR1cm4gJUJlaGF2aW91cnM7Cn0KCnN1YiBHZXRPYmplY3RBdHRyaWJ1dGVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbGlzdCBvZiB0aWNrZXQgdHlwZXMKICAgIG15ICVPYmplY3RzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlR5cGUnKS0+VHlwZUxpc3QoCiAgICAgICAgVmFsaWQgPT4gMSwKICAgICk7CiAgICAkT2JqZWN0c3snLTEnfSA9ICdDaGFuZ2VzJzsKCiAgICAjIGdldCBjdXJyZW50IHRpbWUgdG8gZml4IGJ1ZyM0ODcwCiAgICBteSAkVG9kYXkgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKS0+Rm9ybWF0KCBGb3JtYXQgPT4gJyVZLSVtLSVkIDIzOjU5OjU5JyApOwoKICAgIG15IEBPYmplY3RBdHRyaWJ1dGVzID0gKAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAnT2JqZWN0cycsCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAxLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ09iamVjdCcsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ011bHRpU2VsZWN0RmllbGQnLAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+IFwlT2JqZWN0cywKICAgICAgICAgICAgU2VsZWN0ZWRWYWx1ZXMgICA9PiBbIGtleXMgJU9iamVjdHMgXSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAnVGltZXBlcmlvZCcsCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAxLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1RpbWVQZXJpb2QnLAogICAgICAgICAgICBUaW1lUGVyaW9kRm9ybWF0ID0+ICdEYXRlSW5wdXRGb3JtYXQnLCAgICAjICdEYXRlSW5wdXRGb3JtYXRMb25nJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnVGltZScsCiAgICAgICAgICAgIFRpbWVTdG9wICAgICAgICAgPT4gJFRvZGF5LAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIFRpbWVTdGFydCA9PiAnQ3JlYXRlVGltZU5ld2VyRGF0ZScsCiAgICAgICAgICAgICAgICBUaW1lU3RvcCAgPT4gJ0NyZWF0ZVRpbWVPbGRlckRhdGUnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiBAT2JqZWN0QXR0cmlidXRlczsKfQoKc3ViIEdldFN0YXRFbGVtZW50UHJldmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiBpbnQgcmFuZCA1MDsKfQoKc3ViIEdldFN0YXRFbGVtZW50IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWxldGUgQ3JlYXRlVGltZU5ld2VyRGF0YSBhcyB3ZSB3YW50IHRvIGdldCAqQUxMKiBleGlzdGluZyBvYmplY3RzCiAgICBkZWxldGUgJFBhcmFte0NyZWF0ZVRpbWVOZXdlckRhdGV9OwoKICAgICMgZm9yIHRpY2tldHMgdGhlIHNlYXJjaCBvcHRpb24gaXMgIlRpY2tldENyZWF0ZVRpbWVPbGRlckRhdGUiCiAgICAkUGFyYW17VGlja2V0Q3JlYXRlVGltZU9sZGVyRGF0ZX0gPSAkUGFyYW17Q3JlYXRlVGltZU9sZGVyRGF0ZX07CgogICAgIyBpZiB0aGlzIGNlbGwgc2hvdWxkIGJlIGZpbGxlZCB3aXRoIG51bWJlciBvZiBjaGFuZ2VzCiAgICBpZiAoICRQYXJhbXtPYmplY3R9LT5bMF0gPT0gLTEgKSB7CiAgICAgICAgcmV0dXJuICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZVNlYXJjaCgKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICAgICAgTGltaXQgICAgICA9PiAxMDBfMDAwXzAwMCwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgIyBpZiB0aGlzIGNlbGwgc2hvdWxkIGJlIGZpbGxlZCB3aXRoIG51bWJlciBvZiB0aWNrZXRzCiAgICBlbHNlIHsKICAgICAgICByZXR1cm4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpLT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdybycsCiAgICAgICAgICAgIExpbWl0ICAgICAgPT4gMTAwXzAwMF8wMDAsCiAgICAgICAgICAgIFR5cGVJRHMgICAgPT4gWyAkUGFyYW17T2JqZWN0fS0+WzBdIF0sCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybjsKfQoKc3ViIEV4cG9ydFdyYXBwZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsaXN0IG9mIHRpY2tldCB0eXBlcwogICAgbXkgJU9iamVjdHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VHlwZScpLT5UeXBlTGlzdCggVmFsaWQgPT4gMSApOwogICAgJE9iamVjdHN7Jy0xJ30gPSAnQ2hhbmdlcyc7CgogICAgIyB3cmFwIGlkcyB0byB1c2VkIHNwZWxsaW5nCiAgICBmb3IgbXkgJFVzZSAocXcoVXNlQXNWYWx1ZVNlcmllcyBVc2VBc1Jlc3RyaWN0aW9uIFVzZUFzWHZhbHVlKSkgewogICAgICAgIEVMRU1FTlQ6CiAgICAgICAgZm9yIG15ICRFbGVtZW50ICggQHsgJFBhcmFteyRVc2V9IH0gKSB7CgogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50OwogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50LT57U2VsZWN0ZWRWYWx1ZXN9OwoKICAgICAgICAgICAgbXkgJEVsZW1lbnROYW1lID0gJEVsZW1lbnQtPntFbGVtZW50fTsKICAgICAgICAgICAgbXkgJFZhbHVlcyAgICAgID0gJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBpZiAoICRFbGVtZW50TmFtZSBlcSAnT2JqZWN0JyApIHsKCiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkT2JqZWN0c3sgJElELT57Q29udGVudH0gfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXCVQYXJhbTsKfQoKc3ViIEltcG9ydFdyYXBwZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsaXN0IG9mIHRpY2tldCB0eXBlcwogICAgbXkgJU9iamVjdHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VHlwZScpLT5UeXBlTGlzdCggVmFsaWQgPT4gMSApOwogICAgJE9iamVjdHN7Jy0xJ30gPSAnQ2hhbmdlcyc7CgogICAgIyB3cmFwIHVzZWQgc3BlbGxpbmcgdG8gaWRzCiAgICBmb3IgbXkgJFVzZSAocXcoVXNlQXNWYWx1ZVNlcmllcyBVc2VBc1Jlc3RyaWN0aW9uIFVzZUFzWHZhbHVlKSkgewogICAgICAgIEVMRU1FTlQ6CiAgICAgICAgZm9yIG15ICRFbGVtZW50ICggQHsgJFBhcmFteyRVc2V9IH0gKSB7CgogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50OwogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50LT57U2VsZWN0ZWRWYWx1ZXN9OwoKICAgICAgICAgICAgbXkgJEVsZW1lbnROYW1lID0gJEVsZW1lbnQtPntFbGVtZW50fTsKICAgICAgICAgICAgbXkgJFZhbHVlcyAgICAgID0gJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBpZiAoICRFbGVtZW50TmFtZSBlcSAnT2JqZWN0JyApIHsKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlT2JqZWN0cyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkS2V5IGlmICRPYmplY3RzeyRLZXl9IGVxICRJRC0+e0NvbnRlbnR9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXCVQYXJhbTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/System/Stats/Dynamic/ITSMChangeManagementChangesPerCIClasses.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6U3RhdHM6OkR5bmFtaWM6OklUU01DaGFuZ2VNYW5hZ2VtZW50Q2hhbmdlc1BlckNJQ2xhc3NlczsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRCJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIEdldE9iamVjdE5hbWUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gJ0lUU01DaGFuZ2VNYW5hZ2VtZW50Q2hhbmdlc1BlckNJQ2xhc3Nlcyc7Cn0KCnN1YiBHZXRPYmplY3RCZWhhdmlvdXJzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUJlaGF2aW91cnMgPSAoCiAgICAgICAgUHJvdmlkZXNEYXNoYm9hcmRXaWRnZXQgPT4gMSwKICAgICk7CgogICAgcmV0dXJuICVCZWhhdmlvdXJzOwp9CgpzdWIgR2V0T2JqZWN0QXR0cmlidXRlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNpcCBsaXN0cwogICAgbXkgJENhdGVnb3JpZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VQb3NzaWJsZUNJUEdldCgKICAgICAgICBUeXBlICAgPT4gJ0NhdGVnb3J5JywKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICBteSAlQ2F0ZWdvcnlMaXN0ID0gbWFwIHsgJF8tPntLZXl9ID0+ICRfLT57VmFsdWV9IH0gQHskQ2F0ZWdvcmllc307CgogICAgIyBnZXQgY2xhc3MgbGlzdAogICAgbXkgJENsYXNzTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtTGlzdCgKICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q29uZmlnSXRlbTo6Q2xhc3MnLAogICAgKTsKCiAgICAjIGdldCBkZXBsb3ltZW50IHN0YXRlIGxpc3QKICAgIG15ICREZXBsU3RhdGVMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICdJVFNNOjpDb25maWdJdGVtOjpEZXBsb3ltZW50U3RhdGUnLAogICAgKTsKCiAgICAjIGdldCBpbmNpZGVudCBzdGF0ZSBsaXN0CiAgICBteSAkSW5jaVN0YXRlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtTGlzdCgKICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q29yZTo6SW5jaWRlbnRTdGF0ZScsCiAgICApOwoKICAgICMgZ2V0IGN1cnJlbnQgdGltZSB0byBmaXggYnVnIzQ4NzAKICAgIG15ICRUb2RheSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpLT5Gb3JtYXQoIEZvcm1hdCA9PiAnJVktJW0tJWQgMjM6NTk6NTknICk7CgogICAgbXkgQE9iamVjdEF0dHJpYnV0ZXMgPSAoCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICdDb25maWdJdGVtIENsYXNzZXMnLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMSwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAwLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdDSUNsYXNzSURzJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnTXVsdGlTZWxlY3RGaWVsZCcsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgICAgPT4gMCwKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiAkQ2xhc3NMaXN0LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICdDYXRlZ29yeScsCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAwLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDAsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ0NhdGVnb3J5SURzJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnTXVsdGlTZWxlY3RGaWVsZCcsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gXCVDYXRlZ29yeUxpc3QsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJ0NvbmZpZ0l0ZW0gU3RhdHVzJywKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDAsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnQ0lTdGF0ZUlEcycsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ011bHRpU2VsZWN0RmllbGQnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgICAgID0+IDAsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gJEluY2lTdGF0ZUxpc3QsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJ1RpbWVwZXJpb2QnLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMCwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAxLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdUaW1lUGVyaW9kJywKICAgICAgICAgICAgVGltZVBlcmlvZEZvcm1hdCA9PiAnRGF0ZUlucHV0Rm9ybWF0JywgICAgIyAnRGF0ZUlucHV0Rm9ybWF0TG9uZycsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ1RpbWUnLAogICAgICAgICAgICBUaW1lU3RvcCAgICAgICAgID0+ICRUb2RheSwKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICBUaW1lU3RhcnQgPT4gJ0NyZWF0ZVRpbWVOZXdlckRhdGUnLAogICAgICAgICAgICAgICAgVGltZVN0b3AgID0+ICdDcmVhdGVUaW1lT2xkZXJEYXRlJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gQE9iamVjdEF0dHJpYnV0ZXM7Cn0KCnN1YiBHZXRTdGF0RWxlbWVudFByZXZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaW50IHJhbmQgNTA7Cn0KCnN1YiBHZXRTdGF0RWxlbWVudCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG9iamVjdCBpZHMgZm9yIGNoYW5nZSBhbmQgY29uZmlnIGl0ZW0KICAgIG15ICRDb25maWdJdGVtT2JqZWN0SUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcpLT5PYmplY3RMb29rdXAoCiAgICAgICAgTmFtZSAgID0+ICdJVFNNQ29uZmlnSXRlbScsCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgIHJldHVybiBpZiAhJENvbmZpZ0l0ZW1PYmplY3RJRDsKCiAgICBteSAkQ2hhbmdlT2JqZWN0SUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcpLT5PYmplY3RMb29rdXAoCiAgICAgICAgTmFtZSAgID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkQ2hhbmdlT2JqZWN0SUQ7CgogICAgIyBnZXQgY2hhbmdlIGlkIGFuZCBjb25maWcgaXRlbSBpZAogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBjaGkuaWQgQVMgY2hhbmdlX2lkLCBjaS5pZCBBUyBjaV9pZCAnCiAgICAgICAgICAgIC4gJ0ZST00gY2hhbmdlX2l0ZW0gY2hpLCBjaGFuZ2Vfd29ya29yZGVyIGNodywgbGlua19yZWxhdGlvbiBsciwgY29uZmlnaXRlbSBjaSAnCiAgICAgICAgICAgIC4gJ1dIRVJFIGNoaS5pZCA9IGNody5jaGFuZ2VfaWQgJwogICAgICAgICAgICAuICdBTkQgY2hpLmNhdGVnb3J5X2lkID0gPyAnCiAgICAgICAgICAgIC4gJ0FORCAoICcKICAgICAgICAgICAgLiAnKCAnCiAgICAgICAgICAgIC4gJ2Nody5pZCA9IGxyLnRhcmdldF9rZXkgJwogICAgICAgICAgICAuICdBTkQgbHIudGFyZ2V0X29iamVjdF9pZCA9ID8gJwogICAgICAgICAgICAuICdBTkQgbHIuc291cmNlX29iamVjdF9pZCA9ID8gJwogICAgICAgICAgICAuICdBTkQgbHIuc291cmNlX2tleSA9IGNpLmlkICcKICAgICAgICAgICAgLiAnQU5EIGNpLmNsYXNzX2lkID0gPyAnCiAgICAgICAgICAgIC4gJykgJwogICAgICAgICAgICAuICdPUiAnCiAgICAgICAgICAgIC4gJyggJwogICAgICAgICAgICAuICdjaHcuaWQgPSBsci5zb3VyY2Vfa2V5ICcKICAgICAgICAgICAgLiAnQU5EIGxyLnNvdXJjZV9vYmplY3RfaWQgPSA/ICcKICAgICAgICAgICAgLiAnQU5EIGxyLnRhcmdldF9vYmplY3RfaWQgPSA/ICcKICAgICAgICAgICAgLiAnQU5EIGxyLnRhcmdldF9rZXkgPSBjaS5pZCAnCiAgICAgICAgICAgIC4gJ0FORCBjaS5jbGFzc19pZCA9ID8gJwogICAgICAgICAgICAuICcpICcKICAgICAgICAgICAgLiAnKScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwoICRQYXJhbXtDYXRlZ29yeUlEc30tPlswXSApLAogICAgICAgICAgICBcJENoYW5nZU9iamVjdElELAogICAgICAgICAgICBcJENvbmZpZ0l0ZW1PYmplY3RJRCwKICAgICAgICAgICAgXCggJFBhcmFte0NJQ2xhc3NJRHN9LT5bMF0gKSwKICAgICAgICAgICAgXCRDaGFuZ2VPYmplY3RJRCwKICAgICAgICAgICAgXCRDb25maWdJdGVtT2JqZWN0SUQsCiAgICAgICAgICAgIFwoICRQYXJhbXtDSUNsYXNzSURzfS0+WzBdICksCiAgICAgICAgXSwKICAgICk7CgogICAgIyBmZXRjaCBjaGFuZ2UgYW5kIGNvbmZpZyBpdGVtIGlkcwogICAgbXkgQE1hdGNoZXM7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQE1hdGNoZXMsIFxAUm93OwogICAgfQoKICAgICMgY2hlY2sgZm9yIGVhY2ggY2hhbmdlIGlmIHRoZSBjb25maWcgaXRlbSBpcyBpbiBhcHByb3ByaWF0ZSBzdGF0dXMKICAgICMgaWYgc28sIGNvdW50IHRoZSBjaGFuZ2UKICAgIG15ICVDaGFuZ2VzQWxyZWFkeUNvdW50ZWQ7CiAgICBNQVRDSDoKICAgIGZvciBteSAkTWF0Y2ggKEBNYXRjaGVzKSB7CiAgICAgICAgbmV4dCBNQVRDSCBpZiAkQ2hhbmdlc0FscmVhZHlDb3VudGVkeyAkTWF0Y2gtPlswXSB9OwoKICAgICAgICAjIGdldCBjdXJyZW50IHN0YXRlIG9mIHRoZSBjb25maWcgaXRlbQogICAgICAgIG5leHQgTUFUQ0ggaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgPT4gJ1NFTEVDVCBpbmNpX3N0YXRlX2lkIEZST00gY29uZmlnaXRlbV92ZXJzaW9uICcKICAgICAgICAgICAgICAgIC4gJ1dIRVJFIGNvbmZpZ2l0ZW1faWQgPSA/ICcKICAgICAgICAgICAgICAgIC4gJ0FORCBjcmVhdGVfdGltZSA+PSA/IEFORCBjcmVhdGVfdGltZSA8PSA/JywKICAgICAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgICAgICBcKCAkTWF0Y2gtPlsxXSApLAogICAgICAgICAgICAgICAgXCggJFBhcmFte0NyZWF0ZVRpbWVOZXdlckRhdGV9ICksCiAgICAgICAgICAgICAgICBcKCAkUGFyYW17Q3JlYXRlVGltZU9sZGVyRGF0ZX0gKSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGZldGNoIGN1cnJlbnQgaW5jaWRlbnQgc3RhdGUKICAgICAgICBteSAkSW5jaWRlbnRTdGF0ZUlEOwogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICRJbmNpZGVudFN0YXRlSUQgPSAkUm93WzBdOwogICAgICAgIH0KCiAgICAgICAgbmV4dCBNQVRDSCBpZiAhJEluY2lkZW50U3RhdGVJRDsKCiAgICAgICAgIyBjaGVjayBpZiB1c2VyIGhhcyBzZWxlY3RlZCB0aGlzIHN0YXRlCiAgICAgICAgbXkgKCRGb3VuZCkgPSBncmVwIHsgJF8gPT0gJEluY2lkZW50U3RhdGVJRCB9IEB7ICRQYXJhbXtDSVN0YXRlSURzfSB9OwoKICAgICAgICBuZXh0IE1BVENIIGlmICEkRm91bmQ7CgogICAgICAgICRDaGFuZ2VzQWxyZWFkeUNvdW50ZWR7ICRNYXRjaC0+WzBdIH0rKzsKICAgIH0KCiAgICAjIHJldHVybiB0aGUgbnVtYmVyIG9mIGNoYW5nZXMKICAgIG15ICRDb3VudCA9IGtleXMgJUNoYW5nZXNBbHJlYWR5Q291bnRlZDsKICAgIHJldHVybiAkQ291bnQ7Cn0KCnN1YiBFeHBvcnRXcmFwcGVyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgY2xhc3MgbGlzdAogICAgbXkgJENsYXNzTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtTGlzdCgKICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q29uZmlnSXRlbTo6Q2xhc3MnLAogICAgKTsKCiAgICAjIGdldCBpbmNpZGVudCBzdGF0ZSBsaXN0CiAgICBteSAkSW5jaVN0YXRlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtTGlzdCgKICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q29yZTo6SW5jaWRlbnRTdGF0ZScsCiAgICApOwoKICAgICMgd3JhcCBpZHMgdG8gdXNlZCBzcGVsbGluZwogICAgZm9yIG15ICRVc2UgKHF3KFVzZUFzVmFsdWVTZXJpZXMgVXNlQXNSZXN0cmljdGlvbiBVc2VBc1h2YWx1ZSkpIHsKICAgICAgICBFTEVNRU5UOgogICAgICAgIGZvciBteSAkRWxlbWVudCAoIEB7ICRQYXJhbXskVXNlfSB9ICkgewogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50IHx8ICEkRWxlbWVudC0+e1NlbGVjdGVkVmFsdWVzfTsKICAgICAgICAgICAgbXkgJEVsZW1lbnROYW1lID0gJEVsZW1lbnQtPntFbGVtZW50fTsKICAgICAgICAgICAgbXkgJFZhbHVlcyAgICAgID0gJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBpZiAoICRFbGVtZW50TmFtZSBlcSAnQ0lTdGF0ZUlEcycgKSB7CiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkSW5jaVN0YXRlTGlzdC0+eyAkSUQtPntDb250ZW50fSB9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEVsZW1lbnROYW1lIGVxICdDSUNsYXNzSURzJyApIHsKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRDbGFzc0xpc3QtPnsgJElELT57Q29udGVudH0gfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRFbGVtZW50TmFtZSBlcSAnQ2F0ZWdvcnlJRHMnICkgewoKICAgICAgICAgICAgICAgIG15ICRDSVBMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlUG9zc2libGVDSVBHZXQoCiAgICAgICAgICAgICAgICAgICAgVHlwZSAgID0+ICdDYXRlZ29yeScsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBFTEVNRU5UOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkRWxlbWVudCAoIEB7JENJUExpc3R9ICkgewogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgJElELT57Q29udGVudH0gbmUgJEVsZW1lbnQtPntLZXl9OwogICAgICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRFbGVtZW50LT57VmFsdWV9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVBhcmFtOwp9CgpzdWIgSW1wb3J0V3JhcHBlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNsYXNzIGxpc3QKICAgIG15ICRDbGFzc0xpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUxpc3QoCiAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNvbmZpZ0l0ZW06OkNsYXNzJywKICAgICk7CgogICAgIyBnZXQgaW5jaWRlbnQgc3RhdGUgbGlzdAogICAgbXkgJEluY2lTdGF0ZUxpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUxpc3QoCiAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNvcmU6OkluY2lkZW50U3RhdGUnLAogICAgKTsKCiAgICAjIHdyYXAgdXNlZCBzcGVsbGluZyB0byBpZHMKICAgIGZvciBteSAkVXNlIChxdyhVc2VBc1ZhbHVlU2VyaWVzIFVzZUFzUmVzdHJpY3Rpb24gVXNlQXNYdmFsdWUpKSB7CiAgICAgICAgRUxFTUVOVDoKICAgICAgICBmb3IgbXkgJEVsZW1lbnQgKCBAeyAkUGFyYW17JFVzZX0gfSApIHsKICAgICAgICAgICAgbmV4dCBFTEVNRU5UIGlmICEkRWxlbWVudCB8fCAhJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CiAgICAgICAgICAgIG15ICRFbGVtZW50TmFtZSA9ICRFbGVtZW50LT57RWxlbWVudH07CiAgICAgICAgICAgIG15ICRWYWx1ZXMgICAgICA9ICRFbGVtZW50LT57U2VsZWN0ZWRWYWx1ZXN9OwoKICAgICAgICAgICAgaWYgKCAkRWxlbWVudE5hbWUgZXEgJ0NJU3RhdGVJRHMnICkgewogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIEtFWToKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyRJbmNpU3RhdGVMaXN0fSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkSUQtPntDb250ZW50fSBlcSAkSW5jaVN0YXRlTGlzdC0+eyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkS2V5OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBLRVk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkRWxlbWVudE5hbWUgZXEgJ0NJQ2xhc3NJRHMnICkgewogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICV7JENsYXNzTGlzdH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJElELT57Q29udGVudH0gZXEgJENsYXNzTGlzdC0+eyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkS2V5OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGltcG9ydCB3cmFwcGVyIGZvciBDSVAKICAgICAgICAgICAgZm9yIG15ICRUeXBlIChxdyhDYXRlZ29yeSkpIHsKICAgICAgICAgICAgICAgIGlmICggJEVsZW1lbnROYW1lIGVxICRUeXBlIC4gJ0lEcycgKSB7CiAgICAgICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRDSVBJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZUNJUExvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENJUCAgPT4gJElELT57Q29udGVudH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICRUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJENJUElEKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRDSVBJRDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkltcG9ydDogQ2FuJyBmaW5kICRUeXBlICRJRC0+e0NvbnRlbnR9ISIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkSUQgPSB1bmRlZjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVBhcmFtOwp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/System/Stats/Dynamic/ITSMChangeManagementHistory.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6U3RhdHM6OkR5bmFtaWM6OklUU01DaGFuZ2VNYW5hZ2VtZW50SGlzdG9yeTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpIaXN0b3J5JywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgR2V0T2JqZWN0TmFtZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAnSVRTTUNoYW5nZU1hbmFnZW1lbnRIaXN0b3J5JzsKfQoKc3ViIEdldE9iamVjdEJlaGF2aW91cnMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlQmVoYXZpb3VycyA9ICgKICAgICAgICBQcm92aWRlc0Rhc2hib2FyZFdpZGdldCA9PiAxLAogICAgKTsKCiAgICByZXR1cm4gJUJlaGF2aW91cnM7Cn0KCnN1YiBHZXRPYmplY3RBdHRyaWJ1dGVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgY2hhbmdlIHN0YXRlIGxpc3QKICAgIG15ICRDaGFuZ2VTdGF0ZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VQb3NzaWJsZVN0YXRlc0dldCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICBteSAlQ2hhbmdlU3RhdGVMaXN0ID0gbWFwIHsgJF8tPntLZXl9ID0+ICRfLT57VmFsdWV9IH0gQHskQ2hhbmdlU3RhdGVzfTsKCiAgICAjIGdldCBjdXJyZW50IHRpbWUgdG8gZml4IGJ1ZyM0ODcwCiAgICBteSAkVG9kYXkgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKS0+Rm9ybWF0KCBGb3JtYXQgPT4gJyVZLSVtLSVkIDIzOjU5OjU5JyApOwoKICAgIG15IEBPYmplY3RBdHRyaWJ1dGVzID0gKAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAnQ2hhbmdlIFN0YXRlJywKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDEsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnTmV3VmFsdWVzJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnTXVsdGlTZWxlY3RGaWVsZCcsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gXCVDaGFuZ2VTdGF0ZUxpc3QsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJ1RpbWVwZXJpb2QnLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMSwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAxLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdUaW1lUGVyaW9kJywKICAgICAgICAgICAgVGltZVBlcmlvZEZvcm1hdCA9PiAnRGF0ZUlucHV0Rm9ybWF0JywgICAgIyAnRGF0ZUlucHV0Rm9ybWF0TG9uZycsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ1RpbWUnLAogICAgICAgICAgICBUaW1lU3RvcCAgICAgICAgID0+ICRUb2RheSwKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICBUaW1lU3RhcnQgPT4gJ0NoYW5nZVRpbWVOZXdlckRhdGUnLAogICAgICAgICAgICAgICAgVGltZVN0b3AgID0+ICdDaGFuZ2VUaW1lT2xkZXJEYXRlJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gQE9iamVjdEF0dHJpYnV0ZXM7Cn0KCnN1YiBHZXRTdGF0RWxlbWVudFByZXZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaW50IHJhbmQgNTA7Cn0KCnN1YiBHZXRTdGF0RWxlbWVudCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgc2VhcmNoIGhpc3RvcnkKICAgIG15ICRJRHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SGlzdG9yeScpLT5IaXN0b3J5U2VhcmNoKAogICAgICAgIFVzZXJJRCAgICA9PiAxLAogICAgICAgIFR5cGUgICAgICA9PiAnQ2hhbmdlJywKICAgICAgICBBdHRyaWJ1dGUgPT4gJ0NoYW5nZVN0YXRlSUQnLAogICAgICAgIExpbWl0ICAgICA9PiAxMDBfMDAwXzAwMCwKICAgICAgICAlUGFyYW0sCiAgICApOwoKICAgIG15IEBDaGFuZ2VOdW1iZXJzOwogICAgaWYgKCAkSURzICYmIHJlZiAkSURzIGVxICdBUlJBWScgKSB7CgogICAgICAgIElEOgogICAgICAgIGZvciBteSAkSUQgKCBAeyRJRHN9ICkgewogICAgICAgICAgICBteSAkQ2hhbmdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlR2V0KAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgSUQgaWYgISRDaGFuZ2U7CgogICAgICAgICAgICBwdXNoIEBDaGFuZ2VOdW1iZXJzLCAkQ2hhbmdlLT57Q2hhbmdlTnVtYmVyfTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGpvaW4gIlxuIiwgQENoYW5nZU51bWJlcnM7Cn0KCnN1YiBFeHBvcnRXcmFwcGVyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB3cmFwIGlkcyB0byB1c2VkIHNwZWxsaW5nCiAgICBmb3IgbXkgJFVzZSAocXcoVXNlQXNWYWx1ZVNlcmllcyBVc2VBc1Jlc3RyaWN0aW9uIFVzZUFzWHZhbHVlKSkgewogICAgICAgIEVMRU1FTlQ6CiAgICAgICAgZm9yIG15ICRFbGVtZW50ICggQHsgJFBhcmFteyRVc2V9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQgfHwgISRFbGVtZW50LT57U2VsZWN0ZWRWYWx1ZXN9OwogICAgICAgICAgICBteSAkRWxlbWVudE5hbWUgPSAkRWxlbWVudC0+e0VsZW1lbnR9OwogICAgICAgICAgICBteSAkVmFsdWVzICAgICAgPSAkRWxlbWVudC0+e1NlbGVjdGVkVmFsdWVzfTsKCiAgICAgICAgICAgIGlmICggJEVsZW1lbnROYW1lIGVxICdOZXdWYWx1ZXMnICkgewogICAgICAgICAgICAgICAgbXkgJFN0YXRlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZVBvc3NpYmxlU3RhdGVzR2V0KCBVc2VySUQgPT4gMSApOwogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIFNUQVRFOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkU3RhdGUgKCBAeyRTdGF0ZUxpc3R9ICkgewogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IFNUQVRFIGlmICRJRC0+e0NvbnRlbnR9IG5lICRTdGF0ZS0+e0tleX07CiAgICAgICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFN0YXRlLT57VmFsdWV9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVBhcmFtOwp9CgpzdWIgSW1wb3J0V3JhcHBlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgd3JhcCB1c2VkIHNwZWxsaW5nIHRvIGlkcwogICAgZm9yIG15ICRVc2UgKHF3KFVzZUFzVmFsdWVTZXJpZXMgVXNlQXNSZXN0cmljdGlvbiBVc2VBc1h2YWx1ZSkpIHsKICAgICAgICBFTEVNRU5UOgogICAgICAgIGZvciBteSAkRWxlbWVudCAoIEB7ICRQYXJhbXskVXNlfSB9ICkgewogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50IHx8ICEkRWxlbWVudC0+e1NlbGVjdGVkVmFsdWVzfTsKICAgICAgICAgICAgbXkgJEVsZW1lbnROYW1lID0gJEVsZW1lbnQtPntFbGVtZW50fTsKICAgICAgICAgICAgbXkgJFZhbHVlcyAgICAgID0gJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBpZiAoICRFbGVtZW50TmFtZSBlcSAnTmV3VmFsdWVzJyApIHsKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBteSAkQ2hhbmdlU3RhdGVJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZVN0YXRlTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZSA9PiAkSUQtPntDb250ZW50fSwKICAgICAgICAgICAgICAgICAgICAgICAgQ2FjaGUgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICgkQ2hhbmdlU3RhdGVJRCkgewogICAgICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRDaGFuZ2VTdGF0ZUlEOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkltcG9ydDogQ2FuJyBmaW5kIHN0YXRlICRJRC0+e0NvbnRlbnR9ISIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJElEID0gdW5kZWY7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIFwlUGFyYW07Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/System/Stats/Dynamic/ITSMChangeManagementRfcRequester.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6U3RhdHM6OkR5bmFtaWM6OklUU01DaGFuZ2VNYW5hZ2VtZW50UmZjUmVxdWVzdGVyOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlVzZXInLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBHZXRPYmplY3ROYW1lIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuICdJVFNNQ2hhbmdlTWFuYWdlbWVudFJmY1JlcXVlc3Rlcic7Cn0KCnN1YiBHZXRPYmplY3RCZWhhdmlvdXJzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUJlaGF2aW91cnMgPSAoCiAgICAgICAgUHJvdmlkZXNEYXNoYm9hcmRXaWRnZXQgPT4gMSwKICAgICk7CgogICAgcmV0dXJuICVCZWhhdmlvdXJzOwp9CgpzdWIgR2V0T2JqZWN0QXR0cmlidXRlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRSZkNUeXBlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSVRTTUNoYW5nZTo6QWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzJyk7CgogICAgIyBnZXQgYWxsIHJmY3MKICAgIG15IEBUaWNrZXRJRHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPlRpY2tldFNlYXJjaCgKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgUGVybWlzc2lvbiA9PiAncm8nLAogICAgICAgIExpbWl0ICAgICAgPT4gMTAwXzAwMF8wMDAsCiAgICAgICAgVHlwZXMgICAgICA9PiAkUmZDVHlwZXMsCiAgICAgICAgUmVzdWx0ICAgICA9PiAnQVJSQVknLAogICAgKTsKCiAgICAjIGdldCBhbGwgcmVxdWVzdGVyCiAgICBteSAlUmVxdWVzdGVyOwoKICAgIFRJQ0tFVElEOgogICAgZm9yIG15ICRUaWNrZXRJRCAoQFRpY2tldElEcykgewogICAgICAgIG15ICVUaWNrZXQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPlRpY2tldEdldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CgogICAgICAgIG5leHQgVElDS0VUSUQgaWYgISVUaWNrZXQ7CgogICAgICAgIGlmICggJFRpY2tldHtDdXN0b21lclVzZXJJRH0gKSB7CiAgICAgICAgICAgIG15ICRDdXN0b21lclVzZXJJRCA9ICRUaWNrZXR7Q3VzdG9tZXJVc2VySUR9OwoKICAgICAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAkUmVxdWVzdGVyeyJjdXN0b21lcl8kQ3VzdG9tZXJVc2VySUQifTsKCiAgICAgICAgICAgIG15ICVDdXN0b21lclVzZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyktPkN1c3RvbWVyVXNlckRhdGFHZXQoCiAgICAgICAgICAgICAgICBVc2VyID0+ICRDdXN0b21lclVzZXJJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRSZXF1ZXN0ZXJ7ImN1c3RvbWVyXyRDdXN0b21lclVzZXJJRCJ9ID0gJEN1c3RvbWVyVXNlcntVc2VyRnVsbG5hbWV9OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJE93bmVySUQgPSAkVGlja2V0e093bmVySUR9OwoKICAgICAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAkUmVxdWVzdGVyeyJhZ2VudF8kT3duZXJJRCJ9OwoKICAgICAgICAgICAgbXkgJVVzZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkT3duZXJJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRSZXF1ZXN0ZXJ7ImFnZW50XyRPd25lcklEIn0gPSAkVXNlcntVc2VyRnVsbG5hbWV9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBjdXJyZW50IHRpbWUgdG8gZml4IGJ1ZyM0ODcwCiAgICBteSAkVG9kYXkgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKS0+Rm9ybWF0KCBGb3JtYXQgPT4gJyVZLSVtLSVkIDIzOjU5OjU5JyApOwoKICAgIG15IEBPYmplY3RBdHRyaWJ1dGVzID0gKAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAnUmVxdWVzdGVyJywKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDEsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMCwKICAgICAgICAgICAgU2VsZWN0ZWRWYWx1ZXMgICA9PiBbIGtleXMgJVJlcXVlc3RlciBdLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdSZXF1ZXN0ZXInLAogICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICdNdWx0aVNlbGVjdEZpZWxkJywKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiBcJVJlcXVlc3RlciwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAnVGltZXBlcmlvZCcsCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAwLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDAsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1RpbWVQZXJpb2QnLAogICAgICAgICAgICBUaW1lUGVyaW9kRm9ybWF0ID0+ICdEYXRlSW5wdXRGb3JtYXQnLCAgICAjICdEYXRlSW5wdXRGb3JtYXRMb25nJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnVGltZScsCiAgICAgICAgICAgIFRpbWVTdG9wICAgICAgICAgPT4gJFRvZGF5LAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIFRpbWVTdGFydCA9PiAnVGlja2V0Q3JlYXRlVGltZU5ld2VyRGF0ZScsCiAgICAgICAgICAgICAgICBUaW1lU3RvcCAgPT4gJ1RpY2tldENyZWF0ZVRpbWVPbGRlckRhdGUnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiBAT2JqZWN0QXR0cmlidXRlczsKfQoKc3ViIEdldFN0YXRFbGVtZW50UHJldmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiBpbnQgcmFuZCA1MDsKfQoKc3ViIEdldFN0YXRFbGVtZW50IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayB3aGF0IHR5cGUgb2YgcmVxdWVzdGVyIHdlIGhhdmUKICAgICMgdGlja2V0IHNlYXJjaCBjcml0ZXJpYSBkaWZmZXIgZm9yIGFnZW50cyBhbmQgY3VzdG9tZXJzCiAgICBteSAkVHlwZSA9ICcnOwogICAgbXkgJElEOwogICAgaWYgKCAkUGFyYW17UmVxdWVzdGVyfSAmJiAkUGFyYW17UmVxdWVzdGVyfS0+WzBdICkgewogICAgICAgICggJFR5cGUsICRJRCApID0gc3BsaXQgL18vLCAkUGFyYW17UmVxdWVzdGVyfS0+WzBdOwogICAgICAgIG15ICRLZXkgPSAkVHlwZSBlcSAnYWdlbnQnID8gJ093bmVySURzJyA6ICdDdXN0b21lclVzZXJMb2dpbic7CiAgICAgICAgJFBhcmFteyRLZXl9ID0gWyRJRF07CiAgICB9CgogICAgIyBnZXQgdGlja2V0IHR5cGVzIHRoYXQgYXJlIGhhbmRsZWQgYXMgUmZDcwogICAgbXkgJFJmQ1R5cGVzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdJVFNNQ2hhbmdlOjpBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMnKTsKCiAgICAjIHNlYXJjaCB0aWNrZXRzCiAgICBteSBAVGlja2V0SURzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpLT5UaWNrZXRTZWFyY2goCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgIFJlc3VsdCAgICAgPT4gJ0FSUkFZJywKICAgICAgICBQZXJtaXNzaW9uID0+ICdybycsCiAgICAgICAgTGltaXQgICAgICA9PiAxMDBfMDAwXzAwMCwKICAgICAgICBUeXBlcyAgICAgID0+ICRSZkNUeXBlcywKICAgICAgICAlUGFyYW0sCiAgICApOwoKICAgICMgaWYgdGhpcyB3YW50cyB0aGUgbnVtYmVyIG9mIFJmQ3MgZm9yIGFuIGFnZW50IHdlIGhhdmUgdG8gY2hlY2sKICAgICMgd2hldGhlciBhIGN1c3RvbWVyIGlkIGlzIGluIHRoZSB0aWNrZXQuIFRoZSBvd25lciBpcyAqTk9UKiB0aGUKICAgICMgcmVxdWVzdGVyIHRoZW4uCiAgICBpZiAoICRUeXBlIGVxICdhZ2VudCcgKSB7CiAgICAgICAgbXkgJENvdW50ID0gMDsKCiAgICAgICAgVElDS0VUSUQ6CiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFRpY2tldElEcykgewogICAgICAgICAgICBteSAlVGlja2V0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpLT5UaWNrZXRHZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICElVGlja2V0OwogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICRUaWNrZXR7Q3VzdG9tZXJVc2VySUR9OwoKICAgICAgICAgICAgJENvdW50Kys7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJENvdW50OwogICAgfQoKICAgIHJldHVybiBzY2FsYXIgQFRpY2tldElEczsKfQoKc3ViIEV4cG9ydFdyYXBwZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gXCVQYXJhbTsKfQoKc3ViIEltcG9ydFdyYXBwZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gXCVQYXJhbTsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/System/Ticket/Acl/RestrictTicketTypes.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBY2w6OlJlc3RyaWN0VGlja2V0VHlwZXM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENvbmZpZyBBY2wpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgaWYgdXNlciBpZCBpcyBnaXZlbgogICAgcmV0dXJuIDEgaWYgISRQYXJhbXtVc2VySUR9OwoKICAgICMgZ2V0IGFuZCBjaGVjayB0aGUgbGlzdCBvZiByZWxldmFudCB0aWNrZXQgdHlwZXMKICAgIG15ICRBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcycpOwoKICAgIHJldHVybiAxIGlmICEkQWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzOwogICAgcmV0dXJuIDEgaWYgcmVmICRBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXMgbmUgJ0FSUkFZJzsKICAgIHJldHVybiAxIGlmICFAeyRBZGRDaGFuZ2VMaW5rVGlja2V0VHlwZXN9OwoKICAgICMgY3JlYXRlIGEgbG9va3VwIGhhc2ggZm9yIHRoZSByZWxldmFudCB0aWNrZXQgdHlwZXMKICAgIG15ICVJc1JlbGV2YW50ID0gbWFwIHsgJF8gPT4gMSB9IEB7JEFkZENoYW5nZUxpbmtUaWNrZXRUeXBlc307CgogICAgIyBpZiB0aWNrZXQgaWQgd2FzIGdpdmVuCiAgICBpZiAoICRQYXJhbXtUaWNrZXRJRH0gKSB7CgogICAgICAgICMgZ2V0IHRpY2tldCBkYXRhCiAgICAgICAgbXkgJVRpY2tldCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+VGlja2V0R2V0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgaWYgdGlja2V0IGV4aXN0cwogICAgICAgIHJldHVybiAxIGlmICElVGlja2V0OwoKICAgICAgICAjIGRvbid0IHJlbW92ZSByZWxldmFudCB0eXBlcyBmcm9tIHR5cGUgbGlzdAogICAgICAgICMgaWYgdGhlIHRpY2tldCB0eXBlIGlzIGFscmVhZHkgb25lIG9mIHRoZXNlIHR5cGVzCiAgICAgICAgcmV0dXJuIDEgaWYgJElzUmVsZXZhbnR7ICRUaWNrZXR7VHlwZX0gfTsKICAgIH0KCiAgICAjIGdldCB1c2VyIGdyb3Vwcywgd2hlcmUgdGhlIHVzZXIgaGFzIHRoZSBydyBwcml2aWxlZ2UKICAgIG15ICVHcm91cHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgICAgIENhY2hlZCA9PiAxLAogICAgKTsKCiAgICAjIGdldCBhbmQgY2hlY2sgdGhlIGxpc3Qgb2YgZ3JvdXBzIHdobyBhcmUgYWxsb3dlZCB0byB1c2UgdGhlIEFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcwogICAgbXkgJFJlc3RyaWN0VGlja2V0VHlwZXNHcm91cHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0lUU01DaGFuZ2U6OlJlc3RyaWN0VGlja2V0VHlwZXM6Okdyb3VwcycpOwoKICAgIHJldHVybiAxIGlmICEkUmVzdHJpY3RUaWNrZXRUeXBlc0dyb3VwczsKICAgIHJldHVybiAxIGlmIHJlZiAkUmVzdHJpY3RUaWNrZXRUeXBlc0dyb3VwcyBuZSAnQVJSQVknOwogICAgcmV0dXJuIDEgaWYgIUB7JFJlc3RyaWN0VGlja2V0VHlwZXNHcm91cHN9OwoKICAgICMgY2hlY2sgaWYgdGhlIHVzZXIgaXMgaW4gb25lIG9mIHRoZXNlIGdyb3VwcwogICAgZm9yIG15ICRHcm91cCAoIEB7JFJlc3RyaWN0VGlja2V0VHlwZXNHcm91cHN9ICkgewoKICAgICAgICAjIGdldCB0aGUgZ3JvdXAgaWQKICAgICAgICBteSAkR3JvdXBJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cExvb2t1cCgKICAgICAgICAgICAgR3JvdXAgPT4gJEdyb3VwLAogICAgICAgICk7CgogICAgICAgICMgZG8gbm90IHJlbW92ZSB0aGUgdGlja2V0IHR5cGUgJ1JmQycgaWYgdXNlciBpcyBpbiBvbmUgb2YgdGhlIGdyb3VwcwogICAgICAgIHJldHVybiAxIGlmICRHcm91cHN7JEdyb3VwSUR9OwogICAgfQoKICAgICMgZ2VuZXJhdGUgYWNsCiAgICAkUGFyYW17QWNsfS0+e1Jlc3RyaWN0VGlja2V0VHlwZXN9ID0gewoKICAgICAgICAjIHJlbW92ZSB0aWNrZXQgdHlwZXMgbGlzdGVkIGluIHN5c2NvbmZpZyBvcHRpb24gJ0lUU01DaGFuZ2U6OkFkZENoYW5nZUxpbmtUaWNrZXRUeXBlcycKICAgICAgICAjIGZyb20gdHlwZSBkcm9wZG93biBsaXN0IGluIGFsbCBmcm9udGVuZCBtb2R1bGVzCiAgICAgICAgUG9zc2libGVOb3QgPT4gewogICAgICAgICAgICBUaWNrZXQgPT4gewogICAgICAgICAgICAgICAgVHlwZSA9PiAkQWRkQ2hhbmdlTGlua1RpY2tldFR5cGVzLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9OwoKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/System/Console/Command/Admin/ITSM/Change/Delete.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6Q29uc29sZTo6Q29tbWFuZDo6QWRtaW46OklUU006OkNoYW5nZTo6RGVsZXRlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIHBhcmVudCBxdyhLZXJuZWw6OlN5c3RlbTo6Q29uc29sZTo6QmFzZUNvbW1hbmQpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnLAopOwoKc3ViIENvbmZpZ3VyZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5EZXNjcmlwdGlvbignRGVsZXRlIGNoYW5nZXMgIChhbGwgb3IgYnkgbnVtYmVyKS4nKTsKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ2FsbCcsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIkRlbGV0ZSBhbGwgY2hhbmdlcy4iLAogICAgICAgIFJlcXVpcmVkICAgID0+IDAsCiAgICAgICAgSGFzVmFsdWUgICAgPT4gMCwKICAgICk7CiAgICAkU2VsZi0+QWRkQXJndW1lbnQoCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ2FjY2VwdCcsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIkFjY2VwdCBkZWxldGUgYWxsIG9yIGNhbmNlbC4iLAogICAgICAgIFJlcXVpcmVkICAgID0+IDAsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvKHl8bikvc214LAogICAgKTsKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ2NoYW5nZS1udW1iZXInLAogICAgICAgIERlc2NyaXB0aW9uID0+ICJEZWxldGUgbGlzdGVkIGNoYW5nZXMuIiwKICAgICAgICBSZXF1aXJlZCAgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgID0+IDEsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvXGQrL3NteCwKICAgICAgICBNdWx0aXBsZSAgICA9PiAxLAogICAgKTsKCiAgICByZXR1cm47Cn0KCnN1YiBQcmVSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBAQ2hhbmdlTnVtYmVycyA9IEB7ICRTZWxmLT5HZXRPcHRpb24oJ2NoYW5nZS1udW1iZXInKSAvLyBbXSB9OwoKICAgIGlmICggISRTZWxmLT5HZXRPcHRpb24oJ2FsbCcpICYmICFAQ2hhbmdlTnVtYmVycyApIHsKICAgICAgICBkaWUgIlBsZWFzZSBwcm92aWRlIG9wdGlvbiAtLWFsbCBvciAtLWNoYW5nZS1udW1iZXIuIEZvciBtb3JlIGRldGFpbHMgdXNlIC0taGVscFxuIjsKICAgIH0KCiAgICByZXR1cm47Cgp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPlByaW50KCI8eWVsbG93PkRlbGV0aW5nIGNoYW5nZXMuLi48L3llbGxvdz5cbiIpOwoKICAgICRTZWxmLT5QcmludCggIjxncmVlbj4iIC4gKCAnPScgeCA2OSApIC4gIjwvZ3JlZW4+XG4iICk7CgogICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgIyBnZXQgY2hhbmdlIG51bWJlcnMKICAgIG15IEBDaGFuZ2VOdW1iZXJzID0gQHsgJFNlbGYtPkdldE9wdGlvbignY2hhbmdlLW51bWJlcicpIC8vIFtdIH07CgogICAgIyBkZWxldGUgYWxsIGNoYW5nZXMKICAgIGlmICggJFNlbGYtPkdldE9wdGlvbignYWxsJykgKSB7CgogICAgICAgICMgZ2V0IGFsbCBjaGFuZ2UgaWRzCiAgICAgICAgbXkgQENoYW5nZXNJRHMgPSBAeyAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VMaXN0KCBVc2VySUQgPT4gMSApIH07CgogICAgICAgICMgZ2V0IG51bWJlciBvZiBjaGFuZ2VzCiAgICAgICAgbXkgJENoYW5nZUNvdW50ID0gc2NhbGFyIEBDaGFuZ2VzSURzOwoKICAgICAgICAjIGlmIHRoZXJlIGFyZSBhbnkgY2hhbmdlcyB0byBkZWxldGUKICAgICAgICBpZiAoJENoYW5nZUNvdW50KSB7CgogICAgICAgICAgICAkU2VsZi0+UHJpbnQoIjx5ZWxsb3c+QXJlIHlvdSBzdXJlIHRoYXQgeW91IHdhbnQgdG8gZGVsZXRlIEFMTCAkQ2hhbmdlQ291bnQgY2hhbmdlcz88L3llbGxvdz5cbiIpOwogICAgICAgICAgICAkU2VsZi0+UHJpbnQoIjx5ZWxsb3c+VGhpcyBpcyBpcnJldm9jYWJsZS4gW3kvbl0gPC95ZWxsb3c+XG4iKTsKICAgICAgICAgICAgbXkgJENvbmZpcm1hdGlvbiA9ICRTZWxmLT5HZXRBcmd1bWVudCgnYWNjZXB0Jyk7CiAgICAgICAgICAgIGNob21wKCAkQ29uZmlybWF0aW9uID0gbGMgPFNURElOPiApIGlmICFkZWZpbmVkICRDb25maXJtYXRpb247CgogICAgICAgICAgICAjIGlmIHRoZSB1c2VyIGNvbmZpcm1zIHRoZSBkZWxldGlvbgogICAgICAgICAgICBpZiAoICRDb25maXJtYXRpb24gZXEgJ3knICkgewoKICAgICAgICAgICAgICAgICMgZGVsZXRlIGNoYW5nZXMKICAgICAgICAgICAgICAgICRTZWxmLT5QcmludCgiPHllbGxvdz5EZWxldGluZyBhbGwgY2hhbmdlcy4uLjwveWVsbG93PlxuIik7CiAgICAgICAgICAgICAgICAkU2VsZi0+RGVsZXRlQ2hhbmdlcyggQ2hhbmdlc0lEcyA9PiBcQENoYW5nZXNJRHMgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRTZWxmLT5QcmludCgiPHllbGxvdz5Db21tYW5kIGRlbGV0ZSB3YXMgY2FuY2VsZWQhPC95ZWxsb3c+XG4iKTsKICAgICAgICAgICAgICAgIHJldHVybiAkU2VsZi0+RXhpdENvZGVPaygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VsZi0+UHJpbnQoIjx5ZWxsb3c+VGhlcmUgYXJlIE5PIGNoYW5nZXMgdG8gZGVsZXRlLjwveWVsbG93PlxuIik7CiAgICAgICAgfQogICAgfQoKICAgICMgZGVsZXRlIGxpc3RlZCBjaGFuZ2VzCiAgICBlbHNpZiAoQENoYW5nZU51bWJlcnMpIHsKCiAgICAgICAgbXkgQENoYW5nZXNJRHM7CgogICAgICAgIGZvciBteSAkQ2hhbmdlTnVtYmVyIChAQ2hhbmdlTnVtYmVycykgewoKICAgICAgICAgICAgIyBjaGVja3MgdGhlIHZhbGlkaXR5IG9mIHRoZSBjaGFuZ2UgaWQKICAgICAgICAgICAgbXkgJElEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlTG9va3VwKAogICAgICAgICAgICAgICAgQ2hhbmdlTnVtYmVyID0+ICRDaGFuZ2VOdW1iZXIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJElEKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBDaGFuZ2VzSURzLCAkSUQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+UHJpbnRFcnJvcigiVW5hYmxlIHRvIGZpbmQgY2hhbmdlICRDaGFuZ2VOdW1iZXIuIik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZGVsZXRlIGNoYW5nZXMgKGlmIGFueSB2YWxpZCBudW1iZXIgd2FzIGdpdmVuKQogICAgICAgIGlmIChAQ2hhbmdlc0lEcykgewogICAgICAgICAgICAkU2VsZi0+UHJpbnQoIjx5ZWxsb3c+RGVsZXRpbmcgc3BlY2lmaWVkIGNoYW5nZXMuLi48L3llbGxvdz5cbiIpOwogICAgICAgICAgICAkU2VsZi0+RGVsZXRlQ2hhbmdlcyggQ2hhbmdlc0lEcyA9PiBcQENoYW5nZXNJRHMgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+UHJpbnRFcnJvcigiTm8gY2hhbmdlIGZvciBkZWxldGUuIik7CiAgICB9CgogICAgJFNlbGYtPlByaW50KCAiPGdyZWVuPiIgLiAoICc9JyB4IDY5ICkgLiAiPC9ncmVlbj5cbiIgKTsKICAgICRTZWxmLT5QcmludCgiPGdyZWVuPkRvbmUuPC9ncmVlbj5cbiIpOwogICAgcmV0dXJuICRTZWxmLT5FeGl0Q29kZU9rKCk7Cn0KCnN1YiBEZWxldGVDaGFuZ2VzIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREZWxldGVkQ2hhbmdlcyA9IDA7CgogICAgIyBkZWxldGUgc3BlY2lmaWVkIGNoYW5nZXMKICAgIGZvciBteSAkQ2hhbmdlSUQgKCBAeyAkUGFyYW17Q2hhbmdlc0lEc30gfSApIHsKICAgICAgICBteSAkVHJ1ZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJFRydWUgKSB7CiAgICAgICAgICAgICRTZWxmLT5QcmludEVycm9yKCJVbmFibGUgdG8gZGVsZXRlIGNoYW5nZSB3aXRoIGlkICRDaGFuZ2VJRFxuIik7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkRGVsZXRlZENoYW5nZXMrKzsKICAgICAgICB9CiAgICB9CgogICAgJFNlbGYtPlByaW50KCI8Z3JlZW4+RGVsZXRlZCAkRGVsZXRlZENoYW5nZXMgY2hhbmdlKHMpLjwvZ3JlZW4+XG5cbiIpOwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="Kernel/System/Console/Command/Admin/ITSM/Change/Check.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6Q29uc29sZTo6Q29tbWFuZDo6QWRtaW46OklUU006OkNoYW5nZTo6Q2hlY2s7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgcGFyZW50IHF3KAogICAgS2VybmVsOjpTeXN0ZW06OkNvbnNvbGU6OkJhc2VDb21tYW5kCiAgICBLZXJuZWw6OlN5c3RlbTo6RXZlbnRIYW5kbGVyKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpQSUQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Okhpc3RvcnknLAopOwoKc3ViIENvbmZpZ3VyZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5EZXNjcmlwdGlvbignQ2hlY2sgaWYgSVRTTSBjaGFuZ2VzIGhhdmUgcmVhY2hlZCBzcGVjaWZpYyB0aW1lcy4nKTsKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ2ZvcmNlLXBpZCcsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIlN0YXJ0IGV2ZW4gaWYgYW5vdGhlciBwcm9jZXNzIGlzIHN0aWxsIHJlZ2lzdGVyZWQgaW4gdGhlIGRhdGFiYXNlLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMCwKICAgICAgICBIYXNWYWx1ZSAgICA9PiAwLAogICAgKTsKCiAgICByZXR1cm47Cn0KCnN1YiBQcmVSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBQSUQgb2JqZWN0CiAgICBteSAkUElET2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlBJRCcpOwoKICAgICMgY3JlYXRlIFBJRCBsb2NrCiAgICBteSAkUElEQ3JlYXRlZCA9ICRQSURPYmplY3QtPlBJRENyZWF0ZSgKICAgICAgICBOYW1lICA9PiAkU2VsZi0+TmFtZSgpLAogICAgICAgIEZvcmNlID0+ICRTZWxmLT5HZXRPcHRpb24oJ2ZvcmNlLXBpZCcpLAogICAgICAgIFRUTCAgID0+IDYwICogNjAgKiAyLAogICAgKTsKICAgIGlmICggISRQSURDcmVhdGVkICkgewogICAgICAgIG15ICRFcnJvciA9ICJVbmFibGUgdG8gcmVnaXN0ZXIgdGhlIHByb2Nlc3MgaW4gdGhlIGRhdGFiYXNlLiBJcyBhbm90aGVyIGluc3RhbmNlIHN0aWxsIHJ1bm5pbmc/XG4iOwogICAgICAgICRFcnJvciAuPSAiWW91IGNhbiB1c2UgLS1mb3JjZS1waWQgdG8gb3ZlcnJpZGUgdGhpcyBjaGVjay5cbiI7CiAgICAgICAgZGllICRFcnJvcjsKICAgIH0KCiAgICAjIGluaXQgb2YgZXZlbnQgaGFuZGxlcgogICAgJFNlbGYtPkV2ZW50SGFuZGxlckluaXQoCiAgICAgICAgQ29uZmlnID0+ICdJVFNNQ2hhbmdlQ3JvbmpvYjo6RXZlbnRNb2R1bGUnLAogICAgKTsKCiAgICAjIGdldCB0aW1lIG9iamVjdAogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgJFNlbGYtPntTeXN0ZW1UaW1lfSA9ICREYXRlVGltZU9iamVjdC0+VG9FcG9jaCgpOwogICAgJFNlbGYtPntOb3d9ICAgICAgICA9ICREYXRlVGltZU9iamVjdC0+VG9TdHJpbmcoKTsKCiAgICByZXR1cm47Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+UHJpbnQoIjx5ZWxsb3c+Q2hlY2tpbmcgSVRTTSBjaGFuZ2VzLi4uPC95ZWxsb3c+XG4iKTsKCiAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAjIG5vdGlmaWNhdGlvbnMgZm9yIGNoYW5nZXMnIHBsYW5uZWRYWFh0aW1lIGV2ZW50cwogICAgZm9yIG15ICRUeXBlIChxdyhTdGFydFRpbWUgRW5kVGltZSkpIHsKCiAgICAgICAgIyBnZXQgY2hhbmdlcyB3aXRoIFBsYW5uZWRTdGFydFRpbWUgb2xkZXIgdGhhbiBub3cKICAgICAgICBteSAkUGxhbm5lZENoYW5nZUlEcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVNlYXJjaCgKICAgICAgICAgICAgIlBsYW5uZWQke1R5cGV9T2xkZXJEYXRlIiA9PiAkU2VsZi0+e05vd30sCiAgICAgICAgICAgIE1pcnJvckRCICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICkgfHwgW107CgogICAgICAgIENIQU5HRUlEOgogICAgICAgIGZvciBteSAkQ2hhbmdlSUQgKCBAeyRQbGFubmVkQ2hhbmdlSURzfSApIHsKCiAgICAgICAgICAgICMgZ2V0IGNoYW5nZSBkYXRhCiAgICAgICAgICAgIG15ICRDaGFuZ2UgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VHZXQoCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBza2lwIGNoYW5nZSBpZiB0aGVyZSBpcyBhbHJlYWR5IGFuIGFjdHVhbFhYWHRpbWUgc2V0IG9yIG5vdGlmaWNhdGlvbiB3YXMgc2VudAogICAgICAgICAgICBuZXh0IENIQU5HRUlEIGlmICRDaGFuZ2UtPnsiQWN0dWFsJFR5cGUifTsKCiAgICAgICAgICAgIG15ICRMYXN0Tm90aWZpY2F0aW9uU2VudERhdGUgPSAkU2VsZi0+Q2hhbmdlTm90aWZpY2F0aW9uU2VudCgKICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgIFR5cGUgICAgID0+ICJQbGFubmVkJHtUeXBlfSIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAkQWxyZWFkeVNlbnRXaXRoaW5QZXJpb2QgPSAkU2VsZi0+U2VudFdpdGhpblBlcmlvZCgKICAgICAgICAgICAgICAgIExhc3ROb3RpZmljYXRpb25TZW50RGF0ZSA9PiAkTGFzdE5vdGlmaWNhdGlvblNlbnREYXRlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBDSEFOR0VJRCBpZiAkQWxyZWFkeVNlbnRXaXRoaW5QZXJpb2Q7CgogICAgICAgICAgICAjIHRyaWdnZXIgQ2hhbmdlUGxhbm5lZFN0YXJ0VGltZVJlYWNoZWRQb3N0LUV2ZW50CiAgICAgICAgICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgICAgICAgICBFdmVudCA9PiAiQ2hhbmdlUGxhbm5lZCR7VHlwZX1SZWFjaGVkUG9zdCIsCiAgICAgICAgICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgY2hhbmdlcyB3aXRoIGFjdHVhbHh4eHRpbWUKICAgICAgICBteSAkQWN0dWFsQ2hhbmdlSURzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU2VhcmNoKAogICAgICAgICAgICAiQWN0dWFsJHtUeXBlfU9sZGVyRGF0ZSIgPT4gJFNlbGYtPntOb3d9LAogICAgICAgICAgICBNaXJyb3JEQiAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgKSB8fCBbXTsKCiAgICAgICAgQUNUVUFMQ0hBTkdFSUQ6CiAgICAgICAgZm9yIG15ICRDaGFuZ2VJRCAoIEB7JEFjdHVhbENoYW5nZUlEc30gKSB7CgogICAgICAgICAgICAjIGdldCBjaGFuZ2UgZGF0YQogICAgICAgICAgICBteSAkQ2hhbmdlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICRMYXN0Tm90aWZpY2F0aW9uU2VudERhdGUgPSAkU2VsZi0+Q2hhbmdlTm90aWZpY2F0aW9uU2VudCgKICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgIFR5cGUgICAgID0+ICJBY3R1YWwke1R5cGV9IiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgQUNUVUFMQ0hBTkdFSUQgaWYgJExhc3ROb3RpZmljYXRpb25TZW50RGF0ZTsKCiAgICAgICAgICAgICMgdHJpZ2dlciBFdmVudAogICAgICAgICAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgICAgICAgICAgRXZlbnQgPT4gIkNoYW5nZUFjdHVhbCR7VHlwZX1SZWFjaGVkUG9zdCIsCiAgICAgICAgICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBjaGFuZ2VzIHdpdGggUmVxdWVzdGVkVGltZU9sZGVyRGF0ZQogICAgbXkgJFJlcXVlc3RlZFRpbWVDaGFuZ2VJRHMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgUmVxdWVzdGVkVGltZU9sZGVyRGF0ZSA9PiAkU2VsZi0+e05vd30sCiAgICAgICAgTWlycm9yREIgICAgICAgICAgICAgICA9PiAxLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgPT4gMSwKICAgICkgfHwgW107CgogICAgQ0hBTkdFSUQ6CiAgICBmb3IgbXkgJENoYW5nZUlEICggQHskUmVxdWVzdGVkVGltZUNoYW5nZUlEc30gKSB7CgogICAgICAgICMgZ2V0IGNoYW5nZSBkYXRhCiAgICAgICAgbXkgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CgogICAgICAgIG15ICRMYXN0Tm90aWZpY2F0aW9uU2VudERhdGUgPSAkU2VsZi0+Q2hhbmdlTm90aWZpY2F0aW9uU2VudCgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBUeXBlICAgICA9PiAiUmVxdWVzdGVkVGltZSIsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBDSEFOR0VJRCBpZiAkTGFzdE5vdGlmaWNhdGlvblNlbnREYXRlOwoKICAgICAgICAjIHRyaWdnZXIgRXZlbnQKICAgICAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgICAgICBFdmVudCA9PiAiQ2hhbmdlUmVxdWVzdGVkVGltZVJlYWNoZWRQb3N0IiwKICAgICAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICB9LAogICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgbm90aWZpY2F0aW9ucyBmb3Igd29ya29yZGVycycgcGxhbm5lZFhYWHRpbWUgZXZlbnRzCiAgICBmb3IgbXkgJFR5cGUgKHF3KFN0YXJ0VGltZSBFbmRUaW1lKSkgewoKICAgICAgICBteSAkV29ya09yZGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKTsKCiAgICAgICAgIyBnZXQgd29ya29yZGVycyB3aXRoIFBsYW5uZWRTdGFydFRpbWUgb2xkZXIgdGhhbiBub3cKICAgICAgICBteSAkUGxhbm5lZFdvcmtPcmRlcklEcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclNlYXJjaCgKICAgICAgICAgICAgIlBsYW5uZWQke1R5cGV9T2xkZXJEYXRlIiA9PiAkU2VsZi0+e05vd30sCiAgICAgICAgICAgIE1pcnJvckRCICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICkgfHwgW107CgogICAgICAgIFdPUktPUkRFUklEOgogICAgICAgIGZvciBteSAkV29ya09yZGVySUQgKCBAeyRQbGFubmVkV29ya09yZGVySURzfSApIHsKCiAgICAgICAgICAgICMgZ2V0IHdvcmtvcmRlciBkYXRhCiAgICAgICAgICAgIG15ICRXb3JrT3JkZXIgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBza2lwIHdvcmtvcmRlciBpZiB0aGVyZSBpcyBhbHJlYWR5IGFuIGFjdHVhbFhYWHRpbWUgc2V0IG9yIG5vdGlmaWNhdGlvbiB3YXMgc2VudAogICAgICAgICAgICBuZXh0IFdPUktPUkRFUklEIGlmICRXb3JrT3JkZXItPnsiQWN0dWFsJFR5cGUifTsKCiAgICAgICAgICAgIG15ICRMYXN0Tm90aWZpY2F0aW9uU2VudERhdGUgPSAkU2VsZi0+V29ya09yZGVyTm90aWZpY2F0aW9uU2VudCgKICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICJQbGFubmVkJHtUeXBlfSIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAkQWxyZWFkeVNlbnRXaXRoaW5QZXJpb2QgPSAkU2VsZi0+U2VudFdpdGhpblBlcmlvZCgKICAgICAgICAgICAgICAgIExhc3ROb3RpZmljYXRpb25TZW50RGF0ZSA9PiAkTGFzdE5vdGlmaWNhdGlvblNlbnREYXRlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBXT1JLT1JERVJJRCBpZiAkQWxyZWFkeVNlbnRXaXRoaW5QZXJpb2Q7CgogICAgICAgICAgICAjIHRyaWdnZXIgV29ya09yZGVyUGxhbm5lZFN0YXJ0VGltZVJlYWNoZWRQb3N0LUV2ZW50CiAgICAgICAgICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgICAgICAgICBFdmVudCA9PiAiV29ya09yZGVyUGxhbm5lZCR7VHlwZX1SZWFjaGVkUG9zdCIsCiAgICAgICAgICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgICAgIENoYW5nZUlEICAgID0+ICRXb3JrT3JkZXItPntDaGFuZ2VJRH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCB3b3Jrb3JkZXJzIHdpdGggYWN0dWFseHh4dGltZQogICAgICAgIG15ICRBY3R1YWxXb3JrT3JkZXJJRHMgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJTZWFyY2goCiAgICAgICAgICAgICJBY3R1YWwke1R5cGV9T2xkZXJEYXRlIiA9PiAkU2VsZi0+e05vd30sCiAgICAgICAgICAgIE1pcnJvckRCICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICApIHx8IFtdOwoKICAgICAgICBXT1JLT1JERVJJRDoKICAgICAgICBmb3IgbXkgJFdvcmtPcmRlcklEICggQHskQWN0dWFsV29ya09yZGVySURzfSApIHsKCiAgICAgICAgICAgICMgZ2V0IHdvcmtvcmRlciBkYXRhCiAgICAgICAgICAgIG15ICRXb3JrT3JkZXIgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJExhc3ROb3RpZmljYXRpb25TZW50RGF0ZSA9ICRTZWxmLT5Xb3JrT3JkZXJOb3RpZmljYXRpb25TZW50KAogICAgICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gIkFjdHVhbCR7VHlwZX0iLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBXT1JLT1JERVJJRCBpZiAkTGFzdE5vdGlmaWNhdGlvblNlbnREYXRlOwoKICAgICAgICAgICAgIyB0cmlnZ2VyIEV2ZW50CiAgICAgICAgICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgICAgICAgICBFdmVudCA9PiAiV29ya09yZGVyQWN0dWFsJHtUeXBlfVJlYWNoZWRQb3N0IiwKICAgICAgICAgICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgPT4gJFdvcmtPcmRlci0+e0NoYW5nZUlEfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgJFNlbGYtPlByaW50KCI8Z3JlZW4+RG9uZS48L2dyZWVuPlxuIik7CiAgICByZXR1cm4gJFNlbGYtPkV4aXRDb2RlT2soKTsKCn0KCiMgY2hlY2sgaWYgYSBub3RpZmljYXRpb24gd2FzIGFscmVhZHkgc2VudCBmb3IgdGhlIGdpdmVuIGNoYW5nZQpzdWIgQ2hhbmdlTm90aWZpY2F0aW9uU2VudCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KENoYW5nZUlEIFR5cGUpKSB7CiAgICAgICAgcmV0dXJuIGlmICEkUGFyYW17JE5lZWRlZH07CiAgICB9CgogICAgIyBnZXQgaGlzdG9yeSBlbnRyaWVzCiAgICBteSAkSGlzdG9yeSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpIaXN0b3J5JyktPkNoYW5nZUhpc3RvcnlHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFBhcmFte0NoYW5nZUlEfSwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCiAgICAjIHNlYXJjaCBmb3Igbm90aWZpY2F0aW9ucyBzZW50IGVhcmxpZXIKICAgIGZvciBteSAkSGlzdG9yeUVudHJ5ICggcmV2ZXJzZSBAeyRIaXN0b3J5fSApIHsKICAgICAgICBpZiAoCiAgICAgICAgICAgICRIaXN0b3J5RW50cnktPntIaXN0b3J5VHlwZX0gZXEgJ0NoYW5nZScgLiAkUGFyYW17VHlwZX0gLiAnUmVhY2hlZCcKICAgICAgICAgICAgJiYgJEhpc3RvcnlFbnRyeS0+e0NvbnRlbnROZXd9ID1+IG17IE5vdGlmaWNhdGlvbiBccyBTZW50ICQgfXhtcwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJEhpc3RvcnlFbnRyeS0+e0NyZWF0ZVRpbWV9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm47Cn0KCiMgY2hlY2sgaWYgYSBub3RpZmljYXRpb24gd2FzIGFscmVhZHkgc2VudCBmb3IgdGhlIGdpdmVuIHdvcmtvcmRlcgpzdWIgV29ya09yZGVyTm90aWZpY2F0aW9uU2VudCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KFdvcmtPcmRlcklEIFR5cGUpKSB7CiAgICAgICAgcmV0dXJuIGlmICEkUGFyYW17JE5lZWRlZH07CiAgICB9CgogICAgIyBnZXQgaGlzdG9yeSBlbnRyaWVzCiAgICBteSAkSGlzdG9yeSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpIaXN0b3J5JyktPldvcmtPcmRlckhpc3RvcnlHZXQoCiAgICAgICAgV29ya09yZGVySUQgPT4gJFBhcmFte1dvcmtPcmRlcklEfSwKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKCiAgICAjIHNlYXJjaCBmb3Igbm90aWZpY2F0aW9ucyBzZW50IGVhcmxpZXIKICAgIGZvciBteSAkSGlzdG9yeUVudHJ5ICggcmV2ZXJzZSBAeyRIaXN0b3J5fSApIHsKICAgICAgICBpZiAoCiAgICAgICAgICAgICRIaXN0b3J5RW50cnktPntIaXN0b3J5VHlwZX0gZXEgJ1dvcmtPcmRlcicgLiAkUGFyYW17VHlwZX0gLiAnUmVhY2hlZCcKICAgICAgICAgICAgJiYgJEhpc3RvcnlFbnRyeS0+e0NvbnRlbnROZXd9ID1+IG17IE5vdGlmaWNhdGlvbiBccyBTZW50IH14bXMKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRIaXN0b3J5RW50cnktPntDcmVhdGVUaW1lfTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuOwp9CgpzdWIgU2VudFdpdGhpblBlcmlvZCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgISRQYXJhbXtMYXN0Tm90aWZpY2F0aW9uU2VudERhdGV9OwoKICAgICMgZ2V0IFN5c0NvbmZpZyBvcHRpb24KICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0lUU01DaGFuZ2U6OlRpbWVSZWFjaGVkTm90aWZpY2F0aW9ucycpOwoKICAgICMgaWYgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudCBvbmx5IG9uY2UKICAgIHJldHVybiAxIGlmICRDb25maWctPntGcmVxdWVuY3l9IGVxICdvbmNlJzsKCiAgICAjIGdldCBlcG9jaGUgc2Vjb25kcyBvZiBzZW5kIHRpbWUKICAgIG15ICRTZW50RXBvY2hlID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte0xhc3ROb3RpZmljYXRpb25TZW50RGF0ZX0sCiAgICAgICAgfQogICAgKS0+VG9FcG9jaCgpOwoKICAgICMgY2FsYyBkaWZmCiAgICBteSAkRXBvY2hlU2luY2VTZW50ID0gJFNlbGYtPntTeXN0ZW1UaW1lfSAtICRTZW50RXBvY2hlOwogICAgbXkgJEhvdXJzU2luY2VTZW50ICA9IGludCggJEVwb2NoZVNpbmNlU2VudCAvICggNjAgKiA2MCApICk7CgogICAgaWYgKCAkSG91cnNTaW5jZVNlbnQgPj0gJENvbmZpZy0+e0hvdXJzfSApIHsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBQb3N0UnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWxldGUgcGlkIGxvY2sKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQSUQnKS0+UElERGVsZXRlKCBOYW1lID0+ICRTZWxmLT5OYW1lKCkgKTsKCiAgICByZXR1cm47Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Permission="660" Location="scripts/test/ITSMChange.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCnVzZSBEYXRhOjpEdW1wZXI7CnVzZSBMaXN0OjpVdGlsIHF3KG1heCk7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgbWFrZSBwcmVwYXJhdGlvbnMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwpteSAkVGVzdENvdW50ID0gMTsKCiMgY3JlYXRlIGNvbW1vbiBvYmplY3RzCm15ICRDb25maWdPYmplY3QgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7Cm15ICREeW5hbWljRmllbGRPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKbXkgJFVzZXJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKbXkgJEdyb3VwT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7Cm15ICRDdXN0b21lclVzZXJPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInKTsKbXkgJFZhbGlkT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7Cm15ICRHZW5lcmFsQ2F0YWxvZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpOwpteSAkQ0lQQWxsb2NhdGVPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNoYW5nZUNJUEFsbG9jYXRlJyk7Cm15ICRIaXN0b3J5T2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpIaXN0b3J5Jyk7Cm15ICRDYWNoZU9iamVjdCAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwpteSAkTG9nT2JqZWN0ICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7Cm15ICREQk9iamVjdCAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwpteSAkV29ya09yZGVyT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpOwpteSAkQ2hhbmdlT2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwpteSAkSGVscGVyT2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKIyB0ZXN0IGlmIGNoYW5nZSBvYmplY3Qgd2FzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5CiRTZWxmLT5UcnVlKAogICAgJENoYW5nZU9iamVjdCwKICAgICJUZXN0ICIgLiAkVGVzdENvdW50KysgLiAnIC0gY29uc3RydWN0aW9uIG9mIGNoYW5nZSBvYmplY3QnLAopOwokU2VsZi0+SXMoCiAgICByZWYgJENoYW5nZU9iamVjdCwKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScsCiAgICAiVGVzdCAiIC4gJFRlc3RDb3VudCsrIC4gJyAtIGNsYXNzIG9mIGNoYW5nZSBvYmplY3QnLAopOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIGNyZWF0ZSBuZWVkZWQgdXNlcnMgYW5kIGN1c3RvbWVyIHVzZXJzCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKbXkgQFVzZXJJRHM7ICAgICAgICAgICAgICAgIyBhIGxpc3Qgb2YgZXhpc3RpbmcgYW5kIHZhbGlkIHVzZXIgaWRzCm15IEBJbnZhbGlkVXNlcklEczsgICAgICAgICMgYSBsaXN0IG9mIGV4aXN0aW5nIGJ1dCBpbnZhbGlkIHVzZXIgaWRzCm15IEBOb25FeGlzdGluZ1VzZXJJRHM7ICAgICMgYSBsaXN0IG9mIG5vbi1leGlzdGlvbiB1c2VyIGlkcwpteSBAQ3VzdG9tZXJVc2VySURzOyAgICAgICAjIGEgbGlzdCBvZiBleGlzdGluZyBhbmQgdmFsaWQgY3VzdG9tZXIgdXNlciBpZHMsIGEgbGlzdCBvZiBzdHJpbmdzCgojIGRpc2FibGUgZW1haWwgY2hlY2tzIHRvIGNyZWF0ZSBuZXcgdXNlcgpteSAkQ2hlY2tFbWFpbEFkZHJlc3Nlc09yZyA9ICRDb25maWdPYmplY3QtPkdldCgnQ2hlY2tFbWFpbEFkZHJlc3NlcycpOwppZiAoICFkZWZpbmVkICRDaGVja0VtYWlsQWRkcmVzc2VzT3JnICkgewogICAgJENoZWNrRW1haWxBZGRyZXNzZXNPcmcgPSAxOwp9CiRDb25maWdPYmplY3QtPlNldCgKICAgIEtleSAgID0+ICdDaGVja0VtYWlsQWRkcmVzc2VzJywKICAgIFZhbHVlID0+IDAsCik7Cgpmb3IgbXkgJENvdW50ZXIgKCAxIC4uIDMgKSB7CgogICAgIyBjcmVhdGUgbmV3IHVzZXJzIGZvciB0aGUgdGVzdHMKICAgIG15ICRVc2VySUQgPSAkVXNlck9iamVjdC0+VXNlckFkZCgKICAgICAgICBVc2VyRmlyc3RuYW1lID0+ICdJVFNNQ2hhbmdlJyAuICRDb3VudGVyLAogICAgICAgIFVzZXJMYXN0bmFtZSAgPT4gJ1VuaXRUZXN0JywKICAgICAgICBVc2VyTG9naW4gICAgID0+ICdVbml0VGVzdC1JVFNNQ2hhbmdlLScgLiAkQ291bnRlciAuICRIZWxwZXJPYmplY3QtPkdldFJhbmRvbU51bWJlcigpLAogICAgICAgIFVzZXJFbWFpbCAgICAgPT4gJ1VuaXRUZXN0LUlUU01DaGFuZ2UtJyAuICRDb3VudGVyIC4gJ0Bsb2NhbGhvc3QnLAogICAgICAgIFZhbGlkSUQgICAgICAgPT4gJFZhbGlkT2JqZWN0LT5WYWxpZExvb2t1cCggVmFsaWQgPT4gJ3ZhbGlkJyApLAogICAgICAgIENoYW5nZVVzZXJJRCAgPT4gMSwKICAgICk7CiAgICBwdXNoIEBVc2VySURzLCAkVXNlcklEOwoKICAgICMgY3JlYXRlIG5ldyBjdXN0b21lcnMgZm9yIHRoZSB0ZXN0cwogICAgbXkgJEN1c3RvbWVyVXNlcklEID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyQWRkKAogICAgICAgIFNvdXJjZSAgICAgICAgID0+ICdDdXN0b21lclVzZXInLAogICAgICAgIFVzZXJGaXJzdG5hbWUgID0+ICdJVFNNQ2hhbmdlQ3VzdG9tZXInIC4gJENvdW50ZXIsCiAgICAgICAgVXNlckxhc3RuYW1lICAgPT4gJ1VuaXRUZXN0Q3VzdG9tZXInLAogICAgICAgIFVzZXJDdXN0b21lcklEID0+ICdVQ1QnIC4gJENvdW50ZXIgLiAkSGVscGVyT2JqZWN0LT5HZXRSYW5kb21OdW1iZXIoKSwKICAgICAgICBVc2VyTG9naW4gICAgICA9PiAnVW5pdFRlc3QtSVRTTUNoYW5nZS1DdXN0b21lci0nIC4gJENvdW50ZXIgLiAkSGVscGVyT2JqZWN0LT5HZXRSYW5kb21OdW1iZXIoKSwKICAgICAgICBVc2VyRW1haWwgICAgICA9PiAnVW5pdFRlc3QtSVRTTUNoYW5nZS1DdXN0b21lci0nCiAgICAgICAgICAgIC4gJENvdW50ZXIKICAgICAgICAgICAgLiAkSGVscGVyT2JqZWN0LT5HZXRSYW5kb21OdW1iZXIoKQogICAgICAgICAgICAuICdAbG9jYWxob3N0JywKICAgICAgICBWYWxpZElEID0+ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoIFZhbGlkID0+ICd2YWxpZCcgKSwKICAgICAgICBVc2VySUQgID0+IDEsCiAgICApOwogICAgcHVzaCBAQ3VzdG9tZXJVc2VySURzLCAkQ3VzdG9tZXJVc2VySUQ7Cn0KCiMgc29ydCB0aGUgdXNlciBhbmQgY3VzdG9tZXIgdXNlciBhcnJheXMKQFVzZXJJRHMgICAgICAgICA9IHNvcnQgQFVzZXJJRHM7CkBDdXN0b21lclVzZXJJRHMgPSBzb3J0IEBDdXN0b21lclVzZXJJRHM7CgojIGNyZWF0ZSBub24gZXhpc3RpbmcgdXNlciBJRHMKZm9yICggMSAuLiAyICkgewogICAgTFBDOgogICAgZm9yIG15ICRMb29wUHJvdGVjdGlvbkNvdW50ZXIgKCAxIC4uIDEwMCApIHsKCiAgICAgICAgIyBjcmVhdGUgYSByYW5kb20gdXNlciBpZAogICAgICAgIG15ICRUZW1wTm9uRXhpc3RpbmdVc2VySUQgPSAkSGVscGVyT2JqZWN0LT5HZXRSYW5kb21OdW1iZXIoKTsKCiAgICAgICAgIyBjaGVjayBpZiByYW5kb20gdXNlciBpZCBleGlzdHMgYWxyZWFkeQogICAgICAgIG15ICVVc2VyRGF0YSA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRUZW1wTm9uRXhpc3RpbmdVc2VySUQsCiAgICAgICAgKTsKICAgICAgICBuZXh0IExQQyBpZiAlVXNlckRhdGE7CgogICAgICAgICMgd2UgZ290IGFuIHVudXNlZCB1c2VyIElECiAgICAgICAgcHVzaCBATm9uRXhpc3RpbmdVc2VySURzLCAkVGVtcE5vbkV4aXN0aW5nVXNlcklEOwogICAgICAgIGxhc3QgTFBDOwogICAgfQp9CgojIHNldCAzcmQgdXNlciBpbnZhbGlkCiRVc2VyT2JqZWN0LT5Vc2VyVXBkYXRlKAogICAgJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgIFVzZXJJRCA9PiAkVXNlcklEc1syXSwKICAgICksCiAgICBWYWxpZElEICAgICAgPT4gJFZhbGlkT2JqZWN0LT5WYWxpZExvb2t1cCggVmFsaWQgPT4gJ2ludmFsaWQnICksCiAgICBDaGFuZ2VVc2VySUQgPT4gMSwKKTsKcHVzaCBASW52YWxpZFVzZXJJRHMsIHBvcCBAVXNlcklEczsKCiMgcmVzdG9yZSBvcmlnaW5hbCBlbWFpbCBjaGVjayBwYXJhbQokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnQ2hlY2tFbWFpbEFkZHJlc3NlcycsCiAgICBWYWx1ZSA9PiAkQ2hlY2tFbWFpbEFkZHJlc3Nlc09yZywKKTsKCiMgdHVybiBvZmYgU2VuZE5vdGlmaWNhdGlvbnMsIGluIG9yZGVyIHRvIGF2b2lkIGEgbG90IG9mIHVzZWxlc3MgbWFpbHMKbXkgJFNlbmROb3RpZmljYXRpb25zT3JnID0gJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNQ2hhbmdlOjpTZW5kTm90aWZjYXRpb25zJyk7CiRDb25maWdPYmplY3QtPlNldCgKICAgIEtleSAgID0+ICdJVFNNQ2hhbmdlOjpTZW5kTm90aWZpY2F0aW9ucycsCiAgICBWYWx1ZSA9PiAwLAopOwoKIyBzYXZlIG9yaWdpbmFsIGR5bmFtaWMgZmllbGQgY29uZmlndXJhdGlvbgpteSAkT3JpZ2luYWxEeW5hbWljRmllbGRzID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgIFZhbGlkID0+IDAsCik7CgpteSAkVW5pcXVlTmFtZVByZWZpeCA9ICdVbml0VGVzdENoYW5nZScgLiAkSGVscGVyT2JqZWN0LT5HZXRSYW5kb21OdW1iZXIoKTsKCiMgY3JlYXRlIHNvbWUgZHluYW1pYyBmaWVsZHMgZm9yIGNoYW5nZXMgKGFuZCBmb3Igd29ya29yZGVycykKbXkgQER5bmFtaWNGaWVsZHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScsCiAgICAgICAgTGFiZWwgICAgICA9PiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScsCiAgICAgICAgRmllbGRPcmRlciA9PiAxMDAwMCwKICAgICAgICBGaWVsZFR5cGUgID0+ICdUZXh0JywKICAgICAgICBPYmplY3RUeXBlID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgIENvbmZpZyAgICAgPT4gewogICAgICAgICAgICBOYW1lICAgICAgICA9PiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScsCiAgICAgICAgICAgIERlc2NyaXB0aW9uID0+ICdEZXNjcmlwdGlvbiBmb3IgRHluYW1pYyBGaWVsZC4nLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInLAogICAgICAgIExhYmVsICAgICAgPT4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInLAogICAgICAgIEZpZWxkT3JkZXIgPT4gMTAwMDAsCiAgICAgICAgRmllbGRUeXBlICA9PiAnVGV4dCcsCiAgICAgICAgT2JqZWN0VHlwZSA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICBDb25maWcgICAgID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInLAogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAnRGVzY3JpcHRpb24gZm9yIER5bmFtaWMgRmllbGQuJywKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QzJywKICAgICAgICBMYWJlbCAgICAgID0+ICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QzJywKICAgICAgICBGaWVsZE9yZGVyID0+IDEwMDAwLAogICAgICAgIEZpZWxkVHlwZSAgPT4gJ1RleHQnLAogICAgICAgIE9iamVjdFR5cGUgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgQ29uZmlnICAgICA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QzJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0Rlc2NyaXB0aW9uIGZvciBEeW5hbWljIEZpZWxkLicsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0NCcsCiAgICAgICAgTGFiZWwgICAgICA9PiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0NCcsCiAgICAgICAgRmllbGRPcmRlciA9PiAxMDAwMCwKICAgICAgICBGaWVsZFR5cGUgID0+ICdUZXh0JywKICAgICAgICBPYmplY3RUeXBlID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgIENvbmZpZyAgICAgPT4gewogICAgICAgICAgICBOYW1lICAgICAgICA9PiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0NCcsCiAgICAgICAgICAgIERlc2NyaXB0aW9uID0+ICdEZXNjcmlwdGlvbiBmb3IgRHluYW1pYyBGaWVsZC4nLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnV29ya29yZGVyVGVzdDEnLAogICAgICAgIExhYmVsICAgICAgPT4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnV29ya29yZGVyVGVzdDEnLAogICAgICAgIEZpZWxkT3JkZXIgPT4gMTAwMDAsCiAgICAgICAgRmllbGRUeXBlICA9PiAnVGV4dCcsCiAgICAgICAgT2JqZWN0VHlwZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICBDb25maWcgICAgID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnV29ya29yZGVyVGVzdDEnLAogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAnRGVzY3JpcHRpb24gZm9yIER5bmFtaWMgRmllbGQuJywKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICRVbmlxdWVOYW1lUHJlZml4IC4gJ1dvcmtvcmRlclRlc3QyJywKICAgICAgICBMYWJlbCAgICAgID0+ICRVbmlxdWVOYW1lUHJlZml4IC4gJ1dvcmtvcmRlclRlc3QyJywKICAgICAgICBGaWVsZE9yZGVyID0+IDEwMDAwLAogICAgICAgIEZpZWxkVHlwZSAgPT4gJ1RleHQnLAogICAgICAgIE9iamVjdFR5cGUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgQ29uZmlnICAgICA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICRVbmlxdWVOYW1lUHJlZml4IC4gJ1dvcmtvcmRlclRlc3QyJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0Rlc2NyaXB0aW9uIGZvciBEeW5hbWljIEZpZWxkLicsCiAgICAgICAgfSwKICAgIH0sCik7CgpteSBARHluYW1pY0ZpZWxkSURzOwpmb3IgbXkgJFRlc3QgKEBEeW5hbWljRmllbGRzKSB7CgogICAgIyBhZGQgZHluYW1pYyBmaWVsZAogICAgbXkgJER5bmFtaWNGaWVsZElEID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkQWRkKAogICAgICAgICV7JFRlc3R9LAogICAgKTsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkRHluYW1pY0ZpZWxkSUQsCiAgICAgICAgIiRUZXN0LT57TmFtZX0gLSBEeW5hbWljRmllbGRBZGQoKSIsCiAgICApOwoKICAgICMgcmVtZW1iZXIgaWQgdG8gZGVsZXRlIGl0IGxhdGVyCiAgICBwdXNoIEBEeW5hbWljRmllbGRJRHMsICREeW5hbWljRmllbGRJRDsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3QgSVRTTUNoYW5nZSBBUEkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBkZWZpbmUgcHVibGljIGludGVyZmFjZSAoaW4gYWxwaGFiZXRpY2FsIG9yZGVyKQpteSBAT2JqZWN0TWV0aG9kcyA9IHF3KAogICAgQ2hhbmdlQWRkCiAgICBDaGFuZ2VBdHRhY2htZW50QWRkCiAgICBDaGFuZ2VBdHRhY2htZW50RGVsZXRlCiAgICBDaGFuZ2VBdHRhY2htZW50RXhpc3RzCiAgICBDaGFuZ2VBdHRhY2htZW50R2V0CiAgICBDaGFuZ2VBdHRhY2htZW50TGlzdAogICAgQ2hhbmdlQ0FCRGVsZXRlCiAgICBDaGFuZ2VDQUJHZXQKICAgIENoYW5nZUNBQlVwZGF0ZQogICAgQ2hhbmdlQ0lQTG9va3VwCiAgICBDaGFuZ2VEZWxldGUKICAgIENoYW5nZUdldAogICAgQ2hhbmdlTGlzdAogICAgQ2hhbmdlTG9va3VwCiAgICBDaGFuZ2VQb3NzaWJsZUNJUEdldAogICAgQ2hhbmdlUG9zc2libGVTdGF0ZXNHZXQKICAgIENoYW5nZVNlYXJjaAogICAgQ2hhbmdlU3RhdGVMb29rdXAKICAgIENoYW5nZVVwZGF0ZQogICAgUGVybWlzc2lvbgopOwoKIyBjaGVjayBpZiBzdWJzIGFyZSBhdmFpbGFibGUKZm9yIG15ICRPYmplY3RNZXRob2QgKEBPYmplY3RNZXRob2RzKSB7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQ2hhbmdlT2JqZWN0LT5jYW4oJE9iamVjdE1ldGhvZCksCiAgICAgICAgIlRlc3QgIiAuICRUZXN0Q291bnQrKyAuICIgLSBjaGVjayAnY2FuICRPYmplY3RNZXRob2QnIiwKICAgICk7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBzZWFyY2ggZm9yIGRlZmF1bHQgSVRTTUNoYW5nZS1zdGF0ZXMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBkZWZpbmUgZGVmYXVsdCBJVFNNQ2hhbmdlLXN0YXRlcwojIGNhbid0IHVzZSBxdyBkdWUgdG8gc3BhY2VzIGluIHN0YXRlcwpteSBARGVmYXVsdENoYW5nZVN0YXRlcyA9ICgKICAgICdyZXF1ZXN0ZWQnLAogICAgJ3BlbmRpbmcgYXBwcm92YWwnLAogICAgJ3JlamVjdGVkJywKICAgICdhcHByb3ZlZCcsCiAgICAnaW4gcHJvZ3Jlc3MnLAogICAgJ3BlbmRpbmcgcGlyJywKICAgICdzdWNjZXNzZnVsJywKICAgICdmYWlsZWQnLAogICAgJ2NhbmNlbGVkJywKICAgICdyZXRyYWN0ZWQnLAopOwoKIyBnZXQgaXRlbSBsaXN0IG9mIHRoZSBjaGFuZ2Ugc3RhdGVzIHdpdGggc3dhcHBlZCBrZXlzIGFuZCB2YWx1ZXMKbXkgJUNoYW5nZVN0YXRlSUQyTmFtZSA9ICV7CiAgICAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICkgfHwge30KfTsKbXkgJUNoYW5nZVN0YXRlTmFtZTJJRCAgID0gcmV2ZXJzZSAlQ2hhbmdlU3RhdGVJRDJOYW1lOwpteSBAU29ydGVkQ2hhbmdlU3RhdGVJRHMgPSBzb3J0IGtleXMgJUNoYW5nZVN0YXRlSUQyTmFtZTsKCiMgY2hlY2sgaWYgc3RhdGVzIGFyZSBpbiBHZW5lcmFsQ2F0YWxvZwpmb3IgbXkgJERlZmF1bHRDaGFuZ2VTdGF0ZSAoQERlZmF1bHRDaGFuZ2VTdGF0ZXMpIHsKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRDaGFuZ2VTdGF0ZU5hbWUySUR7JERlZmF1bHRDaGFuZ2VTdGF0ZX0sCiAgICAgICAgIlRlc3QgIiAuICRUZXN0Q291bnQrKyAuICIgLSBjaGVjayBzdGF0ZSAnJERlZmF1bHRDaGFuZ2VTdGF0ZSciLAogICAgKTsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3QgdGhlIHN0YXRlIGxvb2t1cCBtZXRob2QKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBpbnZlc3RpZ2F0ZSB0aGUgZGVmYXVsdCBzdGF0ZXMKZm9yIG15ICRTdGF0ZSAoQERlZmF1bHRDaGFuZ2VTdGF0ZXMpIHsKCiAgICAjIGxvb2sgdXAgdGhlIHN0YXRlIG5hbWUKICAgIG15ICRMb29rZWRVcFN0YXRlSUQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTdGF0ZUxvb2t1cCgKICAgICAgICBDaGFuZ2VTdGF0ZSA9PiAkU3RhdGUsCiAgICApOwoKICAgICRTZWxmLT5JcygKICAgICAgICAkTG9va2VkVXBTdGF0ZUlELAogICAgICAgICRDaGFuZ2VTdGF0ZU5hbWUySUR7JFN0YXRlfSwKICAgICAgICAiTG9vayB1cCBzdGF0ZSAnJFN0YXRlJyIsCiAgICApOwoKICAgICMgZG8gdGhlIHJldmVyc2UgbG9va3VwCiAgICBteSAkTG9va2VkVXBTdGF0ZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVN0YXRlTG9va3VwKAogICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJExvb2tlZFVwU3RhdGVJRCwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgICRMb29rZWRVcFN0YXRlLAogICAgICAgICRTdGF0ZSwKICAgICAgICAiTG9vayB1cCBzdGF0ZSBpZCAnJExvb2tlZFVwU3RhdGVJRCciLAogICAgKTsKfQoKIyBub3cgc29tZSBwYXJhbSBjaGVja3MgZm9yIENoYW5nZVN0YXRlTG9va3VwCm15ICRMb29rdXBPayA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVN0YXRlTG9va3VwKCk7CgokU2VsZi0+RmFsc2UoCiAgICAkTG9va3VwT2ssCiAgICAnTm8gcGFyYW1zIHBhc3NlZCB0byBDaGFuZ2VTdGF0ZUxvb2t1cCgpJywKKTsKCiRMb29rdXBPayA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVN0YXRlTG9va3VwKAogICAgQ2hhbmdlU3RhdGUgICA9PiAnYXBwcm92ZWQnLAogICAgQ2hhbmdlU3RhdGVJRCA9PiAyLAopOwoKJFNlbGYtPkZhbHNlKAogICAgJExvb2t1cE9rLAogICAgJ0V4Y2x1c2l2ZSBwYXJhbXMgcGFzc2VkIHRvIENoYW5nZVN0YXRlTG9va3VwKCknLAopOwoKJExvb2t1cE9rID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU3RhdGVMb29rdXAoCiAgICBTdGF0ZSA9PiAnYXBwcm92ZWQnLAopOwoKJFNlbGYtPkZhbHNlKAogICAgJExvb2t1cE9rLAogICAgIkluY29ycmVjdCBwYXJhbSAnU3RhdGUnIHBhc3NlZCB0byBDaGFuZ2VTdGF0ZUxvb2t1cCgpIiwKKTsKCiRMb29rdXBPayA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVN0YXRlTG9va3VwKAogICAgU3RhdGVJRCA9PiAyLAopOwoKJFNlbGYtPkZhbHNlKAogICAgJExvb2t1cE9rLAogICAgIkluY29ycmVjdCBwYXJhbSAnU3RhdGVJRCcgcGFzc2VkIHRvIENoYW5nZVN0YXRlTG9va3VwKCkiLAopOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIGNoZWNrIGV4aXN0ZW5jZSBvZiB0aGUgZGVmYXVsdCBoaXN0b3J5IHR5cGVzCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCm15IEBEZWZhdWx0SGlzdG9yeVR5cGVzID0gcXcoCiAgICBDaGFuZ2VBZGQKICAgIENoYW5nZVVwZGF0ZQogICAgQ2hhbmdlRGVsZXRlCiAgICBDaGFuZ2VDQUJVcGRhdGUKICAgIENoYW5nZUNBQkRlbGV0ZQogICAgQ2hhbmdlTGlua0FkZAogICAgQ2hhbmdlTGlua0RlbGV0ZQogICAgQ2hhbmdlQXR0YWNobWVudEFkZAogICAgQ2hhbmdlQXR0YWNobWVudERlbGV0ZQogICAgV29ya09yZGVyQWRkCiAgICBXb3JrT3JkZXJVcGRhdGUKICAgIFdvcmtPcmRlckRlbGV0ZQogICAgV29ya09yZGVyTGlua0FkZAogICAgV29ya09yZGVyTGlua0RlbGV0ZQogICAgV29ya09yZGVyQXR0YWNobWVudEFkZAogICAgV29ya09yZGVyQXR0YWNobWVudERlbGV0ZQogICAgV29ya09yZGVyUmVwb3J0QXR0YWNobWVudEFkZAogICAgV29ya09yZGVyUmVwb3J0QXR0YWNobWVudERlbGV0ZQogICAgQ2hhbmdlUGxhbm5lZFN0YXJ0VGltZVJlYWNoZWQKICAgIENoYW5nZVBsYW5uZWRFbmRUaW1lUmVhY2hlZAogICAgQ2hhbmdlQWN0dWFsU3RhcnRUaW1lUmVhY2hlZAogICAgQ2hhbmdlQWN0dWFsRW5kVGltZVJlYWNoZWQKICAgIFdvcmtPcmRlclBsYW5uZWRTdGFydFRpbWVSZWFjaGVkCiAgICBXb3JrT3JkZXJQbGFubmVkRW5kVGltZVJlYWNoZWQKICAgIFdvcmtPcmRlckFjdHVhbFN0YXJ0VGltZVJlYWNoZWQKICAgIFdvcmtPcmRlckFjdHVhbEVuZFRpbWVSZWFjaGVkCiAgICBDaGFuZ2VSZXF1ZXN0ZWRUaW1lUmVhY2hlZAogICAgQ29uZGl0aW9uQWRkCiAgICBDb25kaXRpb25VcGRhdGUKICAgIENvbmRpdGlvbkRlbGV0ZQogICAgQ29uZGl0aW9uRGVsZXRlQWxsCiAgICBFeHByZXNzaW9uQWRkCiAgICBFeHByZXNzaW9uVXBkYXRlCiAgICBFeHByZXNzaW9uRGVsZXRlCiAgICBFeHByZXNzaW9uRGVsZXRlQWxsCiAgICBBY3Rpb25BZGQKICAgIEFjdGlvblVwZGF0ZQogICAgQWN0aW9uRGVsZXRlCiAgICBBY3Rpb25EZWxldGVBbGwKICAgIEFjdGlvbkV4ZWN1dGUKICAgIENoYW5nZU5vdGlmaWNhdGlvblNlbnQKICAgIFdvcmtPcmRlck5vdGlmaWNhdGlvblNlbnQKKTsKCiMgaW52ZXN0aWdhdGUgdGhlIGRlZmF1bHQgaGlzdG9yeSB0eXBlcwpmb3IgbXkgJEhpc3RvcnlUeXBlIChARGVmYXVsdEhpc3RvcnlUeXBlcykgewoKICAgICMgbG9vayB1cCB0aGUgbmFtZQogICAgbXkgJExvb2tlZFVwSGlzdG9yeVR5cGVJRCA9ICRIaXN0b3J5T2JqZWN0LT5IaXN0b3J5VHlwZUxvb2t1cCgKICAgICAgICBIaXN0b3J5VHlwZSA9PiAkSGlzdG9yeVR5cGUsCiAgICApOwoKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRMb29rZWRVcEhpc3RvcnlUeXBlSUQsCiAgICAgICAgIkxvb2sgdXAgaGlzdG9yeSB0eXBlICckSGlzdG9yeVR5cGUnIiwKICAgICk7CgogICAgIyBkbyB0aGUgcmV2ZXJzZSBsb29rdXAKICAgIG15ICRMb29rZWRVcEhpc3RvcnlUeXBlID0gJEhpc3RvcnlPYmplY3QtPkhpc3RvcnlUeXBlTG9va3VwKAogICAgICAgIEhpc3RvcnlUeXBlSUQgPT4gJExvb2tlZFVwSGlzdG9yeVR5cGVJRCwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgICRMb29rZWRVcEhpc3RvcnlUeXBlLAogICAgICAgICRIaXN0b3J5VHlwZSwKICAgICAgICAiTG9vayB1cCBoaXN0b3J5IHR5cGUgaWQgJyRMb29rZWRVcEhpc3RvcnlUeXBlSUQnIiwKICAgICk7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBjaGVjayBleGlzdGVuY2Ugb2YgdGhlIGRlZmF1bHQgQ0lQCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCm15IEBDSVBWYWx1ZXMgPSAoICcxIHZlcnkgbG93JywgJzIgbG93JywgJzMgbm9ybWFsJywgJzQgaGlnaCcsICc1IHZlcnkgaGlnaCcgKTsKCiMgZ2V0IGxpc3Qgb2YgdGhlIGNhdGVnb3JpZXMgd2l0aCBzd2FwcGVkIGtleXMgYW5kIHZhbHVlcwpteSAlQ2hhbmdlQ2F0ZWdvcnlJRDJOYW1lID0gJXsKICAgICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUxpc3QoCiAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNhdGVnb3J5JywKICAgICkgfHwge30KfTsKbXkgJUNoYW5nZUNhdGVnb3J5TmFtZTJJRCAgID0gcmV2ZXJzZSAlQ2hhbmdlQ2F0ZWdvcnlJRDJOYW1lOwpteSBAU29ydGVkQ2hhbmdlQ2F0ZWdvcnlJRHMgPSBzb3J0IGtleXMgJUNoYW5nZUNhdGVnb3J5SUQyTmFtZTsKCiMgZ2V0IGxpc3Qgb2YgdGhlIGltcGFjdHMgd2l0aCBzd2FwcGVkIGtleXMgYW5kIHZhbHVlcwpteSAlQ2hhbmdlSW1wYWN0SUQyTmFtZSA9ICV7CiAgICAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpJbXBhY3QnLAogICAgKSB8fCB7fQp9OwpteSAlQ2hhbmdlSW1wYWN0TmFtZTJJRCAgID0gcmV2ZXJzZSAlQ2hhbmdlSW1wYWN0SUQyTmFtZTsKbXkgQFNvcnRlZENoYW5nZUltcGFjdElEcyA9IHNvcnQga2V5cyAlQ2hhbmdlSW1wYWN0SUQyTmFtZTsKCiMgZ2V0IGxpc3Qgb2YgdGhlIHByaW9yaXRpZXMgd2l0aCBzd2FwcGVkIGtleXMgYW5kIHZhbHVlcwpteSAlQ2hhbmdlUHJpb3JpdHlJRDJOYW1lID0gJXsKICAgICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUxpc3QoCiAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OlByaW9yaXR5JywKICAgICkgfHwge30KfTsKbXkgJUNoYW5nZVByaW9yaXR5TmFtZTJJRCAgID0gcmV2ZXJzZSAlQ2hhbmdlUHJpb3JpdHlJRDJOYW1lOwpteSBAU29ydGVkQ2hhbmdlUHJpb3JpdHlJRHMgPSBzb3J0IGtleXMgJUNoYW5nZVByaW9yaXR5SUQyTmFtZTsKCiMgY2hlY2sgaWYgQ0lQIHZhbHVlcyBhcmUgaW4gR2VuZXJhbENhdGFsb2cKZm9yIG15ICRDSVBWYWx1ZSAoQENJUFZhbHVlcykgewoKICAgICMgdGVzdCBjYXRlZ29yeQogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJENoYW5nZUNhdGVnb3J5TmFtZTJJRHskQ0lQVmFsdWV9LAogICAgICAgICJUZXN0ICIgLiAkVGVzdENvdW50KysgLiAiIC0gY2hlY2sgY2F0ZWdvcnkgJyRDSVBWYWx1ZScgKGdlbmVyYWwgY2F0YWxvZykiCiAgICApOwoKICAgIG15ICRDYXRlZ29yeUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQ0lQTG9va3VwKAogICAgICAgIFR5cGUgPT4gJ0NhdGVnb3J5JywKICAgICAgICBDSVAgID0+ICRDSVBWYWx1ZSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQ2F0ZWdvcnlJRCwKICAgICAgICAiVGVzdCAiIC4gJFRlc3RDb3VudCAuICIgLSBjaGVjayBjYXRlZ29yeSAnJENJUFZhbHVlJyAoQ2hhbmdlQ0lQTG9va3VwKSIKICAgICk7CgogICAgIyB0ZXN0IGltcGFjdAogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJENoYW5nZUltcGFjdE5hbWUySUR7JENJUFZhbHVlfSwKICAgICAgICAiVGVzdCAiIC4gJFRlc3RDb3VudCsrIC4gIiAtIGNoZWNrIGltcGFjdCAnJENJUFZhbHVlJyAoZ2VuZXJhbCBjYXRhbG9nKSIKICAgICk7CgogICAgbXkgJEltcGFjdElEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQ0lQTG9va3VwKAogICAgICAgIFR5cGUgPT4gJ0ltcGFjdCcsCiAgICAgICAgQ0lQICA9PiAkQ0lQVmFsdWUsCiAgICApOwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJEltcGFjdElELAogICAgICAgICJUZXN0ICIgLiAkVGVzdENvdW50IC4gIiAtIGNoZWNrIGltcGFjdCAnJENJUFZhbHVlJyAoQ2hhbmdlQ0lQTG9va3VwKSIKICAgICk7CgogICAgIyB0ZXN0IHByaW9yaXR5CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQ2hhbmdlUHJpb3JpdHlOYW1lMklEeyRDSVBWYWx1ZX0sCiAgICAgICAgIlRlc3QgIiAuICRUZXN0Q291bnQrKyAuICIgLSBjaGVjayBwcmlvcml0eSAnJENJUFZhbHVlJyAoZ2VuZXJhbCBjYXRhbG9nKSIKICAgICk7CgogICAgbXkgJFByaW9yaXR5SUQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VDSVBMb29rdXAoCiAgICAgICAgVHlwZSA9PiAnUHJpb3JpdHknLAogICAgICAgIENJUCAgPT4gJENJUFZhbHVlLAogICAgKTsKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRQcmlvcml0eUlELAogICAgICAgICJUZXN0ICIgLiAkVGVzdENvdW50IC4gIiAtIGNoZWNrIHByaW9yaXR5ICckQ0lQVmFsdWUnIChDaGFuZ2VDSVBMb29rdXApIgogICAgKTsKCn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBjaGVjayBleGlzdGVuY2Ugb2YgdGhlIGdyb3VwcyB0aGF0IGFyZSB1c2VkIGZvciBQZXJtaXNzaW9uCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiMgZ2V0IG1hcHBpbmcgb2YgdGhlIGdyb3VwIG5hbWUgdG8gdGhlIGdyb3VwIGlkCm15ICVHcm91cE5hbWUySUQgPSByZXZlcnNlICRHcm91cE9iamVjdC0+R3JvdXBMaXN0KCBWYWxpZCA9PiAxICk7CgojIGNoZWNrIGlmIHRoZSBncm91cHMgd2VyZSBmb3VuZApmb3IgbXkgJEdyb3VwIChxdyggaXRzbS1jaGFuZ2UgaXRzbS1jaGFuZ2UtYnVpbGRlciBpdHNtLWNoYW5nZS1tYW5hZ2VyICkpIHsKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRHcm91cE5hbWUySUR7JEdyb3VwfSwKICAgICAgICAiVGVzdCAiIC4gJFRlc3RDb3VudCsrIC4gIiAtIGNoZWNrIGdyb3VwICckR3JvdXAnIgogICAgKTsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIGdldCB2YXJpYWJsZXMgZm9yIHRlc3QKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwpteSAkRGVmYXVsdENhdGVnb3J5ID0gJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNQ2hhbmdlOjpDYXRlZ29yeTo6RGVmYXVsdCcpOwpteSAkRGVmYXVsdEltcGFjdCAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNQ2hhbmdlOjpJbXBhY3Q6OkRlZmF1bHQnKTsKbXkgJERlZmF1bHRQcmlvcml0eSA9ICRDSVBBbGxvY2F0ZU9iamVjdC0+UHJpb3JpdHlBbGxvY2F0aW9uR2V0KAogICAgQ2F0ZWdvcnlJRCA9PiAkQ2hhbmdlQ2F0ZWdvcnlOYW1lMklEeyREZWZhdWx0Q2F0ZWdvcnl9LAogICAgSW1wYWN0SUQgICA9PiAkQ2hhbmdlSW1wYWN0TmFtZTJJRHskRGVmYXVsdEltcGFjdH0sCik7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgZGVmaW5lIGdlbmVyYWwgY2hhbmdlIHRlc3RzCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiMgc3RvcmUgY3VycmVudCBUZXN0Q291bnQgZm9yIGJldHRlciB0ZXN0IGNhc2UgcmVjb2duaXRpb24KbXkgJFRlc3RDb3VudE1pc2MgPSAkVGVzdENvdW50OwoKIyBBbiB1bmlxdWUgaW5kZW50aWZpZXIsIHNvIHRoYXQgZGF0YSBmcm9tIGRpZmZlcmVudCB0ZXN0IHJ1bnMKIyB3b24ndCBiZSBtaXhlZCB1cC4gVGhlIHN0cmluZyBpcyBmb3JtYXRlZCB0byBhIGNvbnN0YW50IGxlbmd0aCwKIyBhcyB0aGUgY29udmVyc2lvbiB0byBwbGFpbiB0ZXh0IHdpdGggVG9Bc2NpaSgpIGRlcGVuZHMgb24gdGhlIHN0cmluZyBsZW5ndGguCm15ICRVbmlxdWVTaWduYXR1cmUgPSBzcHJpbnRmICdVbml0VGVzdC1JVFNNQ2hhbmdlLSUwNmQtJTAxMGQnLAogICAgJEhlbHBlck9iamVjdC0+R2V0UmFuZG9tTnVtYmVyKCksCiAgICB0aW1lKCk7Cm15ICROb1dpbGRjYXJkc1Rlc3RUaXRsZSA9IHNwcmludGYgJ1VuaXRUZXN0LUlUU01DaGFuZ2UtTm9XaWxkY2FyZHMtJTA2ZC0lMDEwZCcsCiAgICAkSGVscGVyT2JqZWN0LT5HZXRSYW5kb21OdW1iZXIoKSwKICAgIHRpbWUoKTsKCm15IEBDaGFuZ2VUZXN0cyA9ICgKCiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIwogICAgIyBUZXN0cyBvbiBDaGFuZ2VBZGQKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCgogICAgIyBDaGFuZ2UgZG9lc24ndCBjb250YWluIGFsbCBkYXRhIChyZXF1aXJlZCBhdHRyaWJ1dGVzKQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGNvbnRhaW5zIG5vIHBhcmFtcyBmb3IgQ2hhbmdlQWRkLicsCiAgICAgICAgRmFpbHMgICAgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHdlIGV4cGVjdCB0aGlzIHRlc3QgdG8gZmFpbAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHt9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCiAgICAjIENoYW5nZSBjb250YWlucyBvbmx5IHJlcXVpcmVkIGRhdGEgLSBkZWZhdWx0IHVzZXIgKHJlcXVpcmVkIGF0dHJpYnV0ZXMpCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3Qgb25seSBuZWVkZWQgcGFyYW1zIChVc2VySUQgPSAxKSBmb3IgQ2hhbmdlQWRkLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgICA9PiAnJywKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgICAgICA9PiAnJywKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uUGxhaW4gICA9PiAnJywKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb24gICAgICA9PiAnJywKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb25QbGFpbiA9PiAnJywKICAgICAgICAgICAgICAgIENoYW5nZU1hbmFnZXJJRCAgICA9PiB1bmRlZiwKICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRCAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVySURzICAgICAgID0+IFtdLAogICAgICAgICAgICAgICAgV29ya09yZGVyQ291bnQgICAgID0+IDAsCiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICAgICAgICAgPT4gW10sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgICAgICAgPT4gW10sCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZUJ5ICAgICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBIaXN0b3J5R2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZUFkZCA9PiAnJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyAyNSwgMjYgXSwKICAgICAgICBMYWJlbCAgICAgID0+ICdDaGFuZ2VMb29rdXBUZXN0JywgICAgIyB0aGlzIGNoYW5nZSB3aWxsIGJlIHVzZWQgZm9yIHRlc3RpbmcgQ2hhbmdlTG9va3VwKCkuCiAgICB9LAoKICAgICMgQ2hhbmdlIGNvbnRhaW5zIG9ubHkgcmVxdWlyZWQgZGF0YSAtIGRlZmF1bHQgdXNlciAocmVxdWlyZWQgYXR0cmlidXRlcykKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBvbmx5IG5lZWRlZCBwYXJhbXMgKFVzZXJJRCAhPSAxKSBmb3IgQ2hhbmdlQWRkLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgPT4gJycsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgICAgPT4gJycsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uICAgPT4gJycsCiAgICAgICAgICAgICAgICBDaGFuZ2VNYW5hZ2VySUQgPT4gdW5kZWYsCiAgICAgICAgICAgICAgICBDaGFuZ2VCdWlsZGVySUQgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRHMgICAgPT4gW10sCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJDb3VudCAgPT4gMCwKICAgICAgICAgICAgICAgIENBQkFnZW50cyAgICAgICA9PiBbXSwKICAgICAgICAgICAgICAgIENBQkN1c3RvbWVycyAgICA9PiBbXSwKICAgICAgICAgICAgICAgIENyZWF0ZUJ5ICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZUJ5ICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyA0LCAyNSwgMjYgXSwKICAgIH0sCgogICAgIyBDaGFuZ2UgY29udGFpbnMgSFRNTCBkZXNjcmlwdGlvbiBhbmQganVzdGlmaWNhdGlvbgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IG9ubHkgbmVlZGVkIHBhcmFtcyAoVXNlcklEICE9IDEpIGZvciBDaGFuZ2VBZGQuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnPGI+VGhpcyA8dT5pczwvdT4gYm9sZDwvYj4gLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gJzxiPlRoaXMgPHU+aXM8L3U+IGJvbGQ8L2I+IC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgICA9PiAnJywKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgICAgICA9PiAnPGI+VGhpcyA8dT5pczwvdT4gYm9sZDwvYj4gLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uUGxhaW4gICA9PiAnVGhpcyBpcyBib2xkIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uICAgICAgPT4gJzxiPlRoaXMgPHU+aXM8L3U+IGJvbGQ8L2I+IC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uUGxhaW4gPT4gJ1RoaXMgaXMgYm9sZCAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2hhbmdlTWFuYWdlcklEICAgID0+IHVuZGVmLAogICAgICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgV29ya09yZGVySURzICAgICAgID0+IFtdLAogICAgICAgICAgICAgICAgV29ya09yZGVyQ291bnQgICAgID0+IDAsCiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICAgICAgICAgPT4gW10sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgICAgICAgPT4gW10sCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VCeSAgICAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgNCwgMjUsIDI2LCA0OCwgNDksIDUwIF0sCiAgICB9LAoKICAgICMgQ2hhbmdlIHdpdGggbmFtZWQgQ2hhbmdlU3RhdGUKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgU3RhdGVuYW1lcyAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZVN0YXRlcyAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGUgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgPT4gJycsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgICAgID0+ICdDaGFuZ2VTdGF0ZXMgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uUGxhaW4gPT4gJ0NoYW5nZVN0YXRlcyAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiAgICA9PiAnJywKICAgICAgICAgICAgICAgIENoYW5nZU1hbmFnZXJJRCAgPT4gdW5kZWYsCiAgICAgICAgICAgICAgICBDaGFuZ2VCdWlsZGVySUQgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCAgICA9PiAkQ2hhbmdlU3RhdGVOYW1lMklEe3JlcXVlc3RlZH0sCiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZSAgICAgID0+ICdyZXF1ZXN0ZWQnLAogICAgICAgICAgICAgICAgV29ya09yZGVySURzICAgICA9PiBbXSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlckNvdW50ICAgPT4gMCwKICAgICAgICAgICAgICAgIENBQkFnZW50cyAgICAgICAgPT4gW10sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgICAgID0+IFtdLAogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZUJ5ICAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEhpc3RvcnlHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlQWRkICAgID0+ICcnLAogICAgICAgICAgICAgICAgQ2hhbmdlVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIFsgJycsICdDaGFuZ2VTdGF0ZXMgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSBdLAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgWyB1bmRlZiwgJFVzZXJJRHNbMF0gXSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICBbIHVuZGVmLCAkQ2hhbmdlU3RhdGVOYW1lMklEe3JlcXVlc3RlZH0gXSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyA0LCAyNSwgMjYsIDMzLCAzNyBdLAogICAgfSwKCiAgICAjIENoYW5nZVVwZGF0ZSgpIHdpdGggdmFsaWQgbmFtZWQgQ2hhbmdlU3RhdGUKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlVXBkYXRlKCkgd2l0aCB2YWxpZCBuYW1lZCBDaGFuZ2VTdGF0ZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZVN0YXRlcyAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGUgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZVVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlID0+ICdwZW5kaW5nIGFwcHJvdmFsJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgID0+ICcnLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgID0+ICdDaGFuZ2VTdGF0ZXMgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb24gICA9PiAnJywKICAgICAgICAgICAgICAgIENoYW5nZU1hbmFnZXJJRCA9PiB1bmRlZiwKICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgICA9PiAkQ2hhbmdlU3RhdGVOYW1lMklEeydwZW5kaW5nIGFwcHJvdmFsJ30sCiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZSAgICAgPT4gJ3BlbmRpbmcgYXBwcm92YWwnLAogICAgICAgICAgICAgICAgV29ya09yZGVySURzICAgID0+IFtdLAogICAgICAgICAgICAgICAgV29ya09yZGVyQ291bnQgID0+IDAsCiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICAgICAgPT4gW10sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgICAgPT4gW10sCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VCeSAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgNCwgMjUsIDI2LCAzOCBdLAogICAgfSwKCiAgICAjIENoYW5nZVVwZGF0ZSgpIHdpdGggaW52YWxpZCBuYW1lZCBDaGFuZ2VTdGF0ZQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2VVcGRhdGUoKSB3aXRoIGludmFsaWQgbmFtZWQgQ2hhbmdlU3RhdGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBVcGRhdGVGYWlscyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZVN0YXRlcyAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGUgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZVVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlID0+ICdmYWlsZWQnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgPT4gJycsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgICAgPT4gJ0NoYW5nZVN0YXRlcyAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiAgID0+ICcnLAogICAgICAgICAgICAgICAgQ2hhbmdlTWFuYWdlcklEID0+IHVuZGVmLAogICAgICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCAgID0+ICRDaGFuZ2VTdGF0ZU5hbWUySUR7cmVxdWVzdGVkfSwKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlICAgICA9PiAncmVxdWVzdGVkJywKICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEcyAgICA9PiBbXSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlckNvdW50ICA9PiAwLAogICAgICAgICAgICAgICAgQ0FCQWdlbnRzICAgICAgID0+IFtdLAogICAgICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzICAgID0+IFtdLAogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbIDQsIDI1LCAyNiwgMzcgXSwKICAgIH0sCgogICAgIyBDaGFuZ2VVcGRhdGUoKSB3aXRoIG5vdCBhbGxvd2VkIG5leHQgQ2hhbmdlU3RhdGUKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlVXBkYXRlKCkgd2l0aCBub3QgYWxsb3dlZCBuZXh0IENoYW5nZVN0YXRlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgVXBkYXRlRmFpbHMgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZVN0YXRlcyAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGUgPT4gJ3BlbmRpbmcgYXBwcm92YWwnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDaGFuZ2VVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlID0+ICdzdWNjZXNzZnVsJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGUgPT4gJ3BlbmRpbmcgYXBwcm92YWwnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbMzhdLAogICAgfSwKCiAgICAjIENoYW5nZVVwZGF0ZSgpIHdpdGggbm90IGFsbG93ZWQgbmV4dCBDaGFuZ2VTdGF0ZSBidXQgQnlwYXNzU3RhdGVNYWNoaW5lIHBhcmFtZXRlcgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+CiAgICAgICAgICAgICdDaGFuZ2VVcGRhdGUoKSB3aXRoIG5vdCBhbGxvd2VkIG5leHQgQ2hhbmdlU3RhdGUgYnV0IEJ5cGFzc1N0YXRlTWFjaGluZSBwYXJhbWV0ZXIgLSAnCiAgICAgICAgICAgIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBTb3VyY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlU3RhdGVzIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZSA9PiAncGVuZGluZyBhcHByb3ZhbCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZVVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIEJ5cGFzc1N0YXRlTWFjaGluZSA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGUgICAgICAgID0+ICdzdWNjZXNzZnVsJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGUgPT4gJ3N1Y2Nlc3NmdWwnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgICMgY2hhbmdlIGNvbnRhaW5zIGFsbCBkYXRhIC0gKGFsbCBhdHRyaWJ1dGVzKQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGNvbnRhaW5zIGFsbCBwb3NzaWJsZSBwYXJhbXMgZm9yIENoYW5nZUFkZC4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICA9PiAnQ2hhbmdlIDEgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgID0+ICdDaGFuZ2UgMSAtIERlc2NyaXB0aW9uIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uICAgPT4gJ0NoYW5nZSAxIC0gSnVzdGlmaWNhdGlvbiAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2hhbmdlTWFuYWdlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ0FCQWdlbnRzICAgICAgID0+IFsKICAgICAgICAgICAgICAgICAgICAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICAkVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gWwogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgJEN1c3RvbWVyVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRHNbMV0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICA9PiAnQ2hhbmdlIDEgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgID0+ICdDaGFuZ2UgMSAtIERlc2NyaXB0aW9uIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uICAgPT4gJ0NoYW5nZSAxIC0gSnVzdGlmaWNhdGlvbiAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2hhbmdlTWFuYWdlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ0FCQWdlbnRzICAgICAgID0+IFsKICAgICAgICAgICAgICAgICAgICAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICAkVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gWwogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgJEN1c3RvbWVyVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgMiwgMywgNCwgNSwgNiwgOCwgOSwgMTAsIDEyLCAxMywgMjMsIDI0LCAyNyBdLAogICAgICAgIExhYmVsICAgICAgPT4gJ1NlYXJjaFRlc3QnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGlzIHRlc3Qgd2lsbCBiZSB1c2VkIGZvciBzZWFyY2ggdGVzdHMKICAgIH0sCgogICAgIyBjaGFuZ2UgY29udGFpbnMgdGl0bGUsIGRlc2NyaXB0aW9uLCBqdXN0aWZpY2F0aW9uLCBjaGFuZ2VtYW5hZ2VyaWQgYW5kIGNoYW5nZWJ1aWxkZXJpZAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGNvbnRhaW5zIGFsbCBwb3NzaWJsZSBwYXJhbXMgZm9yIENoYW5nZUFkZCAoU2Vjb25kIHRyeSkuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgPT4gJ0NoYW5nZSAyIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgICA9PiAnQ2hhbmdlIDIgLSBEZXNjcmlwdGlvbiAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiAgID0+ICdDaGFuZ2UgMiAtIEp1c3RpZmljYXRpb24gLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIENoYW5nZU1hbmFnZXJJRCA9PiAkVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRCA9PiAkVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIENBQkFnZW50cyAgICAgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgJFVzZXJJRHNbMV0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICAkQ3VzdG9tZXJVc2VySURzWzFdLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklEc1sxXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgID0+ICdDaGFuZ2UgMiAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgICAgPT4gJ0NoYW5nZSAyIC0gRGVzY3JpcHRpb24gLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb24gICA9PiAnQ2hhbmdlIDIgLSBKdXN0aWZpY2F0aW9uIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBDaGFuZ2VNYW5hZ2VySUQgPT4gJFVzZXJJRHNbMV0sCiAgICAgICAgICAgICAgICBDaGFuZ2VCdWlsZGVySUQgPT4gJFVzZXJJRHNbMV0sCiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICAgICAgPT4gWyAkVXNlcklEc1sxXSBdLAogICAgICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzICAgID0+IFsgJEN1c3RvbWVyVXNlcklEc1sxXSBdLAogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgID0+ICRVc2VySURzWzFdCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgMjMsIDI0IF0sCiAgICB9LAoKICAgICMgY2hhbmdlIGNvbnRhaW5zIGFsbCBkYXRhIC0gd3JvbmcgQ0FCIC0gKHdyb25nIENBQiBhdHRyaWJ1dGVzKQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGNvbnRhaW5zIGludmFsaWQgQ0FCIG1lbWJlcnMgZm9yIENoYW5nZUFkZC4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICA9PiAnQ2hhbmdlIDMgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgID0+ICdDaGFuZ2UgMyAtIERlc2NyaXB0aW9uIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uICAgPT4gJ0NoYW5nZSAzIC0gSnVzdGlmaWNhdGlvbiAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2hhbmdlTWFuYWdlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ0FCQWdlbnRzICAgICAgID0+IFsKICAgICAgICAgICAgICAgICAgICAkQ3VzdG9tZXJVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMV0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICAkVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRHNbMV0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHVuZGVmLAogICAgICAgIH0sCiAgICAgICAgRmFpbHMgPT4gMSwKICAgIH0sCgogICAgIyBjaGFuZ2UgY29udGFpbnMgcmVxdWlyZWQgZGF0YSAtIGR1cGxpY2F0ZSBDQUIgZW50cmllcyAtIChkdXBsaWNhdGUgQ0FCIGVudHJpZXMpCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgY29udGFpbnMgZHVwbGljYXRlIENBQiBtZW1iZXJzIGZvciBDaGFuZ2VBZGQuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgPT4gWwogICAgICAgICAgICAgICAgICAgICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgICRVc2VySURzWzFdLAogICAgICAgICAgICAgICAgICAgICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgICRVc2VySURzWzFdLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIENBQkN1c3RvbWVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJEN1c3RvbWVyVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICAkQ3VzdG9tZXJVc2VySURzWzFdLAogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgJEN1c3RvbWVyVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ0FCQWdlbnRzID0+IFsKICAgICAgICAgICAgICAgICAgICAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICAkVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gWwogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgJEN1c3RvbWVyVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBDcmVhdGVCeSA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRlc3Qgb24gbWF4IGxvbmcgcGFyYW1zICAocmVxdWlyZWQgYXR0cmlidXRlcykKICAgICMgVGhlIG1heCBwbGFpbiBzdHJpbmcgaXMgb25seSAxNzk5OTk5LCBiZWNhdXNlIFRvQXNjaWkoKSBhZGRzIGEgbmV3bGluZQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGZvciBtYXggc3RyaW5nIGxlbmd0aCBmb3IgQ2hhbmdlQWRkLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJ1QnIHggMjUwLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnRCcgeCAxNzk5OTk5LAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnSicgeCAxNzk5OTk5LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgPT4gJ1QnIHggMjUwLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgICAgID0+ICdEJyB4IDE3OTk5OTksCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvblBsYWluICAgPT4gJ0QnIHggMTc5OTk5OSAuICJcbiIsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uICAgICAgPT4gJ0onIHggMTc5OTk5OSwKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb25QbGFpbiA9PiAnSicgeCAxNzk5OTk5IC4gIlxuIiwKICAgICAgICAgICAgICAgIENoYW5nZU1hbmFnZXJJRCAgICA9PiB1bmRlZiwKICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRCAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEcyAgICAgICA9PiBbXSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlckNvdW50ICAgICA9PiAwLAogICAgICAgICAgICAgICAgQ0FCQWdlbnRzICAgICAgICAgID0+IFtdLAogICAgICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzICAgICAgID0+IFtdLAogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbIDExLCAxMiwgMTMgXSwKICAgIH0sCgogICAgIyB0ZXN0IG9uIG1heCsxIGxvbmcgcGFyYW1zICAocmVxdWlyZWQgYXR0cmlidXRlcykKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgbWF4KzEgc3RyaW5nIGxlbmd0aCBmb3IgQ2hhbmdlQWRkLicsCiAgICAgICAgRmFpbHMgICAgICAgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAnVCcgeCAyNTEsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdEJyB4IDE4MDAwMDAsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICdKJyB4IDE4MDAwMDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGVzdCBvbiBtYXgrMiBsb25nIHBhcmFtcyAgKHJlcXVpcmVkIGF0dHJpYnV0ZXMpCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgZm9yIG1heCsyIHN0cmluZyBsZW5ndGggZm9yIENoYW5nZUFkZC4nLAogICAgICAgIEZhaWxzICAgICAgID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJ1QnIHggMjUyLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnRCcgeCAxODAwMDAxLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnSicgeCAxODAwMDAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRlc3Qgb24gbWF4KzEgbG9uZyBwYXJhbXMgLSB0aXRsZSAgKHJlcXVpcmVkIGF0dHJpYnV0ZXMpCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgZm9yIG1heCsxIHN0cmluZyAtIHRpdGxlIC0gbGVuZ3RoIGZvciBDaGFuZ2VBZGQuJywKICAgICAgICBGYWlscyAgICAgICA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICdUJyB4IDI1MSwKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ0QnLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnSicsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGVzdCBvbiBtYXgrMSBsb25nIHBhcmFtcyAtIGRlc2NyaXB0aW9uIChyZXF1aXJlZCBhdHRyaWJ1dGVzKQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGZvciBtYXgrMSBzdHJpbmcgLSBkZXNjcmlwdGlvbiAtIGxlbmd0aCBmb3IgQ2hhbmdlQWRkLicsCiAgICAgICAgRmFpbHMgICAgICAgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAnVCcsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdEJyB4IDE4MDAwMDAsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICdKJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyB0ZXN0IG9uIG1heCsxIGxvbmcgcGFyYW1zIC0ganVzdGlmaWNhdGlvbiAocmVxdWlyZWQgYXR0cmlidXRlcykKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgbWF4KzEgc3RyaW5nIC0ganVzdGlmaWNhdGlvbiAtIGxlbmd0aCBmb3IgQ2hhbmdlQWRkLicsCiAgICAgICAgRmFpbHMgICAgICAgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAnVCcsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdEJywKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gJ0onIHggMTgwMDAwMCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyB0ZXN0IG9uIHVuZGVmIHBhcmFtcyAtIHRpdGxlICAocmVxdWlyZWQgYXR0cmlidXRlcykKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgdW5kZWYgLSB0aXRsZScsCiAgICAgICAgRmFpbHMgICAgICAgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiB1bmRlZiwKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ0QnLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnSicsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGVzdCBvbiB1bmRlZiBwYXJhbXMgLSBkZXNjcmlwdGlvbiAocmVxdWlyZWQgYXR0cmlidXRlcykKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgdW5kZWYgLSBkZXNjcmlwdGlvbicsCiAgICAgICAgRmFpbHMgICAgICAgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAnVCcsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+IHVuZGVmLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnSicsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGVzdCBvbiB1bmRlZiBwYXJhbXMgLSBqdXN0aWZpY2F0aW9uIChyZXF1aXJlZCBhdHRyaWJ1dGVzKQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGZvciB1bmRlZiAtIGp1c3RpZmljYXRpb24nLAogICAgICAgIEZhaWxzICAgICAgID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJ1QnLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnRCcsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+IHVuZGVmLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRlc3Qgb24gJzAnIHN0cmluZ3MgLSBkZWZhdWx0IHVzZXIgIChyZXF1aXJlZCBhdHRyaWJ1dGVzKQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICJUZXN0IGZvciAnMCcgc3RyaW5nIGhhbmRsaW5nIGZvciBDaGFuZ2VBZGQuIiwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICcwJywKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJzAnLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJzAnLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnMCcsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICcwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyAxOCwgMTksIDIwLCAyMSBdLAogICAgfSwKCiAgICAjIFRlc3QgdGl0bGUgd2l0aCBsZWFkaW5nIHdoaXRlc3BhY2UKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgdGl0bGUgd2l0aCBsZWFkaW5nIHdoaXRlc3BhY2UnLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gIiAgXHQgXG4gIFRpdGxlIHdpdGggbGVhZGluZyB3aGl0ZXNwYWNlIC0gIiAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICA9PiAiVGl0bGUgd2l0aCBsZWFkaW5nIHdoaXRlc3BhY2UgLSAiIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyA2LCA0NSBdLAogICAgfSwKCiAgICAjIFRlc3QgdGl0bGUgd2l0aCB0cmFpbGluZyB3aGl0ZXNwYWNlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgZm9yIHRpdGxlIHdpdGggdHJhaWxpbmcgd2hpdGVzcGFjZScsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAiVGl0bGUgd2l0aCB0cmFpbGluZyB3aGl0ZXNwYWNlIC0gIiAuICRVbmlxdWVTaWduYXR1cmUgLiAiICBcdCBcbiAgIiwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgID0+ICJUaXRsZSB3aXRoIHRyYWlsaW5nIHdoaXRlc3BhY2UgLSAiIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyA2LCA0NiBdLAogICAgfSwKCiAgICAjIFRlc3QgdGl0bGUgd2l0aCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgZm9yIHRpdGxlIHdpdGggbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZScsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAiICBcdCBcbiAgVGl0bGUgd2l0aCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIC0gIgogICAgICAgICAgICAgICAgICAgIC4gJFVuaXF1ZVNpZ25hdHVyZQogICAgICAgICAgICAgICAgICAgIC4gIiAgXHQgXG4gICIsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICA9PiAiVGl0bGUgd2l0aCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIC0gIiAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBDaGFuZ2VCdWlsZGVySUQgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgNiwgNDcgXSwKICAgIH0sCgogICAgIyBUZXN0IHRpdGxlIHdpdGggb25seSB3aGl0ZXNwYWNlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgZm9yIHRpdGxlIHdpdGggb25seSB3aGl0ZXNwYWNlJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICIgIFx0IFxuICAiLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgPT4gJycsCiAgICAgICAgICAgICAgICBDaGFuZ2VCdWlsZGVySUQgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFtdLAogICAgfSwKCiAgICAjIGEgY2hhbmdlIGZvciB0aGUgJ1VzaW5nV2lsZGNhcmRzID0+IDAnIHRlc3QKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiQSBjaGFuZ2UgZm9yIHRoZSAnVXNpbmdXaWxkY2FyZHMgPT4gMCcgdGVzdC4iLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJE5vV2lsZGNhcmRzVGVzdFRpdGxlLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAkTm9XaWxkY2FyZHNUZXN0VGl0bGUsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICROb1dpbGRjYXJkc1Rlc3RUaXRsZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAkTm9XaWxkY2FyZHNUZXN0VGl0bGUsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICROb1dpbGRjYXJkc1Rlc3RUaXRsZSwKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gJE5vV2lsZGNhcmRzVGVzdFRpdGxlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGVzdCBvbiBtaXhlZCB2YWxpZCBhbmQgaW52YWxpZCBDQUJBZ2VudHMgIChyZXF1aXJlZCBhdHRyaWJ1dGVzKQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IG9uIG1peGVkIHZhbGlkIGFuZCBpbnZhbGlkIENBQkFnZW50cyBmb3IgQ2hhbmdlQWRkLicsCiAgICAgICAgRmFpbHMgICAgICAgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gMSwKICAgICAgICAgICAgICAgIENBQkFnZW50cyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgJE5vbkV4aXN0aW5nVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgICAgICAkVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgICAgICAkTm9uRXhpc3RpbmdVc2VySURzWzBdLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyB0ZXN0IG9uIG1peGVkIHZhbGlkIGFuZCBpbnZhbGlkIENBQkN1c3RvbWVycyAgKHJlcXVpcmVkIGF0dHJpYnV0ZXMpCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3Qgb24gbWl4ZWQgdmFsaWQgYW5kIGludmFsaWQgQ0FCQ3VzdG9tZXJzIGZvciBDaGFuZ2VBZGQuJywKICAgICAgICBGYWlscyAgICAgICA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICAkQ3VzdG9tZXJVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMV0sCiAgICAgICAgICAgICAgICAgICAgJ1RoaXNJc0FuSW52YWxpZEN1c3RvbWVyVXNlcklkJywKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgdGVzdCBvbiBpbnZhbGlkIElEcyBmb3IgQ2hhbmdlTWFuYWdlcklEIGFuZCBDaGFuZ2VCdWlsZGVySUQKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBvbiBpbnZhbGlkIElEcyBmb3IgQ2hhbmdlTWFuYWdlcklEIGFuZCBDaGFuZ2VCdWlsZGVySUQgZm9yIENoYW5nZUFkZC4nLAogICAgICAgIEZhaWxzICAgICAgID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VNYW5hZ2VySUQgPT4gJE5vbkV4aXN0aW5nVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRCA9PiAkTm9uRXhpc3RpbmdVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRlc3Qgb24gaW52YWxpZCBJRHMgZm9yIENoYW5nZU1hbmFnZXJJRAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IG9uIGludmFsaWQgSUQgZm9yIENoYW5nZU1hbmFnZXJJRCBmb3IgQ2hhbmdlQWRkLicsCiAgICAgICAgRmFpbHMgICAgICAgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZU1hbmFnZXJJRCA9PiAkTm9uRXhpc3RpbmdVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRlc3Qgb24gaW52YWxpZCBJRHMgZm9yIENoYW5nZUJ1aWxkZXJJRAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IG9uIGludmFsaWQgSUQgZm9yIENoYW5nZUJ1aWxkZXJJRCBmb3IgQ2hhbmdlQWRkLicsCiAgICAgICAgRmFpbHMgICAgICAgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZU1hbmFnZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRCA9PiAkTm9uRXhpc3RpbmdVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRlc3Qgb24gaW52YWxpZCBSZXF1ZXN0ZWRUaW1lCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3Qgb24gaW52YWxpZCBSZXF1ZXN0ZWRUaW1lIGZvciBDaGFuZ2VBZGQuJywKICAgICAgICBGYWlscyAgICAgICA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFJlcXVlc3RlZFRpbWUgPT4gJ2FueXRoaW5nIGludmFsaWQnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRlc3Qgb24gdmFsaWQgUmVxdWVzdGVkVGltZQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IG9uIHZhbGlkIFJlcXVlc3RlZFRpbWUgZm9yIENoYW5nZUFkZC4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFJlcXVlc3RlZFRpbWUgPT4gJzIwMDktMTAtMjkgMTM6MzM6MzMnLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnUmVxdWVzdGVkVGltZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VCeSAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICcnLAogICAgICAgICAgICAgICAgUmVxdWVzdGVkVGltZSA9PiAnMjAwOS0xMC0yOSAxMzozMzozMycsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdSZXF1ZXN0ZWRUaW1lIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgNDIsIDQzIF0sCiAgICB9LAoKICAgICMgVGVzdCBkZWZhdWx0IENJUCB2YWx1ZXMKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBkZWZhdWx0IENJUCB2YWx1ZXMnLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Rlc3QgZGVmYXVsdCBDSVAgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgID0+ICdUZXN0IGRlZmF1bHQgQ0lQIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBDaGFuZ2VCdWlsZGVySUQgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDYXRlZ29yeSAgICAgICAgPT4gJERlZmF1bHRDYXRlZ29yeSwKICAgICAgICAgICAgICAgIENhdGVnb3J5SUQgICAgICA9PiAkQ2hhbmdlQ2F0ZWdvcnlOYW1lMklEeyREZWZhdWx0Q2F0ZWdvcnl9LAogICAgICAgICAgICAgICAgSW1wYWN0ICAgICAgICAgID0+ICREZWZhdWx0SW1wYWN0LAogICAgICAgICAgICAgICAgSW1wYWN0SUQgICAgICAgID0+ICRDaGFuZ2VJbXBhY3ROYW1lMklEeyREZWZhdWx0SW1wYWN0fSwKICAgICAgICAgICAgICAgIFByaW9yaXR5SUQgICAgICA9PiAkRGVmYXVsdFByaW9yaXR5LAogICAgICAgICAgICAgICAgUHJpb3JpdHkgICAgICAgID0+ICRDaGFuZ2VQcmlvcml0eUlEMk5hbWV7JERlZmF1bHRQcmlvcml0eX0sCgogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbNl0sCiAgICAgICAgTGFiZWwgICAgICA9PiAnT3JkZXJCeUNJUFRlc3RzJywgICAgIyB0aGlzIGNoYW5nZSB3aWxsIGJlIHVzZWQgaW4gb3JkZXIgYnkgc2VhcmNoIHRlc3RzCiAgICB9LAoKICAgICMgVGVzdCBjYXRlZ29yeQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGNhdGVnb3J5ICIxIHZlcnkgbG93IicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnVGVzdCBDSVAgKENhdGVnb3J5KSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2F0ZWdvcnkgICAgPT4gJzEgdmVyeSBsb3cnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgPT4gJ1Rlc3QgQ0lQIChDYXRlZ29yeSkgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENhdGVnb3J5ICAgICAgICA9PiAnMSB2ZXJ5IGxvdycsCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEICAgICAgPT4gJENoYW5nZUNhdGVnb3J5TmFtZTJJRHsnMSB2ZXJ5IGxvdyd9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbIDYsIDUxLCA1NCwgNTcsIDYwLCA2MywgNjQgXSwKICAgICAgICBMYWJlbCAgICAgID0+ICdPcmRlckJ5Q0lQVGVzdHMnLCAgICAgICAgICAgICAgICMgdGhpcyBjaGFuZ2Ugd2lsbCBiZSB1c2VkIGluIG9yZGVyIGJ5IHNlYXJjaCB0ZXN0cwogICAgfSwKCiAgICAjIFRlc3QgaW52YWxpZCBjYXRlZ29yeQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGludmFsaWQgY2F0ZWdvcnkgIjE4IHN1cGVyIGhpZ2giJywKICAgICAgICBGYWlscyAgICAgICA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Rlc3QgQ0lQIChDYXRlZ29yeSkgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIENhdGVnb3J5ICAgID0+ICcxOCBzdXBlciBoaWdoJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gW10sCiAgICB9LAoKICAgICMgVGVzdCBpbXBhY3QKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBpbXBhY3QgIjEgdmVyeSBsb3ciJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0IENJUCAoSW1wYWN0KSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgSW1wYWN0ICAgICAgPT4gJzEgdmVyeSBsb3cnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgPT4gJ1Rlc3QgQ0lQIChJbXBhY3QpIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBDaGFuZ2VCdWlsZGVySUQgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBJbXBhY3QgICAgICAgICAgPT4gJzEgdmVyeSBsb3cnLAogICAgICAgICAgICAgICAgSW1wYWN0SUQgICAgICAgID0+ICRDaGFuZ2VJbXBhY3ROYW1lMklEeycxIHZlcnkgbG93J30sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgNiwgNTIsIDU1LCA1OCwgNjEgXSwKICAgICAgICBMYWJlbCAgICAgID0+ICdPcmRlckJ5Q0lQVGVzdHMnLCAgICAgICAjIHRoaXMgY2hhbmdlIHdpbGwgYmUgdXNlZCBpbiBvcmRlciBieSBzZWFyY2ggdGVzdHMKICAgIH0sCgogICAgIyBUZXN0IGludmFsaWQgaW1wYWN0CiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgaW52YWxpZCBpbXBhY3QgIjE4IHN1cGVyIGhpZ2giJywKICAgICAgICBGYWlscyAgICAgICA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Rlc3QgQ0lQIChJbXBhY3QpIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBJbXBhY3QgICAgICA9PiAnMTggc3VwZXIgaGlnaCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFtdLAogICAgfSwKCiAgICAjIFRlc3QgcHJpb3JpdHkKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBwcmlvcml0eSAiMSB2ZXJ5IGxvdyInLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Rlc3QgQ0lQIChQcmlvcml0eSkgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFByaW9yaXR5ICAgID0+ICcxIHZlcnkgbG93JywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgID0+ICdUZXN0IENJUCAoUHJpb3JpdHkpIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBDaGFuZ2VCdWlsZGVySUQgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBQcmlvcml0eSAgICAgICAgPT4gJzEgdmVyeSBsb3cnLAogICAgICAgICAgICAgICAgUHJpb3JpdHlJRCAgICAgID0+ICRDaGFuZ2VQcmlvcml0eU5hbWUySUR7JzEgdmVyeSBsb3cnfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyA2LCA1MywgNTYsIDU5LCA2MiBdLAogICAgICAgIExhYmVsICAgICAgPT4gJ09yZGVyQnlDSVBUZXN0cycsICAgICAgICMgdGhpcyBjaGFuZ2Ugd2lsbCBiZSB1c2VkIGluIG9yZGVyIGJ5IHNlYXJjaCB0ZXN0cwogICAgfSwKCiAgICAjIFRlc3QgaW52YWxpZCBwcmlvcml0eQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGludmFsaWQgcHJpb3JpdHkgIjE4IHN1cGVyIGhpZ2giJywKICAgICAgICBGYWlscyAgICAgICA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Rlc3QgQ0lQIChQcmlvcml0eSkgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFByaW9yaXR5ICAgID0+ICcxOCBzdXBlciBoaWdoJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gW10sCiAgICB9LAoKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCiAgICAjIFRlc3RzIG9uIENoYW5nZVVwZGF0ZQogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKCiAgICAjIFVwZGF0ZSBjaGFuZ2Ugd2l0aG91dCByZXF1aXJlZCBwYXJhbXMgKHJlcXVpcmVkIGF0dHJpYnV0ZXMpCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgY29udGFpbnMgbm8gcGFyYW1zIGZvciBDaGFuZ2VVcGRhdGUoKS4nLAogICAgICAgIEZhaWxzICAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHdlIGV4cGVjdCB0aGlzIHRlc3QgdG8gZmFpbAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlVXBkYXRlID0+IHt9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZVVwZGF0ZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRlc3Qgb24gbWF4IGxvbmcgcGFyYW1zICAocmVxdWlyZWQgYXR0cmlidXRlcykKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgbWF4IHN0cmluZyBsZW5ndGggZm9yIENoYW5nZVVwZGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJ1QnIHggMjUwLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnRCcgeCAxNzk5OTk5LAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnSicgeCAxNzk5OTk5LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgPT4gJ1QnIHggMjUwLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgICAgID0+ICdEJyB4IDE3OTk5OTksCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvblBsYWluICAgPT4gJ0QnIHggMTc5OTk5OSAuICJcbiIsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uICAgICAgPT4gJ0onIHggMTc5OTk5OSwKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb25QbGFpbiA9PiAnSicgeCAxNzk5OTk5IC4gIlxuIiwKICAgICAgICAgICAgICAgIENoYW5nZU1hbmFnZXJJRCAgICA9PiB1bmRlZiwKICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRCAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEcyAgICAgICA9PiBbXSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlckNvdW50ICAgICA9PiAwLAogICAgICAgICAgICAgICAgQ0FCQWdlbnRzICAgICAgICAgID0+IFtdLAogICAgICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzICAgICAgID0+IFtdLAogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgMTEsIDE0LCAxNSwgMTYsIDE3IF0sCiAgICB9LAoKICAgICMgdGVzdCBvbiBtYXgrMSBsb25nIHBhcmFtcyAgKHJlcXVpcmVkIGF0dHJpYnV0ZXMpCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgZm9yIG1heCsxIHN0cmluZyBsZW5ndGggZm9yIENoYW5nZVVwZGF0ZS4nLAogICAgICAgIFVwZGF0ZUZhaWxzID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDaGFuZ2VVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAnVCcgeCAyNTEsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdEJyB4IDE4MDAwMDAsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICdKJyB4IDE4MDAwMDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJycsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICcnLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRlc3Qgb24gbWF4KzEgbG9uZyBwYXJhbXMgLSB0aXRsZSAgKHJlcXVpcmVkIGF0dHJpYnV0ZXMpCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgZm9yIG1heCsxIHN0cmluZyBsZW5ndGggLSB0aXRsZSAtIGZvciBDaGFuZ2VVcGRhdGUuJywKICAgICAgICBVcGRhdGVGYWlscyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJ1QnIHggMjUxLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnRCcsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICdKJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAnJywKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJycsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICcnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LCAgICAjIHRlc3Qgb24gbWF4KzEgbG9uZyBwYXJhbXMgLSBkZXNjcmlwdGlvbiAgKHJlcXVpcmVkIGF0dHJpYnV0ZXMpCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgZm9yIG1heCsxIHN0cmluZyBsZW5ndGggLSBkZXNjcmlwdGlvbiAtIGZvciBDaGFuZ2VVcGRhdGUuJywKICAgICAgICBVcGRhdGVGYWlscyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJ1QnLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnRCcgeCAxODAwMDAwLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnSicsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJycsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICcnLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwgICAgIyB0ZXN0IG9uIG1heCsxIGxvbmcgcGFyYW1zICAtIGp1c3RpZmljYXRpb24gLSAocmVxdWlyZWQgYXR0cmlidXRlcykKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgbWF4KzEgc3RyaW5nIGxlbmd0aCAtIGp1c3RpZmljYXRpb24gLSBmb3IgQ2hhbmdlVXBkYXRlLicsCiAgICAgICAgVXBkYXRlRmFpbHMgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZVVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICdUJywKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ0QnLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnSicgeCAxODAwMDAwLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICcnLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnJywKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gJycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyB0ZXN0IG9uICcwJyBzdHJpbmdzIC0gZGVmYXVsdCB1c2VyICAocmVxdWlyZWQgYXR0cmlidXRlcykKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiVGVzdCBmb3IgJzAnIHN0cmluZyBoYW5kbGluZyBmb3IgQ2hhbmdlVXBkYXRlLiIsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZVVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICcwJywKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJzAnLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJzAnLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnMCcsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICcwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRlc3Qgb24gdmFsaWQgUmVxdWVzdGVkVGltZQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IG9uIHZhbGlkIFJlcXVlc3RlZFRpbWUgZm9yIENoYW5nZVVwZGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFJlcXVlc3RlZFRpbWUgPT4gJzIwMDktMTAtMjkgMTM6MzM6MzMnLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnUmVxdWVzdGVkVGltZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDaGFuZ2VVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgUmVxdWVzdGVkVGltZSA9PiAnMjAwOS0xMS0wNiAwODoxNToyMicsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VCeSAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAnJywKICAgICAgICAgICAgICAgIFJlcXVlc3RlZFRpbWUgPT4gJzIwMDktMTEtMDYgMDg6MTU6MjInLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnUmVxdWVzdGVkVGltZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbNDNdLAogICAgfSwKCiAgICAjIHRlc3Qgb24gaW52YWxpZCBSZXF1ZXN0ZWRUaW1lCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3Qgb24gaW52YWxpZCBSZXF1ZXN0ZWRUaW1lIGZvciBDaGFuZ2VVcGRhdGUuJywKICAgICAgICBVcGRhdGVGYWlscyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFJlcXVlc3RlZFRpbWUgPT4gJzIwMDktMTAtMjkgMTM6MzM6MzMnLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnUmVxdWVzdGVkVGltZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDaGFuZ2VVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgUmVxdWVzdGVkVGltZSA9PiAnYW55dGhpbmcnLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAnJywKICAgICAgICAgICAgICAgIFJlcXVlc3RlZFRpbWUgPT4gJzIwMDktMTAtMjkgMTM6MzM6MzMnLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnUmVxdWVzdGVkVGltZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbIDQyLCA0MyBdLAogICAgfSwKCiAgICAjIFRlc3QgY2F0ZWdvcnkKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBjYXRlZ29yeSB1cGRhdGUgIjUgdmVyeSBoaWdoIicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnVGVzdCBDSVAgKENhdGVnb3J5KSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2F0ZWdvcnkgICAgPT4gJzIgbG93JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgICAgICAgICBDYXRlZ29yeSA9PiAnNSB2ZXJ5IGhpZ2gnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgPT4gJ1Rlc3QgQ0lQIChDYXRlZ29yeSkgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENhdGVnb3J5ICAgICAgICA9PiAnNSB2ZXJ5IGhpZ2gnLAogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgICAgID0+ICRDaGFuZ2VDYXRlZ29yeU5hbWUySUR7JzUgdmVyeSBoaWdoJ30sCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VCeSAgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyA2LCA1NCwgNjAgXSwKICAgICAgICBMYWJlbCAgICAgID0+ICdPcmRlckJ5Q0lQVGVzdHMnLCAgICAjIHRoaXMgY2hhbmdlIHdpbGwgYmUgdXNlZCBpbiBvcmRlciBieSBzZWFyY2ggdGVzdHMKICAgIH0sCgogICAgIyBUZXN0IGludmFsaWQgY2F0ZWdvcnkKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBpbnZhbGlkIGNhdGVnb3J5IHVwZGF0ZSAiMTggc3VwZXIgaGlnaCInLAogICAgICAgIFVwZGF0ZUZhaWxzID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnVGVzdCBpbnZhbGlkIHVwZGF0ZSBDSVAgKENhdGVnb3J5KSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2F0ZWdvcnkgICAgPT4gJzIgbG93JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgICAgICAgICBDYXRlZ29yeSA9PiAnMTggc3VwZXIgaGlnaCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICA9PiAnVGVzdCBpbnZhbGlkIHVwZGF0ZSBDSVAgKENhdGVnb3J5KSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2F0ZWdvcnkgICAgICAgID0+ICcyIGxvdycsCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEICAgICAgPT4gJENoYW5nZUNhdGVnb3J5TmFtZTJJRHsnMiBsb3cnfSwKICAgICAgICAgICAgICAgIENyZWF0ZUJ5ICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZUJ5ICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyA2LCA1NCwgNjAsIDYzLCA2NCBdLAogICAgICAgIExhYmVsICAgICAgPT4gJ09yZGVyQnlDSVBUZXN0cycsICAgICAgICMgdGhpcyBjaGFuZ2Ugd2lsbCBiZSB1c2VkIGluIG9yZGVyIGJ5IHNlYXJjaCB0ZXN0cwogICAgfSwKCiAgICAjIFRlc3QgaW1wYWN0CiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgaW1wYWN0IHVwZGF0ZSAiNSB2ZXJ5IGhpZ2giJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0IHVwZGF0ZSBDSVAgKEltcGFjdCkgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIEltcGFjdCAgICAgID0+ICcyIGxvdycsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZVVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgICAgIEltcGFjdCA9PiAnNSB2ZXJ5IGhpZ2gnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgPT4gJ1Rlc3QgdXBkYXRlIENJUCAoSW1wYWN0KSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgSW1wYWN0ICAgICAgICAgID0+ICc1IHZlcnkgaGlnaCcsCiAgICAgICAgICAgICAgICBJbXBhY3RJRCAgICAgICAgPT4gJENoYW5nZUltcGFjdE5hbWUySUR7JzUgdmVyeSBoaWdoJ30sCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VCeSAgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyA2LCA1NSwgNjEgXSwKICAgICAgICBMYWJlbCAgICAgID0+ICdPcmRlckJ5Q0lQVGVzdHMnLCAgICAjIHRoaXMgY2hhbmdlIHdpbGwgYmUgdXNlZCBpbiBvcmRlciBieSBzZWFyY2ggdGVzdHMKICAgIH0sCgogICAgIyBUZXN0IGludmFsaWQgaW1wYWN0CiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgaW52YWxpZCBpbXBhY3QgdXBkYXRlICIxOCBzdXBlciBoaWdoIicsCiAgICAgICAgVXBkYXRlRmFpbHMgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0IHVwZGF0ZSBpbnZhbGlkIENJUCAoSW1wYWN0KSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgSW1wYWN0ICAgICAgPT4gJzIgbG93JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICAgICAgSW1wYWN0ID0+ICcxOCBzdXBlciBoaWdoJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgID0+ICdUZXN0IHVwZGF0ZSBpbnZhbGlkIENJUCAoSW1wYWN0KSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgSW1wYWN0ICAgICAgICAgID0+ICcyIGxvdycsCiAgICAgICAgICAgICAgICBJbXBhY3RJRCAgICAgICAgPT4gJENoYW5nZUltcGFjdE5hbWUySUR7JzIgbG93J30sCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VCeSAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgNiwgNTUsIDYxIF0sCiAgICAgICAgTGFiZWwgICAgICA9PiAnT3JkZXJCeUNJUFRlc3RzJywgICAgIyB0aGlzIGNoYW5nZSB3aWxsIGJlIHVzZWQgaW4gb3JkZXIgYnkgc2VhcmNoIHRlc3RzCiAgICB9LAoKICAgICMgVGVzdCBwcmlvcml0eQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IHByaW9yaXR5IHVwZGF0ZSAiNSB2ZXJ5IGhpZ2giJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0IHVwZGF0ZSBDSVAgKFByaW9yaXR5KSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgUHJpb3JpdHkgICAgPT4gJzIgbG93JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnNSB2ZXJ5IGhpZ2gnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgPT4gJ1Rlc3QgdXBkYXRlIENJUCAoUHJpb3JpdHkpIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBDaGFuZ2VCdWlsZGVySUQgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBQcmlvcml0eSAgICAgICAgPT4gJzUgdmVyeSBoaWdoJywKICAgICAgICAgICAgICAgIFByaW9yaXR5SUQgICAgICA9PiAkQ2hhbmdlUHJpb3JpdHlOYW1lMklEeyc1IHZlcnkgaGlnaCd9LAogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgNiwgNTYsIDYyIF0sCiAgICAgICAgTGFiZWwgICAgICA9PiAnT3JkZXJCeUNJUFRlc3RzJywgICAgIyB0aGlzIGNoYW5nZSB3aWxsIGJlIHVzZWQgaW4gb3JkZXIgYnkgc2VhcmNoIHRlc3RzCiAgICB9LAoKICAgICMgVGVzdCBpbnZhbGlkIHByaW9yaXR5CiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgaW52YWxpZCBwcmlvcml0eSB1cGRhdGUgIjE4IHN1cGVyIGhpZ2giJywKICAgICAgICBVcGRhdGVGYWlscyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Rlc3QgaW52YWxpZCB1cGRhdGUgQ0lQIChQcmlvcml0eSkgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFByaW9yaXR5ICAgID0+ICcyIGxvdycsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZVVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJzE4IHN1cGVyIGhpZ2gnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgPT4gJ1Rlc3QgaW52YWxpZCB1cGRhdGUgQ0lQIChQcmlvcml0eSkgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICA9PiAnMiBsb3cnLAogICAgICAgICAgICAgICAgUHJpb3JpdHlJRCAgICAgID0+ICRDaGFuZ2VQcmlvcml0eU5hbWUySUR7JzIgbG93J30sCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VCeSAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgNiwgNTYsIDYyIF0sCiAgICAgICAgTGFiZWwgICAgICA9PiAnT3JkZXJCeUNJUFRlc3RzJywgICAgIyB0aGlzIGNoYW5nZSB3aWxsIGJlIHVzZWQgaW4gb3JkZXIgYnkgc2VhcmNoIHRlc3RzCiAgICB9LAoKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIwogICAgIyBUZXN0cyBmb3IgQ2hhbmdlIER5bmFtaWMgZmllbGRzCiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKCiAgICAjIHRlc3Qgc29tZSBjaGFuZ2UgZHluYW1pYyBmaWVsZHMgQ2hhbmdlQWRkIGFuZCBDaGFuZ2VVcGRhdGUKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBDaGFuZ2VBZGQgYW5kIENoYW5nZVVwZGF0ZSB3aXRoIGNoYW5nZSBkeW5hbWljIGZpZWxkcy4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Rlc3QgYWRkIGNoYW5nZSB3aXRoIGR5bmFtaWMgZmllbGRzIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScgPT4gJ0FBQUEnLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInID0+ICdCQkJCJywKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QzJyA9PiAnQ0NDQycsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0NCcgPT4gJ0REREQnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDaGFuZ2VVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MycgPT4gJ0dHR0cnLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDQnID0+ICdISEhIJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1dvcmtvcmRlclRlc3QxJyA9PiAnVy1BQUFBJywKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1dvcmtvcmRlclRlc3QyJyA9PiAnVy1CQkJCJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgID0+ICdUZXN0IGFkZCBjaGFuZ2Ugd2l0aCBkeW5hbWljIGZpZWxkcyAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDEnID0+ICdBQUFBJywKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QyJyA9PiAnQkJCQicsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MycgPT4gJ0dHR0cnLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDQnID0+ICdISEhIJywKICAgICAgICAgICAgICAgIENyZWF0ZUJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAoKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgNiwgNjksIDcwLCA3MSwgNzIgXSwKICAgIH0sCgogICAgIyB0ZXN0IGNoYW5nZSBkeW5hbWljIGZpZWxkcyB3aXRoIG1heGltdW0gbGVuZ3RoCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgQ2hhbmdlQWRkIGR5bmFtaWMgZmllbGRzIHdpdGggMzgwMCBjaGFyYWN0ZXJzLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnVGVzdCBhZGQgY2hhbmdlIGR5bmFtaWMgZmllbGRzIHdpdGggMzgwMCBjaGFyYWN0ZXJzIC0gJwogICAgICAgICAgICAgICAgICAgIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QxJyA9PiAnQScgeCAzODAwLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInID0+ICdCJyB4IDM4MDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QxJyA9PiAnQScgeCAzODAwLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInID0+ICdCJyB4IDM4MDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbNl0sCiAgICB9LAoKICAgICMgdGVzdCBjaGFuZ2UgZHluYW1pYyBmaWVsZHMgbGFyZ2VyIHRoYW4gbWF4aW11bSBsZW5ndGgKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBDaGFuZ2VBZGQgZHluYW1pYyBmaWVsZHMgd2l0aCAzODAxIGNoYXJhY3RlcnMuJywKICAgICAgICBGYWlscyAgICAgICA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Rlc3QgYWRkIGNoYW5nZSBkeW5hbWljIGZpZWxkcyB3aXRoIDM4MDEgY2hhcmFjdGVycyAtICcKICAgICAgICAgICAgICAgICAgICAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScgPT4gJ0EnIHggMzgwMSwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QyJyA9PiAnQicgeCAzODAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCiAgICAjIHRlc3QgY2hhbmdlIGR5bmFtaWMgZmllbGRzIGxhcmdlciB0aGFuIG1heGltdW0gbGVuZ3RoCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgQ2hhbmdlVXBkYXRlIGR5bmFtaWMgZmllbGRzIHdpdGggMzgwMSBjaGFyYWN0ZXJzLicsCiAgICAgICAgVXBkYXRlRmFpbHMgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0IHVwZGF0ZSBjaGFuZ2UgZHluYW1pYyBmaWVsZHMgd2l0aCAzODAxIGNoYXJhY3RlcnMgLSAnCiAgICAgICAgICAgICAgICAgICAgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDEnID0+ICdBJyB4IDM4MDAsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MicgPT4gJ0InIHggMzgwMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDMnID0+ICdDJyB4IDM4MDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QxJyA9PiAnQScgeCAzODAwLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInID0+ICdCJyB4IDM4MDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbNl0sCiAgICB9LAoKICAgICMgdGVzdCBjaGFuZ2UgZHluYW1pYyBmaWVsZHMgd2l0aCB6ZXJvIGFuZCBlbXB0eSBzdHJpbmdzCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgQ2hhbmdlVXBkYXRlIHdpdGggemVybyBhbmQgZW1wdHkgc3RyaW5nLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnVGVzdCB1cGRhdGUgY2hhbmdlIGR5bmFtaWMgZmllbGRzIHdpdGggemVybyBhbmQgZW1wdHkgc3RyaW5nIC0gJwogICAgICAgICAgICAgICAgICAgIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QxJyA9PiAnQUFBQScsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MicgPT4gJ0JCQkInLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDaGFuZ2VVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScgPT4gMCwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QyJyA9PiAnJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDEnID0+IDAsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MicgPT4gJycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbNl0sCiAgICB9LAoKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCiAgICAjIFRlc3RzIG9uIENoYW5nZUNBQioKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCgogICAgIyBUZXN0IGZvciBDaGFuZ2VDQUJHZXQKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PgogICAgICAgICAgICAnVGVzdCBjaGVja3MgZW1wdHkgQVJSQVktcmVmIG9uIENoYW5nZUNBQkdldCB3aXRoIG5vIGdpdmVuIENBQiBmb3IgQ2hhbmdlQ0FCR2V0LicsCiAgICAgICAgU291cmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlQ0FCR2V0ID0+IHsKICAgICAgICAgICAgICAgIENBQkFnZW50cyAgICA9PiBbXSwKICAgICAgICAgICAgICAgIENBQkN1c3RvbWVycyA9PiBbXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyA0LCAxMiwgMTMgXSwKICAgIH0sCgogICAgIyBUZXN0IGZvciBDaGFuZ2VDQUJVcGRhdGUgYW5kIENoYW5nZUNBQkdldAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGNoZWNrcyByZW1vdmFsIG9mIGR1cGxpY2F0ZSBDQUIgbWVtYmVycyBmb3IgQ2hhbmdlQ0FCVXBkYXRlJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdDQUJVcGRhdGUgYW5kIENBQkdldCAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZUNBQlVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgPT4gWwogICAgICAgICAgICAgICAgICAgICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgICRVc2VySURzWzFdLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIENBQkN1c3RvbWVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJEN1c3RvbWVyVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICAkQ3VzdG9tZXJVc2VySURzWzFdLAogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMV0sCiAgICAgICAgICAgICAgICAgICAgJEN1c3RvbWVyVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgICAgICAkQ3VzdG9tZXJVc2VySURzWzFdLAogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMV0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUNBQkdldCA9PiB7CiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgPT4gWwogICAgICAgICAgICAgICAgICAgICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgICRVc2VySURzWzFdLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIENBQkN1c3RvbWVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJEN1c3RvbWVyVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICAkQ3VzdG9tZXJVc2VySURzWzFdLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgSGlzdG9yeUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VBZGQgICAgICAgPT4gJycsCiAgICAgICAgICAgICAgICBDaGFuZ2VDQUJVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgICAgIENoYW5nZUNBQkN1c3RvbWVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIFsgdW5kZWYsIGpvaW4gJyUlJywgJEN1c3RvbWVyVXNlcklEc1swXSwgJEN1c3RvbWVyVXNlcklEc1sxXSBdCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VDQUJBZ2VudHMgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICBbIHVuZGVmLCBqb2luICclJScsICRVc2VySURzWzBdLCAkVXNlcklEc1sxXSBdCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgNiwgOCwgOSwgMTAsIDIyLCAyOCwgMjksIDMzLCAzNCwgMzUgXSwKICAgIH0sCgogICAgIyBUZXN0IGZvciBDaGFuZ2VDQUJVcGRhdGUgYW5kIENoYW5nZUNBQkdldAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGNoZWNrcyBpbnZhbGlkIENBQkFnZW50cyBwYXJhbSBmb3IgQ2hhbmdlQ0FCVXBkYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDaGFuZ2VDQUJVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgQ0FCQWdlbnRzID0+IFsKICAgICAgICAgICAgICAgICAgICAkQ3VzdG9tZXJVc2VySURzWzBdLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlQ0FCVXBkYXRlRmFpbCA9PiAxLAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUNBQkdldCA9PiB7CiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICAgPT4gW10sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gW10sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBUZXN0IGZvciBDaGFuZ2VDQUJVcGRhdGUgYW5kIENoYW5nZUNBQkdldAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdQYXNzaW5nIGFuIGludGVnZXIgYXMgQ0FCQWdlbnRzIHRvIENoYW5nZUNBQlVwZGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlQ0FCVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIENBQkFnZW50cyA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlQ0FCVXBkYXRlRmFpbCA9PiAxLAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUNBQkdldCA9PiB7CiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICAgPT4gW10sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gW10sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBUZXN0IGZvciBDaGFuZ2VDQUJVcGRhdGUgYW5kIENoYW5nZUNBQkdldAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdOZWl0aGVyIENBQkFnZW50cyBub3IgQ0FCQ3VzdG9tZXJzIGlzIHBhc3NlZC4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlQ0FCVXBkYXRlID0+IHsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlQ0FCVXBkYXRlRmFpbCA9PiAxLAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUNBQkdldCA9PiB7CiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICAgPT4gW10sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gW10sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBUZXN0IGZvciBDaGFuZ2VDQUJVcGRhdGUgYW5kIENoYW5nZUNBQkdldAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGNoZWNrcyBkZWFrdGl2YXRlZCBDQUJBZ2VudHMgcGFyYW0gZm9yIENoYW5nZUNBQlVwZGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlQ0FCVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIENBQkFnZW50cyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJEludmFsaWRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlQ0FCVXBkYXRlRmFpbCA9PiAxLAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUNBQkdldCA9PiB7CiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICAgPT4gW10sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gW10sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBUZXN0IGZvciBDaGFuZ2VDQUJVcGRhdGUgYW5kIENoYW5nZUNBQkdldAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGNoZWNrcyBpbnZhbGlkIENBQkN1c3RvbWVycyBwYXJhbSBmb3IgQ2hhbmdlQ0FCVXBkYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDaGFuZ2VDQUJVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZUNBQlVwZGF0ZUZhaWwgPT4gMSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VDQUJHZXQgPT4gewogICAgICAgICAgICAgICAgQ0FCQWdlbnRzICAgID0+IFtdLAogICAgICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFtdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgICMgVGVzdCBmb3IgQ2hhbmdlQ0FCVXBkYXRlIGFuZCBDaGFuZ2VDQUJHZXQKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQSB2YWxpZCBDQUJDdXN0b21lciBpcyBwYXNzZWQgdG8gQ2hhbmdlQ0FCVXBkYXRlLCBubyBDQUJBZ2VudHMuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZUNBQlVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gWwogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUNBQkdldCA9PiB7CiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICAgPT4gW10sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gWwogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgICMgVGVzdCBmb3IgQ2hhbmdlQ0FCVXBkYXRlIGFuZCBDaGFuZ2VDQUJHZXQKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQSB2YWxpZCBDQUJBZ2VudCBpcyBwYXNzZWQgdG8gQ2hhbmdlQ0FCVXBkYXRlLCBubyBDQUJDdXN0b21lcnMuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZUNBQlVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgPT4gWwogICAgICAgICAgICAgICAgICAgICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VDQUJHZXQgPT4gewogICAgICAgICAgICAgICAgQ0FCQWdlbnRzID0+IFsKICAgICAgICAgICAgICAgICAgICAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gW10sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBUZXN0IGZvciBDaGFuZ2VDQUJVcGRhdGUgYW5kIENoYW5nZUNBQkdldAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGNoZWNrcyB2YWxpZCBDaGFuZ2VBZGQgYW5kIENoYW5nZUNBQlVwZGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENBQkFnZW50cyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICAkQ3VzdG9tZXJVc2VySURzWzBdLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlQ0FCVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIENBQkN1c3RvbWVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgQ0FCQWdlbnRzID0+IFsKICAgICAgICAgICAgICAgICAgICAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICAkVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gWwogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgJEN1c3RvbWVyVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlQ0FCR2V0ID0+IHsKICAgICAgICAgICAgICAgIENBQkFnZW50cyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgJFVzZXJJRHNbMV0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICAkQ3VzdG9tZXJVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMV0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgICMgVGVzdCBmb3IgQ2hhbmdlQ0FCRGVsZXRlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgY2hlY2tzIENoYW5nZUNBQkRlbGV0ZSB3aXRoIHZhbGlkIHBhcmFtcy4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENBQkFnZW50cyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgJFVzZXJJRHNbMV0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gWwogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgJEN1c3RvbWVyVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZUNBQkRlbGV0ZSA9PiAxLAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUNBQkdldCA9PiB7CiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICAgPT4gW10sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gW10sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBUZXN0IGZvciBDaGFuZ2VDQUJEZWxldGUgLSBpbiB0aGUgZXhlY3V0aWlvbiBvZiB0aGUsIG5vIENoYW5nZUlEIHdpbGwgYmUgZ2l2ZW4KICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBjaGVja3MgQ2hhbmdlQ0FCRGVsZXRlIHdpdGggaW52YWxpZCBwYXJhbXMuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdDQUJEZWxldGUgKGludmFsaWQgcGFyYW1zKSAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgJFVzZXJJRHNbMV0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gWwogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgJEN1c3RvbWVyVXNlcklEc1sxXSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZUNBQkRlbGV0ZSAgICAgPT4gMSwKICAgICAgICAgICAgQ2hhbmdlQ0FCRGVsZXRlRmFpbCA9PiAxLAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUNBQkdldCA9PiB7CiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgPT4gWwogICAgICAgICAgICAgICAgICAgICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgICRVc2VySURzWzFdCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICAkQ3VzdG9tZXJVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgICRDdXN0b21lclVzZXJJRHNbMV0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbIDYsIDgsIDksIDEwIF0sCiAgICB9LAoKICAgICMgYWRkIGNoYW5nZSBhbmQgdXBkYXRlIGNoYW5nZXN0YXRlaWQKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBzZXR0aW5nIG5ldyBDaGFuZ2VTdGF0ZUlEIGluIENoYW5nZVVwZGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDaGFuZ2VVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVOYW1lMklEe3JlamVjdGVkfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVOYW1lMklEe3JlamVjdGVkfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyAyOSwgMzUgXSwKICAgIH0sCgogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCiAgICAjIENoYW5nZXMgZm9yICdPcmRlckJ5JyBzZWFyY2ggdGVzdHMKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIwoKICAgICMKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiQ2hhbmdlIGZvciAnT3JkZXJCeScgdGVzdHMgKDEpLiIsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAnT3JkZXJCeUNoYW5nZSAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZU5hbWUySUR7c3VjY2Vzc2Z1bH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZVVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VNYW5hZ2VySUQgPT4gJFVzZXJJRHNbMV0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZUFkZENoYW5nZVRpbWUgPT4gewogICAgICAgICAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAwOS0xMC0wMSAwMTowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlTmFtZTJJRHtzdWNjZXNzZnVsfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIExhYmVsID0+ICdPcmRlckJ5U2VhcmNoVGVzdCcsICAgICMgdGhpcyBjaGFuZ2Ugd2lsbCBiZSB1c2VkIGluIG9yZGVyIGJ5IHNlYXJjaCB0ZXN0cwogICAgfSwKCiAgICAjCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gIkNoYW5nZSBmb3IgJ09yZGVyQnknIHRlc3RzICgyKS4iLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzFdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ09yZGVyQnlDaGFuZ2UgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDaGFuZ2VVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgID0+ICRVc2VySURzWzFdLAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCAgID0+ICRDaGFuZ2VTdGF0ZU5hbWUySUR7cmVqZWN0ZWR9LAogICAgICAgICAgICAgICAgQ2hhbmdlTWFuYWdlcklEID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZUFkZENoYW5nZVRpbWUgPT4gewogICAgICAgICAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAwOS0xMC0zMCAwMTowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZVVwZGF0ZUNoYW5nZVRpbWUgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAwOS0xMC0zMCAwMTowMDoxNScsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlTmFtZTJJRHtyZWplY3RlZH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBMYWJlbCA9PiAnT3JkZXJCeVNlYXJjaFRlc3QnLCAgICAjIHRoaXMgY2hhbmdlIHdpbGwgYmUgdXNlZCBpbiBvcmRlciBieSBzZWFyY2ggdGVzdHMKICAgIH0sCgogICAgIwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICJDaGFuZ2UgZm9yICdPcmRlckJ5JyB0ZXN0cyAoMykuIiwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVOYW1lMklEe2ZhaWxlZH0sCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICdPcmRlckJ5Q2hhbmdlIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlTWFuYWdlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDaGFuZ2VBZGRDaGFuZ2VUaW1lID0+IHsKICAgICAgICAgICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMDktMDEtMzAgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDaGFuZ2VVcGRhdGVDaGFuZ2VUaW1lID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMDktMDEtMzAgMjM6NTk6NTknLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZU5hbWUySUR7ZmFpbGVkfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWzZdLAogICAgICAgIExhYmVsICAgICAgPT4gJ09yZGVyQnlTZWFyY2hUZXN0JywgICAgIyB0aGlzIGNoYW5nZSB3aWxsIGJlIHVzZWQgaW4gb3JkZXIgYnkgc2VhcmNoIHRlc3RzCiAgICB9LAoKICAgICMgQ2hhbmdlIGZvciBQZXJtaXNzaW9uIHRlc3RzLgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICJDaGFuZ2UgZm9yICdQZXJtaXNzaW9uJyB0ZXN0cy4iLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Blcm1pc3Npb24gLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnUGVybWlzc2lvbiAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZUNBQkdldCA9PiB7CiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgPT4gWwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIENBQkN1c3RvbWVycyA9PiBbCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbNl0sCiAgICAgICAgTGFiZWwgICAgICA9PiAnUGVybWlzc2lvblRlc3QnLCAgICAjIHRoaXMgY2hhbmdlIHdpbGwgYmUgdXNlZCBpbiBwZXJtaXNzaW9uIHRlc3RzCiAgICB9LAoKICAgICMgQ2hhbmdlIGZvciBDaGFuZ2VQb3NzaWJsZVN0YXRlc0dldCB0ZXN0cy4KICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiQ2hhbmdlIGZvciAnQ2hhbmdlUG9zc2libGVTdGF0ZXNHZXQnIHRlc3RzLiIsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnQ2hhbmdlUG9zc2libGVTdGF0ZXNHZXQgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnQ2hhbmdlUG9zc2libGVTdGF0ZXNHZXQgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbNl0sCiAgICAgICAgTGFiZWwgICAgICA9PiAnUG9zc2libGVTdGF0ZXNUZXN0JywgICAgIyBjaGFuZ2UgZm9yIHRlc3RpbmcgQ2hhbmdlUG9zc2libGVTdGF0ZXNHZXQoKQogICAgfSwKCiAgICAjIENoYW5nZSBmb3IgYXR0YWNobWVudCB0ZXN0cwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2UgZm9yIGF0dGFjaG1lbnQgdGVzdHMnLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ0F0dGFjaG1lbnRzIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ0F0dGFjaG1lbnRzIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWzZdLAogICAgICAgIExhYmVsICAgICAgPT4gJ0F0dGFjaG1lbnQnLAogICAgfSwKKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBleGVjdXRlIHRoZSBnZW5lcmFsIGNoYW5nZSB0ZXN0cwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgpteSAlVGVzdGVkQ2hhbmdlSUQ7ICAgICAgICAgICAjIGNoYW5nZSBpZHMgb2YgY3JlYXRlZCBjaGFuZ2VzCm15ICVDaGFuZ2VJREZvclNlYXJjaFRlc3Q7ICAgICMgY2hhbmdlIGlkcyB0aGF0IGFyZSBleHBlY3RlZCB0byBiZSBmb3VuZCBieSBhIHNlYXJjaCB0ZXN0Cm15ICVMYWJlbDJDaGFuZ2VJRHM7ICAgICAgICAgICMgY2hhbmdlIGlkcyB0aGF0IGFyZSB1c2VkIGZvciBzcGVjaWFsIHRlc3RzCgpURVNUOgpmb3IgbXkgJFRlc3QgKEBDaGFuZ2VUZXN0cykgewoKICAgICMgY2hlY2sgU291cmNlRGF0YSBhdHRyaWJ1dGUKICAgIGlmICggISRUZXN0LT57U291cmNlRGF0YX0gfHwgcmVmICRUZXN0LT57U291cmNlRGF0YX0gbmUgJ0hBU0gnICkgewoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgMCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogTm8gU291cmNlRGF0YSBmb3VuZCBmb3IgdGhpcyB0ZXN0ICh0ZXN0IGNhc2U6ICIKICAgICAgICAgICAgICAgIC4gKCAkVGVzdENvdW50IC0gJFRlc3RDb3VudE1pc2MgKSAuICIpLiIsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBURVNUOwogICAgfQoKICAgICMgcHJpbnQgdGVzdCBjYXNlIGRlc2NyaXB0aW9uCiAgICBpZiAoICRUZXN0LT57RGVzY3JpcHRpb259ICkgewogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAxLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiAkVGVzdC0+e0Rlc2NyaXB0aW9ufSAodGVzdCBjYXNlOiAiCiAgICAgICAgICAgICAgICAuICggJFRlc3RDb3VudCAtICRUZXN0Q291bnRNaXNjICkgLiAiKS4iLAogICAgICAgICk7CiAgICB9CgogICAgIyBleHRyYWN0IHRlc3QgZGF0YQogICAgbXkgJFNvdXJjZURhdGEgICAgPSAkVGVzdC0+e1NvdXJjZURhdGF9OwogICAgbXkgJFJlZmVyZW5jZURhdGEgPSAkVGVzdC0+e1JlZmVyZW5jZURhdGF9OwoKICAgICMgdGhlIGNoYW5nZSBpZCB3aWxsIGJlIHVzZWQgZm9yIHNldmVyYWwgY2FsbHMKICAgIG15ICRDaGFuZ2VJRDsKCiAgICAjIGFkZCBhIG5ldyBDaGFuZ2UKICAgIGlmICggJFNvdXJjZURhdGEtPntDaGFuZ2VBZGR9ICkgewoKICAgICAgICAjIGFkZCB0aGUgY2hhbmdlCiAgICAgICAgJENoYW5nZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICAleyAkU291cmNlRGF0YS0+e0NoYW5nZUFkZH0gfQogICAgICAgICk7CgogICAgICAgICMgcmVtZW1iZXIgY3VycmVudCBDaGFuZ2VJRAogICAgICAgIGlmICgkQ2hhbmdlSUQpIHsKCiAgICAgICAgICAgICRUZXN0ZWRDaGFuZ2VJRHskQ2hhbmdlSUR9ID0gMTsKCiAgICAgICAgICAgICMgc2F2ZSBjaGFuZ2VpZCBmb3IgdXNlIGluIHNlYXJjaCB0ZXN0cwogICAgICAgICAgICBpZiAoIGV4aXN0cyAkVGVzdC0+e1NlYXJjaFRlc3R9ICkgewogICAgICAgICAgICAgICAgbXkgQFNlYXJjaFRlc3RzID0gQHsgJFRlc3QtPntTZWFyY2hUZXN0fSB9OwoKICAgICAgICAgICAgICAgIGZvciBteSAkU2VhcmNoVGVzdE5yIChAU2VhcmNoVGVzdHMpIHsKICAgICAgICAgICAgICAgICAgICAkQ2hhbmdlSURGb3JTZWFyY2hUZXN0eyRTZWFyY2hUZXN0TnJ9LT57JENoYW5nZUlEfSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2F2ZSBjaGFuZ2VpZCBmb3Igc3BlY2lhbCB0ZXN0cwogICAgICAgICAgICBpZiAoIGV4aXN0cyAkVGVzdC0+e0xhYmVsfSApIHsKICAgICAgICAgICAgICAgICRMYWJlbDJDaGFuZ2VJRHN7ICRUZXN0LT57TGFiZWx9IH0gfHw9IFtdOwogICAgICAgICAgICAgICAgcHVzaCBAeyAkTGFiZWwyQ2hhbmdlSURzeyAkVGVzdC0+e0xhYmVsfSB9IH0sICRDaGFuZ2VJRDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjaGFuZ2UgQ3JlYXRlVGltZQogICAgICAgIGlmICggJENoYW5nZUlEICYmICRTb3VyY2VEYXRhLT57Q2hhbmdlQWRkQ2hhbmdlVGltZX0gKSB7CiAgICAgICAgICAgIFNldFRpbWVzKAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICBDcmVhdGVUaW1lID0+ICRTb3VyY2VEYXRhLT57Q2hhbmdlQWRkQ2hhbmdlVGltZX0tPntDcmVhdGVUaW1lfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgVXNlcklEIGlzIHRoZSBvbmx5IHJlcXVpcmVkIHBhcmFtZXRlcgogICAgICAgIGlmICggISRTb3VyY2VEYXRhLT57Q2hhbmdlQWRkfS0+e1VzZXJJRH0gKSB7CiAgICAgICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IENoYW5nZUFkZCgpIC0gRG9uJ3QgYWRkIGNoYW5nZSB3aXRob3V0IGdpdmVuIFVzZXJJRC4iLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkU291cmNlRGF0YS0+e0NoYW5nZUFkZH0tPntVc2VySUR9ICkgewogICAgICAgICAgICBpZiAoICRUZXN0LT57RmFpbHN9ICkgewogICAgICAgICAgICAgICAgJFNlbGYtPkZhbHNlKAogICAgICAgICAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBDaGFuZ2VBZGQoKSAtIEFkZCBjaGFuZ2Ugc2hvdWxkIGZhaWwuIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2hhbmdlQWRkKCkgLSBBZGQgY2hhbmdlLiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSAgICAjIGVuZCBpZiAnQ2hhbmdlQWRkJwoKICAgIGlmICggZXhpc3RzICRTb3VyY2VEYXRhLT57Q2hhbmdlVXBkYXRlfSApIHsKCiAgICAgICAgIyB1cGRhdGUgdGhlIGNoYW5nZQogICAgICAgIG15ICRDaGFuZ2VVcGRhdGVTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlVXBkYXRlKAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICV7ICRTb3VyY2VEYXRhLT57Q2hhbmdlVXBkYXRlfSB9LAogICAgICAgICk7CgogICAgICAgICMgY2hhbmdlIENoYW5nZVRpbWUKICAgICAgICBpZiAoICRDaGFuZ2VJRCAmJiAkU291cmNlRGF0YS0+e0NoYW5nZVVwZGF0ZUNoYW5nZVRpbWV9ICkgewogICAgICAgICAgICBTZXRUaW1lcygKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgQ2hhbmdlVGltZSA9PiAkU291cmNlRGF0YS0+e0NoYW5nZVVwZGF0ZUNoYW5nZVRpbWV9LT57Q2hhbmdlVGltZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoCiAgICAgICAgICAgICRUZXN0LT57RmFpbHN9CiAgICAgICAgICAgIHx8ICRUZXN0LT57VXBkYXRlRmFpbHN9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgICAgICRDaGFuZ2VVcGRhdGVTdWNjZXNzLAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2hhbmdlVXBkYXRlKCkiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkQ2hhbmdlVXBkYXRlU3VjY2VzcywKICAgICAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IENoYW5nZVVwZGF0ZSgpIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9ICAgICMgZW5kIGlmIENoYW5nZVVwZGF0ZQoKICAgIGlmICggJFNvdXJjZURhdGEtPntDaGFuZ2VDQUJVcGRhdGV9ICYmICRDaGFuZ2VJRCApIHsKICAgICAgICBteSAkQ0FCVXBkYXRlU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUNBQlVwZGF0ZSgKICAgICAgICAgICAgJXsgJFNvdXJjZURhdGEtPntDaGFuZ2VDQUJVcGRhdGV9IH0sCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICBpZiAoICRTb3VyY2VEYXRhLT57Q2hhbmdlQ0FCVXBkYXRlRmFpbH0gKSB7CiAgICAgICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgICAgICRDQUJVcGRhdGVTdWNjZXNzLAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gQ2hhbmdlQ0FCVXBkYXRlIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJENBQlVwZGF0ZVN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBDaGFuZ2VDQUJVcGRhdGUiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0gICAgIyBlbmQgaWYgJ0NoYW5nZUNBQlVwZGF0ZScKCiAgICBpZiAoICRTb3VyY2VEYXRhLT57Q2hhbmdlQ0FCRGVsZXRlfSAmJiAkQ2hhbmdlSUQgKSB7CiAgICAgICAgbXkgJUNBQkRlbGV0ZVBhcmFtcyA9ICgKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICk7CgogICAgICAgICMgc3BlY2lhbCBoYW5kbGluZyBmb3IgZmFpbCB0ZXN0cwogICAgICAgIGlmICggJFNvdXJjZURhdGEtPntDaGFuZ2VDQUJEZWxldGVGYWlsfSApIHsKCiAgICAgICAgICAgICMgdGVzdCB2b2lkIGNvbnRleHQKICAgICAgICAgICAgJFNlbGYtPkZhbHNlKAogICAgICAgICAgICAgICAgJENoYW5nZU9iamVjdC0+Q2hhbmdlQ0FCRGVsZXRlKCkgfHwgMCwKICAgICAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIENoYW5nZUNBQkRlbGV0ZSIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSBARGVsZXRlVGVzdHMgPSAoCiAgICAgICAgICAgICAgICB7IFVzZXJJRCAgID0+IDEgfSwKICAgICAgICAgICAgICAgIHsgQ2hhbmdlSUQgPT4gJENoYW5nZUlEIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZvciBteSAkRmFpbFRlc3QgKEBEZWxldGVUZXN0cykgewogICAgICAgICAgICAgICAgJFNlbGYtPkZhbHNlKAogICAgICAgICAgICAgICAgICAgICRDaGFuZ2VPYmplY3QtPkNoYW5nZUNBQkRlbGV0ZSggJXskRmFpbFRlc3R9ICkgfHwgMCwKICAgICAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBDaGFuZ2VDQUJEZWxldGUiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgRGVsZXRlIHdpdGggYWxsIHBhcmFtcwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRDaGFuZ2VPYmplY3QtPkNoYW5nZUNBQkRlbGV0ZSglQ0FCRGVsZXRlUGFyYW1zKSwKICAgICAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIENoYW5nZUNBQkRlbGV0ZSIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfSAgICAjIGVuZCBpZiAnQ2hhbmdlQ0FCRGVsZXRlJwoKICAgICMgYWRkIGEgd29ya29yZGVyCiAgICBpZiAoICRTb3VyY2VEYXRhLT57V29ya09yZGVyQWRkfSApIHsKICAgICAgICBteSAkV29ya09yZGVySUQgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgICV7ICRTb3VyY2VEYXRhLT57V29ya09yZGVyQWRkfSB9LAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gV29ya09yZGVyQWRkIiwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGEgY2hhbmdlIGFuZCBjb21wYXJlIHRoZSByZXRyaWV2ZWQgZGF0YSB3aXRoIHRoZSByZWZlcmVuY2UKICAgIGlmICggZXhpc3RzICRSZWZlcmVuY2VEYXRhLT57Q2hhbmdlR2V0fSApIHsKCiAgICAgICAgbXkgJENoYW5nZUdldFJlZmVyZW5jZURhdGEgPSAkUmVmZXJlbmNlRGF0YS0+e0NoYW5nZUdldH07CgogICAgICAgIG15ICRDaGFuZ2VEYXRhID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGFuZ2VHZXQgc2hvdWxkIG5vdCByZXR1cm4gYW55dGhpbmcKICAgICAgICBpZiAoICFkZWZpbmVkICRSZWZlcmVuY2VEYXRhLT57Q2hhbmdlR2V0fSApIHsKICAgICAgICAgICAgJFNlbGYtPkZhbHNlKAogICAgICAgICAgICAgICAgJENoYW5nZURhdGEsCiAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBHZXQgY2hhbmdlIHJldHVybnMgdW5kZWYuIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgd2UgZXhjcGVjdGVkIHRvIGZhaWwKICAgICAgICAgICAgaWYgKCAkVGVzdC0+e0ZhaWxzfSApIHsKICAgICAgICAgICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgICAgICAgICAhZGVmaW5lZCAkQ2hhbmdlRGF0YSwKICAgICAgICAgICAgICAgICAgICAhZGVmaW5lZCAkUmVmZXJlbmNlRGF0YS0+e0NoYW5nZURhdGF9LAogICAgICAgICAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIFNob3VsZCBmYWlsLiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5leHQgVEVTVDsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgZm9yIGFsd2F5cyBleGlzdGluZyBhdHRyaWJ1dGVzCiAgICAgICAgZm9yIG15ICRDaGFuZ2VBdHRyaWJ1dGVzIChxdyhDaGFuZ2VJRCBDaGFuZ2VOdW1iZXIgQ2hhbmdlQnVpbGRlcklEIENyZWF0ZVRpbWUgQ2hhbmdlVGltZSkpIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkQ2hhbmdlRGF0YS0+eyRDaGFuZ2VBdHRyaWJ1dGVzfSwKICAgICAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIGhhcyAkQ2hhbmdlQXR0cmlidXRlcy4iLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRSZXF1ZXN0ZWRBdHRyaWJ1dGUgKCBzb3J0IGtleXMgJXsgJFJlZmVyZW5jZURhdGEtPntDaGFuZ2VHZXR9IH0gKSB7CgogICAgICAgICAgICAjIHR1cm4gb2ZmIGFsbCBwcmV0dHkgcHJpbnQKICAgICAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6SW5kZW50ID0gMDsKICAgICAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6VXNlcXEgID0gMTsKCiAgICAgICAgICAgICMgZHVtcCB0aGUgYXR0cmlidXRlIGZyb20gQ2hhbmdlR2V0KCkgYW5kIHRoZSByZWZlcmVuY2UgYXR0cmlidXRlCiAgICAgICAgICAgICMjIG5vIGNyaXRpYwogICAgICAgICAgICBteSAkQ2hhbmdlQXR0cmlidXRlICAgID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoICRDaGFuZ2VEYXRhLT57JFJlcXVlc3RlZEF0dHJpYnV0ZX0gKTsKICAgICAgICAgICAgbXkgJFJlZmVyZW5jZUF0dHJpYnV0ZSA9IERhdGE6OkR1bXBlcjo6RHVtcGVyKCAkUmVmZXJlbmNlRGF0YS0+e0NoYW5nZUdldH0tPnskUmVxdWVzdGVkQXR0cmlidXRlfSApOwogICAgICAgICAgICAjIyB1c2UgY3JpdGljCgogICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAkQ2hhbmdlQXR0cmlidXRlLAogICAgICAgICAgICAgICAgJFJlZmVyZW5jZUF0dHJpYnV0ZSwKICAgICAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtICRSZXF1ZXN0ZWRBdHRyaWJ1dGUgKENoYW5nZUlEOiAkQ2hhbmdlSUQpIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9ICAgICMgZW5kIGlmICdDaGFuZ2VHZXQnCgogICAgaWYgKCAkUmVmZXJlbmNlRGF0YS0+e0NoYW5nZUNBQkdldH0gKSB7CiAgICAgICAgbXkgJENBQkRhdGEgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VDQUJHZXQoCiAgICAgICAgICAgICV7ICRSZWZlcmVuY2VEYXRhLT57Q2hhbmdlQ0FCR2V0fSB9LAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICRSZXF1ZXN0ZWRBdHRyaWJ1dGUgKCBzb3J0IGtleXMgJXsgJFJlZmVyZW5jZURhdGEtPntDaGFuZ2VDQUJHZXR9IH0gKSB7CgogICAgICAgICAgICAjIHR1cm4gb2ZmIGFsbCBwcmV0dHkgcHJpbnQKICAgICAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6SW5kZW50ID0gMDsKICAgICAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6VXNlcXEgID0gMTsKCiAgICAgICAgICAgICMgZHVtcCB0aGUgYXR0cmlidXRlIGZyb20gQ2hhbmdlR2V0KCkgYW5kIHRoZSByZWZlcmVuY2UgYXR0cmlidXRlCiAgICAgICAgICAgICMjIG5vIGNyaXRpYwogICAgICAgICAgICBteSAkQ2hhbmdlQXR0cmlidXRlICAgID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoICRDQUJEYXRhLT57JFJlcXVlc3RlZEF0dHJpYnV0ZX0gKTsKICAgICAgICAgICAgbXkgJFJlZmVyZW5jZUF0dHJpYnV0ZSA9IERhdGE6OkR1bXBlcjo6RHVtcGVyKCAkUmVmZXJlbmNlRGF0YS0+e0NoYW5nZUNBQkdldH0tPnskUmVxdWVzdGVkQXR0cmlidXRlfSApOwogICAgICAgICAgICAjIyB1c2UgY3JpdGljCgogICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAkQ2hhbmdlQXR0cmlidXRlLAogICAgICAgICAgICAgICAgJFJlZmVyZW5jZUF0dHJpYnV0ZSwKICAgICAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIENoYW5nZUNBQkdldCAoICRSZXF1ZXN0ZWRBdHRyaWJ1dGUgKSIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfSAgICAjIGVuZCBpZiAnQ2hhbmdlQ0FCR2V0JwoKICAgICMgdGVzdCBoaXN0b3J5IGVudHJpZXMKICAgIGlmICggJFJlZmVyZW5jZURhdGEtPntIaXN0b3J5R2V0fSApIHsKCiAgICAgICAgIyBnZXQgc3VidHJlZQogICAgICAgIG15ICRDaGVja0RhdGEgPSAkUmVmZXJlbmNlRGF0YS0+e0hpc3RvcnlHZXR9OwoKICAgICAgICAjIGdldCBhbGwgaGlzdG9yeSBlbnRyaWVzCiAgICAgICAgbXkgJEhpc3RvcnlFbnRyaWVzID0gJEhpc3RvcnlPYmplY3QtPkNoYW5nZUhpc3RvcnlHZXQoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICBteSAlSGlzdG9yeVR5cGUyQ2hlY2tJbmRleDsKCiAgICAgICAgIyBjaGVjayBoaXN0b3J5IGVudHJpZXMKICAgICAgICBISVNUT1JZRU5UUlk6CiAgICAgICAgZm9yIG15ICRIaXN0b3J5RW50cnkgKCBAeyRIaXN0b3J5RW50cmllc30gKSB7CiAgICAgICAgICAgIG15ICRIaXN0b3J5VHlwZSA9ICRIaXN0b3J5RW50cnktPntIaXN0b3J5VHlwZX07CiAgICAgICAgICAgIG15ICREYXRhRm9yVHlwZSA9ICRDaGVja0RhdGEtPnskSGlzdG9yeVR5cGV9OwoKICAgICAgICAgICAgaWYgKCAkSGlzdG9yeVR5cGUgZXEgJ0NoYW5nZUFkZCcgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAgICAgJEhpc3RvcnlFbnRyeS0+e0NvbnRlbnROZXd9LAogICAgICAgICAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBDaGVjayBDaGFuZ2VBZGQgaGlzdG9yeSBlbnRyeSAiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRIaXN0b3J5VHlwZSBlcSAnQ2hhbmdlVXBkYXRlJyB8fCAkSGlzdG9yeVR5cGUgZXEgJ0NoYW5nZUNBQlVwZGF0ZScgKSB7CgogICAgICAgICAgICAgICAgbXkgJEluZGV4ICAgICA9ICRIaXN0b3J5VHlwZTJDaGVja0luZGV4eyRIaXN0b3J5VHlwZX0rKzsKICAgICAgICAgICAgICAgIG15ICRGaWVsZG5hbWUgPSAkSGlzdG9yeUVudHJ5LT57RmllbGRuYW1lfTsKCiAgICAgICAgICAgICAgICBuZXh0IEhJU1RPUllFTlRSWSBpZiAhJERhdGFGb3JUeXBlLT57JEZpZWxkbmFtZX07CgogICAgICAgICAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAgICAgICAgICRIaXN0b3J5RW50cnktPntDb250ZW50T2xkfSwKICAgICAgICAgICAgICAgICAgICAkRGF0YUZvclR5cGUtPnskRmllbGRuYW1lfS0+WyRJbmRleF0tPlswXSwKICAgICAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBDaGVjayBDaGFuZ2VVcGRhdGUgLT4gQ29udGVudE9sZCAiLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAgICAgJEhpc3RvcnlFbnRyeS0+e0NvbnRlbnROZXd9LAogICAgICAgICAgICAgICAgICAgICREYXRhRm9yVHlwZS0+eyRGaWVsZG5hbWV9LT5bJEluZGV4XS0+WzFdLAogICAgICAgICAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIENoZWNrIENoYW5nZVVwZGF0ZSAtPiBDb250ZW50TmV3IGZvciAkRmllbGRuYW1lIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCiMgZ2V0IGV4ZWN1dGVkIGVhY2ggbG9vcCwgZXZlbiBvbiBuZXh0CmNvbnRpbnVlIHsKICAgICRUZXN0Q291bnQrKzsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3QgZm9yIHNwZWNpYWwgQ2hhbmdlU2VhcmNoICh3aXRoIG9yZGVyIGJ5IENoYW5nZU51bWJlcikKIyBidWcjIDU4MjUgaHR0cDovL2J1Z3Mub3Rycy5vcmcvc2hvd19idWcuY2dpP2lkPTU4MjUKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwp7CgogICAgIyBhZGQgYSBuZXcgY2hhbmdlIHdpdGggQ0FCQ3VzdG9tZXIgJEN1c3RvbWVyVXNlcklEc1syXQogICAgbXkgJENoYW5nZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgIENoYW5nZVRpdGxlICAgICA9PiAnQUJDJywKICAgICAgICBEZXNjcmlwdGlvbiAgICAgPT4gJ0RFRicsCiAgICAgICAgSnVzdGlmaWNhdGlvbiAgID0+ICdYWVonLAogICAgICAgIENoYW5nZU1hbmFnZXJJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICBDaGFuZ2VCdWlsZGVySUQgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgQ0FCQ3VzdG9tZXJzICAgID0+IFsKICAgICAgICAgICAgJEN1c3RvbWVyVXNlcklEc1syXSwKICAgICAgICBdLAogICAgICAgIFVzZXJJRCA9PiAkVXNlcklEc1sxXSwKICAgICk7CgogICAgIyB0ZXN0IGlmIGNoYW5nZSB3YXMgYWRkZWQgc3VjY2Vzc2Z1bGx5CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgIlRlc3QgIgogICAgICAgICAgICAuICRUZXN0Q291bnQrKwogICAgICAgICAgICAuICcgLSBhZGRpbmcgb2YgY2hhbmdlIGZvciBzcGVjaWFsIHNlYXJjaCB0ZXN0ICh3aXRoIG9yZGVyIGJ5IENoYW5nZU51bWJlciknLAogICAgKTsKCiAgICAjIHNlYXJjaCBmb3IgdGhlIGNoYW5nZSBpZHMKICAgIG15ICRDaGFuZ2VJRHMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgQ0FCQ3VzdG9tZXJzICAgICA9PiBbICRDdXN0b21lclVzZXJJRHNbMl0gXSwKICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFsnVXAnXSwKICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFsnQ2hhbmdlTnVtYmVyJ10sCiAgICAgICAgTGltaXQgICAgICAgICAgICA9PiAxMDAwLAogICAgICAgIENoYW5nZVN0YXRlcyAgICAgPT4gWwogICAgICAgICAgICAncmVxdWVzdGVkJywKICAgICAgICAgICAgJ3BlbmRpbmcgYXBwcm92YWwnLAogICAgICAgICAgICAnYXBwcm92ZWQnLAogICAgICAgICAgICAnaW4gcHJvZ3Jlc3MnLAogICAgICAgICAgICAncGVuZGluZyBwaXInCiAgICAgICAgXSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgIyBjaGVjayBpZiBzZWFyY2ggcmV0dXJuZWQgYSByZXN1bHQKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRDaGFuZ2VJRHMgJiYgcmVmICRDaGFuZ2VJRHMgZXEgJ0FSUkFZJyAmJiBAeyRDaGFuZ2VJRHN9LAogICAgICAgICJUZXN0ICIKICAgICAgICAgICAgLiAkVGVzdENvdW50KysKICAgICAgICAgICAgLiAnIC0gc2VhcmNoIGZvciBDQUJDdXN0b21lcnMsIHNwZWNpYWwgc2VhcmNoIHRlc3QgKHdpdGggb3JkZXIgYnkgQ2hhbmdlTnVtYmVyKScsCiAgICApOwoKICAgICMgY2hlY2sgaWYgY2hhbmdlIHdhcyBmb3VuZAogICAgJFNlbGYtPklzKAogICAgICAgICRDaGFuZ2VJRHMtPlswXSwKICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgJ1Rlc3QgJwogICAgICAgICAgICAuICRUZXN0Q291bnQrKwogICAgICAgICAgICAuICcgLSBzZWFyY2ggZm9yIENBQkN1c3RvbWVycywgc3BlY2lhbCBzZWFyY2ggdGVzdCAod2l0aCBvcmRlciBieSBDaGFuZ2VOdW1iZXIpICcsCiAgICApOwoKICAgICMgZGVsZXRlIHRoZSBDaGFuZ2UKICAgIG15ICREZWxldGVTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlRGVsZXRlKAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCiAgICAjIGNoZWNrIGZvciBzdWNjZXNzZnVsIGRlbGV0aW5nCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkRGVsZXRlU3VjY2VzcywKICAgICAgICAiVGVzdCAiCiAgICAgICAgICAgIC4gJFRlc3RDb3VudCsrCiAgICAgICAgICAgIC4gJyAtIGRlbGV0aW5nIG9mIENoYW5nZUlEICcKICAgICAgICAgICAgLiAkQ2hhbmdlSUQKICAgICAgICAgICAgLiAnIGZvciBzcGVjaWFsIHNlYXJjaCB0ZXN0ICh3aXRoIG9yZGVyIGJ5IENoYW5nZU51bWJlciknLAogICAgKTsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3QgZm9yIENoYW5nZUxvb2t1cAojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgpteSAoJENoYW5nZUxvb2t1cFRlc3RDaGFuZ2VJRCkgPSBAeyAkTGFiZWwyQ2hhbmdlSURze0NoYW5nZUxvb2t1cFRlc3R9IHx8IFtdIH07CgppZiAoJENoYW5nZUxvb2t1cFRlc3RDaGFuZ2VJRCkgewogICAgbXkgJENoYW5nZURhdGEgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUxvb2t1cFRlc3RDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCiAgICBteSAkQ2hhbmdlSUQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VMb29rdXAoCiAgICAgICAgQ2hhbmdlTnVtYmVyID0+ICRDaGFuZ2VEYXRhLT57Q2hhbmdlTnVtYmVyfSwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAkQ2hhbmdlRGF0YS0+e0NoYW5nZUlEfSwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gJzogQ2hhbmdlTG9va3VwIHdpdGggQ2hhbmdlTnVtYmVyICcKICAgICAgICAgICAgLiAkQ2hhbmdlRGF0YS0+e0NoYW5nZU51bWJlcn0gLiAnIHN1Y2Nlc3NmdWwuJywKICAgICk7CgogICAgbXkgJENoYW5nZU51bWJlciA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUxvb2t1cCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlTG9va3VwVGVzdENoYW5nZUlELAogICAgKTsKCiAgICAkU2VsZi0+SXMoCiAgICAgICAgJENoYW5nZU51bWJlciwKICAgICAgICAkQ2hhbmdlRGF0YS0+e0NoYW5nZU51bWJlcn0sCiAgICAgICAgJ1Rlc3QgJwogICAgICAgICAgICAuICRUZXN0Q291bnQrKwogICAgICAgICAgICAuICI6IENoYW5nZUxvb2t1cCB3aXRoIENoYW5nZUlEICRDaGFuZ2VMb29rdXBUZXN0Q2hhbmdlSUQgc3VjY2Vzc2Z1bC4iLAogICAgKTsKCiAgICAjIG5vdyBzb21lIHBhcmFtIGNoZWNrcyBmb3IgQ2hhbmdlTG9va3VwKCkKICAgIG15ICRMb29rdXBPayA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUxvb2t1cCggVXNlcklEID0+IDEgKTsKCiAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgJExvb2t1cE9rLAogICAgICAgICdPbmx5IGFuIHVudXNlZCBwYXJhbSBwYXNzZWQgdG8gQ2hhbmdlTG9va3VwKCknLAogICAgKTsKCiAgICAkTG9va3VwT2sgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VMb29rdXAoKTsKCiAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgJExvb2t1cE9rLAogICAgICAgICdObyBwYXJhbSBwYXNzZWQgdG8gQ2hhbmdlTG9va3VwKCknLAogICAgKTsKCiAgICAkTG9va3VwT2sgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VMb29rdXAoCiAgICAgICAgQ2hhbmdlSUQgICAgID0+ICRDaGFuZ2VMb29rdXBUZXN0Q2hhbmdlSUQsCiAgICAgICAgQ2hhbmdlTnVtYmVyID0+ICRDaGFuZ2VEYXRhLT57Q2hhbmdlTnVtYmVyfSwKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPkZhbHNlKAogICAgICAgICRMb29rdXBPaywKICAgICAgICAnRXhjbHVzaXZlIHBhcmFtcyBwYXNzZWQgdG8gQ2hhbmdlTG9va3VwKCknLAogICAgKTsKfQoKIyB0ZXN0IGlmIENoYW5nZUxpc3QgcmV0dXJucyBhdCBsZWFzdCBhcyBtYW55IGNoYW5nZXMgYXMgd2UgY3JlYXRlZAojIHdlIGNhbm5vdCB0ZXN0IGZvciBhIHNwZWNpZmljIG51bWJlciBhcyB0aGVzZSB0ZXN0cyBjYW4gYmUgcnVuIGluIGV4aXN0aW5nIGVudmlyb25tZW50cwojIHdoZXJlIG90aGVyIGNoYW5nZXMgYWxyZWFkeSBleGlzdApteSAkQ2hhbmdlTGlzdCAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUxpc3QoIFVzZXJJRCA9PiAxICkgfHwgW107Cm15ICVDaGFuZ2VMaXN0TWFwID0gbWFwIHsgJF8gPT4gMSB9IEB7JENoYW5nZUxpc3R9OwoKIyBjaGVjayB3aGV0aGVyIHRoZSBjcmVhdGVkIGNoYW5nZXMgd2VyZSBmb3VuZCBieSBDaGFuZ2VMaXN0KCkKZm9yIG15ICRLZXlUZXN0ZWRDaGFuZ2VJRCAoIHNvcnQga2V5cyAlVGVzdGVkQ2hhbmdlSUQgKSB7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQ2hhbmdlTGlzdE1hcHskS2V5VGVzdGVkQ2hhbmdlSUR9LAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiOiBDaGFuZ2VMaXN0KCkgLSBDaGFuZ2VJRCAkS2V5VGVzdGVkQ2hhbmdlSUQgaW4gbGlzdC4iLAogICAgKTsKfQoKIyBjb3VudCBhbGwgdGVzdHMgdGhhdCBhcmUgcmVxdWlyZWQgdG8gYW5kIHBsYW5uZWQgZm9yIGZhaWwKbXkgJEZhaWxzICAgICAgICAgICA9IHNjYWxhciBncmVwIHsgJF8tPntGYWlsc30gfSBAQ2hhbmdlVGVzdHM7Cm15ICROckNyZWF0ZUNoYW5nZXMgPSAoIHNjYWxhciBAQ2hhbmdlVGVzdHMgKSAtICRGYWlsczsKCiMgdGVzdCBpZiB0aGUgY2hhbmdlcyB3ZXJlIGNyZWF0ZWQKJFNlbGYtPklzKAogICAgc2NhbGFyIGtleXMgJVRlc3RlZENoYW5nZUlEIHx8IDAsCiAgICAkTnJDcmVhdGVDaGFuZ2VzLAogICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICc6IGFtb3VudCBvZiBjaGFuZ2Ugb2JqZWN0cyBhbmQgdGVzdCBjYXNlcy4nLAopOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIGRlZmluZSBnZW5lcmFsIGNoYW5nZSBzZWFyY2ggdGVzdHMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwpteSAkU3lzdGVtVGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpLT5Ub0Vwb2NoKCk7CgpteSBAQ2hhbmdlU2VhcmNoVGVzdHMgPSAoCgogICAgIyBOciAxIC0gYSBzaW1wbGUgY2hlY2sgaWYgdGhlIHNlYXJjaCBmdW5jdGlvbnMgdGFrZXMgY2FyZSBvZiAiTGltaXQiCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0xpbWl0JywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIExpbWl0ID0+IDMsICAgICMgZXhwZWN0IG9ubHkgMyByZXN1bHRzCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdENvdW50ID0+IDEsICAgICMgZmxhZyBmb3IgY2hlY2sgcmVzdWx0IGFtb3VudAogICAgICAgICAgICBDb3VudCAgICAgPT4gMywgICAgIyBjaGVjayBvbiAzIHJlc3VsdHMKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDIgLSBzZWFyY2ggZm9yIGFsbCBjaGFuZ2VzIGNyZWF0ZWQgYnkgb3VyIGZpcnN0IHVzZXIKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlVGl0bGUsIEp1c3RpZmljYXRpb24nLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAnQ2hhbmdlIDEgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICdDaGFuZ2UgMSAtIEp1c3RpZmljYXRpb24gLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAzIC0gdGVzdCBjcmVhdGV0aW1lbmV3ZXJkYXRlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NyZWF0ZVRpbWVOZXdlckRhdGUnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ3JlYXRlVGltZU5ld2VyRGF0ZSA9PiAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgIEVwb2NoID0+ICRTeXN0ZW1UaW1lIC0gKCA2MCAqIDYwICkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS0+VG9TdHJpbmcoKSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciA0IC0gdGVzdCBjcmVhdGV0aW1lb2xkZXJkYXRlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NyZWF0ZVRpbWVPbGRlckRhdGUnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ3JlYXRlVGltZU9sZGVyRGF0ZSA9PiAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgIEVwb2NoID0+ICRTeXN0ZW1UaW1lICsgKCA2MCAqIDYwICkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS0+VG9TdHJpbmcoKSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciA1IC0gdGVzdCBDaGFuZ2VNYW5hZ2VySUQKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlTWFuYWdlcklEJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZU1hbmFnZXJJRHMgPT4gWyAkVXNlcklEc1swXSBdLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDYgLSB0ZXN0IENoYW5nZUJ1aWxkZXJJRCBhbmQgQ2hhbmdlVGl0bGUgd2l0aCB3aWxkY2FyZAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2VCdWlsZGVySUQnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQnVpbGRlcklEcyA9PiBbICRVc2VySURzWzBdIF0sCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgPT4gJyUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0Q291bnQgICAgID0+IDEsCiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDcgLSB0ZXN0IENoYW5nZU1hbmFnZXJJRCBhbmQgQ2hhbmdlQnVpbGRlcklECiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZUJ1aWxkZXJJRCwgQ2hhbmdlTWFuYWdlcklEJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRHMgPT4gWyAkVXNlcklEc1swXSBdLAogICAgICAgICAgICBDaGFuZ2VNYW5hZ2VySURzID0+IFsgJEludmFsaWRVc2VySURzWzBdIF0sCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgPT4gJyUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0Q291bnQgPT4gMSwKICAgICAgICAgICAgQ291bnQgICAgID0+IDAsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciA4IC0gdGVzdCBDQUJBZ2VudAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDQUJBZ2VudCcsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDQUJBZ2VudHMgICA9PiBbICRVc2VySURzWzBdIF0sCiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICclJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciA5IC0gdGVzdCBDQUJDdXN0b21lcgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDQUJDdXN0b21lcicsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gWyAkQ3VzdG9tZXJVc2VySURzWzBdIF0sCiAgICAgICAgICAgIENoYW5nZVRpdGxlICA9PiAnJScgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgMTAgLSB0ZXN0IENBQkFnZW50IGFuZCBDQUJDdXN0b21lcgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDQUJBZ2VudCwgQ0FCQ3VzdG9tZXInLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ0FCQWdlbnRzICAgID0+IFsgJFVzZXJJRHNbMF0gXSwKICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFsgJEN1c3RvbWVyVXNlcklEc1sxXSBdLAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgPT4gJyUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0Q291bnQgICAgID0+IDEsCiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDExIC0gdGVzdCBKdXN0aWZpY2F0aW9uCiAgICAjIFRvQXNjaWkoKSBhZGRzIGFuIGV4dHJhIG5ld2xpbmUKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnSnVzdGlmaWNhdGlvbicsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICdKSicgLiAnJScgLiAiXG4iLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDEyIC0gdGVzdCBjaGFuZ2V0aW1lbmV3ZXJkYXRlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZVRpbWVOZXdlckRhdGUnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ3JlYXRlVGltZU5ld2VyRGF0ZSA9PiAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgIEVwb2NoID0+ICRTeXN0ZW1UaW1lIC0gKCA2MCAqIDYwICkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS0+VG9TdHJpbmcoKSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAxMyAtIHRlc3QgY2hhbmdldGltZW9sZGVyZGF0ZQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2VUaW1lT2xkZXJEYXRlJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENyZWF0ZVRpbWVPbGRlckRhdGUgPT4gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICBFcG9jaCA9PiAkU3lzdGVtVGltZSArICggNjAgKiA2MCApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICktPlRvU3RyaW5nKCksCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgMTQgLSBDaGFuZ2VUaXRsZSB3aXRoIHdpbGRjYXJkCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZVRpdGxlIHdpdGggd2lsZGNhcmQnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gKCAnVCcgeCAyNTAgKSAuICclJywKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAxNSAtIERlc2NyaXB0aW9uIHdpdGggd2lsZGNhcmQKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnRGVzY3JpcHRpb24gd2l0aCB3aWxkY2FyZCcsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAoICdEJyB4IDI1MCApIC4gJyUnLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDE2IC0gSnVzdGlmaWNhdGlvbiB3aXRoIHdpbGRjYXJkCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0p1c3RpZmljYXRpb24gd2l0aCB3aWxkY2FyZCcsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICggJ0onIHggMjUwICkgLiAnJScsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgMTcgLSBDaGFuZ2VUaXRsZSwgRGVzY3JpcHRpb24sIEp1c3RpZmljYXRpb24gd2l0aCB3aWxkY2FyZAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2VUaXRsZSwgRGVzY3JpcHRpb24sIEp1c3RpZmljYXRpb24gd2l0aCB3aWxkY2FyZCcsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICggJ1QnIHggMjUwICkgLiAnJScsCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gKCAnRCcgeCAyNTAgKSAuICclJywKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAoICdKJyB4IDI1MCApIC4gJyUnLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDE4IC0gQ2hhbmdlVGl0bGUgd2l0aCAnMCcKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiQ2hhbmdlVGl0bGUgd2l0aCAnMCciLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJzAnLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDE5IC0gRGVzY3JpcHRpb24gd2l0aCAnMCcKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiRGVzY3JpcHRpb24gd2l0aCAnMCciLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJzAnLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDIwIC0gSnVzdGlmaWNhdGlvbiB3aXRoICcwJwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICJKdXN0aWZpY2F0aW9uIHdpdGggJzAnIiwKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gJzAnLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDIxIC0gQ2hhbmdlVGl0bGUsIERlc2NyaXB0aW9uLCBKdXN0aWZpY2F0aW9uIHdpdGggJzAnCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gIkNoYW5nZVRpdGxlLCBEZXNjcmlwdGlvbiwgSnVzdGlmaWNhdGlvbiB3aXRoICcwJyIsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICcwJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnMCcsCiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gJzAnLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDIyIC0gQ2hhbmdlU3RhdGVJRAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2VTdGF0ZUlEJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVN0YXRlSURzID0+IFsgJENoYW5nZVN0YXRlTmFtZTJJRHtyZXF1ZXN0ZWR9IF0sCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgMjMgLSBDaGFuZ2VCdWlsZGVySUQKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlQnVpbGRlcklEICh0d28gYnVpbGRlcnMpJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUJ1aWxkZXJJRHMgPT4gWyAkVXNlcklEc1swXSwgJFVzZXJJRHNbMV0gXSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAyNCAtIENoYW5nZU1hbmFnZXJJRAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2VNYW5hZ2VySUQgKHR3byBtYW5hZ2VyKScsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VNYW5hZ2VySURzID0+IFsgJFVzZXJJRHNbMF0sICRVc2VySURzWzFdIF0sCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgMjUgLSBDcmVhdGVCeQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDcmVhdGVCeSAodHdvIGNyZWF0b3JzKScsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDcmVhdGVCeSA9PiBbIDEsICRVc2VySURzWzBdIF0sCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgMjYgLSBDaGFuZ2VCeQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2VCeSAodHdvIGNyZWF0b3JzKScsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VCeSA9PiBbIDEsICRVc2VySURzWzBdIF0sCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgMjcgLSB0ZXN0IGNoYW5nZXRpbWVuZXdlcmRhdGUgYW5kIGNoYW5nZXRpbWVvbGRlcmRhdGUKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlVGltZU5ld2VyRGF0ZSwgQ2hhbmdlVGltZU9sZGVyRGF0ZScsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VUaW1lTmV3ZXJEYXRlID0+ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAgICAgRXBvY2ggPT4gJFN5c3RlbVRpbWUgLSAoIDYwICogNjAgKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLT5Ub1N0cmluZygpLAogICAgICAgICAgICBDaGFuZ2VUaW1lT2xkZXJEYXRlID0+ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAgICAgRXBvY2ggPT4gJFN5c3RlbVRpbWUgKyAoIDYwICogNjAgKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLT5Ub1N0cmluZygpLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDI4IC0gQ2hhbmdlU3RhdGVJRCAoc2FtZSBJRCB0aHJlZSB0aW1lcykKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlU3RhdGVJRCAoc2FtZSBJRCB0aHJlZSB0aW1lcyknLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRHMgPT4gWwogICAgICAgICAgICAgICAgJENoYW5nZVN0YXRlTmFtZTJJRHtyZXF1ZXN0ZWR9LAogICAgICAgICAgICAgICAgJENoYW5nZVN0YXRlTmFtZTJJRHtyZXF1ZXN0ZWR9LAogICAgICAgICAgICAgICAgJENoYW5nZVN0YXRlTmFtZTJJRHtyZXF1ZXN0ZWR9LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDI5IC0gQ2hhbmdlU3RhdGVJRCAodGhyZWUgZGlmZmVyZW50IElEcykKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlU3RhdGVJRCAodGhyZWUgZGlmZmVyZW50IElEcyknLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRHMgPT4gWwogICAgICAgICAgICAgICAgJENoYW5nZVN0YXRlTmFtZTJJRHtyZXF1ZXN0ZWR9LAogICAgICAgICAgICAgICAgJENoYW5nZVN0YXRlTmFtZTJJRHthcHByb3ZlZH0sCiAgICAgICAgICAgICAgICAkQ2hhbmdlU3RhdGVOYW1lMklEe3JlamVjdGVkfSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAzMCAtIFVzaW5nV2lsZGNhcmRzID0+IDAsIENoYW5nZVRpdGxlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1VzaW5nV2lsZGNhcmRzID0+IDAsIENoYW5nZVRpdGxlJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIFVzaW5nV2lsZGNhcmRzID0+IDAsCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgID0+ICdVbml0VGVzdC1JVFNNQ2hhbmdlLU5vV2lsZGNhcmRzLScsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdENvdW50ID0+IDEsCiAgICAgICAgICAgIENvdW50ICAgICA9PiAwLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgMzEgLSBVc2luZ1dpbGRjYXJkcyA9PiAwLCBEZXNjcmlwdGlvbgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdVc2luZ1dpbGRjYXJkcyA9PiAwLCBEZXNjcmlwdGlvbicsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBVc2luZ1dpbGRjYXJkcyA9PiAwLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgICA9PiAnVW5pdFRlc3QtSVRTTUNoYW5nZS1Ob1dpbGRjYXJkcy0nLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RDb3VudCA9PiAxLAogICAgICAgICAgICBDb3VudCAgICAgPT4gMCwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDMyIC0gVXNpbmdXaWxkY2FyZHMgPT4gMCwgRGVzY3JpcHRpb24KICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVXNpbmdXaWxkY2FyZHMgPT4gMCwgRGVzY3JpcHRpb24nLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgVXNpbmdXaWxkY2FyZHMgPT4gMCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgPT4gJE5vV2lsZGNhcmRzVGVzdFRpdGxlLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RDb3VudCA9PiAxLAogICAgICAgICAgICBDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDMzIC0gQ2hhbmdlU3RhdGUgKG5hbWVzLCBub3QgSURzKQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2VTdGF0ZSAobmFtZXMsIG5vdCBJRHMpJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVN0YXRlcyA9PiBbJ3JlcXVlc3RlZCddLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDM0IC0gQ2hhbmdlU3RhdGUgKHNhbWUgbmFtZSB0aHJlZSB0aW1lcykKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlU3RhdGUgKHNhbWUgbmFtZSB0aHJlZSB0aW1lcyknLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU3RhdGVzID0+IFtxdyhyZXF1ZXN0ZWQgcmVxdWVzdGVkIHJlcXVlc3RlZCldLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDM1IC0gQ2hhbmdlU3RhdGUgKHRocmVlIGRpZmZlcmVudCBuYW1lcykKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlU3RhdGUgKHRocmVlIGRpZmZlcmVudCBuYW1lcyknLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU3RhdGVzID0+IFtxdyhyZXF1ZXN0ZWQgYXBwcm92ZWQgcmVqZWN0ZWQpXSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAzNiAtIENoYW5nZVN0YXRlIChub24tZXhpc3RlbnQgc3RhdGUpCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZVN0YXRlIChub24tZXhpc3RlbnQgc3RhdGUpJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVN0YXRlcyA9PiBbcXcocmVxdWVzdGVkIGFwcHJvdmVkIHJlamVjdGVkIG5vbi1leGlzdGVudCldLAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoRmFpbHMgPT4gMSwKICAgIH0sCgogICAgIyBOciAzNyAtIENoYW5nZVN0YXRlcyAobmFtZXMgbm90IGlkcykKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlU3RhdGVzIChuYW1lcyBub3QgaWRzKSAtIGZhaWxlZCArIHJlcXVlc3RlZCcsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBEZXNjcmlwdGlvbiAgPT4gJ0NoYW5nZVN0YXRlcyAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICBDaGFuZ2VTdGF0ZXMgPT4gW3F3KHJlcXVlc3RlZCBmYWlsZWQpXSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0Q291bnQgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDM4IC0gQ2hhbmdlU3RhdGVzIChuYW1lcyBub3QgaWRzKQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2VTdGF0ZXMgKG5hbWVzIG5vdCBpZHMpIC0gcGVuZGluZyBhcHByb3ZhbCcsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBEZXNjcmlwdGlvbiAgPT4gJ0NoYW5nZVN0YXRlcyAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICBDaGFuZ2VTdGF0ZXMgPT4gWydwZW5kaW5nIGFwcHJvdmFsJ10sCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdENvdW50ID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAzOSAtIENoYW5nZVN0YXRlIChub24tZXhpc3RlbnQgc3RhdGUgb25seSkKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlU3RhdGUgKG5vbi1leGlzdGVudCBzdGF0ZSknLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU3RhdGVzID0+IFsnbm9uLWV4aXN0ZW50J10sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hGYWlscyA9PiAxLAogICAgfSwKCiAgICAjIE5yIDQwIC0gU2VhcmNoIGZvciBhbiBpbnZhbGlkIGNoYW5nZSBzdGF0ZSBpZAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIGFuIGludmFsaWQgY2hhbmdlIHN0YXRlIGlkJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVN0YXRlSURzID0+IFstMTFdLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgICA9PiAnQ2hhbmdlU3RhdGVzIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hGYWlscyA9PiAxLAogICAgfSwKCiAgICAjIE5yIDQxIC0gU2VhcmNoIGZvciBhbiBpbnZhbGlkIGNoYW5nZSBSZXF1ZXN0ZWRUaW1lT2xkZXJEYXRlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgYW4gaW52YWxpZCBSZXF1ZXN0ZWRUaW1lJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIFJlcXVlc3RlZFRpbWVPbGRlckRhdGUgPT4gJ2FueXRoaW5nJywKICAgICAgICB9LAogICAgICAgIFNlYXJjaEZhaWxzID0+IDEsCiAgICB9LAoKICAgICMgTnIgNDIgLSBTZWFyY2ggZm9yIGFuIHZhbGlkIGNoYW5nZSBSZXF1ZXN0ZWRUaW1lT2xkZXJEYXRlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgYW4gdmFsaWQgUmVxdWVzdGVkVGltZScsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBSZXF1ZXN0ZWRUaW1lT2xkZXJEYXRlID0+ICcyMDA5LTEwLTI5IDEzOjMzOjMzJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgICA9PiAnUmVxdWVzdGVkVGltZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RDb3VudCA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgNDMgLSBTZWFyY2ggZm9yIGFuIHZhbGlkIGNoYW5nZSBSZXF1ZXN0ZWRUaW1lTmV3ZXJEYXRlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgYW4gdmFsaWQgUmVxdWVzdGVkVGltZScsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBSZXF1ZXN0ZWRUaW1lTmV3ZXJEYXRlID0+ICcyMDA5LTEwLTI5IDEzOjMzOjMzJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgICA9PiAnUmVxdWVzdGVkVGltZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RDb3VudCA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgNDQgLSBTZWFyY2ggZm9yIGFuIGludmFsaWQgY2hhbmdlIFJlcXVlc3RlZFRpbWVOZXdlckRhdGUKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBhbiBpbnZhbGlkIFJlcXVlc3RlZFRpbWUnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgUmVxdWVzdGVkVGltZU5ld2VyRGF0ZSA9PiAnYW55dGhpbmcnLAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoRmFpbHMgPT4gMSwKICAgIH0sCgogICAgIyBOciA0NSAtIFNlYXJjaCBmb3Igbm9ybWFsaXplZCB0aXRsZSwgbGVhZGluZyB3aGl0ZXNwYWNlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3Igbm9ybWFsaXplZCB0aXRsZSwgbGVhZGluZyB3aGl0ZXNwYWNlJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgID0+ICJUaXRsZSB3aXRoIGxlYWRpbmcgd2hpdGVzcGFjZSAtICIgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICBVc2luZ1dpbGRjYXJkcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgNDYgLSBTZWFyY2ggZm9yIG5vcm1hbGl6ZWQgdGl0bGUsIHRyYWlsaW5nIHdoaXRlc3BhY2UKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBub3JtYWxpemVkIHRpdGxlLCB0cmFpbGluZyB3aGl0ZXNwYWNlJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgID0+ICJUaXRsZSB3aXRoIHRyYWlsaW5nIHdoaXRlc3BhY2UgLSAiIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgVXNpbmdXaWxkY2FyZHMgPT4gMCwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDQ3IC0gU2VhcmNoIGZvciBub3JtYWxpemVkIHRpdGxlLCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3Igbm9ybWFsaXplZCB0aXRsZSwgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZScsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICA9PiAiVGl0bGUgd2l0aCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIC0gIiAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIFVzaW5nV2lsZGNhcmRzID0+IDAsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgICAgICBUZXN0Q291bnQgICAgID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciA0OCAtIFNlYXJjaCBmb3IgcGxhaW4gZGVzY3JpcHRpb24KICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBwbGFpbiBkZXNjcmlwdGlvbicsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBEZXNjcmlwdGlvbiAgICA9PiAnVGhpcyBpcyBib2xkIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIFVzaW5nV2lsZGNhcmRzID0+IDAsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgICAgICBUZXN0Q291bnQgICAgID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciA0OSAtIFNlYXJjaCBmb3IgcGxhaW4ganVzdGlmaWNhdGlvbgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIHBsYWluIGRlc2NyaXB0aW9uJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gID0+ICdUaGlzIGlzIGJvbGQgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgVXNpbmdXaWxkY2FyZHMgPT4gMCwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDUwIC0gU2VhcmNoIGZvciBwbGFpbiBqdXN0aWZpY2F0aW9uCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgcGxhaW4gZGVzY3JpcHRpb24nLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgPT4gJ1RoaXMgaXMgYm9sZCAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICBKdXN0aWZpY2F0aW9uICA9PiAnVGhpcyBpcyBib2xkIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIFVzaW5nV2lsZGNhcmRzID0+IDAsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgICAgICBUZXN0Q291bnQgICAgID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciA1MSAtIFNlYXJjaCBmb3IgY2F0ZWdvcnkKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBjYXRlZ29yeScsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDYXRlZ29yaWVzICA9PiBbJzEgdmVyeSBsb3cnXSwKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Rlc3QgQ0lQJScgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgNTIgLSBTZWFyY2ggZm9yIGltcGFjdAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIGltcGFjdCcsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBJbXBhY3RzICAgICA9PiBbJzEgdmVyeSBsb3cnXSwKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Rlc3QgQ0lQJScgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgNTMgLSBTZWFyY2ggZm9yIHByaW9yaXR5CiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgcHJpb3JpdHknLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgUHJpb3JpdGllcyAgPT4gWycxIHZlcnkgbG93J10sCiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0IENJUCUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDU0IC0gU2VhcmNoIGZvciBjYXRlZ29yaWVzCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgY2F0ZWdvcmllcycsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDYXRlZ29yaWVzICA9PiBbICcxIHZlcnkgbG93JywgJzIgbG93JywgJzUgdmVyeSBoaWdoJyBdLAogICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnVGVzdCVDSVAlJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgICAgICBUZXN0Q291bnQgICAgID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciA1NSAtIFNlYXJjaCBmb3IgaW1wYWN0cwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIGltcGFjdHMnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgSW1wYWN0cyAgICAgPT4gWyAnMSB2ZXJ5IGxvdycsICcyIGxvdycsICc1IHZlcnkgaGlnaCcgXSwKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Rlc3QlQ0lQJScgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgNTYgLSBTZWFyY2ggZm9yIHByaW9yaXRpZXMKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBwcmlvcml0aWVzJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIFByaW9yaXRpZXMgID0+IFsgJzEgdmVyeSBsb3cnLCAnMiBsb3cnLCAnNSB2ZXJ5IGhpZ2gnIF0sCiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0JUNJUCUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDU3IC0gU2VhcmNoIGZvciBjYXRlZ29yeSBpZAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIGNhdGVnb3J5IGlkJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENhdGVnb3J5SURzID0+IFsgJENoYW5nZUNhdGVnb3J5TmFtZTJJRHsnMSB2ZXJ5IGxvdyd9IF0sCiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0IENJUCUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDU4IC0gU2VhcmNoIGZvciBpbXBhY3QgaWQKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBpbXBhY3QgaWQnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgSW1wYWN0SURzICAgPT4gWyAkQ2hhbmdlSW1wYWN0TmFtZTJJRHsnMSB2ZXJ5IGxvdyd9IF0sCiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0IENJUCUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDU5IC0gU2VhcmNoIGZvciBwcmlvcml0eSBpZAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIHByaW9yaXR5IGlkJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIFByaW9yaXR5SURzID0+IFsgJENoYW5nZVByaW9yaXR5TmFtZTJJRHsnMSB2ZXJ5IGxvdyd9IF0sCiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0IENJUCUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDYwIC0gU2VhcmNoIGZvciBjYXRlZ29yeSBpZHMKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBjYXRlZ29yeSBpZHMnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2F0ZWdvcnlJRHMgPT4gWwogICAgICAgICAgICAgICAgJENoYW5nZUNhdGVnb3J5TmFtZTJJRHsnMSB2ZXJ5IGxvdyd9LAogICAgICAgICAgICAgICAgJENoYW5nZUNhdGVnb3J5TmFtZTJJRHsnMiBsb3cnfSwKICAgICAgICAgICAgICAgICRDaGFuZ2VDYXRlZ29yeU5hbWUySUR7JzUgdmVyeSBoaWdoJ30sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0JUNJUCUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDYxIC0gU2VhcmNoIGZvciBpbXBhY3RzCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgaW1wYWN0cycsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBJbXBhY3RJRHMgPT4gWwogICAgICAgICAgICAgICAgJENoYW5nZUltcGFjdE5hbWUySUR7JzEgdmVyeSBsb3cnfSwKICAgICAgICAgICAgICAgICRDaGFuZ2VJbXBhY3ROYW1lMklEeycyIGxvdyd9LAogICAgICAgICAgICAgICAgJENoYW5nZUltcGFjdE5hbWUySUR7JzUgdmVyeSBoaWdoJ30sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0JUNJUCUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDYyIC0gU2VhcmNoIGZvciBwcmlvcml0eSBpZHMKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBwcmlvcml0eSBpZHMnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgUHJpb3JpdHlJRHMgPT4gWwogICAgICAgICAgICAgICAgJENoYW5nZVByaW9yaXR5TmFtZTJJRHsnMSB2ZXJ5IGxvdyd9LAogICAgICAgICAgICAgICAgJENoYW5nZVByaW9yaXR5TmFtZTJJRHsnMiBsb3cnfSwKICAgICAgICAgICAgICAgICRDaGFuZ2VQcmlvcml0eU5hbWUySUR7JzUgdmVyeSBoaWdoJ30sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0JUNJUCUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDYzIC0gU2VhcmNoIGZvciBDSVBzCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgYWxsIENJUCBjb2x1bW5zJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENhdGVnb3JpZXMgID0+IFsgJzEgdmVyeSBsb3cnLCAnMiBsb3cnIF0sCiAgICAgICAgICAgIEltcGFjdHMgICAgID0+IFsnMyBub3JtYWwnXSwKICAgICAgICAgICAgUHJpb3JpdGllcyAgPT4gWyczIG5vcm1hbCddLAogICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnVGVzdCVDSVAlJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgICAgICBUZXN0Q291bnQgICAgID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciA2NCAtIFNlYXJjaCBmb3IgQ0lQIGlkcwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIGFsbCBDSVAgaWQgY29sdW1ucycsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDYXRlZ29yeUlEcyA9PiBbCiAgICAgICAgICAgICAgICAkQ2hhbmdlQ2F0ZWdvcnlOYW1lMklEeycxIHZlcnkgbG93J30sCiAgICAgICAgICAgICAgICAkQ2hhbmdlQ2F0ZWdvcnlOYW1lMklEeycyIGxvdyd9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBJbXBhY3RJRHMgPT4gWwogICAgICAgICAgICAgICAgJENoYW5nZUltcGFjdE5hbWUySUR7JzMgbm9ybWFsJ30sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFByaW9yaXR5SURzID0+IFsKICAgICAgICAgICAgICAgICRDaGFuZ2VQcmlvcml0eU5hbWUySUR7JzMgbm9ybWFsJ30sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0JUNJUCUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDY1IC0gU2VhcmNoIGZvciBpbnZhbGlkIENJUHMKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBpbnZhbGlkIENJUHMnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2F0ZWdvcmllcyAgPT4gWydGb29CYXInXSwKICAgICAgICAgICAgSW1wYWN0cyAgICAgPT4gWydGb29CYXInXSwKICAgICAgICAgICAgUHJpb3JpdGllcyAgPT4gWydGb29CYXInXSwKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Rlc3QlQ0lQJScgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoRmFpbHMgPT4gMSwKICAgIH0sCgogICAgIyBOciA2NiAtIFNlYXJjaCBmb3IgaW52YWxpZCBDYXRlZ29yaWVzCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgaW52YWxpZCBDYXRlZ29yaWVzJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENhdGVnb3JpZXMgID0+IFsnRm9vQmFyJ10sCiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdUZXN0JUNJUCUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaEZhaWxzID0+IDEsCiAgICB9LAoKICAgICMgTnIgNjcgLSBTZWFyY2ggZm9yIGludmFsaWQgQ0lQcwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIGludmFsaWQgSW1wYWN0cycsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBJbXBhY3RzICAgICA9PiBbJ0Zvb0JhciddLAogICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnVGVzdCVDSVAlJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hGYWlscyA9PiAxLAogICAgfSwKCiAgICAjIE5yIDY4IC0gU2VhcmNoIGZvciBpbnZhbGlkIFByaW9yaXRpZXMKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBpbnZhbGlkIENJUHMnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgUHJpb3JpdGllcyAgPT4gWydGb29CYXInXSwKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ1Rlc3QlQ0lQJScgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoRmFpbHMgPT4gMSwKICAgIH0sCgogICAgIyBOciA2OSAtIFNlYXJjaCBmb3IgY2hhbmdlIGR5bmFtaWMgZmllbGRzCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgY2hhbmdlIGR5bmFtaWMgZmllbGRzJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QxJyA9PiB7CiAgICAgICAgICAgICAgICBFcXVhbHMgPT4gJ0FBQUEnLAogICAgICAgICAgICB9LAogICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MicgPT4gewogICAgICAgICAgICAgICAgRXF1YWxzID0+ICdCQkJCJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVXNpbmdXaWxkY2FyZHMgPT4gMCwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDcwIC0gU2VhcmNoIGZvciBjaGFuZ2UgZHluYW1pYyBmaWVsZHMKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBjaGFuZ2UgZHluYW1pYyBmaWVsZHMnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDMnID0+IHsKICAgICAgICAgICAgICAgIEVxdWFscyA9PiAnR0dHRycsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3Q0JyA9PiB7CiAgICAgICAgICAgICAgICBFcXVhbHMgPT4gJ0hISEgnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBVc2luZ1dpbGRjYXJkcyA9PiAxLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgNzEgLSBTZWFyY2ggZm9yIGNoYW5nZSBkeW5hbWljIGZpZWxkcwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIGNoYW5nZSBkeW5hbWljIGZpZWxkcycsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnVGVzdCBhZGQgY2hhbmdlIHdpdGggZHluYW1pYyBmaWVsZHMgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDEnID0+IHsKICAgICAgICAgICAgICAgIEVxdWFscyA9PiAnQUFBQScsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QyJyA9PiB7CiAgICAgICAgICAgICAgICBFcXVhbHMgPT4gJ0JCQkInLAogICAgICAgICAgICB9LAogICAgICAgICAgICBVc2luZ1dpbGRjYXJkcyA9PiAxLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgNzIgLSBTZWFyY2ggZm9yIGNoYW5nZSBhbmQgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDEnID0+IHsKICAgICAgICAgICAgICAgIEVxdWFscyA9PiAnQUFBQScsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QyJyA9PiB7CiAgICAgICAgICAgICAgICBFcXVhbHMgPT4gJ0JCQkInLAogICAgICAgICAgICB9LAogICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdXb3Jrb3JkZXJUZXN0MScgPT4gewogICAgICAgICAgICAgICAgRXF1YWxzID0+ICdXLUFBQUEnLAogICAgICAgICAgICB9LAogICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdXb3Jrb3JkZXJUZXN0MicgPT4gewogICAgICAgICAgICAgICAgRXF1YWxzID0+ICdXLUJCQkInLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAopOwoKIyBnZXQgYSBzYW1wbGUgY2hhbmdlIHdlIGNyZWF0ZWQgYWJvdmUgZm9yIHNvbWUgJ3NwZWNpYWwnIHRlc3QgY2FzZXMKbXkgKCRTZWFyY2hUZXN0Q2hhbmdlSUQpID0gQHsgJExhYmVsMkNoYW5nZUlEc3tTZWFyY2hUZXN0fSB9OwpteSAkTnJPZkdlbmVyYWxTZWFyY2hUZXN0cyA9IHNjYWxhciBAQ2hhbmdlU2VhcmNoVGVzdHM7CgppZiAoJFNlYXJjaFRlc3RDaGFuZ2VJRCkgewogICAgbXkgJFNlYXJjaFRlc3RDaGFuZ2UgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJFNlYXJjaFRlc3RDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCiAgICBwdXNoIEBDaGFuZ2VTZWFyY2hUZXN0cywgKAogICAgICAgIHsKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZU51bWJlcicsCiAgICAgICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZU51bWJlciA9PiAkU2VhcmNoVGVzdENoYW5nZS0+e0NoYW5nZU51bWJlcn0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICAgICAgVGVzdENvdW50ID0+IDEsCiAgICAgICAgICAgICAgICBDb3VudCAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZU51bWJlciwgUGxhbm5lZFN0YXJ0VGltZU5ld2VyRGF0ZScsCiAgICAgICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZU51bWJlciAgICAgICAgICAgICAgPT4gJFNlYXJjaFRlc3RDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9LAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZU5ld2VyRGF0ZSA9PiAkU2VhcmNoVGVzdENoYW5nZS0+e1BsYW5uZWRTdGFydFRpbWV9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgIFRlc3RDb3VudCA9PiAxLAogICAgICAgICAgICAgICAgQ291bnQgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2VOdW1iZXIsIFBsYW5uZWRTdGFydFRpbWVPbGRlckRhdGUnLAogICAgICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VOdW1iZXIgICAgICAgICAgICAgID0+ICRTZWFyY2hUZXN0Q2hhbmdlLT57Q2hhbmdlTnVtYmVyfSwKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWVPbGRlckRhdGUgPT4gJFNlYXJjaFRlc3RDaGFuZ2UtPntQbGFubmVkU3RhcnRUaW1lfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgICAgICBUZXN0Q291bnQgPT4gMSwKICAgICAgICAgICAgICAgIENvdW50ICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlTnVtYmVyLCBQbGFubmVkRW5kVGltZU5ld2VyRGF0ZScsCiAgICAgICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZU51bWJlciAgICAgICAgICAgID0+ICRTZWFyY2hUZXN0Q2hhbmdlLT57Q2hhbmdlTnVtYmVyfSwKICAgICAgICAgICAgICAgIFBsYW5uZWRFbmRUaW1lTmV3ZXJEYXRlID0+ICRTZWFyY2hUZXN0Q2hhbmdlLT57UGxhbm5lZEVuZFRpbWV9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgIFRlc3RDb3VudCA9PiAxLAogICAgICAgICAgICAgICAgQ291bnQgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2VOdW1iZXIsIFBsYW5uZWRFbmRUaW1lT2xkZXJEYXRlJywKICAgICAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlTnVtYmVyICAgICAgICAgICAgPT4gJFNlYXJjaFRlc3RDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9LAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWVPbGRlckRhdGUgPT4gJFNlYXJjaFRlc3RDaGFuZ2UtPntQbGFubmVkRW5kVGltZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICAgICAgVGVzdENvdW50ID0+IDEsCiAgICAgICAgICAgICAgICBDb3VudCAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZU51bWJlciwgUGxhbm5lZEVuZFRpbWVPbGRlckRhdGUsIFBsYW5uZWRFbmRUaW1lTmV3ZXJEYXRlJywKICAgICAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlTnVtYmVyICAgICAgICAgICAgPT4gJFNlYXJjaFRlc3RDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9LAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWVPbGRlckRhdGUgPT4gJFNlYXJjaFRlc3RDaGFuZ2UtPntQbGFubmVkRW5kVGltZX0sCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZU5ld2VyRGF0ZSA9PiAkU2VhcmNoVGVzdENoYW5nZS0+e1BsYW5uZWRFbmRUaW1lfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgICAgICBUZXN0Q291bnQgPT4gMSwKICAgICAgICAgICAgICAgIENvdW50ICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlTnVtYmVyLCBQbGFubmVkRW5kVGltZU9sZGVyRGF0ZSwgUGxhbm5lZEVuZFRpbWVOZXdlckRhdGUnCiAgICAgICAgICAgICAgICAuICcsIFBsYW5uZWRTdGFydFRpbWVOZXdlckRhdGUsIFBsYW5uZWRTdGFydFRpbWVPbGRlckRhdGUnLAogICAgICAgICAgICBTZWFyY2hEYXRhID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZU51bWJlciAgICAgICAgICAgICAgPT4gJFNlYXJjaFRlc3RDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9LAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWVPbGRlckRhdGUgICA9PiAkU2VhcmNoVGVzdENoYW5nZS0+e1BsYW5uZWRFbmRUaW1lfSwKICAgICAgICAgICAgICAgIFBsYW5uZWRFbmRUaW1lTmV3ZXJEYXRlICAgPT4gJFNlYXJjaFRlc3RDaGFuZ2UtPntQbGFubmVkRW5kVGltZX0sCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlID0+ICRTZWFyY2hUZXN0Q2hhbmdlLT57UGxhbm5lZFN0YXJ0VGltZX0sCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lTmV3ZXJEYXRlID0+ICRTZWFyY2hUZXN0Q2hhbmdlLT57UGxhbm5lZFN0YXJ0VGltZX0sCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlID0+ICRTZWFyY2hUZXN0Q2hhbmdlLT57UGxhbm5lZFN0YXJ0VGltZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICAgICAgVGVzdENvdW50ID0+IDEsCiAgICAgICAgICAgICAgICBDb3VudCAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZU51bWJlciB3aXRoIHdpbGRjYXJkJywKICAgICAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlTnVtYmVyID0+IHN1YnN0ciggJFNlYXJjaFRlc3RDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9LCAwLCAxMCApIC4gJyUnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZU51bWJlciwgQ2hhbmdlVGl0bGUgd2l0aCB3aWxkY2FyZCcsCiAgICAgICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZU51bWJlciA9PiBzdWJzdHIoICRTZWFyY2hUZXN0Q2hhbmdlLT57Q2hhbmdlTnVtYmVyfSwgMCwgMTAgKSAuICclJywKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICA9PiBzdWJzdHIoICRTZWFyY2hUZXN0Q2hhbmdlLT57VGl0bGV9LCAgICAgICAgMCwgMSApIC4gJyUnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZU51bWJlciwgdHdvIGNyZWF0b3JzJywKICAgICAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlTnVtYmVyID0+ICRTZWFyY2hUZXN0Q2hhbmdlLT57Q2hhbmdlTnVtYmVyfSwKICAgICAgICAgICAgICAgIENyZWF0ZUJ5ICAgICA9PiBbICRTZWFyY2hUZXN0Q2hhbmdlLT57Q3JlYXRlQnl9LCAkU2VhcmNoVGVzdENoYW5nZS0+e0NyZWF0ZUJ5fSArIDEgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgICAgICBUZXN0Q291bnQgPT4gMSwKICAgICAgICAgICAgICAgIENvdW50ICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlTnVtYmVyICh3aXRoIHdpbGRjYXJkKSwgdHdvIGNyZWF0b3JzJywKICAgICAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlTnVtYmVyID0+IHN1YnN0ciggJFNlYXJjaFRlc3RDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9LCAwLCAxMCApIC4gJyUnLAogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgID0+IFsgJFNlYXJjaFRlc3RDaGFuZ2UtPntDcmVhdGVCeX0sICRTZWFyY2hUZXN0Q2hhbmdlLT57Q3JlYXRlQnl9ICsgMSBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZVRpdGxlLCBDaGFuZ2VOdW1iZXIsIHR3byBjcmVhdG9ycycsCiAgICAgICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZU51bWJlciA9PiAkU2VhcmNoVGVzdENoYW5nZS0+e0NoYW5nZU51bWJlcn0sCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgPT4gWyAkU2VhcmNoVGVzdENoYW5nZS0+e0NyZWF0ZUJ5fSwgJFNlYXJjaFRlc3RDaGFuZ2UtPntDcmVhdGVCeX0gKyAxIF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgPT4gc3Vic3RyKCAkU2VhcmNoVGVzdENoYW5nZS0+e0NoYW5nZVRpdGxlfSwgMCwgMSApIC4gJyUnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgIFRlc3RDb3VudCA9PiAxLAogICAgICAgICAgICAgICAgQ291bnQgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2VOdW1iZXIsIEFjdHVhbEVuZFRpbWVOZXdlckRhdGUnLAogICAgICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VOdW1iZXIgICAgICAgICAgID0+ICRTZWFyY2hUZXN0Q2hhbmdlLT57Q2hhbmdlTnVtYmVyfSwKICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWVOZXdlckRhdGUgPT4gJFNlYXJjaFRlc3RDaGFuZ2UtPntBY3R1YWxFbmRUaW1lfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgICAgICBUZXN0Q291bnQgPT4gMSwKICAgICAgICAgICAgICAgIENvdW50ICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlTnVtYmVyLCBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlJywKICAgICAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlTnVtYmVyICAgICAgICAgICA9PiAkU2VhcmNoVGVzdENoYW5nZS0+e0NoYW5nZU51bWJlcn0sCiAgICAgICAgICAgICAgICBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlID0+ICRTZWFyY2hUZXN0Q2hhbmdlLT57QWN0dWFsRW5kVGltZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlTnVtYmVyLCBBY3R1YWxFbmRUaW1lTmV3ZXJEYXRlLCBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlJywKICAgICAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZU5ld2VyRGF0ZSA9PiAkU2VhcmNoVGVzdENoYW5nZS0+e0FjdHVhbEVuZFRpbWV9LAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZU9sZGVyRGF0ZSA9PiAkU2VhcmNoVGVzdENoYW5nZS0+e0FjdHVhbEVuZFRpbWV9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZU51bWJlciwgQWN0dWFsU3RhcnRUaW1lTmV3ZXJEYXRlJywKICAgICAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICAgICAgQWN0dWFsU3RhcnRUaW1lTmV3ZXJEYXRlID0+ICRTZWFyY2hUZXN0Q2hhbmdlLT57QWN0dWFsU3RhcnRUaW1lfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2VOdW1iZXIsIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZScsCiAgICAgICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZSA9PiAkU2VhcmNoVGVzdENoYW5nZS0+e0FjdHVhbFN0YXJ0VGltZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlTnVtYmVyLCBBY3R1YWxTdGFydFRpbWVOZXdlckRhdGUsIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZScsCiAgICAgICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZU5ld2VyRGF0ZSA9PiAkU2VhcmNoVGVzdENoYW5nZS0+e0FjdHVhbFN0YXJ0VGltZX0sCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWVPbGRlckRhdGUgPT4gJFNlYXJjaFRlc3RDaGFuZ2UtPntBY3R1YWxTdGFydFRpbWV9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkTnJPZkFsbFNlYXJjaFRlc3RzID0gc2NhbGFyIEBDaGFuZ2VTZWFyY2hUZXN0czsKCiAgICBmb3IgbXkgJFRlc3ROdW1iZXIgKCAoICROck9mR2VuZXJhbFNlYXJjaFRlc3RzICsgMSApIC4uICROck9mQWxsU2VhcmNoVGVzdHMgKSB7CiAgICAgICAgJENoYW5nZUlERm9yU2VhcmNoVGVzdHskVGVzdE51bWJlcn0tPnsgJFNlYXJjaFRlc3RDaGFuZ2UtPntDaGFuZ2VJRH0gfSA9IDE7CiAgICB9Cn0KCm15ICRTZWFyY2hUZXN0Q291bnQgPSAxOwoKU0VBUkNIVEVTVDoKZm9yIG15ICRUZXN0IChAQ2hhbmdlU2VhcmNoVGVzdHMpIHsKCiAgICAjIGNoZWNrIFNlYXJjaERhdGEgYXR0cmlidXRlCiAgICBpZiAoICEkVGVzdC0+e1NlYXJjaERhdGF9IHx8IHJlZiggJFRlc3QtPntTZWFyY2hEYXRhfSApIG5lICdIQVNIJyApIHsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgMCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogU2VhcmNoRGF0YSBmb3VuZCBmb3IgdGhpcyB0ZXN0LiIsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBTRUFSQ0hURVNUOwogICAgfQoKICAgICRTZWxmLT5UcnVlKAogICAgICAgIDEsCiAgICAgICAgIkNoYW5nZVNlYXJjaCgpIHdpdGggcGFyYW1zOiAkVGVzdC0+e0Rlc2NyaXB0aW9ufSAoU2VhcmNoVGVzdENhc2U6ICRTZWFyY2hUZXN0Q291bnQpIiwKICAgICk7CgogICAgIyBnZXQgYSByZWYgdG8gYW4gYXJyYXkgb2YgZm91bmQgaWRzCiAgICBteSAkQ2hhbmdlSURzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU2VhcmNoKAogICAgICAgICV7ICRUZXN0LT57U2VhcmNoRGF0YX0gfSwKICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJywKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgIyBnZXQgYSBjb3VudCBvZiBmb3VuZCBpZHMKICAgIG15ICRDb3VudENoYW5nZUlEcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVNlYXJjaCgKICAgICAgICAleyAkVGVzdC0+e1NlYXJjaERhdGF9IH0sCiAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgIGlmICggJFRlc3QtPntTZWFyY2hGYWlsc30gKSB7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICFkZWZpbmVkKCRDaGFuZ2VJRHMpLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBDaGFuZ2VTZWFyY2goKSBpcyBleHBlY3RlZCB0byBmYWlsIChSZXN1bHQgPT4gJ0FSUkFZJykiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICFkZWZpbmVkKCRDb3VudENoYW5nZUlEcyksCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IENoYW5nZVNlYXJjaCgpIGlzIGV4cGVjdGVkIHRvIGZhaWwgKFJlc3VsdCA9PiAnQ09VTlQnKSIsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBkZWZpbmVkKCRDaGFuZ2VJRHMpICYmIHJlZiAkQ2hhbmdlSURzIGVxICdBUlJBWScsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIGFycmF5IHJlZmVyZW5jZSBmb3IgQ2hhbmdlSURzLiIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgZGVmaW5lZCgkQ291bnRDaGFuZ2VJRHMpICYmIHJlZiAkQ291bnRDaGFuZ2VJRHMgZXEgJycsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIHNjYWxhciBmb3IgQ291bnRDaGFuZ2VJRHMuIiwKICAgICAgICApOwogICAgfQoKICAgICRDaGFuZ2VJRHMgICAgICB8fD0gW107CiAgICAkQ291bnRDaGFuZ2VJRHMgfHw9IDA7CgogICAgaWYgKCAkVGVzdC0+e1Jlc3VsdERhdGF9LT57VGVzdENvdW50fSApIHsKCiAgICAgICAgIyBnZXQgbnVtYmVyIG9mIGNoYW5nZSBpZHMgQ2hhbmdlU2VhcmNoIHNob3VsZCByZXR1cm4KICAgICAgICBteSAkRXhwZWN0ZWRDb3VudCA9IHNjYWxhciBrZXlzICV7ICRDaGFuZ2VJREZvclNlYXJjaFRlc3R7JFNlYXJjaFRlc3RDb3VudH0gfTsKCiAgICAgICAgIyBnZXQgZGVmaW5lZCBleHBlY3RlZCByZXN1bHQgY291bnQgKGRlZmluZWQgaW4gc2VhcmNoIHRlc3QgY2FzZSEpCiAgICAgICAgaWYgKCBleGlzdHMgJFRlc3QtPntSZXN1bHREYXRhfS0+e0NvdW50fSApIHsKICAgICAgICAgICAgJEV4cGVjdGVkQ291bnQgPSAkVGVzdC0+e1Jlc3VsdERhdGF9LT57Q291bnR9OwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayB0aGUgbnVtYmVyIG9mIElEcyBpbiB0aGUgcmV0dXJuZWQgYXJyYXlyZWYKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgIHNjYWxhciBAeyRDaGFuZ2VJRHN9LAogICAgICAgICAgICAkRXhwZWN0ZWRDb3VudCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gTnVtYmVyIG9mIGZvdW5kIGNoYW5nZXMgKFJlc3VsdCA9PiAnQVJSQVknKS4iLAogICAgICAgICk7CgogICAgICAgICMgV2hlbiBhICdMaW1pdCcgaGFzIGJlZW4gcGFzc2VkLCB0aGVuIHRoZSByZXR1cm5lZCBjb3VudCBub3QgbmVjZXNzYXJpbHkgbWF0Y2hlcwogICAgICAgICMgdGhlIG51bWJlciBvZiBJRHMgaW4gdGhlIHJldHVybmVkIGFycmF5LiBJbiB0aGF0IGNhc2UgdGVzdGluZyBpcyBmdXRpbGUuCiAgICAgICAgaWYgKCAhJFRlc3QtPntTZWFyY2hEYXRhfS0+e0xpbWl0fSApIHsKICAgICAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAgICAgJENvdW50Q2hhbmdlSURzLAogICAgICAgICAgICAgICAgJEV4cGVjdGVkQ291bnQsCiAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBOdW1iZXIgb2YgZm91bmQgY2hhbmdlcyAoUmVzdWx0ID0+ICdDT1VOVCcpLiIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJFRlc3QtPntSZXN1bHREYXRhfS0+e1Rlc3RFeGlzdGVuY2V9ICkgewoKICAgICAgICAjIGNoZWNrIGlmIGFsbCBpZHMgdGhhdCBiZWxvbmdzIHRvIHRoaXMgc2VhcmNodGVzdCBhcmUgcmV0dXJuZWQKICAgICAgICBteSBAQ2hhbmdlSURzICAgICAgICA9IGtleXMgJXsgJENoYW5nZUlERm9yU2VhcmNoVGVzdHskU2VhcmNoVGVzdENvdW50fSB9OwogICAgICAgIG15ICVSZXR1cm5lZENoYW5nZUlEID0gbWFwIHsgJF8gPT4gMSB9IEB7JENoYW5nZUlEc307CiAgICAgICAgZm9yIG15ICRDaGFuZ2VJRCAoQENoYW5nZUlEcykgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRSZXR1cm5lZENoYW5nZUlEeyRDaGFuZ2VJRH0sCiAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBDaGFuZ2VJRCAkQ2hhbmdlSUQgZm91bmQgaW4gcmV0dXJuZWQgbGlzdC4iLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KfQpjb250aW51ZSB7CiAgICAkVGVzdENvdW50Kys7CiAgICAkU2VhcmNoVGVzdENvdW50Kys7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBkZWZpbmUgY2hhbmdlIHNlYXJjaCB0ZXN0cyBmb3IgJ09yZGVyQnknIHNlYXJjaGVzCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiMgZ2V0IHRocmVlIGNoYW5nZSBpZHMuIFRoZW4gZ2V0IHRoZSBkYXRhLiBUaGF0IGlzIG5lZWRlZCBmb3Igc29ydGluZwpteSBAT3JkZXJCeVNlYXJjaFRlc3RDaGFuZ2VJRHMgPSBAeyAkTGFiZWwyQ2hhbmdlSURze09yZGVyQnlTZWFyY2hUZXN0fSB9OwpteSBAT3JkZXJCeVNlYXJjaFRlc3RDaGFuZ2VzOwoKZm9yIG15ICRDaGFuZ2VJREZvck9yZGVyQnlUZXN0cyAoQE9yZGVyQnlTZWFyY2hUZXN0Q2hhbmdlSURzKSB7CiAgICBteSAkQ2hhbmdlRGF0YSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSURGb3JPcmRlckJ5VGVzdHMsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgIyBjb252ZXJ0IHRpbWUgc3RyaW5nIHRvIG51bWJlcnMgLSB0aGF0J3MgYmV0dGVyIGZvciB0aGUgY29tcGFyaXNvbnMKICAgIGZvciBteSAkVGltZUNvbHVtbiAocXcoQ3JlYXRlVGltZSBDaGFuZ2VUaW1lKSkgewogICAgICAgICRDaGFuZ2VEYXRhLT57JFRpbWVDb2x1bW59ID1+IHN7IFxEIH17fXhtc2c7CiAgICB9CgogICAgcHVzaCBAT3JkZXJCeVNlYXJjaFRlc3RDaGFuZ2VzLCAkQ2hhbmdlRGF0YTsKfQoKbXkgQE9yZGVyQnlDb2x1bW5zID0gcXcoCiAgICBDaGFuZ2VJRAogICAgQ2hhbmdlTnVtYmVyCiAgICBDaGFuZ2VUaXRsZQogICAgQ2hhbmdlU3RhdGVJRAogICAgQ2hhbmdlTWFuYWdlcklECiAgICBDaGFuZ2VCdWlsZGVySUQKICAgIENyZWF0ZUJ5CiAgICBDaGFuZ2VCeQogICAgQ3JlYXRlVGltZQogICAgQ2hhbmdlVGltZQogICAgUGxhbm5lZFN0YXJ0VGltZQogICAgUGxhbm5lZEVuZFRpbWUKICAgIEFjdHVhbFN0YXJ0VGltZQogICAgQWN0dWFsRW5kVGltZQopOwoKZm9yIG15ICRPcmRlckJ5Q29sdW1uIChAT3JkZXJCeUNvbHVtbnMpIHsKCiAgICAjIHR1cm4gb2ZmIGFsbCBwcmV0dHkgcHJpbnQKICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OkluZGVudCA9IDA7CiAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpVc2VxcSAgPSAxOwoKICAgIG15IEBTb3J0ZWRDaGFuZ2VzOwogICAgaWYgKCAkT3JkZXJCeUNvbHVtbiA9fiBteyBcQSAoIENoYW5nZVRpdGxlIHwgLisgVGltZSApIFx6IH14bXMgKSB7CiAgICAgICAgQFNvcnRlZENoYW5nZXMgPSBzb3J0IHsKICAgICAgICAgICAgJGEtPnskT3JkZXJCeUNvbHVtbn0gY21wICRiLT57JE9yZGVyQnlDb2x1bW59CiAgICAgICAgICAgICAgICB8fCAkYi0+e0NoYW5nZUlEfSA8PT4gJGEtPntDaGFuZ2VJRH0KICAgICAgICB9IEBPcmRlckJ5U2VhcmNoVGVzdENoYW5nZXM7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBAU29ydGVkQ2hhbmdlcyA9IHNvcnQgewogICAgICAgICAgICAkYS0+eyRPcmRlckJ5Q29sdW1ufSAgPD0+ICRiLT57JE9yZGVyQnlDb2x1bW59CiAgICAgICAgICAgICAgICB8fCAkYi0+e0NoYW5nZUlEfSA8PT4gJGEtPntDaGFuZ2VJRH0KICAgICAgICB9IEBPcmRlckJ5U2VhcmNoVGVzdENoYW5nZXM7CiAgICB9CiAgICBteSBAU29ydGVkSURzID0gbWFwIHsgJF8tPntDaGFuZ2VJRH0gfSBAU29ydGVkQ2hhbmdlczsKCiAgICAjIGR1bXAgdGhlIHJlZmVyZW5jZSBhdHRyaWJ1dGUKICAgIG15ICRSZWZlcmVuY2VMaXN0ID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoIFxAU29ydGVkSURzICk7ICAgICMjIG5vIGNyaXRpYwoKICAgIG15ICRTZWFyY2hSZXN1bHQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgQ2hhbmdlVGl0bGUgICAgICA9PiAnT3JkZXJCeUNoYW5nZSAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiBbJE9yZGVyQnlDb2x1bW5dLAogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gWydVcCddLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBkdW1wIHRoZSBhdHRyaWJ1dGUgZnJvbSBDaGFuZ2VHZXQoKQogICAgbXkgJFNlYXJjaExpc3QgPSBEYXRhOjpEdW1wZXI6OkR1bXBlcigkU2VhcmNoUmVzdWx0KTsgICAgICAgIyMgbm8gY3JpdGljCgogICAgJFNlbGYtPklzKAogICAgICAgICRTZWFyY2hMaXN0LAogICAgICAgICRSZWZlcmVuY2VMaXN0LAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiOiBDaGFuZ2VTZWFyY2goKSBPcmRlckJ5ICRPcmRlckJ5Q29sdW1uIChVcCkuIgogICAgKTsKCiAgICBteSBAU29ydGVkQ2hhbmdlc0Rvd247CiAgICBpZiAoICRPcmRlckJ5Q29sdW1uID1+IG17IFxBICggQ2hhbmdlVGl0bGUgfCAuKyBUaW1lICkgXHogfXhtcyApIHsKICAgICAgICBAU29ydGVkQ2hhbmdlc0Rvd24gPSBzb3J0IHsKICAgICAgICAgICAgJGItPnskT3JkZXJCeUNvbHVtbn0gY21wICRhLT57JE9yZGVyQnlDb2x1bW59CiAgICAgICAgICAgICAgICB8fCAkYi0+e0NoYW5nZUlEfSA8PT4gJGEtPntDaGFuZ2VJRH0KICAgICAgICB9IEBPcmRlckJ5U2VhcmNoVGVzdENoYW5nZXM7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBAU29ydGVkQ2hhbmdlc0Rvd24gPSBzb3J0IHsKICAgICAgICAgICAgJGItPnskT3JkZXJCeUNvbHVtbn0gIDw9PiAkYS0+eyRPcmRlckJ5Q29sdW1ufQogICAgICAgICAgICAgICAgfHwgJGItPntDaGFuZ2VJRH0gPD0+ICRhLT57Q2hhbmdlSUR9CiAgICAgICAgfSBAT3JkZXJCeVNlYXJjaFRlc3RDaGFuZ2VzOwogICAgfQogICAgbXkgQFNvcnRlZElEc0Rvd24gPSBtYXAgeyAkXy0+e0NoYW5nZUlEfSB9IEBTb3J0ZWRDaGFuZ2VzRG93bjsKCiAgICAjIGR1bXAgdGhlIHJlZmVyZW5jZSBhdHRyaWJ1dGUKICAgIG15ICRSZWZlcmVuY2VMaXN0RG93biA9IERhdGE6OkR1bXBlcjo6RHVtcGVyKCBcQFNvcnRlZElEc0Rvd24gKTsgICAgIyMgbm8gY3JpdGljCgogICAgbXkgJFNlYXJjaFJlc3VsdERvd24gPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ09yZGVyQnlDaGFuZ2UgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIE9yZGVyQnkgICAgID0+IFskT3JkZXJCeUNvbHVtbl0sCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7CgogICAgIyBkdW1wIHRoZSBhdHRyaWJ1dGUgZnJvbSBDaGFuZ2VHZXQoKQogICAgbXkgJFNlYXJjaExpc3REb3duID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoJFNlYXJjaFJlc3VsdERvd24pOyAgICAgICAjIyBubyBjcml0aWMKCiAgICAkU2VsZi0+SXMoCiAgICAgICAgJFNlYXJjaExpc3REb3duLAogICAgICAgICRSZWZlcmVuY2VMaXN0RG93biwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIjogQ2hhbmdlU2VhcmNoKCkgT3JkZXJCeSAkT3JkZXJCeUNvbHVtbiAoRG93bikuIgogICAgKTsKCiAgICAjIGNoZWNrIGlmIElUU01DaGFuZ2UucG0gaGFuZGxlcyBub24tZXhpc3RlbnQgT3JkZXJCeURpcmVjdGlvbiBjcml0ZXJpYSBjb3JyZWN0CiAgICBteSAkU2VhcmNoUmVzdWx0U2lkZXdheXMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgQ2hhbmdlVGl0bGUgICAgICA9PiAnT3JkZXJCeUNoYW5nZSAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiBbJE9yZGVyQnlDb2x1bW5dLAogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gWydTaWRld2F5cyddLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgICRTZWFyY2hSZXN1bHRTaWRld2F5cywKICAgICAgICB1bmRlZiwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIjogQ2hhbmdlU2VhcmNoKCkgT3JkZXJCeSAkT3JkZXJCeUNvbHVtbiAoU2lkZXdheXMpLiIKICAgICk7Cn0KCiMgY3JlYXRlIGFuIGV4dHJhIGJsb2NrLCBpbiBvcmRlciB0byBsaW1pdCBzY29wZSBvZiBsZXhpY2Fscwp7CgogICAgIyBjaGVjayBmb3IgJ09yZGVyQnknIHdpdGggbm9uLWV4aXN0ZW50IGNvbHVtbgogICAgbXkgJFNlYXJjaFJlc3VsdEZvb0JhckNvbHVtbiA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVNlYXJjaCgKICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnT3JkZXJCeUNoYW5nZSAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgT3JkZXJCeSAgICAgPT4gWydGb29CYXInXSwKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKCiAgICAkU2VsZi0+SXMoCiAgICAgICAgJFNlYXJjaFJlc3VsdEZvb0JhckNvbHVtbiwKICAgICAgICB1bmRlZiwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIjogQ2hhbmdlU2VhcmNoKCkgT3JkZXJCeSBGb29CYXIgKERvd24pLiIKICAgICk7CgogICAgIyBjaGVjayBmb3IgJ09yZGVyQnknIHdpdGggbm9uLWV4aXN0ZW50IGNvbHVtbgogICAgbXkgJFNlYXJjaFJlc3VsdEZvb0JhckNvbHVtbkRpcmVjdGlvbiA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVNlYXJjaCgKICAgICAgICBDaGFuZ2VUaXRsZSAgICAgID0+ICdPcmRlckJ5Q2hhbmdlIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFsnRm9vQmFyJ10sCiAgICAgICAgT3JkZXJCeURpcmVjdGlvbiA9PiBbJ0Zvb0JhciddLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgICRTZWFyY2hSZXN1bHRGb29CYXJDb2x1bW5EaXJlY3Rpb24sCiAgICAgICAgdW5kZWYsCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICI6IENoYW5nZVNlYXJjaCgpIE9yZGVyQnkgRm9vQmFyIChGb29CYXIpLiIKICAgICk7CgogICAgIyBjaGVjayBmb3IgJ09yZGVyQnknIHdpdGggbm9uLWV4aXN0ZW50IGNvbHVtbgogICAgbXkgJFNlYXJjaFJlc3VsdEZvb0JhckRvdWJsZUNvbHVtbiA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVNlYXJjaCgKICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnT3JkZXJCeUNoYW5nZSAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgT3JkZXJCeSAgICAgPT4gWyAnQ2hhbmdlSUQnLCAnQ2hhbmdlSUQnIF0sCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgICRTZWFyY2hSZXN1bHRGb29CYXJEb3VibGVDb2x1bW4sCiAgICAgICAgdW5kZWYsCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICI6IENoYW5nZVNlYXJjaCgpIERvdWJsZWQgT3JkZXJCeSBGb29CYXIuIgogICAgKTsKfQoKIyBjaGFuZ2UgdGhlIGNyZWF0ZSB0aW1lIGZvciB0aGUgc2Vjb25kIHRlc3QgY2FzZSB3ZSBkZWZpbmVkIGFib3ZlIGZvciB0aGUgb3JkZXJieSB0ZXN0cwojIHdlIGRvIHRoaXMgdG8gaGF2ZSB0d28gY2hhbmdlcyB3aXRoIHRoZSBzYW1lIGNyZWF0ZSB0aW1lLiB0aGlzIGlzIG5lZWRlZCB0byB0ZXN0CiMgdGhlICdvcmRlcmJ5JyB3aXRoIHR3byBjb2x1bW5zClNldFRpbWVzKAogICAgQ2hhbmdlSUQgICA9PiAoIHNvcnQgQE9yZGVyQnlTZWFyY2hUZXN0Q2hhbmdlSURzIClbMV0sCiAgICBDcmVhdGVUaW1lID0+ICcyMDA5LTEwLTAxIDAxOjAwOjAwJywKKTsKCm15IEBDaGFuZ2VzRm9yU2Vjb25kT3JkZXJCeVRlc3RzOwpmb3IgbXkgJENoYW5nZUlERm9yU2Vjb25kT3JkZXJCeVRlc3RzIChAT3JkZXJCeVNlYXJjaFRlc3RDaGFuZ2VJRHMpIHsKICAgIG15ICRDaGFuZ2VEYXRhID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJREZvclNlY29uZE9yZGVyQnlUZXN0cywKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCiAgICAjIGNvbnZlcnQgdGltZSBzdHJpbmcgdG8gbnVtYmVycyAtIHRoYXQncyBiZXR0ZXIgZm9yIHRoZSBjb21wYXJpc29ucwogICAgZm9yIG15ICRUaW1lQ29sdW1uIChxdyhDcmVhdGVUaW1lIENoYW5nZVRpbWUpKSB7CiAgICAgICAgJENoYW5nZURhdGEtPnskVGltZUNvbHVtbn0gPX4gc3sgXEQgfXt9eG1zZzsKICAgIH0KCiAgICBwdXNoIEBDaGFuZ2VzRm9yU2Vjb25kT3JkZXJCeVRlc3RzLCAkQ2hhbmdlRGF0YTsKfQoKIyBjcmVhdGUgYW4gZXh0cmEgYmxvY2sgYXMgd2UgdXNlICJsb2NhbCIKewogICAgbXkgQFNvcnRlZENoYW5nZXMgPSBzb3J0IHsKICAgICAgICAkYS0+e0NyZWF0ZVRpbWV9IDw9PiAkYi0+e0NyZWF0ZVRpbWV9ICAgICAgICAgIyBjcmVhdGV0aW1lIGlzIHNvcnRlZCBhc2NlbmRpbmcKICAgICAgICAgICAgfHwgJGEtPntDaGFuZ2VJRH0gPD0+ICRiLT57Q2hhbmdlSUR9ICAgICAgIyBjaGFuZ2VpZCBpcyBzb3J0ZWQgYXNjZW5kaW5nCiAgICB9IEBDaGFuZ2VzRm9yU2Vjb25kT3JkZXJCeVRlc3RzOwogICAgbXkgQFNvcnRlZElEcyA9IG1hcCB7ICRfLT57Q2hhbmdlSUR9IH0gQFNvcnRlZENoYW5nZXM7CgogICAgIyB0dXJuIG9mZiBhbGwgcHJldHR5IHByaW50CiAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOwogICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6VXNlcXEgID0gMTsKCiAgICBteSAkU2VhcmNoUmVzdWx0ID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU2VhcmNoKAogICAgICAgIENoYW5nZVRpdGxlICAgICAgPT4gJ09yZGVyQnlDaGFuZ2UgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gWyAnQ3JlYXRlVGltZScsICdDaGFuZ2VJRCcgXSwKICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFsgJ1VwJywgICAgICAgICAnVXAnIF0sCiAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgKTsKCiAgICAjIGR1bXAgdGhlIGF0dHJpYnV0ZSBmcm9tIENoYW5nZUdldCgpCiAgICBteSAkU2VhcmNoTGlzdCA9IERhdGE6OkR1bXBlcjo6RHVtcGVyKCRTZWFyY2hSZXN1bHQpOyAgICAjIyBubyBjcml0aWMKCiAgICAjIGR1bXAgdGhlIHJlZmVyZW5jZSBhdHRyaWJ1dGUKICAgIG15ICRSZWZlcmVuY2VMaXN0ID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoIFxAU29ydGVkSURzICk7ICAgICMjIG5vIGNyaXRpYwoKICAgICRTZWxmLT5JcygKICAgICAgICAkU2VhcmNoTGlzdCwKICAgICAgICAkUmVmZXJlbmNlTGlzdCwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIjogQ2hhbmdlU2VhcmNoKCkgT3JkZXJCeSBDcmVhdGVUaW1lIChEb3duKSBhbmQgQ2hhbmdlSUQgKFVwKS4iCiAgICApOwp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgYWR2YW5jZWQgc2VhcmNoIGJ5IHRlc3RzIGZvciB0aW1lcwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCm15ICRUU1RDaGFuZ2VUaXRsZSA9ICdUaW1lU2VhcmNoVGVzdCAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmU7Cm15IEBUU1RDaGFuZ2VJRHM7Cm15IEBUaW1lU2VhcmNoVGVzdHMgPSAoCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0luc2VydCBjaGFuZ2Ugd2l0aCBvbmUgd29ya29yZGVyIGluIHRoZSAxOXRoIGNlbnR1cnkuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnMTkwOS0wMS0wMSAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZSAgID0+ICcxOTA5LTAxLTMwIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZSAgPT4gJzE5MDktMDEtMDIgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgICA9PiAnMTkwOS0wMS0yOSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0luc2VydCBjaGFuZ2Ugd2l0aCBvbmUgd29ya29yZGVyIGluIHRoZSAxOXRoIGNlbnR1cnkuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnMTkwOS0wMS0xMCAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZSAgID0+ICcxOTA5LTAxLTIwIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZSAgPT4gJzE5MDktMDEtMTEgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgICA9PiAnMTkwOS0wMS0xOSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0luc2VydCBjaGFuZ2Ugd2l0aCBvbmUgd29ya29yZGVyIGluIHRoZSAxOXRoIGNlbnR1cnkuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnMTkwOS0wMi0wMSAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZSAgID0+ICcxOTA5LTAyLTI3IDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZSAgPT4gJzE5MDktMDItMDIgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgICA9PiAnMTkwOS0wMi0yNiAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0luc2VydCBjaGFuZ2Ugd2l0aCBvbmUgd29ya29yZGVyIGluIHRoZSAxOXRoIGNlbnR1cnkuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnMTkwOS0wMy0wMSAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZSAgID0+ICcxOTA5LTA0LTA3IDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZSAgPT4gJzE5MDktMDItMjAgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgICA9PiAnMTkwOS0wNS0wMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKICAgICMgdGVzdCBmb3IgcGxhbm5lZCBzdGFydCB0aW1lCiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIFBsYW5uZWRTdGFydFRpbWVOZXdlckRhdGUgYW5kIFBsYW5uZWRTdGFydFRpbWVPbGRlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgICAgICAgID0+ICRUU1RDaGFuZ2VUaXRsZSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWVOZXdlckRhdGUgPT4gJzE5MDktMDEtMDEgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZU9sZGVyRGF0ZSA9PiAnMTkwOS0wMS0wMiAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFsKICAgICAgICAgICAgMCwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBQbGFubmVkU3RhcnRUaW1lTmV3ZXJEYXRlIGFuZCBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgICAgICAgICAgICA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lTmV3ZXJEYXRlID0+ICcxOTA4LTEyLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWVPbGRlckRhdGUgPT4gJzE5MDgtMTItMzEgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbXSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgUGxhbm5lZFN0YXJ0VGltZU5ld2VyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgICAgICAgICAgPT4gJFRTVENoYW5nZVRpdGxlLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0wMi0wMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFsgMiwgMywgXSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgUGxhbm5lZFN0YXJ0VGltZU5ld2VyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgICAgICAgICAgPT4gJFRTVENoYW5nZVRpdGxlLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0xMi0wMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgICAgICAgICAgICA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlID0+ICcxOTA5LTAxLTEwIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWyAwLCAxLCBdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgICAgICAgICAgICA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlID0+ICcxOTA4LTAxLTMxIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gW10sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIFBsYW5uZWRTdGFydFRpbWVOZXdlckRhdGUgYW5kIFBsYW5uZWRTdGFydFRpbWVPbGRlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgICAgICAgID0+ICRUU1RDaGFuZ2VUaXRsZSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWVOZXdlckRhdGUgPT4gJzE5MDktMTItMDEgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZU9sZGVyRGF0ZSA9PiAnMTkwOC0xMi0wMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKCiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIwogICAgIyB0ZXN0IGZvciBwbGFubmVkIGVuZCB0aW1lCiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIFBsYW5uZWRFbmRUaW1lTmV3ZXJEYXRlIGFuZCBQbGFubmVkRW5kVGltZU9sZGVyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgICAgICAgID0+ICRUU1RDaGFuZ2VUaXRsZSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0wMS0zMCAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZU9sZGVyRGF0ZSA9PiAnMTkwOS0wMS0zMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFsKICAgICAgICAgICAgMCwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBQbGFubmVkRW5kVGltZU5ld2VyRGF0ZSBhbmQgUGxhbm5lZEVuZFRpbWVPbGRlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgICAgICA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWVOZXdlckRhdGUgPT4gJzE5MDgtMTItMDEgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWVPbGRlckRhdGUgPT4gJzE5MDgtMTItMzEgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbXSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgUGxhbm5lZEVuZFRpbWVOZXdlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgICAgICA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWVOZXdlckRhdGUgPT4gJzE5MDktMDItMjcgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbIDIsIDMsIF0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIFBsYW5uZWRFbmRUaW1lTmV3ZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgICAgICAgICAgPT4gJFRTVENoYW5nZVRpdGxlLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBsYW5uZWRFbmRUaW1lTmV3ZXJEYXRlID0+ICcxOTA5LTA1LTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gW10sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIFBsYW5uZWRFbmRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgICAgICAgICAgPT4gJFRTVENoYW5nZVRpdGxlLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBsYW5uZWRFbmRUaW1lT2xkZXJEYXRlID0+ICcxOTA5LTAxLTI1IDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWyAxLCBdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBQbGFubmVkRW5kVGltZU9sZGVyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgICAgICAgID0+ICRUU1RDaGFuZ2VUaXRsZSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZU9sZGVyRGF0ZSA9PiAnMTkwOC0wMS0zMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBQbGFubmVkRW5kVGltZU5ld2VyRGF0ZSBhbmQgUGxhbm5lZEVuZFRpbWVPbGRlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgICAgICA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWVOZXdlckRhdGUgPT4gJzE5MDktMDUtMDEgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWVPbGRlckRhdGUgPT4gJzE5MDgtMTItMDEgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbXSwKICAgIH0sCgogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKICAgICMgdGVzdCBmb3IgYWN0dWFsIHN0YXJ0IHRpbWUKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgQWN0dWFsU3RhcnRUaW1lTmV3ZXJEYXRlIGFuZCBBY3R1YWxTdGFydFRpbWVPbGRlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgICAgICAgPT4gJFRTVENoYW5nZVRpdGxlLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWVOZXdlckRhdGUgPT4gJzE5MDktMDEtMDIgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgQWN0dWFsU3RhcnRUaW1lT2xkZXJEYXRlID0+ICcxOTA5LTAxLTAyIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWwogICAgICAgICAgICAwLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIEFjdHVhbFN0YXJ0VGltZU5ld2VyRGF0ZSBhbmQgQWN0dWFsU3RhcnRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgICAgICAgICAgID0+ICRUU1RDaGFuZ2VUaXRsZSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQWN0dWFsU3RhcnRUaW1lTmV3ZXJEYXRlID0+ICcxOTA4LTEyLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZSA9PiAnMTkwOC0xMi0zMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBBY3R1YWxTdGFydFRpbWVOZXdlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgICAgICAgPT4gJFRTVENoYW5nZVRpdGxlLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWVOZXdlckRhdGUgPT4gJzE5MDktMDItMDEgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbIDIsIDMsIF0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIEFjdHVhbFN0YXJ0VGltZU5ld2VyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgICAgICAgICA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0xMi0zMCAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBBY3R1YWxTdGFydFRpbWVPbGRlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgICAgICAgPT4gJFRTVENoYW5nZVRpdGxlLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWVPbGRlckRhdGUgPT4gJzE5MDktMDEtMTIgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbIDAsIDEsIF0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgICAgICAgICA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZSA9PiAnMTkwOC0wMS0zMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBBY3R1YWxTdGFydFRpbWVOZXdlckRhdGUgYW5kIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgICAgICAgICA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0xMi0wMSAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWVPbGRlckRhdGUgPT4gJzE5MDgtMTItMDEgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbXSwKICAgIH0sCgogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKICAgICMgdGVzdCBmb3IgYWN0dWFsIGVuZCB0aW1lCiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIEFjdHVhbEVuZFRpbWVOZXdlckRhdGUgYW5kIEFjdHVhbEVuZFRpbWVPbGRlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgICAgID0+ICRUU1RDaGFuZ2VUaXRsZSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWVOZXdlckRhdGUgPT4gJzE5MDktMDEtMjggMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZU9sZGVyRGF0ZSA9PiAnMTkwOS0wMS0yOSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFsKICAgICAgICAgICAgMCwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBBY3R1YWxFbmRUaW1lTmV3ZXJEYXRlIGFuZCBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgICAgICAgICA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxFbmRUaW1lTmV3ZXJEYXRlID0+ICcxOTA4LTEyLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWVPbGRlckRhdGUgPT4gJzE5MDgtMTItMzEgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbXSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgQWN0dWFsRW5kVGltZU5ld2VyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgICAgICAgPT4gJFRTVENoYW5nZVRpdGxlLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0wMi0yNiAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFsgMiwgMywgXSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgQWN0dWFsRW5kVGltZU5ld2VyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICAgICAgICAgPT4gJFRTVENoYW5nZVRpdGxlLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0xMi0wMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgICAgICAgICA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlID0+ICcxOTA5LTAxLTI5IDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWyAwLCAxLCBdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgICAgICAgICA9PiAkVFNUQ2hhbmdlVGl0bGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlID0+ICcxOTA4LTEyLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gW10sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIEFjdHVhbEVuZFRpbWVOZXdlckRhdGUgYW5kIEFjdHVhbEVuZFRpbWVPbGRlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgICAgID0+ICRUU1RDaGFuZ2VUaXRsZSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWVOZXdlckRhdGUgPT4gJzE5MDktMTItMDEgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZU9sZGVyRGF0ZSA9PiAnMTkwOC0xMi0zMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKCik7CgpteSAkVFNUQ291bnRlciA9IDE7Cm15IEBUU1RXb3JrT3JkZXJJRHM7ClRTVEVTVDoKZm9yIG15ICRUZXN0IChAVGltZVNlYXJjaFRlc3RzKSB7CiAgICBteSAkU291cmNlRGF0YSAgICA9ICRUZXN0LT57U291cmNlRGF0YX07CiAgICBteSAkUmVmZXJlbmNlRGF0YSA9ICRUZXN0LT57UmVmZXJlbmNlRGF0YX07CgogICAgbXkgJENoYW5nZUlEOwogICAgbXkgJFdvcmtPcmRlcklEOwoKICAgICRTZWxmLT5UcnVlKAogICAgICAgIDEsCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogJFRlc3QtPntEZXNjcmlwdGlvbn0gKFRTVGVzdCBjYXNlOiAkVFNUQ291bnRlcikiLAogICAgKTsKCiAgICBpZiAoICRTb3VyY2VEYXRhLT57Q2hhbmdlQWRkfSApIHsKICAgICAgICAkQ2hhbmdlSUQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgICV7ICRTb3VyY2VEYXRhLT57Q2hhbmdlQWRkfSB9LAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIENoYW5nZUFkZCIsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRDaGFuZ2VJRCkgewogICAgICAgICAgICAkVGVzdGVkQ2hhbmdlSUR7JENoYW5nZUlEfSA9IDE7CiAgICAgICAgICAgIHB1c2ggQFRTVENoYW5nZUlEcywgJENoYW5nZUlEOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRTb3VyY2VEYXRhLT57V29ya09yZGVyQWRkfSApIHsKICAgICAgICAkV29ya09yZGVySUQgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgICV7ICRTb3VyY2VEYXRhLT57V29ya09yZGVyQWRkfSB9LAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gV29ya09yZGVyQWRkIiwKICAgICAgICApOwoKICAgICAgICBwdXNoIEBUU1RXb3JrT3JkZXJJRHMsICRXb3JrT3JkZXJJRDsKICAgIH0KCiAgICBteSAkU2VhcmNoUmVzdWx0OwogICAgaWYgKCAkU291cmNlRGF0YS0+e0NoYW5nZVNlYXJjaH0gKSB7CiAgICAgICAgJFNlYXJjaFJlc3VsdCA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVNlYXJjaCgKICAgICAgICAgICAgJXsgJFNvdXJjZURhdGEtPntDaGFuZ2VTZWFyY2h9IH0sCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTZWFyY2hSZXN1bHQgJiYgcmVmICRTZWFyY2hSZXN1bHQgZXEgJ0FSUkFZJywKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2hhbmdlU2VhcmNoKCkgLSBMaXN0IGlzIGFuIGFycmF5IHJlZmVyZW5jZS4iLAogICAgICAgICk7CgogICAgICAgIG5leHQgVFNURVNUIGlmICEkU2VhcmNoUmVzdWx0OwoKICAgICAgICAjIGNoZWNrIG51bWJlciBvZiBmb3VuZGVkIGNoYW5nZQogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgc2NhbGFyIEB7JFNlYXJjaFJlc3VsdH0sCiAgICAgICAgICAgIHNjYWxhciBAeyRSZWZlcmVuY2VEYXRhfSwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2hhbmdlU2VhcmNoKCkgLSBjb3JyZWN0IG51bWJlciBvZiBmb3VuZCBjaGFuZ2VzIiwKICAgICAgICApOwoKICAgICAgICAjIG1hcCBhcnJheSBpbmRleCB0byBDaGFuZ2VJRAogICAgICAgIG15IEBSZXN1bHRDaGFuZ2VJRHM7CiAgICAgICAgZm9yIG15ICRSZXN1bHRDaGFuZ2VJRCAoIEB7JFJlZmVyZW5jZURhdGF9ICkgewogICAgICAgICAgICBwdXNoIEBSZXN1bHRDaGFuZ2VJRHMsICRUU1RDaGFuZ2VJRHNbJFJlc3VsdENoYW5nZUlEXTsKICAgICAgICB9CgogICAgICAgICMgdHVybiBvZmYgYWxsIHByZXR0eSBwcmludAogICAgICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OkluZGVudCA9IDA7CiAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6VXNlcXEgID0gMTsKCiAgICAgICAgIyBkdW1wIHRoZSBhdHRyaWJ1dGUgZnJvbSBDaGFuZ2VTZWFyY2goKSBhbmQgdGhlIHJlZmVyZW5jZSBhdHRyaWJ1dGUKICAgICAgICAjIyBubyBjcml0aWMKICAgICAgICBteSAkU2VhcmNoUmVzdWx0RHVtcCA9IERhdGE6OkR1bXBlcjo6RHVtcGVyKCBzb3J0IEB7JFNlYXJjaFJlc3VsdH0gKTsKICAgICAgICBteSAkUmVmZXJlbmNlRHVtcCAgICA9IERhdGE6OkR1bXBlcjo6RHVtcGVyKCBzb3J0IEBSZXN1bHRDaGFuZ2VJRHMgKTsKICAgICAgICAjIyB1c2UgY3JpdGljCgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlYXJjaFJlc3VsdER1bXAsCiAgICAgICAgICAgICRSZWZlcmVuY2VEdW1wLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBDaGFuZ2VTZWFyY2goKTogIgogICAgICAgICAgICAgICAgLiBEYXRhOjpEdW1wZXI6OkR1bXBlciggJFNvdXJjZURhdGEtPntDaGFuZ2VTZWFyY2h9ICkgICAgIyMgbm8gY3JpdGljCiAgICAgICAgICAgICAgICAuICRTZWFyY2hSZXN1bHREdW1wLAogICAgICAgICk7CiAgICB9CgogICAgJFRlc3RDb3VudCsrOwogICAgJFRTVENvdW50ZXIrKzsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojICdPcmRlckJ5JyB0ZXN0cyBmb3IgQ0lQIGNvbHVtbnMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBnZXQgdGhyZWUgY2hhbmdlIGlkcy4gVGhlbiBnZXQgdGhlIGRhdGEuIFRoYXQgaXMgbmVlZGVkIGZvciBzb3J0aW5nCm15IEBPcmRlckJ5Q0lQQ2hhbmdlSURzID0gQHsgJExhYmVsMkNoYW5nZUlEc3tPcmRlckJ5Q0lQVGVzdHN9IH07Cm15IEBPcmRlckJ5Q0lQQ2hhbmdlczsKCmZvciBteSAkQ2hhbmdlSURGb3JPcmRlckJ5Q0lQVGVzdHMgKEBPcmRlckJ5Q0lQQ2hhbmdlSURzKSB7CiAgICBteSAkQ2hhbmdlRGF0YSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSURGb3JPcmRlckJ5Q0lQVGVzdHMsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgcHVzaCBAT3JkZXJCeUNJUENoYW5nZXMsICRDaGFuZ2VEYXRhOwp9CgpteSBAT3JkZXJCeUNJUENvbHVtbnMgPSBxdygKICAgIENhdGVnb3J5SUQKICAgIEltcGFjdElECiAgICBQcmlvcml0eUlECik7Cgpmb3IgbXkgJENJUENvbHVtbiAoQE9yZGVyQnlDSVBDb2x1bW5zKSB7CgogICAgIyB0dXJuIG9mZiBhbGwgcHJldHR5IHByaW50CiAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOwogICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6VXNlcXEgID0gMTsKCiAgICBteSBAU29ydGVkQ2hhbmdlcyA9IHNvcnQgewogICAgICAgICRhLT57JENJUENvbHVtbn0gPD0+ICRiLT57JENJUENvbHVtbn0KICAgICAgICAgICAgfHwgJGItPntDaGFuZ2VJRH0gPD0+ICRhLT57Q2hhbmdlSUR9CiAgICB9IEBPcmRlckJ5Q0lQQ2hhbmdlczsKCiAgICBteSBAU29ydGVkSURzID0gbWFwIHsgJF8tPntDaGFuZ2VJRH0gfSBAU29ydGVkQ2hhbmdlczsKCiAgICAjIGR1bXAgdGhlIHJlZmVyZW5jZSBhdHRyaWJ1dGUKICAgIG15ICRSZWZlcmVuY2VMaXN0ID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoIFxAU29ydGVkSURzICk7ICAgICMjIG5vIGNyaXRpYwoKICAgIG15ICRTZWFyY2hSZXN1bHQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgQ2hhbmdlVGl0bGUgICAgICA9PiAnJUNJUCUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFskQ0lQQ29sdW1uXSwKICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFsnVXAnXSwKICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICApOwoKICAgICMgZHVtcCB0aGUgYXR0cmlidXRlIGZyb20gQ2hhbmdlR2V0KCkKICAgIG15ICRTZWFyY2hMaXN0ID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoJFNlYXJjaFJlc3VsdCk7ICAgICAgICMjIG5vIGNyaXRpYwoKICAgICRTZWxmLT5JcygKICAgICAgICAkU2VhcmNoTGlzdCwKICAgICAgICAkUmVmZXJlbmNlTGlzdCwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIjogQ2hhbmdlU2VhcmNoKCkgT3JkZXJCeSAkQ0lQQ29sdW1uIChVcCkuIgogICAgKTsKCiAgICBteSBAU29ydGVkQ2hhbmdlc0Rvd24gPSBzb3J0IHsKICAgICAgICAkYi0+eyRDSVBDb2x1bW59IDw9PiAkYS0+eyRDSVBDb2x1bW59CiAgICAgICAgICAgIHx8ICRiLT57Q2hhbmdlSUR9IDw9PiAkYS0+e0NoYW5nZUlEfQogICAgfSBAT3JkZXJCeUNJUENoYW5nZXM7CgogICAgbXkgQFNvcnRlZElEc0Rvd24gPSBtYXAgeyAkXy0+e0NoYW5nZUlEfSB9IEBTb3J0ZWRDaGFuZ2VzRG93bjsKCiAgICAjIGR1bXAgdGhlIHJlZmVyZW5jZSBhdHRyaWJ1dGUKICAgIG15ICRSZWZlcmVuY2VMaXN0RG93biA9IERhdGE6OkR1bXBlcjo6RHVtcGVyKCBcQFNvcnRlZElEc0Rvd24gKTsgICAgIyMgbm8gY3JpdGljCgogICAgbXkgJFNlYXJjaFJlc3VsdERvd24gPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJyVDSVAlJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgT3JkZXJCeSAgICAgPT4gWyRDSVBDb2x1bW5dLAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKICAgICMgZHVtcCB0aGUgYXR0cmlidXRlIGZyb20gQ2hhbmdlR2V0KCkKICAgIG15ICRTZWFyY2hMaXN0RG93biA9IERhdGE6OkR1bXBlcjo6RHVtcGVyKCRTZWFyY2hSZXN1bHREb3duKTsgICAgICAgIyMgbm8gY3JpdGljCgogICAgJFNlbGYtPklzKAogICAgICAgICRTZWFyY2hMaXN0RG93biwKICAgICAgICAkUmVmZXJlbmNlTGlzdERvd24sCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICI6IENoYW5nZVNlYXJjaCgpIE9yZGVyQnkgJENJUENvbHVtbiAoRG93bikuIgogICAgKTsKCiAgICAjIGNoZWNrIGlmIElUU01DaGFuZ2UucG0gaGFuZGxlcyBub24tZXhpc3RlbnQgT3JkZXJCeURpcmVjdGlvbiBjcml0ZXJpYSBjb3JyZWN0CiAgICBteSAkU2VhcmNoUmVzdWx0U2lkZXdheXMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VTZWFyY2goCiAgICAgICAgQ2hhbmdlVGl0bGUgICAgICA9PiAnJUNJUCUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFskQ0lQQ29sdW1uXSwKICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFsnU2lkZXdheXMnXSwKICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICApOwoKICAgICRTZWxmLT5JcygKICAgICAgICAkU2VhcmNoUmVzdWx0U2lkZXdheXMsCiAgICAgICAgdW5kZWYsCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICI6IENoYW5nZVNlYXJjaCgpIE9yZGVyQnkgJENJUENvbHVtbiAoU2lkZXdheXMpLiIKICAgICk7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBhZHZhbmNlZCBzZWFyY2ggYnkgdGVzdHMgZm9yIHdvcmtvcmRlciBzdHJpbmdzIGFuZCBhZ2VudCBpZAojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCm15IEBXT1N0cmluZ0FuZEFnZW50U2VhcmNoVGVzdHMgPSAoCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdJbnNlcnQgY2hhbmdlIHdpdGggb25lIHdvcmtvcmRlciBhbmQgd2l0aCBzZXQgc3RyaW5nIGZpZWxkcy4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAnU3RyaW5nIFRlc3QgMSAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbiAgICAgID0+ICdTdHJpbmcgVGVzdCAxIC0gSW5zdHJ1Y3Rpb24gLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgICAgPT4gJ1N0cmluZyBUZXN0IDEgLSBSZXBvcnQgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlckFnZW50SUQgPT4gJFVzZXJJRHNbMV0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIFdvcmtPcmRlclRpdGxlJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1N0cmluZyBUZXN0IDEgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbMF0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBub24tZXhpc3RpbmcgV29ya09yZGVyVGl0bGUnLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnTk9ORVhJU1RFTlQgU3RyaW5nIFRlc3QgMSAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgV29ya09yZGVyIEluc3RydWN0aW9uJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVySW5zdHJ1Y3Rpb24gPT4gJ1N0cmluZyBUZXN0IDEgLSBJbnN0cnVjdGlvbiAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbMF0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBub24tZXhpc3RpbmcgV29ya09yZGVyIEluc3RydWN0aW9uJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVySW5zdHJ1Y3Rpb24gPT4gJ05PTkVYSVNURU5UIFN0cmluZyBUZXN0IDEgLSBJbnN0cnVjdGlvbiAtICcKICAgICAgICAgICAgICAgICAgICAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgV29ya09yZGVyIFJlcG9ydCcsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJSZXBvcnQgPT4gJ1N0cmluZyBUZXN0IDEgLSBSZXBvcnQgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWzBdLAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3Igbm9uLWV4aXN0aW5nIFdvcmtPcmRlciBSZXBvcnQnLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyUmVwb3J0ID0+ICdOT05FWElTVEVOVCBTdHJpbmcgVGVzdCAxIC0gUmVwb3J0IC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgZXhpc3RpbmcgV29ya09yZGVyQWdlbnRJRCcsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlckFnZW50SURzID0+IFsgJFVzZXJJRHNbMV0gXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWzBdLAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgZXhpc3RpbmcgYW5kIG5vbi1leGlzdGluZyBXb3JrT3JkZXJBZ2VudElEJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyQWdlbnRJRHMgPT4gWyBAVXNlcklEc1sgMCwgMSBdIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFswXSwKICAgIH0sCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIG5vbi1leGlzdGluZyBXb3JrT3JkZXJBZ2VudElEJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyQWdlbnRJRHMgPT4gWyAkVXNlcklEc1swXSBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbXSwKICAgIH0sCik7CgpteSAkV09TVENvdW50ZXIgPSAxOwpteSBAV09TVENoYW5nZUlEczsgICAgICAgIyBzZWFyY2ggaW4gd29ya29yZGVyIHRlc3QgY2hhbmdlIGlkcwpteSBAV09TVFdvcmtPcmRlcklEczsgICAgIyBzZWFyY2ggaW4gd29ya29yZGVyIHRlc3Qgd29ya29yZGVyIGlkcwpXT1NURVNUOgpmb3IgbXkgJFRlc3QgKEBXT1N0cmluZ0FuZEFnZW50U2VhcmNoVGVzdHMpIHsKICAgIG15ICRTb3VyY2VEYXRhICAgID0gJFRlc3QtPntTb3VyY2VEYXRhfTsKICAgIG15ICRSZWZlcmVuY2VEYXRhID0gJFRlc3QtPntSZWZlcmVuY2VEYXRhfTsKCiAgICBteSAkQ2hhbmdlSUQ7CiAgICBteSAkV29ya09yZGVySUQ7CgogICAgJFNlbGYtPlRydWUoCiAgICAgICAgMSwKICAgICAgICAiVGVzdCAkVGVzdENvdW50OiAkVGVzdC0+e0Rlc2NyaXB0aW9ufSAoV09TVGVzdCBjYXNlOiAkV09TVENvdW50ZXIpIiwKICAgICk7CgogICAgaWYgKCAkU291cmNlRGF0YS0+e0NoYW5nZUFkZH0gKSB7CiAgICAgICAgJENoYW5nZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICAleyAkU291cmNlRGF0YS0+e0NoYW5nZUFkZH0gfSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBDaGFuZ2VBZGQiLAogICAgICAgICk7CgogICAgICAgIGlmICgkQ2hhbmdlSUQpIHsKICAgICAgICAgICAgJFRlc3RlZENoYW5nZUlEeyRDaGFuZ2VJRH0gPSAxOwogICAgICAgICAgICBwdXNoIEBXT1NUQ2hhbmdlSURzLCAkQ2hhbmdlSUQ7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJFNvdXJjZURhdGEtPntXb3JrT3JkZXJBZGR9ICkgewogICAgICAgICRXb3JrT3JkZXJJRCA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckFkZCgKICAgICAgICAgICAgJXsgJFNvdXJjZURhdGEtPntXb3JrT3JkZXJBZGR9IH0sCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFdvcmtPcmRlcklELAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBXb3JrT3JkZXJBZGQiLAogICAgICAgICk7CgogICAgICAgIHB1c2ggQFdPU1RXb3JrT3JkZXJJRHMsICRXb3JrT3JkZXJJRDsKICAgIH0KCiAgICBteSAkU2VhcmNoUmVzdWx0OwogICAgaWYgKCAkU291cmNlRGF0YS0+e0NoYW5nZVNlYXJjaH0gKSB7CiAgICAgICAgJFNlYXJjaFJlc3VsdCA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVNlYXJjaCgKICAgICAgICAgICAgJXsgJFNvdXJjZURhdGEtPntDaGFuZ2VTZWFyY2h9IH0sCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTZWFyY2hSZXN1bHQgJiYgcmVmICRTZWFyY2hSZXN1bHQgZXEgJ0FSUkFZJywKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2hhbmdlU2VhcmNoKCkgLSBMaXN0IGlzIGFuIGFycmF5IHJlZmVyZW5jZS4iLAogICAgICAgICk7CgogICAgICAgIG5leHQgV09TVEVTVCBpZiAhJFNlYXJjaFJlc3VsdDsKCiAgICAgICAgIyBjaGVjayBudW1iZXIgb2YgZm91bmQgY2hhbmdlcwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgc2NhbGFyIEB7JFNlYXJjaFJlc3VsdH0sCiAgICAgICAgICAgIHNjYWxhciBAeyRSZWZlcmVuY2VEYXRhfSwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2hhbmdlU2VhcmNoKCkgLSBjb3JyZWN0IG51bWJlciBvZiBmb3VuZCBjaGFuZ2VzIiwKICAgICAgICApOwoKICAgICAgICAjIG1hcCBhcnJheSBpbmRleCB0byBDaGFuZ2VJRAogICAgICAgIG15IEBSZXN1bHRDaGFuZ2VJRHM7CiAgICAgICAgZm9yIG15ICRSZXN1bHRDaGFuZ2VJRCAoIEB7JFJlZmVyZW5jZURhdGF9ICkgewogICAgICAgICAgICBwdXNoIEBSZXN1bHRDaGFuZ2VJRHMsICRXT1NUQ2hhbmdlSURzWyRSZXN1bHRDaGFuZ2VJRF07CiAgICAgICAgfQoKICAgICAgICAjIHR1cm4gb2ZmIGFsbCBwcmV0dHkgcHJpbnQKICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOwogICAgICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OlVzZXFxICA9IDE7CgogICAgICAgICMgZHVtcCB0aGUgYXR0cmlidXRlIGZyb20gQ2hhbmdlU2VhcmNoKCkKICAgICAgICBteSAkU2VhcmNoUmVzdWx0RHVtcCA9IERhdGE6OkR1bXBlcjo6RHVtcGVyKCBzb3J0IEB7JFNlYXJjaFJlc3VsdH0gKTsgICAgIyMgbm8gY3JpdGljCgogICAgICAgICMgZHVtcCB0aGUgcmVmZXJlbmNlIGF0dHJpYnV0ZQogICAgICAgIG15ICRSZWZlcmVuY2VEdW1wID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoIHNvcnQgQFJlc3VsdENoYW5nZUlEcyApOyAgICAgICAjIyBubyBjcml0aWMKCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VhcmNoUmVzdWx0RHVtcCwKICAgICAgICAgICAgJFJlZmVyZW5jZUR1bXAsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIENoYW5nZVNlYXJjaCgpOiAiCiAgICAgICAgICAgICAgICAuIERhdGE6OkR1bXBlcjo6RHVtcGVyKCAkU291cmNlRGF0YS0+e0NoYW5nZVNlYXJjaH0gKSAgICAgICAgICAgICMjIG5vIGNyaXRpYwogICAgICAgICAgICAgICAgLiAkU2VhcmNoUmVzdWx0RHVtcCwKICAgICAgICApOwogICAgfQoKICAgICRUZXN0Q291bnQrKzsKICAgICRXT1NUQ291bnRlcisrOwp9CgojIGVhY2ggb2YgdGhlIGNoYW5nZXMgc2hvdWxkIGhhdmUgb25lIHdvcmtvcmRlcgpmb3IgbXkgJENoYW5nZUlEIChAV09TVENoYW5nZUlEcykgewogICAgbXkgJENoYW5nZURhdGEgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwogICAgJFNlbGYtPklzKAogICAgICAgICRDaGFuZ2VEYXRhLT57V29ya09yZGVyQ291bnR9LAogICAgICAgIDEsCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gQ2hhbmdlR2V0KCk6IG9uZSB3b3Jrb3JkZXIgd2FzIGFkZGVkIgogICAgKTsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIGFkdmFuY2VkIHNlYXJjaCBieSB0ZXN0cyBmb3Igd29ya29yZGVyIHN0cmluZ3MgYW5kIGFnZW50IGlkCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBnZXQgaXRlbSBsaXN0IG9mIHRoZSB3b3Jrb3JkZXIgc3RhdGVzIHdpdGggc3dhcHBlZCBrZXlzIGFuZCB2YWx1ZXMKbXkgJVdvcmtPcmRlclN0YXRlSUQyTmFtZSA9ICV7CiAgICAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlN0YXRlJywKICAgICkgfHwge30KfTsKbXkgJVdvcmtPcmRlclN0YXRlTmFtZTJJRCA9IHJldmVyc2UgJVdvcmtPcmRlclN0YXRlSUQyTmFtZTsKCm15IEBXT1N0YXRlVGVzdHMgPSAoCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdJbnNlcnQgY2hhbmdlIHdpdGggb25lIHdvcmtvcmRlciBhbmQgd2l0aCBXb3JrT3JkZXJTdGF0ZSBzZXQuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4gJ1dvcmtPcmRlclN0YXRlSUQgaW4gQ2hhbmdlU2VhcmNoIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlSUQgPT4gJFdvcmtPcmRlclN0YXRlTmFtZTJJRHtyZWFkeX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENoYW5nZVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICAgPT4gJ1dvcmtPcmRlclN0YXRlSUQgaW4gQ2hhbmdlU2VhcmNoIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlSURzID0+IFsgJFdvcmtPcmRlclN0YXRlTmFtZTJJRHtyZWFkeX0gXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWzFdLAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0luc2VydCBjaGFuZ2Ugd2l0aCBvbmUgd29ya29yZGVyIGFuZCB3aXRoIFdvcmtPcmRlclN0YXRlIHNldC4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAnV29ya09yZGVyU3RhdGVJRCBpbiBDaGFuZ2VTZWFyY2ggLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgV29ya09yZGVyU3RhdGVJRCA9PiAkV29ya09yZGVyU3RhdGVOYW1lMklEe2NhbmNlbGVkfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSAgICA9PiAnV29ya09yZGVyU3RhdGVJRCBpbiBDaGFuZ2VTZWFyY2ggLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgV29ya09yZGVyU3RhdGVJRHMgPT4gWyAkV29ya09yZGVyU3RhdGVOYW1lMklEe2NhbmNlbGVkfSBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbMl0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnSW5zZXJ0IGNoYW5nZSB3aXRoIG9uZSB3b3Jrb3JkZXIgYW5kIHdpdGggV29ya09yZGVyU3RhdGUgc2V0LicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSAgID0+ICdXb3JrT3JkZXJTdGF0ZUlEIGluIENoYW5nZVNlYXJjaCAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICRXb3JrT3JkZXJTdGF0ZU5hbWUySUR7Y2xvc2VkfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ2hhbmdlU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgID0+ICdXb3JrT3JkZXJTdGF0ZUlEIGluIENoYW5nZVNlYXJjaCAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZXMgPT4gWyAncmVhZHknLCAnY2xvc2VkJyBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbIDEsIDMgXSwKICAgIH0sCik7CgpteSAkV09TdGF0ZVRlc3RDb3VudGVyID0gMTsKbXkgQFdPU3RhdGVUZXN0Q2hhbmdlSURzOyAgICAgICAjIHNlYXJjaCBpbiB3b3Jrb3JkZXIgdGVzdCBjaGFuZ2UgaWRzCm15IEBXT1N0YXRlVGVzdFdvcmtPcmRlcklEczsgICAgIyBzZWFyY2ggaW4gd29ya29yZGVyIHRlc3Qgd29ya29yZGVyIGlkcwpteSAlV29ya09yZGVyU3RhdGVUZXN0TWFwOwoKV09TVEFURVRFU1Q6CmZvciBteSAkV29ya09yZGVyU3RhdGVUZXN0IChAV09TdGF0ZVRlc3RzKSB7CiAgICBteSAkU291cmNlRGF0YSAgICA9ICRXb3JrT3JkZXJTdGF0ZVRlc3QtPntTb3VyY2VEYXRhfTsKICAgIG15ICRSZWZlcmVuY2VEYXRhID0gJFdvcmtPcmRlclN0YXRlVGVzdC0+e1JlZmVyZW5jZURhdGF9IHx8IFtdOwoKICAgIG15ICRDaGFuZ2VJRDsKICAgIG15ICRXb3JrT3JkZXJJRDsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAxLAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6ICRXb3JrT3JkZXJTdGF0ZVRlc3QtPntEZXNjcmlwdGlvbn0gKFdPU3RhdGVUZXN0IGNhc2U6ICRXT1N0YXRlVGVzdENvdW50ZXIpIiwKICAgICk7CgogICAgaWYgKCAkU291cmNlRGF0YS0+e0NoYW5nZUFkZH0gKSB7CiAgICAgICAgJENoYW5nZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICAleyAkU291cmNlRGF0YS0+e0NoYW5nZUFkZH0gfSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBDaGFuZ2VBZGQiLAogICAgICAgICk7CgogICAgICAgIGlmICgkQ2hhbmdlSUQpIHsKICAgICAgICAgICAgJFRlc3RlZENoYW5nZUlEeyRDaGFuZ2VJRH0gPSAxOwogICAgICAgICAgICBwdXNoIEBXT1N0YXRlVGVzdENoYW5nZUlEcywgJENoYW5nZUlEOwogICAgICAgICAgICAkV29ya09yZGVyU3RhdGVUZXN0TWFweyRXT1N0YXRlVGVzdENvdW50ZXJ9ID0gJENoYW5nZUlEOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRTb3VyY2VEYXRhLT57V29ya09yZGVyQWRkfSApIHsKICAgICAgICAkV29ya09yZGVySUQgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgICV7ICRTb3VyY2VEYXRhLT57V29ya09yZGVyQWRkfSB9LAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gV29ya09yZGVyQWRkIiwKICAgICAgICApOwoKICAgICAgICBwdXNoIEBXT1N0YXRlVGVzdFdvcmtPcmRlcklEcywgJFdvcmtPcmRlcklEOwogICAgfQoKICAgIG15ICRTZWFyY2hSZXN1bHQ7CiAgICBpZiAoICRTb3VyY2VEYXRhLT57Q2hhbmdlU2VhcmNofSApIHsKICAgICAgICAkU2VhcmNoUmVzdWx0ID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU2VhcmNoKAogICAgICAgICAgICAleyAkU291cmNlRGF0YS0+e0NoYW5nZVNlYXJjaH0gfSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFNlYXJjaFJlc3VsdCAmJiByZWYgJFNlYXJjaFJlc3VsdCBlcSAnQVJSQVknLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBDaGFuZ2VTZWFyY2goKSAtIExpc3QgaXMgYW4gYXJyYXkgcmVmZXJlbmNlLiIsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBXT1NUQVRFVEVTVCBpZiAhJFNlYXJjaFJlc3VsdDsKCiAgICAgICAgIyBjaGVjayBudW1iZXIgb2YgZm91bmQgY2hhbmdlcwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgc2NhbGFyIEB7JFNlYXJjaFJlc3VsdH0sCiAgICAgICAgICAgIHNjYWxhciBAeyRSZWZlcmVuY2VEYXRhfSwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2hhbmdlU2VhcmNoKCkgLSBjb3JyZWN0IG51bWJlciBvZiBmb3VuZCBjaGFuZ2VzIiwKICAgICAgICApOwoKICAgICAgICAjIHNhdmUgcmV0dXJuZWQgaWRzIGluIGhhc2ggZm9yIGVhc2llciBjaGVja3MKICAgICAgICBteSAlUmVzdWx0SURzID0gbWFwIHsgJF8gPT4gMSB9IEB7JFNlYXJjaFJlc3VsdH07CgogICAgICAgICMgY2hlY2sgcmV0dXJuZWQgQ2hhbmdlSURzCiAgICAgICAgZm9yIG15ICRUZXN0TnIgKCBAeyRSZWZlcmVuY2VEYXRhfSApIHsKICAgICAgICAgICAgbXkgJENoYW5nZUlEID0gJFdvcmtPcmRlclN0YXRlVGVzdE1hcHskVGVzdE5yfTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkUmVzdWx0SURzeyRDaGFuZ2VJRH0sCiAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBDaGFuZ2VTZWFyY2goKSAtICRDaGFuZ2VJRCAoZnJvbSB0ZXN0ICRUZXN0TnIpIGluIHJlc3VsdCBzZXQgZm91bmQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICB9CgogICAgJFRlc3RDb3VudCsrOwogICAgJFdPU3RhdGVUZXN0Q291bnRlcisrOwp9CgojIGVhY2ggb2YgdGhlIGNoYW5nZXMgc2hvdWxkIGhhdmUgb25lIHdvcmtvcmRlcgpmb3IgbXkgJENoYW5nZUlEIChAV09TdGF0ZVRlc3RDaGFuZ2VJRHMpIHsKICAgIG15ICRDaGFuZ2VEYXRhID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKICAgICRTZWxmLT5JcygKICAgICAgICAkQ2hhbmdlRGF0YS0+e1dvcmtPcmRlckNvdW50fSwKICAgICAgICAxLAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIENoYW5nZUdldCgpOiBvbmUgd29ya29yZGVyIHdhcyBhZGRlZCIKICAgICk7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyB0ZXN0aW5nIHRoZSBtZXRob2QgUGVybWlzc2lvbigpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCm15ICgkUGVybWlzc2lvblRlc3RDaGFuZ2VJRCkgPSBAeyAkTGFiZWwyQ2hhbmdlSURze1Blcm1pc3Npb25UZXN0fSB9OwpteSBAUGVybWlzc2lvblRlc3RzID0gKAoKICAgICMgUGVybWlzc2lvbiB0ZXN0IE5vLiAxCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0luaXRpYWxseSBubyBwcml2IGluIGFueSBncm91cCcsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFBlcm1pc3Npb25zID0+IHsKICAgICAgICAgICAgICAgIDAgPT4gewogICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgcncgPT4gMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgcncgPT4gMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIFBlcm1pc3Npb24gdGVzdCBOby4gMgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdybyBpbiBpdHNtLWNoYW5nZScsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBHcm91cE1lbWJlckFkZCA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZSd9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgUGVybWlzc2lvbnMgPT4gewogICAgICAgICAgICAgICAgMCA9PiB7CiAgICAgICAgICAgICAgICAgICAgcm8gPT4gMSwKICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBQZXJtaXNzaW9uIHRlc3QgTm8uIDMKICAgIHsKCiAgICAgICAgIyBUaGUgdHlwZSAncncnIGltcGxpZXMgYWxsIG90aGVyIHR5cGVzLiBTZWUgS2VybmVsOjpTeXN0ZW06Okdyb3VwX0dldFR5cGVTdHJpbmcoKQogICAgICAgICMgVGhlcmVmb3JlIFVzZXIxIGVmZmVjdGl2ZWx5IGhhcyAncm8nIGluICdpdHNtLWNoYW5nZScgYW5kCiAgICAgICAgIyB0aGUgQ2hhbmdlQWdlbnRDaGVjayBQZXJtaXNzaW9uIG1vZHVsZSBnaXZlcyAncm8nIGFjY2Vzcy4KICAgICAgICAjIE5vdGUgdGhhdCB0aGUgQ2hhbmdlQWdlbnRDaGVjayBQZXJtaXNzaW9uIG1vZHVsZSBuZXZlciBnaXZlcyAncncnIGFjY2Vzcy4KICAgICAgICBEZXNjcmlwdGlvbiA9PiAncncgaW4gaXRzbS1jaGFuZ2Ugb25seSBncmFudHMgcm8nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgR3JvdXBNZW1iZXJBZGQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UnfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAxLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFBlcm1pc3Npb25zID0+IHsKICAgICAgICAgICAgICAgIDAgPT4gewogICAgICAgICAgICAgICAgICAgIHJvID0+IDEsCiAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgICMgUGVybWlzc2lvbiB0ZXN0IE5vLiA0CiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ3JvIGluIGl0c20tY2hhbmdlLW1hbmFnZXInLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgR3JvdXBNZW1iZXJBZGQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UnfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UtbWFuYWdlcid9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgUGVybWlzc2lvbnMgPT4gewogICAgICAgICAgICAgICAgMCA9PiB7CiAgICAgICAgICAgICAgICAgICAgcm8gPT4gMSwKICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBQZXJtaXNzaW9uIHRlc3QgTm8uIDUKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAncncgaW4gaXRzbS1jaGFuZ2UtbWFuYWdlcicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBHcm91cE1lbWJlckFkZCA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZSd9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZS1tYW5hZ2VyJ30sCiAgICAgICAgICAgICAgICAgICAgVUlEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcm8gPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgcncgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBQZXJtaXNzaW9ucyA9PiB7CiAgICAgICAgICAgICAgICAwID0+IHsKICAgICAgICAgICAgICAgICAgICBybyA9PiAxLAogICAgICAgICAgICAgICAgICAgIHJ3ID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIFBlcm1pc3Npb24gdGVzdCBOby4gNgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdybyBpbiBpdHNtLWNoYW5nZS1idWlsZGVyLCBVc2VyIDAgaXMgdGhlIGJ1aWxkZXInLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgR3JvdXBNZW1iZXJBZGQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UnfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UtbWFuYWdlcid9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZS1idWlsZGVyJ30sCiAgICAgICAgICAgICAgICAgICAgVUlEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcm8gPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBQZXJtaXNzaW9ucyA9PiB7CiAgICAgICAgICAgICAgICAwID0+IHsKICAgICAgICAgICAgICAgICAgICBybyA9PiAxLAogICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIFBlcm1pc3Npb24gdGVzdCBOby4gNwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdydyBpbiBpdHNtLWNoYW5nZS1idWlsZGVyLCBBZ2VudCBpcyB0aGUgYnVpbGRlcicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBHcm91cE1lbWJlckFkZCA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZSd9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZS1tYW5hZ2VyJ30sCiAgICAgICAgICAgICAgICAgICAgVUlEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHSUQgICAgICAgID0+ICRHcm91cE5hbWUySUR7J2l0c20tY2hhbmdlLWJ1aWxkZXInfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAxLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFBlcm1pc3Npb25zID0+IHsKICAgICAgICAgICAgICAgIDAgPT4gewogICAgICAgICAgICAgICAgICAgIHJvID0+IDEsCiAgICAgICAgICAgICAgICAgICAgcncgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgICMgUGVybWlzc2lvbiB0ZXN0IE5vLiA4CiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ3JvIGluIGl0c20tY2hhbmdlLWJ1aWxkZXIsIHVzZXIgMSBpcyBub3QgdGhlIGJ1aWxkZXInLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgR3JvdXBNZW1iZXJBZGQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UnfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UtbWFuYWdlcid9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZS1idWlsZGVyJ30sCiAgICAgICAgICAgICAgICAgICAgVUlEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHSUQgICAgICAgID0+ICRHcm91cE5hbWUySUR7J2l0c20tY2hhbmdlLWJ1aWxkZXInfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzFdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFBlcm1pc3Npb25zID0+IHsKICAgICAgICAgICAgICAgIDAgPT4gewogICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgICMgUGVybWlzc2lvbiB0ZXN0IE5vLiA5CiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ3J3IGluIGl0c20tY2hhbmdlLWJ1aWxkZXIsIHVzZXIgMSBpcyBub3QgdGhlIGJ1aWxkZXInLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgR3JvdXBNZW1iZXJBZGQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UnfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UtbWFuYWdlcid9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZS1idWlsZGVyJ30sCiAgICAgICAgICAgICAgICAgICAgVUlEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHSUQgICAgICAgID0+ICRHcm91cE5hbWUySUR7J2l0c20tY2hhbmdlLWJ1aWxkZXInfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzFdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFBlcm1pc3Npb25zID0+IHsKICAgICAgICAgICAgICAgIDAgPT4gewogICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKKTsKCm15ICRQZXJtaXNzaW9uVGVzdENvdW50ZXIgPSAxOwpmb3IgbXkgJFRlc3QgKEBQZXJtaXNzaW9uVGVzdHMpIHsKICAgIG15ICRTb3VyY2VEYXRhICAgID0gJFRlc3QtPntTb3VyY2VEYXRhfTsKICAgIG15ICRSZWZlcmVuY2VEYXRhID0gJFRlc3QtPntSZWZlcmVuY2VEYXRhfTsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAxLAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6ICRUZXN0LT57RGVzY3JpcHRpb259IChQZXJtaXNzaW9uIFRlc3QgY2FzZTogJFBlcm1pc3Npb25UZXN0Q291bnRlcikiLAogICAgKTsKCiAgICAjIGV4ZWN1dGUgdGhlIHNvdXJjZSBtb2RpZmljYXRpb25zCiAgICAkU291cmNlRGF0YS0+e0dyb3VwTWVtYmVyQWRkfSB8fD0gW107CiAgICBmb3IgbXkgJFBhcmFtcyAoIEB7ICRTb3VyY2VEYXRhLT57R3JvdXBNZW1iZXJBZGR9IH0gKSB7CgogICAgICAgICMgbW9kaWZ5IHRoZSBncm91cCBtZW1iZXJzaGlwCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkR3JvdXBPYmplY3QtPkdyb3VwTWVtYmVyQWRkKAogICAgICAgICAgICAleyRQYXJhbXN9LAogICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKCAkU3VjY2VzcywgIlBlcm1pc3Npb24gdGVzdCAkUGVybWlzc2lvblRlc3RDb3VudGVyOiBHcm91cE1lbWJlckFkZCgpIiwgKTsKICAgIH0KCiAgICAjIGNoZWNrIHRoZSByZXN1bHQKICAgIGlmICggJFJlZmVyZW5jZURhdGEtPntQZXJtaXNzaW9uc30gKSB7CiAgICAgICAgZm9yIG15ICRVc2VySW5kZXggKCBzb3J0IGtleXMgJXsgJFJlZmVyZW5jZURhdGEtPntQZXJtaXNzaW9uc30gfSApIHsKICAgICAgICAgICAgbXkgJFByaXZzID0gJFJlZmVyZW5jZURhdGEtPntQZXJtaXNzaW9uc30tPnskVXNlckluZGV4fTsKICAgICAgICAgICAgZm9yIG15ICRUeXBlICggc29ydCBrZXlzICV7JFByaXZzfSApIHsKICAgICAgICAgICAgICAgICRDaGFuZ2VPYmplY3QtPntEZWJ1Z30gPSAxMDsKICAgICAgICAgICAgICAgIG15ICRBY2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5QZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgID0+ICRUeXBlLAogICAgICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRQZXJtaXNzaW9uVGVzdENoYW5nZUlELAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRVc2VySURzWyRVc2VySW5kZXhdLAogICAgICAgICAgICAgICAgICAgIENhY2hlZCAgID0+IDAsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgaWYgKCAkUHJpdnMtPnskVHlwZX0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAgICAgICAgICRBY2Nlc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICJQZXJtaXNzaW9uIHRlc3QgJFBlcm1pc3Npb25UZXN0Q291bnRlcjogVXNlciAkVXNlckluZGV4LCB3aXRoIFVzZXJVRCAkVXNlcklEc1skVXNlckluZGV4XSwgaGFzICRUeXBlIGFjY2VzcyIsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgICAgICAgICAgICAgJEFjY2VzcywKICAgICAgICAgICAgICAgICAgICAgICAgIlBlcm1pc3Npb24gdGVzdCAkUGVybWlzc2lvblRlc3RDb3VudGVyOiBVc2VyICRVc2VySW5kZXgsIHdpdGggVXNlcklEICRVc2VySURzWyRVc2VySW5kZXhdLCBoYXMgbm8gJFR5cGUgYWNjZXNzIiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CmNvbnRpbnVlIHsKICAgICRQZXJtaXNzaW9uVGVzdENvdW50ZXIrKzsKICAgICRUZXN0Q291bnQrKzsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3RpbmcgdGhlIG1ldGhvZCBDaGFuZ2VQb3NzaWJsZVN0YXRlc0dldCgpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCm15ICgkUG9zc2libGVTdGF0ZXNUZXN0Q2hhbmdlSUQpID0gQHsgJExhYmVsMkNoYW5nZUlEc3tQb3NzaWJsZVN0YXRlc1Rlc3R9IH07CgojIFdoZW4gbm8gQ2hhbmdlSUQgaXMgZ2l2ZW4gQ2hhbmdlUG9zc2libGVTdGF0ZXNHZXQoKSByZXR1cm5zIGEgbGlzdCBvZiBhbGwgc3RhdGVzLgpteSAkUG9zc2libGVTdGF0ZXMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VQb3NzaWJsZVN0YXRlc0dldCgKCiAgICAjICAgIENoYW5nZUlEID0+ICRQb3NzaWJsZVN0YXRlc1Rlc3RDaGFuZ2VJRCwKICAgIFVzZXJJRCA9PiAxLAopIHx8IHt9OwoKIyBkbyB0aGUgY2hlY2tzCm15IEBQb3NzaWJsZVN0YXRlSURzUmVmZXJlbmNlID0gQFNvcnRlZENoYW5nZVN0YXRlSURzOwpmb3IgbXkgJFBvc3NpYmxlU3RhdGVJRCAoQFBvc3NpYmxlU3RhdGVJRHNSZWZlcmVuY2UpIHsKICAgIG15ICggJEZpcnN0SGFzaFJlZiwgJFNlY29uZEhhc2hSZWYgKSA9IGdyZXAgeyAkXy0+e0tleX0gPT0gJFBvc3NpYmxlU3RhdGVJRCB9IEB7JFBvc3NpYmxlU3RhdGVzfTsKCiAgICAjIGEgbWF0Y2ggaXMgZXhwZWN0ZWQKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRGaXJzdEhhc2hSZWYsCiAgICAgICAgIkNoZWNrIGZvciBwb3NzaWJsZSBzdGF0ZSBpZCAkUG9zc2libGVTdGF0ZUlEIiwKICAgICk7CgogICAgIyB0aGUgbmFtZSBzaG91bGQgYWxzbyBtYXRjaAogICAgJEZpcnN0SGFzaFJlZiB8fD0ge307CiAgICBteSAkUG9zc2libGVTdGF0ZU5hbWUgPSAkQ2hhbmdlU3RhdGVJRDJOYW1leyRQb3NzaWJsZVN0YXRlSUR9OwogICAgJFNlbGYtPklzKAogICAgICAgICRGaXJzdEhhc2hSZWYtPntWYWx1ZX0sCiAgICAgICAgJFBvc3NpYmxlU3RhdGVOYW1lLAogICAgICAgICJDaGVjayBmb3IgcG9zc2libGUgc3RhdGUgbmFtZSAkUG9zc2libGVTdGF0ZUlEIiwKICAgICk7CgogICAgIyBvbmx5IG9uZSBtYXRjaCBpcyBleHBlY3RlZAogICAgJFNlbGYtPkZhbHNlKAogICAgICAgICRTZWNvbmRIYXNoUmVmLAogICAgICAgICJDaGVjayB0aGF0IHRoZSBzdGF0ZSBpZCAkUG9zc2libGVTdGF0ZUlEIGlzIHJldHVybmVkIG9ubHkgb25jZS4iLAogICAgKTsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3RpbmcgdGhlIG1ldGhvZCBDaGFuZ2VQb3NzaWJsZVN0YXRlc0dldCgpIHdpdGggQ2hhbmdlSUQgYXJndW1lbnQKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBTZXQgdGhlIGRlZmF1bHQgdmFsdWVzLi4uCm15ICRUZXN0TnVtYmVyID0gMDsKCm15IEBQb3NzaWJsZVN0YXRlc0ZvclJlcXVlc3RlZCA9ICgKICAgICdyZXF1ZXN0ZWQnLAogICAgJ2luIHByb2dyZXNzJywKICAgICdwZW5kaW5nIGFwcHJvdmFsJywKICAgICdyZWplY3RlZCcsCiAgICAncmV0cmFjdGVkJywKKTsKCm15IEBQb3NzaWJsZVN0YXRlc0ZvclBlbmRpZ0FwcHJvdmFsID0gKAogICAgJ3BlbmRpbmcgYXBwcm92YWwnLAogICAgJ2FwcHJvdmVkJywKICAgICdyZWplY3RlZCcsCiAgICAncmV0cmFjdGVkJywKKTsKCm15IEBQb3NzaWJsZVN0YXRlc0ZvckFwcHJvdmVkID0gKAogICAgJ2FwcHJvdmVkJywKICAgICdyZXRyYWN0ZWQnLAogICAgJ2luIHByb2dyZXNzJywKKTsKCm15IEBQb3NzaWJsZVN0YXRlc0ZvckluUHJvZ3Jlc3MgPSAoCiAgICAnaW4gcHJvZ3Jlc3MnLAogICAgJ2NhbmNlbGVkJywKICAgICdmYWlsZWQnLAogICAgJ3BlbmRpbmcgcGlyJywKICAgICdyZXRyYWN0ZWQnLAogICAgJ3N1Y2Nlc3NmdWwnLAopOwoKIyBUZXN0IGxvZ2ljIHN0YXJ0cy4uLgoKIyBDcmVhdGUgYSBjaGFuZ2Ugb2JqZWN0Li4uCm15ICRDaGFuZ2VJREZvckNoYW5nZVBvc3NpYmxlU3RhdGVHZXQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICBVc2VySUQgPT4gMSwKKTsKCiMgR2V0IHBvc3NzaWJsZSBzdGF0ZXMuLi4KbXkgJFBvc3NpYmxlU3RhdGVzVXNpbmdDaGFuZ2VJRCA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVBvc3NpYmxlU3RhdGVzR2V0KAogICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlERm9yQ2hhbmdlUG9zc2libGVTdGF0ZUdldCwKICAgIFVzZXJJRCAgID0+IDEsCik7CgokVGVzdE51bWJlcisrOwoKX1Rlc3RQb3NzaWJsZVN0YXRlcygKICAgIFN0YXRlICAgICAgICAgICAgICAgICA9PiAnUmVxdWVzdGVkJywKICAgIFBvc3NpYmxlU3RhdGVzICAgICAgICA9PiAkUG9zc2libGVTdGF0ZXNVc2luZ0NoYW5nZUlELAogICAgUG9zc2libGVEZWZhdWx0U3RhdGVzID0+IFxAUG9zc2libGVTdGF0ZXNGb3JSZXF1ZXN0ZWQsCiAgICBUZXN0TnVtYmVyICAgICAgICAgICAgPT4gJFRlc3ROdW1iZXIsCik7CgojIENoYW5nZSB0aGUgc3RhdGUKbXkgJENoYW5nZVVwZGF0ZVN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VVcGRhdGUoCiAgICBDaGFuZ2VJRCAgICA9PiAkQ2hhbmdlSURGb3JDaGFuZ2VQb3NzaWJsZVN0YXRlR2V0LAogICAgQ2hhbmdlU3RhdGUgPT4gJ3BlbmRpbmcgYXBwcm92YWwnLAogICAgVXNlcklEICAgICAgPT4gMSwKKTsKCiRUZXN0TnVtYmVyKys7CgokU2VsZi0+VHJ1ZSgKICAgICRDaGFuZ2VVcGRhdGVTdWNjZXNzLAogICAgIlRlc3QgJFRlc3ROdW1iZXIgU3RhdGUgY2hhbmdlIgopOwoKIyBHZXQgcG9zc3NpYmxlIHN0YXRlcy4uLgokUG9zc2libGVTdGF0ZXNVc2luZ0NoYW5nZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlUG9zc2libGVTdGF0ZXNHZXQoCiAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSURGb3JDaGFuZ2VQb3NzaWJsZVN0YXRlR2V0LAogICAgVXNlcklEICAgPT4gMSwKKTsKCl9UZXN0UG9zc2libGVTdGF0ZXMoCiAgICBTdGF0ZSAgICAgICAgICAgICAgICAgPT4gJ0FwcHJvdmVkJywKICAgIFBvc3NpYmxlU3RhdGVzICAgICAgICA9PiAkUG9zc2libGVTdGF0ZXNVc2luZ0NoYW5nZUlELAogICAgUG9zc2libGVEZWZhdWx0U3RhdGVzID0+IFxAUG9zc2libGVTdGF0ZXNGb3JQZW5kaWdBcHByb3ZhbCwKICAgIFRlc3ROdW1iZXIgICAgICAgICAgICA9PiAkVGVzdE51bWJlciwKKTsKCiMgQ2hhbmdlIHRoZSBzdGF0ZQokQ2hhbmdlVXBkYXRlU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVVwZGF0ZSgKICAgIENoYW5nZUlEICAgID0+ICRDaGFuZ2VJREZvckNoYW5nZVBvc3NpYmxlU3RhdGVHZXQsCiAgICBDaGFuZ2VTdGF0ZSA9PiAnYXBwcm92ZWQnLAogICAgVXNlcklEICAgICAgPT4gMSwKKTsKCiRUZXN0TnVtYmVyKys7CgokU2VsZi0+VHJ1ZSgKICAgICRDaGFuZ2VVcGRhdGVTdWNjZXNzLAogICAgIlRlc3QgJFRlc3ROdW1iZXIgU3RhdGUgY2hhbmdlIgopOwoKIyBHZXQgcG9zc3NpYmxlIHN0YXRlcy4uLgokUG9zc2libGVTdGF0ZXNVc2luZ0NoYW5nZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlUG9zc2libGVTdGF0ZXNHZXQoCiAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSURGb3JDaGFuZ2VQb3NzaWJsZVN0YXRlR2V0LAogICAgVXNlcklEICAgPT4gMSwKKTsKCl9UZXN0UG9zc2libGVTdGF0ZXMoCiAgICBTdGF0ZSAgICAgICAgICAgICAgICAgPT4gJ0FwcHJvdmVkJywKICAgIFBvc3NpYmxlU3RhdGVzICAgICAgICA9PiAkUG9zc2libGVTdGF0ZXNVc2luZ0NoYW5nZUlELAogICAgUG9zc2libGVEZWZhdWx0U3RhdGVzID0+IFxAUG9zc2libGVTdGF0ZXNGb3JBcHByb3ZlZCwKICAgIFRlc3ROdW1iZXIgICAgICAgICAgICA9PiAkVGVzdE51bWJlciwKKTsKCiMgQ2hhbmdlIHRoZSBzdGF0ZQokQ2hhbmdlVXBkYXRlU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVVwZGF0ZSgKICAgIENoYW5nZUlEICAgID0+ICRDaGFuZ2VJREZvckNoYW5nZVBvc3NpYmxlU3RhdGVHZXQsCiAgICBDaGFuZ2VTdGF0ZSA9PiAnaW4gcHJvZ3Jlc3MnLAogICAgVXNlcklEICAgICAgPT4gMSwKKTsKCiRUZXN0TnVtYmVyKys7CgokU2VsZi0+VHJ1ZSgKICAgICRDaGFuZ2VVcGRhdGVTdWNjZXNzLAogICAgIlRlc3QgJFRlc3ROdW1iZXIgU3RhdGUgY2hhbmdlIgopOwoKIyBHZXQgcG9zc3NpYmxlIHN0YXRlcy4uLgokUG9zc2libGVTdGF0ZXNVc2luZ0NoYW5nZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlUG9zc2libGVTdGF0ZXNHZXQoCiAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSURGb3JDaGFuZ2VQb3NzaWJsZVN0YXRlR2V0LAogICAgVXNlcklEICAgPT4gMSwKKTsKCl9UZXN0UG9zc2libGVTdGF0ZXMoCiAgICBTdGF0ZSAgICAgICAgICAgICAgICAgPT4gJ0luIFByb2dyZXNzJywKICAgIFBvc3NpYmxlU3RhdGVzICAgICAgICA9PiAkUG9zc2libGVTdGF0ZXNVc2luZ0NoYW5nZUlELAogICAgUG9zc2libGVEZWZhdWx0U3RhdGVzID0+IFxAUG9zc2libGVTdGF0ZXNGb3JJblByb2dyZXNzLAogICAgVGVzdE51bWJlciAgICAgICAgICAgID0+ICRUZXN0TnVtYmVyLAopOwoKIyBEZWxldGUgdGhlIENoYW5nZQokQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSURGb3JDaGFuZ2VQb3NzaWJsZVN0YXRlR2V0LAogICAgVXNlcklEICAgPT4gMSwKKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBDSVAgYWxsb2NhdGUgdGVzdHMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBnZXQgY3VycmVudCBhbGxvY2F0aW9uIGxpc3QgKFVzZXJJRCBpcyBuZWVkZWQpCm15ICRFbXB0eUFsbG9jYXRlRGF0YSA9ICRDSVBBbGxvY2F0ZU9iamVjdC0+QWxsb2NhdGVMaXN0KCk7CgojIGNoZWNrIHRoZSByZXN1bHQKJFNlbGYtPkZhbHNlKAogICAgJEVtcHR5QWxsb2NhdGVEYXRhLAogICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICc6IEFsbG9jYXRlTGlzdCgpJywKKTsKCiMgZ2V0IGN1cnJlbnQgYWxsb2NhdGlvbiBsaXN0Cm15ICRDdXJyZW50QWxsb2NhdGVEYXRhID0gJENJUEFsbG9jYXRlT2JqZWN0LT5BbGxvY2F0ZUxpc3QoCiAgICBVc2VySUQgPT4gMSwKKTsKCiMgY2hlY2sgdGhlIHJlc3VsdAokU2VsZi0+VHJ1ZSgKICAgICRDdXJyZW50QWxsb2NhdGVEYXRhLAogICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICc6IEFsbG9jYXRlTGlzdCgpJywKKTsKCiMgY2hlY2sgdGhlIGFsbG9jYXRpb24gaGFzaApteSAkSGFzaElzT0sgPSAxOwppZiAoIHJlZiAkQ3VycmVudEFsbG9jYXRlRGF0YSBuZSAnSEFTSCcgKSB7CiAgICAkSGFzaElzT0sgPSAwOwp9CgojIGNoZWNrIHRoZSBhbGxvY2F0aW9uIDJkIGhhc2gKaWYgKCRIYXNoSXNPSykgewoKICAgIElNUEFDVElEOgogICAgZm9yIG15ICRJbXBhY3RJRCAoIHNvcnQga2V5cyAleyRDdXJyZW50QWxsb2NhdGVEYXRhfSApIHsKCiAgICAgICAgaWYgKCByZWYgJEN1cnJlbnRBbGxvY2F0ZURhdGEtPnskSW1wYWN0SUR9IG5lICdIQVNIJyApIHsKICAgICAgICAgICAgJEhhc2hJc09LID0gMDsKICAgICAgICAgICAgbGFzdCBJTVBBQ1RJRDsKICAgICAgICB9CgogICAgICAgIENBVEVHT1JZSUQ6CiAgICAgICAgZm9yIG15ICRDYXRlZ29yeUlEICggc29ydCBrZXlzICV7ICRDdXJyZW50QWxsb2NhdGVEYXRhLT57JEltcGFjdElEfSB9ICkgewoKICAgICAgICAgICAgaWYgKCAhJENhdGVnb3J5SUQgfHwgISRDdXJyZW50QWxsb2NhdGVEYXRhLT57JEltcGFjdElEfS0+eyRDYXRlZ29yeUlEfSApIHsKICAgICAgICAgICAgICAgICRIYXNoSXNPSyA9IDA7CiAgICAgICAgICAgICAgICBsYXN0IElNUEFDVElEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgojIGNoZWNrIEhhc2hPSwokU2VsZi0+VHJ1ZSgKICAgICRIYXNoSXNPSywKICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAnOiBBbGxvY2F0ZUxpc3QoKScsCik7CgojIHVwZGF0ZSB0aGUgYWxsb2NhdGlvbiBoYXNoIChub3QgYWxsIG5lZWRlZCBhcmd1bWVudHMgZ2l2ZW4pCm15ICRDSVBBbGxvY2F0aW9uVXBkYXRlZCA9ICRDSVBBbGxvY2F0ZU9iamVjdC0+QWxsb2NhdGVVcGRhdGUoCiAgICBVc2VySUQgPT4gMSwKKTsKCiMgY2hlY2sgdGhlIHJlc3VsdAokU2VsZi0+RmFsc2UoCiAgICAkQ0lQQWxsb2NhdGlvblVwZGF0ZWQsCiAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gJzogQWxsb2NhdGVVcGRhdGUoKScsCik7CgojIHVwZGF0ZSB0aGUgYWxsb2NhdGlvbiBoYXNoIChub3QgYWxsIG5lZWRlZCBhcmd1bWVudHMgZ2l2ZW4pCm15ICRDSVBBbGxvY2F0aW9uSXNVcGRhdGVkID0gJENJUEFsbG9jYXRlT2JqZWN0LT5BbGxvY2F0ZVVwZGF0ZSgKICAgIEFsbG9jYXRlRGF0YSA9PiAkQ3VycmVudEFsbG9jYXRlRGF0YSwKKTsKCiMgY2hlY2sgdGhlIHJlc3VsdAokU2VsZi0+RmFsc2UoCiAgICAkQ0lQQWxsb2NhdGlvbklzVXBkYXRlZCwKICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAnOiBBbGxvY2F0ZVVwZGF0ZSgpJywKKTsKCiMgdXBkYXRlIHRoZSBhbGxvY2F0aW9uIGhhc2ggKGFsbG9jYXRpb24gaGFzaCkKbXkgJENJUEFsbG9jYXRpb25Jc1VwZGF0ZWROclRocmVlID0gJENJUEFsbG9jYXRlT2JqZWN0LT5BbGxvY2F0ZVVwZGF0ZSgKICAgIEFsbG9jYXRlRGF0YSA9PiB7CiAgICAgICAgVGVzdCAgPT4gJ2FhYScsCiAgICAgICAgVGVzdDIgPT4gJ2JiYicsCiAgICB9LAogICAgVXNlcklEID0+IDEsCik7CgojIGNoZWNrIHRoZSByZXN1bHQKJFNlbGYtPkZhbHNlKAogICAgJENJUEFsbG9jYXRpb25Jc1VwZGF0ZWROclRocmVlLAogICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICc6IEFsbG9jYXRlVXBkYXRlKCknLAopOwoKIyB1cGRhdGUgdGhlIGFsbG9jYXRpb24gaGFzaApteSAkU3VjY2VzcyA9ICRDSVBBbGxvY2F0ZU9iamVjdC0+QWxsb2NhdGVVcGRhdGUoCiAgICBBbGxvY2F0ZURhdGEgPT4gJEN1cnJlbnRBbGxvY2F0ZURhdGEsCiAgICBVc2VySUQgICAgICAgPT4gMSwKKTsKCiMgY2hlY2sgdGhlIHJlc3VsdAokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICc6IEFsbG9jYXRlVXBkYXRlKCknLAopOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIENJUCBsb29rdXAgdGVzdHMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKJExvb2t1cE9rID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQ0lQTG9va3VwKAogICAgQ0lQICA9PiAnMSB2ZXJ5IGhpZ2gnLAogICAgVHlwZSA9PiAnbm9uLWV4aXN0ZW50JywKKTsKCiRTZWxmLT5GYWxzZSgKICAgICRMb29rdXBPaywKICAgICdJbnZhbGlkIHR5cGUgcGFzc2VkIHRvIENoYW5nZUNJUExvb2t1cCgpJywKKTsKCiRMb29rdXBPayA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUNJUExvb2t1cCgKICAgIENJUCA9PiAnMSB2ZXJ5IGhpZ2gnLAopOwoKJFNlbGYtPkZhbHNlKAogICAgJExvb2t1cE9rLAogICAgJ1BhcmFtZXRlciBUeXBlIG5vdCBwYXNzZWQgdG8gQ2hhbmdlQ0lQTG9va3VwKCknLAopOwoKJExvb2t1cE9rID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQ0lQTG9va3VwKAogICAgVHlwZSA9PiAnUHJpb3JpdHknLAopOwoKJFNlbGYtPkZhbHNlKAogICAgJExvb2t1cE9rLAogICAgJ1BhcmFtZXRlciBJRCBvciBDSVAgbm90IHBhc3NlZCB0byBDaGFuZ2VDSVBMb29rdXAoKScsCik7CgokTG9va3VwT2sgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VDSVBMb29rdXAoCiAgICBUeXBlID0+ICdQcmlvcml0eScsCiAgICBDSVAgID0+ICcxIHZlcnkgaGlnaCcsCiAgICBJRCAgID0+IDEyMywKKTsKCiRTZWxmLT5GYWxzZSgKICAgICRMb29rdXBPaywKICAgICdFeGNsdXNpdmUgcGFyYW1ldGVycyBJRCBhbmQgQ0lQIHBhc3NlZCB0byBDaGFuZ2VDSVBMb29rdXAoKScsCik7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgQ2hhbmdlUG9zc2libGVDSVBHZXQoKSB0ZXN0cwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgpteSAkUG9zc2libGVDSVBHZXRPayA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZVBvc3NpYmxlQ0lQR2V0KAogICAgVHlwZSAgID0+ICdub24tZXhpc3RlbnQnLAogICAgVXNlcklEID0+IDEsCik7CgokU2VsZi0+RmFsc2UoCiAgICAkUG9zc2libGVDSVBHZXRPaywKICAgICdJbnZhbGlkIHR5cGUgcGFzc2VkIHRvIENoYW5nZVBvc3NpYmxlQ0lQR2V0KCknLAopOwoKJFBvc3NpYmxlQ0lQR2V0T2sgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VQb3NzaWJsZUNJUEdldCgKICAgIFVzZXJJRCA9PiAxLAopOwoKJFNlbGYtPkZhbHNlKAogICAgJFBvc3NpYmxlQ0lQR2V0T2ssCiAgICAnUGFyYW1ldGVyIFR5cGUgbm90IHBhc3NlZCB0byBDaGFuZ2VQb3NzaWJsZUNJUEdldCgpJywKKTsKCiMgVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgdGhlIHNhbWUgZm9yIGFsbCB0aHJlZSB0eXBlcy4KbXkgJFBvc3NpYmxlQ0lQUmVmZXJlbmNlID0gam9pbiAnLCAnLCBAQ0lQVmFsdWVzOwpmb3IgbXkgJFR5cGUgKHF3KENhdGVnb3J5IEltcGFjdCBQcmlvcml0eSkpIHsKICAgIG15ICRQb3NzaWJsZUNJUHMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VQb3NzaWJsZUNJUEdldCgKICAgICAgICBUeXBlICAgPT4gJFR5cGUsCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgICRTZWxmLT5JcygKICAgICAgICByZWYgJFBvc3NpYmxlQ0lQcywKICAgICAgICAnQVJSQVknLAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gQ2hhbmdlUG9zc2libGVDSVBHZXQoKSByZXR1cm5lZCBhcnJheSByZWYgZm9yICckVHlwZSciLAogICAgKTsKCiAgICAkU2VsZi0+SXMoCiAgICAgICAgam9pbiggJywgJywgbWFwIHsgJF8tPntWYWx1ZX0gfSBAeyRQb3NzaWJsZUNJUHN9ICksCiAgICAgICAgJFBvc3NpYmxlQ0lQUmVmZXJlbmNlLAogICAgICAgICJUZXN0ICRUZXN0Q291bnQgLSBDaGFuZ2VQb3NzaWJsZUNJUEdldCgpIHJldHVybmVkIGV4cGVjdGVkIHZhbHVlcyBmb3IgJyRUeXBlJyIsCiAgICApOwp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgdGVzdGluZyBzdXBwb3J0IGZvciBhdHRhY2htZW50cwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgpteSAoJEF0dGFjaG1lbnRUZXN0Q2hhbmdlSUQpID0gQHsgJExhYmVsMkNoYW5nZUlEc3tBdHRhY2htZW50fSB9OwoKIyB2ZXJpZnkgdGhhdCBpbml0aWFseSBubyBhdHRhY2htZW50IGV4aXN0cwpteSBAQXR0YWNobWVudExpc3QgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBdHRhY2htZW50TGlzdCgKICAgIENoYW5nZUlEID0+ICRBdHRhY2htZW50VGVzdENoYW5nZUlELAopOwoKJFNlbGYtPklzKAogICAgc2NhbGFyIEBBdHRhY2htZW50TGlzdCwKICAgIDAsCiAgICAnTm8gYXR0YWNobWVudHMgaW5pdGlhbGx5JywKKTsKCm15IEBUZXN0RmlsZUxpc3QgPSAoCiAgICB7CiAgICAgICAgRmlsZW5hbWUgICAgPT4gJ2ZpcnN0IGF0dGFjaG1lbnQnLAogICAgICAgIENvbnRlbnQgICAgID0+ICdGaXJzdCBhdHRhY2htZW50IGZyb20gSVRTTUNoYW5nZS50JywKICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICB9LAogICAgewogICAgICAgIEZpbGVuYW1lICAgID0+ICdzZWNvbmQgYXR0YWNobWVudCcsCiAgICAgICAgQ29udGVudCAgICAgPT4gJ1NlY29uZCBhdHRhY2htZW50IGZyb20gSVRTTUNoYW5nZS50JywKICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICB9LAopOwoKbXkgJEZpbGVDb3VudDsKZm9yIG15ICRUZXN0RmlsZSAoQFRlc3RGaWxlTGlzdCkgewoKICAgICRGaWxlQ291bnQrKzsKCiAgICBteSAkQWRkT2sgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBdHRhY2htZW50QWRkKAogICAgICAgICV7JFRlc3RGaWxlfSwKICAgICAgICBDaGFuZ2VJRCA9PiAkQXR0YWNobWVudFRlc3RDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRBZGRPaywKICAgICAgICAiQXR0YWNobWVudCAkRmlsZUNvdW50OiBhdHRhY2htZW50IGFkZGVkIiwKICAgICk7CgogICAgbXkgQEF0dGFjaG1lbnRMaXN0ID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQXR0YWNobWVudExpc3QoCiAgICAgICAgQ2hhbmdlSUQgPT4gJEF0dGFjaG1lbnRUZXN0Q2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+SXMoCiAgICAgICAgc2NhbGFyIEBBdHRhY2htZW50TGlzdCwKICAgICAgICAkRmlsZUNvdW50LAogICAgICAgICJBdHRhY2htZW50ICRGaWxlQ291bnQ6IG51bWJlciBvZiBhdHRhY2htZW50cyBhZnRlciBhZGRpbmciLAogICAgKTsKCiAgICAjIGNoZWNrIHdoZXRoZXIgdGhlIGxhc3QgYWRkZWQgYXR0YWNobWVudCBpcyBpbiB0aGUgbGlzdAogICAgbXkgJUF0dGFjaG1lbnRMb29rdXAgPSBtYXAgeyAkXyA9PiAxIH0gQEF0dGFjaG1lbnRMaXN0OwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJEF0dGFjaG1lbnRMb29rdXB7ICRUZXN0RmlsZS0+e0ZpbGVuYW1lfSB9LAogICAgICAgICJBdHRhY2htZW50ICRGaWxlQ291bnQ6IGZpbGVuYW1lIGZyb20gQ2hhbmdlQXR0YWNobWVudExpc3QoKSIsCiAgICApOwoKICAgICMgZ2V0IHRoZSBhdHRhY2htZW50CiAgICBteSAkQXR0YWNobWVudCA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUF0dGFjaG1lbnRHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJEF0dGFjaG1lbnRUZXN0Q2hhbmdlSUQsCiAgICAgICAgRmlsZW5hbWUgPT4gJFRlc3RGaWxlLT57RmlsZW5hbWV9LAogICAgKTsKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRBdHRhY2htZW50LAogICAgICAgICJBdHRhY2htZW50ICRGaWxlQ291bnQ6IENoYW5nZUF0dGFjaG1lbnRHZXQoKSByZXR1cm5lZCB0cnVlIiwKICAgICk7CgogICAgIyBjaGVjayBhdHRhY2htZW50IGZpbGUgYXR0cmlidXRlcwogICAgZm9yIG15ICRBdHRyaWJ1dGUgKHF3KEZpbGVuYW1lIENvbnRlbnQgQ29udGVudFR5cGUpKSB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkQXR0YWNobWVudC0+eyRBdHRyaWJ1dGV9LAogICAgICAgICAgICAkVGVzdEZpbGUtPnskQXR0cmlidXRlfSwKICAgICAgICAgICAgIkF0dGFjaG1lbnQgJEZpbGVDb3VudDogJEF0dHJpYnV0ZSBmcm9tIENoYW5nZUF0dGFjaG1lbnRHZXQiLAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayBleGlzdGVuY2Ugb2YgYXR0YWNobWVudAogICAgbXkgJEF0dGFjaG1lbnRFeGlzdHMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBdHRhY2htZW50RXhpc3RzKAogICAgICAgIENoYW5nZUlEID0+ICRBdHRhY2htZW50VGVzdENoYW5nZUlELAogICAgICAgIEZpbGVuYW1lID0+ICRUZXN0RmlsZS0+e0ZpbGVuYW1lfSwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRBdHRhY2htZW50RXhpc3RzLAogICAgICAgICJBdHRhY2htZW50ICRGaWxlQ291bnQ6IGF0dGFjaG1lbnQgZXhpc3RzIiwKICAgICk7Cgp9CgojIG5vdyBkZWxldGUgdGhlIGF0dGFjaG1lbnRzCiRGaWxlQ291bnQgPSAwOwpteSAkTWF4VGVzdEZpbGVzID0gc2NhbGFyIEBUZXN0RmlsZUxpc3Q7CmZvciBteSAkVGVzdEZpbGUgKEBUZXN0RmlsZUxpc3QpIHsKCiAgICAkRmlsZUNvdW50Kys7CgogICAgbXkgJERlbGV0ZU9rID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQXR0YWNobWVudERlbGV0ZSgKICAgICAgICBDaGFuZ2VJRCA9PiAkQXR0YWNobWVudFRlc3RDaGFuZ2VJRCwKICAgICAgICBGaWxlbmFtZSA9PiAkVGVzdEZpbGUtPntGaWxlbmFtZX0sCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkRGVsZXRlT2ssCiAgICAgICAgIkF0dGFjaG1lbnQgJEZpbGVDb3VudDogYXR0YWNobWVudCBkZWxldGVkIiwKICAgICk7CgogICAgbXkgQEF0dGFjaG1lbnRMaXN0ID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQXR0YWNobWVudExpc3QoCiAgICAgICAgQ2hhbmdlSUQgPT4gJEF0dGFjaG1lbnRUZXN0Q2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgIHNjYWxhciBAQXR0YWNobWVudExpc3QsCiAgICAgICAgJE1heFRlc3RGaWxlcyAtICRGaWxlQ291bnQsCiAgICAgICAgIkF0dGFjaG1lbnQgJEZpbGVDb3VudDogbnVtYmVyIG9mIGF0dGFjaG1lbnRzIGFmdGVyIGRlbGV0aW9uIiwKICAgICk7CgogICAgbXkgJEF0dGFjaG1lbnRFeGlzdHMgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBdHRhY2htZW50RXhpc3RzKAogICAgICAgIEZpbGVuYW1lID0+ICRUZXN0RmlsZS0+e0ZpbGVuYW1lfSwKICAgICAgICBDaGFuZ2VJRCA9PiAkQXR0YWNobWVudFRlc3RDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAkQXR0YWNobWVudEV4aXN0cywKICAgICAgICAiQXR0YWNobWVudCAkRmlsZUNvdW50OiBhdHRhY2htZW50IGlzIGdvbmUiLAogICAgKTsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3QgSGlzdG9yeUFkZE11bHRpcGxlKCkgZnVuY3Rpb24KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKewoKICAgICMgZGVmaW5lIG9sZCB2YWx1ZXMgZm9yIGNoYW5nZQogICAgbXkgJU9sZFZhbHVlcyA9ICgKICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICdBQUEnLAogICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ0JCQicsCiAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnQ0NDJywKICAgICk7CgogICAgIyBhZGQgYSBuZXcgdGVzdCBjaGFuZ2UKICAgIG15ICRDaGFuZ2VJRCA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICAlT2xkVmFsdWVzLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICAjIHJlbWVtYmVyIGNoYW5nZSBpZCBmb3IgYXV0b21hdGljIGRlbGV0aW9uCiAgICAkVGVzdGVkQ2hhbmdlSUR7JENoYW5nZUlEfSA9IDE7CgogICAgIyBkZWZpbmUgbmV3IHZhbHVlcyBmb3IgY2hhbmdlIHVwZGF0ZQogICAgbXkgJU5ld1ZhbHVlcyA9ICgKICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICdYWFgnLAogICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1lZWScsCiAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnWlpaJywKICAgICk7CgogICAgIyB1cGRhdGUgdGhlIGNoYW5nZQogICAgbXkgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VVcGRhdGUoCiAgICAgICAgJU5ld1ZhbHVlcywKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgIyBnZXQgdGhlIGNoYW5nZSBoaXN0b3J5CiAgICBteSAkSGlzdG9yeUVudHJpZXMgPSAkSGlzdG9yeU9iamVjdC0+Q2hhbmdlSGlzdG9yeUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgIyBnZXQgcmV2ZXJzZSBoaXN0b3J5IGVudHJpZXMKICAgIG15IEBSZXZlcnNlSGlzdG9yeSA9IHJldmVyc2UgQHskSGlzdG9yeUVudHJpZXN9OwoKICAgICMgZ2V0IHRoZSBsYXN0IDMgaGlzdG9yeSBlbnRyaWVzIGFuZCBwdXQgdGhlbSBpbiBhIGhhc2gKICAgICMga2V5IGlzIHRoZSBmaWVsZG5hbWUsIHZhbHVlIGlzIHRoZSBjb21wbGV0ZSBoaXN0b3J5IGRhdGEgb2YgdGhhdCBsaW5lCiAgICBteSAlSGlzdG9yeUxvb2t1cEJ5RmllbGRuYW1lID0gbWFwIHsgJF8tPntGaWVsZG5hbWV9ID0+ICRfIH0gQFJldmVyc2VIaXN0b3J5WyAwLCAxLCAyIF07CgogICAgZm9yIG15ICRGaWVsZG5hbWUgKCBzb3J0IGtleXMgJU5ld1ZhbHVlcyApIHsKCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkSGlzdG9yeUxvb2t1cEJ5RmllbGRuYW1leyRGaWVsZG5hbWV9LT57Q29udGVudE9sZH0sCiAgICAgICAgICAgICRPbGRWYWx1ZXN7JEZpZWxkbmFtZX0sCiAgICAgICAgICAgICJDaGVja2luZyBIaXN0b3J5IGZvciBGaWVsZDogJEZpZWxkbmFtZSwgQ29udGVudE9sZDogJE9sZFZhbHVlc3skRmllbGRuYW1lfSIsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkSGlzdG9yeUxvb2t1cEJ5RmllbGRuYW1leyRGaWVsZG5hbWV9LT57Q29udGVudE5ld30sCiAgICAgICAgICAgICROZXdWYWx1ZXN7JEZpZWxkbmFtZX0sCiAgICAgICAgICAgICJDaGVja2luZyBIaXN0b3J5IGZvciBGaWVsZDogJEZpZWxkbmFtZSwgQ29udGVudE5ldzogJE5ld1ZhbHVlc3skRmllbGRuYW1lfSIsCiAgICAgICAgKTsKICAgIH0KfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIGNsZWFuIHRoZSBzeXN0ZW0KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBkaXNhYmxlIGVtYWlsIGNoZWNrcyB0byBjaGFuZ2UgdGhlIG5ld2x5IGFkZGVkIHVzZXJzCiRDaGVja0VtYWlsQWRkcmVzc2VzT3JnID0gJENvbmZpZ09iamVjdC0+R2V0KCdDaGVja0VtYWlsQWRkcmVzc2VzJyk7CmlmICggIWRlZmluZWQgJENoZWNrRW1haWxBZGRyZXNzZXNPcmcgKSB7CiAgICAkQ2hlY2tFbWFpbEFkZHJlc3Nlc09yZyA9IDE7Cn0KJENvbmZpZ09iamVjdC0+U2V0KAogICAgS2V5ICAgPT4gJ0NoZWNrRW1haWxBZGRyZXNzZXMnLAogICAgVmFsdWUgPT4gMCwKKTsKCiMgc2V0IHVuaXR0ZXN0IHVzZXJzIGludmFsaWQKZm9yIG15ICRVbml0dGVzdFVzZXJJRCAoQFVzZXJJRHMpIHsKCiAgICAjIGdldCB1c2VyIGRhdGEKICAgIG15ICVVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgIFVzZXJJRCA9PiAkVW5pdHRlc3RVc2VySUQsCiAgICApOwoKICAgICMgdXBkYXRlIHVzZXIKICAgICRVc2VyT2JqZWN0LT5Vc2VyVXBkYXRlKAogICAgICAgICVVc2VyLAogICAgICAgIFZhbGlkSUQgICAgICA9PiAkVmFsaWRPYmplY3QtPlZhbGlkTG9va3VwKCBWYWxpZCA9PiAnaW52YWxpZCcgKSwKICAgICAgICBDaGFuZ2VVc2VySUQgPT4gMSwKICAgICk7Cn0KCiMgZGVsZXRlIHRoZSB0ZXN0IGNoYW5nZXMKbXkgJERlbGV0ZVRlc3RDb3VudCA9IDE7CmZvciBteSAkQ2hhbmdlSUQgKCBzb3J0IGtleXMgJVRlc3RlZENoYW5nZUlEICkgewoKICAgIG15ICREZWxldGVPayA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkRGVsZXRlT2ssCiAgICAgICAgIkRlbGV0ZVRlc3QgJERlbGV0ZVRlc3RDb3VudCAtIENoYW5nZURlbGV0ZSgpIChDaGFuZ2VJRD0kQ2hhbmdlSUQpIiwKICAgICk7CgogICAgIyBkb3VibGUgY2hlY2sgaWYgY2hhbmdlIGlzIHJlYWxseSBkZWxldGVkCiAgICBteSAkQ2hhbmdlRGF0YSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICBDYWNoZSAgICA9PiAwLAogICAgKTsKCiAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgJENoYW5nZURhdGEtPntDaGFuZ2VJRH0sCiAgICAgICAgIkRlbGV0ZVRlc3QgJERlbGV0ZVRlc3RDb3VudCAtIGRvdWJsZSBjaGVjayAoQ2hhbmdlSUQ9JENoYW5nZUlEKSIsCiAgICApOwp9CmNvbnRpbnVlIHsKICAgICREZWxldGVUZXN0Q291bnQrKzsKfQoKIyBkZWxldGUgZHluYW1pYyBmaWVsZHMgdGhhdCBoYXZlIGJlZW4gY3JlYXRlZCBmb3IgdGhpcyB0ZXN0CmZvciBteSAkRHluYW1pY0ZpZWxkSUQgKEBEeW5hbWljRmllbGRJRHMpIHsKCiAgICBteSAkU3VjY2VzcyA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZERlbGV0ZSgKICAgICAgICBJRCAgICAgPT4gJER5bmFtaWNGaWVsZElELAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkU3VjY2VzcywKICAgICAgICAiRHluYW1pY0ZpZWxkRGVsZXRlKCkgZGVsZXRlZCBEeW5hbWljRmllbGQgJER5bmFtaWNGaWVsZElEIiwKICAgICk7Cn0KCiMgcmVzdG9yZSBvcmlnaW5hbCBkeW5hbWljIGZpZWxkcyBvcmRlcgpmb3IgbXkgJER5bmFtaWNGaWVsZCAoIEB7JE9yaWdpbmFsRHluYW1pY0ZpZWxkc30gKSB7CgogICAgbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRVcGRhdGUoCiAgICAgICAgJXskRHluYW1pY0ZpZWxkfSwKICAgICAgICBSZW9yZGVyID0+IDAsCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgKTsKCiAgICAjIGNoZWNrIGlmIHVwZGF0ZSAocmVzdG9yZSkgd2FzIHN1Y2Nlc3NmdWwKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRTdWNjZXNzLAogICAgICAgICJSZXN0b3JlZCBPcmlnaW5hbCBEeW5hbWljIEZpZWxkICAtIGZvciBGaWVsZElEICREeW5hbWljRmllbGQtPntJRH0iLAogICAgKTsKfQoKIyByZXN0b3JlIG9yaWdpbmFsIGVtYWlsIGNoZWNrIHBhcmFtCiRDb25maWdPYmplY3QtPlNldCgKICAgIEtleSAgID0+ICdDaGVja0VtYWlsQWRkcmVzc2VzJywKICAgIFZhbHVlID0+ICRDaGVja0VtYWlsQWRkcmVzc2VzT3JnLAopOwoKPWhlYWQyIFNldFRpbWVzKCkKClNldCBuZXcgdmFsdWVzIGZvciBDcmVhdGVUaW1lIGFuZCBDaGFuZ2VUaW1lIGZvciBhIGdpdmVuIENoYW5nZUlELgoKICAgIG15ICRVcGRhdGVTdWNjZXNzID0gU2V0VGltZXMoCiAgICAgICAgQ2hhbmdlSUQgPT4gMTIzLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMDktMTAtMzAgMDE6MDA6MTUnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMDktMTAtMzAgMDE6MDA6MTUnLAogICAgKTsKCj1jdXQKCnN1YiBTZXRUaW1lcyB7CiAgICBteSAoJVBhcmFtKSA9IEBfOwoKICAgICMgY2hlY2sgY2hhbmdlIGlkCiAgICBpZiAoICEkUGFyYW17Q2hhbmdlSUR9ICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ2hhbmdlSUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIHBhcmFtZXRlcnMKICAgIGlmICggISRQYXJhbXtDcmVhdGVUaW1lfSAmJiAhJFBhcmFte0NoYW5nZVRpbWV9ICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgcGFyYW1ldGVyIENyZWF0ZVRpbWUgb3IgQ2hhbmdlVGltZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15IEBCaW5kOwogICAgbXkgJFNRTCA9ICdVUERBVEUgY2hhbmdlX2l0ZW0gU0VUICc7CgogICAgaWYgKCAkUGFyYW17Q3JlYXRlVGltZX0gKSB7CiAgICAgICAgJFNRTCAuPSAnY3JlYXRlX3RpbWUgPSA/ICc7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXtDcmVhdGVUaW1lfTsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtDcmVhdGVUaW1lfSAmJiAkUGFyYW17Q2hhbmdlVGltZX0gKSB7CiAgICAgICAgJFNRTCAuPSAnLCAnOwogICAgfQoKICAgIGlmICggJFBhcmFte0NoYW5nZVRpbWV9ICkgewogICAgICAgICRTUUwgLj0gJ2NoYW5nZV90aW1lID0gPyAnOwogICAgICAgIHB1c2ggQEJpbmQsIFwkUGFyYW17Q2hhbmdlVGltZX07CiAgICB9CgogICAgJFNRTCAuPSAnV0hFUkUgaWQgPSA/ICc7CiAgICBwdXNoIEBCaW5kLCBcJFBhcmFte0NoYW5nZUlEfTsKCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gXEBCaW5kLAogICAgKTsKCiAgICAjIGNsZWFudXAgdGhlIGNhY2hlCiAgICAkQ2FjaGVPYmplY3QtPkNsZWFuVXAoCiAgICAgICAgVHlwZSA9PiAnSVRTTUNoYW5nZU1hbmFnZW1lbnQnLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKIyBzZXQgU2VuZE5vdGlmaWNhdGlvbnMgdG8gaXQncyBvcmlnaW5hbCB2YWx1ZQokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnSVRTTUNoYW5nZTo6U2VuZE5vdGlmaWNhdGlvbnMnLAogICAgVmFsdWUgPT4gJFNlbmROb3RpZmljYXRpb25zT3JnLAopOwoKPWhlYWQyIF9UZXN0UG9zc2libGVTdGF0ZXMoKQoKSW50ZXJuYWwgdXNlIG9ubHkhClJ1bnMgYSBzZXJpZXMgb2YgdGVzdHMgZm9yIENoYW5nZVBvc3NpYmxlU3RhdGVzR2V0KCkgYnkgdXNpbmcgYSBDaGFuZ2VJRCBhcyBhcmd1bWVudAoKICAgIF9UZXN0UG9zc3NpYmxlU3RhdGVzKAogICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICA9PiAnSW4gUHJvZ3Jlc3MnLCAgICAgICAgICAgICAgICAgIyBTdGF0ZSBuYW1lIHRvIGJlIGRpc3BsYXllZCBvbiB0aGUgdGVzdHMKICAgICAgICBQb3NzaWJsZVN0YXRlcyAgICAgICAgPT4gJFBvc3NpYmxlU3RhdGVzLCAgICAgICAgICAgICAgICMgVGhlIHJlc3VsdCBmcm9tIENoYW5nZVBvc3NpYmxlU3RhdGVzR2V0KCkKICAgICAgICBQb3NzaWJsZURlZmF1bHRTdGF0ZXMgPT4gXEBQb3NzaWJsZVN0YXRlc0ZvckluUHJvZ3Jlc3MsICMgQXJyYXkgdG8gcG9zc2libGUgc3RhdGUgdG8gY29tcGFyZQogICAgICAgIFRlc3ROdW1iZXIgICAgICAgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUZXN0bnVtYmVyCgogICAgKTsKCj1jdXQKCnN1YiBfVGVzdFBvc3NpYmxlU3RhdGVzIHsKICAgIG15ICglUGFyYW0pID0gQF87CgogICAgbXkgJFN0YXRlICAgICAgICAgICAgICAgICA9ICRQYXJhbXtTdGF0ZX07CiAgICBteSAkUG9zc2libGVTdGF0ZXMgICAgICAgID0gJFBhcmFte1Bvc3NpYmxlU3RhdGVzfTsKICAgIG15IEBQb3NzaWJsZURlZmF1bHRTdGF0ZXMgPSBAeyAkUGFyYW17UG9zc2libGVEZWZhdWx0U3RhdGVzfSB9OwogICAgbXkgJFRlc3ROdW1iZXIgICAgICAgICAgICA9ICRQYXJhbXtUZXN0TnVtYmVyfTsKCiAgICAjIENoZWNrIGlmIHJldHVybi4uLgogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJFBvc3NpYmxlU3RhdGVzLAogICAgICAgICJQb3NzaWJsZSBTdGF0ZXMgVGVzdCAkVGVzdE51bWJlcjogQ2hhbmdlUG9zc2libGVTdGF0ZXNHZXQoKSAtICIKICAgICAgICAgICAgLiAicmV0dXJucyBhIGxpc3Qgb2YgcG9zaWJsZSBzdGF0ZXMgZnJvbSAkU3RhdGUgU3RhdGUuIiwKICAgICk7CgogICAgIyBDaGVjayBpZiByZXR1cm5pbmcgdGhlIHNhbWUgbnVtYmVyIG9mIHN0YXRlcy4uLgogICAgJFNlbGYtPklzKAogICAgICAgIHNjYWxhciBAeyRQb3NzaWJsZVN0YXRlc1VzaW5nQ2hhbmdlSUR9LAogICAgICAgIHNjYWxhciBAUG9zc2libGVEZWZhdWx0U3RhdGVzLAogICAgICAgICJQb3NzaWJsZSBTdGF0ZXMgVGVzdCAkVGVzdE51bWJlcjogfC0iCiAgICAgICAgICAgIC4gInJldHVybnMgdGhlIHNhbWUgbnVtYmVyIG9mIGVsZW1lbnRzIGFzIHRoZSAkU3RhdGUgU3RhdGUgZGVmYXVsdC4iLAogICAgKTsKCiAgICBmb3IgbXkgJFBvc3NpYmxlU3RhdGVIYXNoICggQHskUG9zc2libGVTdGF0ZXN9ICkgewogICAgICAgIG15ICggJEZpcnN0SGFzaFJlZiwgJFNlY29uZEhhc2hSZWYgKSA9IGdyZXAgeyAkXyBlcSAkUG9zc2libGVTdGF0ZUhhc2gtPntWYWx1ZX0gfSBAUG9zc2libGVEZWZhdWx0U3RhdGVzOwoKICAgICAgICAjIENoZWNrIGlmIHRoZSBzdGF0ZSBuYW1lcyBhcmUgY29ycmVjdC4uLgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJEZpcnN0SGFzaFJlZiwKICAgICAgICAgICAgJFBvc3NpYmxlU3RhdGVIYXNoLT57VmFsdWV9LAogICAgICAgICAgICAiUG9zc2libGUgU3RhdGVzIFRlc3QgJFRlc3ROdW1iZXI6IHwtIG1hdGNoIGRlZmF1bHQgc3RhdGVzIGZyb20gJFN0YXRlIFN0YXRlLiIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBpZiB0aGUgc3RhdGUgbmFtZSBpcyBub3QgcmVwZXRlZAogICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgJFNlY29uZEhhc2hSZWYsCiAgICAgICAgICAgICJQb3NzaWJsZSBTdGF0ZXMgVGVzdCAkVGVzdE51bWJlcjogfC0gc3RhdGVzIGZvcm0gJFN0YXRlIG1hdGNoIG9ubHkgb25jZSIKICAgICAgICApOwogICAgfQoKICAgIHJldHVybjsKfQoKMTsK</File>
        <File Permission="660" Location="scripts/test/ITSMCondition.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCnVzZSBEYXRhOjpEdW1wZXI7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgbWFrZSBwcmVwYXJhdGlvbnMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKbXkgJFRlc3RDb3VudCA9IDE7CgojIGNyZWF0ZSBjb21tb24gb2JqZWN0cwpteSAkQ29uZmlnT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKbXkgJENvbmRpdGlvbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyk7Cm15ICRDaGFuZ2VPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwpteSAkV29ya09yZGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKTsKCiMgZ2V0IGhlbHBlciBvYmplY3QKJEtlcm5lbDo6T00tPk9iamVjdFBhcmFtQWRkKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyA9PiB7CiAgICAgICAgUmVzdG9yZURhdGFiYXNlID0+IDEsCiAgICB9LAopOwpteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiMgdGVzdCBpZiBjaGFuZ2Ugb2JqZWN0IHdhcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseQokU2VsZi0+VHJ1ZSgKICAgICRDaGFuZ2VPYmplY3QsCiAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gJyAtIGNvbnN0cnVjdGlvbiBvZiBjaGFuZ2Ugb2JqZWN0JywKKTsKCiMgdGVzdCBpZiB3b3Jrb3JkZXIgb2JqZWN0IHdhcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseQokU2VsZi0+VHJ1ZSgKICAgICRXb3JrT3JkZXJPYmplY3QsCiAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gJyAtIGNvbnN0cnVjdGlvbiBvZiB3b3Jrb3JkZXIgb2JqZWN0JywKKTsKCiMgdGVzdCBpZiBjb25kaXRpb24gb2JqZWN0IHdhcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseQokU2VsZi0+VHJ1ZSgKICAgICRDb25kaXRpb25PYmplY3QsCiAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gJyAtIGNvbnN0cnVjdGlvbiBvZiBjb25kaXRpb24gb2JqZWN0JywKKTsKCiMgdHVybiBvZmYgU2VuZE5vdGlmaWNhdGlvbnMsIGluIG9yZGVyIHRvIGF2b2lkIGEgbG90IG9mIHVzZWxlc3MgbWFpbHMKbXkgJFNlbmROb3RpZmljYXRpb25zT3JnID0gJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNQ2hhbmdlOjpTZW5kTm90aWZjYXRpb25zJyk7CiRDb25maWdPYmplY3QtPlNldCgKICAgIEtleSAgID0+ICdJVFNNQ2hhbmdlOjpTZW5kTm90aWZpY2F0aW9ucycsCiAgICBWYWx1ZSA9PiAwLAopOwoKIyBkZWZpbmUgbmVlZGVkIHZhcmlhYmxlCm15ICRSYW5kb21JRCA9ICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgdGVzdCBDb25kaXRpb24gQVBJCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiMgZGVmaW5lIHB1YmxpYyBpbnRlcmZhY2UgKGluIGFscGhhYmV0aWNhbCBvcmRlcikKbXkgQE9iamVjdE1ldGhvZHMgPSBxdygKICAgIEF0dHJpYnV0ZUFkZAogICAgQXR0cmlidXRlRGVsZXRlCiAgICBBdHRyaWJ1dGVHZXQKICAgIEF0dHJpYnV0ZUxpc3QKICAgIEF0dHJpYnV0ZUxvb2t1cAogICAgQXR0cmlidXRlVXBkYXRlCiAgICBDb25kaXRpb25BZGQKICAgIENvbmRpdGlvbkRlbGV0ZQogICAgQ29uZGl0aW9uRGVsZXRlQWxsCiAgICBDb25kaXRpb25HZXQKICAgIENvbmRpdGlvbkxpc3QKICAgIENvbmRpdGlvbkxvb2t1cAogICAgQ29uZGl0aW9uTWF0Y2hFeGVjdXRlCiAgICBDb25kaXRpb25NYXRjaEV4ZWN1dGVBbGwKICAgIENvbmRpdGlvblVwZGF0ZQogICAgRXhwcmVzc2lvbkFkZAogICAgRXhwcmVzc2lvbkRlbGV0ZQogICAgRXhwcmVzc2lvbkRlbGV0ZUFsbAogICAgRXhwcmVzc2lvbkdldAogICAgRXhwcmVzc2lvbkxpc3QKICAgIEV4cHJlc3Npb25NYXRjaAogICAgRXhwcmVzc2lvblVwZGF0ZQogICAgT2JqZWN0QWRkCiAgICBPYmplY3REZWxldGUKICAgIE9iamVjdEdldAogICAgT2JqZWN0TGlzdAogICAgT2JqZWN0TG9va3VwCiAgICBPYmplY3RVcGRhdGUKICAgIE9wZXJhdG9yQWRkCiAgICBPcGVyYXRvckRlbGV0ZQogICAgT3BlcmF0b3JFeGVjdXRlCiAgICBPcGVyYXRvckdldAogICAgT3BlcmF0b3JMaXN0CiAgICBPcGVyYXRvckxvb2t1cAogICAgT3BlcmF0b3JVcGRhdGUKKTsKCiMgY2hlY2sgaWYgc3VicyBhcmUgYXZhaWxhYmxlCmZvciBteSAkT2JqZWN0TWV0aG9kIChAT2JqZWN0TWV0aG9kcykgewogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJENvbmRpdGlvbk9iamVjdC0+Y2FuKCRPYmplY3RNZXRob2QpLAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gY2hlY2sgJ2NhbiAkT2JqZWN0TWV0aG9kJyIsCiAgICApOwp9CgojCiMgbWFrZSBzb21lIHByZXBhcmF0aW9ucwojCgojIGtlZXAgdHJhY2sgb2YgYSB0aW1lIGJlZm9yZSBvYmplY3RzIHdlcmUgYWRkZWQsCiMgZm9yIGNvbXBhcmlzb25zIGluIGV4cHJlc3Npb24gbWF0Y2ggdGVzdHMKbXkgJERhdGVUaW1lT2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKbXkgJFN5c3RlbVRpbWVCZWZvcmVBZGRpbmcgPSAkRGF0ZVRpbWVPYmplY3QtPlRvRXBvY2goKSAtIDE7CgojIGNyZWF0ZSBuZXcgY2hhbmdlCm15IEBDaGFuZ2VJRHM7Cm15IEBDaGFuZ2VUaXRsZXM7CkNSRUFURUNIQU5HRToKZm9yIG15ICRDcmVhdGVDaGFuZ2UgKCAwIC4uIDkgKSB7CiAgICBteSAkQ2hhbmdlVGl0bGUgPSAnVW5pdFRlc3RDaGFuZ2UnIC4gJENyZWF0ZUNoYW5nZTsKICAgIG15ICRDaGFuZ2VJRCAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICBDaGFuZ2VUaXRsZSA9PiAkQ2hhbmdlVGl0bGUsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJENoYW5nZUlELAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gQ2hhbmdlQWRkIC0+ICRDaGFuZ2VJRCIsCiAgICApOwoKICAgICMgZG8gbm90IHN0b3JlIGNoYW5nZSBpZCBpZiBhZGQgZmFpbGVkCiAgICBuZXh0IENSRUFURUNIQU5HRSBpZiAhJENoYW5nZUlEOwoKICAgICMgc3RvcmUgY2hhbmdlIGlkIGZvciBmdXJ0aGVyIHVzYWdlIGFuZCBkZWxldGlvbgogICAgcHVzaCBAQ2hhbmdlSURzLCAgICAkQ2hhbmdlSUQ7CiAgICBwdXNoIEBDaGFuZ2VUaXRsZXMsICRDaGFuZ2VUaXRsZTsKfQoKIyBjcmVhdGUgbmV3IHdvcmtvcmRlcnMKbXkgQFdvcmtPcmRlcklEczsKbXkgQFdvcmtPcmRlclRpdGxlczsKQ1JFQVRFV09SS09SREVSOgpmb3IgbXkgJENyZWF0ZVdvcmtPcmRlciAoIDAgLi4gKCAoIDMgKiAoIHNjYWxhciBAQ2hhbmdlSURzICkgKSAtIDEgKSApIHsKICAgIG15ICRXb3JrT3JkZXJUaXRsZSA9ICdVbml0VGVzdFdPJyAuICRDcmVhdGVXb3JrT3JkZXI7CiAgICBteSAkV29ya09yZGVySUQgICAgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgQ2hhbmdlSUQgICAgICAgICA9PiAkQ2hhbmdlSURzWyAoICRDcmVhdGVXb3JrT3JkZXIgJSBzY2FsYXIgQENoYW5nZUlEcyApIF0sCiAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAkV29ya09yZGVyVGl0bGUsCiAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAkRGF0ZVRpbWVPYmplY3QtPlRvU3RyaW5nKCksCiAgICAgICAgUGxhbm5lZEVuZFRpbWUgICA9PiAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgIEVwb2NoID0+ICREYXRlVGltZU9iamVjdC0+VG9FcG9jaCgpICsgMTAwLAogICAgICAgICAgICB9CiAgICAgICAgKS0+VG9TdHJpbmcoKSwKICAgICAgICBBY3R1YWxTdGFydFRpbWUgPT4gJERhdGVUaW1lT2JqZWN0LT5Ub1N0cmluZygpLAogICAgICAgIEFjdHVhbEVuZFRpbWUgICA9PiAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgIEVwb2NoID0+ICREYXRlVGltZU9iamVjdC0+VG9FcG9jaCgpICsgMTAwLAogICAgICAgICAgICB9CiAgICAgICAgKS0+VG9TdHJpbmcoKSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJFdvcmtPcmRlcklELAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAnIC0gV29ya09yZGVyQWRkIChDaGFuZ2VJRDogJwogICAgICAgICAgICAuICRDaGFuZ2VJRHNbICggJENyZWF0ZVdvcmtPcmRlciAlIHNjYWxhciBAQ2hhbmdlSURzICkgXSAuICIpIC0+ICRXb3JrT3JkZXJJRCIsCiAgICApOwoKICAgICMgZG8gbm90IHN0b3JlIHdvcmtvcmRlciBpZCBpZiBhZGQgZmFpbGVkCiAgICBuZXh0IENSRUFURVdPUktPUkRFUiBpZiAhJFdvcmtPcmRlcklEOwoKICAgICMgc3RvcmUgd29ya29yZGVyIGlkIGZvciBmdXJ0aGVyIHVzYWdlIGFuZCBkZWxldGlvbgogICAgcHVzaCBAV29ya09yZGVySURzLCAgICAkV29ya09yZGVySUQ7CiAgICBwdXNoIEBXb3JrT3JkZXJUaXRsZXMsICRXb3JrT3JkZXJUaXRsZTsKfQoKIwojIGNvbmRpdGlvbiB0ZXN0cwojCgojIGNyZWF0ZSBuZXcgY29uZGl0aW9uCm15IEBDb25kaXRpb25JRHM7Cm15ICVDb25kaXRpb25Db3VudDsKQ0hBTkdFSUQ6CmZvciBteSAkQ2hhbmdlSUQgKEBDaGFuZ2VJRHMpIHsKCiAgICAjIGFkZCBzb21lIGNvbmRpdGlvbnMgdG8gZWFjaCBjaGFuZ2UKICAgIENPTkRJVElPTkNPVU5URVI6CiAgICBmb3IgbXkgJENvbmRpdGlvbkNvdW50ZXIgKCAwIC4uIDUgKSB7CgogICAgICAgICMgYnVpbGQgY29uZGl0aW9uIG5hbWUKICAgICAgICBteSAkQ29uZGl0aW9uTmFtZSA9ICJVbml0VGVzdENvbmRpdGlvbk5hbWVfJHtDaGFuZ2VJRH1fIiAuICRDb25kaXRpb25Db3VudGVyIC4gJFJhbmRvbUlEOwoKICAgICAgICAjIGFkZCBhIGNvbmRpdGlvbgogICAgICAgIG15ICRDb25kaXRpb25JRCA9ICRDb25kaXRpb25PYmplY3QtPkNvbmRpdGlvbkFkZCgKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgID0+ICRDb25kaXRpb25OYW1lLAogICAgICAgICAgICBFeHByZXNzaW9uQ29uanVuY3Rpb24gPT4gJ2FsbCcsCiAgICAgICAgICAgIFZhbGlkSUQgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENvbmRpdGlvbklELAogICAgICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIENvbmRpdGlvbkFkZCAtPiBDb25kaXRpb25JRDogJENvbmRpdGlvbklEIiwKICAgICAgICApOwoKICAgICAgICBuZXh0IENPTkRJVElPTkNPVU5URVIgaWYgISRDb25kaXRpb25JRDsKCiAgICAgICAgIyB0ZXN0IGNvbmRpdGlvbiBsb29rdXAgYnkgbmFtZQogICAgICAgIG15ICRMb29rdXBDb25kaXRpb25JRCA9ICRDb25kaXRpb25PYmplY3QtPkNvbmRpdGlvbkxvb2t1cCgKICAgICAgICAgICAgTmFtZSAgICAgPT4gJENvbmRpdGlvbk5hbWUsCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICApOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJExvb2t1cENvbmRpdGlvbklELAogICAgICAgICAgICAkQ29uZGl0aW9uSUQsCiAgICAgICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gQ29uZGl0aW9uTG9va3VwIC0+IE5hbWU6ICRDb25kaXRpb25OYW1lIiwKICAgICAgICApOwoKICAgICAgICAjIHRlc3QgY29uZGl0aW9uIGxvb2t1cCBieSBpZAogICAgICAgIG15ICRMb29rdXBDb25kaXRpb25OYW1lID0gJENvbmRpdGlvbk9iamVjdC0+Q29uZGl0aW9uTG9va3VwKAogICAgICAgICAgICBDb25kaXRpb25JRCA9PiAkQ29uZGl0aW9uSUQsCiAgICAgICAgICAgIENoYW5nZUlEICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICApOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJExvb2t1cENvbmRpdGlvbk5hbWUsCiAgICAgICAgICAgICRDb25kaXRpb25OYW1lLAogICAgICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIENvbmRpdGlvbkxvb2t1cCAtPiBDb25kaXRpb25JRDogJENvbmRpdGlvbklEIiwKICAgICAgICApOwoKICAgICAgICAjIHJlbWVtYmVyIGNoYW5nZSBpZCBmb3IgbGF0ZXIgdGVzdHMKICAgICAgICAkQ29uZGl0aW9uQ291bnR7JENoYW5nZUlEfSsrOwoKICAgICAgICAjIGdldCB0aGUgYWRkZWQgY29uZGl0aW9uCiAgICAgICAgbXkgJENvbmRpdGlvbkRhdGEgPSAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25HZXQoCiAgICAgICAgICAgIENvbmRpdGlvbklEID0+ICRDb25kaXRpb25JRCwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRDb25kaXRpb25EYXRhLT57Q29uZGl0aW9uSUR9LAogICAgICAgICAgICAkQ29uZGl0aW9uSUQsCiAgICAgICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gQ29uZGl0aW9uR2V0IC0+IENvbmRpdGlvbklEOiAkQ29uZGl0aW9uSUQiLAogICAgICAgICk7CgogICAgICAgICMgcmVtZW1iZXIgYWxsIGNyZWF0ZWQgY29uZGl0aW9ucyBpZHMKICAgICAgICBwdXNoIEBDb25kaXRpb25JRHMsICRDb25kaXRpb25JRDsKCiAgICAgICAgIyBjb25kaXRpb24gdXBkYXRlIHRlc3RzCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25VcGRhdGUoCiAgICAgICAgICAgIENvbmRpdGlvbklEICAgICAgICAgICA9PiAkQ29uZGl0aW9uSUQsCiAgICAgICAgICAgIEV4cHJlc3Npb25Db25qdW5jdGlvbiA9PiAnYWxsJywKICAgICAgICAgICAgQ29tbWVudCAgICAgICAgICAgICAgID0+ICdBbiB1cGRhdGVkIGNvbW1lbnQnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gQ29uZGl0aW9uVXBkYXRlIC0+IENvbmRpdGlvbklEOiAkQ29uZGl0aW9uSUQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRoZSB1cGRhdGVkIGNvbmRpdGlvbgogICAgICAgICRDb25kaXRpb25EYXRhID0gJENvbmRpdGlvbk9iamVjdC0+Q29uZGl0aW9uR2V0KAogICAgICAgICAgICBDb25kaXRpb25JRCA9PiAkQ29uZGl0aW9uSUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkQ29uZGl0aW9uRGF0YS0+e0NvbW1lbnR9LAogICAgICAgICAgICAnQW4gdXBkYXRlZCBjb21tZW50JywKICAgICAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBDb25kaXRpb25HZXQgLT4gQ29uZGl0aW9uSUQ6ICRDb25kaXRpb25JRCIsCiAgICAgICAgKTsKCiAgICAgICAgIyB0cnkgdG8gYWRkIHRoZSBzYW1lIGNvbmRpdGlvbiBhZ2FpbiAoQ2hhbmdlSUQgYW5kIE5hbWUgYXJlIHRoZSBzYW1lKSAobXVzdCBmYWlsKQogICAgICAgICRDb25kaXRpb25JRCA9ICRDb25kaXRpb25PYmplY3QtPkNvbmRpdGlvbkFkZCgKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgID0+ICRDb25kaXRpb25OYW1lLAogICAgICAgICAgICBFeHByZXNzaW9uQ29uanVuY3Rpb24gPT4gJ2FsbCcsCiAgICAgICAgICAgIFZhbGlkSUQgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgICAgICRDb25kaXRpb25JRCwKICAgICAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBDb25kaXRpb25BZGQiLAogICAgICAgICk7CgogICAgICAgICMganVzdCBpbiBjYXNlIGlmIHRoZSBjb25kaXRpb24gY291bGQgYmUgYWRkZWQKICAgICAgICBpZiAoJENvbmRpdGlvbklEKSB7CiAgICAgICAgICAgIHB1c2ggQENvbmRpdGlvbklEcywgJENvbmRpdGlvbklEOwogICAgICAgIH0KICAgIH0KfQoKIyBjb25kaXRpb24gbGlzdCB0ZXN0CkNIQU5HRUlEOgpmb3IgbXkgJENoYW5nZUlEICggc29ydCBrZXlzICVDb25kaXRpb25Db3VudCApIHsKCiAgICAjIGdldCBjb25kaXRpb24gbGlzdAogICAgbXkgJENvbmRpdGlvbklEc1JlZiA9ICRDb25kaXRpb25PYmplY3QtPkNvbmRpdGlvbkxpc3QoCiAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgIFZhbGlkICAgID0+IDEsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgIHNjYWxhciBAeyRDb25kaXRpb25JRHNSZWZ9LAogICAgICAgICRDb25kaXRpb25Db3VudHskQ2hhbmdlSUR9LAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gQ29uZGl0aW9uTGlzdCAtPiBOdW1iZXIgb2YgY29uZGl0aW9ucyBmb3IgQ2hhbmdlSUQ6ICRDaGFuZ2VJRCIsCiAgICApOwoKICAgICMgaWYgbm8gY29uZGl0aW9ucyBleGlzdCBmb3IgdGhpcyBjaGFuZ2UKICAgIG5leHQgQ0hBTkdFSUQgaWYgIUB7JENvbmRpdGlvbklEc1JlZn07CgogICAgIyBzZXQgdGhlIGZpcnN0IGNvbmRpdGlvbiBvZiB0aGUgY3VycmVudCBjaGFuZ2UgaW52YWxpZAogICAgbXkgJFN1Y2Nlc3MgPSAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25VcGRhdGUoCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gJENvbmRpdGlvbklEc1JlZi0+WzBdLAogICAgICAgIFZhbGlkSUQgICAgID0+IDIsICAgICAgICAgICAgICAgICAgICAgICAjIGludmFsaWQKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkU3VjY2VzcywKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIENvbmRpdGlvblVwZGF0ZSAtPiBDb25kaXRpb25JRDogJENvbmRpdGlvbklEc1JlZi0+WzBdIiwKICAgICk7CgogICAgIyBnZXQgY29uZGl0aW9uIGxpc3QgYWdhaW4KICAgICRDb25kaXRpb25JRHNSZWYgPSAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25MaXN0KAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBWYWxpZCAgICA9PiAxLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKICAgICRTZWxmLT5JcygKICAgICAgICBzY2FsYXIgQHskQ29uZGl0aW9uSURzUmVmfSwKICAgICAgICAkQ29uZGl0aW9uQ291bnR7JENoYW5nZUlEfSAtIDEsCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBDb25kaXRpb25MaXN0IC0+IE51bWJlciBvZiBjb25kaXRpb25zIGZvciBDaGFuZ2VJRDogJENoYW5nZUlEIiwKICAgICk7CgogICAgIyBnZXQgY29uZGl0aW9uIGxpc3QgYWdhaW4sIGJ1dCBub3cgd2l0aCBhbHNvIHRoZSBpbnZhbGlkIGNvbmRpdGlvbnMKICAgICRDb25kaXRpb25JRHNSZWYgPSAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25MaXN0KAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBWYWxpZCAgICA9PiAwLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKICAgICRTZWxmLT5JcygKICAgICAgICBzY2FsYXIgQHskQ29uZGl0aW9uSURzUmVmfSwKICAgICAgICAkQ29uZGl0aW9uQ291bnR7JENoYW5nZUlEfSwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIENvbmRpdGlvbkxpc3QgLT4gTnVtYmVyIG9mIGNvbmRpdGlvbnMgZm9yIENoYW5nZUlEOiAkQ2hhbmdlSUQiLAogICAgKTsKCn0KCiMKIyBjb25kaXRpb24gb2JqZWN0IHRlc3RzCiMKCiMgY2hlY2sgY29uZGl0aW9uIHN1Yi1vYmplY3RzCmZvciBteSAkQ29uZGl0aW9uU3ViT2JqZWN0TmFtZSAocXcoSVRTTUNoYW5nZSBJVFNNV29ya09yZGVyKSkgewoKICAgICMgbWFrZSBsb29rdXAgdG8gZ2V0IG9iamVjdCBpZAogICAgbXkgJE9iamVjdElEID0gJENvbmRpdGlvbk9iamVjdC0+T2JqZWN0TG9va3VwKAogICAgICAgIE5hbWUgICA9PiAkQ29uZGl0aW9uU3ViT2JqZWN0TmFtZSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICkgfHwgJyc7CgogICAgIyBjaGVjayBvbiByZXR1cm4gdmFsdWUKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRPYmplY3RJRCwKICAgICAgICAnVGVzdCAnCiAgICAgICAgICAgIC4gJFRlc3RDb3VudCsrCiAgICAgICAgICAgIC4gIiAtIE9iamVjdExvb2t1cCBvbiAnJENvbmRpdGlvblN1Yk9iamVjdE5hbWUnIC0+IE9iamVjdElEOiAkT2JqZWN0SUQiLAogICAgKTsKCiAgICAjIGdldCBvYmplY3QgZGF0YSB3aXRoIG9iamVjdCBpZAogICAgbXkgJE9iamVjdERhdGEgPSAkQ29uZGl0aW9uT2JqZWN0LT5PYmplY3RHZXQoCiAgICAgICAgT2JqZWN0SUQgPT4gJE9iamVjdElELAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKICAgICMgY2hlY2sgcmV0dXJuIHBhcmFtZXRlcnMKICAgICRTZWxmLT5JcygKICAgICAgICAkT2JqZWN0RGF0YS0+e05hbWV9LAogICAgICAgICRDb25kaXRpb25TdWJPYmplY3ROYW1lLAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAnIC0gT2JqZWN0R2V0KCkgbmFtZSBjaGVjaycsCiAgICApOwp9CgojIGNoZWNrIGZvciBvYmplY3QgYWRkCm15IEBDb25kaXRpb25PYmplY3RDcmVhdGVkOwpmb3IgbXkgJENvdW50ZXIgKCAxIC4uIDMgKSB7CgogICAgIyBhZGQgbmV3IG9iamVjdHMKICAgIG15ICRPYmplY3RJRCA9ICRDb25kaXRpb25PYmplY3QtPk9iamVjdEFkZCgKICAgICAgICBOYW1lICAgPT4gJ09iamVjdE5hbWUnIC4gJENvdW50ZXIgLiAkUmFuZG9tSUQsCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgICMgY2hlY2sgb24gcmV0dXJuIHZhbHVlCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkT2JqZWN0SUQsCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBPYmplY3RBZGQgLT4gT2JqZWN0SUQ6ICRPYmplY3RJRCIsCiAgICApOwoKICAgICMgc2F2ZSBvYmplY3QgaWQgZm9yIGRlbGV0ZSB0ZXN0CiAgICBwdXNoIEBDb25kaXRpb25PYmplY3RDcmVhdGVkLCAkT2JqZWN0SUQ7Cn0KCiMgY2hlY2sgY29uZGl0aW9uIG9iamVjdCBsaXN0Cm15ICRPYmplY3RMaXN0ID0gJENvbmRpdGlvbk9iamVjdC0+T2JqZWN0TGlzdCgKICAgIFVzZXJJRCA9PiAxLAopOwoKIyBjaGVjayBmb3Igb2JqZWN0IGxpc3QKJFNlbGYtPlRydWUoCiAgICAkT2JqZWN0TGlzdCwKICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gT2JqZWN0TGlzdCBpcyBub3QgZW1wdHkiLAopOwoKIyBjaGVjayBmb3Igb2JqZWN0IGxpc3QgYXMgaGFzaCByZWYKJFNlbGYtPklzKAogICAgcmVmICRPYmplY3RMaXN0LAogICAgJ0hBU0gnLAogICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBPYmplY3RMaXN0IHR5cGUiLAopOwoKIyBjaGVjayB1cGRhdGUgb2YgY29uZGl0aW9uIG9iamVjdApteSAkQ29uZGl0aW9uT2JqZWN0TmV3TmFtZSA9ICdVbml0VGVzdFVwZGF0ZScgLiAkUmFuZG9tSUQ7CiRTZWxmLT5UcnVlKAogICAgJENvbmRpdGlvbk9iamVjdC0+T2JqZWN0VXBkYXRlKAogICAgICAgIE9iamVjdElEID0+ICRDb25kaXRpb25PYmplY3RDcmVhdGVkWzBdLAogICAgICAgIE5hbWUgICAgID0+ICRDb25kaXRpb25PYmplY3ROZXdOYW1lLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApLAogICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBPYmplY3RVcGRhdGUiLAopOwpteSAkQ29uZGl0aW9uT2JqZWN0VXBkYXRlID0gJENvbmRpdGlvbk9iamVjdC0+T2JqZWN0R2V0KAogICAgT2JqZWN0SUQgPT4gJENvbmRpdGlvbk9iamVjdENyZWF0ZWRbMF0sCiAgICBVc2VySUQgICA9PiAxLAopOwokU2VsZi0+SXMoCiAgICAkQ29uZGl0aW9uT2JqZWN0VXBkYXRlLT57TmFtZX0sCiAgICAkQ29uZGl0aW9uT2JqZWN0TmV3TmFtZSwKICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gT2JqZWN0VXBkYXRlIHZlcmlmeSB1cGRhdGUiLAopOwoKIyBjaGVjayBmb3Igb2JqZWN0IGRlbGV0ZQpmb3IgbXkgJE9iamVjdElEIChAQ29uZGl0aW9uT2JqZWN0Q3JlYXRlZCkgewogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJENvbmRpdGlvbk9iamVjdC0+T2JqZWN0RGVsZXRlKAogICAgICAgICAgICBPYmplY3RJRCA9PiAkT2JqZWN0SUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKSwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIE9iamVjdERlbGV0ZSAtPiBPYmplY3RJRDogJE9iamVjdElEIiwKICAgICk7Cn0KCiMKIyBjb25kaXRpb24gYXR0cmlidXRlcyB0ZXN0cwojCgojIGNoZWNrIGZvciBkZWZhdWx0IGNvbmRpdGlvbiBhdHRyaWJ1dGVzCm15IEBDb25kaXRpb25BdHRyaWJ1dGVzID0gcXcoCiAgICBDaGFuZ2VUaXRsZSAgICAgIENhdGVnb3J5SUQgICAgICBJbXBhY3RJRCBQcmlvcml0eUlEIFBsYW5uZWRFZmZvcnQgICAgQWNjb3VudGVkVGltZQogICAgQ2hhbmdlTWFuYWdlcklEICBDaGFuZ2VCdWlsZGVySUQgV29ya09yZGVyQWdlbnRJRAogICAgV29ya09yZGVyVGl0bGUgICBXb3JrT3JkZXJOdW1iZXIgV29ya09yZGVyU3RhdGVJRCAgICBXb3JrT3JkZXJUeXBlSUQKICAgIFBsYW5uZWRTdGFydFRpbWUgUGxhbm5lZEVuZFRpbWUgIEFjdHVhbFN0YXJ0VGltZSAgICAgQWN0dWFsRW5kVGltZQopOwoKIyBjaGVjayBjb25kaXRpb24gYXR0cmlidXRlcwpmb3IgbXkgJENvbmRpdGlvbkF0dHJpYnV0ZSAoQENvbmRpdGlvbkF0dHJpYnV0ZXMpIHsKCiAgICAjIG1ha2UgbG9va3VwIHRvIGdldCBhdHRyaWJ1dGUgaWQKICAgIG15ICRBdHRyaWJ1dGVJRCA9ICRDb25kaXRpb25PYmplY3QtPkF0dHJpYnV0ZUxvb2t1cCgKICAgICAgICBOYW1lID0+ICRDb25kaXRpb25BdHRyaWJ1dGUsCiAgICApIHx8ICcnOwoKICAgICMgY2hlY2sgb24gcmV0dXJuIHZhbHVlCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQXR0cmlidXRlSUQsCiAgICAgICAgJ1Rlc3QgJwogICAgICAgICAgICAuICRUZXN0Q291bnQrKwogICAgICAgICAgICAuICIgLSBBdHRyaWJ1dGVMb29rdXAgb24gJyRDb25kaXRpb25BdHRyaWJ1dGUnIC0+IEF0dHJpYnV0ZUlEOiAkQXR0cmlidXRlSUQnIiwKICAgICk7CgogICAgIyBnZXQgYXR0cmlidXRlIGRhdGEgd2l0aCBhdHRyaWJ1dGUgaWQKICAgIG15ICRBdHRyaWJ1dGVEYXRhID0gJENvbmRpdGlvbk9iamVjdC0+QXR0cmlidXRlR2V0KAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgQXR0cmlidXRlSUQgPT4gJEF0dHJpYnV0ZUlELAogICAgKTsKCiAgICAjIGNoZWNrIHJldHVybiBwYXJhbWV0ZXJzCiAgICAkU2VsZi0+SXMoCiAgICAgICAgJEF0dHJpYnV0ZURhdGEtPntOYW1lfSwKICAgICAgICAkQ29uZGl0aW9uQXR0cmlidXRlLAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAnIC0gQXR0cmlidXRlR2V0KCkgbmFtZSBjaGVjaycsCiAgICApOwp9CgojIGNoZWNrIGZvciBvYmplY3QgYWRkCm15IEBDb25kaXRpb25BdHRyaWJ1dGVDcmVhdGVkOwpmb3IgbXkgJENvdW50ZXIgKCAxIC4uIDMgKSB7CgogICAgIyBhZGQgbmV3IG9iamVjdHMKICAgIG15ICRBdHRyaWJ1dGVJRCA9ICRDb25kaXRpb25PYmplY3QtPkF0dHJpYnV0ZUFkZCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICBOYW1lICAgPT4gJ0F0dHJpYnV0ZU5hbWUnIC4gJENvdW50ZXIgLiAkUmFuZG9tSUQsCiAgICApOwoKICAgICMgY2hlY2sgb24gcmV0dXJuIHZhbHVlCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQXR0cmlidXRlSUQsCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBBdHRyaWJ1dGVBZGQgLT4gQXR0cmlidXRlSUQ6ICRBdHRyaWJ1dGVJRCIsCiAgICApOwoKICAgICMgc2F2ZSBvYmplY3QgaXQgZm9yIGRlbGV0ZSB0ZXN0CiAgICBwdXNoIEBDb25kaXRpb25BdHRyaWJ1dGVDcmVhdGVkLCAkQXR0cmlidXRlSUQ7Cn0KCiMgY2hlY2sgY29uZGl0aW9uIGF0dHJpYnV0ZSBsaXN0Cm15ICRBdHRyaWJ1dGVMaXN0ID0gJENvbmRpdGlvbk9iamVjdC0+QXR0cmlidXRlTGlzdCgKICAgIFVzZXJJRCA9PiAxLAopOwoKIyBjaGVjayBmb3IgYXR0cmlidXRlIGxpc3QKJFNlbGYtPlRydWUoCiAgICAkQXR0cmlidXRlTGlzdCwKICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gQXR0cmlidXRlTGlzdCBpcyBub3QgZW1wdHkiLAopOwoKIyBjaGVjayBmb3IgYXR0cmlidXRlIGxpc3QgYXMgaGFzaCByZWYKJFNlbGYtPklzKAogICAgcmVmICRBdHRyaWJ1dGVMaXN0LAogICAgJ0hBU0gnLAogICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBBdHRyaWJ1dGVMaXN0IHR5cGUiLAopOwoKIyBjaGVjayB1cGRhdGUgb2YgYXR0cmlidXRlIG9iamVjdApteSAkQ29uZGl0aW9uQXR0cmlidXRlTmV3TmFtZSA9ICdVbml0VGVzdFVwZGF0ZScgLiAkUmFuZG9tSUQ7CiRTZWxmLT5UcnVlKAogICAgJENvbmRpdGlvbk9iamVjdC0+QXR0cmlidXRlVXBkYXRlKAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgQXR0cmlidXRlSUQgPT4gJENvbmRpdGlvbkF0dHJpYnV0ZUNyZWF0ZWRbMF0sCiAgICAgICAgTmFtZSAgICAgICAgPT4gJENvbmRpdGlvbkF0dHJpYnV0ZU5ld05hbWUsCiAgICApLAogICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBBdHRyaWJ1dGVVcGRhdGUiLAopOwpteSAkQ29uZGl0aW9uQXR0cmlidXRlVXBkYXRlID0gJENvbmRpdGlvbk9iamVjdC0+QXR0cmlidXRlR2V0KAogICAgVXNlcklEICAgICAgPT4gMSwKICAgIEF0dHJpYnV0ZUlEID0+ICRDb25kaXRpb25BdHRyaWJ1dGVDcmVhdGVkWzBdLAopOwokU2VsZi0+SXMoCiAgICAkQ29uZGl0aW9uQXR0cmlidXRlVXBkYXRlLT57TmFtZX0sCiAgICAkQ29uZGl0aW9uQXR0cmlidXRlTmV3TmFtZSwKICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gQXR0cmlidXRlVXBkYXRlIHZlcmlmeSB1cGRhdGUiLAopOwoKIyBjaGVjayBmb3IgYXR0cmlidXRlIGRlbGV0ZQpmb3IgbXkgJEF0dHJpYnV0ZUlEIChAQ29uZGl0aW9uQXR0cmlidXRlQ3JlYXRlZCkgewogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJENvbmRpdGlvbk9iamVjdC0+QXR0cmlidXRlRGVsZXRlKAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICBBdHRyaWJ1dGVJRCA9PiAkQXR0cmlidXRlSUQsCiAgICAgICAgKSwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIEF0dHJpYnV0ZURlbGV0ZSAtPiBBdHRyaWJ1dGVJRDogJEF0dHJpYnV0ZUlEIiwKICAgICk7Cn0KCiMKIyBjb25kaXRpb24gb3BlcmF0b3IgdGVzdHMKIwoKIyBjaGVjayBmb3IgZGVmYXVsdCBjb25kaXRpb24gb3BlcmF0b3JzCm15IEBDb25kaXRpb25PcGVyYXRvcnMgPSAoCgogICAgIyBjb21tb24gbWF0Y2hpbmcKICAgICdpcycsICdpcyBub3QnLCAnaXMgZW1wdHknLCAnaXMgbm90IGVtcHR5JywKCiAgICAjIGRpZ2l0IG1hdGNoaW5nCiAgICAnaXMgZ3JlYXRlciB0aGFuJywgJ2lzIGxlc3MgdGhhbicsCgogICAgIyBkYXRlIG1hdGNoaW5nCiAgICAnaXMgYmVmb3JlJywgJ2lzIGFmdGVyJywKCiAgICAjIHN0cmluZyBtYXRjaGluZwogICAgJ2NvbnRhaW5zJywgJ25vdCBjb250YWlucycsICdiZWdpbnMgd2l0aCcsICdlbmRzIHdpdGgnLAoKICAgICMgYWN0aW9uIG9wZXJhdG9yCiAgICAnc2V0JywgJ2xvY2snLAopOwoKIyBjaGVjayBjb25kaXRpb24gb3BlcmF0b3JzCmZvciBteSAkQ29uZGl0aW9uT3BlcmF0b3IgKEBDb25kaXRpb25PcGVyYXRvcnMpIHsKCiAgICAjIG1ha2UgbG9va3VwIHRvIGdldCBvcGVyYXRvciBpZAogICAgbXkgJE9wZXJhdG9ySUQgPSAkQ29uZGl0aW9uT2JqZWN0LT5PcGVyYXRvckxvb2t1cCggTmFtZSA9PiAkQ29uZGl0aW9uT3BlcmF0b3IgKSB8fCAnJzsKCiAgICAjIGNoZWNrIG9uIHJldHVybiB2YWx1ZQogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJE9wZXJhdG9ySUQsCiAgICAgICAgJ1Rlc3QgJwogICAgICAgICAgICAuICRUZXN0Q291bnQrKwogICAgICAgICAgICAuICIgLSBPcGVyYXRvckxvb2t1cCBvbiAnJENvbmRpdGlvbk9wZXJhdG9yJyAtPiBPcGVyYXRvcklEOiAkT3BlcmF0b3JJRCIsCiAgICApOwoKICAgICMgZ2V0IG9wZXJhdG9yIGRhdGEgd2l0aCBvcGVyYXRvciBpZAogICAgbXkgJE9wZXJhdG9yRGF0YSA9ICRDb25kaXRpb25PYmplY3QtPk9wZXJhdG9yR2V0KAogICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICBPcGVyYXRvcklEID0+ICRPcGVyYXRvcklELAogICAgKTsKCiAgICAjIGNoZWNrIHJldHVybiBwYXJhbWV0ZXJzCiAgICAkU2VsZi0+SXMoCiAgICAgICAgJE9wZXJhdG9yRGF0YS0+e05hbWV9LAogICAgICAgICRDb25kaXRpb25PcGVyYXRvciwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gJyAtIE9wZXJhdG9yR2V0KCkgbmFtZSBjaGVjaycsCiAgICApOwp9CgojIGNoZWNrIGZvciBvYmplY3QgYWRkCm15IEBDb25kaXRpb25PcGVyYXRvckNyZWF0ZWQ7CmZvciBteSAkQ291bnRlciAoIDEgLi4gMyApIHsKCiAgICAjIGFkZCBuZXcgb2JqZWN0cwogICAgbXkgJE9wZXJhdG9ySUQgPSAkQ29uZGl0aW9uT2JqZWN0LT5PcGVyYXRvckFkZCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICBOYW1lICAgPT4gJ09wZXJhdG9yTmFtZScgLiAkQ291bnRlciAuICRSYW5kb21JRCwKICAgICk7CgogICAgIyBjaGVjayBvbiByZXR1cm4gdmFsdWUKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRPcGVyYXRvcklELAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gT3BlcmF0b3JBZGQgLT4gT3BlcmF0b3JJRDogJE9wZXJhdG9ySUQiLAogICAgKTsKCiAgICAjIHNhdmUgb2JqZWN0IGl0IGZvciBkZWxldGUgdGVzdAogICAgcHVzaCBAQ29uZGl0aW9uT3BlcmF0b3JDcmVhdGVkLCAkT3BlcmF0b3JJRDsKfQoKIyBjaGVjayBjb25kaXRpb24gb3BlcmF0b3IgbGlzdApteSAkT3BlcmF0b3JMaXN0ID0gJENvbmRpdGlvbk9iamVjdC0+T3BlcmF0b3JMaXN0KAogICAgVXNlcklEID0+IDEsCik7CgojIGNoZWNrIGZvciBvcGVyYXRvciBsaXN0CiRTZWxmLT5UcnVlKAogICAgJE9wZXJhdG9yTGlzdCwKICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gT3BlcmF0b3JMaXN0IGlzIG5vdCBlbXB0eSIsCik7CgojIGNoZWNrIGZvciBvcGVyYXRvciBsaXN0IGFzIGhhc2ggcmVmCiRTZWxmLT5JcygKICAgIHJlZiAkT3BlcmF0b3JMaXN0LAogICAgJ0hBU0gnLAogICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBPcGVyYXRvckxpc3QgdHlwZSIsCik7CgojIGNoZWNrIHVwZGF0ZSBvZiBvcGVyYXRvciBvYmplY3QKbXkgJENvbmRpdGlvbk9wZXJhdG9yTmV3TmFtZSA9ICdVbml0VGVzdFVwZGF0ZScgLiAkUmFuZG9tSUQ7CiRTZWxmLT5UcnVlKAogICAgJENvbmRpdGlvbk9iamVjdC0+T3BlcmF0b3JVcGRhdGUoCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgIE9wZXJhdG9ySUQgPT4gJENvbmRpdGlvbk9wZXJhdG9yQ3JlYXRlZFswXSwKICAgICAgICBOYW1lICAgICAgID0+ICRDb25kaXRpb25PcGVyYXRvck5ld05hbWUsCiAgICApLAogICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBPcGVyYXRvclVwZGF0ZSIsCik7Cm15ICRDb25kaXRpb25PcGVyYXRvclVwZGF0ZSA9ICRDb25kaXRpb25PYmplY3QtPk9wZXJhdG9yR2V0KAogICAgVXNlcklEICAgICA9PiAxLAogICAgT3BlcmF0b3JJRCA9PiAkQ29uZGl0aW9uT3BlcmF0b3JDcmVhdGVkWzBdLAopOwokU2VsZi0+SXMoCiAgICAkQ29uZGl0aW9uT3BlcmF0b3JVcGRhdGUtPntOYW1lfSwKICAgICRDb25kaXRpb25PcGVyYXRvck5ld05hbWUsCiAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIE9wZXJhdG9yVXBkYXRlIHZlcmlmeSB1cGRhdGUiLAopOwoKIyBjaGVjayBmb3Igb3BlcmF0b3IgZGVsZXRlCmZvciBteSAkT3BlcmF0b3JJRCAoQENvbmRpdGlvbk9wZXJhdG9yQ3JlYXRlZCkgewogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJENvbmRpdGlvbk9iamVjdC0+T3BlcmF0b3JEZWxldGUoCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgT3BlcmF0b3JJRCA9PiAkT3BlcmF0b3JJRCwKICAgICAgICApLAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gT3BlcmF0b3JEZWxldGUgLT4gT3BlcmF0b3JJRDogJE9wZXJhdG9ySUQiLAogICAgKTsKfQoKIwojIGNvbmRpdGlvbiBleHByZXNzaW9uIHRlc3RzCiMKCiMgY2hlY2sgZm9yIGRlZmF1bHQgY29uZGl0aW9uIGV4cHJlc3Npb25zCm15IEBFeHByZXNzaW9uVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTWF0Y2hTdWNjZXNzID0+IDAsCiAgICAgICAgU291cmNlRGF0YSAgID0+IHsKICAgICAgICAgICAgRXhwcmVzc2lvbkFkZCA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3RJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0TG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ2hhbmdlVGl0bGUnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgT3BlcmF0b3JJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT3BlcmF0b3JMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdpcycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCAgPT4gJENvbmRpdGlvbklEc1swXSwKICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgICA9PiAkQ2hhbmdlSURzWzBdLAogICAgICAgICAgICAgICAgQ29tcGFyZVZhbHVlID0+ICdEdW1teUNvbXBhcmVWYWx1ZTEnLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgU291cmNlRGF0YSA9PiB7CiAgICAgICAgICAgIEV4cHJlc3Npb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NoYW5nZU1hbmFnZXJJRCcsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2lzJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkQ29uZGl0aW9uSURzWzBdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRDaGFuZ2VJRHNbMF0sCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gJ0R1bW15Q29tcGFyZVZhbHVlMScsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBTb3VyY2VEYXRhID0+IHsKICAgICAgICAgICAgRXhwcmVzc2lvbkFkZCA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3RJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0TG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnV29ya09yZGVyVGl0bGUnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgT3BlcmF0b3JJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT3BlcmF0b3JMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdpcyBub3QnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgICMgc3RhdGljIGZpZWxkcwogICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgID0+ICRDb25kaXRpb25JRHNbMV0sCiAgICAgICAgICAgICAgICBTZWxlY3RvciAgICAgPT4gJFdvcmtPcmRlcklEc1sxXSwKICAgICAgICAgICAgICAgIENvbXBhcmVWYWx1ZSA9PiAnRHVtbXlDb21wYXJlVmFsdWUyJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBFeHByZXNzaW9uVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDaGFuZ2VUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2lzJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgICA9PiAkQ2hhbmdlSURzWzBdLAogICAgICAgICAgICAgICAgQ29tcGFyZVZhbHVlID0+ICdOZXdEdW1teUNvbXBhcmVWYWx1ZScgLiAkUmFuZG9tSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBNYXRjaFN1Y2Nlc3MgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICAgPT4gewogICAgICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdXb3JrT3JkZXJUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2lzIG5vdCcsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCAgPT4gJENvbmRpdGlvbklEc1swXSwKICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgICA9PiAkV29ya09yZGVySURzWzFdLAogICAgICAgICAgICAgICAgQ29tcGFyZVZhbHVlID0+ICRXb3JrT3JkZXJUaXRsZXNbMF0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgRXhwcmVzc2lvblVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBTb3VyY2VEYXRhID0+IHsKICAgICAgICAgICAgRXhwcmVzc2lvbkFkZCA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3RJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0TG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUGxhbm5lZFN0YXJ0VGltZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2lzIGdyZWF0ZXIgdGhhbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCAgPT4gJENvbmRpdGlvbklEc1sxXSwKICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgICA9PiAkQ2hhbmdlSURzWzBdLAogICAgICAgICAgICAgICAgQ29tcGFyZVZhbHVlID0+ICdEdW1teUNvbXBhcmVWYWx1ZTInLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEV4cHJlc3Npb25VcGRhdGUgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgICMgc3RhdGljIGZpZWxkcwogICAgICAgICAgICAgICAgU2VsZWN0b3IgPT4gJFdvcmtPcmRlcklEc1sxXSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTWF0Y2hTdWNjZXNzID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgID0+IHsKICAgICAgICAgICAgRXhwcmVzc2lvbkFkZCA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3RJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0TG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ2hhbmdlVGl0bGUnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgT3BlcmF0b3JJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT3BlcmF0b3JMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdpcycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCAgPT4gJENvbmRpdGlvbklEc1swXSwKICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgICA9PiAkQ2hhbmdlSURzWzBdLAogICAgICAgICAgICAgICAgQ29tcGFyZVZhbHVlID0+ICRDaGFuZ2VUaXRsZXNbMF0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBNYXRjaFN1Y2Nlc3MgPT4gMCwKICAgICAgICBTb3VyY2VEYXRhICAgPT4gewogICAgICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDaGFuZ2VUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2lzIG5vdCcsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCAgPT4gJENvbmRpdGlvbklEc1swXSwKICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgICA9PiAkQ2hhbmdlSURzWzBdLAogICAgICAgICAgICAgICAgQ29tcGFyZVZhbHVlID0+ICRDaGFuZ2VUaXRsZXNbMF0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBNYXRjaFN1Y2Nlc3MgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICAgPT4gewogICAgICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDaGFuZ2VUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2lzIG5vdCcsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCAgPT4gJENvbmRpdGlvbklEc1swXSwKICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgICA9PiAkQ2hhbmdlSURzWzBdLAogICAgICAgICAgICAgICAgQ29tcGFyZVZhbHVlID0+ICRDaGFuZ2VUaXRsZXNbMF0gLiAkUmFuZG9tSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBNYXRjaFN1Y2Nlc3MgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICAgPT4gewogICAgICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdXb3JrT3JkZXJUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2lzJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkQ29uZGl0aW9uSURzWzBdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRXb3JrT3JkZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gJFdvcmtPcmRlclRpdGxlc1swXSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE1hdGNoU3VjY2VzcyA9PiAwLAogICAgICAgIFNvdXJjZURhdGEgICA9PiB7CiAgICAgICAgICAgIEV4cHJlc3Npb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1dvcmtPcmRlclRpdGxlJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIE9wZXJhdG9ySUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdG9yTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnaXMnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgICMgc3RhdGljIGZpZWxkcwogICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgID0+ICRDb25kaXRpb25JRHNbMl0sCiAgICAgICAgICAgICAgICBTZWxlY3RvciAgICAgPT4gJ2FsbCcsCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gJFdvcmtPcmRlclRpdGxlc1s4XSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE1hdGNoU3VjY2VzcyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgICA9PiB7CiAgICAgICAgICAgIEV4cHJlc3Npb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1dvcmtPcmRlclRpdGxlJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIE9wZXJhdG9ySUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdG9yTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnaXMnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgICMgc3RhdGljIGZpZWxkcwogICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgID0+ICRDb25kaXRpb25JRHNbMl0sCiAgICAgICAgICAgICAgICBTZWxlY3RvciAgICAgPT4gJ2FueScsCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gJFdvcmtPcmRlclRpdGxlc1swXSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE1hdGNoU3VjY2VzcyA9PiAwLAogICAgICAgIFNvdXJjZURhdGEgICA9PiB7CiAgICAgICAgICAgIEV4cHJlc3Npb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1dvcmtPcmRlclRpdGxlJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIE9wZXJhdG9ySUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdG9yTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnaXMgZW1wdHknLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgICMgc3RhdGljIGZpZWxkcwogICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgID0+ICRDb25kaXRpb25JRHNbMl0sCiAgICAgICAgICAgICAgICBTZWxlY3RvciAgICAgPT4gJFdvcmtPcmRlcklEc1swXSwKICAgICAgICAgICAgICAgIENvbXBhcmVWYWx1ZSA9PiAkV29ya09yZGVyVGl0bGVzWzBdLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTWF0Y2hTdWNjZXNzID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgID0+IHsKICAgICAgICAgICAgRXhwcmVzc2lvbkFkZCA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3RJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0TG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnV29ya09yZGVyVGl0bGUnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgT3BlcmF0b3JJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT3BlcmF0b3JMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdpcyBub3QgZW1wdHknLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgICMgc3RhdGljIGZpZWxkcwogICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgID0+ICRDb25kaXRpb25JRHNbMl0sCiAgICAgICAgICAgICAgICBTZWxlY3RvciAgICAgPT4gJFdvcmtPcmRlcklEc1swXSwKICAgICAgICAgICAgICAgIENvbXBhcmVWYWx1ZSA9PiAkV29ya09yZGVyVGl0bGVzWzBdLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTWF0Y2hTdWNjZXNzID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgID0+IHsKICAgICAgICAgICAgRXhwcmVzc2lvbkFkZCA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3RJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0TG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnV29ya09yZGVyTnVtYmVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIE9wZXJhdG9ySUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdG9yTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnaXMgZ3JlYXRlciB0aGFuJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkQ29uZGl0aW9uSURzWzJdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRXb3JrT3JkZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gMCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE1hdGNoU3VjY2VzcyA9PiAwLAogICAgICAgIFNvdXJjZURhdGEgICA9PiB7CiAgICAgICAgICAgIEV4cHJlc3Npb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1dvcmtPcmRlck51bWJlcicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2lzIGdyZWF0ZXIgdGhhbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCAgPT4gJENvbmRpdGlvbklEc1syXSwKICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgICA9PiAkV29ya09yZGVySURzWzBdLAogICAgICAgICAgICAgICAgQ29tcGFyZVZhbHVlID0+IDFfMDAwXzAwMCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE1hdGNoU3VjY2VzcyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgICA9PiB7CiAgICAgICAgICAgIEV4cHJlc3Npb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1dvcmtPcmRlck51bWJlcicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2lzIGxlc3MgdGhhbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCAgPT4gJENvbmRpdGlvbklEc1syXSwKICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgICA9PiAkV29ya09yZGVySURzWzBdLAogICAgICAgICAgICAgICAgQ29tcGFyZVZhbHVlID0+IDFfMDAwXzAwMCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE1hdGNoU3VjY2VzcyA9PiAwLAogICAgICAgIFNvdXJjZURhdGEgICA9PiB7CiAgICAgICAgICAgIEV4cHJlc3Npb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1dvcmtPcmRlck51bWJlcicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2lzIGxlc3MgdGhhbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCAgPT4gJENvbmRpdGlvbklEc1syXSwKICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgICA9PiAkV29ya09yZGVySURzWzBdLAogICAgICAgICAgICAgICAgQ29tcGFyZVZhbHVlID0+IDAsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBNYXRjaFN1Y2Nlc3MgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICAgPT4gewogICAgICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQbGFubmVkU3RhcnRUaW1lJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIE9wZXJhdG9ySUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdG9yTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnaXMgYmVmb3JlJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkQ29uZGl0aW9uSURzWzJdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRXb3JrT3JkZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBFcG9jaCA9PiAkRGF0ZVRpbWVPYmplY3QtPlRvRXBvY2goKSArIDEwLAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICktPlRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBNYXRjaFN1Y2Nlc3MgPT4gMCwKICAgICAgICBTb3VyY2VEYXRhICAgPT4gewogICAgICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQbGFubmVkU3RhcnRUaW1lJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIE9wZXJhdG9ySUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdG9yTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnaXMgYmVmb3JlJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkQ29uZGl0aW9uSURzWzJdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRXb3JrT3JkZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBFcG9jaCA9PiAkU3lzdGVtVGltZUJlZm9yZUFkZGluZywKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApLT5Ub1N0cmluZygpLAogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTWF0Y2hTdWNjZXNzID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgID0+IHsKICAgICAgICAgICAgRXhwcmVzc2lvbkFkZCA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3RJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0TG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUGxhbm5lZFN0YXJ0VGltZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2lzIGFmdGVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkQ29uZGl0aW9uSURzWzJdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRXb3JrT3JkZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBFcG9jaCA9PiAkU3lzdGVtVGltZUJlZm9yZUFkZGluZywKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApLT5Ub1N0cmluZygpLAogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTWF0Y2hTdWNjZXNzID0+IDAsCiAgICAgICAgU291cmNlRGF0YSAgID0+IHsKICAgICAgICAgICAgRXhwcmVzc2lvbkFkZCA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3RJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0TG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUGxhbm5lZFN0YXJ0VGltZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2lzIGFmdGVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkQ29uZGl0aW9uSURzWzJdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRXb3JrT3JkZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBFcG9jaCA9PiAkRGF0ZVRpbWVPYmplY3QtPlRvRXBvY2goKSArIDEwLAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICktPlRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBNYXRjaFN1Y2Nlc3MgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICAgPT4gewogICAgICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdXb3JrT3JkZXJUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2lzJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkQ29uZGl0aW9uSURzWzJdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRXb3JrT3JkZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gJFdvcmtPcmRlclRpdGxlc1swXSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE1hdGNoU3VjY2VzcyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgICA9PiB7CiAgICAgICAgICAgIEV4cHJlc3Npb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1dvcmtPcmRlclRpdGxlJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIE9wZXJhdG9ySUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdG9yTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnY29udGFpbnMnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgICMgc3RhdGljIGZpZWxkcwogICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgID0+ICRDb25kaXRpb25JRHNbMl0sCiAgICAgICAgICAgICAgICBTZWxlY3RvciAgICAgPT4gJFdvcmtPcmRlcklEc1swXSwKICAgICAgICAgICAgICAgIENvbXBhcmVWYWx1ZSA9PiBzdWJzdHIoICRXb3JrT3JkZXJUaXRsZXNbMF0sIC00ICksCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBNYXRjaFN1Y2Nlc3MgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICAgPT4gewogICAgICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdXb3JrT3JkZXJUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2NvbnRhaW5zJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkQ29uZGl0aW9uSURzWzJdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRXb3JrT3JkZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gJFdvcmtPcmRlclRpdGxlc1swXSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE1hdGNoU3VjY2VzcyA9PiAwLAogICAgICAgIFNvdXJjZURhdGEgICA9PiB7CiAgICAgICAgICAgIEV4cHJlc3Npb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1dvcmtPcmRlclRpdGxlJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIE9wZXJhdG9ySUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdG9yTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnY29udGFpbnMnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgICMgc3RhdGljIGZpZWxkcwogICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgID0+ICRDb25kaXRpb25JRHNbMl0sCiAgICAgICAgICAgICAgICBTZWxlY3RvciAgICAgPT4gJFdvcmtPcmRlcklEc1swXSwKICAgICAgICAgICAgICAgIENvbXBhcmVWYWx1ZSA9PiAnTm90IEEgVmFsaWQgVmFsdWUgJyAuICRSYW5kb21JRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE1hdGNoU3VjY2VzcyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgICA9PiB7CiAgICAgICAgICAgIEV4cHJlc3Npb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1dvcmtPcmRlclRpdGxlJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIE9wZXJhdG9ySUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdG9yTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnbm90IGNvbnRhaW5zJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkQ29uZGl0aW9uSURzWzJdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRXb3JrT3JkZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gJ05vdCBBIFZhbGlkIFZhbHVlICcgLiAkUmFuZG9tSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBNYXRjaFN1Y2Nlc3MgPT4gMCwKICAgICAgICBTb3VyY2VEYXRhICAgPT4gewogICAgICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdXb3JrT3JkZXJUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ25vdCBjb250YWlucycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCAgPT4gJENvbmRpdGlvbklEc1syXSwKICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgICA9PiAkV29ya09yZGVySURzWzBdLAogICAgICAgICAgICAgICAgQ29tcGFyZVZhbHVlID0+ICRXb3JrT3JkZXJUaXRsZXNbMF0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBNYXRjaFN1Y2Nlc3MgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICAgPT4gewogICAgICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdXb3JrT3JkZXJUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2JlZ2lucyB3aXRoJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkQ29uZGl0aW9uSURzWzJdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRXb3JrT3JkZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gc3Vic3RyKCAkV29ya09yZGVyVGl0bGVzWzBdLCAwLCA0ICksCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBNYXRjaFN1Y2Nlc3MgPT4gMCwKICAgICAgICBTb3VyY2VEYXRhICAgPT4gewogICAgICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdXb3JrT3JkZXJUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2JlZ2lucyB3aXRoJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkQ29uZGl0aW9uSURzWzJdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRXb3JrT3JkZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gc3Vic3RyKCAkV29ya09yZGVyVGl0bGVzWzBdLCAxICksCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBNYXRjaFN1Y2Nlc3MgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICAgPT4gewogICAgICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdXb3JrT3JkZXJUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ2VuZHMgd2l0aCcsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCAgPT4gJENvbmRpdGlvbklEc1syXSwKICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgICA9PiAkV29ya09yZGVySURzWzBdLAogICAgICAgICAgICAgICAgQ29tcGFyZVZhbHVlID0+IHN1YnN0ciggJFdvcmtPcmRlclRpdGxlc1swXSwgLTQgKSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE1hdGNoU3VjY2VzcyA9PiAwLAogICAgICAgIFNvdXJjZURhdGEgICA9PiB7CiAgICAgICAgICAgIEV4cHJlc3Npb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1dvcmtPcmRlclRpdGxlJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIE9wZXJhdG9ySUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdG9yTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnZW5kcyB3aXRoJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEICA9PiAkQ29uZGl0aW9uSURzWzJdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgID0+ICRXb3JrT3JkZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDb21wYXJlVmFsdWUgPT4gc3Vic3RyKCAkV29ya09yZGVyVGl0bGVzWzBdLCAxLCAzICksCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIFRlc3QgZm9yIGJ1ZyMgMTA4NjIKICAgIHsKICAgICAgICBNYXRjaFN1Y2Nlc3MgPT4gMCwKICAgICAgICBTb3VyY2VEYXRhICAgPT4gewogICAgICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDaGFuZ2VNYW5hZ2VySUQnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgT3BlcmF0b3JJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT3BlcmF0b3JMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdpcyBub3QnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgICMgc3RhdGljIGZpZWxkcwogICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgID0+ICRDb25kaXRpb25JRHNbMF0sCiAgICAgICAgICAgICAgICBTZWxlY3RvciAgICAgPT4gJENoYW5nZUlEc1swXSwKICAgICAgICAgICAgICAgIENvbXBhcmVWYWx1ZSA9PiAnJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAopOwoKIyBjaGVjayBjb25kaXRpb24gZXhwcmVzc2lvbnMKbXkgQEV4cHJlc3Npb25JRHM7CkVYUFJFU1NJT05URVNUOgpmb3IgbXkgJEV4cHJlc3Npb25UZXN0IChARXhwcmVzc2lvblRlc3RzKSB7CgogICAgIyBzdG9yZSBkYXRhIG9mIHRlc3QgY2FzZXMgbG9jYWxseQogICAgbXkgJVNvdXJjZURhdGE7CiAgICBteSAkRXhwcmVzc2lvbklEOwogICAgbXkgJUV4cHJlc3Npb25BZGRTb3VyY2VEYXRhOwogICAgbXkgJUV4cHJlc3Npb25BZGREYXRhOwoKICAgICMgZXh0cmFjdCBzb3VyY2UgZGF0YQogICAgaWYgKCAkRXhwcmVzc2lvblRlc3QtPntTb3VyY2VEYXRhfSApIHsKICAgICAgICAlU291cmNlRGF0YSA9ICV7ICRFeHByZXNzaW9uVGVzdC0+e1NvdXJjZURhdGF9IH07CiAgICB9CgogICAgbmV4dCBFWFBSRVNTSU9OVEVTVCBpZiAhJVNvdXJjZURhdGE7CgogICAgQ1JFQVRFREFUQToKICAgIGZvciBteSAkQ3JlYXRlRGF0YSAoIHNvcnQga2V5cyAlU291cmNlRGF0YSApIHsKCiAgICAgICAgIyBhZGQgZXhwcmVzc2lvbgogICAgICAgIGlmICggJENyZWF0ZURhdGEgZXEgJ0V4cHJlc3Npb25BZGQnICkgewoKICAgICAgICAgICAgIyBleHRyYWN0IEV4cHJlc3Npb25BZGQgZGF0YQogICAgICAgICAgICAlRXhwcmVzc2lvbkFkZFNvdXJjZURhdGEgPSAleyAkU291cmNlRGF0YXskQ3JlYXRlRGF0YX0gfTsKCiAgICAgICAgICAgICMgc2V0IHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgbXkgQFN0YXRpY0ZpZWxkcyA9IHF3KCBTZWxlY3RvciBDb21wYXJlVmFsdWUgVXNlcklEIENvbmRpdGlvbklEICk7CgogICAgICAgICAgICBTVEFUSUNGSUVMRDoKICAgICAgICAgICAgZm9yIG15ICRTdGF0aWNGaWVsZCAoQFN0YXRpY0ZpZWxkcykgewoKICAgICAgICAgICAgICAgICMgb21pdCBzdGF0aWMgZmllbGQgaWYgaXQgaXMgbm90IHNldAogICAgICAgICAgICAgICAgbmV4dCBTVEFUSUNGSUVMRCBpZiAhZXhpc3RzICRFeHByZXNzaW9uQWRkU291cmNlRGF0YXskU3RhdGljRmllbGR9CiAgICAgICAgICAgICAgICAgICAgfHwgIWRlZmluZWQgJEV4cHJlc3Npb25BZGRTb3VyY2VEYXRheyRTdGF0aWNGaWVsZH07CgogICAgICAgICAgICAgICAgIyBzYWZlIGRhdGEKICAgICAgICAgICAgICAgICRFeHByZXNzaW9uQWRkRGF0YXskU3RhdGljRmllbGR9ID0gJEV4cHJlc3Npb25BZGRTb3VyY2VEYXRheyRTdGF0aWNGaWVsZH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IGFsbCBmaWVsZHMgZm9yIEV4cHJlc3Npb25BZGQKICAgICAgICAgICAgRVhQUkVTU0lPTkFERFZBTFVFOgogICAgICAgICAgICBmb3IgbXkgJEV4cHJlc3Npb25BZGRWYWx1ZSAoIHNvcnQga2V5cyAlRXhwcmVzc2lvbkFkZFNvdXJjZURhdGEgKSB7CgogICAgICAgICAgICAgICAgIyBvbWl0IHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIG5leHQgRVhQUkVTU0lPTkFERFZBTFVFIGlmIGdyZXAgeyAkXyBlcSAkRXhwcmVzc2lvbkFkZFZhbHVlIH0gQFN0YXRpY0ZpZWxkczsKCiAgICAgICAgICAgICAgICAjIGdldCB2YWx1ZXMgZm9yIGZpZWxkcwogICAgICAgICAgICAgICAgZm9yIG15ICRGaWVsZFZhbHVlICggc29ydCBrZXlzICV7ICRFeHByZXNzaW9uQWRkU291cmNlRGF0YXskRXhwcmVzc2lvbkFkZFZhbHVlfSB9ICkKICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgIyBzdG9yZSBnYXRoZXJlZCBpbmZvcm1hdGlvbiBpbiBoYXNoIGZvciBhZGRpbmcKICAgICAgICAgICAgICAgICAgICAkRXhwcmVzc2lvbkFkZERhdGF7JEV4cHJlc3Npb25BZGRWYWx1ZX0gPQogICAgICAgICAgICAgICAgICAgICAgICAkQ29uZGl0aW9uT2JqZWN0LT4kRmllbGRWYWx1ZSgKICAgICAgICAgICAgICAgICAgICAgICAgJXsgJEV4cHJlc3Npb25BZGRTb3VyY2VEYXRheyRFeHByZXNzaW9uQWRkVmFsdWV9LT57JEZpZWxkVmFsdWV9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWRkIGV4cHJlc3Npb24KICAgICAgICAgICAgJEV4cHJlc3Npb25JRCA9ICRDb25kaXRpb25PYmplY3QtPkV4cHJlc3Npb25BZGQoCiAgICAgICAgICAgICAgICAlRXhwcmVzc2lvbkFkZERhdGEsCiAgICAgICAgICAgICkgfHwgMDsKCiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJEV4cHJlc3Npb25JRCwKICAgICAgICAgICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gJENyZWF0ZURhdGEgLT4gJEV4cHJlc3Npb25JRCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IENSRUFURURBVEEgaWYgISRFeHByZXNzaW9uSUQ7CgogICAgICAgICAgICAjIHNhdmUgY3JlYXRlZCBJRCBmb3IgZGVsZXRpbmcgZXhwcmVzc2lvbnMKICAgICAgICAgICAgcHVzaCBARXhwcmVzc2lvbklEcywgJEV4cHJlc3Npb25JRDsKCiAgICAgICAgICAgICMgY2hlY2sgdGhlIGFkZGVkIGV4cHJlc3Npb24KICAgICAgICAgICAgbXkgJEV4cHJlc3Npb25HZXREYXRhID0gJENvbmRpdGlvbk9iamVjdC0+RXhwcmVzc2lvbkdldCgKICAgICAgICAgICAgICAgIEV4cHJlc3Npb25JRCA9PiAkRXhwcmVzc2lvbklELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRFeHByZXNzaW9uQWRkRGF0YXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRFeHByZXNzaW9uR2V0RGF0YSwKICAgICAgICAgICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAnIC0gRXhwcmVzc2lvbkFkZCgpOiBFeHByZXNzaW9uR2V0JywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgdGVzdCB2YWx1ZXMKICAgICAgICAgICAgZGVsZXRlICRFeHByZXNzaW9uQWRkRGF0YXtVc2VySUR9OwogICAgICAgICAgICBmb3IgbXkgJFRlc3RWYWx1ZSAoIHNvcnQga2V5cyAlRXhwcmVzc2lvbkFkZERhdGEgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAgICAgJEV4cHJlc3Npb25HZXREYXRhLT57JFRlc3RWYWx1ZX0sCiAgICAgICAgICAgICAgICAgICAgJEV4cHJlc3Npb25BZGREYXRheyRUZXN0VmFsdWV9LAogICAgICAgICAgICAgICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gRXhwcmVzc2lvbkFkZCgpOiBFeHByZXNzaW9uR2V0IC0+ICRUZXN0VmFsdWUiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0gICAgIyBlbmQgaWYgKCAkQ3JlYXRlRGF0YSBlcSAnRXhwcmVzc2lvbkFkZCcgKQoKICAgICAgICAjIHVwZGF0ZSBleHByZXNzaW9uCiAgICAgICAgaWYgKCAkQ3JlYXRlRGF0YSBlcSAnRXhwcmVzc2lvblVwZGF0ZScgKSB7CgogICAgICAgICAgICAjIGV4dHJhY3QgRXhwcmVzc2lvblVwZGF0ZSBkYXRhCiAgICAgICAgICAgIG15ICVFeHByZXNzaW9uVXBkYXRlU291cmNlRGF0YSA9ICV7ICRTb3VyY2VEYXRheyRDcmVhdGVEYXRhfSB9OwogICAgICAgICAgICBteSAlRXhwcmVzc2lvblVwZGF0ZURhdGE7CgogICAgICAgICAgICAjIHNldCBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgIG15IEBTdGF0aWNGaWVsZHMgPSBxdyggU2VsZWN0b3IgQ29tcGFyZVZhbHVlIFVzZXJJRCBDb25kaXRpb25JRCApOwoKICAgICAgICAgICAgU1RBVElDRklFTEQ6CiAgICAgICAgICAgIGZvciBteSAkU3RhdGljRmllbGQgKEBTdGF0aWNGaWVsZHMpIHsKCiAgICAgICAgICAgICAgICAjIG9taXQgc3RhdGljIGZpZWxkIGlmIGl0IGlzIG5vdCBzZXQKICAgICAgICAgICAgICAgIG5leHQgU1RBVElDRklFTEQgaWYgISRFeHByZXNzaW9uVXBkYXRlU291cmNlRGF0YXskU3RhdGljRmllbGR9OwoKICAgICAgICAgICAgICAgICMgc2FmZSBkYXRhCiAgICAgICAgICAgICAgICAkRXhwcmVzc2lvblVwZGF0ZURhdGF7JFN0YXRpY0ZpZWxkfSA9ICRFeHByZXNzaW9uVXBkYXRlU291cmNlRGF0YXskU3RhdGljRmllbGR9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGdldCBhbGwgZmllbGRzIGZvciBFeHByZXNzaW9uVXBkYXRlCiAgICAgICAgICAgIEVYUFJFU1NJT05VUERBVEVWQUxVRToKICAgICAgICAgICAgZm9yIG15ICRFeHByZXNzaW9uVXBkYXRlVmFsdWUgKCBzb3J0IGtleXMgJUV4cHJlc3Npb25VcGRhdGVTb3VyY2VEYXRhICkgewoKICAgICAgICAgICAgICAgICMgb21pdCBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBuZXh0IEVYUFJFU1NJT05VUERBVEVWQUxVRSBpZiBncmVwIHsgJF8gZXEgJEV4cHJlc3Npb25VcGRhdGVWYWx1ZSB9IEBTdGF0aWNGaWVsZHM7CgogICAgICAgICAgICAgICAgIyBnZXQgdmFsdWVzIGZvciBmaWVsZHMKICAgICAgICAgICAgICAgIGZvciBteSAkRmllbGRWYWx1ZSAoCiAgICAgICAgICAgICAgICAgICAgc29ydCBrZXlzICV7ICRFeHByZXNzaW9uVXBkYXRlU291cmNlRGF0YXskRXhwcmVzc2lvblVwZGF0ZVZhbHVlfSB9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICAjIHN0b3JlIGdhdGhlcmVkIGluZm9ybWF0aW9uIGluIGhhc2ggZm9yIHVwZGF0aW5nCiAgICAgICAgICAgICAgICAgICAgJEV4cHJlc3Npb25VcGRhdGVEYXRheyRFeHByZXNzaW9uVXBkYXRlVmFsdWV9ID0KICAgICAgICAgICAgICAgICAgICAgICAgJENvbmRpdGlvbk9iamVjdC0+JEZpZWxkVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgICV7ICRFeHByZXNzaW9uVXBkYXRlU291cmNlRGF0YXskRXhwcmVzc2lvblVwZGF0ZVZhbHVlfS0+eyRGaWVsZFZhbHVlfSB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHVwZGF0ZSBleHByZXNzaW9uCiAgICAgICAgICAgIG15ICRVcGRhdGVTdWNjZXNzID0gJENvbmRpdGlvbk9iamVjdC0+RXhwcmVzc2lvblVwZGF0ZSgKICAgICAgICAgICAgICAgIEV4cHJlc3Npb25JRCA9PiAkRXhwcmVzc2lvbklELAogICAgICAgICAgICAgICAgJUV4cHJlc3Npb25VcGRhdGVEYXRhLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkVXBkYXRlU3VjY2VzcywKICAgICAgICAgICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gJENyZWF0ZURhdGEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBDUkVBVEVEQVRBIGlmICEkVXBkYXRlU3VjY2VzczsKCiAgICAgICAgICAgICMgY2hlY2sgdGhlIGFkZGVkIGV4cHJlc3Npb24KICAgICAgICAgICAgbXkgJEV4cHJlc3Npb25HZXREYXRhID0gJENvbmRpdGlvbk9iamVjdC0+RXhwcmVzc2lvbkdldCgKICAgICAgICAgICAgICAgIEV4cHJlc3Npb25JRCA9PiAkRXhwcmVzc2lvbklELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRFeHByZXNzaW9uVXBkYXRlRGF0YXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRFeHByZXNzaW9uR2V0RGF0YSwKICAgICAgICAgICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAnIC0gRXhwcmVzc2lvblVwZGF0ZSgpOiBFeHByZXNzaW9uR2V0JywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgbWVyZ2UgYWRkIGFuZCB1cGRhdGUgZGF0YQogICAgICAgICAgICAlRXhwcmVzc2lvblVwZGF0ZURhdGEgPSAoICVFeHByZXNzaW9uQWRkRGF0YSwgJUV4cHJlc3Npb25VcGRhdGVEYXRhICk7CgogICAgICAgICAgICAjIHRlc3QgdmFsdWVzCiAgICAgICAgICAgIGRlbGV0ZSAkRXhwcmVzc2lvblVwZGF0ZURhdGF7VXNlcklEfTsKICAgICAgICAgICAgZm9yIG15ICRUZXN0VmFsdWUgKCBzb3J0IGtleXMgJUV4cHJlc3Npb25VcGRhdGVEYXRhICkgewogICAgICAgICAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAgICAgICAgICRFeHByZXNzaW9uR2V0RGF0YS0+eyRUZXN0VmFsdWV9LAogICAgICAgICAgICAgICAgICAgICRFeHByZXNzaW9uVXBkYXRlRGF0YXskVGVzdFZhbHVlfSwKICAgICAgICAgICAgICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIEV4cHJlc3Npb25VcGRhdGUoKTogRXhwcmVzc2lvbkdldCAtPiAkVGVzdFZhbHVlIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9ICAgICMgZW5kIGlmICggJENyZWF0ZURhdGEgZXEgJ0V4cHJlc3Npb25VcGRhdGUnICkKICAgIH0KfQoKIyBjaGVjayBmb3IgZXhwcmVzc2lvbiBsaXN0CkNPTkRJVElPTklEOgpmb3IgbXkgJENvbmRpdGlvbklEIChAQ29uZGl0aW9uSURzKSB7CgogICAgIyBjaGVjayBmb3IgZXhwcmVzc2lvbnMgb2YgdGhpcyBjb25kaXRpb24gaWQKICAgIG15ICRFeHByZXNzaW9uVGVzdENvdW50ID0gMDsKICAgIEVYUFJFU1NJT05URVNUOgogICAgZm9yIG15ICRFeHByZXNzaW9uVGVzdCAoQEV4cHJlc3Npb25UZXN0cykgewoKICAgICAgICAjIG9taXQgdGVzdCBjYXNlIGlmIG5vIHNvdXJjZSBkYXRhIGlzIGF2YWlsYWJsZQogICAgICAgIG5leHQgRVhQUkVTU0lPTlRFU1QgaWYgISRFeHByZXNzaW9uVGVzdC0+e1NvdXJjZURhdGF9OwoKICAgICAgICAjIG9taXQgdGVzdCBjYXNlIGlmIG5vIGV4cHJlc3Npb24gc2hvdWxkIGJlIGFkZGVkCiAgICAgICAgbmV4dCBFWFBSRVNTSU9OVEVTVCBpZiAhJEV4cHJlc3Npb25UZXN0LT57U291cmNlRGF0YX0tPntFeHByZXNzaW9uQWRkfTsKCiAgICAgICAgJEV4cHJlc3Npb25UZXN0Q291bnQrKwogICAgICAgICAgICBpZiAkRXhwcmVzc2lvblRlc3QtPntTb3VyY2VEYXRhfS0+e0V4cHJlc3Npb25BZGR9LT57Q29uZGl0aW9uSUR9ID09ICRDb25kaXRpb25JRDsKICAgIH0KCiAgICBteSAkRXhwcmVzc2lvbkxpc3QgPSAkQ29uZGl0aW9uT2JqZWN0LT5FeHByZXNzaW9uTGlzdCgKICAgICAgICBDb25kaXRpb25JRCA9PiAkQ29uZGl0aW9uSUQsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgIHJlZiAkRXhwcmVzc2lvbkxpc3QsCiAgICAgICAgJ0FSUkFZJywKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gJyAtIEV4cHJlc3Npb25MaXN0IHJldHVybiB2YWx1ZScsCiAgICApOwoKICAgICMgY2hlY2sgZm9yIGxpc3QgdHlwZQogICAgbmV4dCBDT05ESVRJT05JRCBpZiByZWYgJEV4cHJlc3Npb25MaXN0IG5lICdBUlJBWSc7CgogICAgJFNlbGYtPklzKAogICAgICAgIHNjYWxhciBAeyRFeHByZXNzaW9uTGlzdH0sCiAgICAgICAgJEV4cHJlc3Npb25UZXN0Q291bnQsCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBFeHByZXNzaW9uTGlzdCAtPiAkQ29uZGl0aW9uSUQiLAogICAgKTsKfQoKIyB0ZXN0IGZvciBtYXRjaGluZwpmb3IgbXkgJEV4cHJlc3Npb25Db3VudGVyICggMCAuLiAoIHNjYWxhciBARXhwcmVzc2lvbklEcyAtIDEgKSApIHsKCiAgICBteSAkRXhwcmVzc2lvbklEID0gJEV4cHJlc3Npb25JRHNbJEV4cHJlc3Npb25Db3VudGVyXTsKCiAgICAjIGdyb3VwIHJlbGF0ZWQgdGVzdHMKICAgICRUZXN0Q291bnQrKzsKCiAgICAjIHByaW50IGluZm8gYWJvdXQgdGhlIG1hdGNoIHRlc3Q6CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAxLAogICAgICAgICJNYXRjaCB0ZXN0ICRUZXN0Q291bnQ6ICIKICAgICAgICAgICAgLiAiRXhwcmVzc2lvbkNvdW50ZXIgPT4gJEV4cHJlc3Npb25Db3VudGVyLCBFeHByZXNzaW9uSUQgPT4gJEV4cHJlc3Npb25JRCIsCiAgICApOwoKICAgICMgZ2V0IG9iamVjdCB2YWx1ZSBmb3IgYXR0cmlidXRlcwogICAgbXkgJE9iamVjdE5hbWUgPSAkRXhwcmVzc2lvblRlc3RzWyRFeHByZXNzaW9uQ291bnRlcl0tPntTb3VyY2VEYXRhfS0+e0V4cHJlc3Npb25BZGR9LT57T2JqZWN0SUR9CiAgICAgICAgLT57T2JqZWN0TG9va3VwfS0+e05hbWV9OwoKICAgICMgY2hlY2sgZm9yIHVwZGF0ZWQgb2JqZWN0CiAgICBpZiAoCiAgICAgICAgJEV4cHJlc3Npb25UZXN0c1skRXhwcmVzc2lvbkNvdW50ZXJdLT57U291cmNlRGF0YX0tPntFeHByZXNzaW9uVXBkYXRlfQogICAgICAgICYmICRFeHByZXNzaW9uVGVzdHNbJEV4cHJlc3Npb25Db3VudGVyXS0+e1NvdXJjZURhdGF9LT57RXhwcmVzc2lvblVwZGF0ZX0tPntPYmplY3RJRH0KICAgICAgICAtPntPYmplY3RMb29rdXB9LT57TmFtZX0KICAgICAgICApCiAgICB7CiAgICAgICAgJE9iamVjdE5hbWUgPSAkRXhwcmVzc2lvblRlc3RzWyRFeHByZXNzaW9uQ291bnRlcl0tPntTb3VyY2VEYXRhfS0+e0V4cHJlc3Npb25VcGRhdGV9LT57T2JqZWN0SUR9CiAgICAgICAgICAgIC0+e09iamVjdExvb2t1cH0tPntOYW1lfTsKICAgIH0KCiAgICAjIGdldCBhdHRyaWJ1dGUgdmFsdWVzIGZvciBhdHRyaWJ1dGVzCiAgICBteSAkQXR0cmlidXRlTmFtZSA9ICRFeHByZXNzaW9uVGVzdHNbJEV4cHJlc3Npb25Db3VudGVyXS0+e1NvdXJjZURhdGF9LT57RXhwcmVzc2lvbkFkZH0tPntBdHRyaWJ1dGVJRH0KICAgICAgICAtPntBdHRyaWJ1dGVMb29rdXB9LT57TmFtZX07CgogICAgIyBjaGVjayBmb3IgdXBkYXRlZCBhdHRyaWJ1dGUKICAgIGlmICgKICAgICAgICAkRXhwcmVzc2lvblRlc3RzWyRFeHByZXNzaW9uQ291bnRlcl0tPntTb3VyY2VEYXRhfS0+e0V4cHJlc3Npb25VcGRhdGV9CiAgICAgICAgJiYgJEV4cHJlc3Npb25UZXN0c1skRXhwcmVzc2lvbkNvdW50ZXJdLT57U291cmNlRGF0YX0tPntFeHByZXNzaW9uVXBkYXRlfS0+e0F0dHJpYnV0ZUlEfQogICAgICAgIC0+e0F0dHJpYnV0ZUxvb2t1cH0tPntOYW1lfQogICAgICAgICkKICAgIHsKICAgICAgICAkQXR0cmlidXRlTmFtZSA9ICRFeHByZXNzaW9uVGVzdHNbJEV4cHJlc3Npb25Db3VudGVyXS0+e1NvdXJjZURhdGF9LT57RXhwcmVzc2lvblVwZGF0ZX0tPntBdHRyaWJ1dGVJRH0KICAgICAgICAgICAgLT57QXR0cmlidXRlTG9va3VwfS0+e05hbWV9OwogICAgfQoKICAgICMgdGVzdCBvbiBzdWNjZXNzZnVsIHJlc3VsdAogICAgaWYgKCAkRXhwcmVzc2lvblRlc3RzWyRFeHByZXNzaW9uQ291bnRlcl0tPntNYXRjaFN1Y2Nlc3N9ICkgewoKICAgICAgICAjIHRlc3Qgd2l0aG91dCBnaXZlbiBjaGFuZ2VkIGF0dHJpYnV0ZXMKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENvbmRpdGlvbk9iamVjdC0+RXhwcmVzc2lvbk1hdGNoKAogICAgICAgICAgICAgICAgRXhwcmVzc2lvbklEID0+ICRFeHByZXNzaW9uSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHx8IDAsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQgLSBFeHByZXNzaW9uTWF0Y2ggcmV0dXJuIHRydWUsIHdpdGhvdXQgY2hhbmdlZCBhdHRyaWJ1dGVzIiwKICAgICAgICApOwoKICAgICAgICAjIHRlc3Qgd2l0aCBnaXZlbiBjaGFuZ2VkIGF0dHJpYnV0ZXMKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENvbmRpdGlvbk9iamVjdC0+RXhwcmVzc2lvbk1hdGNoKAogICAgICAgICAgICAgICAgRXhwcmVzc2lvbklEICAgICAgPT4gJEV4cHJlc3Npb25JRCwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZXNDaGFuZ2VkID0+IHsgJE9iamVjdE5hbWUgPT4gWyRBdHRyaWJ1dGVOYW1lXSB9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHx8IDAsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQgLSBFeHByZXNzaW9uTWF0Y2ggcmV0dXJuIHRydWUsIHdpdGggY2hhbmdlZCBhdHRyaWJ1dGVzIiwKICAgICAgICApOwoKICAgICAgICAjIHRlc3Qgd2l0aCB3cm9uZyBnaXZlbiBvYmplY3QgdHlwZSBvZiBjaGFuZ2VkIGF0dHJpYnV0ZXMKICAgICAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgICAgICRDb25kaXRpb25PYmplY3QtPkV4cHJlc3Npb25NYXRjaCgKICAgICAgICAgICAgICAgIEV4cHJlc3Npb25JRCAgICAgID0+ICRFeHByZXNzaW9uSUQsCiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVzQ2hhbmdlZCA9PiB7ICRPYmplY3ROYW1lIC4gJ1VUJyAuICRSYW5kb21JRCA9PiBbJEF0dHJpYnV0ZU5hbWVdIH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgfHwgMCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudCAtIEV4cHJlc3Npb25NYXRjaCByZXR1cm4gZmFsc2UsIHdyb25nIG9iamVjdCB0eXBlIiwKICAgICAgICApOwoKICAgICAgICAjIHRlc3Qgd2l0aCB3cm9uZyBnaXZlbiBhdHRyaWJ1dGUgdHlwZSBvZiBjaGFuZ2VkIGF0dHJpYnV0ZXMKICAgICAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgICAgICRDb25kaXRpb25PYmplY3QtPkV4cHJlc3Npb25NYXRjaCgKICAgICAgICAgICAgICAgIEV4cHJlc3Npb25JRCAgICAgID0+ICRFeHByZXNzaW9uSUQsCiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVzQ2hhbmdlZCA9PiB7ICRPYmplY3ROYW1lID0+IFsgJEF0dHJpYnV0ZU5hbWUgLiAnVVQnIC4gJFJhbmRvbUlEIF0gfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB8fCAwLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50IC0gRXhwcmVzc2lvbk1hdGNoIHJldHVybiBmYWxzZSwgd3JvbmcgYXR0cmlidXRlIHR5cGUiLAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyB0ZXN0IHdpdGhvdXQgZ2l2ZW4gY2hhbmdlZCBhdHRyaWJ1dGVzCiAgICAgICAgJFNlbGYtPkZhbHNlKAogICAgICAgICAgICAkQ29uZGl0aW9uT2JqZWN0LT5FeHByZXNzaW9uTWF0Y2goCiAgICAgICAgICAgICAgICBFeHByZXNzaW9uSUQgPT4gJEV4cHJlc3Npb25JRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgfHwgMCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudCAtIEV4cHJlc3Npb25NYXRjaCByZXR1cm4gZmFsc2UsIHdpdGhvdXQgY2hhbmdlZCBhdHRyaWJ1dGVzIiwKICAgICAgICApOwoKICAgICAgICAjIHRlc3Qgd2l0aCBnaXZlbiBjaGFuZ2VkIGF0dHJpYnV0ZXMKICAgICAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgICAgICRDb25kaXRpb25PYmplY3QtPkV4cHJlc3Npb25NYXRjaCgKICAgICAgICAgICAgICAgIEV4cHJlc3Npb25JRCAgICAgID0+ICRFeHByZXNzaW9uSUQsCiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVzQ2hhbmdlZCA9PiB7ICRPYmplY3ROYW1lID0+IFskQXR0cmlidXRlTmFtZV0gfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB8fCAwLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50IC0gRXhwcmVzc2lvbk1hdGNoIHJldHVybiBmYWxzZSwgd2l0aCBjaGFuZ2VkIGF0dHJpYnV0ZXMiLAogICAgICAgICk7CiAgICB9Cn0KCiMKIyBjb25kaXRpb24gYWN0aW9uIHRlc3RzCiMKCiMgY2hlY2sgZm9yIGRlZmF1bHQgY29uZGl0aW9uIGFjdGlvbnMKbXkgQEFjdGlvblRlc3RzID0gKAogICAgewogICAgICAgIEFjdGlvblN1Y2Nlc3MgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICAgID0+IHsKICAgICAgICAgICAgQWN0aW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJ0NoYW5nZVRpdGxlJywKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICA9PiAnc2V0JywKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCA9PiAkQ29uZGl0aW9uSURzWzFdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgPT4gJENoYW5nZUlEc1swXSwKICAgICAgICAgICAgICAgIEFjdGlvblZhbHVlID0+ICdOZXcgQ2hhbmdlIFRpdGxlJyAuICRSYW5kb21JRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBUZXN0IGZvciBidWcjIDEwODYyCiAgICB7CiAgICAgICAgQWN0aW9uU3VjY2VzcyA9PiAwLAogICAgICAgIFNvdXJjZURhdGEgICAgPT4gewogICAgICAgICAgICBBY3Rpb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICA9PiAnQ2hhbmdlTWFuYWdlcklEJywKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICA9PiAnbG9jaycsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgICMgc3RhdGljIGZpZWxkcwogICAgICAgICAgICAgICAgQ29uZGl0aW9uSUQgPT4gJENvbmRpdGlvbklEc1sxXSwKICAgICAgICAgICAgICAgIFNlbGVjdG9yICAgID0+ICRDaGFuZ2VJRHNbMF0sCiAgICAgICAgICAgICAgICBBY3Rpb25WYWx1ZSA9PiAnJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgQWN0aW9uU3VjY2VzcyA9PiAwLAogICAgICAgIFNvdXJjZURhdGEgICAgPT4gewogICAgICAgICAgICBBY3Rpb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICA9PiAnQ2hhbmdlU3RhdGVJRCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgT3BlcmF0b3JJRCA9PiB7CiAgICAgICAgICAgICAgICAgICAgT3BlcmF0b3JMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAjIHN0YXRpYyBmaWVsZHMKICAgICAgICAgICAgICAgIENvbmRpdGlvbklEID0+ICRDb25kaXRpb25JRHNbMV0sCiAgICAgICAgICAgICAgICBTZWxlY3RvciAgICA9PiAkQ2hhbmdlSURzWzBdLAogICAgICAgICAgICAgICAgQWN0aW9uVmFsdWUgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgQWN0aW9uU3VjY2VzcyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgICAgPT4gewogICAgICAgICAgICBBY3Rpb25BZGQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICA9PiAnQ2hhbmdlTWFuYWdlcklEJywKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICA9PiAnc2V0JywKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCA9PiAkQ29uZGl0aW9uSURzWzZdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgPT4gJENoYW5nZUlEc1sxXSwKICAgICAgICAgICAgICAgIEFjdGlvblZhbHVlID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIEFjdGlvblN1Y2Nlc3MgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICAgID0+IHsKICAgICAgICAgICAgQWN0aW9uQWRkID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3RMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVMb29rdXAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJ1dvcmtPcmRlclRpdGxlJywKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICA9PiAnc2V0JywKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICAgICBDb25kaXRpb25JRCA9PiAkQ29uZGl0aW9uSURzWzBdLAogICAgICAgICAgICAgICAgU2VsZWN0b3IgICAgPT4gJFdvcmtPcmRlcklEc1swXSwKICAgICAgICAgICAgICAgIEFjdGlvblZhbHVlID0+ICdOZXcgV29ya09yZGVyVGl0bGUgVGl0bGUnIC4gJFJhbmRvbUlELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKKTsKCiMgY2hlY2sgY29uZGl0aW9uIGFjdGlvbnMKbXkgQEFjdGlvbklEczsKQUNUSU9OVEVTVDoKZm9yIG15ICRBY3Rpb25UZXN0IChAQWN0aW9uVGVzdHMpIHsKCiAgICAjIHN0b3JlIGRhdGEgb2YgdGVzdCBjYXNlcyBsb2NhbGx5CiAgICBteSAlU291cmNlRGF0YTsKICAgIG15ICRBY3Rpb25JRDsKCiAgICAjIGV4dHJhY3Qgc291cmNlIGRhdGEKICAgIGlmICggJEFjdGlvblRlc3QtPntTb3VyY2VEYXRhfSApIHsKICAgICAgICAlU291cmNlRGF0YSA9ICV7ICRBY3Rpb25UZXN0LT57U291cmNlRGF0YX0gfTsKICAgIH0KCiAgICAjIGNoZWNrIGZvciBzb3VyIGRhdGEKICAgIG5leHQgQUNUSU9OVEVTVCBpZiAhJVNvdXJjZURhdGE7CgogICAgQ1JFQVRFREFUQToKICAgIGZvciBteSAkQ3JlYXRlRGF0YSAoIHNvcnQga2V5cyAlU291cmNlRGF0YSApIHsKCiAgICAgICAgIyBhZGQgYWN0aW9uCiAgICAgICAgaWYgKCAkQ3JlYXRlRGF0YSBlcSAnQWN0aW9uQWRkJyApIHsKCiAgICAgICAgICAgICMgYWRkIGFjdGlvbgogICAgICAgICAgICAkQWN0aW9uSUQgPSBfQWN0aW9uQWRkKCAkU291cmNlRGF0YXskQ3JlYXRlRGF0YX0gKTsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIGFjdGlvbiBpZAogICAgICAgICAgICBuZXh0IENSRUFURURBVEEgaWYgISRBY3Rpb25JRDsKCiAgICAgICAgICAgICMgc2F2ZSBjcmVhdGVkIElEIGZvciBkZWxldGluZyBhY3Rpb25zCiAgICAgICAgICAgIHB1c2ggQEFjdGlvbklEcywgJEFjdGlvbklEOwogICAgICAgIH0KICAgIH0KfQoKIyBjaGVjayBleGVjdXRpb24gb2YgYWN0aW9ucwpBQ1RJT05DT1VOVEVSOgpmb3IgbXkgJEFjdGlvbkNvdW50ZXIgKCAwIC4uICggKCBzY2FsYXIgQEFjdGlvblRlc3RzICkgLSAxICkgKSB7CgogICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbklEc1skQWN0aW9uQ291bnRlcl0gfHwgMDsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQWN0aW9uSUQsCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBBY3Rpb25FeGVjdXRlIC0+IEFjdGlvbklEOiAkQWN0aW9uSUQiLAogICAgKTsKCiAgICBuZXh0IEFDVElPTkNPVU5URVIgaWYgISRBY3Rpb25JRDsKCiAgICAjIHNlbGVjdCBhc3NlcnQgZnVuY3Rpb24KICAgIG15ICRUZXN0U3ViID0gJ0ZhbHNlJzsKICAgIGlmICggJEFjdGlvblRlc3RzWyRBY3Rpb25Db3VudGVyXS0+e0FjdGlvblN1Y2Nlc3N9ICkgewogICAgICAgICRUZXN0U3ViID0gJ1RydWUnOwogICAgfQoKICAgICMgdGVzdCBmb3IgcmVzdWx0CiAgICAkU2VsZi0+JFRlc3RTdWIoCiAgICAgICAgJENvbmRpdGlvbk9iamVjdC0+QWN0aW9uRXhlY3V0ZSgKICAgICAgICAgICAgQWN0aW9uSUQgPT4gJEFjdGlvbklELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICAgICApCiAgICAgICAgICAgIHx8IDAsCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBBY3Rpb25FeGVjdXRlIC0+IEFjdGlvbklEOiAkQWN0aW9uSUQiLAogICAgKTsKCiAgICAjIGRvIG5vdCBleGVjdXRlIGZ1cnRoZXIgY2hlY2tzIGlmIGFjdGlvbgogICAgIyBpcyBub3Qgc3VwcG9zZWQgdG8gYmUgc3VjY2Vzc2Z1bGx5CiAgICBuZXh0IEFDVElPTkNPVU5URVIgaWYgISRBY3Rpb25UZXN0c1skQWN0aW9uQ291bnRlcl0tPntBY3Rpb25TdWNjZXNzfTsKCiAgICAjIGNoZWNrIGZvciB1cGRhdGVkIGFjdGlvbgogICAgbXkgJEFjdGlvbiA9ICRDb25kaXRpb25PYmplY3QtPkFjdGlvbkdldCgKICAgICAgICBBY3Rpb25JRCA9PiAkQWN0aW9uSUQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQWN0aW9uLAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gQWN0aW9uRXhlY3V0ZSAtPiBBY3Rpb25HZXQ6ICRBY3Rpb25JRCIsCiAgICApOwogICAgbmV4dCBBQ1RJT05DT1VOVEVSIGlmICEkQWN0aW9uOwoKICAgICMgZ2V0IG9iamVjdCBuYW1lCiAgICBteSAkT2JqZWN0TmFtZSA9ICRDb25kaXRpb25PYmplY3QtPk9iamVjdExvb2t1cCgKICAgICAgICBPYmplY3RJRCA9PiAkQWN0aW9uLT57T2JqZWN0SUR9LAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJE9iamVjdE5hbWUsCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBBY3Rpb25FeGVjdXRlIC0+IE9iamVjdExvb2t1cDogJE9iamVjdE5hbWUiLAogICAgKTsKICAgIG5leHQgQUNUSU9OQ09VTlRFUiBpZiAhJE9iamVjdE5hbWU7CgogICAgIyBnZXQgYXR0cmlidXRlIG5hbWUKICAgIG15ICRBdHRyaWJ1dGVOYW1lID0gJENvbmRpdGlvbk9iamVjdC0+QXR0cmlidXRlTG9va3VwKAogICAgICAgIEF0dHJpYnV0ZUlEID0+ICRBY3Rpb24tPntBdHRyaWJ1dGVJRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQXR0cmlidXRlTmFtZSwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIEFjdGlvbkV4ZWN1dGUgLT4gQXR0cmlidXRlTG9va3VwOiAkQXR0cmlidXRlTmFtZSIsCiAgICApOwogICAgbmV4dCBBQ1RJT05DT1VOVEVSIGlmICEkT2JqZWN0TmFtZTsKCiAgICAjIGdldCBvYmplY3QgZGF0YQogICAgbXkgJE9iamVjdERhdGE7CiAgICBpZiAoICRPYmplY3ROYW1lIGVxICdJVFNNQ2hhbmdlJyApIHsKICAgICAgICAkT2JqZWN0RGF0YSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJEFjdGlvbi0+e1NlbGVjdG9yfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkT2JqZWN0TmFtZSBlcSAnSVRTTVdvcmtPcmRlcicgKSB7CiAgICAgICAgJE9iamVjdERhdGEgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJHZXQoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRBY3Rpb24tPntTZWxlY3Rvcn0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgKTsKICAgIH0KICAgICRTZWxmLT5UcnVlKAogICAgICAgICRBdHRyaWJ1dGVOYW1lLAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gQWN0aW9uRXhlY3V0ZSAtPiBnZXQgT2JqZWN0RGF0YTogJE9iamVjdE5hbWUiLAogICAgKTsKICAgIG5leHQgQUNUSU9OQ09VTlRFUiBpZiAhJE9iamVjdERhdGE7CgogICAgIyBjaGVjayBmb3IgdXBkYXRlZCB2YWx1ZQogICAgJFNlbGYtPklzKAogICAgICAgICRPYmplY3REYXRhLT57JEF0dHJpYnV0ZU5hbWV9LAogICAgICAgICRBY3Rpb24tPntBY3Rpb25WYWx1ZX0sCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBBY3Rpb25FeGVjdXRlIC0+IGdldCBjaGFuZ2VkIGRhdGE6ICRPYmplY3ROYW1lIiwKICAgICk7Cn0KCiMgdGVzdCBmb3IgbWF0Y2ggc3RhdGUgbG9jawokU2VsZi0+RmFsc2UoCiAgICAkQ29uZGl0aW9uT2JqZWN0LT5Db25kaXRpb25NYXRjaFN0YXRlTG9jaygKICAgICAgICBPYmplY3ROYW1lID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBTZWxlY3RvciAgID0+ICRDaGFuZ2VJRHNbMF0sCiAgICAgICAgU3RhdGVJRCAgICA9PiAxLAogICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICApCiAgICAgICAgfHwgMCwKICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gQ29uZGl0aW9uTWF0Y2hTdGF0ZUxvY2siLAopOwoKIyBjaGVjayBmb3IgZXhwcmVzc2lvbiBkZWxldGUKZm9yIG15ICRFeHByZXNzaW9uSUQgKEBFeHByZXNzaW9uSURzKSB7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQ29uZGl0aW9uT2JqZWN0LT5FeHByZXNzaW9uRGVsZXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgRXhwcmVzc2lvbklEID0+ICRFeHByZXNzaW9uSUQsCiAgICAgICAgKSwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIEV4cHJlc3Npb25EZWxldGUgLT4gRXhwcmVzc2lvbklEOiAkRXhwcmVzc2lvbklEIiwKICAgICk7CgogICAgIyBkb3VibGUgY2hlY2sgaWYgZXhwcmVzc2lvbiBpcyByZWFsbHkgZGVsZXRlZAogICAgbXkgJEV4cHJlc3Npb25EYXRhID0gJENvbmRpdGlvbk9iamVjdC0+RXhwcmVzc2lvbkdldCgKICAgICAgICBFeHByZXNzaW9uSUQgPT4gJEV4cHJlc3Npb25JRCwKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgIHVuZGVmLAogICAgICAgICRFeHByZXNzaW9uRGF0YS0+e0V4cHJlc3Npb25JRH0sCiAgICAgICAgJ1Rlc3QnIC4gJFRlc3RDb3VudCsrIC4gJzogRXhwcmVzc2lvbkRlbGV0ZSgpIC0gZG91YmxlIGNoZWNrJywKICAgICk7Cn0KCiMgY2hlY2sgZm9yIGFjdGlvbiBkZWxldGUKZm9yIG15ICRBY3Rpb25JRCAoQEFjdGlvbklEcykgewogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJENvbmRpdGlvbk9iamVjdC0+QWN0aW9uRGVsZXRlKAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICAgICBBY3Rpb25JRCA9PiAkQWN0aW9uSUQsCiAgICAgICAgKSwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIEFjdGlvbkRlbGV0ZSAtPiBBY3Rpb25JRDogJEFjdGlvbklEIiwKICAgICk7CgogICAgIyBkb3VibGUgY2hlY2sgaWYgYWN0aW9uIGlzIHJlYWxseSBkZWxldGVkCiAgICBteSAkQWN0aW9uRGF0YSA9ICRDb25kaXRpb25PYmplY3QtPkFjdGlvbkdldCgKICAgICAgICBBY3Rpb25JRCA9PiAkQWN0aW9uSUQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgIHVuZGVmLAogICAgICAgICRBY3Rpb25EYXRhLT57QWN0aW9uSUR9LAogICAgICAgICdUZXN0JyAuICRUZXN0Q291bnQrKyAuICc6IEFjdGlvbkRlbGV0ZSgpIC0gZG91YmxlIGNoZWNrJywKICAgICk7Cn0KCiMgY2hlY2sgZm9yIGNvbmRpdGlvbiBkZWxldGUKZm9yIG15ICRDb25kaXRpb25JRCAoQENvbmRpdGlvbklEcykgewoKICAgIG15ICREZWxldGVTdWNjZXNzID0gJENvbmRpdGlvbk9iamVjdC0+Q29uZGl0aW9uRGVsZXRlKAogICAgICAgIENvbmRpdGlvbklEID0+ICRDb25kaXRpb25JRCwKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkRGVsZXRlU3VjY2VzcywKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIENvbmRpdGlvbkRlbGV0ZSAtPiBDb25kaXRpb25JRDogJENvbmRpdGlvbklEIiwKICAgICk7CgogICAgIyBkb3VibGUgY2hlY2sgaWYgY29uZGl0aW9uIGlzIHJlYWxseSBkZWxldGVkCiAgICBteSAkQ29uZGl0aW9uRGF0YSA9ICRDb25kaXRpb25PYmplY3QtPkNvbmRpdGlvbkdldCgKICAgICAgICBDb25kaXRpb25JRCA9PiAkQ29uZGl0aW9uSUQsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgIHVuZGVmLAogICAgICAgICRDb25kaXRpb25EYXRhLT57Q29uZGl0aW9uSUR9LAogICAgICAgICdUZXN0JyAuICRUZXN0Q291bnQrKyAuICc6IENvbmRpdGlvbkRlbGV0ZSgpIC0gZG91YmxlIGNoZWNrJywKICAgICk7Cn0KCiMgc2V0IFNlbmROb3RpZmljYXRpb25zIHRvIGl0J3Mgb3JpZ2luYWwgdmFsdWUKJENvbmZpZ09iamVjdC0+U2V0KAogICAgS2V5ICAgPT4gJ0lUU01DaGFuZ2U6OlNlbmROb3RpZmljYXRpb25zJywKICAgIFZhbHVlID0+ICRTZW5kTm90aWZpY2F0aW9uc09yZywKKTsKCiMgY2xlYW51cCBpcyBkb25lIGJ5IFJlc3RvcmVEYXRhYmFzZQoKc3ViIF9BY3Rpb25BZGQgewogICAgbXkgJEFjdGlvbkRhdGEgPSBzaGlmdDsKCiAgICByZXR1cm4gaWYgISRBY3Rpb25EYXRhOwogICAgcmV0dXJuIGlmIHJlZiAkQWN0aW9uRGF0YSBuZSAnSEFTSCc7CgogICAgIyBoYXNoIGZvciBhZGRpbmcKICAgIG15ICVBY3Rpb25BZGQ7CgogICAgIyBzZXQgc3RhdGljIGZpZWxkcwogICAgbXkgQFN0YXRpY0ZpZWxkcyA9IHF3KCBTZWxlY3RvciBBY3Rpb25WYWx1ZSBVc2VySUQgQ29uZGl0aW9uSUQgKTsKCiAgICBTVEFUSUNGSUVMRDoKICAgIGZvciBteSAkU3RhdGljRmllbGQgKEBTdGF0aWNGaWVsZHMpIHsKCiAgICAgICAgIyBvbWl0IHN0YXRpYyBmaWVsZCBpZiBpdCBpcyBub3Qgc2V0CiAgICAgICAgbmV4dCBTVEFUSUNGSUVMRCBpZiAhZXhpc3RzICRBY3Rpb25EYXRhLT57JFN0YXRpY0ZpZWxkfTsKICAgICAgICBuZXh0IFNUQVRJQ0ZJRUxEIGlmICFkZWZpbmVkICRBY3Rpb25EYXRhLT57JFN0YXRpY0ZpZWxkfTsKCiAgICAgICAgIyBzYWZlIGRhdGEKICAgICAgICAkQWN0aW9uQWRkeyRTdGF0aWNGaWVsZH0gPSAkQWN0aW9uRGF0YS0+eyRTdGF0aWNGaWVsZH07CiAgICB9CgogICAgIyBnZXQgYWxsIGZpZWxkcyBmb3IgQWN0aW9uQWRkCiAgICBBQ1RJT05BRERWQUxVRToKICAgIGZvciBteSAkQWN0aW9uQWRkVmFsdWUgKCBzb3J0IGtleXMgJXskQWN0aW9uRGF0YX0gKSB7CgogICAgICAgICMgb21pdCBzdGF0aWMgZmllbGRzCiAgICAgICAgbmV4dCBBQ1RJT05BRERWQUxVRSBpZiBncmVwIHsgJF8gZXEgJEFjdGlvbkFkZFZhbHVlIH0gQFN0YXRpY0ZpZWxkczsKCiAgICAgICAgIyBnZXQgdmFsdWVzIGZvciBmaWVsZHMKICAgICAgICBmb3IgbXkgJEZpZWxkVmFsdWUgKCBzb3J0IGtleXMgJXsgJEFjdGlvbkRhdGEtPnskQWN0aW9uQWRkVmFsdWV9IH0gKSB7CgogICAgICAgICAgICAjIHN0b3JlIGdhdGhlcmVkIGluZm9ybWF0aW9uIGluIGhhc2ggZm9yIGFkZGluZwogICAgICAgICAgICAkQWN0aW9uQWRkeyRBY3Rpb25BZGRWYWx1ZX0gPSAkQ29uZGl0aW9uT2JqZWN0LT4kRmllbGRWYWx1ZSgKICAgICAgICAgICAgICAgICV7ICRBY3Rpb25EYXRhLT57JEFjdGlvbkFkZFZhbHVlfS0+eyRGaWVsZFZhbHVlfSB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGFkZCBhY3Rpb24KICAgIG15ICRBY3Rpb25JRCA9ICRDb25kaXRpb25PYmplY3QtPkFjdGlvbkFkZCgKICAgICAgICAlQWN0aW9uQWRkLAogICAgKSB8fCAwOwoKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRBY3Rpb25JRCwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIEFjdGlvbkFkZCAtPiAkQWN0aW9uSUQiLAogICAgKTsKCiAgICAjIGNoZWNrIGZvciBBY3Rpb25JRAogICAgcmV0dXJuIGlmICEkQWN0aW9uSUQ7CgogICAgIyBjaGVjayB0aGUgYWRkZWQgYWN0aW9uCiAgICBteSAkQWN0aW9uR2V0ID0gJENvbmRpdGlvbk9iamVjdC0+QWN0aW9uR2V0KAogICAgICAgIEFjdGlvbklEID0+ICRBY3Rpb25JRCwKICAgICAgICBVc2VySUQgICA9PiAkQWN0aW9uQWRke1VzZXJJRH0sCiAgICApOwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJEFjdGlvbkdldCwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gJyAtIEFjdGlvbkFkZCgpOiBBY3Rpb25HZXQnLAogICAgKTsKCiAgICAjIGRlbGV0ZSBVc2VySUQsIGl0IGlzIG5vdCByZXR1cm5lZAogICAgZGVsZXRlICRBY3Rpb25BZGR7VXNlcklEfTsKCiAgICAjIHRlc3QgdmFsdWVzCiAgICBmb3IgbXkgJFRlc3RWYWx1ZSAoIHNvcnQga2V5cyAlQWN0aW9uQWRkICkgewogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJEFjdGlvbkdldC0+eyRUZXN0VmFsdWV9LAogICAgICAgICAgICAkQWN0aW9uQWRkeyRUZXN0VmFsdWV9LAogICAgICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIiAtIEFjdGlvbkFkZCgpOiBBY3Rpb25HZXQgLT4gJFRlc3RWYWx1ZSIsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJEFjdGlvbklEOwp9CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/ITSMStateMachine.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBtYWtlIHByZXBhcmF0aW9ucwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgpteSAkVGVzdENvdW50ID0gMTsKCiMgY3JlYXRlIGNvbW1vbiBvYmplY3RzCm15ICRTdGF0ZU1hY2hpbmVPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNU3RhdGVNYWNoaW5lJyk7Cm15ICRHZW5lcmFsQ2F0YWxvZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpOwoKIyB0ZXN0IGlmIHN0YXRlbWFjaGluZSBvYmplY3Qgd2FzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5CiRTZWxmLT5UcnVlKAogICAgJFN0YXRlTWFjaGluZU9iamVjdCwKICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAnIC0gY29uc3RydWN0aW9uIG9mIHN0YXRlbWFjaGluZSBvYmplY3QnLAopOwokU2VsZi0+SXMoCiAgICByZWYgJFN0YXRlTWFjaGluZU9iamVjdCwKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVN0YXRlTWFjaGluZScsCiAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gJyAtIGNsYXNzIG9mIHN0YXRlbWFjaGluZSBvYmplY3QnLAopOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3QgU3RhdGVNYWNoaW5lIEFQSQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCnsKCiAgICAjIGRlZmluZSBwdWJsaWMgaW50ZXJmYWNlIChpbiBhbHBoYWJldGljYWwgb3JkZXIpCiAgICBteSBAT2JqZWN0TWV0aG9kcyA9IHF3KAogICAgICAgIFN0YXRlTGlzdAogICAgICAgIFN0YXRlTG9va3VwCiAgICAgICAgU3RhdGVUcmFuc2l0aW9uQWRkCiAgICAgICAgU3RhdGVUcmFuc2l0aW9uRGVsZXRlCiAgICAgICAgU3RhdGVUcmFuc2l0aW9uRGVsZXRlQWxsCiAgICAgICAgU3RhdGVUcmFuc2l0aW9uR2V0CiAgICAgICAgU3RhdGVUcmFuc2l0aW9uR2V0RW5kU3RhdGVzCiAgICAgICAgU3RhdGVUcmFuc2l0aW9uTGlzdAogICAgICAgIFN0YXRlVHJhbnNpdGlvblVwZGF0ZQogICAgKTsKCiAgICAjIGNoZWNrIGlmIHN1YnMgYXJlIGF2YWlsYWJsZQogICAgZm9yIG15ICRPYmplY3RNZXRob2QgKEBPYmplY3RNZXRob2RzKSB7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdGF0ZU1hY2hpbmVPYmplY3QtPmNhbigkT2JqZWN0TWV0aG9kKSwKICAgICAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSBjaGVjayAnY2FuICRPYmplY3RNZXRob2QnIiwKICAgICAgICApOwogICAgfQp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgZGVmaW5lIGRlZmF1bHQgdHJhbnNpdGlvbnMgZm9yIGNoYW5nZSBzdGF0ZXMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBnZXQgdGhlIGNoYW5nZSBzdGF0ZXMgZnJvbSB0aGUgZ2VuZXJhbCBjYXRhbG9nCm15ICVOYW1lMkNoYW5nZVN0YXRlSUQgPSByZXZlcnNlICV7CiAgICAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICkKfTsKCiMgYWRkIHplcm8gZW50cnkgZm9yIHRoZSBpbml0aWFsIHN0YXRlCiROYW1lMkNoYW5nZVN0YXRlSUR7MH0gPSAwOwoKIyBidWlsZCByZXZlcnNlIGxvb2t1cCBoYXNoCm15ICVDaGFuZ2VTdGF0ZUlEMk5hbWUgPSByZXZlcnNlICVOYW1lMkNoYW5nZVN0YXRlSUQ7CgojIGRlZmF1bHQgQ2hhbmdlU3RhdGUgVHJhbnNpdGlvbnMKbXkgJURlZmF1bHRDaGFuZ2VTdGF0ZVRyYW5zaXRpb25zID0gKAogICAgMCAgICAgICAgICAgICAgICAgID0+IFsncmVxdWVzdGVkJ10sCiAgICAncmVxdWVzdGVkJyAgICAgICAgPT4gWyAncmVqZWN0ZWQnLCAgICAncmV0cmFjdGVkJywgJ3BlbmRpbmcgYXBwcm92YWwnLCAnaW4gcHJvZ3Jlc3MnIF0sCiAgICAncGVuZGluZyBhcHByb3ZhbCcgPT4gWyAncmVqZWN0ZWQnLCAgICAncmV0cmFjdGVkJywgJ2FwcHJvdmVkJyBdLAogICAgJ2FwcHJvdmVkJyAgICAgICAgID0+IFsgJ3JldHJhY3RlZCcsICAgJ2luIHByb2dyZXNzJyBdLAogICAgJ2luIHByb2dyZXNzJyAgICAgID0+IFsgJ3BlbmRpbmcgcGlyJywgJ3JldHJhY3RlZCcsICdmYWlsZWQnLCAnc3VjY2Vzc2Z1bCcsICdjYW5jZWxlZCcgXSwKICAgICdwZW5kaW5nIHBpcicgICAgICA9PiBbICdmYWlsZWQnLCAgICAgICdzdWNjZXNzZnVsJyBdLAogICAgJ3JlamVjdGVkJyAgICAgICAgID0+IFswXSwKICAgICdyZXRyYWN0ZWQnICAgICAgICA9PiBbMF0sCiAgICAnZmFpbGVkJyAgICAgICAgICAgPT4gWzBdLAogICAgJ3N1Y2Nlc3NmdWwnICAgICAgID0+IFswXSwKICAgICdjYW5jZWxlZCcgICAgICAgICA9PiBbMF0sCik7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgZGVmaW5lIGRlZmF1bHQgdHJhbnNpdGlvbnMgZm9yIHdvcmtvcmRlciBzdGF0ZXMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBnZXQgdGhlIHdvcmtvcmRlciBzdGF0ZXMgZnJvbSB0aGUgZ2VuZXJhbCBjYXRhbG9nCm15ICVOYW1lMldvcmtPcmRlclN0YXRlSUQgPSByZXZlcnNlICV7CiAgICAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlN0YXRlJywKICAgICkKfTsKCiMgYWRkIHplcm8gZW50cnkgZm9yIHRoZSBpbml0aWFsIHN0YXRlCiROYW1lMldvcmtPcmRlclN0YXRlSUR7MH0gPSAwOwoKIyBidWlsZCByZXZlcnNlIGxvb2t1cCBoYXNoCm15ICVXb3JrT3JkZXJTdGF0ZUlEMk5hbWUgPSByZXZlcnNlICVOYW1lMldvcmtPcmRlclN0YXRlSUQ7CgojIGRlZmF1bHQgV29ya09yZGVyU3RhdGUgVHJhbnNpdGlvbnMKbXkgJURlZmF1bHRXb3JrT3JkZXJTdGF0ZVRyYW5zaXRpb25zID0gKAogICAgMCAgICAgICAgICAgICA9PiBbJ2NyZWF0ZWQnXSwKICAgICdjcmVhdGVkJyAgICAgPT4gWyAnYWNjZXB0ZWQnLCAgICAnY2FuY2VsZWQnIF0sCiAgICAnYWNjZXB0ZWQnICAgID0+IFsgJ3JlYWR5JywgICAgICAgJ2NhbmNlbGVkJyBdLAogICAgJ3JlYWR5JyAgICAgICA9PiBbICdpbiBwcm9ncmVzcycsICdjYW5jZWxlZCcgXSwKICAgICdpbiBwcm9ncmVzcycgPT4gWyAnY2xvc2VkJywgICAgICAnY2FuY2VsZWQnIF0sCiAgICAnY2FuY2VsZWQnICAgID0+IFswXSwKICAgICdjbG9zZWQnICAgICAgPT4gWzBdLAopOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHN0YXRlIHRyYW5zaXRpb24gZ2V0IGVuZCBzdGF0ZXMgdGVzdHMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKewoKICAgICMgZ2V0IG5leHQgZW5kIHN0YXRlcyBmb3IgJ2FwcHJvdmVkJwogICAgbXkgJE5leHRFbmRTdGF0ZUlEc1JlZiA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlVHJhbnNpdGlvbkdldEVuZFN0YXRlcygKICAgICAgICBTdGF0ZUlEID0+ICROYW1lMkNoYW5nZVN0YXRlSUR7YXBwcm92ZWR9LAogICAgICAgIENsYXNzICAgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgKTsKICAgIG15ICVOZXh0RW5kU3RhdGVMb29rdXAgPSBtYXAgeyAkXyA9PiAxIH0gQHskTmV4dEVuZFN0YXRlSURzUmVmfTsKCiAgICAjICdyZXRyYWN0ZWQnIGlzIGEgbmV4dCBlbmQgc3RhdGUKICAgICRTZWxmLT5UcnVlKAogICAgICAgICROZXh0RW5kU3RhdGVMb29rdXB7ICROYW1lMkNoYW5nZVN0YXRlSUR7cmV0cmFjdGVkfSB9LAogICAgICAgICdUZXN0ICcKICAgICAgICAgICAgLiAkVGVzdENvdW50KysKICAgICAgICAgICAgLiAiOiBTdGF0ZVRyYW5zaXRpb25HZXRFbmRTdGF0ZXMoKSAtIEdldCB0aGUgbmV4dCBlbmQgc3RhdGVzLiIsCiAgICApOwoKICAgICMgJ2luIHByb2dyZXNzJyBpcyBub3QgYSBuZXh0IGVuZCBzdGF0ZQogICAgJFNlbGYtPkZhbHNlKAogICAgICAgICROZXh0RW5kU3RhdGVMb29rdXB7ICROYW1lMkNoYW5nZVN0YXRlSUR7J2luIHByb2dyZXNzJ30gfSwKICAgICAgICAnVGVzdCAnCiAgICAgICAgICAgIC4gJFRlc3RDb3VudCsrCiAgICAgICAgICAgIC4gIjogU3RhdGVUcmFuc2l0aW9uR2V0RW5kU3RhdGVzKCkgLSBHZXQgdGhlIG5leHQgZW5kIHN0YXRlcy4iLAogICAgKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgICMgZ2V0IG5leHQgZW5kIHN0YXRlcyBmb3IgJ3JlcXVlc3RlZCcKICAgICROZXh0RW5kU3RhdGVJRHNSZWYgPSAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZVRyYW5zaXRpb25HZXRFbmRTdGF0ZXMoCiAgICAgICAgU3RhdGVJRCA9PiAkTmFtZTJDaGFuZ2VTdGF0ZUlEe3JlcXVlc3RlZH0sCiAgICAgICAgQ2xhc3MgICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICApOwogICAgJU5leHRFbmRTdGF0ZUxvb2t1cCA9IG1hcCB7ICRfID0+IDEgfSBAeyROZXh0RW5kU3RhdGVJRHNSZWZ9OwoKICAgICMgJ3JlamVjdGVkJyBpcyBhIG5leHQgZW5kIHN0YXRlCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkTmV4dEVuZFN0YXRlTG9va3VweyAkTmFtZTJDaGFuZ2VTdGF0ZUlEe3JlamVjdGVkfSB9LAogICAgICAgICdUZXN0ICcKICAgICAgICAgICAgLiAkVGVzdENvdW50KysKICAgICAgICAgICAgLiAiOiBTdGF0ZVRyYW5zaXRpb25HZXRFbmRTdGF0ZXMoKSAtIEdldCB0aGUgbmV4dCBlbmQgc3RhdGVzLiIsCiAgICApOwoKICAgICMgJ3JldHJhY3RlZCcgaXMgYSBuZXh0IGVuZCBzdGF0ZQogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJE5leHRFbmRTdGF0ZUxvb2t1cHsgJE5hbWUyQ2hhbmdlU3RhdGVJRHtyZXRyYWN0ZWR9IH0sCiAgICAgICAgJ1Rlc3QgJwogICAgICAgICAgICAuICRUZXN0Q291bnQrKwogICAgICAgICAgICAuICI6IFN0YXRlVHJhbnNpdGlvbkdldEVuZFN0YXRlcygpIC0gR2V0IHRoZSBuZXh0IGVuZCBzdGF0ZXMuIiwKICAgICk7CgogICAgIyAncGVuZGluZyBhcHByb3ZhbCcgaXMgbm90IGEgbmV4dCBlbmQgc3RhdGUKICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAkTmV4dEVuZFN0YXRlTG9va3VweyAkTmFtZTJDaGFuZ2VTdGF0ZUlEeydwZW5kaW5nIGFwcHJvdmFsJ30gfSwKICAgICAgICAnVGVzdCAnCiAgICAgICAgICAgIC4gJFRlc3RDb3VudCsrCiAgICAgICAgICAgIC4gIjogU3RhdGVUcmFuc2l0aW9uR2V0RW5kU3RhdGVzKCkgLSBHZXQgdGhlIG5leHQgZW5kIHN0YXRlcy4iLAogICAgKTsKCiAgICAjICdpbiBwcm9ncmVzcycgaXMgbm90IGEgbmV4dCBlbmQgc3RhdGUKICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAkTmV4dEVuZFN0YXRlTG9va3VweyAkTmFtZTJDaGFuZ2VTdGF0ZUlEeydpbiBwcm9ncmVzcyd9IH0sCiAgICAgICAgJ1Rlc3QgJwogICAgICAgICAgICAuICRUZXN0Q291bnQrKwogICAgICAgICAgICAuICI6IFN0YXRlVHJhbnNpdGlvbkdldEVuZFN0YXRlcygpIC0gR2V0IHRoZSBuZXh0IGVuZCBzdGF0ZXMuIiwKICAgICk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICAjIGdldCBuZXh0IGVuZCBzdGF0ZXMgZm9yICdyZXRyYWN0ZWQnCiAgICAkTmV4dEVuZFN0YXRlSURzUmVmID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVUcmFuc2l0aW9uR2V0RW5kU3RhdGVzKAogICAgICAgIFN0YXRlSUQgPT4gJE5hbWUyQ2hhbmdlU3RhdGVJRHtyZXRyYWN0ZWR9LAogICAgICAgIENsYXNzICAgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgKTsKCiAgICAjICdyZXRyYWN0ZWQnIGhhcyBubyBuZXh0IGVuZCBzdGF0ZXMsIGJlY2F1c2UgaXQgaXMgYW4gZW5kIHN0YXRlIGl0c2VsZgogICAgJFNlbGYtPkZhbHNlKAogICAgICAgIHNjYWxhciBAeyROZXh0RW5kU3RhdGVJRHNSZWZ9LAogICAgICAgICdUZXN0ICcKICAgICAgICAgICAgLiAkVGVzdENvdW50KysKICAgICAgICAgICAgLiAiOiBTdGF0ZVRyYW5zaXRpb25HZXRFbmRTdGF0ZXMoKSAtIEdldCB0aGUgbmV4dCBlbmQgc3RhdGVzLiIsCiAgICApOwp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgc3RhdGUgdHJhbnNpdGlvbiBhZGQsIHVwZGF0ZSBhbmQgZGVsZXRlIHRlc3RzCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCnsKCiAgICAjIGFkZCBhIHNlY29uZCBzdGFydCB0cmFuc2l0aW9uICggbXVzdCBmYWlsICkKICAgIG15ICRUcmFuc2l0aW9uSUQgPSAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZVRyYW5zaXRpb25BZGQoCiAgICAgICAgU3RhdGVJRCAgICAgPT4gMCwKICAgICAgICBOZXh0U3RhdGVJRCA9PiAkTmFtZTJDaGFuZ2VTdGF0ZUlEe2FwcHJvdmVkfSwKICAgICAgICBDbGFzcyAgICAgICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICApOwogICAgJFNlbGYtPkZhbHNlKAogICAgICAgICRUcmFuc2l0aW9uSUQsCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICI6IFN0YXRlVHJhbnNpdGlvbkFkZCgpIC0gQWRkIGFub3RoZXIgc3RhcnQgc3RhdGUgdHJhbnNpdGlvbi4iLAogICAgKTsKCiAgICAjIGFkZCBhIG5ldyBjaGFuZ2Ugc3RhdGUgdHJhbnNpdGlvbgogICAgJFRyYW5zaXRpb25JRCA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlVHJhbnNpdGlvbkFkZCgKICAgICAgICBTdGF0ZUlEICAgICA9PiAkTmFtZTJDaGFuZ2VTdGF0ZUlEe2FwcHJvdmVkfSwKICAgICAgICBOZXh0U3RhdGVJRCA9PiAkTmFtZTJDaGFuZ2VTdGF0ZUlEe2FwcHJvdmVkfSwKICAgICAgICBDbGFzcyAgICAgICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICApOwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJFRyYW5zaXRpb25JRCwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIjogU3RhdGVUcmFuc2l0aW9uQWRkKCkgLSBBZGQgYSBuZXcgY2hhbmdlIHN0YXRlIHRyYW5zaXRpb24uIiwKICAgICk7CgogICAgIyB0cnkgdG8gc2V0IHRoZSBzdGF0ZSB0byBiZSBhbiBlbmQgc3RhdGUgKG11c3QgZmFpbCwgYmVjYXVzZSBvdGhlciBmb2xsb3dpbmcgc3RhdGVzIGV4aXN0KQogICAgJFRyYW5zaXRpb25JRCA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlVHJhbnNpdGlvbkFkZCgKICAgICAgICBTdGF0ZUlEICAgICA9PiAkTmFtZTJDaGFuZ2VTdGF0ZUlEe2FwcHJvdmVkfSwKICAgICAgICBOZXh0U3RhdGVJRCA9PiAwLAogICAgICAgIENsYXNzICAgICAgID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICk7CiAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgJFRyYW5zaXRpb25JRCwKICAgICAgICAnVGVzdCAnCiAgICAgICAgICAgIC4gJFRlc3RDb3VudCsrCiAgICAgICAgICAgIC4gIjogU3RhdGVUcmFuc2l0aW9uQWRkKCkgLSBBZGQgYSBuZXcgY2hhbmdlIHN0YXRlIHRyYW5zaXRpb24gbXVzdCBmYWlsLCBiZWNhdXNlIG9mIGV4aXN0aW5nIGZvbGxvd2luZyBzdGF0ZXMuIiwKICAgICk7CgogICAgIyB1cGRhdGUgYSBzdGF0ZSB0cmFuc2l0aW9uCiAgICBteSAkU3VjY2VzcyA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlVHJhbnNpdGlvblVwZGF0ZSgKICAgICAgICBTdGF0ZUlEICAgICAgICA9PiAkTmFtZTJDaGFuZ2VTdGF0ZUlEe2FwcHJvdmVkfSwKICAgICAgICBOZXh0U3RhdGVJRCAgICA9PiAkTmFtZTJDaGFuZ2VTdGF0ZUlEe2FwcHJvdmVkfSwKICAgICAgICBOZXdOZXh0U3RhdGVJRCA9PiAkTmFtZTJDaGFuZ2VTdGF0ZUlEe2ZhaWxlZH0sCiAgICAgICAgQ2xhc3MgICAgICAgICAgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgKTsKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRTdWNjZXNzLAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiOiBTdGF0ZVRyYW5zaXRpb25VcGRhdGUoKSAtIFVwZGF0ZSBjaGFuZ2Ugc3RhdGUgdHJhbnNpdGlvbi4iLAogICAgKTsKCiAgICAjIGdldCB0aGUgdXBkYXRlZCBzdGF0ZSB0cmFuc2l0aW9uCiAgICBteSAkTmV4dFN0YXRlSURzUmVmID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVUcmFuc2l0aW9uR2V0KAogICAgICAgIFN0YXRlSUQgPT4gJE5hbWUyQ2hhbmdlU3RhdGVJRHthcHByb3ZlZH0sCiAgICAgICAgQ2xhc3MgICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICApOwogICAgbXkgJU5leHRTdGF0ZUxvb2t1cCA9IG1hcCB7ICRfID0+IDEgfSBAeyROZXh0U3RhdGVJRHNSZWZ9OwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJE5leHRTdGF0ZUxvb2t1cHsgJE5hbWUyQ2hhbmdlU3RhdGVJRHtmYWlsZWR9IH0sCiAgICAgICAgJ1Rlc3QgJwogICAgICAgICAgICAuICRUZXN0Q291bnQrKwogICAgICAgICAgICAuICI6IFN0YXRlVHJhbnNpdGlvbkdldCgpIC0gR2V0IHRoZSB1cGRhdGVkIGNoYW5nZSBzdGF0ZSB0cmFuc2l0aW9uLiIsCiAgICApOwoKICAgICMgdXBkYXRlIGEgc3RhdGUgdHJhbnNpdGlvbgogICAgIyAobXVzdCBmYWlsLCBiZWNhdXNlIG5ldyBuZXh0IHN0YXRlIGlzIGFuIGVuZCBzdGF0ZSBhbmQgb3RoZXIgZm9sbG93aW5nIHN0YXRlcyBhbHJlYWR5IGV4aXN0cykKICAgICRTdWNjZXNzID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVUcmFuc2l0aW9uVXBkYXRlKAogICAgICAgIFN0YXRlSUQgICAgICAgID0+ICROYW1lMkNoYW5nZVN0YXRlSUR7cmVxdWVzdGVkfSwKICAgICAgICBOZXh0U3RhdGVJRCAgICA9PiAkTmFtZTJDaGFuZ2VTdGF0ZUlEe3JlamVjdGVkfSwKICAgICAgICBOZXdOZXh0U3RhdGVJRCA9PiAwLAogICAgICAgIENsYXNzICAgICAgICAgID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICk7CiAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgJ1Rlc3QgJwogICAgICAgICAgICAuICRUZXN0Q291bnQrKwogICAgICAgICAgICAuICI6IFN0YXRlVHJhbnNpdGlvblVwZGF0ZSgpIC0gVXBkYXRlIGNoYW5nZSBzdGF0ZSB0cmFuc2l0aW9uIChzZXQgZW5kIHN0YXRlIG11c3QgZmFpbCkuIiwKICAgICk7CgogICAgIyB1cGRhdGUgYSBzdGF0ZSB0cmFuc2l0aW9uIChtdXN0IGZhaWwsIGJlY2F1c2UgYm90aCBzdGF0ZXMgYXJlIHplcm8pCiAgICAkU3VjY2VzcyA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlVHJhbnNpdGlvblVwZGF0ZSgKICAgICAgICBTdGF0ZUlEICAgICAgICA9PiAwLAogICAgICAgIE5leHRTdGF0ZUlEICAgID0+IDAsCiAgICAgICAgTmV3TmV4dFN0YXRlSUQgPT4gMCwKICAgICAgICBDbGFzcyAgICAgICAgICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICApOwogICAgJFNlbGYtPkZhbHNlKAogICAgICAgICRTdWNjZXNzLAogICAgICAgICdUZXN0ICcKICAgICAgICAgICAgLiAkVGVzdENvdW50KysKICAgICAgICAgICAgLiAiOiBTdGF0ZVRyYW5zaXRpb25VcGRhdGUoKSAtIFVwZGF0ZSBjaGFuZ2Ugc3RhdGUgdHJhbnNpdGlvbiAoYm90aCBzdGF0ZXMgemVybyB0ZXN0KS4iLAogICAgKTsKCiAgICAjIGRlbGV0ZSB0aGUgdHJhbnNpdGlvbiB0aGF0IHdhcyBhZGRlZCBiZWZvcmUKICAgIG15ICREZWxldGVTdWNjZXNzID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVUcmFuc2l0aW9uRGVsZXRlKAogICAgICAgIFN0YXRlSUQgICAgID0+ICROYW1lMkNoYW5nZVN0YXRlSUR7YXBwcm92ZWR9LAogICAgICAgIE5leHRTdGF0ZUlEID0+ICROYW1lMkNoYW5nZVN0YXRlSUR7ZmFpbGVkfSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkRGVsZXRlU3VjY2VzcywKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIjogU3RhdGVUcmFuc2l0aW9uRGVsZXRlKCkgLSBEZWxldGUgYSBjaGFuZ2Ugc3RhdGUgdHJhbnNpdGlvbi4iLAogICAgKTsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIGNoZWNrIHRoZSBkZWZhdWx0IFN0YXRlTWFjaGluZSB0cmFuc2l0aW9ucyBmb3IgY2hhbmdlIHN0YXRlcwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIGdldCBkZWZhdWx0IGNoYW5nZSBzdGF0ZSB0cmFuc2l0aW9ucyBmcm9tIGRhdGFiYXNlCm15ICRDaGFuZ2VTdGF0ZVRyYW5zaXRpb25zID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVUcmFuc2l0aW9uTGlzdCgKICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKKTsKCiMgY2hlY2sgU3RhdGVUcmFuc2l0aW9uTGlzdCBmb3IgY2hhbmdlIHN0YXRlcwokU2VsZi0+SXMoCiAgICBzY2FsYXIga2V5cyAleyRDaGFuZ2VTdGF0ZVRyYW5zaXRpb25zfSB8fCAwLAogICAgc2NhbGFyIGtleXMgJURlZmF1bHRDaGFuZ2VTdGF0ZVRyYW5zaXRpb25zLAogICAgJ1Rlc3QgJwogICAgICAgIC4gJFRlc3RDb3VudCsrCiAgICAgICAgLiAiOiBTdGF0ZVRyYW5zaXRpb25MaXN0KCkgLSBudW1iZXIgb2YgZGVmYXVsdCBzdGFydCBzdGF0ZXMgZm9yIGNoYW5nZSBzdGF0ZXMuIiwKKTsKCmZvciBteSAkRGVmYXVsdFN0YXRlICggc29ydCBrZXlzICVEZWZhdWx0Q2hhbmdlU3RhdGVUcmFuc2l0aW9ucyApIHsKCiAgICAjIGNvbnZlcnQgdGhlIGRlZmF1bHQgc3RhdGUgdG8gYSBzdGF0ZUlECiAgICBteSAkRGVmYXVsdFN0YXRlSUQgPSAkTmFtZTJDaGFuZ2VTdGF0ZUlEeyREZWZhdWx0U3RhdGV9OwoKICAgICMgY2hlY2sgaWYgYWxsIHN0YXJ0IHN0YXRlcyBhcmUgdGhlIHNhbWUgYXMgdGhlIGRlZmF1bHQKICAgICMgYW5kIGhhdmUgdGhlIHNhbWUgbnVtYmVyIG9mIG5leHQgc3RhdGVzCiAgICAkU2VsZi0+SXMoCiAgICAgICAgc2NhbGFyIEB7ICRDaGFuZ2VTdGF0ZVRyYW5zaXRpb25zLT57ICROYW1lMkNoYW5nZVN0YXRlSUR7JERlZmF1bHRTdGF0ZX0gfSB9LAogICAgICAgIHNjYWxhciBAeyAkRGVmYXVsdENoYW5nZVN0YXRlVHJhbnNpdGlvbnN7JERlZmF1bHRTdGF0ZX0gfSwKICAgICAgICAnVGVzdCAnCiAgICAgICAgICAgIC4gJFRlc3RDb3VudCsrCiAgICAgICAgICAgIC4gIjogU3RhdGVUcmFuc2l0aW9uTGlzdCgpIC0gbnVtYmVyIG9mIGRlZmF1bHQgbmV4dCBzdGF0ZXMgZm9yIGNoYW5nZSBzdGF0ZSAnJERlZmF1bHRTdGF0ZScuIiwKICAgICk7CgogICAgIyBnZXQgbG9va3VwIGhhc2ggb2YgYWN0dWFsIG5leHQgc3RhdGVzCiAgICBteSBATmV4dFN0YXRlcyA9IHNvcnQgbWFwIHsgJENoYW5nZVN0YXRlSUQyTmFtZXskX30gfSBAeyAkQ2hhbmdlU3RhdGVUcmFuc2l0aW9ucy0+eyREZWZhdWx0U3RhdGVJRH0gfTsKCiAgICBteSAkSW5kZXggPSAwOwogICAgZm9yIG15ICREZWZhdWx0TmV4dFN0YXRlICggc29ydCBAeyAkRGVmYXVsdENoYW5nZVN0YXRlVHJhbnNpdGlvbnN7JERlZmF1bHRTdGF0ZX0gfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBuZXh0IHN0YXRlIGlzIHRoZSB0aGUgc2FtZSBhcyB0aGUgZGVmYXVsdAogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJE5leHRTdGF0ZXNbICRJbmRleCsrIF0sCiAgICAgICAgICAgICREZWZhdWx0TmV4dFN0YXRlLAogICAgICAgICAgICAnVGVzdCAnCiAgICAgICAgICAgICAgICAuICRUZXN0Q291bnQKICAgICAgICAgICAgICAgIC4gIjogU3RhdGVUcmFuc2l0aW9uTGlzdCgpIC0gZGVmYXVsdCBuZXh0IHN0YXRlIGZvciBjaGFuZ2Ugc3RhdGUgJyREZWZhdWx0U3RhdGUnLiIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHRlc3QgdGhlIHN0YXRlIGxvb2t1cCBmdW5jdGlvbiBmb3IgdGhlIHN0YXRlCiAgICBteSAkTG9va2VkVXBTdGF0ZUlEID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVMb29rdXAoCiAgICAgICAgU3RhdGUgPT4gJERlZmF1bHRTdGF0ZSwKICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICApOwogICAgJFNlbGYtPklzKAogICAgICAgICRMb29rZWRVcFN0YXRlSUQsCiAgICAgICAgJERlZmF1bHRTdGF0ZUlELAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IFN0YXRlTG9va3VwKCkgZm9yIGNoYW5nZSBzdGF0ZSAnJERlZmF1bHRTdGF0ZScuIiwKICAgICk7CgogICAgIyB0ZXN0IHRoZSBzdGF0ZSBsb29rdXAgZnVuY3Rpb24gZm9yIHRoZSBzdGF0ZSBpZAogICAgbXkgJExvb2tlZFVwU3RhdGUgPSAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZUxvb2t1cCgKICAgICAgICBTdGF0ZUlEID0+ICREZWZhdWx0U3RhdGVJRCwKICAgICAgICBDbGFzcyAgID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICk7CiAgICAkU2VsZi0+SXMoCiAgICAgICAgJExvb2tlZFVwU3RhdGUsCiAgICAgICAgJERlZmF1bHRTdGF0ZSwKICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBTdGF0ZUxvb2t1cCgpIGZvciBjaGFuZ2Ugc3RhdGUgaWQgJyREZWZhdWx0U3RhdGVJRCcuIiwKICAgICk7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBjaGVjayB0aGUgZGVmYXVsdCBTdGF0ZU1hY2hpbmUgdHJhbnNpdGlvbnMgZm9yIHdvcmtvcmRlciBzdGF0ZXMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBnZXQgZGVmYXVsdCB3b3Jrb3JkZXIgc3RhdGUgdHJhbnNpdGlvbnMgZnJvbSBkYXRhYmFzZQpteSAkV29ya09yZGVyU3RhdGVUcmFuc2l0aW9ucyA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlVHJhbnNpdGlvbkxpc3QoCiAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpTdGF0ZScsCik7CgojIGNoZWNrIFN0YXRlVHJhbnNpdGlvbkxpc3QgZm9yIHdvcmtvcmRlciBzdGF0ZXMKJFNlbGYtPklzKAogICAgc2NhbGFyIGtleXMgJXskV29ya09yZGVyU3RhdGVUcmFuc2l0aW9uc30gfHwgMCwKICAgIHNjYWxhciBrZXlzICVEZWZhdWx0V29ya09yZGVyU3RhdGVUcmFuc2l0aW9ucywKICAgICdUZXN0ICcKICAgICAgICAuICRUZXN0Q291bnQrKwogICAgICAgIC4gIjogU3RhdGVUcmFuc2l0aW9uTGlzdCgpIC0gTnVtYmVyIG9mIGRlZmF1bHQgc3RhcnQgc3RhdGVzIGZvciB3b3Jrb3JkZXIgc3RhdGVzLiIsCik7Cgpmb3IgbXkgJERlZmF1bHRTdGF0ZSAoIHNvcnQga2V5cyAlRGVmYXVsdFdvcmtPcmRlclN0YXRlVHJhbnNpdGlvbnMgKSB7CgogICAgIyBjb252ZXJ0IHRoZSBkZWZhdWx0IHN0YXRlIHRvIGEgc3RhdGVJRAogICAgbXkgJERlZmF1bHRTdGF0ZUlEID0gJE5hbWUyV29ya09yZGVyU3RhdGVJRHskRGVmYXVsdFN0YXRlfTsKCiAgICAjIGNoZWNrIGlmIGFsbCBzdGFydCBzdGF0ZXMgYXJlIHRoZSBzYW1lIGFzIHRoZSBkZWZhdWx0CiAgICAjIGFuZCBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBuZXh0IHN0YXRlcwogICAgJFNlbGYtPklzKAogICAgICAgIHNjYWxhciBAeyAkV29ya09yZGVyU3RhdGVUcmFuc2l0aW9ucy0+eyAkTmFtZTJXb3JrT3JkZXJTdGF0ZUlEeyREZWZhdWx0U3RhdGV9IH0gfSwKICAgICAgICBzY2FsYXIgQHsgJERlZmF1bHRXb3JrT3JkZXJTdGF0ZVRyYW5zaXRpb25zeyREZWZhdWx0U3RhdGV9IH0sCiAgICAgICAgJ1Rlc3QgJwogICAgICAgICAgICAuICRUZXN0Q291bnQrKwogICAgICAgICAgICAuICI6IFN0YXRlVHJhbnNpdGlvbkxpc3QoKSAtIE51bWJlciBvZiBkZWZhdWx0IG5leHQgc3RhdGVzIGZvciB3b3Jrb3JkZXIgc3RhdGUgJyREZWZhdWx0U3RhdGUnLiIsCiAgICApOwoKICAgICMgZ2V0IGxvb2t1cCBoYXNoIG9mIGFjdHVhbCBuZXh0IHN0YXRlcwogICAgbXkgQE5leHRTdGF0ZXMgPSBzb3J0IG1hcCB7ICRXb3JrT3JkZXJTdGF0ZUlEMk5hbWV7JF99IH0KICAgICAgICBAeyAkV29ya09yZGVyU3RhdGVUcmFuc2l0aW9ucy0+eyREZWZhdWx0U3RhdGVJRH0gfTsKCiAgICBteSAkSW5kZXggPSAwOwogICAgZm9yIG15ICREZWZhdWx0TmV4dFN0YXRlICggc29ydCBAeyAkRGVmYXVsdFdvcmtPcmRlclN0YXRlVHJhbnNpdGlvbnN7JERlZmF1bHRTdGF0ZX0gfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBuZXh0IHN0YXRlIGlzIHRoZSB0aGUgc2FtZSBhcyB0aGUgZGVmYXVsdAogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJE5leHRTdGF0ZXNbICRJbmRleCsrIF0sCiAgICAgICAgICAgICREZWZhdWx0TmV4dFN0YXRlLAogICAgICAgICAgICAnVGVzdCAnCiAgICAgICAgICAgICAgICAuICRUZXN0Q291bnQKICAgICAgICAgICAgICAgIC4gIjogU3RhdGVUcmFuc2l0aW9uTGlzdCgpIC0gRGVmYXVsdCBuZXh0IHN0YXRlIGZvciB3b3Jrb3JkZXIgc3RhdGUgJyREZWZhdWx0U3RhdGUnLiIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHRlc3QgdGhlIHN0YXRlIGxvb2t1cCBmdW5jdGlvbiBmb3IgdGhlIHN0YXRlCiAgICBteSAkTG9va2VkVXBTdGF0ZUlEID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVMb29rdXAoCiAgICAgICAgU3RhdGUgPT4gJERlZmF1bHRTdGF0ZSwKICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpTdGF0ZScsCiAgICApOwogICAgJFNlbGYtPklzKAogICAgICAgICRMb29rZWRVcFN0YXRlSUQsCiAgICAgICAgJERlZmF1bHRTdGF0ZUlELAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IFN0YXRlTG9va3VwKCkgZm9yIHdvcmtvcmRlciBzdGF0ZSAnJERlZmF1bHRTdGF0ZScuIiwKICAgICk7CgogICAgIyB0ZXN0IHRoZSBzdGF0ZSBsb29rdXAgZnVuY3Rpb24gZm9yIHRoZSBzdGF0ZSBpZAogICAgbXkgJExvb2tlZFVwU3RhdGUgPSAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZUxvb2t1cCgKICAgICAgICBTdGF0ZUlEID0+ICREZWZhdWx0U3RhdGVJRCwKICAgICAgICBDbGFzcyAgID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlN0YXRlJywKICAgICk7CiAgICAkU2VsZi0+SXMoCiAgICAgICAgJExvb2tlZFVwU3RhdGUsCiAgICAgICAgJERlZmF1bHRTdGF0ZSwKICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBTdGF0ZUxvb2t1cCgpIGZvciB3b3Jrb3JkZXIgc3RhdGUgaWQgJyREZWZhdWx0U3RhdGVJRCcuIiwKICAgICk7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBzdGF0ZSB0cmFuc2l0aW9uIGdldCB0ZXN0cwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIGNvbXBhcmUgdGhlIHJlc3VsdHMgZnJvbSBTdGF0ZVRyYW5zaXRpb25MaXN0KCkgYW5kIFN0YXRlVHJhbnNpdGlvbkdldCgpCmZvciBteSAkU3RhdGVJRCAoIHNvcnQga2V5cyAleyRDaGFuZ2VTdGF0ZVRyYW5zaXRpb25zfSApIHsKCiAgICAjIGdldCB0aGUgbmV4dCBzdGF0ZSBpZHMgZnJvbSBTdGF0ZVRyYW5zaXRpb25MaXN0KCkKICAgIG15IEBOZXh0U3RhdGVJRHNGcm9tTGlzdCA9IHNvcnQgQHsgJENoYW5nZVN0YXRlVHJhbnNpdGlvbnMtPnskU3RhdGVJRH0gfTsKCiAgICAjIGdldCB0aGUgbmV4dCBzdGF0ZSBpZHMgZnJvbSBTdGF0ZVRyYW5zaXRpb25HZXQoKQogICAgbXkgJE5leHRTdGF0ZUlEc1JlZiA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlVHJhbnNpdGlvbkdldCgKICAgICAgICBTdGF0ZUlEID0+ICRTdGF0ZUlELAogICAgICAgIENsYXNzICAgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgKTsKICAgIG15IEBOZXh0U3RhdGVJRHNGcm9tR2V0ID0gc29ydCBAeyROZXh0U3RhdGVJRHNSZWZ9OwoKICAgICMgY2hlY2sgaWYgdGhlIG51bWJlciBvZiBuZXh0IHN0YXRlcyBpcyB0aGUgc2FtZQogICAgJFNlbGYtPklzKAogICAgICAgIHNjYWxhciBATmV4dFN0YXRlSURzRnJvbUdldCwKICAgICAgICBzY2FsYXIgQE5leHRTdGF0ZUlEc0Zyb21MaXN0LAogICAgICAgICdUZXN0ICcKICAgICAgICAgICAgLiAkVGVzdENvdW50KysKICAgICAgICAgICAgLiAiOiBTdGF0ZVRyYW5zaXRpb25HZXQoKSAtIE51bWJlciBvZiBuZXh0IHN0YXRlcyBmb3IgY2hhbmdlIHN0YXRlICckQ2hhbmdlU3RhdGVJRDJOYW1leyRTdGF0ZUlEfScuIiwKICAgICk7CgogICAgbXkgJEluZGV4ID0gMDsKICAgIGZvciBteSAkTmV4dFN0YXRlIChATmV4dFN0YXRlSURzRnJvbUdldCkgewoKICAgICAgICAjIGNoZWNrIGlmIHRoZSBuZXh0IHN0YXRlcyBhcmUgYWxsIHRoZSBzYW1lCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkQ2hhbmdlU3RhdGVJRDJOYW1leyROZXh0U3RhdGV9LAogICAgICAgICAgICAkQ2hhbmdlU3RhdGVJRDJOYW1leyAkTmV4dFN0YXRlSURzRnJvbUxpc3RbICRJbmRleCsrIF0gfSwKICAgICAgICAgICAgJ1Rlc3QgJwogICAgICAgICAgICAgICAgLiAkVGVzdENvdW50KysKICAgICAgICAgICAgICAgIC4gIjogU3RhdGVUcmFuc2l0aW9uR2V0KCkgLSBOZXh0IHN0YXRlIGZvciBjaGFuZ2Ugc3RhdGUgJyRDaGFuZ2VTdGF0ZUlEMk5hbWV7JFN0YXRlSUR9Jy4iLAogICAgICAgICk7CiAgICB9Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBjaGVjayBTdGF0ZUxpc3QoKSBmb3IgY2hhbmdlIHN0YXRlcwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgp7CiAgICBteSAkU3RhdGVMaXN0ID0gJFN0YXRlTWFjaGluZU9iamVjdC0+U3RhdGVMaXN0KAogICAgICAgIENsYXNzICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApIHx8IFtdOwoKICAgICMgQ2hlY2sgdGhlIG51bWJlciBvZiBjaGFuZ2Ugc3RhdGVzLiBUaGUgc3RhcnQgc3RhdGUgaXMgbm90IHJldHVybmVkIGJ5IFN0YXRlTGlzdCgpLgogICAgJFNlbGYtPklzKAogICAgICAgIHNjYWxhciggQHskU3RhdGVMaXN0fSApLAogICAgICAgIHNjYWxhcigga2V5cyAlRGVmYXVsdENoYW5nZVN0YXRlVHJhbnNpdGlvbnMgKSAtIDEsCiAgICAgICAgJ1N0YXRlTGlzdCgpIC0gQ2hhbmdlIC0gbnVtYmVyIG9mIHN0YXRlcycsCiAgICApOwoKICAgICMgY2hlY2sgd2hldGhlciB0aGUgZGVmYXVsdCBzdGF0ZXMgYXJlIGluIHRoZSBTdGF0ZUxpc3QKICAgIERFRkFVTFRfU1RBVEU6CiAgICBmb3IgbXkgJERlZmF1bHRTdGF0ZSAoIHNvcnQga2V5cyAlRGVmYXVsdENoYW5nZVN0YXRlVHJhbnNpdGlvbnMgKSB7CgogICAgICAgICMgc2tpcCB0aGUgZGVmYXVsdCBzdGF0ZSAnMCcKICAgICAgICBuZXh0IERFRkFVTFRfU1RBVEUgaWYgISREZWZhdWx0U3RhdGU7CgogICAgICAgIG15IEBNYXRjaGVzID0gZ3JlcCB7ICRfLT57VmFsdWV9IGVxICREZWZhdWx0U3RhdGUgfSBAeyRTdGF0ZUxpc3R9OwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgc2NhbGFyKEBNYXRjaGVzKSwKICAgICAgICAgICAgMSwKICAgICAgICAgICAgIlN0YXRlTGlzdCgpIC0gQ2hhbmdlIC0gZm91bmQgJERlZmF1bHRTdGF0ZSIsCiAgICAgICAgKTsKICAgIH0KfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIGNoZWNrIFN0YXRlTGlzdCgpIGZvciB3b3Jrb3JkZXIgc3RhdGVzCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCnsKICAgIG15ICRTdGF0ZUxpc3QgPSAkU3RhdGVNYWNoaW5lT2JqZWN0LT5TdGF0ZUxpc3QoCiAgICAgICAgQ2xhc3MgID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlN0YXRlJywKICAgICAgICBVc2VySUQgPT4gMSwKICAgICkgfHwgW107CgogICAgIyBDaGVjayB0aGUgbnVtYmVyIG9mIHN0YXRlcy4gVGhlIHN0YXJ0IHN0YXRlIGlzIG5vdCByZXR1cm5lZCBieSBTdGF0ZUxpc3QoKS4KICAgICRTZWxmLT5JcygKICAgICAgICBzY2FsYXIoIEB7JFN0YXRlTGlzdH0gKSwKICAgICAgICBzY2FsYXIoIGtleXMgJURlZmF1bHRXb3JrT3JkZXJTdGF0ZVRyYW5zaXRpb25zICkgLSAxLAogICAgICAgICdTdGF0ZUxpc3QoKSAtIFdvcmtPcmRlciAtIG51bWJlciBvZiBzdGF0ZXMnLAogICAgKTsKCiAgICAjIGNoZWNrIHdoZXRoZXIgdGhlIGRlZmF1bHQgc3RhdGVzIGFyZSBpbiB0aGUgU3RhdGVMaXN0CiAgICBERUZBVUxUX1NUQVRFOgogICAgZm9yIG15ICREZWZhdWx0U3RhdGUgKCBzb3J0IGtleXMgJURlZmF1bHRXb3JrT3JkZXJTdGF0ZVRyYW5zaXRpb25zICkgewoKICAgICAgICAjIHNraXAgdGhlIGRlZmF1bHQgc3RhdGUgJzAnCiAgICAgICAgbmV4dCBERUZBVUxUX1NUQVRFIGlmICEkRGVmYXVsdFN0YXRlOwoKICAgICAgICBteSBATWF0Y2hlcyA9IGdyZXAgeyAkXy0+e1ZhbHVlfSBlcSAkRGVmYXVsdFN0YXRlIH0gQHskU3RhdGVMaXN0fTsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgIHNjYWxhcihATWF0Y2hlcyksCiAgICAgICAgICAgIDEsCiAgICAgICAgICAgICJTdGF0ZUxpc3QoKSAtIFdvcmtPcmRlciAtIGZvdW5kICREZWZhdWx0U3RhdGUiLAogICAgICAgICk7CiAgICB9Cn0KCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/ITSMTemplate.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCnVzZSBEYXRhOjpEdW1wZXI7CnVzZSBMaXN0OjpVdGlsIHF3KG1heCk7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIE5vdGUgZm9yIGRldmVsb3BlcnM6CiMgUGxlYXNlIG5vdGUgdGhhdCB0aGUga2V5cyBpbiAlQ2hhbmdlRGVmaW5pdGlvbnMgKHJlc3AuIFdvcmtPcmRlckRlZmluaXRpb25zICkKIyBoYXZlIHRvIGJlIGlkZW50aWNhbCB3aXRoIHRoZSBrZXkgbmFtZXMgaW4gJVRlbXBsYXRlRGVmaW5pdGlvbnMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBtYWtlIHByZXBhcmF0aW9ucwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCm15ICRUZXN0Q291bnQgPSAxOwoKIyBjcmVhdGUgY29tbW9uIG9iamVjdHMKbXkgJENvbmZpZ09iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7Cm15ICRDdXN0b21lclVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyk7Cm15ICRWYWxpZE9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKTsKbXkgJENoYW5nZU9iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7Cm15ICRDb25kaXRpb25PYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbicpOwpteSAkV29ya09yZGVyT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKTsKbXkgJFRlbXBsYXRlT2JqZWN0ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpOwpteSAkSFRNTFV0aWxzT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpOwoKIyBnZXQgaGVscGVyIG9iamVjdAokS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInID0+IHsKICAgICAgICBSZXN0b3JlRGF0YWJhc2UgPT4gMSwKICAgIH0sCik7Cm15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKIyB0ZXN0IGlmIGNoYW5nZSBvYmplY3Qgd2FzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5CiRTZWxmLT5UcnVlKAogICAgJFRlbXBsYXRlT2JqZWN0LAogICAgIlRlc3QgIiAuICRUZXN0Q291bnQrKyAuICcgLSBjb25zdHJ1Y3Rpb24gb2YgdGVtcGxhdGUgb2JqZWN0JywKKTsKJFNlbGYtPklzKAogICAgcmVmICRUZW1wbGF0ZU9iamVjdCwKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGUnLAogICAgIlRlc3QgIiAuICRUZXN0Q291bnQrKyAuICcgLSBjbGFzcyBvZiB0ZW1wbGF0ZSBvYmplY3QnLAopOwoKIyBkZWZpbmUgbmVlZGVkIHZhcmlhYmxlCm15ICRSYW5kb21JRCAgICAgPSAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwpteSAkUmFuZG9tTnVtYmVyID0gJEhlbHBlci0+R2V0UmFuZG9tTnVtYmVyKCk7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgY3JlYXRlIG5lZWRlZCB1c2VycyBhbmQgY3VzdG9tZXIgdXNlcnMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwpteSBAQ3VzdG9tZXJVc2VySURzOyAgICAjIGEgbGlzdCBvZiBleGlzdGluZyBhbmQgdmFsaWQgY3VzdG9tZXIgdXNlciBpZHMsIGEgbGlzdCBvZiBzdHJpbmdzCgojIGRpc2FibGUgZW1haWwgY2hlY2tzIHRvIGNyZWF0ZSBuZXcgdXNlcgpteSAkQ2hlY2tFbWFpbEFkZHJlc3Nlc09yZyA9ICRDb25maWdPYmplY3QtPkdldCgnQ2hlY2tFbWFpbEFkZHJlc3NlcycpOwppZiAoICFkZWZpbmVkICRDaGVja0VtYWlsQWRkcmVzc2VzT3JnICkgewogICAgJENoZWNrRW1haWxBZGRyZXNzZXNPcmcgPSAxOwp9CiRDb25maWdPYmplY3QtPlNldCgKICAgIEtleSAgID0+ICdDaGVja0VtYWlsQWRkcmVzc2VzJywKICAgIFZhbHVlID0+IDAsCik7Cgpmb3IgbXkgJENvdW50ZXIgKCAxIC4uIDMgKSB7CgogICAgIyBjcmVhdGUgbmV3IGN1c3RvbWVycyBmb3IgdGhlIHRlc3RzCiAgICBteSAkQ3VzdG9tZXJVc2VySUQgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lclVzZXJBZGQoCiAgICAgICAgU291cmNlICAgICAgICAgPT4gJ0N1c3RvbWVyVXNlcicsCiAgICAgICAgVXNlckZpcnN0bmFtZSAgPT4gJ0lUU01DaGFuZ2VDdXN0b21lcicgLiAkQ291bnRlciwKICAgICAgICBVc2VyTGFzdG5hbWUgICA9PiAnVW5pdFRlc3RDdXN0b21lcicsCiAgICAgICAgVXNlckN1c3RvbWVySUQgPT4gJ1VDVCcgLiAkQ291bnRlciAuICRSYW5kb21JRCwKICAgICAgICBVc2VyTG9naW4gICAgICA9PiAnVW5pdFRlc3QtSVRTTVRlbXBsYXRlLUN1c3RvbWVyLScgLiAkQ291bnRlciAuICRSYW5kb21JRCwKICAgICAgICBVc2VyRW1haWwgICAgICA9PiAnVW5pdFRlc3QtSVRTTVRlbXBsYXRlLUN1c3RvbWVyLScKICAgICAgICAgICAgLiAkQ291bnRlcgogICAgICAgICAgICAuICRSYW5kb21JRAogICAgICAgICAgICAuICdAbG9jYWxob3N0JywKICAgICAgICBWYWxpZElEID0+ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoIFZhbGlkID0+ICd2YWxpZCcgKSwKICAgICAgICBVc2VySUQgID0+IDEsCiAgICApOwogICAgcHVzaCBAQ3VzdG9tZXJVc2VySURzLCAkQ3VzdG9tZXJVc2VySUQ7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyB0ZXN0IFRlbXBsYXRlIEFQSQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIGRlZmluZSBwdWJsaWMgaW50ZXJmYWNlIChpbiBhbHBoYWJldGljYWwgb3JkZXIpCm15IEBPYmplY3RNZXRob2RzID0gcXcoCiAgICBUZW1wbGF0ZUFkZAogICAgVGVtcGxhdGVEZWxldGUKICAgIFRlbXBsYXRlVXBkYXRlCiAgICBUZW1wbGF0ZVNlYXJjaAogICAgVGVtcGxhdGVTZXJpYWxpemUKICAgIFRlbXBsYXRlRGVTZXJpYWxpemUKICAgIFRlbXBsYXRlVHlwZUxvb2t1cAogICAgVGVtcGxhdGVMaXN0CiAgICBUZW1wbGF0ZUdldAopOwoKIyBjaGVjayBpZiBzdWJzIGFyZSBhdmFpbGFibGUKZm9yIG15ICRPYmplY3RNZXRob2QgKEBPYmplY3RNZXRob2RzKSB7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkVGVtcGxhdGVPYmplY3QtPmNhbigkT2JqZWN0TWV0aG9kKSwKICAgICAgICAiVGVzdCAiIC4gJFRlc3RDb3VudCsrIC4gIiAtIGNoZWNrICdjYW4gJE9iamVjdE1ldGhvZCciLAogICAgKTsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHNlYXJjaCBmb3IgZGVmYXVsdCBUZW1wbGF0ZSB0eXBlcwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIGRlZmluZSBkZWZhdWx0IFRlbXBsYXRlIHR5cGVzCm15IEBEZWZhdWx0VHlwZXMgPSBxdygKICAgIElUU01DaGFuZ2UKICAgIElUU01Xb3JrT3JkZXIKICAgIElUU01Db25kaXRpb24KICAgIENBQgopOwoKIyBpbnZlc3RpZ2F0ZSB0aGUgZGVmYXVsdCB0eXBlcwpmb3IgbXkgJFR5cGUgKEBEZWZhdWx0VHlwZXMpIHsKCiAgICAjIGxvb2sgdXAgdGhlIHN0YXRlIG5hbWUKICAgIG15ICRMb29rZWRVcFR5cGVJRCA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVUeXBlTG9va3VwKAogICAgICAgIFRlbXBsYXRlVHlwZSA9PiAkVHlwZSwKICAgICk7CgogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJExvb2tlZFVwVHlwZUlELAogICAgICAgICJMb29rIHVwIHR5cGUgJyRUeXBlJyIsCiAgICApOwoKICAgICMgZG8gdGhlIHJldmVyc2UgbG9va3VwCiAgICBteSAkTG9va2VkVXBUeXBlID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZVR5cGVMb29rdXAoCiAgICAgICAgVGVtcGxhdGVUeXBlSUQgPT4gJExvb2tlZFVwVHlwZUlELAogICAgKTsKCiAgICAkU2VsZi0+SXMoCiAgICAgICAgJExvb2tlZFVwVHlwZSwKICAgICAgICAkVHlwZSwKICAgICAgICAiTG9vayB1cCB0eXBlIGlkICckTG9va2VkVXBUeXBlSUQnIiwKICAgICk7Cn0KCiMgbm93IHNvbWUgcGFyYW0gY2hlY2tzIGZvciBDaGFuZ2VTdGF0ZUxvb2t1cApteSAkTG9va3VwT2sgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlVHlwZUxvb2t1cCgpOwoKJFNlbGYtPkZhbHNlKAogICAgJExvb2t1cE9rLAogICAgJ05vIHBhcmFtcyBwYXNzZWQgdG8gVGVtcGxhdGVUeXBlTG9va3VwKCknLAopOwoKJExvb2t1cE9rID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZVR5cGVMb29rdXAoCiAgICBUZW1wbGF0ZVR5cGUgICA9PiAnYXBwcm92ZWQnLAogICAgVGVtcGxhdGVUeXBlSUQgPT4gMiwKKTsKCiRTZWxmLT5GYWxzZSgKICAgICRMb29rdXBPaywKICAgICdFeGNsdXNpdmUgcGFyYW1zIHBhc3NlZCB0byBUZW1wbGF0ZVR5cGVMb29rdXAoKScsCik7CgokTG9va3VwT2sgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlVHlwZUxvb2t1cCgKICAgIFRlbXBsYXRlVHlwZXMgPT4gJ0lUU01Bbnl0aGluZycsCik7CgokU2VsZi0+RmFsc2UoCiAgICAkTG9va3VwT2ssCiAgICAiSW5jb3JyZWN0IHBhcmFtICdUZW1wbGF0ZVR5cGVzJyBwYXNzZWQgdG8gVGVtcGxhdGVUeXBlTG9va3VwKCkiLAopOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIGdlbmVyYWwgdGVtcGxhdGUgdGVzdHMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBzdG9yZSBjdXJyZW50IFRlc3RDb3VudCBmb3IgYmV0dGVyIHRlc3QgY2FzZSByZWNvZ25pdGlvbgpteSAkVGVzdENvdW50TWlzYyA9ICRUZXN0Q291bnQ7CgojIEFuIHVuaXF1ZSBpZGVudGlmaWVyLCBzbyB0aGF0IGRhdGEgZnJvbSBkaWZmZXJlbnQgdGVzdCBydW5zCiMgd29uJ3QgYmUgbWl4ZWQgdXAuIFRoZSBzdHJpbmcgaXMgZm9ybWF0ZWQgdG8gYSBjb25zdGFudCBsZW5ndGgsCiMgYXMgdGhlIGNvbnZlcnNpb24gdG8gcGxhaW4gdGV4dCB3aXRoIFRvQXNjaWkoKSBkZXBlbmRzIG9uIHRoZSBzdHJpbmcgbGVuZ3RoLgpteSAkVW5pcXVlU2lnbmF0dXJlID0gc3ByaW50ZiAnVW5pdFRlc3QtSVRTTVRlbXBsYXRlLSUwNmRfJTAxMGQnLAogICAgJFJhbmRvbU51bWJlciwKICAgIHRpbWUoKTsKCm15ICVDaGFuZ2VEZWZpbml0aW9ucyA9ICgKICAgIEJhc2VDaGFuZ2UgPT4gewogICAgICAgIENoYW5nZVRpdGxlICAgICA9PiAnQVNDSUkgQ2hhbmdlIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBEZXNjcmlwdGlvbiAgICAgPT4gJ0FTQ0lJIENoYW5nZSAtIERlc2NyaXB0aW9uIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgSnVzdGlmaWNhdGlvbiAgID0+ICdBU0NJSSBDaGFuZ2UgLSBKdXN0aWZpY2F0aW9uIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgQ2hhbmdlTWFuYWdlcklEID0+IDEsCiAgICAgICAgQ2hhbmdlQnVpbGRlcklEID0+IDEsCiAgICAgICAgQ0FCQWdlbnRzICAgICAgID0+IFsKICAgICAgICAgICAgMSwKICAgICAgICBdLAogICAgICAgIENBQkN1c3RvbWVycyA9PiBbCiAgICAgICAgICAgIEBDdXN0b21lclVzZXJJRHMsCiAgICAgICAgXSwKICAgIH0sCiAgICBVbmljb2RlQ2hhbmdlID0+IHsKICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICJVbmljb2RlIENoYW5nZSAtIFRpdGxlIMOkw7bDvCAtICRVbmlxdWVTaWduYXR1cmUiLAogICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1VuaWNvZGUgQ2hhbmdlIC0gRGVzY3JpcHRpb24gLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICJVbmljb2RlIENoYW5nZSAtIEp1c3RpZmljYXRpb24gIgogICAgICAgICAgICAuICJceHsxNjd9XHh7YjZ9XHh7MjBhY31cQFx4ezE0Mn1ceHsxNDJ9XHh7MTM4fWpceHtmMH1ceHtiNX1ceHthYn1ceHtkZn1ceHtiYn0gIgogICAgICAgICAgICAuICItICRVbmlxdWVTaWduYXR1cmUiLAogICAgICAgIENoYW5nZU1hbmFnZXJJRCA9PiAxLAogICAgICAgIENoYW5nZUJ1aWxkZXJJRCA9PiAxLAogICAgICAgIENBQkFnZW50cyAgICAgICA9PiBbCiAgICAgICAgICAgIDEsCiAgICAgICAgXSwKICAgIH0sCiAgICBFbnRpdHlDaGFuZ2UgPT4gewogICAgICAgIENoYW5nZVRpdGxlID0+ICdFbnRpdHkgQ2hhbmdlIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBEZXNjcmlwdGlvbiA9PgogICAgICAgICAgICAnRW50aXR5IENoYW5nZSAtIERlc2NyaXB0aW9uIC0gcmVnaXN0ZXJlZDoiJnJlZzsiIC0gbm9uLWJsb2NraW5nLXNwYWNlOiImbmJzcDsiIC0gJwogICAgICAgICAgICAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgSnVzdGlmaWNhdGlvbiA9PgogICAgICAgICAgICAnRW50aXR5IENoYW5nZSAtIEp1c3RpZmljYXRpb24gLSByZWdpc3RlcmVkOiImcmVnOyIgLSBub24tYmxvY2tpbmctc3BhY2U6IiZuYnNwOyIgLSAnCiAgICAgICAgICAgIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBDaGFuZ2VNYW5hZ2VySUQgPT4gMSwKICAgICAgICBDaGFuZ2VCdWlsZGVySUQgPT4gMSwKICAgICAgICBDQUJBZ2VudHMgICAgICAgPT4gWwogICAgICAgICAgICAxLAogICAgICAgIF0sCiAgICAgICAgQ0FCQ3VzdG9tZXJzID0+IFsKICAgICAgICAgICAgQEN1c3RvbWVyVXNlcklEcywKICAgICAgICBdLAogICAgfSwKICAgIENvbnRhaW5lckNoYW5nZSA9PiB7CiAgICAgICAgQ2hhbmdlVGl0bGUgICAgID0+ICdDb250YWluZXIgQ2hhbmdlIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBEZXNjcmlwdGlvbiAgICAgPT4gJ0NvbnRhaW5lciBDaGFuZ2UgLSBEZXNjcmlwdGlvbiAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIEp1c3RpZmljYXRpb24gICA9PiAnQ29udGFpbmVyIENoYW5nZSAtIEp1c3RpZmljYXRpb24gLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBDaGFuZ2VNYW5hZ2VySUQgPT4gMSwKICAgICAgICBDaGFuZ2VCdWlsZGVySUQgPT4gMSwKICAgICAgICBDQUJBZ2VudHMgICAgICAgPT4gWwogICAgICAgICAgICAxLAogICAgICAgIF0sCiAgICB9LAogICAgVGFyZ2V0Q2hhbmdlID0+IHsKICAgICAgICBDaGFuZ2VUaXRsZSAgICAgPT4gJ1RhcmdldCBDaGFuZ2UgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIERlc2NyaXB0aW9uICAgICA9PiAnVGFyZ2V0IENoYW5nZSAtIERlc2NyaXB0aW9uIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgSnVzdGlmaWNhdGlvbiAgID0+ICdUYXJnZXQgQ2hhbmdlIC0gSnVzdGlmaWNhdGlvbiAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIENoYW5nZU1hbmFnZXJJRCA9PiAxLAogICAgICAgIENoYW5nZUJ1aWxkZXJJRCA9PiAxLAogICAgICAgIENBQkFnZW50cyAgICAgICA9PiBbCiAgICAgICAgICAgIDEsCiAgICAgICAgXSwKICAgIH0sCik7CgojIGNyZWF0ZSBjaGFuZ2UgdGhhdCBzaG91bGQgYWN0IGFzIHRoZSBiYXNlIGZvciB0aGUgdGVtcGxhdGUgdGVzdApteSAlQ3JlYXRlZENoYW5nZUlEOwoKZm9yIG15ICRDaGFuZ2VOYW1lICggc29ydCBrZXlzICVDaGFuZ2VEZWZpbml0aW9ucyApIHsKICAgICRDcmVhdGVkQ2hhbmdlSUR7JENoYW5nZU5hbWV9ID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICV7ICRDaGFuZ2VEZWZpbml0aW9uc3skQ2hhbmdlTmFtZX0gfSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJENyZWF0ZWRDaGFuZ2VJRHskQ2hhbmdlTmFtZX0sCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2hhbmdlQWRkKCkgLSAkQ3JlYXRlZENoYW5nZUlEeyRDaGFuZ2VOYW1lfSBjcmVhdGVkICgkQ2hhbmdlTmFtZSkiLAogICAgKTsKfQoKZm9yIG15ICRDaGFuZ2VOYW1lICggc29ydCBrZXlzICVDcmVhdGVkQ2hhbmdlSUQgKSB7CiAgICBteSAkQ2hhbmdlSUQgPSAkQ3JlYXRlZENoYW5nZUlEeyRDaGFuZ2VOYW1lfTsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2hhbmdlQWRkKCkgLSAkQ2hhbmdlSUQgY3JlYXRlZCAoJENoYW5nZU5hbWUpIiwKICAgICk7CgogICAgbXkgJENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICBDaGFuZ2VJRCA9PiAkQ3JlYXRlZENoYW5nZUlEeyRDaGFuZ2VOYW1lfSwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCiAgICAjIGNoZWNrIGNoYW5nZSBhdHRyaWJ1dGVzCiAgICBmb3IgbXkgJFJlcXVlc3RlZEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAleyAkQ2hhbmdlRGVmaW5pdGlvbnN7JENoYW5nZU5hbWV9IH0gKSB7CgogICAgICAgICMgdHVybiBvZmYgYWxsIHByZXR0eSBwcmludAogICAgICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OkluZGVudCA9IDA7CiAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6VXNlcXEgID0gMTsKCiAgICAgICAgIyBkdW1wIHRoZSBhdHRyaWJ1dGUgZnJvbSBDaGFuZ2VHZXQoKSBhbmQgdGhlIHJlZmVyZW5jZSBhdHRyaWJ1dGUKICAgICAgICAjIyBubyBjcml0aWMKICAgICAgICBteSAkQ2hhbmdlQXR0cmlidXRlICAgID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoICRDaGFuZ2UtPnskUmVxdWVzdGVkQXR0cmlidXRlfSApOwogICAgICAgIG15ICRSZWZlcmVuY2VBdHRyaWJ1dGUgPSBEYXRhOjpEdW1wZXI6OkR1bXBlciggJENoYW5nZURlZmluaXRpb25zeyRDaGFuZ2VOYW1lfS0+eyRSZXF1ZXN0ZWRBdHRyaWJ1dGV9ICk7CiAgICAgICAgIyMgdXNlIGNyaXRpYwoKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRDaGFuZ2VBdHRyaWJ1dGUsCiAgICAgICAgICAgICRSZWZlcmVuY2VBdHRyaWJ1dGUsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtICRSZXF1ZXN0ZWRBdHRyaWJ1dGUgKENoYW5nZUlEOiAkQ2hhbmdlSUQpIiwKICAgICAgICApOwogICAgfQoKICAgICRUZXN0Q291bnQrKzsKfQoKIyBhZGQgd29ya29yZGVycwpteSAlV29ya09yZGVyRGVmaW5pdGlvbnMgPSAoCiAgICBBU0NJSVdvcmtPcmRlciA9PiB7CiAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJENyZWF0ZWRDaGFuZ2VJRHtDb250YWluZXJDaGFuZ2V9LAogICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICdKdXN0IGFuIEFTQ0lJIHdvcmtvcmRlciB0aXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgfSwKICAgIFVtbGF1dHNXb3JrT3JkZXIgPT4gewogICAgICAgIENoYW5nZUlEICAgICAgID0+ICRDcmVhdGVkQ2hhbmdlSUR7Q29udGFpbmVyQ2hhbmdlfSwKICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnV29ya29yZGVyIHRpdGxlIHdpdGggZ2VybWFuIHVtbGF1dHMgw6TDtsO8LSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgIH0sCiAgICBVbmljb2RlV29ya09yZGVyID0+IHsKICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkQ3JlYXRlZENoYW5nZUlEe0NvbnRhaW5lckNoYW5nZX0sCiAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1dvcmtvcmRlciB0aXRsZSB3aXRoIHVuaWNvZGUgY2hhcnMgXHh7MTY3fVx4e2I2fVx4ezIwYWN9IC0gJwogICAgICAgICAgICAuICRVbmlxdWVTaWduYXR1cmUsCiAgICB9LAopOwoKbXkgJUNyZWF0ZWRXb3JrT3JkZXJJRDsKZm9yIG15ICRXb3JrT3JkZXJOYW1lICggc29ydCBrZXlzICVXb3JrT3JkZXJEZWZpbml0aW9ucyApIHsKCiAgICAjIGFkZCB3b3Jrb3JkZXIKICAgICRDcmVhdGVkV29ya09yZGVySUR7JFdvcmtPcmRlck5hbWV9ID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyQWRkKAogICAgICAgICV7ICRXb3JrT3JkZXJEZWZpbml0aW9uc3skV29ya09yZGVyTmFtZX0gfSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgbXkgJFdvcmtPcmRlcklEID0gJENyZWF0ZWRXb3JrT3JkZXJJRHskV29ya09yZGVyTmFtZX07CgogICAgIyBnZXQgd29ya29yZGVyCiAgICBteSAkV29ya09yZGVyID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKCiAgICAjIGNoZWNrIHdvcmtvcmRlciBhdHRyaWJ1dGVzCiAgICBmb3IgbXkgJFJlcXVlc3RlZEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAleyAkV29ya09yZGVyRGVmaW5pdGlvbnN7JFdvcmtPcmRlck5hbWV9IH0gKSB7CgogICAgICAgICMgdHVybiBvZmYgYWxsIHByZXR0eSBwcmludAogICAgICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OkluZGVudCA9IDA7CiAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6VXNlcXEgID0gMTsKCiAgICAgICAgIyBkdW1wIHRoZSBhdHRyaWJ1dGUgZnJvbSBDaGFuZ2VHZXQoKSBhbmQgdGhlIHJlZmVyZW5jZSBhdHRyaWJ1dGUKICAgICAgICAjIyBubyBjcml0aWMKICAgICAgICBteSAkV29ya09yZGVyQXR0cmlidXRlID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoICRXb3JrT3JkZXItPnskUmVxdWVzdGVkQXR0cmlidXRlfSApOwogICAgICAgIG15ICRSZWZlcmVuY2VBdHRyaWJ1dGUgPSBEYXRhOjpEdW1wZXI6OkR1bXBlciggJFdvcmtPcmRlckRlZmluaXRpb25zeyRXb3JrT3JkZXJOYW1lfS0+eyRSZXF1ZXN0ZWRBdHRyaWJ1dGV9ICk7CiAgICAgICAgIyMgdXNlIGNyaXRpYwoKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRXb3JrT3JkZXJBdHRyaWJ1dGUsCiAgICAgICAgICAgICRSZWZlcmVuY2VBdHRyaWJ1dGUsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtICRSZXF1ZXN0ZWRBdHRyaWJ1dGUgKFdvcmtPcmRlcklEOiAkV29ya09yZGVySUQpIiwKICAgICAgICApOwoKICAgICAgICAkVGVzdENvdW50Kys7CiAgICB9Cn0KCiMgYWRkIGNvbmRpdGlvbnMKbXkgJUNvbmRpdGlvbkRlZmluaXRpb25zID0gKAogICAgU2ltcGxlQ29uZGl0aW9uID0+IHsKICAgICAgICBDb25kaXRpb25BZGQgPT4gewogICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgICAgICAgPT4gJENyZWF0ZWRDaGFuZ2VJRHtCYXNlQ2hhbmdlfSwKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgID0+ICdTaW1wbGUgQ29uZGl0aW9uIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIEV4cHJlc3Npb25Db25qdW5jdGlvbiA9PiAnYWxsJywKICAgICAgICAgICAgVmFsaWRJRCAgICAgICAgICAgICAgID0+ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoIFZhbGlkID0+ICd2YWxpZCcgKSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHByZXNzaW9uQWRkID0+IHsKICAgICAgICAgICAgT2JqZWN0SUQgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0TG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ2hhbmdlVGl0bGUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgT3BlcmF0b3JJRCA9PiB7CiAgICAgICAgICAgICAgICBPcGVyYXRvckxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnaXMnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICMgc3RhdGljIGZpZWxkcwogICAgICAgICAgICAjQ29uZGl0aW9uSUQgID0+IC4uLiwgIyBUaGlzIGlzIGZpbGxlZCBieSBmb2xsb3dpbmcgY29kZQogICAgICAgICAgICBTZWxlY3RvciAgICAgPT4gJENyZWF0ZWRDaGFuZ2VJRHtCYXNlQ2hhbmdlfSwKICAgICAgICAgICAgQ29tcGFyZVZhbHVlID0+ICdEdW1teUNvbXBhcmVWYWx1ZTEnLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEFjdGlvbkFkZCA9PiB7CiAgICAgICAgICAgIE9iamVjdElEID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdExvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEF0dHJpYnV0ZUlEID0+IHsKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUxvb2t1cCA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgID0+ICdDaGFuZ2VUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBPcGVyYXRvcklEID0+IHsKICAgICAgICAgICAgICAgIE9wZXJhdG9yTG9va3VwID0+IHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJ3NldCcsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAoKICAgICAgICAgICAgIyBzdGF0aWMgZmllbGRzCiAgICAgICAgICAgICNDb25kaXRpb25JRCAgPT4gLi4uLCAjIFRoaXMgaXMgZmlsbGVkIGJ5IGZvbGxvd2luZyBjb2RlCiAgICAgICAgICAgIFNlbGVjdG9yICAgID0+ICRDcmVhdGVkQ2hhbmdlSUR7QmFzZUNoYW5nZX0sCiAgICAgICAgICAgIEFjdGlvblZhbHVlID0+ICdOZXcgQ2hhbmdlIFRpdGxlJyAuICRVbmlxdWVTaWduYXR1cmUgLiAkUmFuZG9tSUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgfQogICAgfSwKKTsKCm15ICVDcmVhdGVkQ29uZGl0aW9uSUQ7CgpDT05ESVRJT05OQU1FOgpmb3IgbXkgJENvbmRpdGlvbk5hbWUgKCBzb3J0IGtleXMgJUNvbmRpdGlvbkRlZmluaXRpb25zICkgewogICAgbXkgJENvbmRpdGlvbkRhdGEgPSAkQ29uZGl0aW9uRGVmaW5pdGlvbnN7JENvbmRpdGlvbk5hbWV9LT57Q29uZGl0aW9uQWRkfTsKICAgIG15ICRDb25kaXRpb25JRCAgID0gJENvbmRpdGlvbk9iamVjdC0+Q29uZGl0aW9uQWRkKAogICAgICAgICV7JENvbmRpdGlvbkRhdGF9LAogICAgKTsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQ29uZGl0aW9uSUQsCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQWRkIENvbmRpdGlvbiAkQ29uZGl0aW9uTmFtZSIsCiAgICApOwoKICAgIG5leHQgQ09ORElUSU9OTkFNRSBpZiAhJENvbmRpdGlvbklEOwoKICAgICRDcmVhdGVkQ29uZGl0aW9uSUR7JENvbmRpdGlvbk5hbWV9ID0gJENvbmRpdGlvbklEOwoKICAgIG15ICRFeHByZXNzaW9uRGF0YSA9ICRDb25kaXRpb25EZWZpbml0aW9uc3skQ29uZGl0aW9uTmFtZX0tPntFeHByZXNzaW9uQWRkfTsKICAgIG15ICRFeHByZXNzaW9uSUQgICA9IF9FeHByZXNzaW9uQWRkKCAkRXhwcmVzc2lvbkRhdGEsICRDb25kaXRpb25JRCApOwoKICAgIG15ICRBY3Rpb25EYXRhID0gJENvbmRpdGlvbkRlZmluaXRpb25zeyRDb25kaXRpb25OYW1lfS0+e0FjdGlvbkFkZH07CiAgICBteSAkQWN0aW9uSUQgICA9IF9BY3Rpb25BZGQoICRBY3Rpb25EYXRhLCAkQ29uZGl0aW9uSUQgKTsKfQpjb250aW51ZSB7CiAgICAkVGVzdENvdW50Kys7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgY3JlYXRlIHRlbXBsYXRlcwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwpteSAlVGVzdGVkVGVtcGxhdGVJRDsKbXkgJVRlc3RlZFRlbXBsYXRlU3RyaW5nczsKCm15ICVUZW1wbGF0ZURlZmluaXRpb25zID0gKAogICAgQmFzZUNoYW5nZSA9PiB7CiAgICAgICAgTmFtZSAgICAgPT4gJ0Jhc2UgQ2hhbmdlIFRlbXBsYXRlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgVHlwZSAgICAgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgIFZhbGlkSUQgID0+ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoIFZhbGlkID0+ICd2YWxpZCcgKSwKICAgICAgICBDaGFuZ2VJRCA9PiAkQ3JlYXRlZENoYW5nZUlEe0Jhc2VDaGFuZ2V9LAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICB9LAogICAgVW5pY29kZUNoYW5nZSA9PiB7CiAgICAgICAgTmFtZSAgICAgPT4gJ1VuaWNvZGUgQ2hhbmdlIFRlbXBsYXRlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgVHlwZSAgICAgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgIFZhbGlkSUQgID0+ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoIFZhbGlkID0+ICd2YWxpZCcgKSwKICAgICAgICBDaGFuZ2VJRCA9PiAkQ3JlYXRlZENoYW5nZUlEe1VuaWNvZGVDaGFuZ2V9LAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICB9LAogICAgRW50aXR5Q2hhbmdlID0+IHsKICAgICAgICBOYW1lICAgICA9PiAnRW50aXR5IENoYW5nZSBUZW1wbGF0ZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIFR5cGUgICAgID0+ICdJVFNNQ2hhbmdlJywKICAgICAgICBWYWxpZElEICA9PiAkVmFsaWRPYmplY3QtPlZhbGlkTG9va3VwKCBWYWxpZCA9PiAndmFsaWQnICksCiAgICAgICAgQ2hhbmdlSUQgPT4gJENyZWF0ZWRDaGFuZ2VJRHtFbnRpdHlDaGFuZ2V9LAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICB9LAogICAgQVNDSUlXb3JrT3JkZXIgPT4gewogICAgICAgIE5hbWUgICAgICAgID0+ICdBc2NpaSBXb3JrT3JkZXIgVGVtcGxhdGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBUeXBlICAgICAgICA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgVmFsaWRJRCAgICAgPT4gJFZhbGlkT2JqZWN0LT5WYWxpZExvb2t1cCggVmFsaWQgPT4gJ3ZhbGlkJyApLAogICAgICAgIFdvcmtPcmRlcklEID0+ICRDcmVhdGVkV29ya09yZGVySUR7QVNDSUlXb3JrT3JkZXJ9LAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICB9LAogICAgVW1sYXV0c1dvcmtPcmRlciA9PiB7CiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1VtbGF1dHMgV29ya09yZGVyIFRlbXBsYXRlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgVHlwZSAgICAgICAgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgIFZhbGlkSUQgICAgID0+ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoIFZhbGlkID0+ICd2YWxpZCcgKSwKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkQ3JlYXRlZFdvcmtPcmRlcklEe1VtbGF1dHNXb3JrT3JkZXJ9LAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICB9LAogICAgVW5pY29kZVdvcmtPcmRlciA9PiB7CiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1VuaWNvZGUgV29ya09yZGVyIFRlbXBsYXRlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgVHlwZSAgICAgICAgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgIFZhbGlkSUQgICAgID0+ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoIFZhbGlkID0+ICd2YWxpZCcgKSwKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkQ3JlYXRlZFdvcmtPcmRlcklEe1VuaWNvZGVXb3JrT3JkZXJ9LAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICB9LAogICAgQ0FCQ3VzdG9tZXJBZ2VudCA9PiB7CiAgICAgICAgTmFtZSAgICAgPT4gJ0N1c3RvbWVyIGFuZCBBZ2VudCBDQUIgVGVtcGxhdGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBUeXBlICAgICA9PiAnQ0FCJywKICAgICAgICBWYWxpZElEICA9PiAkVmFsaWRPYmplY3QtPlZhbGlkTG9va3VwKCBWYWxpZCA9PiAndmFsaWQnICksCiAgICAgICAgQ2hhbmdlSUQgPT4gJENyZWF0ZWRDaGFuZ2VJRHtCYXNlQ2hhbmdlfSwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgfSwKICAgIFNpbXBsZUNvbmRpdGlvbiA9PiB7CiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1NpbXBsZSBDb25kaXRpb24gVGVtcGxhdGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICBUeXBlICAgICAgICA9PiAnSVRTTUNvbmRpdGlvbicsCiAgICAgICAgVmFsaWRJRCAgICAgPT4gJFZhbGlkT2JqZWN0LT5WYWxpZExvb2t1cCggVmFsaWQgPT4gJ3ZhbGlkJyApLAogICAgICAgIENvbmRpdGlvbklEID0+ICRDcmVhdGVkQ29uZGl0aW9uSUR7U2ltcGxlQ29uZGl0aW9ufSwKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgfSwKKTsKCmZvciBteSAkVGVtcGxhdGVEZWZpbml0aW9uTmFtZSAoIHNvcnQga2V5cyAlVGVtcGxhdGVEZWZpbml0aW9ucyApIHsKCiAgICAjIGNyZWF0ZSBzaW1wbGUgY2hhbmdlIHRlbXBsYXRlCiAgICAkVGVtcGxhdGVEZWZpbml0aW9uc3skVGVtcGxhdGVEZWZpbml0aW9uTmFtZX0tPntDb250ZW50fSA9CiAgICAgICAgJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZVNlcmlhbGl6ZSgKICAgICAgICAleyAkVGVtcGxhdGVEZWZpbml0aW9uc3skVGVtcGxhdGVEZWZpbml0aW9uTmFtZX0gfSwKICAgICAgICBUZW1wbGF0ZVR5cGUgPT4gJFRlbXBsYXRlRGVmaW5pdGlvbnN7JFRlbXBsYXRlRGVmaW5pdGlvbk5hbWV9LT57VHlwZX0sCiAgICAgICAgKTsKCiAgICAjIGNoZWNrIHNlcmlhbGl6YXRpb24KICAgICRTZWxmLT5UcnVlKAogICAgICAgICRUZW1wbGF0ZURlZmluaXRpb25zeyRUZW1wbGF0ZURlZmluaXRpb25OYW1lfS0+e0NvbnRlbnR9LAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IFRlbXBsYXRlU2VyaWFsaXplIGZvciAkVGVtcGxhdGVEZWZpbml0aW9uTmFtZSIsCiAgICApOwoKICAgICMgYWRkIHRlbXBsYXRlCiAgICAkVGVzdGVkVGVtcGxhdGVJRHskVGVtcGxhdGVEZWZpbml0aW9uTmFtZX0gPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlQWRkKAogICAgICAgICV7ICRUZW1wbGF0ZURlZmluaXRpb25zeyRUZW1wbGF0ZURlZmluaXRpb25OYW1lfSB9LAogICAgICAgIFRlbXBsYXRlVHlwZSA9PiAkVGVtcGxhdGVEZWZpbml0aW9uc3skVGVtcGxhdGVEZWZpbml0aW9uTmFtZX0tPntUeXBlfSwKICAgICk7CgogICAgbXkgJFRlbXBsYXRlSUQgPSAkVGVzdGVkVGVtcGxhdGVJRHskVGVtcGxhdGVEZWZpbml0aW9uTmFtZX07CgogICAgIyBjaGVjayB0ZW1wbGF0ZSBJRAogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJFRlbXBsYXRlSUQsCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gVGVtcGxhdGVBZGQgZm9yICRUZW1wbGF0ZURlZmluaXRpb25OYW1lIiwKICAgICk7CgogICAgIyBnZXQgY3JlYXRlZCB0ZW1wbGF0ZQogICAgbXkgJFRlbXBsYXRlID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZUdldCgKICAgICAgICBUZW1wbGF0ZUlEID0+ICRUZW1wbGF0ZUlELAogICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICk7CgogICAgIyBjaGVjayB0ZW1wbGF0ZSBhdHRyaWJ1dGVzIG5hbWUsIHR5cGUgYW5kIGNvbnRlbnQKICAgIGZvciBteSAkQXR0cmlidXRlIChxdyhOYW1lIFR5cGUgQ29udGVudCkpIHsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRUZW1wbGF0ZS0+eyRBdHRyaWJ1dGV9LAogICAgICAgICAgICAkVGVtcGxhdGVEZWZpbml0aW9uc3skVGVtcGxhdGVEZWZpbml0aW9uTmFtZX0tPnskQXR0cmlidXRlfSwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gJEF0dHJpYnV0ZSAoVGVtcGxhdGVJRDogJFRlbXBsYXRlSUQpIiwKICAgICAgICApOwogICAgfQoKICAgICRUZXN0Q291bnQrKzsKfQoKIyBjcmVhdGUgb2JqZWN0cyBiYXNlZCBvbiB0ZW1wbGF0ZXMKbXkgQENoYW5nZUlEczsKCkNIQU5HRVRFTVBMQVRFTkFNRToKZm9yIG15ICRDaGFuZ2VUZW1wbGF0ZU5hbWUgKCBzb3J0IGtleXMgJUNyZWF0ZWRDaGFuZ2VJRCApIHsKCiAgICAjIGdldCB0ZW1wbGF0ZSBpZAogICAgbXkgJFRlbXBsYXRlSUQgPSAkVGVzdGVkVGVtcGxhdGVJRHskQ2hhbmdlVGVtcGxhdGVOYW1lfTsKCiAgICBuZXh0IENIQU5HRVRFTVBMQVRFTkFNRSBpZiAhJFRlbXBsYXRlSUQ7CgogICAgIyBkZXNlcmlhbGl6ZSB0ZW1wbGF0ZQogICAgbXkgJENoYW5nZUlEID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZURlU2VyaWFsaXplKAogICAgICAgIFRlbXBsYXRlSUQgPT4gJFRlbXBsYXRlSUQsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKCiAgICAjIGNoZWNrIGNoYW5nZSBpZAogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJENoYW5nZUlELAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IENyZWF0ZSBjaGFuZ2UgYmFzZWQgb24gdGVtcGxhdGUgKFRlbXBsYXRlSUQ6ICRUZW1wbGF0ZUlEKSIsCiAgICApOwoKICAgICMgZ2V0IGNoYW5nZSBkYXRhCiAgICBteSAkQ2hhbmdlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCiAgICAjIGNoZWNrIGNoYW5nZSBhdHRyaWJ1dGVzCiAgICBmb3IgbXkgJFJlcXVlc3RlZEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAleyAkQ2hhbmdlRGVmaW5pdGlvbnN7JENoYW5nZVRlbXBsYXRlTmFtZX0gfSApIHsKCiAgICAgICAgIyB0dXJuIG9mZiBhbGwgcHJldHR5IHByaW50CiAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6SW5kZW50ID0gMDsKICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpVc2VxcSAgPSAxOwoKICAgICAgICAjIGR1bXAgdGhlIGF0dHJpYnV0ZSBmcm9tIENoYW5nZUdldCgpIGFuZCB0aGUgcmVmZXJlbmNlIGF0dHJpYnV0ZQogICAgICAgICMjIG5vIGNyaXRpYwogICAgICAgIG15ICRDaGFuZ2VBdHRyaWJ1dGUgICAgPSBEYXRhOjpEdW1wZXI6OkR1bXBlciggJENoYW5nZS0+eyRSZXF1ZXN0ZWRBdHRyaWJ1dGV9ICk7CiAgICAgICAgbXkgJFJlZmVyZW5jZUF0dHJpYnV0ZSA9IERhdGE6OkR1bXBlcjo6RHVtcGVyKAogICAgICAgICAgICAkQ2hhbmdlRGVmaW5pdGlvbnN7JENoYW5nZVRlbXBsYXRlTmFtZX0tPnskUmVxdWVzdGVkQXR0cmlidXRlfQogICAgICAgICk7CiAgICAgICAgIyMgdXNlIGNyaXRpYwoKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRDaGFuZ2VBdHRyaWJ1dGUsCiAgICAgICAgICAgICRSZWZlcmVuY2VBdHRyaWJ1dGUsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtICRSZXF1ZXN0ZWRBdHRyaWJ1dGUgKENoYW5nZUlEOiAkQ2hhbmdlSUQpIiwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgcGxhaW4gdmVyc2lvbiBvZiBzb21lIGFyZ3VtZW50cywgZXNwZWNpYWxseSB3aGV0aGVyIHRoZSByZXN1bHQgb2YgVG9Bc2NpaQogICAgIyBpcyBjb3JyZWN0bHkgc2F2ZWQgaW50byB0aGUgZGF0YWJhc2UKICAgIEFSR1VNRU5UOgogICAgZm9yIG15ICRBdHRyaWJ1dGUgKHF3KERlc2NyaXB0aW9uIEp1c3RpZmljYXRpb24pKSB7CiAgICAgICAgbmV4dCBBUkdVTUVOVCBpZiAhJENoYW5nZURlZmluaXRpb25zeyRDaGFuZ2VUZW1wbGF0ZU5hbWV9LT57JEF0dHJpYnV0ZX07CgogICAgICAgIG15ICRDaGFuZ2VBdHRyaWJ1dGUgICAgPSAkQ2hhbmdlLT57IiR7QXR0cmlidXRlfVBsYWluIn0gfHwgJyc7CiAgICAgICAgbXkgJFJlZmVyZW5jZUF0dHJpYnV0ZSA9ICRIVE1MVXRpbHNPYmplY3QtPlRvQXNjaWkoCiAgICAgICAgICAgIFN0cmluZyA9PiAkQ2hhbmdlRGVmaW5pdGlvbnN7JENoYW5nZVRlbXBsYXRlTmFtZX0tPnskQXR0cmlidXRlfSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRDaGFuZ2VBdHRyaWJ1dGUsCiAgICAgICAgICAgICRSZWZlcmVuY2VBdHRyaWJ1dGUsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtICR7QXR0cmlidXRlfVBsYWluIChDaGFuZ2VJRDogJENoYW5nZUlEKSIsCiAgICAgICAgKTsKICAgIH0KCiAgICBwdXNoIEBDaGFuZ2VJRHMsICRDaGFuZ2VJRDsKCiAgICAkVGVzdENvdW50Kys7Cn0KCldPUktPUkRFUlRFTVBMQVRFTkFNRToKZm9yIG15ICRXb3JrT3JkZXJUZW1wbGF0ZU5hbWUgKCBzb3J0IGtleXMgJUNyZWF0ZWRXb3JrT3JkZXJJRCApIHsKCiAgICAjIGdldCB0ZW1wbGF0ZSBpZAogICAgbXkgJFRlbXBsYXRlSUQgPSAkVGVzdGVkVGVtcGxhdGVJRHskV29ya09yZGVyVGVtcGxhdGVOYW1lfTsKCiAgICBuZXh0IFdPUktPUkRFUlRFTVBMQVRFTkFNRSBpZiAhJFRlbXBsYXRlSUQ7CgogICAgIyBkZXNlcmlhbGl6ZSB0ZW1wbGF0ZQogICAgbXkgJFdvcmtPcmRlcklEID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZURlU2VyaWFsaXplKAogICAgICAgIFRlbXBsYXRlSUQgPT4gJFRlbXBsYXRlSUQsCiAgICAgICAgQ2hhbmdlSUQgICA9PiAkQ3JlYXRlZENoYW5nZUlEe1RhcmdldENoYW5nZX0sCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKCiAgICAjIGNoZWNrIHdvcmtvcmRlciBpZAogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJFdvcmtPcmRlcklELAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IENyZWF0ZSB3b3Jrb3JkZXIgYmFzZWQgb24gdGVtcGxhdGUgKFRlbXBsYXRlSUQ6ICRUZW1wbGF0ZUlEKSIsCiAgICApOwoKICAgICMgZ2V0IHdvcmtvcmRlciBkYXRhCiAgICBteSAkV29ya09yZGVyID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKCiAgICAjIGNoZWNrIHdvcmtvcmRlciBhdHRyaWJ1dGVzCiAgICBSRVFVRVNURURBVFRSSUJVVEU6CiAgICBmb3IgbXkgJFJlcXVlc3RlZEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAleyAkV29ya09yZGVyRGVmaW5pdGlvbnN7JFdvcmtPcmRlclRlbXBsYXRlTmFtZX0gfSApIHsKCiAgICAgICAgbmV4dCBSRVFVRVNURURBVFRSSUJVVEUgaWYgJFJlcXVlc3RlZEF0dHJpYnV0ZSBlcSAnQ2hhbmdlSUQnOwoKICAgICAgICAjIHR1cm4gb2ZmIGFsbCBwcmV0dHkgcHJpbnQKICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOwogICAgICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OlVzZXFxICA9IDE7CgogICAgICAgICMgZHVtcCB0aGUgYXR0cmlidXRlIGZyb20gQ2hhbmdlR2V0KCkgYW5kIHRoZSByZWZlcmVuY2UgYXR0cmlidXRlCiAgICAgICAgIyMgbm8gY3JpdGljCiAgICAgICAgbXkgJFdvcmtPcmRlckF0dHJpYnV0ZSA9IERhdGE6OkR1bXBlcjo6RHVtcGVyKCAkV29ya09yZGVyLT57JFJlcXVlc3RlZEF0dHJpYnV0ZX0gKTsKICAgICAgICBteSAkUmVmZXJlbmNlQXR0cmlidXRlID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoCiAgICAgICAgICAgICRXb3JrT3JkZXJEZWZpbml0aW9uc3skV29ya09yZGVyVGVtcGxhdGVOYW1lfS0+eyRSZXF1ZXN0ZWRBdHRyaWJ1dGV9CiAgICAgICAgKTsKICAgICAgICAjIyB1c2UgY3JpdGljCgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFdvcmtPcmRlckF0dHJpYnV0ZSwKICAgICAgICAgICAgJFJlZmVyZW5jZUF0dHJpYnV0ZSwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gJFJlcXVlc3RlZEF0dHJpYnV0ZSAoV29ya09yZGVyOiAkV29ya09yZGVySUQpIiwKICAgICAgICApOwogICAgfQoKICAgICRTZWxmLT5JcygKICAgICAgICAkV29ya09yZGVyLT57Q2hhbmdlSUR9LAogICAgICAgICRDcmVhdGVkQ2hhbmdlSUR7VGFyZ2V0Q2hhbmdlfSwKICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBDaGFuZ2VJRCAoV29ya09yZGVyOiAkV29ya09yZGVySUQpIiwKICAgICk7CgogICAgJFRlc3RDb3VudCsrOwp9CgpDT05ESVRJT05URU1QTEFURU5BTUU6CmZvciBteSAkQ29uZGl0aW9uVGVtcGxhdGVOYW1lICggc29ydCBrZXlzICVDcmVhdGVkQ29uZGl0aW9uSUQgKSB7CgogICAgIyBnZXQgdGVtcGxhdGUgaWQKICAgIG15ICRUZW1wbGF0ZUlEID0gJFRlc3RlZFRlbXBsYXRlSUR7JENvbmRpdGlvblRlbXBsYXRlTmFtZX07CgogICAgbmV4dCBDT05ESVRJT05URU1QTEFURU5BTUUgaWYgISRUZW1wbGF0ZUlEOwoKICAgICMgZGVzZXJpYWxpemUgdGVtcGxhdGUKICAgIG15ICRDb25kaXRpb25JRCA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVEZVNlcmlhbGl6ZSgKICAgICAgICBUZW1wbGF0ZUlEID0+ICRUZW1wbGF0ZUlELAogICAgICAgIENoYW5nZUlEICAgPT4gJENyZWF0ZWRDaGFuZ2VJRHtUYXJnZXRDaGFuZ2V9LAogICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICk7CgogICAgIyBjaGVjayBjaGFuZ2UgaWQKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRDb25kaXRpb25JRCwKICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBDcmVhdGUgY29uZGl0aW9uIGJhc2VkIG9uIHRlbXBsYXRlIChUZW1wbGF0ZUlEOiAkVGVtcGxhdGVJRCkiLAogICAgKTsKCiAgICAkVGVzdENvdW50Kys7Cn0KCiMgZ2V0IG5hbWVzIG9mIENBQiB0ZW1wbGF0ZXMKbXkgQENBQlRlbXBsYXRlTmFtZXMgPSBncmVwIHsgJFRlbXBsYXRlRGVmaW5pdGlvbnN7JF99LT57VHlwZX0gZXEgJ0NBQicgfSBrZXlzICVUZXN0ZWRUZW1wbGF0ZUlEOwoKQ0FCVEVNUExBVEVOQU1FOgpmb3IgbXkgJENBQlRlbXBsYXRlTmFtZSAoQENBQlRlbXBsYXRlTmFtZXMpIHsKCiAgICAjIGdldCB0ZW1wbGF0ZSBpZAogICAgbXkgJFRlbXBsYXRlSUQgPSAkVGVzdGVkVGVtcGxhdGVJRHskQ0FCVGVtcGxhdGVOYW1lfTsKCiAgICBuZXh0IENBQlRFTVBMQVRFTkFNRSBpZiAhJFRlbXBsYXRlSUQ7CgogICAgIyBkZXNlcmlhbGl6ZSB0ZW1wbGF0ZQogICAgbXkgJENoYW5nZUlEID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZURlU2VyaWFsaXplKAogICAgICAgIFRlbXBsYXRlSUQgPT4gJFRlbXBsYXRlSUQsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgIENoYW5nZUlEICAgPT4gJENyZWF0ZWRDaGFuZ2VJRHtUYXJnZXRDaGFuZ2V9LAogICAgKTsKCiAgICAjIGNoZWNrIGNoYW5nZSBpZAogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJENoYW5nZUlELAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IENyZWF0ZSBDQUIgYmFzZWQgb24gdGVtcGxhdGUgKFRlbXBsYXRlSUQ6ICRUZW1wbGF0ZUlEKSIsCiAgICApOwoKICAgICMgZ2V0IGNoYW5nZSBkYXRhCiAgICBteSAkQ2hhbmdlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCiAgICAjIGdldCBvcmlnaW5hbCBjaGFuZ2UKICAgIG15ICRPcmlnQ2hhbmdlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRDcmVhdGVkQ2hhbmdlSUR7QmFzZUNoYW5nZX0sCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgIyB0dXJuIG9mZiBhbGwgcHJldHR5IHByaW50CiAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOwogICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6VXNlcXEgID0gMTsKCiAgICAjIGR1bXAgdGhlIGF0dHJpYnV0ZSBmcm9tIENoYW5nZUdldCgpIGFuZCB0aGUgcmVmZXJlbmNlIGF0dHJpYnV0ZQogICAgIyMgbm8gY3JpdGljCiAgICBteSAkQ2hhbmdlQXR0cmlidXRlICAgID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoIFsgJENoYW5nZS0+e0NBQkFnZW50c30sICAgICAkQ2hhbmdlLT57Q0FCQ3VzdG9tZXJzfSBdICk7CiAgICBteSAkUmVmZXJlbmNlQXR0cmlidXRlID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoIFsgJE9yaWdDaGFuZ2UtPntDQUJBZ2VudHN9LCAkT3JpZ0NoYW5nZS0+e0NBQkN1c3RvbWVyc30gXSApOwogICAgIyMgdXNlIGNyaXRpYwoKICAgICRTZWxmLT5JcygKICAgICAgICAkQ2hhbmdlQXR0cmlidXRlLAogICAgICAgICRSZWZlcmVuY2VBdHRyaWJ1dGUsCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gQ0FCIGZyb20gdGVtcGxhdGUgKENoYW5nZUlEOiAkQ2hhbmdlSUQpIiwKICAgICk7CgogICAgJFRlc3RDb3VudCsrOwp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgdGVzdAojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIHRlc3QgVGVtcGxhdGVMaXN0KCkKbXkgJENoYW5nZVRlbXBsYXRlTGlzdCA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVMaXN0KAogICAgVGVtcGxhdGVUeXBlID0+ICdJVFNNQ2hhbmdlJywKICAgIFVzZXJJRCAgICAgICA9PiAxLAopOwoKbXkgQENoYW5nZVRlbXBsYXRlTmFtZXMgPSBncmVwIHsKICAgICRUZW1wbGF0ZURlZmluaXRpb25zeyRffS0+e1R5cGV9IGVxICdJVFNNQ2hhbmdlJwp9IGtleXMgJVRlc3RlZFRlbXBsYXRlSUQ7Cgpmb3IgbXkgJENoYW5nZVRlbXBsYXRlTmFtZSAoQENoYW5nZVRlbXBsYXRlTmFtZXMpIHsKICAgIG15ICRUZW1wbGF0ZUlEID0gJFRlc3RlZFRlbXBsYXRlSUR7JENoYW5nZVRlbXBsYXRlTmFtZX07CgogICAgJFNlbGYtPlRydWUoCiAgICAgICAgZXhpc3RzICRDaGFuZ2VUZW1wbGF0ZUxpc3QtPnskVGVtcGxhdGVJRH0sCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gQ2hlY2sgQ2hhbmdlVGVtcGxhdGUgJFRlbXBsYXRlSUQgaW4gVGVtcGxhdGVMaXN0IiwKICAgICk7CgogICAgJFRlc3RDb3VudCsrOwp9CgpteSBAV29ya09yZGVyVGVtcGxhdGVOYW1lcyA9IGdyZXAgewogICAgJFRlbXBsYXRlRGVmaW5pdGlvbnN7JF99LT57VHlwZX0gZXEgJ0lUU01Xb3JrT3JkZXInCn0ga2V5cyAlVGVzdGVkVGVtcGxhdGVJRDsKCm15ICRXb3JrT3JkZXJUZW1wbGF0ZUxpc3QgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlTGlzdCgKICAgIFRlbXBsYXRlVHlwZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICBVc2VySUQgICAgICAgPT4gMSwKKTsKCmZvciBteSAkV29ya09yZGVyVGVtcGxhdGVOYW1lIChAV29ya09yZGVyVGVtcGxhdGVOYW1lcykgewogICAgbXkgJFRlbXBsYXRlSUQgPSAkVGVzdGVkVGVtcGxhdGVJRHskV29ya09yZGVyVGVtcGxhdGVOYW1lfTsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICBleGlzdHMgJFdvcmtPcmRlclRlbXBsYXRlTGlzdC0+eyRUZW1wbGF0ZUlEfSwKICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBDaGVjayBXb3JrT3JkZXJUZW1wbGF0ZSAkVGVtcGxhdGVJRCBpbiBUZW1wbGF0ZUxpc3QiLAogICAgKTsKCiAgICAkVGVzdENvdW50Kys7Cn0KCm15IEBDb25kaXRpb25UZW1wbGF0ZU5hbWVzID0gZ3JlcCB7CiAgICAkVGVtcGxhdGVEZWZpbml0aW9uc3skX30tPntUeXBlfSBlcSAnSVRTTUNvbmRpdGlvbicKfSBrZXlzICVUZXN0ZWRUZW1wbGF0ZUlEOwoKbXkgJENvbmRpdGlvblRlbXBsYXRlTGlzdCA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVMaXN0KAogICAgVGVtcGxhdGVUeXBlID0+ICdJVFNNQ29uZGl0aW9uJywKICAgIFVzZXJJRCAgICAgICA9PiAxLAopOwoKZm9yIG15ICRDb25kaXRpb25UZW1wbGF0ZU5hbWUgKEBDb25kaXRpb25UZW1wbGF0ZU5hbWVzKSB7CiAgICBteSAkVGVtcGxhdGVJRCA9ICRUZXN0ZWRUZW1wbGF0ZUlEeyRDb25kaXRpb25UZW1wbGF0ZU5hbWV9OwoKICAgICRTZWxmLT5UcnVlKAogICAgICAgIGV4aXN0cyAkQ29uZGl0aW9uVGVtcGxhdGVMaXN0LT57JFRlbXBsYXRlSUR9LAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIENoZWNrIENvbmRpdGlvblRlbXBsYXRlICRUZW1wbGF0ZUlEIGluIFRlbXBsYXRlTGlzdCIsCiAgICApOwoKICAgICRUZXN0Q291bnQrKzsKfQoKbXkgJENBQlRlbXBsYXRlTGlzdCA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVMaXN0KAogICAgVGVtcGxhdGVUeXBlID0+ICdDQUInLAogICAgVXNlcklEICAgICAgID0+IDEsCik7Cgpmb3IgbXkgJENBQlRlbXBsYXRlTmFtZSAoQENBQlRlbXBsYXRlTmFtZXMpIHsKICAgIG15ICRUZW1wbGF0ZUlEID0gJFRlc3RlZFRlbXBsYXRlSUR7JENBQlRlbXBsYXRlTmFtZX07CgogICAgJFNlbGYtPlRydWUoCiAgICAgICAgZXhpc3RzICRDQUJUZW1wbGF0ZUxpc3QtPnskVGVtcGxhdGVJRH0sCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gQ2hlY2sgQ0FCVGVtcGxhdGUgJFRlbXBsYXRlSUQgaW4gVGVtcGxhdGVMaXN0IiwKICAgICk7CgogICAgJFRlc3RDb3VudCsrOwp9CgojIHRlc3QgVGVtcGxhdGVTZWFyY2goKQoKIyB0ZXN0IFRlbXBsYXRlVXBkYXRlKCkKbXkgJU5ld1ZhbHVlczsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBjbGVhbiB0aGUgc3lzdGVtCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiMgcmVzdG9yZSBvcmlnaW5hbCBlbWFpbCBjaGVjayBwYXJhbQokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnQ2hlY2tFbWFpbEFkZHJlc3NlcycsCiAgICBWYWx1ZSA9PiAkQ2hlY2tFbWFpbEFkZHJlc3Nlc09yZywKKTsKCiMgZGVsZXRlIHRoZSB0ZXN0IHRlbXBsYXRlcwpmb3IgbXkgJFRlbXBsYXRlTmFtZSAoIHNvcnQga2V5cyAlVGVzdGVkVGVtcGxhdGVJRCApIHsKICAgIG15ICRUZW1wbGF0ZUlEID0gJFRlc3RlZFRlbXBsYXRlSUR7JFRlbXBsYXRlTmFtZX07CgogICAgbXkgJERlbGV0ZU9rID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZURlbGV0ZSgKICAgICAgICBUZW1wbGF0ZUlEID0+ICRUZW1wbGF0ZUlELAogICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkRGVsZXRlT2ssCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogVGVtcGxhdGVEZWxldGUoKSIKICAgICk7CgogICAgIyBkb3VibGUgY2hlY2sgaWYgY2hhbmdlIGlzIHJlYWxseSBkZWxldGVkCiAgICBteSAkVGVtcGxhdGVEYXRhID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZUdldCgKICAgICAgICBUZW1wbGF0ZUlEID0+ICRUZW1wbGF0ZUlELAogICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPkZhbHNlKAogICAgICAgICRUZW1wbGF0ZURhdGEtPntUZW1wbGF0ZUlEfSwKICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBUZW1wbGF0ZURlbGV0ZSgpIC0gZG91YmxlIGNoZWNrIiwKICAgICk7Cn0KY29udGludWUgewogICAgJFRlc3RDb3VudCsrOwp9CgojIGNsZWFudXAgaXMgZG9uZSBieSBSZXN0b3JlRGF0YWJhc2UKCnN1YiBfQWN0aW9uQWRkIHsKICAgIG15ICggJEFjdGlvbkRhdGEsICRDb25kaXRpb25JRCApID0gQF87CgogICAgcmV0dXJuIGlmICEkQWN0aW9uRGF0YTsKICAgIHJldHVybiBpZiByZWYgJEFjdGlvbkRhdGEgbmUgJ0hBU0gnOwoKICAgICMgaGFzaCBmb3IgYWRkaW5nCiAgICBteSAlQWN0aW9uQWRkOwoKICAgICMgc2V0IHN0YXRpYyBmaWVsZHMKICAgIG15IEBTdGF0aWNGaWVsZHMgPSBxdyggU2VsZWN0b3IgQWN0aW9uVmFsdWUgVXNlcklEIENvbmRpdGlvbklEICk7CgogICAgU1RBVElDRklFTEQ6CiAgICBmb3IgbXkgJFN0YXRpY0ZpZWxkIChAU3RhdGljRmllbGRzKSB7CgogICAgICAgICMgb21pdCBzdGF0aWMgZmllbGQgaWYgaXQgaXMgbm90IHNldAogICAgICAgIG5leHQgU1RBVElDRklFTEQgaWYgIWV4aXN0cyAkQWN0aW9uRGF0YS0+eyRTdGF0aWNGaWVsZH07CiAgICAgICAgbmV4dCBTVEFUSUNGSUVMRCBpZiAhZGVmaW5lZCAkQWN0aW9uRGF0YS0+eyRTdGF0aWNGaWVsZH07CgogICAgICAgICMgc2FmZSBkYXRhCiAgICAgICAgJEFjdGlvbkFkZHskU3RhdGljRmllbGR9ID0gJEFjdGlvbkRhdGEtPnskU3RhdGljRmllbGR9OwogICAgfQoKICAgICMgZ2V0IGFsbCBmaWVsZHMgZm9yIEFjdGlvbkFkZAogICAgQUNUSU9OQUREVkFMVUU6CiAgICBmb3IgbXkgJEFjdGlvbkFkZFZhbHVlICggc29ydCBrZXlzICV7JEFjdGlvbkRhdGF9ICkgewoKICAgICAgICAjIG9taXQgc3RhdGljIGZpZWxkcwogICAgICAgIG5leHQgQUNUSU9OQUREVkFMVUUgaWYgZ3JlcCB7ICRfIGVxICRBY3Rpb25BZGRWYWx1ZSB9IEBTdGF0aWNGaWVsZHM7CgogICAgICAgICMgZ2V0IHZhbHVlcyBmb3IgZmllbGRzCiAgICAgICAgZm9yIG15ICRGaWVsZFZhbHVlICggc29ydCBrZXlzICV7ICRBY3Rpb25EYXRhLT57JEFjdGlvbkFkZFZhbHVlfSB9ICkgewoKICAgICAgICAgICAgIyBzdG9yZSBnYXRoZXJlZCBpbmZvcm1hdGlvbiBpbiBoYXNoIGZvciBhZGRpbmcKICAgICAgICAgICAgJEFjdGlvbkFkZHskQWN0aW9uQWRkVmFsdWV9ID0gJENvbmRpdGlvbk9iamVjdC0+JEZpZWxkVmFsdWUoCiAgICAgICAgICAgICAgICAleyAkQWN0aW9uRGF0YS0+eyRBY3Rpb25BZGRWYWx1ZX0tPnskRmllbGRWYWx1ZX0gfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBhZGQgYWN0aW9uCiAgICBteSAkQWN0aW9uSUQgPSAkQ29uZGl0aW9uT2JqZWN0LT5BY3Rpb25BZGQoCiAgICAgICAgJUFjdGlvbkFkZCwKICAgICAgICBDb25kaXRpb25JRCA9PiAkQ29uZGl0aW9uSUQsCiAgICApIHx8IDA7CgogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJEFjdGlvbklELAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gQWN0aW9uQWRkIC0+ICRBY3Rpb25JRCIsCiAgICApOwoKICAgICMgY2hlY2sgZm9yIEFjdGlvbklECiAgICByZXR1cm4gaWYgISRBY3Rpb25JRDsKCiAgICAjIGNoZWNrIHRoZSBhZGRlZCBhY3Rpb24KICAgIG15ICRBY3Rpb25HZXQgPSAkQ29uZGl0aW9uT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgQWN0aW9uSUQgPT4gJEFjdGlvbklELAogICAgICAgIFVzZXJJRCAgID0+ICRBY3Rpb25BZGR7VXNlcklEfSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQWN0aW9uR2V0LAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAnIC0gQWN0aW9uQWRkKCk6IEFjdGlvbkdldCcsCiAgICApOwoKICAgICMgZGVsZXRlIFVzZXJJRCwgaXQgaXMgbm90IHJldHVybmVkCiAgICBkZWxldGUgJEFjdGlvbkFkZHtVc2VySUR9OwoKICAgICMgdGVzdCB2YWx1ZXMKICAgIGZvciBteSAkVGVzdFZhbHVlICggc29ydCBrZXlzICVBY3Rpb25BZGQgKSB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkQWN0aW9uR2V0LT57JFRlc3RWYWx1ZX0sCiAgICAgICAgICAgICRBY3Rpb25BZGR7JFRlc3RWYWx1ZX0sCiAgICAgICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gQWN0aW9uQWRkKCk6IEFjdGlvbkdldCAtPiAkVGVzdFZhbHVlIiwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkQWN0aW9uSUQ7Cn0KCnN1YiBfRXhwcmVzc2lvbkFkZCB7CiAgICBteSAoICRFeHByZXNzaW9uRGF0YSwgJENvbmRpdGlvbklEICkgPSBAXzsKICAgIG15ICVFeHByZXNzaW9uQWRkU291cmNlRGF0YSA9ICV7JEV4cHJlc3Npb25EYXRhfTsKCiAgICBteSAlRXhwcmVzc2lvbkFkZERhdGE7CgogICAgIyBzZXQgc3RhdGljIGZpZWxkcwogICAgbXkgQFN0YXRpY0ZpZWxkcyA9IHF3KCBTZWxlY3RvciBDb21wYXJlVmFsdWUgVXNlcklEIENvbmRpdGlvbklEICk7CgogICAgU1RBVElDRklFTEQ6CiAgICBmb3IgbXkgJFN0YXRpY0ZpZWxkIChAU3RhdGljRmllbGRzKSB7CgogICAgICAgICMgb21pdCBzdGF0aWMgZmllbGQgaWYgaXQgaXMgbm90IHNldAogICAgICAgIG5leHQgU1RBVElDRklFTEQgaWYgIWV4aXN0cyAkRXhwcmVzc2lvbkFkZFNvdXJjZURhdGF7JFN0YXRpY0ZpZWxkfQogICAgICAgICAgICB8fCAhZGVmaW5lZCAkRXhwcmVzc2lvbkFkZFNvdXJjZURhdGF7JFN0YXRpY0ZpZWxkfTsKCiAgICAgICAgIyBzYWZlIGRhdGEKICAgICAgICAkRXhwcmVzc2lvbkFkZERhdGF7JFN0YXRpY0ZpZWxkfSA9ICRFeHByZXNzaW9uQWRkU291cmNlRGF0YXskU3RhdGljRmllbGR9OwogICAgfQoKICAgICMgZ2V0IGFsbCBmaWVsZHMgZm9yIEV4cHJlc3Npb25BZGQKICAgIEVYUFJFU1NJT05BRERWQUxVRToKICAgIGZvciBteSAkRXhwcmVzc2lvbkFkZFZhbHVlICggc29ydCBrZXlzICVFeHByZXNzaW9uQWRkU291cmNlRGF0YSApIHsKCiAgICAgICAgIyBvbWl0IHN0YXRpYyBmaWVsZHMKICAgICAgICBuZXh0IEVYUFJFU1NJT05BRERWQUxVRSBpZiBncmVwIHsgJF8gZXEgJEV4cHJlc3Npb25BZGRWYWx1ZSB9IEBTdGF0aWNGaWVsZHM7CgogICAgICAgICMgZ2V0IHZhbHVlcyBmb3IgZmllbGRzCiAgICAgICAgZm9yIG15ICRGaWVsZFZhbHVlICggc29ydCBrZXlzICV7ICRFeHByZXNzaW9uQWRkU291cmNlRGF0YXskRXhwcmVzc2lvbkFkZFZhbHVlfSB9ICkgewoKICAgICAgICAgICAgIyBzdG9yZSBnYXRoZXJlZCBpbmZvcm1hdGlvbiBpbiBoYXNoIGZvciBhZGRpbmcKICAgICAgICAgICAgJEV4cHJlc3Npb25BZGREYXRheyRFeHByZXNzaW9uQWRkVmFsdWV9ID0KICAgICAgICAgICAgICAgICRDb25kaXRpb25PYmplY3QtPiRGaWVsZFZhbHVlKAogICAgICAgICAgICAgICAgJXsgJEV4cHJlc3Npb25BZGRTb3VyY2VEYXRheyRFeHByZXNzaW9uQWRkVmFsdWV9LT57JEZpZWxkVmFsdWV9IH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGFkZCBleHByZXNzaW9uCiAgICBteSAkRXhwcmVzc2lvbklEID0gJENvbmRpdGlvbk9iamVjdC0+RXhwcmVzc2lvbkFkZCgKICAgICAgICAlRXhwcmVzc2lvbkFkZERhdGEsCiAgICAgICAgQ29uZGl0aW9uSUQgPT4gJENvbmRpdGlvbklELAogICAgKSB8fCAwOwoKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRFeHByZXNzaW9uSUQsCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICIgLSAkRXhwcmVzc2lvbklEIiwKICAgICk7CgogICAgbmV4dCBDUkVBVEVEQVRBIGlmICEkRXhwcmVzc2lvbklEOwoKICAgICMgY2hlY2sgdGhlIGFkZGVkIGV4cHJlc3Npb24KICAgIG15ICRFeHByZXNzaW9uR2V0RGF0YSA9ICRDb25kaXRpb25PYmplY3QtPkV4cHJlc3Npb25HZXQoCiAgICAgICAgRXhwcmVzc2lvbklEID0+ICRFeHByZXNzaW9uSUQsCiAgICAgICAgVXNlcklEICAgICAgID0+ICRFeHByZXNzaW9uQWRkRGF0YXtVc2VySUR9LAogICAgKTsKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRFeHByZXNzaW9uR2V0RGF0YSwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gJyAtIEV4cHJlc3Npb25BZGQoKTogRXhwcmVzc2lvbkdldCcsCiAgICApOwoKICAgICMgdGVzdCB2YWx1ZXMKICAgIGRlbGV0ZSAkRXhwcmVzc2lvbkFkZERhdGF7VXNlcklEfTsKICAgIGZvciBteSAkVGVzdFZhbHVlICggc29ydCBrZXlzICVFeHByZXNzaW9uQWRkRGF0YSApIHsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRFeHByZXNzaW9uR2V0RGF0YS0+eyRUZXN0VmFsdWV9LAogICAgICAgICAgICAkRXhwcmVzc2lvbkFkZERhdGF7JFRlc3RWYWx1ZX0sCiAgICAgICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiIC0gRXhwcmVzc2lvbkFkZCgpOiBFeHByZXNzaW9uR2V0IC0+ICRUZXN0VmFsdWUiLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuICRFeHByZXNzaW9uSUQ7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/ITSMWorkOrder.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCnVzZSBEYXRhOjpEdW1wZXI7CnVzZSBMaXN0OjpVdGlsIHF3KG1heCk7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgbWFrZSBwcmVwYXJhdGlvbnMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwpteSAkVGVzdENvdW50ID0gMTsKCiMgY3JlYXRlIGNvbW1vbiBvYmplY3RzCm15ICRDb25maWdPYmplY3QgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7Cm15ICREeW5hbWljRmllbGRPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKbXkgJFVzZXJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKbXkgJEdyb3VwT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7Cm15ICRWYWxpZE9iamVjdCAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpOwpteSAkR2VuZXJhbENhdGFsb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKTsKbXkgJENoYW5nZU9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKbXkgJFdvcmtPcmRlck9iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKTsKbXkgJEhlbHBlck9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiMgdGVzdCBpZiB3b3Jrb3JkZXIgb2JqZWN0IHdhcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseQokU2VsZi0+VHJ1ZSgKICAgICRXb3JrT3JkZXJPYmplY3QsCiAgICAiVGVzdCAiIC4gJFRlc3RDb3VudCsrIC4gJyAtIGNvbnN0cnVjdGlvbiBvZiB3b3Jrb3JkZXIgb2JqZWN0JywKKTsKJFNlbGYtPklzKAogICAgcmVmICRXb3JrT3JkZXJPYmplY3QsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInLAogICAgIlRlc3QgIiAuICRUZXN0Q291bnQrKyAuICcgLSBjbGFzcyBvZiB3b3Jrb3JkZXIgb2JqZWN0JywKKTsKCiMgdGVzdCBpZiBjaGFuZ2Ugb2JqZWN0IHdhcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseQokU2VsZi0+VHJ1ZSgKICAgICRDaGFuZ2VPYmplY3QsCiAgICAiVGVzdCAiIC4gJFRlc3RDb3VudCsrIC4gJyAtIGNvbnN0cnVjdGlvbiBvZiBjaGFuZ2Ugb2JqZWN0JywKKTsKJFNlbGYtPklzKAogICAgcmVmICRDaGFuZ2VPYmplY3QsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnLAogICAgIlRlc3QgIiAuICRUZXN0Q291bnQrKyAuICcgLSBjbGFzcyBvZiBjaGFuZ2Ugb2JqZWN0JywKKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBjcmVhdGUgbmVlZGVkIHVzZXJzCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKbXkgQFVzZXJJRHM7ICAgICAgICAgICAgICAgIyBhIGxpc3Qgb2YgZXhpc3RpbmcgYW5kIHZhbGlkIHVzZXIgaWRzCm15IEBJbnZhbGlkVXNlcklEczsgICAgICAgICMgYSBsaXN0IG9mIGV4aXN0aW5nIGJ1dCBpbnZhbGlkIHVzZXIgaWRzCm15IEBOb25FeGlzdGluZ1VzZXJJRHM7ICAgICMgYSBsaXN0IG9mIG5vbi1leGlzdGlvbiB1c2VyIGlkcwoKIyBkaXNhYmxlIGVtYWlsIGNoZWNrcyB0byBjcmVhdGUgbmV3IHVzZXIKbXkgJENoZWNrRW1haWxBZGRyZXNzZXNPcmcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0NoZWNrRW1haWxBZGRyZXNzZXMnKTsKaWYgKCAhZGVmaW5lZCAkQ2hlY2tFbWFpbEFkZHJlc3Nlc09yZyApIHsKICAgICRDaGVja0VtYWlsQWRkcmVzc2VzT3JnID0gMTsKfQokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnQ2hlY2tFbWFpbEFkZHJlc3NlcycsCiAgICBWYWx1ZSA9PiAwLAopOwoKZm9yIG15ICRDb3VudGVyICggMSAuLiAzICkgewoKICAgICMgY3JlYXRlIG5ldyB1c2VycyBmb3IgdGhlIHRlc3RzCiAgICBteSAkVXNlcklEID0gJFVzZXJPYmplY3QtPlVzZXJBZGQoCiAgICAgICAgVXNlckZpcnN0bmFtZSA9PiAnSVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicgLiAkQ291bnRlciwKICAgICAgICBVc2VyTGFzdG5hbWUgID0+ICdVbml0VGVzdCcsCiAgICAgICAgVXNlckxvZ2luICAgICA9PiAnVW5pdFRlc3QtSVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlci0nIC4gJENvdW50ZXIgLiAkSGVscGVyT2JqZWN0LT5HZXRSYW5kb21OdW1iZXIoKSwKICAgICAgICBVc2VyRW1haWwgICAgID0+ICdVbml0VGVzdC1JVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyLScgLiAkQ291bnRlciAuICdAbG9jYWxob3N0JywKICAgICAgICBWYWxpZElEICAgICAgID0+ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoIFZhbGlkID0+ICd2YWxpZCcgKSwKICAgICAgICBDaGFuZ2VVc2VySUQgID0+IDEsCiAgICApOwogICAgcHVzaCBAVXNlcklEcywgJFVzZXJJRDsKfQoKIyBzb3J0IHRoZSB1c2VyIGFuZCBjdXN0b21lciB1c2VyIGFycmF5cwpAVXNlcklEcyA9IHNvcnQgQFVzZXJJRHM7CgojIGNyZWF0ZSBub24gZXhpc3RpbmcgdXNlciBJRHMKZm9yICggMSAuLiAyICkgewogICAgTFBDOgogICAgZm9yIG15ICRMb29wUHJvdGVjdGlvbkNvdW50ZXIgKCAxIC4uIDEwMCApIHsKCiAgICAgICAgIyBjcmVhdGUgYSByYW5kb20gdXNlciBpZAogICAgICAgIG15ICRUZW1wTm9uRXhpc3RpbmdVc2VySUQgPSAkSGVscGVyT2JqZWN0LT5HZXRSYW5kb21OdW1iZXIoKTsKCiAgICAgICAgIyBjaGVjayBpZiByYW5kb20gdXNlciBpZCBleGlzdHMgYWxyZWFkeQogICAgICAgIG15ICVVc2VyRGF0YSA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRUZW1wTm9uRXhpc3RpbmdVc2VySUQsCiAgICAgICAgKTsKICAgICAgICBuZXh0IExQQyBpZiAlVXNlckRhdGE7CgogICAgICAgICMgd2UgZ290IGFuIHVudXNlZCB1c2VyIElECiAgICAgICAgcHVzaCBATm9uRXhpc3RpbmdVc2VySURzLCAkVGVtcE5vbkV4aXN0aW5nVXNlcklEOwogICAgICAgIGxhc3QgTFBDOwogICAgfQp9CgojIHNldCAzcmQgdXNlciBpbnZhbGlkCiRVc2VyT2JqZWN0LT5Vc2VyVXBkYXRlKAogICAgJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgIFVzZXJJRCA9PiAkVXNlcklEc1syXSwKICAgICksCiAgICBWYWxpZElEICAgICAgPT4gJFZhbGlkT2JqZWN0LT5WYWxpZExvb2t1cCggVmFsaWQgPT4gJ2ludmFsaWQnICksCiAgICBDaGFuZ2VVc2VySUQgPT4gMSwKKTsKcHVzaCBASW52YWxpZFVzZXJJRHMsIHBvcCBAVXNlcklEczsKCiMgcmVzdG9yZSBvcmlnaW5hbCBlbWFpbCBjaGVjayBwYXJhbQokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnQ2hlY2tFbWFpbEFkZHJlc3NlcycsCiAgICBWYWx1ZSA9PiAkQ2hlY2tFbWFpbEFkZHJlc3Nlc09yZywKKTsKCiMgdHVybiBvZmYgU2VuZE5vdGlmaWNhdGlvbnMsIGluIG9yZGVyIHRvIGF2b2lkIGEgbG90IG9mIHVzZWxlc3MgbWFpbHMKbXkgJFNlbmROb3RpZmljYXRpb25zT3JnID0gJENvbmZpZ09iamVjdC0+R2V0KCdJVFNNQ2hhbmdlOjpTZW5kTm90aWZjYXRpb25zJyk7CiRDb25maWdPYmplY3QtPlNldCgKICAgIEtleSAgID0+ICdJVFNNQ2hhbmdlOjpTZW5kTm90aWZpY2F0aW9ucycsCiAgICBWYWx1ZSA9PiAwLAopOwoKIyBzYXZlIG9yaWdpbmFsIGR5bmFtaWMgZmllbGQgY29uZmlndXJhdGlvbgpteSAkT3JpZ2luYWxEeW5hbWljRmllbGRzID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgIFZhbGlkID0+IDAsCik7CgpteSAkVW5pcXVlTmFtZVByZWZpeCA9ICdVbml0VGVzdFdvcmtvcmRlcicgLiAkSGVscGVyT2JqZWN0LT5HZXRSYW5kb21OdW1iZXIoKTsKCiMgY3JlYXRlIHNvbWUgZHluYW1pYyBmaWVsZHMgZm9yIHdvcmtvcmRlcnMKbXkgQER5bmFtaWNGaWVsZHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScsCiAgICAgICAgTGFiZWwgICAgICA9PiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScsCiAgICAgICAgRmllbGRPcmRlciA9PiAxMDAwMCwKICAgICAgICBGaWVsZFR5cGUgID0+ICdUZXh0JywKICAgICAgICBPYmplY3RUeXBlID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgIENvbmZpZyAgICAgPT4gewogICAgICAgICAgICBOYW1lICAgICAgICA9PiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScsCiAgICAgICAgICAgIERlc2NyaXB0aW9uID0+ICdEZXNjcmlwdGlvbiBmb3IgRHluYW1pYyBGaWVsZC4nLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInLAogICAgICAgIExhYmVsICAgICAgPT4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInLAogICAgICAgIEZpZWxkT3JkZXIgPT4gMTAwMDAsCiAgICAgICAgRmllbGRUeXBlICA9PiAnVGV4dCcsCiAgICAgICAgT2JqZWN0VHlwZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICBDb25maWcgICAgID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInLAogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAnRGVzY3JpcHRpb24gZm9yIER5bmFtaWMgRmllbGQuJywKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QzJywKICAgICAgICBMYWJlbCAgICAgID0+ICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QzJywKICAgICAgICBGaWVsZE9yZGVyID0+IDEwMDAwLAogICAgICAgIEZpZWxkVHlwZSAgPT4gJ1RleHQnLAogICAgICAgIE9iamVjdFR5cGUgPT4gJ0lUU01Xb3JrT3JkZXInLAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgQ29uZmlnICAgICA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QzJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0Rlc2NyaXB0aW9uIGZvciBEeW5hbWljIEZpZWxkLicsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0NCcsCiAgICAgICAgTGFiZWwgICAgICA9PiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0NCcsCiAgICAgICAgRmllbGRPcmRlciA9PiAxMDAwMCwKICAgICAgICBGaWVsZFR5cGUgID0+ICdUZXh0JywKICAgICAgICBPYmplY3RUeXBlID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgIENvbmZpZyAgICAgPT4gewogICAgICAgICAgICBOYW1lICAgICAgICA9PiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0NCcsCiAgICAgICAgICAgIERlc2NyaXB0aW9uID0+ICdEZXNjcmlwdGlvbiBmb3IgRHluYW1pYyBGaWVsZC4nLAogICAgICAgIH0sCiAgICB9LAopOwoKbXkgQER5bmFtaWNGaWVsZElEczsKZm9yIG15ICRUZXN0IChARHluYW1pY0ZpZWxkcykgewoKICAgICMgYWRkIGR5bmFtaWMgZmllbGQKICAgIG15ICREeW5hbWljRmllbGRJRCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEFkZCgKICAgICAgICAleyRUZXN0fSwKICAgICk7CgogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJER5bmFtaWNGaWVsZElELAogICAgICAgICIkVGVzdC0+e05hbWV9IC0gRHluYW1pY0ZpZWxkQWRkKCkiLAogICAgKTsKCiAgICAjIHJlbWVtYmVyIGlkIHRvIGRlbGV0ZSBpdCBsYXRlcgogICAgcHVzaCBARHluYW1pY0ZpZWxkSURzLCAkRHluYW1pY0ZpZWxkSUQ7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyB0ZXN0IElUU01Xb3JrT3JkZXIgQVBJCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiMgZGVmaW5lIHB1YmxpYyBpbnRlcmZhY2UgKGluIGFscGhhYmV0aWNhbCBvcmRlcikKbXkgQE9iamVjdE1ldGhvZHMgPSBxdygKICAgIFBlcm1pc3Npb24KICAgIFdvcmtPcmRlckFkZAogICAgV29ya09yZGVyQXR0YWNobWVudEFkZAogICAgV29ya09yZGVyQXR0YWNobWVudERlbGV0ZQogICAgV29ya09yZGVyQXR0YWNobWVudEV4aXN0cwogICAgV29ya09yZGVyQXR0YWNobWVudEdldAogICAgV29ya09yZGVyQXR0YWNobWVudExpc3QKICAgIFdvcmtPcmRlckNoYW5nZUVmZm9ydHNHZXQKICAgIFdvcmtPcmRlckNoYW5nZVRpbWVHZXQKICAgIFdvcmtPcmRlckRlbGV0ZQogICAgV29ya09yZGVyR2V0CiAgICBXb3JrT3JkZXJMaXN0CiAgICBXb3JrT3JkZXJQb3NzaWJsZVN0YXRlc0dldAogICAgV29ya09yZGVyU2VhcmNoCiAgICBXb3JrT3JkZXJTdGF0ZUlEc0NoZWNrCiAgICBXb3JrT3JkZXJTdGF0ZUxvb2t1cAogICAgV29ya09yZGVyVHlwZUxpc3QKICAgIFdvcmtPcmRlclR5cGVMb29rdXAKICAgIFdvcmtPcmRlclVwZGF0ZQopOwoKIyBjaGVjayBpZiBzdWJzIGFyZSBhdmFpbGFibGUKZm9yIG15ICRPYmplY3RNZXRob2QgKEBPYmplY3RNZXRob2RzKSB7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkV29ya09yZGVyT2JqZWN0LT5jYW4oJE9iamVjdE1ldGhvZCksCiAgICAgICAgIlRlc3QgIiAuICRUZXN0Q291bnQrKyAuICIgLSBjaGVjayAnY2FuICRPYmplY3RNZXRob2QnIgogICAgKTsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHNlYXJjaCBmb3IgZGVmYXVsdCBJVFNNV29ya09yZGVyIFN0YXRlcwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgZGVmaW5lIGRlZmF1bHQgSVRTTVdvcmtPcmRlciBTdGF0ZXMKIyBjYW4ndCB1c2UgcXcgZHVlIHRvIHNwYWNlcyBpbiBzdGF0ZXMKbXkgQERlZmF1bHRXb3JrT3JkZXJTdGF0ZXMgPSAoCiAgICAnY3JlYXRlZCcsCiAgICAnYWNjZXB0ZWQnLAogICAgJ3JlYWR5JywKICAgICdpbiBwcm9ncmVzcycsCiAgICAnY2xvc2VkJywKICAgICdjYW5jZWxlZCcsCik7CgojIGdldCBpdGVtIGxpc3Qgb2YgdGhlIHdvcmtvcmRlciBzdGF0ZXMgd2l0aCBzd2FwcGVkIGtleXMgYW5kIHZhbHVlcwpteSAlV29ya09yZGVyU3RhdGVJRDJOYW1lID0gJXsKICAgICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUxpc3QoCiAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6U3RhdGUnLAogICAgKSB8fCB7fQp9OwpteSAlV29ya09yZGVyU3RhdGVOYW1lMklEICAgPSByZXZlcnNlICVXb3JrT3JkZXJTdGF0ZUlEMk5hbWU7Cm15IEBTb3J0ZWRXb3JrT3JkZXJTdGF0ZUlEcyA9IHNvcnQga2V5cyAlV29ya09yZGVyU3RhdGVJRDJOYW1lOwoKIyBjaGVjayBpZiBzdGF0ZXMgYXJlIGluIEdlbmVyYWxDYXRhbG9nCmZvciBteSAkRGVmYXVsdFdvcmtPcmRlclN0YXRlIChARGVmYXVsdFdvcmtPcmRlclN0YXRlcykgewogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJFdvcmtPcmRlclN0YXRlTmFtZTJJRHskRGVmYXVsdFdvcmtPcmRlclN0YXRlfSwKICAgICAgICAiVGVzdCAiIC4gJFRlc3RDb3VudCsrIC4gIiAtIGNoZWNrIHN0YXRlICckRGVmYXVsdFdvcmtPcmRlclN0YXRlJyIKICAgICk7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyB0ZXN0IHRoZSBzdGF0ZSBsb29rdXAgbWV0aG9kCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiMgaW52ZXN0aWdhdGUgdGhlIGRlZmF1bHQgc3RhdGVzCmZvciBteSAkU3RhdGUgKEBEZWZhdWx0V29ya09yZGVyU3RhdGVzKSB7CgogICAgIyBsb29rIHVwIHRoZSBzdGF0ZSBuYW1lCiAgICBteSAkTG9va2VkVXBTdGF0ZUlEID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyU3RhdGVMb29rdXAoCiAgICAgICAgV29ya09yZGVyU3RhdGUgPT4gJFN0YXRlLAogICAgKTsKCiAgICAkU2VsZi0+SXMoCiAgICAgICAgJExvb2tlZFVwU3RhdGVJRCwKICAgICAgICAkV29ya09yZGVyU3RhdGVOYW1lMklEeyRTdGF0ZX0sCiAgICAgICAgIkxvb2sgdXAgc3RhdGUgJyRTdGF0ZSciLAogICAgKTsKCiAgICAjIGRvIHRoZSByZXZlcnNlIGxvb2t1cAogICAgbXkgJExvb2tlZFVwU3RhdGUgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJTdGF0ZUxvb2t1cCgKICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICRMb29rZWRVcFN0YXRlSUQsCiAgICApOwoKICAgICRTZWxmLT5JcygKICAgICAgICAkTG9va2VkVXBTdGF0ZSwKICAgICAgICAkU3RhdGUsCiAgICAgICAgIkxvb2sgdXAgc3RhdGUgaWQgJyRMb29rZWRVcFN0YXRlSUQnIiwKICAgICk7Cn0KCiMgbm93IHNvbWUgcGFyYW0gY2hlY2tzCm15ICRMb29rdXBPSyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclN0YXRlTG9va3VwKCk7CgokU2VsZi0+RmFsc2UoCiAgICAkTG9va3VwT0ssCiAgICAnTm8gcGFyYW1zIHBhc3NlZCB0byBXb3JrT3JkZXJTdGF0ZUxvb2t1cCgpJywKKTsKCiRMb29rdXBPSyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclN0YXRlTG9va3VwKAogICAgV29ya09yZGVyU3RhdGUgICA9PiAnYXBwcm92ZWQnLAogICAgV29ya09yZGVyU3RhdGVJRCA9PiAyLAopOwoKJFNlbGYtPkZhbHNlKAogICAgJExvb2t1cE9LLAogICAgJ0V4Y2x1c2l2ZSBwYXJhbXMgcGFzc2VkIHRvIFdvcmtPcmRlclN0YXRlTG9va3VwKCknLAopOwoKJExvb2t1cE9LID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyU3RhdGVMb29rdXAoCiAgICBTdGF0ZSA9PiAnYXBwcm92ZWQnLAopOwoKJFNlbGYtPkZhbHNlKAogICAgJExvb2t1cE9LLAogICAgIkluY29ycmVjdCBwYXJhbSAnU3RhdGUnIHBhc3NlZCB0byBXb3JrT3JkZXJTdGF0ZUxvb2t1cCgpIiwKKTsKCiRMb29rdXBPSyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclN0YXRlTG9va3VwKAogICAgU3RhdGVJRCA9PiAyLAopOwoKJFNlbGYtPkZhbHNlKAogICAgJExvb2t1cE9LLAogICAgIkluY29ycmVjdCBwYXJhbSAnU3RhdGVJRCcgcGFzc2VkIHRvIFdvcmtPcmRlclN0YXRlTG9va3VwKCkiLAopOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHNlYXJjaCBmb3IgZGVmYXVsdCBJVFNNV29ya09yZGVyLXR5cGVzCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBkZWZpbmUgZGVmYXVsdCBJVFNNV29ya09yZGVyLXN0YXRlcwojIGNhbid0IHVzZSBxdyBkdWUgdG8gc3BhY2VzIGluIHR5cGVzCm15IEBEZWZhdWx0V29ya09yZGVyVHlwZXMgPSAoCiAgICAnYXBwcm92YWwnLAogICAgJ3dvcmtvcmRlcicsCiAgICAnYmFja291dCcsCiAgICAnZGVjaXNpb24nLAogICAgJ3BpcicsCik7CgojIGdldCBjbGFzcyBsaXN0IHdpdGggc3dhcHBlZCBrZXlzIGFuZCB2YWx1ZXMKbXkgJVdvcmtPcmRlclR5cGVJRDJOYW1lID0gJXsKICAgICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUxpc3QoCiAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6VHlwZScsCiAgICApIHx8IHt9Cn07Cm15ICVXb3JrT3JkZXJUeXBlTmFtZTJJRCA9IHJldmVyc2UgJVdvcmtPcmRlclR5cGVJRDJOYW1lOwpteSBAU29ydGVkVHlwZUlEcyAgICAgICAgPSBzb3J0IGtleXMgJVdvcmtPcmRlclR5cGVJRDJOYW1lOwoKIyBjaGVjayBpZiB0eXBlcyBhcmUgaW4gR2VuZXJhbENhdGFsb2cKZm9yIG15ICREZWZhdWx0V29ya09yZGVyVHlwZSAoQERlZmF1bHRXb3JrT3JkZXJUeXBlcykgewogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJFdvcmtPcmRlclR5cGVOYW1lMklEeyREZWZhdWx0V29ya09yZGVyVHlwZX0sCiAgICAgICAgIlRlc3QgIiAuICRUZXN0Q291bnQrKyAuICIgLSBjaGVjayB0eXBlICckRGVmYXVsdFdvcmtPcmRlclR5cGUnIgogICAgKTsKfQoKIyB0ZXN0IGxvb2t1cCBtZXRob2QKZm9yIG15ICREZWZhdWx0V29ya09yZGVyVHlwZSAoQERlZmF1bHRXb3JrT3JkZXJUeXBlcykgewogICAgbXkgJFR5cGVJRCA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclR5cGVMb29rdXAoCiAgICAgICAgV29ya09yZGVyVHlwZSA9PiAkRGVmYXVsdFdvcmtPcmRlclR5cGUsCiAgICApOwoKICAgICRTZWxmLT5JcygKICAgICAgICAkVHlwZUlELAogICAgICAgICRXb3JrT3JkZXJUeXBlTmFtZTJJRHskRGVmYXVsdFdvcmtPcmRlclR5cGV9LAogICAgICAgICJMb29rdXAgJERlZmF1bHRXb3JrT3JkZXJUeXBlIiwKICAgICk7CgogICAgbXkgJFR5cGVOYW1lID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyVHlwZUxvb2t1cCgKICAgICAgICBXb3JrT3JkZXJUeXBlSUQgPT4gJFR5cGVJRCwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgICRUeXBlTmFtZSwKICAgICAgICAkRGVmYXVsdFdvcmtPcmRlclR5cGUsCiAgICAgICAgIkxvb2t1cCAkVHlwZUlEIiwKICAgICk7Cn0KCiMgdGVzdCB0aGUgbWV0aG9kIFdvcmtPcmRlclR5cGVMaXN0KCkuIEl0IHNob3VsZCByZXR1cm4gYSBsaXN0IG9mIGFsbCB0eXBlcy4KbXkgJFR5cGVzTGlzdFVuZGVyVGVzdCA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclR5cGVMaXN0KAogICAgVXNlcklEID0+IDEsCikgfHwge307CgojIGRvIHRoZSBjaGVja3MKZm9yIG15ICRUeXBlSUQgKEBTb3J0ZWRUeXBlSURzKSB7CiAgICBteSAoICRGaXJzdEhhc2hSZWYsICRTZWNvbmRIYXNoUmVmICkgPSBncmVwIHsgJF8tPntLZXl9ID09ICRUeXBlSUQgfSBAeyRUeXBlc0xpc3RVbmRlclRlc3R9OwoKICAgICMgYSBtYXRjaCBpcyBleHBlY3RlZAogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJEZpcnN0SGFzaFJlZiwKICAgICAgICAiQ2hlY2sgZm9yIHR5cGUgaWQgJFR5cGVJRCIsCiAgICApOwoKICAgICMgdGhlIG5hbWUgc2hvdWxkIGFsc28gbWF0Y2gKICAgICRGaXJzdEhhc2hSZWYgfHw9IHt9OwogICAgbXkgJFR5cGVOYW1lID0gJFdvcmtPcmRlclR5cGVJRDJOYW1leyRUeXBlSUR9OwogICAgJFNlbGYtPklzKAogICAgICAgICRGaXJzdEhhc2hSZWYtPntWYWx1ZX0sCiAgICAgICAgJFR5cGVOYW1lLAogICAgICAgICJDaGVjayBmb3IgdHlwZSBuYW1lICRUeXBlSUQiLAogICAgKTsKCiAgICAjIG9ubHkgb25lIG1hdGNoIGlzIGV4cGVjdGVkCiAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgJFNlY29uZEhhc2hSZWYsCiAgICAgICAgIkNoZWNrIHRoYXQgdGhlIHR5cGUgaWQgJFR5cGVJRCBpcyByZXR1cm5lZCBvbmx5IG9uY2UuIiwKICAgICk7Cgp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgRGVmaW5lIHRoZSBjaGFuZ2VzIHRoYXQgYXJlIG5lZWRlZCBmb3IgdGVzdGluZyB3b3Jrb3JkZXJzCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiMgc3RvcmUgY3VycmVudCBUZXN0Q291bnQgZm9yIGJldHRlciB0ZXN0IGNhc2UgcmVjb2duaXRpb24KbXkgJFRlc3RDb3VudE1pc2MgPSAkVGVzdENvdW50OwoKIyBBbiB1bmlxdWUgaW5kZW50aWZpZXIsIHNvIHRoYXQgZGF0YSBmcm9tIGRpZmZlcmVudCB0ZXN0IHJ1bnMKIyB3b24ndCBiZSBtaXhlZCB1cC4gVGhlIHN0cmluZyBpcyBmb3JtYXRlZCB0byBhIGNvbnN0YW50IGxlbmd0aCwKIyBhcyB0aGUgY29udmVyc2lvbiB0byBwbGFpbiB0ZXh0IHdpdGggVG9Bc2NpaSgpIGRlcGVuZHMgb24gdGhlIHN0cmluZyBsZW5ndGguCm15ICRVbmlxdWVTaWduYXR1cmUgPSBzcHJpbnRmICdVbml0VGVzdC1JVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyLSUuNnMtJTAxMGQnLAogICAgJEhlbHBlck9iamVjdC0+R2V0UmFuZG9tTnVtYmVyKCksCiAgICB0aW1lKCk7CgpteSBAQ2hhbmdlVGVzdHMgPSAoCgogICAgIyBhIGNoYW5nZSBmb3IgZ2VuZXJhbCB3b3Jrb3JkZXIgdGVzdGluZwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2UgZm9yIGdlbmVyYWwgdGVzdGluZyBvZiB3b3Jrb3JkZXJzLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ0NoYW5nZSAxIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnQ2hhbmdlIDEgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgICMgYSBjaGFuZ2UgZm9yIE9yZGVyQnkgd29ya29yZGVyIHNlYXJjaGVzCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZSBmb3IgdGVzdGluZyBPcmRlckJ5IHdvcmtvcmRlciBzZWFyY2hlcy4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdDaGFuZ2UgMiAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBDaGFuZ2VHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ0NoYW5nZSAyIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIGEgY2hhbmdlIGZvciB0ZXN0aW5nIHN0cmluZyBzZWFyY2hlcyBpbiB0aGUgYXNzb2NpYXRlZCBjaGFuZ2UKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlIGZvciB0ZXN0aW5nIHN0cmluZyBzZWFyY2hlcyBpbiBjaGFuZ2UuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICdDaGFuZ2UgMyAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdDaGFuZ2UgMyAtIERlc2NyaXB0aW9uIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICdDaGFuZ2UgMyAtIEp1c3RpZmljYXRpb24gLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJ0NoYW5nZSAzIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ0NoYW5nZSAzIC0gRGVzY3JpcHRpb24gLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gJ0NoYW5nZSAzIC0gSnVzdGlmaWNhdGlvbiAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgICMgYSBjaGFuZ2UgZm9yIHRlc3RpbmcgdGltZSBzZWFyY2hlcyBpbiB3b3Jrb3JkZXJzCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZSBmb3IgdGVzdGluZyB0aW1lIHNlYXJjaGVzIGluIHdvcmtvcmRlcnMgLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ0NoYW5nZSA0IGZvciB0ZXN0aW5nIHRpbWUgc2VhcmNoZXMgaW4gd29ya29yZGVyIC0gVGl0bGUgLSAnCiAgICAgICAgICAgICAgICAgICAgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAnQ2hhbmdlIDQgZm9yIHRlc3RpbmcgdGltZSBzZWFyY2hlcyBpbiB3b3Jrb3JkZXIgLSBUaXRsZSAtICcKICAgICAgICAgICAgICAgICAgICAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBhIGNoYW5nZSBmb3IgdGVzdGluZyB0aGUgUGVybWlzc2lvbigpIG1ldGhvZAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdDaGFuZ2UgZm9yIHRlc3RpbmcgdGhlIFBlcm1pc3Npb24oKSBtZXRob2QnLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdDaGFuZ2UgNSBmb3IgdGVzdGluZyB0aGUgUGVybWlzc2lvbigpIG1ldGhvZCcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdDaGFuZ2UgNSBmb3IgdGVzdGluZyB0aGUgUGVybWlzc2lvbigpIG1ldGhvZCcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDaGFuZ2VDQUJHZXQgPT4gewogICAgICAgICAgICAgICAgQ0FCQWdlbnRzID0+IFsKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBDQUJDdXN0b21lcnMgPT4gWwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBDcmVhdGUgdGhlIGNoYW5nZXMgdGhhdCBhcmUgbmVlZGVkIGZvciB0ZXN0aW5nIHdvcmtvcmRlcnMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBjaGFuZ2UgaWRzIG9mIGNyZWF0ZWQgY2hhbmdlcwpteSAlVGVzdGVkQ2hhbmdlSUQ7CgpURVNUOgpmb3IgbXkgJFRlc3QgKEBDaGFuZ2VUZXN0cykgewoKICAgICMgY2hlY2sgU291cmNlRGF0YSBhdHRyaWJ1dGUKICAgIGlmICggISRUZXN0LT57U291cmNlRGF0YX0gfHwgcmVmICRUZXN0LT57U291cmNlRGF0YX0gbmUgJ0hBU0gnICkgewoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgMCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogTm8gU291cmNlRGF0YSBmb3VuZCBmb3IgdGhpcyB0ZXN0ICh0ZXN0IGNhc2U6ICIKICAgICAgICAgICAgICAgIC4gKCAkVGVzdENvdW50IC0gJFRlc3RDb3VudE1pc2MgKSAuICIpLiIsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBURVNUOwogICAgfQoKICAgICMgcHJpbnQgdGVzdCBjYXNlIGRlc2NyaXB0aW9uCiAgICBpZiAoICRUZXN0LT57RGVzY3JpcHRpb259ICkgewogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAxLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiAkVGVzdC0+e0Rlc2NyaXB0aW9ufSAodGVzdCBjYXNlOiAiCiAgICAgICAgICAgICAgICAuICggJFRlc3RDb3VudCAtICRUZXN0Q291bnRNaXNjICkgLiAiKS4iLAogICAgICAgICk7CiAgICB9CgogICAgIyBleHRyYWN0IHRlc3QgZGF0YQogICAgbXkgJFNvdXJjZURhdGEgICAgPSAkVGVzdC0+e1NvdXJjZURhdGF9OwogICAgbXkgJFJlZmVyZW5jZURhdGEgPSAkVGVzdC0+e1JlZmVyZW5jZURhdGF9OwoKICAgICMgdGhlIGNoYW5nZSBpZCB3aWxsIGJlIHVzZWQgZm9yIHNldmVyYWwgY2FsbHMKICAgIG15ICRDaGFuZ2VJRDsKCiAgICAjIGFkZCBhIG5ldyBjaGFuZ2UKICAgIGlmICggJFNvdXJjZURhdGEtPntDaGFuZ2VBZGR9ICkgewoKICAgICAgICAjIGFkZCB0aGUgY2hhbmdlCiAgICAgICAgJENoYW5nZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICAleyAkU291cmNlRGF0YS0+e0NoYW5nZUFkZH0gfQogICAgICAgICk7CgogICAgICAgICMgcmVtZW1iZXIgY3VycmVudCBDaGFuZ2VJRAogICAgICAgIGlmICgkQ2hhbmdlSUQpIHsKICAgICAgICAgICAgJFRlc3RlZENoYW5nZUlEeyRDaGFuZ2VJRH0gPSAxOwogICAgICAgIH0KCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2hhbmdlQWRkKCkgLSBBZGQgY2hhbmdlLiIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBhIGNoYW5nZSBhbmQgY29tcGFyZSB0aGUgcmV0cmlldmVkIGRhdGEgd2l0aCB0aGUgcmVmZXJlbmNlCiAgICBpZiAoIGV4aXN0cyAkUmVmZXJlbmNlRGF0YS0+e0NoYW5nZUdldH0gKSB7CgogICAgICAgIG15ICRDaGFuZ2VHZXRSZWZlcmVuY2VEYXRhID0gJFJlZmVyZW5jZURhdGEtPntDaGFuZ2VHZXR9OwoKICAgICAgICBteSAkQ2hhbmdlRGF0YSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgQ2hhbmdlR2V0IHNob3VsZCBub3QgcmV0dXJuIGFueXRoaW5nCiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUmVmZXJlbmNlRGF0YS0+e0NoYW5nZUdldH0gKSB7CiAgICAgICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgICAgICRDaGFuZ2VEYXRhLAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gR2V0IGNoYW5nZSByZXR1cm5zIHVuZGVmLiIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHdlIGV4Y3BlY3RlZCB0byBmYWlsCiAgICAgICAgICAgIGlmICggJFRlc3QtPntGYWlsc30gKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAgICAgIWRlZmluZWQgJENoYW5nZURhdGEsCiAgICAgICAgICAgICAgICAgICAgIWRlZmluZWQgJFJlZmVyZW5jZURhdGEtPntDaGFuZ2VEYXRhfSwKICAgICAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBTaG91bGQgZmFpbC4iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZXh0IFRFU1Q7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGZvciBhbHdheXMgZXhpc3RpbmcgYXR0cmlidXRlcwogICAgICAgIGZvciBteSAkQ2hhbmdlQXR0cmlidXRlcyAoCiAgICAgICAgICAgIHF3KENoYW5nZUlEIENoYW5nZU51bWJlciBDaGFuZ2VCdWlsZGVySUQgQ3JlYXRlVGltZSBDaGFuZ2VUaW1lKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRDaGFuZ2VEYXRhLT57JENoYW5nZUF0dHJpYnV0ZXN9LAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gaGFzICRDaGFuZ2VBdHRyaWJ1dGVzLiIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJFJlcXVlc3RlZEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAleyAkUmVmZXJlbmNlRGF0YS0+e0NoYW5nZUdldH0gfSApIHsKCiAgICAgICAgICAgICMgdHVybiBvZmYgYWxsIHByZXR0eSBwcmludAogICAgICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOwogICAgICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpVc2VxcSAgPSAxOwoKICAgICAgICAgICAgIyBkdW1wIHRoZSBhdHRyaWJ1dGUgZnJvbSBDaGFuZ2VHZXQoKSBhbmQgdGhlIHJlZmVyZW5jZSBhdHRyaWJ1dGUKICAgICAgICAgICAgIyMgbm8gY3JpdGljCiAgICAgICAgICAgIG15ICRDaGFuZ2VBdHRyaWJ1dGUgICAgPSBEYXRhOjpEdW1wZXI6OkR1bXBlciggJENoYW5nZURhdGEtPnskUmVxdWVzdGVkQXR0cmlidXRlfSApOyAgICAgICAgICAgICAgICAgICMjIG5vIGNyaXRpYwogICAgICAgICAgICBteSAkUmVmZXJlbmNlQXR0cmlidXRlID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoICRSZWZlcmVuY2VEYXRhLT57Q2hhbmdlR2V0fS0+eyRSZXF1ZXN0ZWRBdHRyaWJ1dGV9ICkKICAgICAgICAgICAgICAgIDsgICAgIyMgbm8gY3JpdGljCiAgICAgICAgICAgICAgICAgICAgICMgdXNlIGNyaXRpYwoKICAgICAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAgICAgJENoYW5nZUF0dHJpYnV0ZSwKICAgICAgICAgICAgICAgICRSZWZlcmVuY2VBdHRyaWJ1dGUsCiAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSAkUmVmZXJlbmNlQXR0cmlidXRlIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9ICAgICMgZW5kIGlmICdDaGFuZ2VHZXQnCn0KY29udGludWUgewoKICAgICMgaW5jcmVhc2UgdGhlIHRlc3QgY291bnQsIGV2ZW4gb24gbmV4dAogICAgJFRlc3RDb3VudCsrOwp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgRGVmaW5lIHRoZSB3b3Jrb3JkZXIgdGVzdHMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwpteSAoCiAgICAkV29ya09yZGVyQWRkVGVzdElELCAkT3JkZXJCeVRlc3RJRCwgJFN0cmluZ1NlYXJjaFRlc3RJRCwKICAgICRUaW1lU2VhcmNoVGVzdElELCAgICRQZXJtaXNzaW9uVGVzdElECikgPSBzb3J0IGtleXMgJVRlc3RlZENoYW5nZUlEOwoKIyB0ZXN0cyB3aXRoIG9ubHkgV29ya09yZGVyQWRkKCk7Cm15IEBXb3JrT3JkZXJUZXN0cyA9ICgKCiAgICAjIFRlc3RzIHdoZXJlIHRoZSB3b3Jrb3JkZXIgZG9lc24ndCBjb250YWluIGFsbCBkYXRhIChyZXF1aXJlZCBhdHRyaWJ1dGVzKQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGNvbnRhaW5zIG5vIHBhcmFtcyBmb3IgV29ya09yZGVyQWRkKCkuJywKICAgICAgICBGYWlscyAgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB3ZSBleHBlY3QgdGhpcyB0ZXN0IHRvIGZhaWwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7fSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVXNlcklEIGFuZCBDaGFuZ2VJRCBhcmUgbWlzc2luZwogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBjb250YWlucyBubyBVc2VySUQgZm9yIFdvcmtPcmRlckFkZCgpLicsCiAgICAgICAgRmFpbHMgICAgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgd2UgZXhwZWN0IHRoaXMgdGVzdCB0byBmYWlsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFVzZXJJRCBpcyBtaXNzaW5nCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBjb250YWlucyBubyBDaGFuZ2VJRCBmb3IgV29ya09yZGVyQWRkKCkuJywKICAgICAgICBGYWlscyAgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHdlIGV4cGVjdCB0aGlzIHRlc3QgdG8gZmFpbAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIENoYW5nZUlEIGlzIG1pc3NpbmcKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCiAgICAjIEZpcnN0IHRlc3Qgb2YgV29ya09yZGVyQWRkKCkgd2l0aCBhbGwgcmVxdWlyZWQgYXJndW1lbnRzLgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGNvbnRhaW5zIENoYW5nZUlEIGFuZCBDaGFuZ2VJRCBmb3IgV29ya09yZGVyQWRkKCkuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyAyLCA4IF0sCiAgICB9LAoKICAgICMgRmlyc3QgdGVzdCBvZiBXb3JrT3JkZXJBZGQoKSB3aXRoIGFsbCByZXF1aXJlZCBhcmd1bWVudHMsIG5vdCBVc2VySUQgPT4gMS4KICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PgogICAgICAgICAgICAnVGVzdCBjb250YWlucyBDaGFuZ2VJRCBhbmQgQ2hhbmdlSUQgZm9yIFdvcmtPcmRlckFkZCgpLCBvdGhlciB1c2VyIHRoYW4gVXNlcklEID0+IDEuJywKICAgICAgICBTb3VyY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIENyZWF0ZUJ5ID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgPT4gJFVzZXJJRHNbMF0KICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyAyLCA4IF0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnV29ya09yZGVyQWRkKCkgd2l0aCBzdHJpbmcgcGFyYW1ldGVycy4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1dvcmtPcmRlciAxIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uICAgID0+ICdXb3JrT3JkZXIgMSAtIEluc3RydWN0aW9uIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBSZXBvcnQgICAgICAgICA9PiAnV29ya09yZGVyIDEgLSBSZXBvcnQgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgICA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAnV29ya09yZGVyIDEgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgICA9PiAnV29ya09yZGVyIDEgLSBJbnN0cnVjdGlvbiAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb25QbGFpbiA9PiAiV29ya09yZGVyIDEgLSBJbnN0cnVjdGlvbiAtXG4kVW5pcXVlU2lnbmF0dXJlXG4iLAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgICA9PiAnV29ya09yZGVyIDEgLSBSZXBvcnQgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFJlcG9ydFBsYWluICAgICAgPT4gJ1dvcmtPcmRlciAxIC0gUmVwb3J0IC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgMiwgMywgNCwgNSwgNiwgOCwgMTEgXSwKICAgIH0sCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdXb3Jrb3JkZXIgY29udGFpbnMgSFRNTCBpbnN0cnVjdGlvbiBhbmQgcmVwb3J0JywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uID0+ICc8Yj5UaGlzIGluc3RydWN0aW9uIDx1PmlzPC91PiBib2xkPC9iPiAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgPT4gJzxiPlRoaXMgcmVwb3J0IDx1PmlzPC91PiBib2xkPC9iPiAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSAgID0+ICcnLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgICA9PiAnPGI+VGhpcyBpbnN0cnVjdGlvbiA8dT5pczwvdT4gYm9sZDwvYj4gLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uUGxhaW4gPT4gIlRoaXMgaW5zdHJ1Y3Rpb24gaXMgYm9sZCAtXG4kVW5pcXVlU2lnbmF0dXJlXG4iLAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgICA9PiAnPGI+VGhpcyByZXBvcnQgPHU+aXM8L3U+IGJvbGQ8L2I+IC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBSZXBvcnRQbGFpbiAgICAgID0+ICdUaGlzIHJlcG9ydCBpcyBib2xkIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsyXSwKICAgIH0sCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdXb3JrT3JkZXJBZGQoKSB3aXRoIFdvcmtPcmRlclN0YXRlSUQuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgID0+ICRXb3JrT3JkZXJBZGRUZXN0SUQsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICRXb3JrT3JkZXJTdGF0ZU5hbWUySUR7cmVhZHl9LAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAnV29ya09yZGVyQWRkIHdpdGggV29ya09yZGVyU3RhdGVJRCAtIFRpdGxlIC0gJwogICAgICAgICAgICAgICAgICAgIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uID0+ICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJTdGF0ZUlEIC0gSW5zdHJ1Y3Rpb24gLSAnCiAgICAgICAgICAgICAgICAgICAgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgUmVwb3J0ID0+ICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJTdGF0ZUlEIC0gUmVwb3J0IC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlSUQgPT4gJFdvcmtPcmRlclN0YXRlTmFtZTJJRHtyZWFkeX0sCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSAgID0+ICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJTdGF0ZUlEIC0gVGl0bGUgLSAnCiAgICAgICAgICAgICAgICAgICAgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gPT4gJ1dvcmtPcmRlckFkZCB3aXRoIFdvcmtPcmRlclN0YXRlSUQgLSBJbnN0cnVjdGlvbiAtICcKICAgICAgICAgICAgICAgICAgICAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBSZXBvcnQgPT4gJ1dvcmtPcmRlckFkZCB3aXRoIFdvcmtPcmRlclN0YXRlSUQgLSBSZXBvcnQgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyAyLCA4LCAyNywgMjggXSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1dvcmtPcmRlckFkZCgpIHdpdGggV29ya09yZGVyVHlwZUlELicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclR5cGVJRCA9PiAkV29ya09yZGVyVHlwZU5hbWUySUR7YXBwcm92YWx9LAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgID0+ICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJUeXBlSUQgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgID0+ICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJUeXBlSUQgLSBJbnN0cnVjdGlvbiAtICcKICAgICAgICAgICAgICAgICAgICAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBSZXBvcnQgPT4gJ1dvcmtPcmRlckFkZCB3aXRoIFdvcmtPcmRlclR5cGVJRCAtIFJlcG9ydCAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclR5cGVJRCA9PiAkV29ya09yZGVyVHlwZU5hbWUySUR7YXBwcm92YWx9LAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgID0+ICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJUeXBlSUQgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgID0+ICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJUeXBlSUQgLSBJbnN0cnVjdGlvbiAtICcKICAgICAgICAgICAgICAgICAgICAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBSZXBvcnQgPT4gJ1dvcmtPcmRlckFkZCB3aXRoIFdvcmtPcmRlclR5cGVJRCAtIFJlcG9ydCAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbIDIsIDgsIDEzLCAyMywgMjQgXSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1dvcmtPcmRlckFkZCgpIHdpdGggV29ya09yZGVyVHlwZUlEIGFuZCBXb3JrT3JkZXJTdGF0ZUlELicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgICA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICAgICAgV29ya09yZGVyVHlwZUlEICA9PiAkV29ya09yZGVyVHlwZU5hbWUySUR7cGlyfSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlSUQgPT4gJFdvcmtPcmRlclN0YXRlTmFtZTJJRHtjbG9zZWR9LAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PgogICAgICAgICAgICAgICAgICAgICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJUeXBlSUQgYW5kIFdvcmtPcmRlclN0YXRlSUQgLSBUaXRsZSAtICcKICAgICAgICAgICAgICAgICAgICAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbiA9PgogICAgICAgICAgICAgICAgICAgICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJUeXBlSUQgYW5kIFdvcmtPcmRlclN0YXRlSUQgLSBJbnN0cnVjdGlvbiAtICcKICAgICAgICAgICAgICAgICAgICAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBSZXBvcnQgPT4gJ1dvcmtPcmRlckFkZCB3aXRoIFdvcmtPcmRlclR5cGVJRCBhbmQgV29ya09yZGVyU3RhdGVJRCAtIFJlcG9ydCAtICcKICAgICAgICAgICAgICAgICAgICAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclR5cGVJRCAgPT4gJFdvcmtPcmRlclR5cGVOYW1lMklEe3Bpcn0sCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICRXb3JrT3JkZXJTdGF0ZU5hbWUySUR7Y2xvc2VkfSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4KICAgICAgICAgICAgICAgICAgICAnV29ya09yZGVyQWRkIHdpdGggV29ya09yZGVyVHlwZUlEIGFuZCBXb3JrT3JkZXJTdGF0ZUlEIC0gVGl0bGUgLSAnCiAgICAgICAgICAgICAgICAgICAgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gPT4KICAgICAgICAgICAgICAgICAgICAnV29ya09yZGVyQWRkIHdpdGggV29ya09yZGVyVHlwZUlEIGFuZCBXb3JrT3JkZXJTdGF0ZUlEIC0gSW5zdHJ1Y3Rpb24gLSAnCiAgICAgICAgICAgICAgICAgICAgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgUmVwb3J0ID0+ICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJUeXBlSUQgYW5kIFdvcmtPcmRlclN0YXRlSUQgLSBSZXBvcnQgLSAnCiAgICAgICAgICAgICAgICAgICAgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbIDIsIDgsIDEzLCAyMywgMjQsIDI3LCAyOCBdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PgogICAgICAgICAgICAnV29ya09yZGVyQWRkKCkgYW5kIFdvcmtPcmRlclVwZGF0ZSgpIHdpdGggV29ya09yZGVyVHlwZUlEIGFuZCBXb3JrT3JkZXJTdGF0ZUlELicsCiAgICAgICAgU291cmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgID0+ICRXb3JrT3JkZXJBZGRUZXN0SUQsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUeXBlSUQgID0+ICRXb3JrT3JkZXJUeXBlTmFtZTJJRHtwaXJ9LAogICAgICAgICAgICAgICAgV29ya09yZGVyU3RhdGVJRCA9PiAkV29ya09yZGVyU3RhdGVOYW1lMklEeydpbiBwcm9ncmVzcyd9LAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAnV29ya09yZGVyQWRkIHdpdGggV29ya09yZGVyU3RhdGVJRCAtIFRpdGxlIC0gJwogICAgICAgICAgICAgICAgICAgIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uID0+ICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJTdGF0ZUlEIC0gSW5zdHJ1Y3Rpb24gLSAnCiAgICAgICAgICAgICAgICAgICAgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgUmVwb3J0ID0+ICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJTdGF0ZUlEIC0gUmVwb3J0IC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlclVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUeXBlSUQgID0+ICRXb3JrT3JkZXJUeXBlTmFtZTJJRHtkZWNpc2lvbn0sCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICRXb3JrT3JkZXJTdGF0ZU5hbWUySUR7Y2FuY2VsZWR9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgID0+ICRXb3JrT3JkZXJBZGRUZXN0SUQsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUeXBlSUQgID0+ICRXb3JrT3JkZXJUeXBlTmFtZTJJRHtkZWNpc2lvbn0sCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICRXb3JrT3JkZXJTdGF0ZU5hbWUySUR7Y2FuY2VsZWR9LAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAnV29ya09yZGVyQWRkIHdpdGggV29ya09yZGVyU3RhdGVJRCAtIFRpdGxlIC0gJwogICAgICAgICAgICAgICAgICAgIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uID0+ICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJTdGF0ZUlEIC0gSW5zdHJ1Y3Rpb24gLSAnCiAgICAgICAgICAgICAgICAgICAgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgUmVwb3J0ID0+ICdXb3JrT3JkZXJBZGQgd2l0aCBXb3JrT3JkZXJTdGF0ZUlEIC0gUmVwb3J0IC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgMiwgOCBdLAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1dvcmtPcmRlckFkZCgpIHdpdGggZW1wdHkgc3RyaW5nIHBhcmFtZXRlcnMuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICcnLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgPT4gJycsCiAgICAgICAgICAgICAgICBSZXBvcnQgICAgICAgICA9PiAnJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICcnLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgPT4gJycsCiAgICAgICAgICAgICAgICBSZXBvcnQgICAgICAgICA9PiAnJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyAyLCA4IF0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgU3RhdGVzIChubyBpZHMpIGluIFdPQWRkKCknLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1dvcmtPcmRlclN0YXRlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZSA9PiAnY2xvc2VkJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgICA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAnV29ya09yZGVyU3RhdGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlICAgPT4gJ2Nsb3NlZCcsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICRXb3JrT3JkZXJTdGF0ZU5hbWUySUR7Y2xvc2VkfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyAyNywgMjggXSwKICAgIH0sCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGZvciBpbnZhbGlkIHN0YXRlIG5hbWVzIGluIFdPQWRkKCkgYW5kIFdPVXBkYXRlKCknLAogICAgICAgIFVwZGF0ZUZhaWxzID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICAgID0+ICRXb3JrT3JkZXJBZGRUZXN0SUQsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnV29ya09yZGVyU3RhdGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlID0+ICdjbG9zZWQnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgV29ya09yZGVyU3RhdGUgPT4gJ2NhbmNlbGVkJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyR2V0ID0+IHsKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIENyZWF0ZUJ5ICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZUJ5ICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4gJ1dvcmtPcmRlclN0YXRlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZSAgID0+ICdjbG9zZWQnLAogICAgICAgICAgICAgICAgV29ya09yZGVyU3RhdGVJRCA9PiAkV29ya09yZGVyU3RhdGVOYW1lMklEe2Nsb3NlZH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgMjcsIDI4IF0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgdmFsaWQgc3RhdGUgbmFtZXMgaW4gV09BZGQoKSBhbmQgV09VcGRhdGUoKScsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICAgID0+ICRXb3JrT3JkZXJBZGRUZXN0SUQsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnV29ya09yZGVyU3RhdGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlID0+ICdpbiBwcm9ncmVzcycsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlclVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZSA9PiAnY2FuY2VsZWQnLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgICA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAnV29ya09yZGVyU3RhdGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlICAgPT4gJ2NhbmNlbGVkJywKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlSUQgPT4gJFdvcmtPcmRlclN0YXRlTmFtZTJJRHtjYW5jZWxlZH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGZvciBUeXBlcyAobm8gaWRzKSBpbiBXT0FkZCgpJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICdXb3JrT3JkZXJUeXBlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUeXBlICA9PiAncGlyJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICA9PiAnV29ya09yZGVyVHlwZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgV29ya09yZGVyVHlwZSAgID0+ICdwaXInLAogICAgICAgICAgICAgICAgV29ya09yZGVyVHlwZUlEID0+ICRXb3JrT3JkZXJUeXBlTmFtZTJJRHtwaXJ9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbIDEzLCAyMywgMjQgXSwKICAgIH0sCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGZvciBUeXBlcyAobm8gaWRzKSBpbiBXT0FkZCgpIGFuZCBXT1VwZGF0ZSgpJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICdXb3JrT3JkZXJUeXBlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUeXBlICA9PiAncGlyJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlclR5cGUgPT4gJ2RlY2lzaW9uJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgID0+ICRXb3JrT3JkZXJBZGRUZXN0SUQsCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZUJ5ICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgID0+ICdXb3JrT3JkZXJUeXBlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUeXBlICAgPT4gJ2RlY2lzaW9uJywKICAgICAgICAgICAgICAgIFdvcmtPcmRlclR5cGVJRCA9PiAkV29ya09yZGVyVHlwZU5hbWUySUR7ZGVjaXNpb259LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgV29ya09yZGVyVXBkYXRlKCkgd2l0aCBub3QgYWxsb3dlZCB3b3Jrb3JkZXIgc3RhdGUnLAogICAgICAgIFVwZGF0ZUZhaWxzID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnV29ya09yZGVyVXBkYXRlKCkgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlID0+ICdpbiBwcm9ncmVzcycsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZUJ5ICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnV29ya09yZGVyVXBkYXRlKCkgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlID0+ICdjcmVhdGVkJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgJ1Rlc3QgZm9yIFdvcmtPcmRlclVwZGF0ZSgpIHdpdGggbm90IGFsbG93ZWQgd29ya29yZGVyIHN0YXRlIGJ1dCBCeXBhc3NTdGF0ZU1hY2hpbmUgcGFyYW1ldGVyLicsCiAgICAgICAgU291cmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICdXb3JrT3JkZXJVcGRhdGUoKSBCeXBhc3NTdGF0ZU1hY2hpbmUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlICAgICA9PiAnaW4gcHJvZ3Jlc3MnLAogICAgICAgICAgICAgICAgQnlwYXNzU3RhdGVNYWNoaW5lID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICdXb3JrT3JkZXJVcGRhdGUoKSBCeXBhc3NTdGF0ZU1hY2hpbmUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlID0+ICdpbiBwcm9ncmVzcycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgopOwoKIyB0ZXN0cyBmb3IgV29ya09yZGVyVXBkYXRlKCk7CnB1c2ggQFdvcmtPcmRlclRlc3RzLCAoCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgY29udGFpbnMgbm8gcGFyYW1zIGZvciBXb3JrT3JkZXJVcGRhdGUoKS4nLAogICAgICAgIEZhaWxzICAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHdlIGV4cGVjdCB0aGlzIHRlc3QgdG8gZmFpbAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyVXBkYXRlID0+IHt9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclVwZGF0ZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgZm9yIG1heCBzdHJpbmcgbGVuZ3RoIGZvciBXb3JrT3JkZXJVcGRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRXb3JrT3JkZXJBZGRUZXN0SUQsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlclVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1QnIHggMjUwLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgPT4gJ0knIHggMTc5OTk5OSwKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICdSJyB4IDE3OTk5OTksCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyR2V0ID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4gJ1QnIHggMjUwLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgICA9PiAnSScgeCAxNzk5OTk5LAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb25QbGFpbiA9PiAnSScgeCAxNzk5OTk5IC4gIlxuIiwKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgICAgPT4gJ1InIHggMTc5OTk5OSwKICAgICAgICAgICAgICAgIFJlcG9ydFBsYWluICAgICAgPT4gJ1InIHggMTc5OTk5OSAuICJcbiIsCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbIDEsIDggXSwKICAgIH0sCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGZvciBtYXgrMSBzdHJpbmcgbGVuZ3RoIGZvciBXb3JrT3JkZXJVcGRhdGUuJywKICAgICAgICBVcGRhdGVGYWlscyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnVCcgeCAyNTEsCiAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnSScgeCAxODAwMDAwLAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgPT4gJ1InIHggMTgwMDAwMCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJycsCiAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnJywKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICcnLAogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VCeSAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyAxLCA4IF0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgbWF4KzIgc3RyaW5nIGxlbmd0aCBmb3IgV29ya09yZGVyVXBkYXRlLicsCiAgICAgICAgVXBkYXRlRmFpbHMgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRXb3JrT3JkZXJBZGRUZXN0SUQsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlclVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1QnIHggMjUyLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgPT4gJ0knIHggMTgwMDAwMCwKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICdSJyB4IDE4MDAwMDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyR2V0ID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICcnLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgPT4gJycsCiAgICAgICAgICAgICAgICBSZXBvcnQgICAgICAgICA9PiAnJywKICAgICAgICAgICAgICAgIENyZWF0ZUJ5ICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFs4XSwKICAgIH0sCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGNyZWF0ZV9ieSBhbmQgY2hhbmdlX2J5IGZvciBXb3JrT3JkZXJVcGRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRXb3JrT3JkZXJBZGRUZXN0SUQsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlclVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1QnIHggMjUsCiAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnSScgeCAzOCwKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICdSJyB4IDM4LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnVCcgeCAyNSwKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uICAgID0+ICdJJyB4IDM4LAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgPT4gJ1InIHggMzgsCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZUJ5ICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFsgMiwgOCBdLAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgY3JlYXRlX2J5IGFuZCBjaGFuZ2VfYnkgZm9yIFdvcmtPcmRlclVwZGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnVCcgeCAyNSwKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uICAgID0+ICdJJyB4IDM4LAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgPT4gJ1InIHggMzgsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyR2V0ID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICdUJyB4IDI1LAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgPT4gJ0knIHggMzgsCiAgICAgICAgICAgICAgICBSZXBvcnQgICAgICAgICA9PiAnUicgeCAzOCwKICAgICAgICAgICAgICAgIENyZWF0ZUJ5ICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyAyLCA4IF0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgbWF4KzEgc3RyaW5nIGxlbmd0aCAtIHRpdGxlIC0gZm9yIFdvcmtPcmRlclVwZGF0ZS4nLAogICAgICAgIFVwZGF0ZUZhaWxzID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICdUJyB4IDI1MSwKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uICAgID0+ICdJJywKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICdSJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJycsCiAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnJywKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICcnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbOF0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgbWF4KzEgc3RyaW5nIGxlbmd0aCAtIEluc3RydWN0aW9uIC0gZm9yIFdvcmtPcmRlclVwZGF0ZS4nLAogICAgICAgIFVwZGF0ZUZhaWxzID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICdUJywKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uICAgID0+ICdJJyB4IDE4MDAwMDAsCiAgICAgICAgICAgICAgICBSZXBvcnQgICAgICAgICA9PiAnUicsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyR2V0ID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICcnLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgPT4gJycsCiAgICAgICAgICAgICAgICBSZXBvcnQgICAgICAgICA9PiAnJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWzhdLAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgZm9yIG1heCsxIHN0cmluZyBsZW5ndGggLSBSZXBvcnQgLSBmb3IgV29ya09yZGVyVXBkYXRlLicsCiAgICAgICAgVXBkYXRlRmFpbHMgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRXb3JrT3JkZXJBZGRUZXN0SUQsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlclVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1QnLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgPT4gJ0knLAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgPT4gJ1InIHggMTgwMDAwMCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJycsCiAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnJywKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICcnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbOF0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgdW5kZWYgcGFyYW0gLSBUaXRsZSAtIGZvciBXb3JrT3JkZXJVcGRhdGUuJywKICAgICAgICBVcGRhdGVGYWlscyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiB1bmRlZiwKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uICAgID0+ICdJJywKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICdSJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJycsCiAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnJywKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICcnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbOF0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgdW5kZWYgcGFyYW0gLSBJbnN0cnVjdGlvbiAtIGZvciBXb3JrT3JkZXJVcGRhdGUuJywKICAgICAgICBVcGRhdGVGYWlscyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnVCcsCiAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiB1bmRlZiwKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICdSJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJycsCiAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnJywKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICcnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbOF0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgdW5kZWYgcGFyYW0gLSBSZXBvcnQgLSBmb3IgV29ya09yZGVyVXBkYXRlLicsCiAgICAgICAgVXBkYXRlRmFpbHMgPT4gMSwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRXb3JrT3JkZXJBZGRUZXN0SUQsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlclVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1QnLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgPT4gJ0knLAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgPT4gdW5kZWYsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyR2V0ID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICcnLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgPT4gJycsCiAgICAgICAgICAgICAgICBSZXBvcnQgICAgICAgICA9PiAnJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWzhdLAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgZm9yIFRpbWVDaGFuZ2VzIC0ganVzdCBQbGFubmVkU3RhcnRUaW1lIC0gZm9yIFdvcmtPcmRlclVwZGF0ZS4nLAogICAgICAgIFVwZGF0ZUZhaWxzID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICAgICAgUmVwb3J0ICAgPT4gJ1JlcG9ydCAtIGp1c3QgUGxhbm5lZFN0YXJ0VGltZScsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlclVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lID0+ICcyMDA5LTAzLTIwIDEzOjI1OjA5JywKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4gJ1Rlc3QnLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnJywKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uICAgID0+ICcnLAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgPT4gJ1JlcG9ydCAtIGp1c3QgUGxhbm5lZFN0YXJ0VGltZScsCiAgICAgICAgICAgICAgICBDaGFuZ2VCeSAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIENyZWF0ZUJ5ICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbOF0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgVGltZUNoYW5nZXMgLSBqdXN0IFBsYW5uZWRFbmRUaW1lIC0gZm9yIFdvcmtPcmRlclVwZGF0ZS4nLAogICAgICAgIFVwZGF0ZUZhaWxzID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICAgICAgUmVwb3J0ICAgPT4gJ1JlcG9ydCAtIGp1c3QgUGxhbm5lZEVuZFRpbWUnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWUgPT4gJzIwMDktMDMtMjAgMTM6MjU6MDknLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1Rlc3QnLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJycsCiAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnJywKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICdSZXBvcnQgLSBqdXN0IFBsYW5uZWRFbmRUaW1lJywKICAgICAgICAgICAgICAgIENoYW5nZUJ5ICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFs4XSwKICAgIH0sCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGZvciBUaW1lQ2hhbmdlcyAtIGp1c3QgQWN0dWFsU3RhcnRUaW1lIC0gZm9yIFdvcmtPcmRlclVwZGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFJlcG9ydCAgID0+ICdSZXBvcnQgLSBqdXN0IEFjdHVhbFN0YXJ0VGltZScsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlclVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWUgPT4gJzIwMDktMDMtMjAgMTM6MjU6MDknLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgID0+ICdUZXN0JywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSAgPT4gJ1Rlc3QnLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgID0+ICcnLAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgID0+ICdSZXBvcnQgLSBqdXN0IEFjdHVhbFN0YXJ0VGltZScsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWUgPT4gJzIwMDktMDMtMjAgMTM6MjU6MDknLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFs4XSwKICAgIH0sCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGZvciBUaW1lQ2hhbmdlcyAtIGp1c3QgQWN0dWFsRW5kVGltZSAtIGZvciBXb3JrT3JkZXJVcGRhdGUuJywKICAgICAgICBVcGRhdGVGYWlscyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFJlcG9ydCAgID0+ICdSZXBvcnQgLSBqdXN0IEFjdHVhbEVuZFRpbWUnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgPT4gJzIwMDktMDMtMjAgMTM6MjU6MDknLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1Rlc3QnLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJycsCiAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnJywKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICdSZXBvcnQgLSBqdXN0IEFjdHVhbEVuZFRpbWUnLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWzhdLAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgJ1Rlc3QgZm9yIFRpbWVDaGFuZ2VzIC0gQWN0dWFsU3RhcnRUaW1lID4gQWN0dWFsRW5kVGltZSAtIGZvciBXb3JrT3JkZXJVcGRhdGUuJywKICAgICAgICBVcGRhdGVGYWlscyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFJlcG9ydCAgID0+ICdSZXBvcnQgLSBBY3R1YWxTdGFydFRpbWUgPiBBY3R1YWxFbmRUaW1lJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWUgICA9PiAnMjAwOS0wMy0yMCAxMzoyNTowOScsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWUgPT4gJzIwMDktMDMtMjEgMTM6MjU6MDknLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgID0+ICdUZXN0JywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnJywKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uICAgID0+ICcnLAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgPT4gJ1JlcG9ydCAtIEFjdHVhbFN0YXJ0VGltZSA+IEFjdHVhbEVuZFRpbWUnLAogICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWzhdLAogICAgfSwKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgJ1Rlc3QgZm9yIFRpbWVDaGFuZ2VzIC0gQWN0dWFsU3RhcnRUaW1lIDwgQWN0dWFsRW5kVGltZSAtIGZvciBXb3JrT3JkZXJVcGRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFJlcG9ydCAgID0+ICdSZXBvcnQgLSBBY3R1YWxTdGFydFRpbWUgPCBBY3R1YWxFbmRUaW1lJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWUgICA9PiAnMjAwOS0wMy0yMiAxMzoyNTowOScsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWUgPT4gJzIwMDktMDMtMjEgMTM6MjU6MDknLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgID0+ICdUZXN0JywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSAgPT4gJ1Rlc3QnLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgID0+ICcnLAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgID0+ICdSZXBvcnQgLSBBY3R1YWxTdGFydFRpbWUgPCBBY3R1YWxFbmRUaW1lJywKICAgICAgICAgICAgICAgIENoYW5nZUJ5ICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ3JlYXRlQnkgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgID0+ICcyMDA5LTAzLTIyIDEzOjI1OjA5JywKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZSA9PiAnMjAwOS0wMy0yMSAxMzoyNTowOScsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFs4XSwKICAgIH0sCgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICJUZXN0IGZvciAnMCcgc3RyaW5nIGhhbmRsaW5nIGZvciBXb3JrT3JkZXJVcGRhdGUuIiwKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyVXBkYXRlID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnMCcsCiAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnMCcsCiAgICAgICAgICAgICAgICBSZXBvcnQgICAgICAgICA9PiAnMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyR2V0ID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICcwJywKICAgICAgICAgICAgICAgIEluc3RydWN0aW9uICAgID0+ICcwJywKICAgICAgICAgICAgICAgIFJlcG9ydCAgICAgICAgID0+ICcwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWzhdLAogICAgfSwKCiAgICAjIFRlc3QgdGl0bGUgd2l0aCBsZWFkaW5nIHdoaXRlc3BhY2UKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBmb3IgdGl0bGUgd2l0aCBsZWFkaW5nIHdoaXRlc3BhY2UnLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gIiAgXHQgXG4gIFRpdGxlIHdpdGggbGVhZGluZyB3aGl0ZXNwYWNlIC0gIiAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAiVGl0bGUgd2l0aCBsZWFkaW5nIHdoaXRlc3BhY2UgLSAiIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWzMyXSwKICAgIH0sCgogICAgIyBUZXN0IHRpdGxlIHdpdGggdHJhaWxpbmcgd2hpdGVzcGFjZQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IGZvciB0aXRsZSB3aXRoIHRyYWlsaW5nIHdoaXRlc3BhY2UnLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICJUaXRsZSB3aXRoIHRyYWlsaW5nIHdoaXRlc3BhY2UgLSAiCiAgICAgICAgICAgICAgICAgICAgLiAkVW5pcXVlU2lnbmF0dXJlCiAgICAgICAgICAgICAgICAgICAgLiAiICBcdCBcbiAgIiwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gIlRpdGxlIHdpdGggdHJhaWxpbmcgd2hpdGVzcGFjZSAtICIgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbMzNdLAogICAgfSwKCiAgICAjIFRlc3QgdGl0bGUgd2l0aCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgZm9yIHRpdGxlIHdpdGggbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZScsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAiICBcdCBcbiAgVGl0bGUgd2l0aCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIC0gIgogICAgICAgICAgICAgICAgICAgIC4gJFVuaXF1ZVNpZ25hdHVyZQogICAgICAgICAgICAgICAgICAgIC4gIiAgXHQgXG4gICIsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAiVGl0bGUgd2l0aCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIC0gIgogICAgICAgICAgICAgICAgICAgIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWzM0XSwKICAgIH0sCgogICAgIyBUZXN0IHRpdGxlIHdpdGggb25seSB3aGl0ZXNwYWNlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgZm9yIHRpdGxlIHdpdGggb25seSB3aGl0ZXNwYWNlJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICIgIFx0IFxuICAiLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hUZXN0ID0+IFtdLAogICAgfSwKCiAgICAjIHRlc3QgZm9yIGFjY291bnRlZCB0aW1lIGFuZCBwbGFubmVkIGVmZm9ydAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IDEgZm9yIEFjY291bnRlZFRpbWUgYW5kIFBsYW5uZWRFZmZvcnQnLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICdUZXN0IDEgZm9yIEFjY291bnRlZFRpbWUgYW5kIFBsYW5uZWRFZmZvcnQnLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlclVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICBQbGFubmVkRWZmb3J0ID0+ICc1LjUnLAogICAgICAgICAgICAgICAgQWNjb3VudGVkVGltZSA9PiAnMS41JywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgUGxhbm5lZEVmZm9ydCA9PiAnNS41MCcsICAgICMgb3V0cHV0IGlzIGFsd2F5cyBmb3JtYXR0ZWQgd2l0aCAyIGRlY2ltYWwgcGxhY2VzCiAgICAgICAgICAgICAgICBBY2NvdW50ZWRUaW1lID0+ICcxLjUwJywgICAgIyBvdXRwdXQgaXMgYWx3YXlzIGZvcm1hdHRlZCB3aXRoIDIgZGVjaW1hbCBwbGFjZXMKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKICAgICMgVGVzdHMgZm9yIFdvcmtvcmRlciBEeW5hbWljIGZpZWxkcwogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCgogICAgIyB0ZXN0IHNvbWUgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIFdvcmtPcmRlckFkZCBhbmQgV29ya09yZGVyVXBkYXRlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgV29ya09yZGVyQWRkIGFuZCBXb3JrT3JkZXJVcGRhdGUgd2l0aCB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnVGVzdCBhZGQgd29ya29yZGVyIHdpdGggZHluYW1pYyBmaWVsZHMgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QxJyA9PiAnQUFBQScsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MicgPT4gJ0JCQkInLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDMnID0+ICdDQ0NDJywKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3Q0JyA9PiAnRERERCcsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJVcGRhdGUgPT4gewogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDMnID0+ICdHR0dHJywKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3Q0JyA9PiAnSEhISCcsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1Rlc3QgYWRkIHdvcmtvcmRlciB3aXRoIGR5bmFtaWMgZmllbGRzIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScgPT4gJ0FBQUEnLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInID0+ICdCQkJCJywKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QzJyA9PiAnR0dHRycsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0NCcgPT4gJ0hISEgnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCgogICAgICAgIFNlYXJjaFRlc3QgPT4gWyA4LCAzNSBdLAogICAgfSwKCiAgICAjIHRlc3Qgc29tZSB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgV29ya09yZGVyQWRkCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1Rlc3QgV29ya09yZGVyQWRkIGFuZCBXb3JrT3JkZXJVcGRhdGUgd2l0aCB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnVGVzdCBhZGQgd29ya29yZGVyIHdpdGggZHluYW1pYyBmaWVsZHMgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QxJyA9PiAnQUFBQScsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MicgPT4gJ0JCQkInLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDMnID0+ICdYWFhYJywKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3Q0JyA9PiAnWVlZWScsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnVGVzdCBhZGQgd29ya29yZGVyIHdpdGggZHluYW1pYyBmaWVsZHMgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QxJyA9PiAnQUFBQScsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MicgPT4gJ0JCQkInLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDMnID0+ICdYWFhYJywKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3Q0JyA9PiAnWVlZWScsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgU2VhcmNoVGVzdCA9PiBbIDgsIDM1LCAzNiBdLAogICAgfSwKCiAgICAjIHRlc3Qgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIHdpdGggbWF4aW11bSBsZW5ndGgKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBXb3JrT3JkZXJBZGQgZHluYW1pYyBmaWVsZHMgd2l0aCAzODAwIGNoYXJhY3RlcnMuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnVGVzdCBhZGQgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIHdpdGggMzgwMCBjaGFyYWN0ZXJzIC0gJwogICAgICAgICAgICAgICAgICAgIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QxJyA9PiAnQScgeCAzODAwLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInID0+ICdCJyB4IDM4MDAsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScgPT4gJ0EnIHggMzgwMCwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QyJyA9PiAnQicgeCAzODAwLAogICAgICAgICAgICB9LAogICAgICAgIH0sCgogICAgICAgIFNlYXJjaFRlc3QgPT4gWzhdLAogICAgfSwKCiAgICAjIHRlc3Qgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIGxhcmdlciB0aGFuIG1heGltdW0gbGVuZ3RoIGluIFdvcmtPcmRlckFkZAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IFdvcmtPcmRlckFkZCBkeW5hbWljIGZpZWxkcyB3aXRoIDM4MDEgY2hhcmFjdGVycy4nLAogICAgICAgIEZhaWxzICAgICAgID0+IDEsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1Rlc3QgYWRkIHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyB3aXRoIDI1MSBjaGFyYWN0ZXJzIC0gJwogICAgICAgICAgICAgICAgICAgIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QxJyA9PiAnQScgeCAzODAxLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInID0+ICdCJyB4IDM4MDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyB0ZXN0IHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyBsYXJnZXIgdGhhbiBtYXhpbXVtIGxlbmd0aCBpbiBXb3JrT3JkZXJVcGRhdGUKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGVzdCBXb3JrT3JkZXJVcGRhdGUgZHluYW1pYyBmaWVsZHMgd2l0aCAzODAxIGNoYXJhY3RlcnMuJywKICAgICAgICBVcGRhdGVGYWlscyA9PiAxLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICdUZXN0IHVwZGF0ZSB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMgd2l0aCAzODAxIGNoYXJhY3RlcnMgLSAnCiAgICAgICAgICAgICAgICAgICAgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDEnID0+ICdBJyB4IDM4MDAsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MicgPT4gJ0InIHggMzgwMCwKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlclVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MycgPT4gJ0MnIHggMzgwMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScgPT4gJ0EnIHggMzgwMCwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QyJyA9PiAnQicgeCAzODAwLAogICAgICAgICAgICB9LAogICAgICAgIH0sCgogICAgICAgIFNlYXJjaFRlc3QgPT4gWzhdLAogICAgfSwKCiAgICAjIHRlc3Qgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzIHdpdGggemVybyBhbmQgZW1wdHkgc3RyaW5ncwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUZXN0IFdvcmtPcmRlclVwZGF0ZSB3aXRoIHplcm8gYW5kIGVtcHR5IHN0cmluZy4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+CiAgICAgICAgICAgICAgICAgICAgJ1Rlc3QgdXBkYXRlIHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyB3aXRoIHplcm8gYW5kIGVtcHR5IHN0cmluZyAtICcKICAgICAgICAgICAgICAgICAgICAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScgPT4gJ0FBQUEnLAogICAgICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDInID0+ICdCQkJCJywKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAkV29ya09yZGVyQWRkVGVzdElELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlclVwZGF0ZSA9PiB7CiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScgPT4gMCwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QyJyA9PiAnJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MScgPT4gMCwKICAgICAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QyJyA9PiAnJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAoKICAgICAgICBTZWFyY2hUZXN0ID0+IFs4XSwKICAgIH0sCgopOwoKIyB3b3Jrb3JkZXJzIHRlc3RzIGZvciBXb3JrT3JkZXJTZWFyY2goKSB3aXRoIE9yZGVyQnkKcHVzaCBAV29ya09yZGVyVGVzdHMsICgKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgJ1dvcmtPcmRlckFkZCgpIGZvciBPcmRlckJ5IHdpdGggV29ya09yZGVyVHlwZUlEIGFuZCBXb3JrT3JkZXJTdGF0ZUlELicsCiAgICAgICAgU291cmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgID0+ICRPcmRlckJ5VGVzdElELAogICAgICAgICAgICAgICAgV29ya09yZGVyVHlwZUlEICA9PiAkU29ydGVkVHlwZUlEc1syXSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlSUQgPT4gJFNvcnRlZFdvcmtPcmRlclN0YXRlSURzWzBdLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAnQUFBIFdvcmtPcmRlckFkZCgpIGZvciBPcmRlckJ5IC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJHZXQgPT4gewogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgICA9PiAkT3JkZXJCeVRlc3RJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclR5cGVJRCAgPT4gJFNvcnRlZFR5cGVJRHNbMl0sCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICRTb3J0ZWRXb3JrT3JkZXJTdGF0ZUlEc1swXSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4gJ0FBQSBXb3JrT3JkZXJBZGQoKSBmb3IgT3JkZXJCeSAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgIyA5OTk5OTkgaXMgYSBzcGVjaWFsIHRlc3QgY2FzZS4KICAgICAgICAjIFdvcmtvcmRlcnMgd2l0aCBzZWFyY2h0ZXN0IDk5OTk5OSBhcmUgdXNlZCBpbiAnT3JkZXJCeScgc2VhcmNoIHRlc3RzLgogICAgICAgIFNlYXJjaFRlc3QgPT4gWzk5OTk5OV0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PgogICAgICAgICAgICAnV29ya09yZGVyQWRkKCkgZm9yIE9yZGVyQnkgd2l0aCBXb3JrT3JkZXJUeXBlSUQgYW5kIFdvcmtPcmRlclN0YXRlSUQuJywKICAgICAgICBTb3VyY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICAgICAgPT4gJE9yZGVyQnlUZXN0SUQsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUeXBlSUQgID0+ICRTb3J0ZWRUeXBlSURzWzFdLAogICAgICAgICAgICAgICAgV29ya09yZGVyU3RhdGVJRCA9PiAkU29ydGVkV29ya09yZGVyU3RhdGVJRHNbMV0sCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSAgID0+ICdCQkIgV29ya09yZGVyQWRkKCkgZm9yIE9yZGVyQnkgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgID0+ICRPcmRlckJ5VGVzdElELAogICAgICAgICAgICAgICAgV29ya09yZGVyVHlwZUlEICA9PiAkU29ydGVkVHlwZUlEc1sxXSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlSUQgPT4gJFNvcnRlZFdvcmtPcmRlclN0YXRlSURzWzFdLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAnQkJCIFdvcmtPcmRlckFkZCgpIGZvciBPcmRlckJ5IC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWzk5OTk5OV0sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PgogICAgICAgICAgICAnV29ya09yZGVyQWRkKCkgZm9yIE9yZGVyQnkgd2l0aCBXb3JrT3JkZXJUeXBlSUQgYW5kIFdvcmtPcmRlclN0YXRlSUQuJywKICAgICAgICBTb3VyY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICAgICAgPT4gJE9yZGVyQnlUZXN0SUQsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUeXBlSUQgID0+ICRTb3J0ZWRUeXBlSURzWzBdLAogICAgICAgICAgICAgICAgV29ya09yZGVyU3RhdGVJRCA9PiAkU29ydGVkV29ya09yZGVyU3RhdGVJRHNbMl0sCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSAgID0+ICdDQ0MgV29ya09yZGVyQWRkKCkgZm9yIE9yZGVyQnkgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgID0+ICRPcmRlckJ5VGVzdElELAogICAgICAgICAgICAgICAgV29ya09yZGVyVHlwZUlEICA9PiAkU29ydGVkVHlwZUlEc1swXSwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlSUQgPT4gJFNvcnRlZFdvcmtPcmRlclN0YXRlSURzWzJdLAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAnQ0NDIFdvcmtPcmRlckFkZCgpIGZvciBPcmRlckJ5IC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWzk5OTk5OV0sCiAgICB9LAopOwoKIyB3b3Jrb3JkZXJzIHRlc3RzIGZvciBXb3JrT3JkZXJTZWFyY2goKSB3aXRoIHN0cmluZyBzZWFyY2hlcyBpbiBjaGFuZ2UKcHVzaCBAV29ya09yZGVyVGVzdHMsICgKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgJ1dvcmtPcmRlckFkZCgpIGZvciBzdHJpbmcgc2VhcmNoIGluIGNoYW5nZS4nLAogICAgICAgIFNvdXJjZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICAgID0+ICRTdHJpbmdTZWFyY2hUZXN0SUQsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnV29ya09yZGVyQWRkKCkgZm9yIHN0cmluZyBzZWFyY2ggaW4gY2hhbmdlIC0gVGl0bGUgLSAnCiAgICAgICAgICAgICAgICAgICAgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkU3RyaW5nU2VhcmNoVGVzdElELAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1dvcmtPcmRlckFkZCgpIGZvciBzdHJpbmcgc2VhcmNoIGluIGNoYW5nZSAtIFRpdGxlIC0gJwogICAgICAgICAgICAgICAgICAgIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaFRlc3QgPT4gWyAxNSwgMTcsIDE5LCAyMSwgMjIgXSwKICAgIH0sCik7CgojIHdvcmtvcmRlcnMgdGVzdHMgZm9yIHRlc3RpbmcgdGhlIFBlcm1pc3Npb24oKSBtZXRob2QKcHVzaCBAV29ya09yZGVyVGVzdHMsICgKCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgJ1dvcmtPcmRlckFkZCgpIGZvciB0ZXN0aW5nIHRoZSBQZXJtaXNzaW9uKCkgbWV0aG9kJywKICAgICAgICBTb3VyY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICAgICAgPT4gJFBlcm1pc3Npb25UZXN0SUQsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSAgID0+ICdXb3JrT3JkZXJBZGQoKSBmb3IgUGVybWlzc2lvbigpICAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJBZ2VudElEID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckdldCA9PiB7CiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgID0+ICRQZXJtaXNzaW9uVGVzdElELAogICAgICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAnV29ya09yZGVyQWRkKCkgZm9yIFBlcm1pc3Npb24oKSAgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgV29ya09yZGVyQWdlbnRJRCA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBleGVjdXRlIHRoZSB3b3Jrb3JkZXIgdGVzdHMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKbXkgJVRlc3RlZFdvcmtPcmRlcklEOyAgICAgICAgICAgIyBpZHMgb2YgYWxsIGNyZWF0ZWQgd29ya29yZGVycwpteSAlV29ya09yZGVySURGb3JDaGFuZ2VJRDsgICAgICAjIGtlZXAgdHJhY2sgb2YgdGhlIHdvcmtvcmRlcnMgdGhhdCBhcmUgYXR0YWNoZWQgdG8gYSBjaGFuZ2UKbXkgJVdvcmtPcmRlcklERm9yU2VhcmNoVGVzdDsgICAgIyB3b3Jrb3JkZXIgaWRzIHRoYXQgYXJlIGV4cGVjdGVkIHRvIGJlIGZvdW5kIGluIGEgc2VhcmNoCgpURVNUOgpmb3IgbXkgJFRlc3QgKEBXb3JrT3JkZXJUZXN0cykgewoKICAgICMgY2hlY2sgU291cmNlRGF0YSBhdHRyaWJ1dGUKICAgIGlmICggISRUZXN0LT57U291cmNlRGF0YX0gfHwgcmVmICRUZXN0LT57U291cmNlRGF0YX0gbmUgJ0hBU0gnICkgewoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgMCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogTm8gU291cmNlRGF0YSBmb3VuZCBmb3IgdGhpcyB0ZXN0ICh0ZXN0IGNhc2U6ICIKICAgICAgICAgICAgICAgIC4gKCAkVGVzdENvdW50IC0gJFRlc3RDb3VudE1pc2MgKSAuICIpLiIsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBURVNUOwogICAgfQoKICAgICMgcHJpbnQgdGVzdCBjYXNlIGRlc2NyaXB0aW9uCiAgICBpZiAoICRUZXN0LT57RGVzY3JpcHRpb259ICkgewogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAxLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiAkVGVzdC0+e0Rlc2NyaXB0aW9ufSAodGVzdCBjYXNlOiAiCiAgICAgICAgICAgICAgICAuICggJFRlc3RDb3VudCAtICRUZXN0Q291bnRNaXNjICkgLiAiKS4iLAogICAgICAgICk7CiAgICB9CgogICAgIyBleHRyYWN0IHRlc3QgZGF0YQogICAgbXkgJFNvdXJjZURhdGEgICAgPSAkVGVzdC0+e1NvdXJjZURhdGF9OwogICAgbXkgJFJlZmVyZW5jZURhdGEgPSAkVGVzdC0+e1JlZmVyZW5jZURhdGF9OwoKICAgICMgdGhlIGNoYW5nZSBpZCB3aWxsIGJlIHVzZWQgZm9yIHNldmVyYWwgY2FsbHMKICAgIG15ICRXb3JrT3JkZXJJRDsKCiAgICAjIGFkZCBhIG5ldyBDaGFuZ2UKICAgIGlmICggJFNvdXJjZURhdGEtPntXb3JrT3JkZXJBZGR9ICkgewoKICAgICAgICAjIGFkZCB0aGUgd29ya29yZGVyCiAgICAgICAgJFdvcmtPcmRlcklEID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyQWRkKAogICAgICAgICAgICAleyAkU291cmNlRGF0YS0+e1dvcmtPcmRlckFkZH0gfSwKICAgICAgICApOwoKICAgICAgICAjIHJlbWVtYmVyIGN1cnJlbnQgV29ya09yZGVySUQKICAgICAgICBpZiAoJFdvcmtPcmRlcklEKSB7CiAgICAgICAgICAgIG15ICRDaGFuZ2VJRCA9ICRTb3VyY2VEYXRhLT57V29ya09yZGVyQWRkfS0+e0NoYW5nZUlEfTsKCiAgICAgICAgICAgICMga2VlcCB0cmFjayBvZiBhbGwgY3JlYXRlZCB3b3Jrb3JkZXJzCiAgICAgICAgICAgICRUZXN0ZWRXb3JrT3JkZXJJRHskV29ya09yZGVySUR9ID0gMTsKCiAgICAgICAgICAgICMga2VlcCB0cmFjayBvZiB0aGUgd29ya29yZGVycyBhdHRhY2hlZCB0byBhIGNoYW5nZQogICAgICAgICAgICAkV29ya09yZGVySURGb3JDaGFuZ2VJRHskQ2hhbmdlSUR9IHx8PSB7fTsKICAgICAgICAgICAgJFdvcmtPcmRlcklERm9yQ2hhbmdlSUR7JENoYW5nZUlEfS0+eyRXb3JrT3JkZXJJRH0gPSAxOwoKICAgICAgICAgICAgIyBzYXZlIHdvcmtvcmRlciBpZCBmb3IgdXNlIGluIHNlYXJjaCB0ZXN0cwogICAgICAgICAgICBpZiAoIGV4aXN0cyAkVGVzdC0+e1NlYXJjaFRlc3R9ICkgewogICAgICAgICAgICAgICAgbXkgQFNlYXJjaFRlc3RzID0gQHsgJFRlc3QtPntTZWFyY2hUZXN0fSB9OwoKICAgICAgICAgICAgICAgIGZvciBteSAkU2VhcmNoVGVzdE5yIChAU2VhcmNoVGVzdHMpIHsKICAgICAgICAgICAgICAgICAgICAkV29ya09yZGVySURGb3JTZWFyY2hUZXN0eyRTZWFyY2hUZXN0TnJ9LT57JFdvcmtPcmRlcklEfSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJFRlc3QtPntGYWlsc30gKSB7CiAgICAgICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgICAgICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IFdvcmtPcmRlckFkZCgpIC0gQWRkIHdvcmtvcmRlciBzaG91bGQgZmFpbC4iLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBXb3JrT3JkZXJBZGQoKSAtIEFkZCB3b3Jrb3JkZXIuIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9ICAgICMgZW5kIGlmICdXb3JrT3JkZXJBZGQnCgogICAgaWYgKCAkU291cmNlRGF0YS0+e1dvcmtPcmRlclVwZGF0ZX0gKSB7CgogICAgICAgICMgdXBkYXRlIHRoZSB3b3Jrb3JkZXIKICAgICAgICBteSAkV29ya09yZGVyVXBkYXRlU3VjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclVwZGF0ZSgKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICAleyAkU291cmNlRGF0YS0+e1dvcmtPcmRlclVwZGF0ZX0gfSwKICAgICAgICApOwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICRUZXN0LT57RmFpbHN9CiAgICAgICAgICAgIHx8ICRUZXN0LT57VXBkYXRlRmFpbHN9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgICAgICRXb3JrT3JkZXJVcGRhdGVTdWNjZXNzLAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogV29ya09yZGVyVXBkYXRlKCkgaXMgZXhwZWN0ZWQgdG8gZmFpbCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRXb3JrT3JkZXJVcGRhdGVTdWNjZXNzLAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogV29ya09yZGVyVXBkYXRlKCkiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBhIHdvcmtvcmRlciBhbmQgY29tcGFyZSB0aGUgcmV0cmlldmVkIGRhdGEgd2l0aCB0aGUgcmVmZXJlbmNlCiAgICBpZiAoIGV4aXN0cyAkUmVmZXJlbmNlRGF0YS0+e1dvcmtPcmRlckdldH0gKSB7CgogICAgICAgIG15ICRXb3JrT3JkZXJHZXRSZWZlcmVuY2VEYXRhID0gJFJlZmVyZW5jZURhdGEtPntXb3JrT3JkZXJHZXR9OwoKICAgICAgICBteSAkV29ya09yZGVyRGF0YSA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckdldCgKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgV29ya09yZGVyR2V0IHNob3VsZCBub3QgcmV0dXJuIGFueXRoaW5nCiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUmVmZXJlbmNlRGF0YS0+e1dvcmtPcmRlckdldH0gKSB7CiAgICAgICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgICAgICRXb3JrT3JkZXJEYXRhLAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gR2V0IGNoYW5nZSByZXR1cm5zIHVuZGVmLiIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHdlIGV4Y3BlY3RlZCB0byBmYWlsCiAgICAgICAgICAgIGlmICggJFRlc3QtPntGYWlsc30gKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAgICAgIWRlZmluZWQgJFdvcmtPcmRlckRhdGEsCiAgICAgICAgICAgICAgICAgICAgIWRlZmluZWQgJFJlZmVyZW5jZURhdGEtPntXb3JrT3JkZXJEYXRhfSwKICAgICAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBTaG91bGQgZmFpbC4iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZXh0IFRFU1Q7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGZvciBhbHdheXMgZXhpc3RpbmcgYXR0cmlidXRlcwogICAgICAgIGZvciBteSAkV29ya09yZGVyQXR0cmlidXRlcyAoCiAgICAgICAgICAgIHF3KFdvcmtPcmRlcklEIFdvcmtPcmRlck51bWJlciBDcmVhdGVUaW1lIENoYW5nZVRpbWUpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFdvcmtPcmRlckRhdGEtPnskV29ya09yZGVyQXR0cmlidXRlc30sCiAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBoYXMgJFdvcmtPcmRlckF0dHJpYnV0ZXMuIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGZvciBteSAkUmVxdWVzdGVkQXR0cmlidXRlICggc29ydCBrZXlzICV7ICRSZWZlcmVuY2VEYXRhLT57V29ya09yZGVyR2V0fSB9ICkgewoKICAgICAgICAgICAgIyB0dXJuIG9mZiBhbGwgcHJldHR5IHByaW50CiAgICAgICAgICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OkluZGVudCA9IDA7CiAgICAgICAgICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OlVzZXFxICA9IDE7CgogICAgICAgICAgICAjIGR1bXAgdGhlIGF0dHJpYnV0ZSBmcm9tIFdvcmtPcmRlckdldCgpIGFuZCB0aGUgcmVmZXJlbmNlIGF0dHJpYnV0ZQogICAgICAgICAgICAjIyBubyBjcml0aWMKICAgICAgICAgICAgbXkgJFdvcmtPcmRlckF0dHJpYnV0ZSA9IERhdGE6OkR1bXBlcjo6RHVtcGVyKCAkV29ya09yZGVyRGF0YS0+eyRSZXF1ZXN0ZWRBdHRyaWJ1dGV9ICk7ICAgICAgICAgICAgICAgICAgIyMgbm8gY3JpdGljCiAgICAgICAgICAgIG15ICRSZWZlcmVuY2VBdHRyaWJ1dGUgPSBEYXRhOjpEdW1wZXI6OkR1bXBlciggJFJlZmVyZW5jZURhdGEtPntXb3JrT3JkZXJHZXR9LT57JFJlcXVlc3RlZEF0dHJpYnV0ZX0gKQogICAgICAgICAgICAgICAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyBubyBjcml0aWMKICAgICAgICAgICAgIyMgdXNlIGNyaXRpYwoKICAgICAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAgICAgJFdvcmtPcmRlckF0dHJpYnV0ZSwKICAgICAgICAgICAgICAgICRSZWZlcmVuY2VBdHRyaWJ1dGUsCiAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSAkUmVxdWVzdGVkQXR0cmlidXRlIChXb3JrT3JkZXJJRDogJFdvcmtPcmRlcklEKSIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfSAgICAjIGVuZCBpZiAnV29ya09yZGVyR2V0Jwp9CmNvbnRpbnVlIHsKCiAgICAjIGluY3JlYXNlIHRoZSB0ZXN0IGNvdW50LCBldmVuIG9uIG5leHQKICAgICRUZXN0Q291bnQrKzsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3QgV29ya09yZGVyTGlzdCgpIGFuZCBDaGFuZ2VHZXQoKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIFRlc3Qgd2hldGhlciBXb3JrT3JkZXJMaXN0KCkgYW5kIENoYW5nZUdldCgpIHJldHVybiB0aGUgc2FtZSB3b3Jrb3JkZXJzIGFzIHdlIGNyZWF0ZWQuCmZvciBteSAkQ2hhbmdlSUQgKCBzb3J0IGtleXMgJVdvcmtPcmRlcklERm9yQ2hhbmdlSUQgKSB7CgogICAgIyBhc2sgdGhlIFdvcmtPcmRlciBvYmplY3QgZm9yIGEgbGlzdCBvZiB3b3Jrb3JkZXJzCiAgICBteSAkTGlzdEZyb21Xb3JrT3JkZXJPYmplY3QgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJMaXN0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgKSB8fCBbXTsKICAgIG15ICVNYXBGcm9tV29ya09yZGVyT2JqZWN0ID0gbWFwIHsgJF8gPT4gMSB9IEB7JExpc3RGcm9tV29ya09yZGVyT2JqZWN0fTsKCiAgICAjIGFzayB0aGUgQ2hhbmdlIG9iamVjdCBmb3IgYSBsaXN0IG9mIHdvcmtvcmRlcnMKICAgIG15ICRDaGFuZ2UgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VHZXQoCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICApIHx8IHt9OwogICAgbXkgJExpc3RGcm9tQ2hhbmdlT2JqZWN0ID0gJENoYW5nZS0+e1dvcmtPcmRlcklEc30gfHwgW107CiAgICBteSAlTWFwRnJvbUNoYW5nZU9iamVjdCAgPSBtYXAgeyAkXyA9PiAxIH0gQHskTGlzdEZyb21DaGFuZ2VPYmplY3R9OwoKICAgICMgY2hlY2sgd2hldGhlciB0aGUgY3JlYXRlZCB3b3Jrb3JkZXJzIHdlcmUgZm91bmQgYnkgV29ya09yZGVyTGlzdCgpCiAgICBmb3IgbXkgJFdvcmtPcmRlcklEICggc29ydCBrZXlzICV7ICRXb3JrT3JkZXJJREZvckNoYW5nZUlEeyRDaGFuZ2VJRH0gfSApIHsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJE1hcEZyb21Xb3JrT3JkZXJPYmplY3R7JFdvcmtPcmRlcklEfSwKICAgICAgICAgICAgJ1Rlc3QgJwogICAgICAgICAgICAgICAgLiAkVGVzdENvdW50KysKICAgICAgICAgICAgICAgIC4gIjogV29ya09yZGVyTGlzdCgpIC0gV29ya09yZGVySUQgJFdvcmtPcmRlcklEIGluIGxpc3QgZnJvbSBXb3JrT3JkZXIgb2JqZWN0LiIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJE1hcEZyb21DaGFuZ2VPYmplY3R7JFdvcmtPcmRlcklEfSwKICAgICAgICAgICAgJ1Rlc3QgJwogICAgICAgICAgICAgICAgLiAkVGVzdENvdW50KysKICAgICAgICAgICAgICAgIC4gIjogQ2hhbmdlR2V0KCkgLSBXb3JrT3JkZXJJRCAkV29ya09yZGVySUQgaW4gbGlzdCBmcm9tIENoYW5nZSBvYmplY3QuIiwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgdGhlIG51bWJlciBvZiB3b3Jrb3JkZXJzIGZvciBhIGNoYW5nZQogICAgJFNlbGYtPklzKAogICAgICAgIHNjYWxhciBAeyRMaXN0RnJvbVdvcmtPcmRlck9iamVjdH0sCiAgICAgICAgc2NhbGFyIGtleXMgJXsgJFdvcmtPcmRlcklERm9yQ2hhbmdlSUR7JENoYW5nZUlEfSB9LAogICAgICAgICdUZXN0ICcgLiAkVGVzdENvdW50KysgLiAiOiBXb3JrT3JkZXJMaXN0KCkgLSBudW1iZXIgb2Ygd29ya29yZGVycyBmb3IgYSBjaGFuZ2UuIiwKICAgICk7CiAgICAkU2VsZi0+SXMoCiAgICAgICAgc2NhbGFyIEB7JExpc3RGcm9tQ2hhbmdlT2JqZWN0fSwKICAgICAgICBzY2FsYXIga2V5cyAleyAkV29ya09yZGVySURGb3JDaGFuZ2VJRHskQ2hhbmdlSUR9IH0sCiAgICAgICAgJ1Rlc3QgJyAuICRUZXN0Q291bnQrKyAuICI6IENoYW5nZUdldCgpIC0gbnVtYmVyIG9mIHdvcmtvcmRlcnMgZm9yIGEgY2hhbmdlLiIsCiAgICApOwoKICAgICMgc2V0IGVmZm9ydHMgdGVzdC4uLgogICAgbXkgJEVmZm9ydHNGcm9tV29ya09yZGVyT2JqZWN0ID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyQ2hhbmdlRWZmb3J0c0dldCgKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICk7CgogICAgZm9yIG15ICRFZmZvcnRLZXkgKCBzb3J0IGtleXMgJXskRWZmb3J0c0Zyb21Xb3JrT3JkZXJPYmplY3R9ICkgewogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJENoYW5nZS0+eyRFZmZvcnRLZXl9LAogICAgICAgICAgICAkRWZmb3J0c0Zyb21Xb3JrT3JkZXJPYmplY3QtPnskRWZmb3J0S2V5fSwKICAgICAgICAgICAgJ1Rlc3QgJwogICAgICAgICAgICAgICAgLiAkVGVzdENvdW50KysKICAgICAgICAgICAgICAgIC4gIjogV29ya09yZGVyQ2hhbmdlRWZmb3J0c0dldCgpIGFuZCBDaGFuZ2VHZXQoKSAtICRFZmZvcnRLZXkgbWF0Y2giLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgdGltZSB0ZXN0Li4uCiAgICBteSAkVGltZUZyb21Xb3JrT3JkZXJPYmplY3QgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJDaGFuZ2VUaW1lR2V0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgKTsKCiAgICBmb3IgbXkgJFRpbWVLZXkgKCBzb3J0IGtleXMgJXskVGltZUZyb21Xb3JrT3JkZXJPYmplY3R9ICkgewogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJENoYW5nZS0+eyRUaW1lS2V5fSwKICAgICAgICAgICAgJFRpbWVGcm9tV29ya09yZGVyT2JqZWN0LT57JFRpbWVLZXl9LAogICAgICAgICAgICAnVGVzdCAnCiAgICAgICAgICAgICAgICAuICRUZXN0Q291bnQrKwogICAgICAgICAgICAgICAgLiAiOiBXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0KCkgYW5kIENoYW5nZUdldCgpIC0gJFRpbWVLZXkgbWF0Y2giLAogICAgICAgICk7CiAgICB9Cgp9CgojIGNvdW50IGFsbCB0ZXN0cyB0aGF0IGFyZSByZXF1aXJlZCB0byBhbmQgcGxhbm5lZCBmb3IgZmFpbApteSAkRmFpbHMgICAgICAgICAgICAgID0gc2NhbGFyIGdyZXAgeyAkXy0+e0ZhaWxzfSB9IEBXb3JrT3JkZXJUZXN0czsKbXkgJE5yQ3JlYXRlV29ya09yZGVycyA9ICggc2NhbGFyIEBXb3JrT3JkZXJUZXN0cyApIC0gJEZhaWxzOwoKIyB0ZXN0IGlmIHRoZSB3b3Jrb3JkZXJzIHdlcmUgY3JlYXRlZAokU2VsZi0+SXMoCiAgICBzY2FsYXIga2V5cyAlVGVzdGVkV29ya09yZGVySUQgfHwgMCwKICAgICROckNyZWF0ZVdvcmtPcmRlcnMsCiAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gJzogYW1vdW50IG9mIHdvcmtvcmRlciBvYmplY3RzIGFuZCB0ZXN0IGNhc2VzLicsCik7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgZGVmaW5lIGdlbmVyYWwgd29ya29yZGVyIHNlYXJjaCB0ZXN0cwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgpteSAkU3RyaW5nU2VhcmNoVGVzdENoYW5nZSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgIENoYW5nZUlEID0+ICRTdHJpbmdTZWFyY2hUZXN0SUQsCiAgICBVc2VySUQgICA9PiAxLAopOwoKbXkgQFdvcmtPcmRlclNlYXJjaFRlc3RzID0gKAoKICAgICMgTnIgMSAtIGEgc2ltcGxlIGNoZWNrIGlmIHRoZSBzZWFyY2ggZnVuY3Rpb25zIHRha2VzIGNhcmUgb2YgIkxpbWl0IgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdMaW1pdCcsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBMaW1pdCA9PiAzLCAgICAjIGV4cGVjdCBvbmx5IDMgcmVzdWx0cwogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RDb3VudCA9PiAxLCAgICAjIGZsYWcgZm9yIGNoZWNrIHJlc3VsdCBhbW91bnQKICAgICAgICAgICAgQ291bnQgICAgID0+IDMsICAgICMgY2hlY2sgb24gMyByZXN1bHRzCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAyIC0gYSBzaW1wbGUgY2hlY2sgdGhhdCBzaG91bGQgZmluZCBhbGwgd29ya29yZGVycwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdMaW1pdCcsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwgICAgIyBmbGFnIGZvciBjaGVjayByZXN1bHRzIHRoYXQgd2VyZSBtYXJrZWQgd2l0aCAnU2VhcmNoVGVzdCcKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDMgLSBzZWFyY2ggZm9yIHRpdGxlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1dvcmtPcmRlclRpdGxlJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICdXb3JrT3JkZXIgMSAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgNCAtIHNlYXJjaCBmb3IgaW5zdHJ1Y3Rpb24KICAgICMgTm90ZSB0aGUgZXh0cmEgbmV3bGluZXMgaW5qZWN0ZWQgYnkgVG9Bc2NpaSgpCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0luc3RydWN0aW9uJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIEluc3RydWN0aW9uID0+ICJXb3JrT3JkZXIgMSAtIEluc3RydWN0aW9uIC1cbiRVbmlxdWVTaWduYXR1cmVcbiIsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgNSAtIHNlYXJjaCBmb3IgcmVwb3J0CiAgICAjIFRvQXNjaWkoKSBhZGRzIG5vIG5ld2xpbmVzLCBhcyB0aGUgc3RyaW5nIGxlbmd0aCBpcyBsZXNzIHRoYW4gNzguCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1JlcG9ydCcsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBSZXBvcnQgPT4gJ1dvcmtPcmRlciAxIC0gUmVwb3J0IC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgNiAtIHNlYXJjaCBmb3IgdGl0bGUsIGluc3RydWN0aW9uIGFuZCByZXBvcnQKICAgICMgTm90ZSB0aGUgZXh0cmEgbmV3bGluZXMgaW5qZWN0ZWQgYnkgVG9Bc2NpaSgpLgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdXb3JrT3JkZXJUaXRsZSwgSW5zdHJ1Y3Rpb24sIFJlcG9ydCcsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnV29ya09yZGVyIDEgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAiV29ya09yZGVyIDEgLSBJbnN0cnVjdGlvbiAtXG4kVW5pcXVlU2lnbmF0dXJlXG4iLAogICAgICAgICAgICBSZXBvcnQgICAgICAgICA9PiAiV29ya09yZGVyIDEgLSBSZXBvcnQgLSAkVW5pcXVlU2lnbmF0dXJlIiwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciA3IC0gc2VhcmNoIGZvciB0aXRsZSwgd2hpY2ggaXMgbm90IGluIGRhdGFiYXNlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1dvcmtPcmRlclRpdGxlIGRvZXMgbm90IGV4aXN0JywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICdOT1QgSU4gREFUQUJBU0UgJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdENvdW50ID0+IDEsCiAgICAgICAgICAgIENvdW50ICAgICA9PiAwLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgOCAtIHNlYXJjaCBmb3IgQ2hhbmdlSUQKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQ2hhbmdlSUQgZG9lcyBleGlzdCcsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VJRHMgPT4gWyRXb3JrT3JkZXJBZGRUZXN0SURdLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDkgLSBzZWFyY2ggZm9yIGNoYW5nZSBpZCwgd2hpY2ggaXMgbm90IGluIGRhdGFiYXNlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0FsbCBXb3JrT3JkZXJzIGZvciBDaGFuZ2UgMV8wMDBfMDAwJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUlEcyA9PiBbMV8wMDBfMDAwXSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0Q291bnQgPT4gMSwKICAgICAgICAgICAgQ291bnQgICAgID0+IDAsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAxMCAtIHNlYXJjaCBmb3Igbm9uLWV4aXN0aW5nIGNoYW5nZSBpZCBhbmQgZXhpc3RpbmcgdGl0bGUgd2hpY2ggaXMgbm90IGluIGRhdGFiYXNlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0FsbCBXb3JrT3JkZXJzIGZvciBDaGFuZ2UgMV8wMDBfMDAwIGFuZCBhbiBleGlzdGluZyB0aXRsZScsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VJRHMgICAgICA9PiBbMV8wMDBfMDAwXSwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1dvcmtPcmRlciAxIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0Q291bnQgPT4gMSwKICAgICAgICAgICAgQ291bnQgICAgID0+IDAsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAxMSAtIHNlYXJjaCBmb3IgZXhpc3RpbmcgQ2hhbmdlSUQgYW5kIGV4aXN0aW5nIFdvcmtPcmRlclRpdGxlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZUlEIGRvZXMgZXhpc3QsIFdvcmtPcmRlclRpdGxlIGRvZXMgZXhpc3QnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlSURzICAgICAgPT4gWyRXb3JrT3JkZXJBZGRUZXN0SURdLAogICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnV29ya09yZGVyIDEgLSBUaXRsZSAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDEyIC0gc2VhcmNoIGZvciBleGlzdGluZyBjaGFuZ2UgaWQgYW5kIGZvciB0aXRsZSwgd2hpY2ggaXMgbm90IGluIGRhdGFiYXNlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0NoYW5nZUlEIGRvZXMgZXhpc3QsIFdvcmtPcmRlclRpdGxlIGRvZXMgbm90IGV4aXN0JywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUlEcyAgICAgID0+IFskV29ya09yZGVyQWRkVGVzdElEXSwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ05PVCBJTiBEQVRBQkFTRSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0Q291bnQgPT4gMSwKICAgICAgICAgICAgQ291bnQgICAgID0+IDAsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAxMyAtIHNlYXJjaCBmb3Igd29ya29yZGVyIHR5cGVzCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgV29ya09yZGVyIHR5cGUnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlSURzICAgICAgICA9PiBbJFdvcmtPcmRlckFkZFRlc3RJRF0sCiAgICAgICAgICAgIFdvcmtPcmRlclR5cGVJRHMgPT4gWwogICAgICAgICAgICAgICAgJFdvcmtPcmRlclR5cGVOYW1lMklEe2FwcHJvdmFsfSwKICAgICAgICAgICAgICAgICRXb3JrT3JkZXJUeXBlTmFtZTJJRHtwaXJ9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAnJScgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgMTQgLSBzZWFyY2ggZm9yIG5vbmV4aXN0ZW50IGNoYW5nZSB0aXRsZQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIG5vbmV4aXN0ZW50IGNoYW5nZSB0aXRsZScsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VJRHMgICA9PiBbJFN0cmluZ1NlYXJjaFRlc3RJRF0sCiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICdOT05FWElTVEVOVCBDaGFuZ2UgMyAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAxNSAtIHNlYXJjaCBmb3IgY2hhbmdlIHRpdGxlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgY2hhbmdlIHRpdGxlJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUlEcyAgID0+IFskU3RyaW5nU2VhcmNoVGVzdElEXSwKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJ0NoYW5nZSAzIC0gVGl0bGUgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0Q291bnQgICAgID0+IDEsCiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDE2IC0gc2VhcmNoIGZvciBub25leGlzdGVudCBjaGFuZ2UgZGVzY3JpcHRpb24KICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBub25leGlzdGVudCBjaGFuZ2UgZGVzY3JpcHRpb24nLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlSURzICAgICAgICAgPT4gWyRTdHJpbmdTZWFyY2hUZXN0SURdLAogICAgICAgICAgICBDaGFuZ2VEZXNjcmlwdGlvbiA9PiAnTk9ORVhJU1RFTlQgQ2hhbmdlIDMgLSBEZXNjcmlwdGlvbiAtICcgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgMTcgLSBzZWFyY2ggZm9yIGNoYW5nZSBkZXNjcmlwdGlvbgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIGNoYW5nZSBkZXNjcmlwdGlvbicsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VJRHMgICAgICAgICA9PiBbJFN0cmluZ1NlYXJjaFRlc3RJRF0sCiAgICAgICAgICAgIENoYW5nZURlc2NyaXB0aW9uID0+ICdDaGFuZ2UgMyAtIERlc2NyaXB0aW9uIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAxOCAtIHNlYXJjaCBmb3Igbm9uZXhpc3RlbnQgY2hhbmdlIGp1c3RpZmljYXRpb24KICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBub25leGlzdGVudCBjaGFuZ2UganVzdGlmaWNhdGlvbicsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VJRHMgICAgICAgICAgID0+IFskU3RyaW5nU2VhcmNoVGVzdElEXSwKICAgICAgICAgICAgQ2hhbmdlSnVzdGlmaWNhdGlvbiA9PiAnTk9ORVhJU1RFTlQgQ2hhbmdlIDMgLSBKdXN0aWZpY2F0aW9uIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAxOSAtIHNlYXJjaCBmb3IgY2hhbmdlIGp1c3RpZmljYXRpb24KICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBjaGFuZ2UganVzdGlmaWNhdGlvbicsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VJRHMgICAgICAgICAgID0+IFskU3RyaW5nU2VhcmNoVGVzdElEXSwKICAgICAgICAgICAgQ2hhbmdlSnVzdGlmaWNhdGlvbiA9PiAiQ2hhbmdlIDMgLSBKdXN0aWZpY2F0aW9uIC1cbiRVbmlxdWVTaWduYXR1cmVcbiIsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAyMCAtIHNlYXJjaCBmb3Igbm9uZXhpc3RlbnQgY2hhbmdlIG51bWJlcgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIG5vbmV4aXN0ZW50IGNoYW5nZSBudW1iZXInLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlSURzICAgID0+IFskU3RyaW5nU2VhcmNoVGVzdElEXSwKICAgICAgICAgICAgQ2hhbmdlTnVtYmVyID0+ICdOT05FWElTVEVOVCAnIC4gJFN0cmluZ1NlYXJjaFRlc3RDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9LAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgMjEgLSBzZWFyY2ggZm9yIGNoYW5nZSBudW1iZXIKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBjaGFuZ2UgbnVtYmVyJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUlEcyAgICA9PiBbJFN0cmluZ1NlYXJjaFRlc3RJRF0sCiAgICAgICAgICAgIENoYW5nZU51bWJlciA9PiAkU3RyaW5nU2VhcmNoVGVzdENoYW5nZS0+e0NoYW5nZU51bWJlcn0sCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAyMiAtIHNlYXJjaCBmb3IgY2hhbmdlIHRpdGxlLCBjaGFuZ2UgbnVtYmVyLCBkZXNjcmlwdGlvbiBhbmQganVzdGlmaWNhdGlvbgogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIGNoYW5nZSB0aXRsZSwgY2hhbmdlIG51bWJlciwgZGVzY3JpcHRpb24gYW5kIGp1c3RpZmljYXRpb24nLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlSURzICAgICAgICAgICA9PiBbJFN0cmluZ1NlYXJjaFRlc3RJRF0sCiAgICAgICAgICAgIENoYW5nZU51bWJlciAgICAgICAgPT4gJFN0cmluZ1NlYXJjaFRlc3RDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9LAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgICAgICAgID0+ICdDaGFuZ2UgMyAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIENoYW5nZURlc2NyaXB0aW9uICAgPT4gIkNoYW5nZSAzIC0gRGVzY3JpcHRpb24gLSAkVW5pcXVlU2lnbmF0dXJlIiwKICAgICAgICAgICAgQ2hhbmdlSnVzdGlmaWNhdGlvbiA9PiAiQ2hhbmdlIDMgLSBKdXN0aWZpY2F0aW9uIC1cbiRVbmlxdWVTaWduYXR1cmVcbiIsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAyMyAtIHNlYXJjaCBmb3Igd29ya29yZGVyIHR5cGVzICJhcHByb3ZhbCIgYW5kICJwaXIiJywKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBXb3JrT3JkZXIgdHlwZXMgImFwcHJvdmFsIiBhbmQgInBpciInLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlSURzICAgICAgPT4gWyRXb3JrT3JkZXJBZGRUZXN0SURdLAogICAgICAgICAgICBXb3JrT3JkZXJUeXBlcyA9PiBbICdhcHByb3ZhbCcsICdwaXInIF0sCiAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICclJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAyNCAtIHNlYXJjaCBmb3Igd29ya29yZGVyIHR5cGVzIChzYW1lIHR5cGVzIHNldmVyYWwgdGltZXMpCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgV29ya09yZGVyIHR5cGVzIChzYW1lIHR5cGVzIHNldmVyYWwgdGltZXMpJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUlEcyAgICAgID0+IFskV29ya09yZGVyQWRkVGVzdElEXSwKICAgICAgICAgICAgV29ya09yZGVyVHlwZXMgPT4gWyAnYXBwcm92YWwnLCAncGlyJywgJ2FwcHJvdmFsJywgJ3BpcicgXSwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJyUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0Q291bnQgICAgID0+IDEsCiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDI1IC0gc2VhcmNoIGZvciB3b3Jrb3JkZXIgdHlwZXMKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBXb3JrT3JkZXIgdHlwZSAobm9uLWV4aXN0ZW50IHR5cGUpJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUlEcyAgICAgID0+IFskV29ya09yZGVyQWRkVGVzdElEXSwKICAgICAgICAgICAgV29ya09yZGVyVHlwZXMgPT4gWyAnYXBwcm92YWwnLCAncGlyJywgJ25vbi1leGlzdGVudCcgXSwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJyUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFNlYXJjaEZhaWxzID0+IDEsCiAgICB9LAoKICAgICMgTnIgMjYgLSBzZWFyY2ggZm9yIHdvcmtvcmRlciBzdGF0ZSAobm9uLWV4aXN0ZW50IHN0YXRlKQogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIFdvcmtPcmRlciBzdGF0ZSAobm9uLWV4aXN0ZW50IHN0YXRlKScsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VJRHMgICAgICAgPT4gWyRXb3JrT3JkZXJBZGRUZXN0SURdLAogICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZXMgPT4gWydub24tZXhpc3RlbnQnXSwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgID0+ICclJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hGYWlscyA9PiAxLAogICAgfSwKCiAgICAjIE5yIDI3IC0gc2VhcmNoIGZvciB3b3Jrb3JkZXIgc3RhdGVzCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgV29ya09yZGVyIHN0YXRlcyAiY2xvc2VkIiBhbmQgInJlYWR5IicsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VJRHMgICAgICAgPT4gWyRXb3JrT3JkZXJBZGRUZXN0SURdLAogICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZXMgPT4gWyAnY2xvc2VkJywgJ3JlYWR5JyBdLAogICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSAgPT4gJyUnIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0Q291bnQgICAgID0+IDEsCiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDI4IC0gU2VhcmNoIGZvciBXb3JrT3JkZXIgc3RhdGVzICJjbG9zZWQiIGFuZCAicmVhZHkiICh0d28gdGltZXMpCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgV29ya09yZGVyIHN0YXRlcyAiY2xvc2VkIiBhbmQgInJlYWR5IiAodHdvIHRpbWVzKScsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VJRHMgICAgICAgPT4gWyRXb3JrT3JkZXJBZGRUZXN0SURdLAogICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZXMgPT4gWyAnY2xvc2VkJywgJ3JlYWR5JywgJ2Nsb3NlZCcsICdyZWFkeScgXSwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgID0+ICclJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAyOSAtIFNlYXJjaCBmb3IgV29ya09yZGVyIHN0YXRlcyAiY2xvc2VkIiwgInJlYWR5IiBhbmQgIm5vbi1leGlzdGVudCIKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBXb3JrT3JkZXIgc3RhdGVzICJjbG9zZWQiLCAicmVhZHkiIGFuZCAibm9uLWV4aXN0ZW50IicsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VJRHMgICAgICAgPT4gWyRXb3JrT3JkZXJBZGRUZXN0SURdLAogICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZXMgPT4gWyAnY2xvc2VkJywgJ3JlYWR5JywgJ25vbi1leGlzdGVudCcgXSwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgID0+ICclJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hGYWlscyA9PiAxLAogICAgfSwKCiAgICAjIE5yIDMwIC0gU2VhcmNoIGZvciBhbiBpbnZhbGlkIFdvcmtPcmRlciBzdGF0ZSBpZAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIGFuIGludmFsaWQgV29ya09yZGVyIHN0YXRlIGlkJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUlEcyAgICAgICAgID0+IFskV29ya09yZGVyQWRkVGVzdElEXSwKICAgICAgICAgICAgV29ya09yZGVyU3RhdGVJRHMgPT4gWy0xMV0sCiAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgID0+ICclJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgfSwKICAgICAgICBTZWFyY2hGYWlscyA9PiAxLAogICAgfSwKCiAgICAjIE5yIDMxIC0gU2VhcmNoIGZvciBhbiBpbnZhbGlkIFdvcmtPcmRlciB0eXBlIGlkCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgYW4gaW52YWxpZCBXb3JrT3JkZXIgdHlwZSBpZCcsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VJRHMgICAgICAgID0+IFskV29ya09yZGVyQWRkVGVzdElEXSwKICAgICAgICAgICAgV29ya09yZGVyVHlwZUlEcyA9PiBbLTExXSwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgICA9PiAnJScgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgIH0sCiAgICAgICAgU2VhcmNoRmFpbHMgPT4gMSwKICAgIH0sCgogICAgIyBOciAzMiAtIFNlYXJjaCBmb3Igbm9ybWFsaXplZCB0aXRsZSwgbGVhZGluZyB3aGl0ZXNwYWNlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3Igbm9ybWFsaXplZCB0aXRsZSwgbGVhZGluZyB3aGl0ZXNwYWNlJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICJUaXRsZSB3aXRoIGxlYWRpbmcgd2hpdGVzcGFjZSAtICIgLiAkVW5pcXVlU2lnbmF0dXJlLAogICAgICAgICAgICBVc2luZ1dpbGRjYXJkcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgTnIgMzMgLSBTZWFyY2ggZm9yIG5vcm1hbGl6ZWQgdGl0bGUsIHRyYWlsaW5nIHdoaXRlc3BhY2UKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBub3JtYWxpemVkIHRpdGxlLCB0cmFpbGluZyB3aGl0ZXNwYWNlJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICJUaXRsZSB3aXRoIHRyYWlsaW5nIHdoaXRlc3BhY2UgLSAiIC4gJFVuaXF1ZVNpZ25hdHVyZSwKICAgICAgICAgICAgVXNpbmdXaWxkY2FyZHMgPT4gMCwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDM0IC0gU2VhcmNoIGZvciBub3JtYWxpemVkIHRpdGxlLCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3Igbm9ybWFsaXplZCB0aXRsZSwgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZScsCiAgICAgICAgU2VhcmNoRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAiVGl0bGUgd2l0aCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIC0gIiAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgIFVzaW5nV2lsZGNhcmRzID0+IDAsCiAgICAgICAgfSwKICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgVGVzdEV4aXN0ZW5jZSA9PiAxLAogICAgICAgICAgICBUZXN0Q291bnQgICAgID0+IDEsCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBOciAzNSAtIFNlYXJjaCBmb3Igd29ya29yZGVyIGR5bmFtaWMgZmllbGRzCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3Igd29ya29yZGVyIGR5bmFtaWMgZmllbGRzJywKICAgICAgICBTZWFyY2hEYXRhICA9PiB7CiAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QxJyA9PiB7CiAgICAgICAgICAgICAgICBFcXVhbHMgPT4gJ0FBQUEnLAogICAgICAgICAgICB9LAogICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MicgPT4gewogICAgICAgICAgICAgICAgRXF1YWxzID0+ICdCQkJCJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVXNpbmdXaWxkY2FyZHMgPT4gMCwKICAgICAgICB9LAogICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICBUZXN0RXhpc3RlbmNlID0+IDEsCiAgICAgICAgICAgIFRlc3RDb3VudCAgICAgPT4gMiwKICAgICAgICB9LAogICAgfSwKCiAgICAjIE5yIDM2IC0gU2VhcmNoIGZvciB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciB3b3Jrb3JkZXIgZHluYW1pYyBmaWVsZHMnLAogICAgICAgIFNlYXJjaERhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJ1Rlc3QgYWRkIHdvcmtvcmRlciB3aXRoIGR5bmFtaWMgZmllbGRzIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3QxJyA9PiB7CiAgICAgICAgICAgICAgICBFcXVhbHMgPT4gJ0FBQUEnLAogICAgICAgICAgICB9LAogICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkVW5pcXVlTmFtZVByZWZpeCAuICdUZXN0MicgPT4gewogICAgICAgICAgICAgICAgRXF1YWxzID0+ICdCQkJCJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFVuaXF1ZU5hbWVQcmVmaXggLiAnVGVzdDMnID0+IHsKICAgICAgICAgICAgICAgIEVxdWFscyA9PiAnWFhYWCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRVbmlxdWVOYW1lUHJlZml4IC4gJ1Rlc3Q0JyA9PiB7CiAgICAgICAgICAgICAgICBFcXVhbHMgPT4gJ1lZWVknLAogICAgICAgICAgICB9LAogICAgICAgICAgICBVc2luZ1dpbGRjYXJkcyA9PiAxLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgIFRlc3RFeGlzdGVuY2UgPT4gMSwKICAgICAgICAgICAgVGVzdENvdW50ICAgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAoKKTsKCm15ICRTZWFyY2hUZXN0Q291bnQgPSAxOwoKVEVTVDoKZm9yIG15ICRUZXN0IChAV29ya09yZGVyU2VhcmNoVGVzdHMpIHsKCiAgICAjIGNoZWNrIFNlYXJjaERhdGEgYXR0cmlidXRlCiAgICBpZiAoICEkVGVzdC0+e1NlYXJjaERhdGF9IHx8IHJlZiggJFRlc3QtPntTZWFyY2hEYXRhfSApIG5lICdIQVNIJyApIHsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IFNlYXJjaERhdGEgZm91bmQgZm9yIHRoaXMgdGVzdC4iLAogICAgICAgICk7CgogICAgICAgIG5leHQgVEVTVDsKICAgIH0KCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAxLAogICAgICAgICdjYWxsIFdvcmtPcmRlclNlYXJjaCB3aXRoIHBhcmFtczogJwogICAgICAgICAgICAuICRUZXN0LT57RGVzY3JpcHRpb259CiAgICAgICAgICAgIC4gIiAoU2VhcmNoVGVzdENhc2U6ICRTZWFyY2hUZXN0Q291bnQpIiwKICAgICk7CgogICAgIyBnZXQgYSByZWYgdG8gYW4gYXJyYXkgb2YgZm91bmQgaWRzCiAgICBteSAkV29ya09yZGVySURzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyU2VhcmNoKAogICAgICAgICV7ICRUZXN0LT57U2VhcmNoRGF0YX0gfSwKICAgICAgICBSZXN1bHQgICA9PiAnQVJSQVknLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgQ2hhbmdlSUQgPT4gJFdvcmtPcmRlckFkZFRlc3RJRCwKICAgICk7CgogICAgIyBnZXQgYSBjb3VudCBvZiBmb3VuZCBpZHMKICAgIG15ICRDb3VudFdvcmtPcmRlcklEcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclNlYXJjaCgKICAgICAgICAleyAkVGVzdC0+e1NlYXJjaERhdGF9IH0sCiAgICAgICAgUmVzdWx0ICAgPT4gJ0NPVU5UJywKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIENoYW5nZUlEID0+ICRXb3JrT3JkZXJBZGRUZXN0SUQsCiAgICApOwoKICAgIGlmICggJFRlc3QtPntTZWFyY2hGYWlsc30gKSB7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICFkZWZpbmVkKCRXb3JrT3JkZXJJRHMpLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBXb3JrT3JkZXJTZWFyY2goKSBpcyBleHBlY3RlZCB0byBmYWlsIChSZXN1bHQgPT4gJ0FSUkFZJykiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICFkZWZpbmVkKCRDb3VudFdvcmtPcmRlcklEcyksCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IFdvcmtPcmRlclNlYXJjaCgpIGlzIGV4cGVjdGVkIHRvIGZhaWwgKFJlc3VsdCA9PiAnQ09VTlQnKSIsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBkZWZpbmVkKCRXb3JrT3JkZXJJRHMpICYmIHJlZigkV29ya09yZGVySURzKSBlcSAnQVJSQVknLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBhcnJheSByZWZlcmVuY2UgZm9yIFdvcmtPcmRlcklEcy4iLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGRlZmluZWQoJENvdW50V29ya09yZGVySURzKSAmJiByZWYgJENvdW50V29ya09yZGVySURzIGVxICcnLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBzY2FsYXIgZm9yIENvdW50V29ya09yZGVySURzLiIsCiAgICAgICAgKTsKICAgIH0KCiAgICAkV29ya09yZGVySURzICAgICAgfHw9IFtdOwogICAgJENvdW50V29ya09yZGVySURzIHx8PSAwOwoKICAgIGlmICggJFRlc3QtPntSZXN1bHREYXRhfS0+e1Rlc3RDb3VudH0gKSB7CgogICAgICAgICMgZ2V0IG51bWJlciBvZiB3b3Jrb3JkZXIgaWRzIFdvcmtPcmRlclNlYXJjaCBzaG91bGQgcmV0dXJuCiAgICAgICAgbXkgJEV4cGVjdGVkQ291bnQgPSBzY2FsYXIga2V5cyAleyAkV29ya09yZGVySURGb3JTZWFyY2hUZXN0eyRTZWFyY2hUZXN0Q291bnR9IH07CgogICAgICAgICMgZ2V0IGRlZmluZWQgZXhwZWN0ZWQgcmVzdWx0IGNvdW50IChkZWZpbmVkIGluIHNlYXJjaCB0ZXN0IGNhc2UhKQogICAgICAgIGlmICggZXhpc3RzICRUZXN0LT57UmVzdWx0RGF0YX0tPntDb3VudH0gKSB7CiAgICAgICAgICAgICRFeHBlY3RlZENvdW50ID0gJFRlc3QtPntSZXN1bHREYXRhfS0+e0NvdW50fTsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgdGhlIG51bWJlciBvZiBJRHMgaW4gdGhlIHJldHVybmVkIGFycmF5cmVmCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICBzY2FsYXIgQHskV29ya09yZGVySURzfSwKICAgICAgICAgICAgJEV4cGVjdGVkQ291bnQsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIE51bWJlciBvZiBmb3VuZCB3b3Jrb3JkZXJzLiIsCiAgICAgICAgKTsKCiAgICAgICAgIyBXaGVuIGEgJ0xpbWl0JyBoYXMgYmVlbiBwYXNzZWQsIHRoZW4gdGhlIHJldHVybmVkIGNvdW50IG5vdCBuZWNlc3NhcmlseSBtYXRjaGVzCiAgICAgICAgIyB0aGUgbnVtYmVyIG9mIElEcyBpbiB0aGUgcmV0dXJuZWQgYXJyYXkuIEluIHRoYXQgY2FzZSB0ZXN0aW5nIGlzIGZ1dGlsZS4KICAgICAgICBpZiAoICEkVGVzdC0+e1NlYXJjaERhdGF9LT57TGltaXR9ICkgewogICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAkQ291bnRXb3JrT3JkZXJJRHMsCiAgICAgICAgICAgICAgICAkRXhwZWN0ZWRDb3VudCwKICAgICAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIE51bWJlciBvZiBmb3VuZCB3b3Jrb3JkZXJzIChSZXN1bHQgPT4gJ0NPVU5UJykuIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCAkVGVzdC0+e1Jlc3VsdERhdGF9LT57VGVzdEV4aXN0ZW5jZX0gKSB7CgogICAgICAgICMgY2hlY2sgaWYgYWxsIGlkcyB0aGF0IGJlbG9uZ3MgdG8gdGhpcyBzZWFyY2h0ZXN0IGFyZSByZXR1cm5lZAogICAgICAgIG15IEBXb3JrT3JkZXJJRHMgPSBrZXlzICV7ICRXb3JrT3JkZXJJREZvclNlYXJjaFRlc3R7JFNlYXJjaFRlc3RDb3VudH0gfTsKCiAgICAgICAgbXkgJVJldHVybmVkV29ya09yZGVySUQgPSBtYXAgeyAkXyA9PiAxIH0gQHskV29ya09yZGVySURzfTsKICAgICAgICBmb3IgbXkgJFdvcmtPcmRlcklEIChAV29ya09yZGVySURzKSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFJldHVybmVkV29ya09yZGVySUR7JFdvcmtPcmRlcklEfSwKICAgICAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIFdvcmtPcmRlcklEICRXb3JrT3JkZXJJRCBmb3VuZCBpbiByZXR1cm5lZCBsaXN0LiIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQp9CmNvbnRpbnVlIHsKICAgICRUZXN0Q291bnQrKzsKICAgICRTZWFyY2hUZXN0Q291bnQrKzsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIGRlZmluZSB3b3Jrb3JkZXIgc2VhcmNoIHRlc3RzIGZvciAnT3JkZXJCeScgc2VhcmNoZXMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBnZXQgdGhyZWUgY2hhbmdlIGlkcy4gVGhlbiBnZXQgdGhlIGRhdGEuIFRoYXQgaXMgbmVlZGVkIGZvciBzb3J0aW5nCm15IEBXb3JrT3JkZXJJRHNGb3JPcmRlckJ5VGVzdHMgPSBrZXlzICV7ICRXb3JrT3JkZXJJREZvclNlYXJjaFRlc3R7OTk5OTk5fSB9OwpteSBAV29ya09yZGVyc0Zvck9yZGVyQnlUZXN0czsKCmZvciBteSAkV29ya09yZGVySURGb3JPcmRlckJ5VGVzdHMgKEBXb3JrT3JkZXJJRHNGb3JPcmRlckJ5VGVzdHMpIHsKICAgIG15ICRXb3JrT3JkZXJEYXRhID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJREZvck9yZGVyQnlUZXN0cywKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKCiAgICAjIGNvbnZlcnQgdGltZSBzdHJpbmcgdG8gbnVtYmVycyAtIHRoYXQncyBiZXR0ZXIgZm9yIHRoZSBjb21wYXJpc29ucwogICAgZm9yIG15ICRUaW1lQ29sdW1uIChxdyhDcmVhdGVUaW1lIENoYW5nZVRpbWUpKSB7CiAgICAgICAgJFdvcmtPcmRlckRhdGEtPnskVGltZUNvbHVtbn0gPX4gc3sgXEQgfXt9eG1zZzsKICAgIH0KCiAgICBwdXNoIEBXb3JrT3JkZXJzRm9yT3JkZXJCeVRlc3RzLCAkV29ya09yZGVyRGF0YTsKfQoKbXkgQE9yZGVyQnlDb2x1bW5zID0gcXcoCiAgICBXb3JrT3JkZXJJRAogICAgV29ya09yZGVyTnVtYmVyCiAgICBXb3JrT3JkZXJUaXRsZQogICAgV29ya09yZGVyU3RhdGVJRAogICAgV29ya09yZGVyVHlwZUlECiAgICBDcmVhdGVCeQogICAgQ2hhbmdlQnkKICAgIENyZWF0ZVRpbWUKICAgIENoYW5nZVRpbWUKKTsKCmZvciBteSAkT3JkZXJCeUNvbHVtbiAoQE9yZGVyQnlDb2x1bW5zKSB7CgogICAgIyB0dXJuIG9mZiBhbGwgcHJldHR5IHByaW50CiAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOwogICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6VXNlcXEgID0gMTsKCiAgICAjIFdvcmtPcmRlclNlYXJjaCgpIHNvcnRzIHRoZSBJRC1GaWVsZHMgbnVtZXJpY2FsbHksIHRoZSBzdHJpbmcgZmllbGRzIGFscGhhYmV0aWNhbGx5LgogICAgIyB0aGUgc29ydGluZyBpcyBjb21wbGV0ZWx5IGRldGVybWluZWQgYnkgdGhlIHNlY29uZCBjb21wYXJpc29uCiAgICBteSBAU29ydGVkV29ya09yZGVyczsKICAgIGlmICggJE9yZGVyQnlDb2x1bW4gZXEgJ1dvcmtPcmRlclRpdGxlJyApIHsKICAgICAgICBAU29ydGVkV29ya09yZGVycyA9IHNvcnQgewogICAgICAgICAgICAkYS0+eyRPcmRlckJ5Q29sdW1ufSBjbXAgJGItPnskT3JkZXJCeUNvbHVtbn0KICAgICAgICAgICAgICAgIHx8ICRiLT57V29ya09yZGVySUR9IDw9PiAkYS0+e1dvcmtPcmRlcklEfQogICAgICAgIH0gQFdvcmtPcmRlcnNGb3JPcmRlckJ5VGVzdHM7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBAU29ydGVkV29ya09yZGVycyA9IHNvcnQgewogICAgICAgICAgICAkYS0+eyRPcmRlckJ5Q29sdW1ufSA8PT4gJGItPnskT3JkZXJCeUNvbHVtbn0KICAgICAgICAgICAgICAgIHx8ICRiLT57V29ya09yZGVySUR9IDw9PiAkYS0+e1dvcmtPcmRlcklEfQogICAgICAgIH0gQFdvcmtPcmRlcnNGb3JPcmRlckJ5VGVzdHM7CiAgICB9CiAgICBteSBAU29ydGVkSURzID0gbWFwIHsgJF8tPntXb3JrT3JkZXJJRH0gfSBAU29ydGVkV29ya09yZGVyczsKCiAgICAjIGR1bXAgdGhlIHJlZmVyZW5jZSBhdHRyaWJ1dGUKICAgIG15ICRSZWZlcmVuY2VMaXN0ID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoIFxAU29ydGVkSURzICk7ICAgICMjIG5vIGNyaXRpYwoKICAgIG15ICRTZWFyY2hSZXN1bHQgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJTZWFyY2goCiAgICAgICAgQ2hhbmdlSURzICAgICAgICA9PiBbJE9yZGVyQnlUZXN0SURdLAogICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gWyRPcmRlckJ5Q29sdW1uXSwKICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFsnVXAnXSwKICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICApOwoKICAgICMgZHVtcCB0aGUgYXR0cmlidXRlIGZyb20gV29ya09yZGVyR2V0KCkKICAgIG15ICRTZWFyY2hMaXN0ID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoJFNlYXJjaFJlc3VsdCk7ICAgICAgICMjIG5vIGNyaXRpYwoKICAgICRTZWxmLT5JcygKICAgICAgICAkU2VhcmNoTGlzdCwKICAgICAgICAkUmVmZXJlbmNlTGlzdCwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIjogV29ya09yZGVyU2VhcmNoKCkgT3JkZXJCeSAkT3JkZXJCeUNvbHVtbiAoVXApLiIKICAgICk7CgogICAgIyBzb3J0IGluIHRoZSBvdGhlciBkaXJlY3Rpb24KCiAgICAjIFdvcmtPcmRlclNlYXJjaCgpIHNvcnRzIHRoZSBJRC1GaWVsZHMgbnVtZXJpY2FsbHksIHRoZSBzdHJpbmcgZmllbGRzIGFscGhhYmV0aWNhbGx5LgogICAgIyB0aGUgc29ydGluZyBpcyBjb21wbGV0ZWx5IGRldGVybWluZWQgYnkgdGhlIHNlY29uZCBjb21wYXJpc29uCiAgICBpZiAoICRPcmRlckJ5Q29sdW1uIGVxICdXb3JrT3JkZXJUaXRsZScgKSB7CiAgICAgICAgQFNvcnRlZFdvcmtPcmRlcnMgPSBzb3J0IHsKICAgICAgICAgICAgJGItPnskT3JkZXJCeUNvbHVtbn0gY21wICRhLT57JE9yZGVyQnlDb2x1bW59CiAgICAgICAgICAgICAgICB8fCAkYi0+e1dvcmtPcmRlcklEfSA8PT4gJGEtPntXb3JrT3JkZXJJRH0KICAgICAgICB9IEBXb3JrT3JkZXJzRm9yT3JkZXJCeVRlc3RzOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgQFNvcnRlZFdvcmtPcmRlcnMgPSBzb3J0IHsKICAgICAgICAgICAgJGItPnskT3JkZXJCeUNvbHVtbn0gPD0+ICRhLT57JE9yZGVyQnlDb2x1bW59CiAgICAgICAgICAgICAgICB8fCAkYi0+e1dvcmtPcmRlcklEfSA8PT4gJGEtPntXb3JrT3JkZXJJRH0KICAgICAgICB9IEBXb3JrT3JkZXJzRm9yT3JkZXJCeVRlc3RzOwogICAgfQogICAgbXkgQFNvcnRlZElEc0Rvd24gPSBtYXAgeyAkXy0+e1dvcmtPcmRlcklEfSB9IEBTb3J0ZWRXb3JrT3JkZXJzOwoKICAgICMgZHVtcCB0aGUgcmVmZXJlbmNlIGF0dHJpYnV0ZQogICAgbXkgJFJlZmVyZW5jZUxpc3REb3duID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoIFxAU29ydGVkSURzRG93biApOyAgICAjIyBubyBjcml0aWMKCiAgICBteSAkU2VhcmNoUmVzdWx0RG93biA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclNlYXJjaCgKICAgICAgICBDaGFuZ2VJRHMgPT4gWyRPcmRlckJ5VGVzdElEXSwKICAgICAgICBPcmRlckJ5ICAgPT4gWyRPcmRlckJ5Q29sdW1uXSwKICAgICAgICBVc2VySUQgICAgPT4gMSwKICAgICk7CgogICAgIyBkdW1wIHRoZSBhdHRyaWJ1dGUgZnJvbSBXb3JrT3JkZXJHZXQoKQogICAgbXkgJFNlYXJjaExpc3REb3duID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoJFNlYXJjaFJlc3VsdERvd24pOyAgICAgICAjIyBubyBjcml0aWMKCiAgICAkU2VsZi0+SXMoCiAgICAgICAgJFNlYXJjaExpc3REb3duLAogICAgICAgICRSZWZlcmVuY2VMaXN0RG93biwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIjogV29ya09yZGVyU2VhcmNoKCkgT3JkZXJCeSAkT3JkZXJCeUNvbHVtbiAoRG93bikuIgogICAgKTsKCiAgICAjIGNoZWNrIGlmIFdvcmtPcmRlci5wbSBoYW5kbGVzIG5vbi1leGlzdGVudCBPcmRlckJ5RGlyZWN0aW9uIGNyaXRlcmlhIGNvcnJlY3QKICAgIG15ICRTZWFyY2hSZXN1bHRTaWRld2F5cyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclNlYXJjaCgKICAgICAgICBXb3JrT3JkZXJUaXRsZSAgID0+ICdXb3JrT3JkZXJBZGQoKSBmb3IgT3JkZXJCeSAtIFRpdGxlIC0gJyAuICRVbmlxdWVTaWduYXR1cmUsCiAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiBbJE9yZGVyQnlDb2x1bW5dLAogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gWydTaWRld2F5cyddLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgICRTZWFyY2hSZXN1bHRTaWRld2F5cywKICAgICAgICB1bmRlZiwKICAgICAgICAnVGVzdCAnIC4gJFRlc3RDb3VudCsrIC4gIjogV29ya09yZGVyU2VhcmNoKCkgT3JkZXJCeSAkT3JkZXJCeUNvbHVtbiAoU2lkZXdheXMpLiIKICAgICk7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyB0ZXN0IHNvcnRpbmcgb2YgY2hhbmdlcyAoc29tZSBoYXZlIG5vIHdvcmtvcmRlciwgb3RoZXJzIGhhdmUgc2V2ZXJhbCB3b3Jrb3JkZXJzKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCm15ICVJRHNUb0RlbGV0ZSA9ICgKICAgIENoYW5nZSAgICA9PiBbXSwKICAgIFdvcmtPcmRlciA9PiBbXSwKKTsKbXkgJENoYW5nZXNUaXRsZSAgICAgICA9ICdDaGFuZ2VTZWFyY2hPcmRlckJ5VGltZXMgLSAnIC4gJFVuaXF1ZVNpZ25hdHVyZTsKbXkgQENoYW5nZXNGb3JTb3J0VGVzdCA9ICgKICAgIHsKICAgICAgICBDaGFuZ2UgPT4gewogICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAkQ2hhbmdlc1RpdGxlLAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgV29ya29yZGVycyA9PiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZSA9PiAnMjAwOS0wNi0zMCAwOTozMzoxMicsCiAgICAgICAgICAgICAgICBBY3R1YWxFbmRUaW1lICAgPT4gJzIwMDktMDktMDEgMDE6MTI6NTUnLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgQ2hhbmdlID0+IHsKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJENoYW5nZXNUaXRsZSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFdvcmtvcmRlcnMgPT4gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lID0+ICcyMDA5LTAyLTIxIDEzOjI1OjA5JywKICAgICAgICAgICAgICAgIFBsYW5uZWRFbmRUaW1lICAgPT4gJzIwMDktMTAtMTMgMjI6MTU6NTYnLAogICAgICAgICAgICAgICAgQWN0dWFsU3RhcnRUaW1lICA9PiAnMjAwOS0wNS0zMSAwOTozMzoxMicsCiAgICAgICAgICAgICAgICBBY3R1YWxFbmRUaW1lICAgID0+ICcyMDA5LTEwLTAxIDAxOjEyOjU1JywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnMjAwOS0wMy0yNSAxMzoyNTowOScsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZSAgID0+ICcyMDA5LTA5LTEzIDIyOjE1OjU2JywKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZSAgPT4gJzIwMDktMDYtMDEgMDk6MzM6MTInLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgICA9PiAnMjAwOS0xMS0wMSAwMToxMjo1NScsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgQ2hhbmdlID0+IHsKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgPT4gJENoYW5nZXNUaXRsZSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFdvcmtvcmRlcnMgPT4gW10sCiAgICB9LAogICAgewogICAgICAgIENoYW5nZSA9PiB7CiAgICAgICAgICAgIENoYW5nZVRpdGxlID0+ICRDaGFuZ2VzVGl0bGUsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBXb3Jrb3JkZXJzID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnMjAwOS0wMy0yMSAxMzoyNTowOScsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZSAgID0+ICcyMDA5LTEwLTEzIDIyOjE1OjU2JywKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZSAgPT4gJzIwMDktMDYtMzAgMDk6MzM6MTInLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgICA9PiAnMjAwOS0wOS0wMSAwMToxMjo1NScsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWUgPT4gJzIwMDktMDMtMjAgMTM6MjU6MDknLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWUgICA9PiAnMjAwOS0xMC0xMiAyMjoxNTo1NicsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWUgPT4gJzIwMDktMDMtMjIgMTM6MjU6MDknLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWUgICA9PiAnMjAwOS0xMC0xMSAyMjoxNTo1NicsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgIH0sCik7CgpteSBAQ2hhbmdlSURzRm9yU29ydFRlc3Q7CmZvciBteSAkQ2hhbmdlIChAQ2hhbmdlc0ZvclNvcnRUZXN0KSB7CgogICAgIyBjcmVhdGUgY2hhbmdlCiAgICBteSAkQ2hhbmdlSUQgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoICV7ICRDaGFuZ2UtPntDaGFuZ2V9IH0gKTsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2hhbmdlIGZvciBzb3J0IHRlc3QgY3JlYXRlZCIsCiAgICApOwoKICAgICMgc3RvcmUgQ2hhbmdlSUQKICAgIHB1c2ggQENoYW5nZUlEc0ZvclNvcnRUZXN0LCAgICAgJENoYW5nZUlEOwogICAgcHVzaCBAeyAkSURzVG9EZWxldGV7Q2hhbmdlfSB9LCAkQ2hhbmdlSUQ7CgogICAgIyBhZGQgdGhlIHdvcmtvcmRlcnMgZm9yIHRoZSBjaGFuZ2UKICAgIG15ICRXb3JrT3JkZXJDb3VudCA9IDE7CiAgICBmb3IgbXkgJFdvcmtPcmRlciAoIEB7ICRDaGFuZ2UtPntXb3Jrb3JkZXJzfSB9ICkgewogICAgICAgIG15ICRXb3JrT3JkZXJJRCA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckFkZCgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICAleyRXb3JrT3JkZXJ9LAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkV29ya09yZGVySUQsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IFdvcmtPcmRlciAkV29ya09yZGVyQ291bnQgZm9yIENoYW5nZSBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICBwdXNoIEB7ICRJRHNUb0RlbGV0ZXtXb3JrT3JkZXJ9IH0sICRXb3JrT3JkZXJJRDsKCiAgICAgICAgJFdvcmtPcmRlckNvdW50Kys7CiAgICB9CgogICAgIyBjaGVjayB3aGV0aGVyIHRoZSB3b3Jrb3JkZXJzIHdlcmUgYWRkZWQKICAgIG15ICRDaGFuZ2VEYXRhID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKICAgICRTZWxmLT5JcygKICAgICAgICAkQ2hhbmdlRGF0YS0+e1dvcmtPcmRlckNvdW50fSwKICAgICAgICBzY2FsYXIgQHsgJENoYW5nZS0+e1dvcmtvcmRlcnN9IH0sCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gQ2hhbmdlR2V0KCk6IHdvcmtvcmRlcnMgd2VyZSBhZGRlZCIKICAgICk7Cn0KY29udGludWUgewogICAgJFRlc3RDb3VudCsrOwp9CgpteSBAVGVzdHBsYW4gPSAoCiAgICBbIDAsIDMsIDEsIDIgXSwgICAgIyBpbmRleCBvZiBjaGFuZ2VzIGluIEBDaGFuZ2VJRHNGb3JTb3J0VGVzdAogICAgWyAwLCAxLCAzLCAyIF0sCiAgICBbIDAsIDMsIDEsIDIgXSwKICAgIFsgMywgMSwgMCwgMiBdLAopOwoKIyBEbyB0aGUgdGVzdGluZwpteSAkT3JkZXJCeVRlc3RDb3VudCA9IDA7CmZvciBteSAkT3JkZXJCeUNvbHVtbiAocXcoUGxhbm5lZFN0YXJ0VGltZSBQbGFubmVkRW5kVGltZSBBY3R1YWxTdGFydFRpbWUgQWN0dWFsRW5kVGltZSkpIHsKCiAgICAjIHR1cm4gb2ZmIGFsbCBwcmV0dHkgcHJpbnQKICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OkluZGVudCA9IDA7CiAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpVc2VxcSAgPSAxOwoKICAgICMgZ2V0IHRoZSBjdXJyZW50IHJlZmVyZW5jZSBhcnJheQogICAgbXkgQFRlc3RwbGFuQWx0ZXJuYXRpdmUgPSBAeyAkVGVzdHBsYW5bJE9yZGVyQnlUZXN0Q291bnRdIH07CgogICAgIyBwbGFjZSB0aGUgbGFzdCBlbGVtZW50IGF0IGZyb250IG9mIHRoZSBhcnJheQogICAgIyBzb21lIERCcyBzb3J0IHRoZSBOVUxMcyB2YWx1ZXMgYXQgZnJvbnQgb2YgdGhlIHJlc3VsdCBzZXQKICAgIG15ICRMYXN0ID0gcG9wIEBUZXN0cGxhbkFsdGVybmF0aXZlOwogICAgdW5zaGlmdCBAVGVzdHBsYW5BbHRlcm5hdGl2ZSwgJExhc3Q7CgogICAgIyByZXN1bHQgd2hhdCB3ZSBleHBlY3QKICAgIG15IEBSZXN1bHRSZWZlcmVuY2UgICAgICAgICAgICA9IG1hcCB7ICRDaGFuZ2VJRHNGb3JTb3J0VGVzdFskX10gfSBAeyAkVGVzdHBsYW5bJE9yZGVyQnlUZXN0Q291bnRdIH07CiAgICBteSBAUmVzdWx0UmVmZXJlbmNlQWx0ZXJuYXRpdmUgPSBtYXAgeyAkQ2hhbmdlSURzRm9yU29ydFRlc3RbJF9dIH0gQFRlc3RwbGFuQWx0ZXJuYXRpdmU7CgogICAgIyBzZWFyY2ggd2l0aCBkaXJlY3Rpb24gJ0RPV04nCiAgICBteSAkU2VhcmNoUmVzdWx0ID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU2VhcmNoKAogICAgICAgIENoYW5nZVRpdGxlICAgICAgPT4gJENoYW5nZXNUaXRsZSwKICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFsgJE9yZGVyQnlDb2x1bW4sICdDaGFuZ2VJRCcgXSwKICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFsgJ0Rvd24nLCAgICAgICAgICdVcCcgXSwKICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICApOwoKICAgIGlmICgKICAgICAgICBEYXRhOjpEdW1wZXI6OkR1bXBlcigkU2VhcmNoUmVzdWx0KSAgICAgICAgICAgICAjIyBubyBjcml0aWMKICAgICAgICBlcSBEYXRhOjpEdW1wZXI6OkR1bXBlciggXEBSZXN1bHRSZWZlcmVuY2UgKSAgICAjIyBubyBjcml0aWMKICAgICAgICApCiAgICB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICBEYXRhOjpEdW1wZXI6OkR1bXBlcigkU2VhcmNoUmVzdWx0KSwgICAgICAgICAgIyMgbm8gY3JpdGljCiAgICAgICAgICAgIERhdGE6OkR1bXBlcjo6RHVtcGVyKCBcQFJlc3VsdFJlZmVyZW5jZSApLCAgICAjIyBubyBjcml0aWMKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2hhbmdlU2VhcmNoIE9yZGVyQnkgJE9yZGVyQnlDb2x1bW4gKERvd24pIiwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKAogICAgICAgIERhdGE6OkR1bXBlcjo6RHVtcGVyKCRTZWFyY2hSZXN1bHQpICAgICAgICAgICAgICAgICAgICAgICAgIyMgbm8gY3JpdGljCiAgICAgICAgZXEgRGF0YTo6RHVtcGVyOjpEdW1wZXIoIFxAUmVzdWx0UmVmZXJlbmNlQWx0ZXJuYXRpdmUgKSAgICAjIyBubyBjcml0aWMKICAgICAgICApCiAgICB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICBEYXRhOjpEdW1wZXI6OkR1bXBlcigkU2VhcmNoUmVzdWx0KSwgICAgICAgICAgICAgICAgICAgICAjIyBubyBjcml0aWMKICAgICAgICAgICAgRGF0YTo6RHVtcGVyOjpEdW1wZXIoIFxAUmVzdWx0UmVmZXJlbmNlQWx0ZXJuYXRpdmUgKSwgICAgIyMgbm8gY3JpdGljCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IENoYW5nZVNlYXJjaCBPcmRlckJ5ICRPcmRlckJ5Q29sdW1uIChEb3duKSIsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgRGF0YTo6RHVtcGVyOjpEdW1wZXIoJFNlYXJjaFJlc3VsdCksICAgICAgICAgICAgICAgICAgICAgIyMgbm8gY3JpdGljCiAgICAgICAgICAgIHVuZGVmLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBDaGFuZ2VTZWFyY2ggT3JkZXJCeSAkT3JkZXJCeUNvbHVtbiAoRG93bikiLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZWFyY2ggd2l0aCBkaXJlY3Rpb24gJ1VQJwogICAgbXkgJFNlYXJjaFJlc3VsdFVwID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlU2VhcmNoKAogICAgICAgIENoYW5nZVRpdGxlICAgICAgPT4gJENoYW5nZXNUaXRsZSwKICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFsgJE9yZGVyQnlDb2x1bW4sICdDaGFuZ2VJRCcgXSwKICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFsgJ1VwJywgICAgICAgICAgICdEb3duJyBdLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgaWYgKAogICAgICAgIERhdGE6OkR1bXBlcjo6RHVtcGVyKCRTZWFyY2hSZXN1bHRVcCkgICAgICAgICAgICAgICAgICAgICAgIyMgbm8gY3JpdGljCiAgICAgICAgZXEgRGF0YTo6RHVtcGVyOjpEdW1wZXIoIFsgcmV2ZXJzZSBAUmVzdWx0UmVmZXJlbmNlIF0gKSAgICAjIyBubyBjcml0aWMKICAgICAgICApCiAgICB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICBEYXRhOjpEdW1wZXI6OkR1bXBlcigkU2VhcmNoUmVzdWx0VXApLCAgICAgICAgICAgICAgICAgICAjIyBubyBjcml0aWMKICAgICAgICAgICAgRGF0YTo6RHVtcGVyOjpEdW1wZXIoIFsgcmV2ZXJzZSBAUmVzdWx0UmVmZXJlbmNlIF0gKSwgICAgIyMgbm8gY3JpdGljCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IENoYW5nZVNlYXJjaCBPcmRlckJ5ICRPcmRlckJ5Q29sdW1uIChVcCkiLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoCiAgICAgICAgRGF0YTo6RHVtcGVyOjpEdW1wZXIoJFNlYXJjaFJlc3VsdFVwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIG5vIGNyaXRpYwogICAgICAgIGVxIERhdGE6OkR1bXBlcjo6RHVtcGVyKCBbIHJldmVyc2UgQFJlc3VsdFJlZmVyZW5jZUFsdGVybmF0aXZlIF0gKSAgICAjIyBubyBjcml0aWMKICAgICAgICApCiAgICB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICBEYXRhOjpEdW1wZXI6OkR1bXBlcigkU2VhcmNoUmVzdWx0VXApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIG5vIGNyaXRpYwogICAgICAgICAgICBEYXRhOjpEdW1wZXI6OkR1bXBlciggWyByZXZlcnNlIEBSZXN1bHRSZWZlcmVuY2VBbHRlcm5hdGl2ZSBdICksICAgICMjIG5vIGNyaXRpYwogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBDaGFuZ2VTZWFyY2ggT3JkZXJCeSAkT3JkZXJCeUNvbHVtbiAoVXApIiwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICBEYXRhOjpEdW1wZXI6OkR1bXBlcigkU2VhcmNoUmVzdWx0VXApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIG5vIGNyaXRpYwogICAgICAgICAgICB1bmRlZiwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogQ2hhbmdlU2VhcmNoIE9yZGVyQnkgJE9yZGVyQnlDb2x1bW4gKFVwKSIsCiAgICAgICAgKTsKICAgIH0KCiAgICAkT3JkZXJCeVRlc3RDb3VudCsrOwogICAgJFRlc3RDb3VudCsrOwp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgYWR2YW5jZWQgc2VhcmNoIGJ5IHRlc3RzIGZvciB0aW1lcwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgpteSBAVGltZVNlYXJjaFRlc3RzID0gKAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdGaXJzdCB3b3Jrb3JkZXIgaW4gdGhlIDE5dGggY2VudHVyeS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWUgPT4gJzE5MDktMDEtMDEgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWUgICA9PiAnMTkwOS0wMS0zMCAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWUgID0+ICcxOTA5LTAxLTAyIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWUgICAgPT4gJzE5MDktMDEtMjkgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWNvbmQgd29ya29yZGVyIGluIHRoZSAxOXRoIGNlbnR1cnkuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWUgPT4gJzE5MDktMDEtMTAgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWUgICA9PiAnMTkwOS0wMS0yMCAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWUgID0+ICcxOTA5LTAxLTExIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWUgICAgPT4gJzE5MDktMDEtMTkgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdUaGlyZCBjaGFuZ2Ugd2l0aCBvbmUgd29ya29yZGVyIGluIHRoZSAxOXRoIGNlbnR1cnkuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWUgPT4gJzE5MDktMDItMDEgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWUgICA9PiAnMTkwOS0wMi0yNyAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWUgID0+ICcxOTA5LTAyLTAyIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWUgICAgPT4gJzE5MDktMDItMjYgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdGb3VydGggd29ya29yZGVyIGluIHRoZSAxOXRoIGNlbnR1cnkuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWUgPT4gJzE5MDktMDMtMDEgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWUgICA9PiAnMTkwOS0wNC0wNyAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWUgID0+ICcxOTA5LTAyLTIwIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWUgICAgPT4gJzE5MDktMDUtMDEgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCiAgICAjIHRlc3QgZm9yIHBsYW5uZWQgc3RhcnQgdGltZQogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBQbGFubmVkU3RhcnRUaW1lTmV3ZXJEYXRlIGFuZCBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0wMS0wMSAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlID0+ICcxOTA5LTAxLTAyIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWwogICAgICAgICAgICAwLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIFBsYW5uZWRTdGFydFRpbWVOZXdlckRhdGUgYW5kIFBsYW5uZWRTdGFydFRpbWVPbGRlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lTmV3ZXJEYXRlID0+ICcxOTA4LTEyLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWVPbGRlckRhdGUgPT4gJzE5MDgtMTItMzEgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbXSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgUGxhbm5lZFN0YXJ0VGltZU5ld2VyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWVOZXdlckRhdGUgPT4gJzE5MDktMDItMDEgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbIDIsIDMsIF0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIFBsYW5uZWRTdGFydFRpbWVOZXdlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lTmV3ZXJEYXRlID0+ICcxOTA5LTEyLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gW10sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIFBsYW5uZWRTdGFydFRpbWVPbGRlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlID0+ICcxOTA5LTAxLTEwIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWyAwLCAxLCBdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZU9sZGVyRGF0ZSA9PiAnMTkwOC0wMS0zMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBQbGFubmVkU3RhcnRUaW1lTmV3ZXJEYXRlIGFuZCBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0xMi0wMSAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lT2xkZXJEYXRlID0+ICcxOTA4LTEyLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gW10sCiAgICB9LAoKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCiAgICAjIHRlc3QgZm9yIHBsYW5uZWQgZW5kIHRpbWUKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgUGxhbm5lZEVuZFRpbWVOZXdlckRhdGUgYW5kIFBsYW5uZWRFbmRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBsYW5uZWRFbmRUaW1lTmV3ZXJEYXRlID0+ICcxOTA5LTAxLTMwIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIFBsYW5uZWRFbmRUaW1lT2xkZXJEYXRlID0+ICcxOTA5LTAxLTMxIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWwogICAgICAgICAgICAwLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIFBsYW5uZWRFbmRUaW1lTmV3ZXJEYXRlIGFuZCBQbGFubmVkRW5kVGltZU9sZGVyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZU5ld2VyRGF0ZSA9PiAnMTkwOC0xMi0wMSAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZU9sZGVyRGF0ZSA9PiAnMTkwOC0xMi0zMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBQbGFubmVkRW5kVGltZU5ld2VyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0wMi0yNyAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFsgMiwgMywgXSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgUGxhbm5lZEVuZFRpbWVOZXdlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWVOZXdlckRhdGUgPT4gJzE5MDktMDUtMDEgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbXSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgUGxhbm5lZEVuZFRpbWVPbGRlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWVPbGRlckRhdGUgPT4gJzE5MDktMDEtMjUgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbIDEsIF0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIFBsYW5uZWRFbmRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBsYW5uZWRFbmRUaW1lT2xkZXJEYXRlID0+ICcxOTA4LTAxLTMxIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gW10sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIFBsYW5uZWRFbmRUaW1lTmV3ZXJEYXRlIGFuZCBQbGFubmVkRW5kVGltZU9sZGVyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0wNS0wMSAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZU9sZGVyRGF0ZSA9PiAnMTkwOC0xMi0wMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKCiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIwogICAgIyB0ZXN0IGZvciBhY3R1YWwgc3RhcnQgdGltZQogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBBY3R1YWxTdGFydFRpbWVOZXdlckRhdGUgYW5kIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQWN0dWFsU3RhcnRUaW1lTmV3ZXJEYXRlID0+ICcxOTA5LTAxLTAyIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZSA9PiAnMTkwOS0wMS0wMiAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFsKICAgICAgICAgICAgMCwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBBY3R1YWxTdGFydFRpbWVOZXdlckRhdGUgYW5kIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQWN0dWFsU3RhcnRUaW1lTmV3ZXJEYXRlID0+ICcxOTA4LTEyLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZSA9PiAnMTkwOC0xMi0zMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBBY3R1YWxTdGFydFRpbWVOZXdlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0wMi0wMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFsgMiwgMywgXSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgQWN0dWFsU3RhcnRUaW1lTmV3ZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWVOZXdlckRhdGUgPT4gJzE5MDktMTItMzAgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbXSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgQWN0dWFsU3RhcnRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWVPbGRlckRhdGUgPT4gJzE5MDktMDEtMTIgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbIDAsIDEsIF0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIEFjdHVhbFN0YXJ0VGltZU9sZGVyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQWN0dWFsU3RhcnRUaW1lT2xkZXJEYXRlID0+ICcxOTA4LTAxLTMxIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gW10sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIEFjdHVhbFN0YXJ0VGltZU5ld2VyRGF0ZSBhbmQgQWN0dWFsU3RhcnRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWVOZXdlckRhdGUgPT4gJzE5MDktMTItMDEgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgQWN0dWFsU3RhcnRUaW1lT2xkZXJEYXRlID0+ICcxOTA4LTEyLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gW10sCiAgICB9LAoKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCiAgICAjIHRlc3QgZm9yIGFjdHVhbCBlbmQgdGltZQogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBBY3R1YWxFbmRUaW1lTmV3ZXJEYXRlIGFuZCBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0wMS0yOCAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlID0+ICcxOTA5LTAxLTI5IDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWwogICAgICAgICAgICAwLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIEFjdHVhbEVuZFRpbWVOZXdlckRhdGUgYW5kIEFjdHVhbEVuZFRpbWVPbGRlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxFbmRUaW1lTmV3ZXJEYXRlID0+ICcxOTA4LTEyLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWVPbGRlckRhdGUgPT4gJzE5MDgtMTItMzEgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbXSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1NlYXJjaCBmb3IgQWN0dWFsRW5kVGltZU5ld2VyRGF0ZS4nLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgV29ya09yZGVyU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWVOZXdlckRhdGUgPT4gJzE5MDktMDItMjYgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbIDIsIDMsIF0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIEFjdHVhbEVuZFRpbWVOZXdlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxFbmRUaW1lTmV3ZXJEYXRlID0+ICcxOTA5LTEyLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gW10sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdTZWFyY2ggZm9yIEFjdHVhbEVuZFRpbWVPbGRlckRhdGUuJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlclNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlID0+ICcxOTA5LTAxLTI5IDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWyAwLCAxLCBdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZU9sZGVyRGF0ZSA9PiAnMTkwOC0xMi0wMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFtdLAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnU2VhcmNoIGZvciBBY3R1YWxFbmRUaW1lTmV3ZXJEYXRlIGFuZCBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZU5ld2VyRGF0ZSA9PiAnMTkwOS0xMi0wMSAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBBY3R1YWxFbmRUaW1lT2xkZXJEYXRlID0+ICcxOTA4LTEyLTMxIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gW10sCiAgICB9LAoKKTsKCm15ICRUU1RDb3VudGVyID0gMTsKbXkgQFRTVFdvcmtPcmRlcklEczsKVFNURVNUOgpmb3IgbXkgJFRTVGVzdCAoQFRpbWVTZWFyY2hUZXN0cykgewogICAgbXkgJFNvdXJjZURhdGEgICAgPSAkVFNUZXN0LT57U291cmNlRGF0YX07CiAgICBteSAkUmVmZXJlbmNlRGF0YSA9ICRUU1Rlc3QtPntSZWZlcmVuY2VEYXRhfTsKCiAgICBteSAkV29ya09yZGVySUQ7CgogICAgJFNlbGYtPlRydWUoCiAgICAgICAgMSwKICAgICAgICAiVGVzdCAkVGVzdENvdW50OiAkVFNUZXN0LT57RGVzY3JpcHRpb259IChUU1Rlc3QgY2FzZTogJFRTVENvdW50ZXIpIiwKICAgICk7CgogICAgaWYgKCAkU291cmNlRGF0YS0+e1dvcmtPcmRlckFkZH0gKSB7CiAgICAgICAgJFdvcmtPcmRlcklEID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyQWRkKAogICAgICAgICAgICAleyAkU291cmNlRGF0YS0+e1dvcmtPcmRlckFkZH0gfSwKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJFRpbWVTZWFyY2hUZXN0SUQsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gV29ya09yZGVyQWRkIiwKICAgICAgICApOwoKICAgICAgICBwdXNoIEBUU1RXb3JrT3JkZXJJRHMsICAgICAgICAgICAgICRXb3JrT3JkZXJJRDsKICAgICAgICBwdXNoIEB7ICRJRHNUb0RlbGV0ZXtXb3JrT3JkZXJ9IH0sICRXb3JrT3JkZXJJRDsKICAgIH0KCiAgICBteSAkU2VhcmNoUmVzdWx0OwogICAgaWYgKCAkU291cmNlRGF0YS0+e1dvcmtPcmRlclNlYXJjaH0gKSB7CiAgICAgICAgJFNlYXJjaFJlc3VsdCA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclNlYXJjaCgKICAgICAgICAgICAgJXsgJFNvdXJjZURhdGEtPntXb3JrT3JkZXJTZWFyY2h9IH0sCiAgICAgICAgICAgIENoYW5nZUlEcyA9PiBbJFRpbWVTZWFyY2hUZXN0SURdLAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2VhcmNoUmVzdWx0ICYmIHJlZiAkU2VhcmNoUmVzdWx0IGVxICdBUlJBWScsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IFdvcmtPcmRlclNlYXJjaCgpIC0gTGlzdCBpcyBhbiBhcnJheSByZWZlcmVuY2UuIiwKICAgICAgICApOwoKICAgICAgICBuZXh0IFRTVEVTVCBpZiAhJFNlYXJjaFJlc3VsdDsKCiAgICAgICAgIyBjaGVjayBudW1iZXIgb2YgZm91bmRlZCBjaGFuZ2UKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgIHNjYWxhciBAeyRTZWFyY2hSZXN1bHR9LAogICAgICAgICAgICBzY2FsYXIgQHskUmVmZXJlbmNlRGF0YX0sCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IFdvcmtPcmRlclNlYXJjaCgpIC0gY29ycmVjdCBudW1iZXIgb2YgZm91bmQgY2hhbmdlcyIsCiAgICAgICAgKTsKCiAgICAgICAgIyBtYXAgYXJyYXkgaW5kZXggdG8gV29ya09yZGVySUQKICAgICAgICBteSBAUmVzdWx0V29ya09yZGVySURzOwogICAgICAgIGZvciBteSAkUmVzdWx0V29ya09yZGVySUQgKCBAeyRSZWZlcmVuY2VEYXRhfSApIHsKICAgICAgICAgICAgcHVzaCBAUmVzdWx0V29ya09yZGVySURzLCAkVFNUV29ya09yZGVySURzWyRSZXN1bHRXb3JrT3JkZXJJRF07CiAgICAgICAgfQoKICAgICAgICAjIHR1cm4gb2ZmIGFsbCBwcmV0dHkgcHJpbnQKICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOwogICAgICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OlVzZXFxICA9IDE7CgogICAgICAgICMgZHVtcCB0aGUgYXR0cmlidXRlIGZyb20gV29ya09yZGVyU2VhcmNoKCkKICAgICAgICBteSAkU2VhcmNoUmVzdWx0RHVtcCA9IERhdGE6OkR1bXBlcjo6RHVtcGVyKCBzb3J0IEB7JFNlYXJjaFJlc3VsdH0gKTsgICAgIyMgbm8gY3JpdGljCgogICAgICAgICMgZHVtcCB0aGUgcmVmZXJlbmNlIGF0dHJpYnV0ZQogICAgICAgIG15ICRSZWZlcmVuY2VEdW1wID0gRGF0YTo6RHVtcGVyOjpEdW1wZXIoIHNvcnQgQFJlc3VsdFdvcmtPcmRlcklEcyApOyAgICAjIyBubyBjcml0aWMKCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VhcmNoUmVzdWx0RHVtcCwKICAgICAgICAgICAgJFJlZmVyZW5jZUR1bXAsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIFdvcmtPcmRlclNlYXJjaCgpOiAiCiAgICAgICAgICAgICAgICAuIERhdGE6OkR1bXBlcjo6RHVtcGVyKCAkU291cmNlRGF0YS0+e1dvcmtPcmRlclNlYXJjaH0gKSAgICAgICAgICMjIG5vIGNyaXRpYwogICAgICAgICAgICAgICAgLiAkU2VhcmNoUmVzdWx0RHVtcCwKICAgICAgICApOwogICAgfQoKICAgICRUZXN0Q291bnQrKzsKICAgICRUU1RDb3VudGVyKys7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyB0ZXN0IFdvcmtPcmRlckNoYW5nZVRpbWVHZXQKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwpteSBAV09DVEdUZXN0cyA9ICgKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAndGVzdCBmb3IgV29ya09yZGVyQ2hhbmdlVGltZUdldCB3aXRob3V0IHRpbWVzLicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0ID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICdQbGFubmVkU3RhcnRUaW1lJyA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnUGxhbm5lZEVuZFRpbWUnICAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ0FjdHVhbFN0YXJ0VGltZScgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICdBY3R1YWxFbmRUaW1lJyAgICA9PiAnJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ3Rlc3QgZm9yIFdvcmtPcmRlckNoYW5nZVRpbWVHZXQgd2l0aCBhbGwgdGltZXMnLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnMjAwOS0xMC0wMSAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZSAgID0+ICcyMDA5LTEwLTAyIDIzOjU5OjU5JywKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZSAgPT4gJzIwMDktMTAtMDEgMDA6MDg6MDAnLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgICA9PiAnMjAwOS0xMC0wMiAwMDoxODowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQ2hhbmdlVGltZUdldCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAnUGxhbm5lZFN0YXJ0VGltZScgPT4gJzIwMDktMTAtMDEgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgICAgICdQbGFubmVkRW5kVGltZScgICA9PiAnMjAwOS0xMC0wMiAyMzo1OTo1OScsCiAgICAgICAgICAgICAgICAgICAgJ0FjdHVhbFN0YXJ0VGltZScgID0+ICcyMDA5LTEwLTAxIDAwOjA4OjAwJywKICAgICAgICAgICAgICAgICAgICAnQWN0dWFsRW5kVGltZScgICAgPT4gJzIwMDktMTAtMDIgMDA6MTg6MDAnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAndGVzdCBmb3IgV29ya09yZGVyQ2hhbmdlVGltZUdldCBvbmx5IHdpdGggcGxhbm5lZCB0aW1lcycsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlckFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lID0+ICcyMDA5LTEwLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIFBsYW5uZWRFbmRUaW1lICAgPT4gJzIwMDktMTAtMDIgMjM6NTk6NTknLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckNoYW5nZVRpbWVHZXQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJ1BsYW5uZWRTdGFydFRpbWUnID0+ICcyMDA5LTEwLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgICAgICAnUGxhbm5lZEVuZFRpbWUnICAgPT4gJzIwMDktMTAtMDIgMjM6NTk6NTknLAogICAgICAgICAgICAgICAgICAgICdBY3R1YWxTdGFydFRpbWUnICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnQWN0dWFsRW5kVGltZScgICAgPT4gJycsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+CiAgICAgICAgICAgICd0ZXN0IGZvciBXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0IG9ubHkgd2l0aCBwbGFubmVkIHRpbWVzIFBsYW5uZWRTdGFydFRpbWUgPSBQbGFubmVkRW5kVGltZScsCiAgICAgICAgU291cmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyQWRkRmFpbHMgPT4gMSwKICAgICAgICAgICAgV29ya09yZGVyQWRkICAgICAgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnMjAwOS0xMC0wMSAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZSAgID0+ICcyMDA5LTEwLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0ID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICdQbGFubmVkU3RhcnRUaW1lJyA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnUGxhbm5lZEVuZFRpbWUnICAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ0FjdHVhbFN0YXJ0VGltZScgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICdBY3R1YWxFbmRUaW1lJyAgICA9PiAnJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgJ3Rlc3QgZm9yIFdvcmtPcmRlckNoYW5nZVRpbWVHZXQgb25seSB3aXRoIHBsYW5uZWQgdGltZXMgUGxhbm5lZFN0YXJ0VGltZSA+IFBsYW5uZWRFbmRUaW1lJywKICAgICAgICBTb3VyY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJBZGRGYWlscyA9PiAxLAogICAgICAgICAgICBXb3JrT3JkZXJBZGQgICAgICA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lID0+ICcyMDA5LTEwLTAxIDAwOjAwOjAxJywKICAgICAgICAgICAgICAgIFBsYW5uZWRFbmRUaW1lICAgPT4gJzIwMDktMTAtMDEgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckNoYW5nZVRpbWVHZXQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJ1BsYW5uZWRTdGFydFRpbWUnID0+ICcnLAogICAgICAgICAgICAgICAgICAgICdQbGFubmVkRW5kVGltZScgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnQWN0dWFsU3RhcnRUaW1lJyAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ0FjdHVhbEVuZFRpbWUnICAgID0+ICcnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAndGVzdCBmb3IgV29ya09yZGVyQ2hhbmdlVGltZUdldCBvbmx5IHdpdGggUGxhbm5lZFN0YXJ0VGltZScsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlckFkZEZhaWxzID0+IDEsCiAgICAgICAgICAgIFdvcmtPcmRlckFkZCAgICAgID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWUgPT4gJzIwMDktMTAtMDEgMDA6MDA6MDAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckNoYW5nZVRpbWVHZXQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJ1BsYW5uZWRTdGFydFRpbWUnID0+ICcnLAogICAgICAgICAgICAgICAgICAgICdQbGFubmVkRW5kVGltZScgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnQWN0dWFsU3RhcnRUaW1lJyAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ0FjdHVhbEVuZFRpbWUnICAgID0+ICcnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAndGVzdCBmb3IgV29ya09yZGVyQ2hhbmdlVGltZUdldCBvbmx5IHdpdGggUGxhbm5lZEVuZFRpbWUnLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJBZGRGYWlscyA9PiAxLAogICAgICAgICAgICBXb3JrT3JkZXJBZGQgICAgICA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWUgPT4gJzIwMDktMTAtMDIgMjM6NTk6NTknLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFdvcmtPcmRlckNoYW5nZVRpbWVHZXQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICAgICAgUmVzdWx0RGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJ1BsYW5uZWRTdGFydFRpbWUnID0+ICcnLAogICAgICAgICAgICAgICAgICAgICdQbGFubmVkRW5kVGltZScgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnQWN0dWFsU3RhcnRUaW1lJyAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ0FjdHVhbEVuZFRpbWUnICAgID0+ICcnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAndGVzdCBmb3IgV29ya09yZGVyQ2hhbmdlVGltZUdldCBvbmx5IHdpdGggQWN0dWFsU3RhcnRUaW1lJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQWN0dWFsU3RhcnRUaW1lID0+ICcyMDA5LTEwLTAxIDAwOjA4OjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0ID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICdQbGFubmVkU3RhcnRUaW1lJyA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnUGxhbm5lZEVuZFRpbWUnICAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ0FjdHVhbFN0YXJ0VGltZScgID0+ICcyMDA5LTEwLTAxIDAwOjA4OjAwJywKICAgICAgICAgICAgICAgICAgICAnQWN0dWFsRW5kVGltZScgICAgPT4gJycsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICd0ZXN0IGZvciBXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0IG9ubHkgd2l0aCBBY3R1YWxFbmRUaW1lJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyQWRkRmFpbHMgPT4gMSwKICAgICAgICAgICAgV29ya09yZGVyQWRkICAgICAgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSA9PiAnMjAwOS0xMC0wMSAwMDowODowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQ2hhbmdlVGltZUdldCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAnUGxhbm5lZFN0YXJ0VGltZScgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ1BsYW5uZWRFbmRUaW1lJyAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICdBY3R1YWxTdGFydFRpbWUnICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnQWN0dWFsRW5kVGltZScgICAgPT4gJycsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICd0ZXN0IGZvciBXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0IG9ubHkgd2l0aCBhY3R1YWwgdGltZXMnLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWUgPT4gJzIwMDktMTAtMDEgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgID0+ICcyMDA5LTEwLTAyIDIzOjU5OjU5JywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0ID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICdQbGFubmVkU3RhcnRUaW1lJyA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnUGxhbm5lZEVuZFRpbWUnICAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ0FjdHVhbFN0YXJ0VGltZScgID0+ICcyMDA5LTEwLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgICAgICAnQWN0dWFsRW5kVGltZScgICAgPT4gJzIwMDktMTAtMDIgMjM6NTk6NTknLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAndGVzdCBmb3IgV29ya09yZGVyQ2hhbmdlVGltZUdldCBvbmx5IHdpdGggQWN0dWFsU3RhcnRUaW1lID0gQWN0dWFsRW5kVGltZScsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBDaGFuZ2VBZGQgPT4gewogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFdvcmtPcmRlckFkZEZhaWxzID0+IDEsCiAgICAgICAgICAgIFdvcmtPcmRlckFkZCAgICAgID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQWN0dWFsU3RhcnRUaW1lID0+ICcyMDA5LTEwLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIEFjdHVhbEVuZFRpbWUgICA9PiAnMjAwOS0xMC0wMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQ2hhbmdlVGltZUdldCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAnUGxhbm5lZFN0YXJ0VGltZScgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ1BsYW5uZWRFbmRUaW1lJyAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICdBY3R1YWxTdGFydFRpbWUnICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnQWN0dWFsRW5kVGltZScgICAgPT4gJycsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICd0ZXN0IGZvciBXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0IG9ubHkgd2l0aCBBY3R1YWxTdGFydFRpbWUgPiBBY3R1YWxFbmRUaW1lJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyQWRkRmFpbHMgPT4gMSwKICAgICAgICAgICAgV29ya09yZGVyQWRkICAgICAgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBY3R1YWxTdGFydFRpbWUgPT4gJzIwMDktMTAtMDEgMDA6MDA6MDEnLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgID0+ICcyMDA5LTEwLTAxIDAwOjAwOjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0ID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICdQbGFubmVkU3RhcnRUaW1lJyA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnUGxhbm5lZEVuZFRpbWUnICAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ0FjdHVhbFN0YXJ0VGltZScgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICdBY3R1YWxFbmRUaW1lJyAgICA9PiAnJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgJ3Rlc3QgZm9yIFdvcmtPcmRlckNoYW5nZVRpbWVHZXQgd2l0aCBhbGwgdGltZXMgKHdpdGggcmVzZXJ2ZWQgdGltZSBQbGFubmVkU3RhcnRUaW1lKScsCiAgICAgICAgU291cmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyQWRkRmFpbHMgPT4gMSwKICAgICAgICAgICAgV29ya09yZGVyQWRkICAgICAgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnOTk5OS0wMS0wMSAwMDowMDowMCcsCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lID0+ICc5OTk5LTAxLTAxIDAwOjAwOjAxJywKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZSAgPT4gJzIwMDktMTAtMDEgMDA6MDg6MDAnLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgICA9PiAnMjAwOS0xMC0wMiAwMDoxODowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQ2hhbmdlVGltZUdldCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAnUGxhbm5lZFN0YXJ0VGltZScgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ1BsYW5uZWRFbmRUaW1lJyAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICdBY3R1YWxTdGFydFRpbWUnICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnQWN0dWFsRW5kVGltZScgICAgPT4gJycsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+CiAgICAgICAgICAgICd0ZXN0IGZvciBXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0IHdpdGggYWxsIHRpbWVzICh3aXRoIHJlc2VydmVkIHRpbWUgUGxhbm5lZEVuZFRpbWUpJywKICAgICAgICBTb3VyY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJBZGRGYWlscyA9PiAxLAogICAgICAgICAgICBXb3JrT3JkZXJBZGQgICAgICA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lID0+ICcyMDA5LTEwLTAxIDAxOjAxOjAwJywKICAgICAgICAgICAgICAgIFBsYW5uZWRTdGFydFRpbWUgPT4gJzk5OTktMDEtMDEgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgQWN0dWFsU3RhcnRUaW1lICA9PiAnMjAwOS0xMC0wMSAwMDowODowMCcsCiAgICAgICAgICAgICAgICBBY3R1YWxFbmRUaW1lICAgID0+ICcyMDA5LTEwLTAyIDAwOjE4OjAwJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0ID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFJlc3VsdERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICdQbGFubmVkU3RhcnRUaW1lJyA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnUGxhbm5lZEVuZFRpbWUnICAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ0FjdHVhbFN0YXJ0VGltZScgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICdBY3R1YWxFbmRUaW1lJyAgICA9PiAnJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgJ3Rlc3QgZm9yIFdvcmtPcmRlckNoYW5nZVRpbWVHZXQgd2l0aCBhbGwgdGltZXMgKHdpdGggcmVzZXJ2ZWQgdGltZSBBY3R1YWxTdGFydFRpbWUpJywKICAgICAgICBTb3VyY2VEYXRhID0+IHsKICAgICAgICAgICAgQ2hhbmdlQWRkID0+IHsKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBXb3JrT3JkZXJBZGRGYWlscyA9PiAxLAogICAgICAgICAgICBXb3JrT3JkZXJBZGQgICAgICA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lID0+ICcyMDA5LTEwLTAxIDAxOjAxOjAwJywKICAgICAgICAgICAgICAgIFBsYW5uZWRFbmRUaW1lICAgPT4gJzIwMDktMTAtMDEgMDE6MDE6MDEnLAogICAgICAgICAgICAgICAgQWN0dWFsU3RhcnRUaW1lICA9PiAnOTk5OS0wMS0wMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQ2hhbmdlVGltZUdldCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAnUGxhbm5lZFN0YXJ0VGltZScgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ1BsYW5uZWRFbmRUaW1lJyAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICdBY3R1YWxTdGFydFRpbWUnICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnQWN0dWFsRW5kVGltZScgICAgPT4gJycsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+CiAgICAgICAgICAgICdlc3QgZm9yIFdvcmtPcmRlckNoYW5nZVRpbWVHZXQgd2l0aCBhbGwgdGltZXMgKHdpdGggcmVzZXJ2ZWQgdGltZSBBY3R1YWxFbmRUaW1lKScsCiAgICAgICAgU291cmNlRGF0YSA9PiB7CiAgICAgICAgICAgIENoYW5nZUFkZCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgV29ya09yZGVyQWRkRmFpbHMgPT4gMSwKICAgICAgICAgICAgV29ya09yZGVyQWRkICAgICAgPT4gewogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnMjAwOS0xMC0wMSAwMTowMTowMCcsCiAgICAgICAgICAgICAgICBQbGFubmVkRW5kVGltZSAgID0+ICcyMDA5LTEwLTAxIDAxOjAxOjAxJywKICAgICAgICAgICAgICAgIEFjdHVhbFN0YXJ0VGltZSAgPT4gJzIwMDktMTAtMDEgMDE6MDE6MDAnLAogICAgICAgICAgICAgICAgQWN0dWFsRW5kVGltZSAgICA9PiAnOTk5OS0wMS0wMSAwMDowMDowMCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgV29ya09yZGVyQ2hhbmdlVGltZUdldCA9PiB7CiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgICAgICAgICBSZXN1bHREYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAnUGxhbm5lZFN0YXJ0VGltZScgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgJ1BsYW5uZWRFbmRUaW1lJyAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICdBY3R1YWxTdGFydFRpbWUnICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAnQWN0dWFsRW5kVGltZScgICAgPT4gJycsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAopOwoKbXkgJFdPQ1RHVGVzdENvdW50ID0gMTsKZm9yIG15ICRXT0NUR1Rlc3QgKEBXT0NUR1Rlc3RzKSB7CiAgICBteSAkU291cmNlRGF0YSAgICA9ICRXT0NUR1Rlc3QtPntTb3VyY2VEYXRhfTsKICAgIG15ICRSZWZlcmVuY2VEYXRhID0gJFdPQ1RHVGVzdC0+e1JlZmVyZW5jZURhdGF9OwoKICAgIG15ICRDaGFuZ2VJRDsKICAgIG15ICRXb3JrT3JkZXJJRDsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAxLAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6ICRXT0NUR1Rlc3QtPntEZXNjcmlwdGlvbn0gKFdPQ1RHVGVzdCBjYXNlOiAkV09DVEdUZXN0Q291bnQpIiwKICAgICk7CgogICAgaWYgKCAkU291cmNlRGF0YS0+e0NoYW5nZUFkZH0gKSB7CiAgICAgICAgJENoYW5nZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICAleyAkU291cmNlRGF0YS0+e0NoYW5nZUFkZH0gfSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBDaGFuZ2VBZGQiLAogICAgICAgICk7CgogICAgICAgIGlmICgkQ2hhbmdlSUQpIHsKICAgICAgICAgICAgJFRlc3RlZENoYW5nZUlEeyRDaGFuZ2VJRH0gPSAxOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRTb3VyY2VEYXRhLT57V29ya09yZGVyQWRkfSApIHsKICAgICAgICAkV29ya09yZGVySUQgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgICV7ICRTb3VyY2VEYXRhLT57V29ya09yZGVyQWRkfSB9LAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkU291cmNlRGF0YS0+e1dvcmtPcmRlckFkZEZhaWxzfSApIHsKICAgICAgICAgICAgJFNlbGYtPkZhbHNlKAogICAgICAgICAgICAgICAgJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gV29ya09yZGVyQWRkIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFdvcmtPcmRlcklELAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gV29ya09yZGVyQWRkIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcHVzaCBAeyAkSURzVG9EZWxldGV7V29ya09yZGVyfSB9LCAkV29ya09yZGVySUQ7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJFJlZmVyZW5jZURhdGEtPntXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0fSApIHsKICAgICAgICBteSAkVGltZSA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckNoYW5nZVRpbWVHZXQoCiAgICAgICAgICAgICV7ICRSZWZlcmVuY2VEYXRhLT57V29ya09yZGVyQ2hhbmdlVGltZUdldH0gfSwKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgcmVmICRUaW1lLAogICAgICAgICAgICAnSEFTSCcsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IHwtIFdvcmtPcmRlckNoYW5nZVRpbWVHZXQoKSIsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICgKICAgICAgICAgICAgICAgIHJlZiAkVGltZSBlcSAnSEFTSCcKICAgICAgICAgICAgICAgICAgICAmJiAleyRUaW1lfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgfHwgMCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogfC0gV29ya09yZGVyQ2hhbmdlVGltZUdldCgpIC0gSGFzaFJlZiB3aXRoIGNvbnRlbnQiLAogICAgICAgICk7CgogICAgICAgIGlmICgKICAgICAgICAgICAgcmVmICRUaW1lIGVxICdIQVNIJwogICAgICAgICAgICAmJiAleyRUaW1lfQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBUZXN0IGZvciByaWdodCB2YWx1ZXMgaW4gcmVzdWx0CiAgICAgICAgICAgIFRJTUVWQUxVRToKICAgICAgICAgICAgZm9yIG15ICRUaW1lVHlwZSAoIHNvcnQga2V5cyAleyRUaW1lfSApIHsKICAgICAgICAgICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgICAgICAgICAkVGltZS0+eyRUaW1lVHlwZX0sCiAgICAgICAgICAgICAgICAgICAgJFJlZmVyZW5jZURhdGEtPntXb3JrT3JkZXJDaGFuZ2VUaW1lR2V0fS0+e1Jlc3VsdERhdGF9LT57JFRpbWVUeXBlfSwKICAgICAgICAgICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiB8LSBjaGVjayBUaW1lUmVzdWx0ICgkVGltZVR5cGUpIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJFRlc3RDb3VudCsrOwogICAgJFdPQ1RHVGVzdENvdW50Kys7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyB0ZXN0aW5nIHRoZSBtZXRob2QgUGVybWlzc2lvbigpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCm15ICgkUGVybWlzc2lvblRlc3RXb3JrT3JkZXJJRCkgPSBrZXlzICV7ICRXb3JrT3JkZXJJREZvckNoYW5nZUlEeyRQZXJtaXNzaW9uVGVzdElEfSB9OwoKIyBnZXQgbWFwcGluZyBvZiB0aGUgZ3JvdXAgbmFtZSB0byB0aGUgZ3JvdXAgaWQKbXkgJUdyb3VwTmFtZTJJRCA9IHJldmVyc2UgJEdyb3VwT2JqZWN0LT5Hcm91cExpc3QoIFZhbGlkID0+IDEgKTsKCm15IEBQZXJtaXNzaW9uVGVzdHMgPSAoCgogICAgIyBQZXJtaXNzaW9uIHRlc3QgTm8uIDEKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnSW5pdGlhbGx5IG5vIHByaXYgaW4gYW55IGdyb3VwJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgUGVybWlzc2lvbnMgPT4gewogICAgICAgICAgICAgICAgMCA9PiB7CiAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICBydyA9PiAwCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICBydyA9PiAwCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgICMgUGVybWlzc2lvbiB0ZXN0IE5vLiAyCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ3JvIGluIGl0c20tY2hhbmdlJywKICAgICAgICBTb3VyY2VEYXRhICA9PiB7CiAgICAgICAgICAgIEdyb3VwTWVtYmVyQWRkID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHSUQgICAgICAgID0+ICRHcm91cE5hbWUySUR7J2l0c20tY2hhbmdlJ30sCiAgICAgICAgICAgICAgICAgICAgVUlEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcm8gPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBQZXJtaXNzaW9ucyA9PiB7CiAgICAgICAgICAgICAgICAwID0+IHsKICAgICAgICAgICAgICAgICAgICBybyA9PiAxLAogICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIFBlcm1pc3Npb24gdGVzdCBOby4gMwogICAgIyBUaGUgdHlwZSAncncnIGltcGxpZXMgYWxsIG90aGVyIHR5cGVzLiBTZWUgS2VybmVsOjpTeXN0ZW06Okdyb3VwX0dldFR5cGVTdHJpbmcoKQogICAgIyBUaGVyZWZvcmUgVXNlcjEgZWZmZWN0aXZlbHkgaGFzICdybycgaW4gJ2l0c20tY2hhbmdlJyBhbmQKICAgICMgdGhlIENoYW5nZUFnZW50Q2hlY2sgUGVybWlzc2lvbiBtb2R1bGUgZ2l2ZXMgJ3JvJyBhY2Nlc3MuCiAgICAjIE5vdGUgdGhhdCBXb3JrT3JkZXJBZ2VudENoZWNrIGdpdmVzICdydycgYWNjZXNzIG9ubHkgdG8gdGhlIHdvcmtvcmRlciBhZ2VudC4KICAgIHsKCiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ3J3IGluIGl0c20tY2hhbmdlIGdyYW50cyBybywgZ3JhbnRzIHJ3IHRvIHdvcmtvcmRlciBhZ2VudCcsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBHcm91cE1lbWJlckFkZCA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZSd9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZSd9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMV0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgUGVybWlzc2lvbnMgPT4gewogICAgICAgICAgICAgICAgMCA9PiB7CiAgICAgICAgICAgICAgICAgICAgcm8gPT4gMSwKICAgICAgICAgICAgICAgICAgICBydyA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIHJvID0+IDEsCiAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBQZXJtaXNzaW9uIHRlc3QgTm8uIDQKICAgICMgcmVzZXQgVXNlcjEgYWZ0ZXIgdGhlIHByZXZpb3VzIHRlc3QKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAncmV2b2tlIHByaXZzIGZvciB1c2VyIDEnLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgR3JvdXBNZW1iZXJBZGQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UnfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzFdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICB9LAoKICAgICMgUGVybWlzc2lvbiB0ZXN0IE5vLiA1CiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ3JvIGluIGl0c20tY2hhbmdlLW1hbmFnZXInLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgR3JvdXBNZW1iZXJBZGQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UnfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UtbWFuYWdlcid9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgUGVybWlzc2lvbnMgPT4gewogICAgICAgICAgICAgICAgMCA9PiB7CiAgICAgICAgICAgICAgICAgICAgcm8gPT4gMSwKICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBQZXJtaXNzaW9uIHRlc3QgTm8uIDYKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiA9PiAncncgaW4gaXRzbS1jaGFuZ2UtbWFuYWdlcicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBHcm91cE1lbWJlckFkZCA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZSd9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZS1tYW5hZ2VyJ30sCiAgICAgICAgICAgICAgICAgICAgVUlEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcm8gPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgcncgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBQZXJtaXNzaW9ucyA9PiB7CiAgICAgICAgICAgICAgICAwID0+IHsKICAgICAgICAgICAgICAgICAgICBybyA9PiAxLAogICAgICAgICAgICAgICAgICAgIHJ3ID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIFBlcm1pc3Npb24gdGVzdCBOby4gNwogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdybyBpbiBpdHNtLWNoYW5nZS1idWlsZGVyLCBVc2VyIDAgaXMgdGhlIGJ1aWxkZXInLAogICAgICAgIFNvdXJjZURhdGEgID0+IHsKICAgICAgICAgICAgR3JvdXBNZW1iZXJBZGQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UnfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UtbWFuYWdlcid9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZS1idWlsZGVyJ30sCiAgICAgICAgICAgICAgICAgICAgVUlEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcm8gPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICBQZXJtaXNzaW9ucyA9PiB7CiAgICAgICAgICAgICAgICAwID0+IHsKICAgICAgICAgICAgICAgICAgICBybyA9PiAxLAogICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICAjIFBlcm1pc3Npb24gdGVzdCBOby4gOAogICAgewogICAgICAgIERlc2NyaXB0aW9uID0+ICdydyBpbiBpdHNtLWNoYW5nZS1idWlsZGVyLCBBZ2VudCBpcyB0aGUgYnVpbGRlcicsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBHcm91cE1lbWJlckFkZCA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZSd9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZS1tYW5hZ2VyJ30sCiAgICAgICAgICAgICAgICAgICAgVUlEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHSUQgICAgICAgID0+ICRHcm91cE5hbWUySUR7J2l0c20tY2hhbmdlLWJ1aWxkZXInfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAxLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiB7CiAgICAgICAgICAgIFBlcm1pc3Npb25zID0+IHsKICAgICAgICAgICAgICAgIDAgPT4gewogICAgICAgICAgICAgICAgICAgIHJvID0+IDEsCiAgICAgICAgICAgICAgICAgICAgcncgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgICMgUGVybWlzc2lvbiB0ZXN0IE5vLiA5CiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gInJvIGluIGl0c20tY2hhbmdlLWJ1aWxkZXIsIHVzZXIgMSBpc24ndCB0aGUgYnVpbGRlciIsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBHcm91cE1lbWJlckFkZCA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZSd9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZS1tYW5hZ2VyJ30sCiAgICAgICAgICAgICAgICAgICAgVUlEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHSUQgICAgICAgID0+ICRHcm91cE5hbWUySUR7J2l0c20tY2hhbmdlLWJ1aWxkZXInfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UtYnVpbGRlcid9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMV0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgUGVybWlzc2lvbnMgPT4gewogICAgICAgICAgICAgICAgMCA9PiB7CiAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgIyBQZXJtaXNzaW9uIHRlc3QgTm8uIDEwCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4gInJ3IGluIGl0c20tY2hhbmdlLWJ1aWxkZXIsIHVzZXIgMSBpc24ndCB0aGUgYnVpbGRlciIsCiAgICAgICAgU291cmNlRGF0YSAgPT4gewogICAgICAgICAgICBHcm91cE1lbWJlckFkZCA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZSd9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMF0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBOYW1lMklEeydpdHNtLWNoYW5nZS1tYW5hZ2VyJ30sCiAgICAgICAgICAgICAgICAgICAgVUlEICAgICAgICA9PiAkVXNlcklEc1swXSwKICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHSUQgICAgICAgID0+ICRHcm91cE5hbWUySUR7J2l0c20tY2hhbmdlLWJ1aWxkZXInfSwKICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySURzWzBdLAogICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBybyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwTmFtZTJJRHsnaXRzbS1jaGFuZ2UtYnVpbGRlcid9LAogICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFVzZXJJRHNbMV0sCiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ3ID0+IDAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgUGVybWlzc2lvbnMgPT4gewogICAgICAgICAgICAgICAgMCA9PiB7CiAgICAgICAgICAgICAgICAgICAgcm8gPT4gMCwKICAgICAgICAgICAgICAgICAgICBydyA9PiAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIHJvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgcncgPT4gMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCik7CgpteSAkUGVybWlzc2lvblRlc3RDb3VudGVyID0gMTsKZm9yIG15ICRUZXN0IChAUGVybWlzc2lvblRlc3RzKSB7CgogICAgbXkgJFNvdXJjZURhdGEgICAgPSAkVGVzdC0+e1NvdXJjZURhdGF9OwogICAgbXkgJFJlZmVyZW5jZURhdGEgPSAkVGVzdC0+e1JlZmVyZW5jZURhdGF9OwoKICAgICRTZWxmLT5UcnVlKAogICAgICAgIDEsCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogJFRlc3QtPntEZXNjcmlwdGlvbn0gKFBlcm1pc3Npb24gVGVzdCBjYXNlOiAkUGVybWlzc2lvblRlc3RDb3VudGVyKSIsCiAgICApOwoKICAgICMgZXhlY3V0ZSB0aGUgc291cmNlIG1vZGlmaWNhdGlvbnMKICAgICRTb3VyY2VEYXRhLT57R3JvdXBNZW1iZXJBZGR9IHx8PSBbXTsKICAgIGZvciBteSAkUGFyYW1zICggQHsgJFNvdXJjZURhdGEtPntHcm91cE1lbWJlckFkZH0gfSApIHsKCiAgICAgICAgIyBtb2RpZnkgdGhlIGdyb3VwIG1lbWJlcnNoaXAKICAgICAgICBteSAkU3VjY2VzcyA9ICRHcm91cE9iamVjdC0+R3JvdXBNZW1iZXJBZGQoCiAgICAgICAgICAgICV7JFBhcmFtc30sCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiUGVybWlzc2lvbiB0ZXN0ICRQZXJtaXNzaW9uVGVzdENvdW50ZXI6IEdyb3VwTWVtYmVyQWRkKCkiLAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayB0aGUgcmVzdWx0CiAgICBpZiAoICRSZWZlcmVuY2VEYXRhLT57UGVybWlzc2lvbnN9ICkgewogICAgICAgIGZvciBteSAkVXNlckluZGV4ICggc29ydCBrZXlzICV7ICRSZWZlcmVuY2VEYXRhLT57UGVybWlzc2lvbnN9IH0gKSB7CiAgICAgICAgICAgIG15ICRQcml2cyA9ICRSZWZlcmVuY2VEYXRhLT57UGVybWlzc2lvbnN9LT57JFVzZXJJbmRleH07CiAgICAgICAgICAgIGZvciBteSAkVHlwZSAoIHNvcnQga2V5cyAleyRQcml2c30gKSB7CiAgICAgICAgICAgICAgICAkV29ya09yZGVyT2JqZWN0LT57RGVidWd9ID0gMTA7CiAgICAgICAgICAgICAgICBteSAkQWNjZXNzID0gJFdvcmtPcmRlck9iamVjdC0+UGVybWlzc2lvbigKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICA9PiAkVHlwZSwKICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkUGVybWlzc2lvblRlc3RXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkVXNlcklEc1skVXNlckluZGV4XSwKICAgICAgICAgICAgICAgICAgICBDYWNoZWQgICAgICA9PiAwLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGlmICggJFByaXZzLT57JFR5cGV9ICkgewogICAgICAgICAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgICAgICAgICAkQWNjZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAiUGVybWlzc2lvbiB0ZXN0ICRQZXJtaXNzaW9uVGVzdENvdW50ZXI6IFVzZXIgJFVzZXJJbmRleCwgd2l0aCBVc2VySUQgJFVzZXJJRHNbJFVzZXJJbmRleF0sIGhhcyAkVHlwZSBhY2Nlc3MiLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgICAgICAgICAgICAgICAgICRBY2Nlc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICJQZXJtaXNzaW9uIHRlc3QgJFBlcm1pc3Npb25UZXN0Q291bnRlcjogVXNlciAkVXNlckluZGV4LCB3aXRoIFVzZXJJRCAkVXNlcklEc1skVXNlckluZGV4XSwgaGFzIG5vICRUeXBlIGFjY2VzcyIsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQpjb250aW51ZSB7CiAgICAkUGVybWlzc2lvblRlc3RDb3VudGVyKys7CiAgICAkVGVzdENvdW50Kys7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyB0ZXN0aW5nIHRoZSBtZXRob2QgV29ya09yZGVyUG9zc2libGVTdGF0ZXNHZXQoKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIGNyZWF0ZSBjaGFuZ2UgZm9yIHRoaXMgdGVzdApteSAkQ2hhbmdlSURGb3JQb3NzaWJsZVN0YXRlc1Rlc3QgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICBVc2VySUQgPT4gMSwKKTsKCiMgY3JlYXRlIHdvcmtvcmRlciBmb3IgdGhpcyB0ZXN0Cm15ICRXb3JrT3JkZXJJREZvclBvc3NpYmxlU3RhdGVzVGVzdCA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckFkZCgKICAgIENoYW5nZUlEICAgICAgID0+ICRDaGFuZ2VJREZvclBvc3NpYmxlU3RhdGVzVGVzdCwKICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICBXb3JrT3JkZXJTdGF0ZSA9PiAnYWNjZXB0ZWQnLAopOwoKIyBXaGVuIG5vIFdvcmtPcmRlcklEIGlzIGdpdmVuIFdvcmtPcmRlclBvc3NpYmxlU3RhdGVzR2V0KCkgcmV0dXJucyBhIGxpc3Qgb2YgYWxsIHN0YXRlcy4KbXkgJFBvc3NpYmxlU3RhdGVzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyUG9zc2libGVTdGF0ZXNHZXQoCgogICAgIyAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySURGb3JQb3NzaWJsZVN0YXRlc1Rlc3QsCiAgICBVc2VySUQgPT4gMSwKKSB8fCB7fTsKCiMgZG8gdGhlIGNoZWNrcwpteSBAUG9zc2libGVTdGF0ZUlEc1JlZmVyZW5jZSA9IEBTb3J0ZWRXb3JrT3JkZXJTdGF0ZUlEczsKZm9yIG15ICRQb3NzaWJsZVN0YXRlSUQgKEBQb3NzaWJsZVN0YXRlSURzUmVmZXJlbmNlKSB7CiAgICBteSAoICRGaXJzdEhhc2hSZWYsICRTZWNvbmRIYXNoUmVmICkgPSBncmVwIHsgJF8tPntLZXl9ID09ICRQb3NzaWJsZVN0YXRlSUQgfSBAeyRQb3NzaWJsZVN0YXRlc307CgogICAgIyBhIG1hdGNoIGlzIGV4cGVjdGVkCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkRmlyc3RIYXNoUmVmLAogICAgICAgICJDaGVjayBmb3IgcG9zc2libGUgc3RhdGUgaWQgJFBvc3NpYmxlU3RhdGVJRCIsCiAgICApOwoKICAgICMgdGhlIG5hbWUgc2hvdWxkIGFsc28gbWF0Y2gKICAgICRGaXJzdEhhc2hSZWYgfHw9IHt9OwogICAgbXkgJFBvc3NpYmxlU3RhdGVOYW1lID0gJFdvcmtPcmRlclN0YXRlSUQyTmFtZXskUG9zc2libGVTdGF0ZUlEfTsKICAgICRTZWxmLT5JcygKICAgICAgICAkRmlyc3RIYXNoUmVmLT57VmFsdWV9LAogICAgICAgICRQb3NzaWJsZVN0YXRlTmFtZSwKICAgICAgICAiQ2hlY2sgZm9yIHBvc3NpYmxlIHN0YXRlIG5hbWUgJFBvc3NpYmxlU3RhdGVJRCIsCiAgICApOwoKICAgICMgb25seSBvbmUgbWF0Y2ggaXMgZXhwZWN0ZWQKICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAkU2Vjb25kSGFzaFJlZiwKICAgICAgICAiQ2hlY2sgdGhhdCB0aGUgc3RhdGUgaWQgJFBvc3NpYmxlU3RhdGVJRCBpcyByZXR1cm5lZCBvbmx5IG9uY2UuIiwKICAgICk7Cgp9CgojIHRoZXNlIG9iamVjdHMgc2hvdWxkIGJlIGRlbGV0ZWQKcHVzaCBAeyAkSURzVG9EZWxldGV7Q2hhbmdlfSB9LCAgICAkQ2hhbmdlSURGb3JQb3NzaWJsZVN0YXRlc1Rlc3Q7CnB1c2ggQHsgJElEc1RvRGVsZXRle1dvcmtPcmRlcn0gfSwgJFdvcmtPcmRlcklERm9yUG9zc2libGVTdGF0ZXNUZXN0OwoKIyBUT0RPOiBhZGQgdGVzdHMgZm9yIFdvcmtPcmRlclBvc3NpYmxlU3RhdGVzR2V0KCkgd2l0aCBhIFdvcmtPcmRlcklEIGFzIGFyZ3VtZW50CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgdGVzdGluZyBzdXBwb3J0IGZvciBhdHRhY2htZW50cwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIGNyZWF0ZSBjaGFuZ2UgZm9yIHRoaXMgdGVzdApteSAkQ2hhbmdlSURGb3JBdHRhY2htZW50VGVzdCA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgIFVzZXJJRCA9PiAxLAopOwoKIyBjcmVhdGUgd29ya29yZGVyIGZvciB0aGlzIHRlc3QKbXkgJFdvcmtPcmRlcklERm9yQXR0YWNobWVudFRlc3QgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICBDaGFuZ2VJRCAgICAgICA9PiAkQ2hhbmdlSURGb3JBdHRhY2htZW50VGVzdCwKICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICBXb3JrT3JkZXJTdGF0ZSA9PiAnYWNjZXB0ZWQnLAopOwoKIyB0aGVzZSBvYmplY3RzIHNob3VsZCBiZSBkZWxldGVkIGxhdGVyIG9uCnB1c2ggQHsgJElEc1RvRGVsZXRle0NoYW5nZX0gfSwgICAgJENoYW5nZUlERm9yQXR0YWNobWVudFRlc3Q7CnB1c2ggQHsgJElEc1RvRGVsZXRle1dvcmtPcmRlcn0gfSwgJFdvcmtPcmRlcklERm9yQXR0YWNobWVudFRlc3Q7CgojIHZlcmlmeSB0aGF0IGluaXRpYWx5IG5vIGF0dGFjaG1lbnQgZXhpc3RzCm15IEBBdHRhY2htZW50TGlzdCA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckF0dGFjaG1lbnRMaXN0KAogICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklERm9yQXR0YWNobWVudFRlc3QsCiAgICBVc2VySUQgICAgICA9PiAxLAopOwoKJFNlbGYtPklzKAogICAgc2NhbGFyIEBBdHRhY2htZW50TGlzdCwKICAgIDAsCiAgICAnTm8gYXR0YWNobWVudHMgaW5pdGlhbGx5JywKKTsKCiMgZGVmaW5lIGxpc3Qgb2YgdGVzdCBhdHRhY2htZW50cwpteSBAVGVzdEZpbGVMaXN0ID0gKAogICAgewogICAgICAgIEZpbGVuYW1lICAgICAgID0+ICdmaXJzdCBhdHRhY2htZW50JywKICAgICAgICBDb250ZW50ICAgICAgICA9PiAnRmlyc3QgYXR0YWNobWVudCBmcm9tIElUU01Xb3JrT3JkZXIudCcsCiAgICAgICAgQ29udGVudFR5cGUgICAgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgIEF0dGFjaG1lbnRUeXBlID0+ICdXb3JrT3JkZXInLAogICAgfSwKICAgIHsKICAgICAgICBGaWxlbmFtZSAgICAgICA9PiAnc2Vjb25kIGF0dGFjaG1lbnQnLAogICAgICAgIENvbnRlbnQgICAgICAgID0+ICdTZWNvbmQgYXR0YWNobWVudCBmcm9tIElUU01Xb3JrT3JkZXIudCcsCiAgICAgICAgQ29udGVudFR5cGUgICAgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgIEF0dGFjaG1lbnRUeXBlID0+ICdXb3JrT3JkZXInLAogICAgfSwKICAgIHsKICAgICAgICBGaWxlbmFtZSAgICAgICA9PiAnZmlyc3QgcmVwb3J0IGF0dGFjaG1lbnQnLAogICAgICAgIENvbnRlbnQgICAgICAgID0+ICdGaXJzdCByZXBvcnQgYXR0YWNobWVudCBmcm9tIElUU01Xb3JrT3JkZXIudCcsCiAgICAgICAgQ29udGVudFR5cGUgICAgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgIEF0dGFjaG1lbnRUeXBlID0+ICdXb3JrT3JkZXJSZXBvcnQnLAogICAgfSwKICAgIHsKICAgICAgICBGaWxlbmFtZSAgICAgICA9PiAnc2Vjb25kIHJlcG9ydCBhdHRhY2htZW50JywKICAgICAgICBDb250ZW50ICAgICAgICA9PiAnU2Vjb25kIHJlcG9ydCBhdHRhY2htZW50IGZyb20gSVRTTVdvcmtPcmRlci50JywKICAgICAgICBDb250ZW50VHlwZSAgICA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgQXR0YWNobWVudFR5cGUgPT4gJ1dvcmtPcmRlclJlcG9ydCcsCiAgICB9LAopOwoKbXkgJUZpbGVDb3VudDsKZm9yIG15ICRUZXN0RmlsZSAoQFRlc3RGaWxlTGlzdCkgewoKICAgICRGaWxlQ291bnR7ICRUZXN0RmlsZS0+e0F0dGFjaG1lbnRUeXBlfSB9Kys7CgogICAgIyBhZGQgdGhlIGF0dGFjaG1lbnQKICAgIG15ICRBZGRPayA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckF0dGFjaG1lbnRBZGQoCiAgICAgICAgJXskVGVzdEZpbGV9LAogICAgICAgIENoYW5nZUlEICAgID0+ICRDaGFuZ2VJREZvckF0dGFjaG1lbnRUZXN0LAogICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJREZvckF0dGFjaG1lbnRUZXN0LAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJEFkZE9rLAogICAgICAgICJBdHRhY2htZW50ICgkVGVzdEZpbGUtPntBdHRhY2htZW50VHlwZX0pICRGaWxlQ291bnR7ICRUZXN0RmlsZS0+e0F0dGFjaG1lbnRUeXBlfSB9OiBhdHRhY2htZW50IGFkZGVkIiwKICAgICk7CgogICAgbXkgQEF0dGFjaG1lbnRMaXN0OwogICAgaWYgKCAkVGVzdEZpbGUtPntBdHRhY2htZW50VHlwZX0gZXEgJ1dvcmtPcmRlcicgKSB7CgogICAgICAgICMgZ2V0IGF0dGFjaG1lbnQgbGlzdAogICAgICAgIEBBdHRhY2htZW50TGlzdCA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckF0dGFjaG1lbnRMaXN0KAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySURGb3JBdHRhY2htZW50VGVzdCwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkVGVzdEZpbGUtPntBdHRhY2htZW50VHlwZX0gZXEgJ1dvcmtPcmRlclJlcG9ydCcgKSB7CgogICAgICAgICMgZ2V0IGF0dGFjaG1lbnQgbGlzdAogICAgICAgIEBBdHRhY2htZW50TGlzdCA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlclJlcG9ydEF0dGFjaG1lbnRMaXN0KAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySURGb3JBdHRhY2htZW50VGVzdCwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICRTZWxmLT5JcygKICAgICAgICBzY2FsYXIgQEF0dGFjaG1lbnRMaXN0LAogICAgICAgICRGaWxlQ291bnR7ICRUZXN0RmlsZS0+e0F0dGFjaG1lbnRUeXBlfSB9LAogICAgICAgICJBdHRhY2htZW50ICgkVGVzdEZpbGUtPntBdHRhY2htZW50VHlwZX0pICRGaWxlQ291bnR7ICRUZXN0RmlsZS0+e0F0dGFjaG1lbnRUeXBlfSB9OiBudW1iZXIgb2YgYXR0YWNobWVudHMgYWZ0ZXIgYWRkaW5nIiwKICAgICk7CgogICAgIyBnZXQgdGhlIGxhc3QgYWRkZWQgYXR0YWNobWVudCBmaWxlIG5hbWUKICAgIG15ICVBdHRhY2htZW50TG9va3VwID0gbWFwIHsgJF8gPT4gMSB9IEBBdHRhY2htZW50TGlzdDsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQXR0YWNobWVudExvb2t1cHsgJFRlc3RGaWxlLT57RmlsZW5hbWV9IH0sCiAgICAgICAgIkF0dGFjaG1lbnQgKCRUZXN0RmlsZS0+e0F0dGFjaG1lbnRUeXBlfSkgJEZpbGVDb3VudHsgJFRlc3RGaWxlLT57QXR0YWNobWVudFR5cGV9IH06IGZpbGVuYW1lIGZyb20gV29ya09yZGVyQXR0YWNobWVudExpc3QoKSAvIFdvcmtPcmRlclJlcG9ydEF0dGFjaG1lbnRMaXN0KCkiLAogICAgKTsKCiAgICAjIGdldCB0aGUgYXR0YWNobWVudAogICAgbXkgJEF0dGFjaG1lbnQgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50R2V0KAogICAgICAgIFdvcmtPcmRlcklEICAgID0+ICRXb3JrT3JkZXJJREZvckF0dGFjaG1lbnRUZXN0LAogICAgICAgIEZpbGVuYW1lICAgICAgID0+ICRUZXN0RmlsZS0+e0ZpbGVuYW1lfSwKICAgICAgICBBdHRhY2htZW50VHlwZSA9PiAkVGVzdEZpbGUtPntBdHRhY2htZW50VHlwZX0sCiAgICApOwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJEF0dGFjaG1lbnQsCiAgICAgICAgIkF0dGFjaG1lbnQgKCRUZXN0RmlsZS0+e0F0dGFjaG1lbnRUeXBlfSkgJEZpbGVDb3VudHsgJFRlc3RGaWxlLT57QXR0YWNobWVudFR5cGV9IH06IFdvcmtPcmRlckF0dGFjaG1lbnRHZXQoKSByZXR1cm5lZCB0cnVlIiwKICAgICk7CgogICAgIyBjaGVjayBhdHRhY2htZW50IGZpbGUgYXR0cmlidXRlcwogICAgZm9yIG15ICRBdHRyaWJ1dGUgKHF3KEZpbGVuYW1lIENvbnRlbnQgQ29udGVudFR5cGUgQXR0YWNobWVudFR5cGUpKSB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkQXR0YWNobWVudC0+eyRBdHRyaWJ1dGV9LAogICAgICAgICAgICAkVGVzdEZpbGUtPnskQXR0cmlidXRlfSwKICAgICAgICAgICAgIkF0dGFjaG1lbnQgKCRUZXN0RmlsZS0+e0F0dGFjaG1lbnRUeXBlfSkgJEZpbGVDb3VudHsgJFRlc3RGaWxlLT57QXR0YWNobWVudFR5cGV9IH06ICRBdHRyaWJ1dGUgZnJvbSBXb3JrT3JkZXJBdHRhY2htZW50R2V0IiwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgZXhpc3RlbmNlIG9mIGF0dGFjaG1lbnQKICAgIG15ICRBdHRhY2htZW50RXhpc3RzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyQXR0YWNobWVudEV4aXN0cygKICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkQ2hhbmdlSURGb3JBdHRhY2htZW50VGVzdCwKICAgICAgICBXb3JrT3JkZXJJRCAgICA9PiAkV29ya09yZGVySURGb3JBdHRhY2htZW50VGVzdCwKICAgICAgICBBdHRhY2htZW50VHlwZSA9PiAkVGVzdEZpbGUtPntBdHRhY2htZW50VHlwZX0sCiAgICAgICAgRmlsZW5hbWUgICAgICAgPT4gJFRlc3RGaWxlLT57RmlsZW5hbWV9LAogICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICApOwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJEF0dGFjaG1lbnRFeGlzdHMsCiAgICAgICAgIkF0dGFjaG1lbnQgKCRUZXN0RmlsZS0+e0F0dGFjaG1lbnRUeXBlfSkgJEZpbGVDb3VudHsgJFRlc3RGaWxlLT57QXR0YWNobWVudFR5cGV9IH06IGF0dGFjaG1lbnQgZXhpc3RzIiwKICAgICk7Cn0KCiMgbm93IGRlbGV0ZSB0aGUgYXR0YWNobWVudHMKbXkgJU1heFRlc3RGaWxlcyA9ICVGaWxlQ291bnQ7CiVGaWxlQ291bnQgPSAoKTsKZm9yIG15ICRUZXN0RmlsZSAoQFRlc3RGaWxlTGlzdCkgewoKICAgICRGaWxlQ291bnR7ICRUZXN0RmlsZS0+e0F0dGFjaG1lbnRUeXBlfSB9Kys7CgogICAgbXkgJERlbGV0ZU9rID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyQXR0YWNobWVudERlbGV0ZSgKICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkQ2hhbmdlSURGb3JBdHRhY2htZW50VGVzdCwKICAgICAgICBXb3JrT3JkZXJJRCAgICA9PiAkV29ya09yZGVySURGb3JBdHRhY2htZW50VGVzdCwKICAgICAgICBBdHRhY2htZW50VHlwZSA9PiAkVGVzdEZpbGUtPntBdHRhY2htZW50VHlwZX0sCiAgICAgICAgRmlsZW5hbWUgICAgICAgPT4gJFRlc3RGaWxlLT57RmlsZW5hbWV9LAogICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICApOwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJERlbGV0ZU9rLAogICAgICAgICJBdHRhY2htZW50ICgkVGVzdEZpbGUtPntBdHRhY2htZW50VHlwZX0pICRGaWxlQ291bnR7ICRUZXN0RmlsZS0+e0F0dGFjaG1lbnRUeXBlfSB9OiBhdHRhY2htZW50IGRlbGV0ZWQiLAogICAgKTsKCiAgICBteSBAQXR0YWNobWVudExpc3Q7CiAgICBpZiAoICRUZXN0RmlsZS0+e0F0dGFjaG1lbnRUeXBlfSBlcSAnV29ya09yZGVyJyApIHsKCiAgICAgICAgIyBnZXQgYXR0YWNobWVudCBsaXN0CiAgICAgICAgQEF0dGFjaG1lbnRMaXN0ID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyQXR0YWNobWVudExpc3QoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJREZvckF0dGFjaG1lbnRUZXN0LAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoICRUZXN0RmlsZS0+e0F0dGFjaG1lbnRUeXBlfSBlcSAnV29ya09yZGVyUmVwb3J0JyApIHsKCiAgICAgICAgIyBnZXQgYXR0YWNobWVudCBsaXN0CiAgICAgICAgQEF0dGFjaG1lbnRMaXN0ID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyUmVwb3J0QXR0YWNobWVudExpc3QoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJREZvckF0dGFjaG1lbnRUZXN0LAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgJFNlbGYtPklzKAogICAgICAgIHNjYWxhciBAQXR0YWNobWVudExpc3QsCiAgICAgICAgJE1heFRlc3RGaWxlc3sgJFRlc3RGaWxlLT57QXR0YWNobWVudFR5cGV9IH0gLSAkRmlsZUNvdW50eyAkVGVzdEZpbGUtPntBdHRhY2htZW50VHlwZX0gfSwKICAgICAgICAiQXR0YWNobWVudCAoJFRlc3RGaWxlLT57QXR0YWNobWVudFR5cGV9KSAkRmlsZUNvdW50eyAkVGVzdEZpbGUtPntBdHRhY2htZW50VHlwZX0gfTogbnVtYmVyIG9mIGF0dGFjaG1lbnRzIGFmdGVyIGRlbGV0aW9uIiwKICAgICk7CgogICAgbXkgJEF0dGFjaG1lbnRFeGlzdHMgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBdHRhY2htZW50RXhpc3RzKAogICAgICAgIENoYW5nZUlEICAgID0+ICRDaGFuZ2VJREZvckF0dGFjaG1lbnRUZXN0LAogICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJREZvckF0dGFjaG1lbnRUZXN0LAogICAgICAgIEZpbGVuYW1lICAgID0+ICRUZXN0RmlsZS0+e0ZpbGVuYW1lfSwKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAkQXR0YWNobWVudEV4aXN0cywKICAgICAgICAiQXR0YWNobWVudCAoJFRlc3RGaWxlLT57QXR0YWNobWVudFR5cGV9KSAkRmlsZUNvdW50eyAkVGVzdEZpbGUtPntBdHRhY2htZW50VHlwZX0gfTogYXR0YWNobWVudCBpcyBnb25lIiwKICAgICk7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBjbGVhbiB0aGUgc3lzdGVtCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiMgZGlzYWJsZSBlbWFpbCBjaGVja3MgdG8gY2hhbmdlIHRoZSBuZXdseSBhZGRlZCB1c2VycwokQ2hlY2tFbWFpbEFkZHJlc3Nlc09yZyA9ICRDb25maWdPYmplY3QtPkdldCgnQ2hlY2tFbWFpbEFkZHJlc3NlcycpOwppZiAoICFkZWZpbmVkICRDaGVja0VtYWlsQWRkcmVzc2VzT3JnICkgewogICAgJENoZWNrRW1haWxBZGRyZXNzZXNPcmcgPSAxOwp9CiRDb25maWdPYmplY3QtPlNldCgKICAgIEtleSAgID0+ICdDaGVja0VtYWlsQWRkcmVzc2VzJywKICAgIFZhbHVlID0+IDAsCik7CgojIHNldCB1bml0dGVzdCB1c2VycyBpbnZhbGlkCmZvciBteSAkVW5pdHRlc3RVc2VySUQgKEBVc2VySURzKSB7CgogICAgIyBnZXQgdXNlciBkYXRhCiAgICBteSAlVXNlciA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICBVc2VySUQgPT4gJFVuaXR0ZXN0VXNlcklELAogICAgKTsKCiAgICAjIHVwZGF0ZSB1c2VyCiAgICAkVXNlck9iamVjdC0+VXNlclVwZGF0ZSgKICAgICAgICAlVXNlciwKICAgICAgICBWYWxpZElEICAgICAgPT4gJFZhbGlkT2JqZWN0LT5WYWxpZExvb2t1cCggVmFsaWQgPT4gJ2ludmFsaWQnICksCiAgICAgICAgQ2hhbmdlVXNlcklEID0+IDEsCiAgICApOwp9CgojIHJlc3RvcmUgb3JpZ2luYWwgZW1haWwgY2hlY2sgcGFyYW0KJENvbmZpZ09iamVjdC0+U2V0KAogICAgS2V5ICAgPT4gJ0NoZWNrRW1haWxBZGRyZXNzZXMnLAogICAgVmFsdWUgPT4gJENoZWNrRW1haWxBZGRyZXNzZXNPcmcsCik7CgojIGRlbGV0ZSB0aGUgdGVzdCB3b3Jrb3JkZXJzCm15ICREZWxldGVUZXN0Q291bnQgPSAxOwpmb3IgbXkgJFdvcmtPcmRlcklEICggQHsgJElEc1RvRGVsZXRle1dvcmtPcmRlcn0gfSwga2V5cyAlVGVzdGVkV29ya09yZGVySUQgKSB7CiAgICBteSAkU3VjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckRlbGV0ZSgKICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkU3VjY2VzcywKICAgICAgICAiRGVsZXRlVGVzdCAkRGVsZXRlVGVzdENvdW50IC0gV29ya09yZGVyRGVsZXRlKCkgKFdvcmtPcmRlcklEPSRXb3JrT3JkZXJJRCkiLAogICAgKTsKCiAgICAjIGRvdWJsZSBjaGVjayBXb3JrT3JkZXIgaXQgaXMgcmVhbGx5IGRlbGV0ZWQKICAgIG15ICRXb3JrT3JkZXJEYXRhID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyR2V0KAogICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKCiAgICAkU2VsZi0+SXMoCiAgICAgICAgdW5kZWYsCiAgICAgICAgJFdvcmtPcmRlckRhdGEtPntXb3JrT3JkZXJJRH0sCiAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogV29ya09yZGVyRGVsZXRlKCkgLSBkb3VibGUgY2hlY2siLAogICAgICAgICJEZWxldGVUZXN0ICREZWxldGVUZXN0Q291bnQgLSBkb3VibGUgY2hlY2sgKFdvcmtPcmRlcklEPSRXb3JrT3JkZXJJRCkiLAogICAgKTsKfQpjb250aW51ZSB7CiAgICAkRGVsZXRlVGVzdENvdW50Kys7Cn0KCiMgZGVsZXRlIHRoZSB0ZXN0IGNoYW5nZXMKZm9yIG15ICRDaGFuZ2VJRCAoIEB7ICRJRHNUb0RlbGV0ZXtDaGFuZ2V9IH0sIGtleXMgJVRlc3RlZENoYW5nZUlEICkgewogICAgbXkgJERlbGV0ZU9rID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlRGVsZXRlKAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKICAgICRTZWxmLT5UcnVlKAogICAgICAgICREZWxldGVPaywKICAgICAgICAiRGVsZXRlVGVzdCAkRGVsZXRlVGVzdENvdW50IC0gQ2hhbmdlRGVsZXRlKCkgKENoYW5nZUlEPSRDaGFuZ2VJRCkiLAogICAgKTsKCiAgICAjIGRvdWJsZSBjaGVjayBpZiBjaGFuZ2UgaXMgcmVhbGx5IGRlbGV0ZWQKICAgIG15ICRDaGFuZ2VEYXRhID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIENhY2hlICAgID0+IDAsCiAgICApOwoKICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAkQ2hhbmdlRGF0YS0+e0NoYW5nZUlEfSwKICAgICAgICAiRGVsZXRlVGVzdCAkRGVsZXRlVGVzdENvdW50IC0gZG91YmxlIGNoZWNrIChDaGFuZ2VJRD0kQ2hhbmdlSUQpIiwKICAgICk7Cn0KY29udGludWUgewogICAgJERlbGV0ZVRlc3RDb3VudCsrOwp9CgojIGRlbGV0ZSBkeW5hbWljIGZpZWxkcyB0aGF0IGhhdmUgYmVlbiBjcmVhdGVkIGZvciB0aGlzIHRlc3QKZm9yIG15ICREeW5hbWljRmllbGRJRCAoQER5bmFtaWNGaWVsZElEcykgewoKICAgIG15ICRTdWNjZXNzID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkRGVsZXRlKAogICAgICAgIElEICAgICA9PiAkRHluYW1pY0ZpZWxkSUQsCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRTdWNjZXNzLAogICAgICAgICJEeW5hbWljRmllbGREZWxldGUoKSBkZWxldGVkIER5bmFtaWNGaWVsZCAkRHluYW1pY0ZpZWxkSUQiLAogICAgKTsKfQoKIyByZXN0b3JlIG9yaWdpbmFsIGR5bmFtaWMgZmllbGRzIG9yZGVyCmZvciBteSAkRHluYW1pY0ZpZWxkICggQHskT3JpZ2luYWxEeW5hbWljRmllbGRzfSApIHsKCiAgICBteSAkU3VjY2VzcyA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZFVwZGF0ZSgKICAgICAgICAleyREeW5hbWljRmllbGR9LAogICAgICAgIFJlb3JkZXIgPT4gMCwKICAgICAgICBVc2VySUQgID0+IDEsCiAgICApOwoKICAgICMgY2hlY2sgaWYgdXBkYXRlIChyZXN0b3JlKSB3YXMgc3VjY2Vzc2Z1bAogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgIlJlc3RvcmVkIE9yaWdpbmFsIER5bmFtaWMgRmllbGQgIC0gZm9yIEZpZWxkSUQgJER5bmFtaWNGaWVsZC0+e0lEfSIsCiAgICApOwp9CgojIHNldCBTZW5kTm90aWZpY2F0aW9ucyB0byBpdCdzIG9yaWdpbmFsIHZhbHVlCiRDb25maWdPYmplY3QtPlNldCgKICAgIEtleSAgID0+ICdJVFNNQ2hhbmdlOjpTZW5kTm90aWZpY2F0aW9ucycsCiAgICBWYWx1ZSA9PiAkU2VuZE5vdGlmaWNhdGlvbnNPcmcsCik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChange.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgY3JlYXRlIGFuZCB0ZXN0IGNoYW5nZSBmb3IgZWFjaCBzdGF0ZSBpbiBBZ2VudElUU01DaGFuZ2Ugc2NyZWVuCiAgICAgICAgZm9yIG15ICRDaGFuZ2VTdGF0ZSAoCiAgICAgICAgICAgICdyZXF1ZXN0ZWQnLCAgICdwZW5kaW5nIGFwcHJvdmFsJywgJ3JlamVjdGVkJywgJ2FwcHJvdmVkJywgJ2luIHByb2dyZXNzJywKICAgICAgICAgICAgJ3BlbmRpbmcgcGlyJywgJ3N1Y2Nlc3NmdWwnLCAgICAgICAnZmFpbGVkJywgICAnY2FuY2VsZWQnLCAncmV0cmFjdGVkJwogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICAgICAgbXkgJENoYW5nZVN0YXRlRGF0YVJlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtR2V0KAogICAgICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICAgICAgTmFtZSAgPT4gJENoYW5nZVN0YXRlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAgICAgICAgICMgY3JlYXRlIHRlc3QgY2hhbmdlCiAgICAgICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlICcgLiAkQ2hhbmdlU3RhdGUgLiAnICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIFRlc3QgRGVzY3JpcHRpb24nLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnU2VsZW5pdW0gVGVzdCBKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAgICAgIkNoYW5nZSBpbiAkQ2hhbmdlU3RhdGUgc3RhdGUgaXMgY3JlYXRlZCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50SVRTTUNoYW5nZSBzY3JlZW4KICAgICAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlO1NvcnRCeT1DaGFuZ2VOdW1iZXI7T3JkZXJCeT1Eb3duIik7CgogICAgICAgICAgICBpZiAoICRDaGFuZ2VTdGF0ZSBlcSAncGVuZGluZyBhcHByb3ZhbCcgKSB7CgogICAgICAgICAgICAgICAgIyBjbGljayBvbiBhcHByb3ByaWF0ZSBmaWx0ZXIKICAgICAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0ZpbHRlcj1wZW5kaW5nJTIwYXBwcm92YWwnICldIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkQ2hhbmdlU3RhdGUgZXEgJ2luIHByb2dyZXNzJyApIHsKCiAgICAgICAgICAgICAgICAjIGNsaWNrIG9uIGFwcHJvcHJpYXRlIGZpbHRlcgogICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnRmlsdGVyPWluJTIwcHJvZ3Jlc3MnICldIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkQ2hhbmdlU3RhdGUgZXEgJ3BlbmRpbmcgcGlyJyApIHsKCiAgICAgICAgICAgICAgICAjIGNsaWNrIG9uIGFwcHJvcHJpYXRlIGZpbHRlcgogICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnRmlsdGVyPXBlbmRpbmclMjBwaXInICldIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyBjbGljayBvbiBhcHByb3ByaWF0ZSBmaWx0ZXIKICAgICAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0ZpbHRlcj0kQ2hhbmdlU3RhdGUnICldIiktPlZlcmlmaWVkQ2xpY2soKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBzY3JlZW4KICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHRlc3QgY3JlYXRlZCBjaGFuZ2UKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJENoYW5nZVRpdGxlUmFuZG9tICkgPiAtMSwKICAgICAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZm91bmQiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBkZWxldGUgY3JlYXRlZCB0ZXN0IGNoYW5nZQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBtYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9Cik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeAdd.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBkbyBub3QgY2hlY2sgUmljaFRleHQKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnRnJvbnRlbmQ6OlJpY2hUZXh0JywKICAgICAgICAgICAgVmFsdWUgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSBhbmQgbG9nIGluIHRlc3QgdXNlcgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1tYW5hZ2VyJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50SVRTTUNoYW5nZUFkZCBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2VBZGQiKTsKCiAgICAgICAgIyBjaGVjayBwYWdlCiAgICAgICAgZm9yIG15ICRJRCAoCiAgICAgICAgICAgIHF3KENoYW5nZVRpdGxlIFJpY2hUZXh0MSBSaWNoVGV4dDIgQ2F0ZWdvcnlJRCBJbXBhY3RJRCBQcmlvcml0eUlEIFJlcXVlc3RlZFRpbWVVc2VkCiAgICAgICAgICAgIFJlcXVlc3RlZFRpbWVNb250aCBSZXF1ZXN0ZWRUaW1lRGF5IFJlcXVlc3RlZFRpbWVZZWFyIFJlcXVlc3RlZFRpbWVIb3VyIFJlcXVlc3RlZFRpbWVNaW51dGUKICAgICAgICAgICAgRmlsZVVwbG9hZCBTdWJtaXRDaGFuZ2VBZGQpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgZ2VuZXJhbCBjYXRhbG9nIG9iamVjdAogICAgICAgIG15ICRHZW5lcmFDYXRhbG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyk7CgogICAgICAgICMgZ2V0IGNhdGVnb3J5IElEICc1IHZlcnkgaGlnaCcKICAgICAgICBteSAkQ2F0ZWdvcnlEYXRhUmVmID0gJEdlbmVyYUNhdGFsb2dPYmplY3QtPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDYXRlZ29yeScsCiAgICAgICAgICAgIE5hbWUgID0+ICc1IHZlcnkgaGlnaCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgaW1wYWN0IElEICc0IHZlcnkgaGlnaCcKICAgICAgICBteSAkSW1wYWN0RGF0YVJlZiA9ICRHZW5lcmFDYXRhbG9nT2JqZWN0LT5JdGVtR2V0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6SW1wYWN0JywKICAgICAgICAgICAgTmFtZSAgPT4gJzQgaGlnaCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBjaGFuZ2UKICAgICAgICBteSAkQ2hhbmdlVGl0bGVSYW5kb20gPSAiU2VsZW5pdW1DaGFuZ2UgIiAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjQ2hhbmdlVGl0bGUiLCAnY3NzJyApLT5zZW5kX2tleXMoJENoYW5nZVRpdGxlUmFuZG9tKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSaWNoVGV4dDEiLCAgICdjc3MnICktPnNlbmRfa2V5cygnU2VsZW5pdW1EZXNjcmlwdGlvbicpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1JpY2hUZXh0MiIsICAgJ2NzcycgKS0+c2VuZF9rZXlzKCdTZWxlbml1bUp1c3RpZmljYXRpb24nKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNDYXRlZ29yeUlEJykudmFsKCckQ2F0ZWdvcnlEYXRhUmVmLT57SXRlbUlEfScpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjSW1wYWN0SUQnKS52YWwoJyRJbXBhY3REYXRhUmVmLT57SXRlbUlEfScpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3VibWl0Q2hhbmdlQWRkIiwgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIGNoZWNrIGNyZWF0ZWQgdGVzdCBjaGFuZ2UgdmFsdWVzCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQ2hhbmdlVGl0bGVSYW5kb20gKSA+IC0xLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGZvdW5kIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgInJldHVybiBcJCgncDpjb250YWlucyg1IHZlcnkgaGlnaCknKS5sZW5ndGgiCiAgICAgICAgICAgICksCiAgICAgICAgICAgICJUZXN0IENoYW5nZSB2YWx1ZSBjYXRlZ29yeSA1IHZlcnkgaGlnaCBpcyBmb3VuZCIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJ3A6Y29udGFpbnMoNCBoaWdoKScpLmxlbmd0aCIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgIlRlc3QgQ2hhbmdlIHZhbHVlIGltcGFjdCA0IGhpZ2ggaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBjcmVhdGVkIHRlc3QgY2hhbmdlIElECiAgICAgICAgbXkgJENoYW5nZVF1b3RlZCA9ICREQk9iamVjdC0+UXVvdGUoJENoYW5nZVRpdGxlUmFuZG9tKTsKICAgICAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCAgPT4gIlNFTEVDVCBpZCBGUk9NIGNoYW5nZV9pdGVtIFdIRVJFIHRpdGxlID0gPyIsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJENoYW5nZVF1b3RlZCBdCiAgICAgICAgKTsKICAgICAgICBteSAkQ2hhbmdlSUQ7CiAgICAgICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICRDaGFuZ2VJRCA9ICRSb3dbMF07CiAgICAgICAgfQoKICAgICAgICAjIGRlbGV0ZSBjcmVhdGVkIHRlc3QgY2hhbmdlCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIG1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeAddFromTemplate.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3N1Y2Nlc3NmdWwnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IGNoYW5nZSBvYmplY3QKICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBjaGFuZ2UKICAgICAgICBteSAkQ2hhbmdlVGl0bGVSYW5kb20gPSAnSVRTTUNoYW5nZSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICJUZXN0IERlc2NyaXB0aW9uIiwKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAiVGVzdCBKdXN0aWZpY2F0aW9uIiwKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIkNoYW5nZSBpbiBzdWNjZXNzZnVsIHN0YXRlIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRlbXBsYXRlIG9iamVjdAogICAgICAgIG15ICRUZW1wbGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpOwoKICAgICAgICAjIGNyZWF0ZSBzaW1wbGUgY2hhbmdlIHRlbXBsYXRlCiAgICAgICAgbXkgJFRlbXBsYXRlTmFtZVJhbmRvbSA9ICdUZW1wbGF0ZSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlQ29udGVudCAgICAgID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZVNlcmlhbGl6ZSgKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRUZW1wbGF0ZU5hbWVSYW5kb20sCiAgICAgICAgICAgIFRlbXBsYXRlVHlwZSA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgICAgIENoYW5nZUlEICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFZhbGlkSUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMQogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdGVtcGxhdGUgZnJvbSB0ZXN0IGNoYW5nZQogICAgICAgIG15ICRUZW1wbGF0ZUlEID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZUFkZCgKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRUZW1wbGF0ZU5hbWVSYW5kb20sCiAgICAgICAgICAgIFRlbXBsYXRlVHlwZSA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgICAgIENoYW5nZUlEICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIENvbnRlbnQgICAgICA9PiAkQ2hhbmdlQ29udGVudCwKICAgICAgICAgICAgVmFsaWRJRCAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRUZW1wbGF0ZUlELAogICAgICAgICAgICAiQ2hhbmdlIFRlbXBsYXRlICRUZW1wbGF0ZUlEIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRJVFNNQ2hhbmdlQWRkRnJvbVRlbXBsYXRlIHNjcmVlbgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZSIpOwoKICAgICAgICAjIGNoZWNrIHBhZ2UKICAgICAgICBmb3IgbXkgJElEICgKICAgICAgICAgICAgcXcoVGVtcGxhdGVJRCBNb3ZlVGltZVR5cGUgTW92ZVRpbWVNb250aCBNb3ZlVGltZURheSBNb3ZlVGltZVllYXIgTW92ZVRpbWVIb3VyIE1vdmVUaW1lTWludXRlIFN1Ym1pdEFkZFRlbXBsYXRlKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIG5ldyBjaGFuZ2UgZnJvbSB0ZXN0IHRlbXBsYXRlCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjVGVtcGxhdGVJRCcpLnZhbCgnJFRlbXBsYXRlSUQnKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1Ym1pdEFkZFRlbXBsYXRlIiwgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIGNoZWNrIGNoYW5nZSB2YWx1ZXMgY3JlYXRlZCBmcm9tIHRlc3QgdGVtcGxhdGUKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDaGFuZ2VUaXRsZVJhbmRvbSApID4gLTEsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBjcmVhdGVkIHRlc3QgY2hhbmdlIElECiAgICAgICAgbXkgJENoYW5nZVF1b3RlZCA9ICREQk9iamVjdC0+UXVvdGUoJENoYW5nZVRpdGxlUmFuZG9tKTsKICAgICAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkCiAgICAgICAgICAgICAgICBGUk9NIGNoYW5nZV9pdGVtCiAgICAgICAgICAgICAgICBXSEVSRSB0aXRsZSA9ID8KICAgICAgICAgICAgICAgIEFORCBpZCAhPSAkQ2hhbmdlSUQiLAogICAgICAgICAgICBCaW5kID0+IFsgXCRDaGFuZ2VRdW90ZWQgXQogICAgICAgICk7CiAgICAgICAgbXkgJENyZWF0ZWRDaGFuZ2VJRDsKICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJENyZWF0ZWRDaGFuZ2VJRCA9ICRSb3dbMF07CiAgICAgICAgfQoKICAgICAgICAjIGRlbGV0ZSB0ZXN0IHRlbXBsYXRlCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlRGVsZXRlKAogICAgICAgICAgICBUZW1wbGF0ZUlEID0+ICRUZW1wbGF0ZUlELAogICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkVGVtcGxhdGVOYW1lUmFuZG9tIGlzIGRlbGV0ZWQiCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGVzdCBjaGFuZ2VzCiAgICAgICAgZm9yIG15ICRDaGFuZ2VEZWxldGUgKCAkQ2hhbmdlSUQsICRDcmVhdGVkQ2hhbmdlSUQgKSB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlRGVsZXRlKAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZURlbGV0ZSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiSVRTTUNoYW5nZSAkQ2hhbmdlRGVsZXRlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBtYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CgogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeCABTemplate.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CiAgICAgICAgbXkgJFVzZXJPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgICMgR2V0IGNoYW5nZSBzdGF0ZSBkYXRhLgogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAnc3VjY2Vzc2Z1bCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBjaGFuZ2UuCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAiVGVzdCBEZXNjcmlwdGlvbiIsCiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gIlRlc3QgSnVzdGlmaWNhdGlvbiIsCiAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICJDaGFuZ2UgaW4gc3VjY2Vzc2Z1bCBzdGF0ZSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSBhbmQgbG9naW4gYXMgdGVzdCB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1idWlsZGVyJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0KICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgR2V0IHRlc3QgdXNlciBJRC4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbklEID0gJFVzZXJPYmplY3QtPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSBuZXcgdGVzdCBDQUIgdXNlcnMuCiAgICAgICAgbXkgJFRlc3RDQUJVc2VyID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1idWlsZGVyJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIEdldCBDQUIgdXNlciBJRC4KICAgICAgICBteSAkVGVzdENBQlVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RDQUJVc2VyLAogICAgICAgICk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudElUU01DaGFuZ2Vab29tIG9mIGNyZWF0ZWQgdGVzdCBjaGFuZ2UuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0kQ2hhbmdlSUQiKTsKCiAgICAgICAgIyBDbGljayBvbiAnSW52b2x2ZWQgUGVyc29ucycgYW5kIHN3aXRjaCBzY3JlZW5zLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnM7Q2hhbmdlSUQ9JENoYW5nZUlEJyApXSIpCiAgICAgICAgICAgIC0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICk7CiAgICAgICAgbXkgJEhhbmRsZXMgPSAkU2VsZW5pdW0tPmdldF93aW5kb3dfaGFuZGxlcygpOwogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlsxXSApOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKENvcmUpID09ICJvYmplY3QiICYmIHR5cGVvZihDb3JlLkFwcCkgPT0gIm9iamVjdCIgJiYgQ29yZS5BcHAuUGFnZUxvYWRDb21wbGV0ZScKICAgICAgICApOwoKICAgICAgICAjIFByZXBhcmUgQ0FCIGZvciB0ZXN0IHRlbXBsYXRlLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0NoYW5nZU1hbmFnZXIiLCAnY3NzJyApLT5zZW5kX2tleXMoIiIpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0NoYW5nZU1hbmFnZXIiLCAnY3NzJyApLT5zZW5kX2tleXMoJFRlc3RVc2VyTG9naW4pOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCJsaS51aS1tZW51LWl0ZW06dmlzaWJsZSIpLmxlbmd0aCcgKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnbGkudWktbWVudS1pdGVtOmNvbnRhaW5zKCRUZXN0VXNlckxvZ2luKScpLmNsaWNrKCkiKTsKCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTmV3Q0FCTWVtYmVyIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCIiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNOZXdDQUJNZW1iZXIiLCAnY3NzJyApLT5zZW5kX2tleXMoJFRlc3RDQUJVc2VyKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgibGkudWktbWVudS1pdGVtOnZpc2libGUiKS5sZW5ndGgnICk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJ2xpLnVpLW1lbnUtaXRlbTpjb250YWlucygkVGVzdENBQlVzZXIpJykuY2xpY2soKSIpOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNBZGRDQUJNZW1iZXJCdXR0b24iLCAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJyNDQUJBZ2VudHMtJFRlc3RDQUJVc2VySUQnKS5sZW5ndGgiCiAgICAgICAgKTsKCiAgICAgICAgIyBWZXJpZnkgQ0FCIHVzZXIuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkVGVzdENBQlVzZXIgKSA+IC0xLAogICAgICAgICAgICAiJFRlc3RDQUJVc2VyIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIENsaWNrICdTYXZlIHRoaXMgQ0FCIGFzIHRlbXBsYXRlJy4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nTmV3VGVtcGxhdGUnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBDaGVjayBwYWdlLgogICAgICAgIGZvciBteSAkSUQgKHF3KFRlbXBsYXRlTmFtZSBDb21tZW50IFZhbGlkSUQgU3VibWl0QWRkVGVtcGxhdGUpKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIGNsaWVudCBzaWRlIHZhbGlkYXRpb24uCiAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNUZW1wbGF0ZU5hbWUiLCAnY3NzJyApOwogICAgICAgICRFbGVtZW50LT5zZW5kX2tleXMoIiIpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1Ym1pdEFkZFRlbXBsYXRlIiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI1RlbXBsYXRlTmFtZS5FcnJvciIpLmxlbmd0aCcgKTsKCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgInJldHVybiBcJCgnI1RlbXBsYXRlTmFtZScpLmhhc0NsYXNzKCdFcnJvcicpIgogICAgICAgICAgICApLAogICAgICAgICAgICAnMScsCiAgICAgICAgICAgICdDbGllbnQgc2lkZSB2YWxpZGF0aW9uIGNvcnJlY3RseSBkZXRlY3RlZCBtaXNzaW5nIGlucHV0IHZhbHVlJywKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IENBQiB0ZW1wbGF0ZS4KICAgICAgICBteSAkQ0FCVGVtcGxhdGVOYW1lID0gIkNBQiBUZW1wbGF0ZSAiIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNUZW1wbGF0ZU5hbWUiLCAgICAgICdjc3MnICktPnNlbmRfa2V5cygkQ0FCVGVtcGxhdGVOYW1lKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDb21tZW50IiwgICAgICAgICAgICdjc3MnICktPnNlbmRfa2V5cygiU2VsZW5pdW1UZXN0Iik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3VibWl0QWRkVGVtcGxhdGUiLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgRGVsZXRlIHByZXZpb3VzIENBQiB1c2VyIGZpcnN0LgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0NoYW5nZU1hbmFnZXIiLCAnY3NzJyApLT5zZW5kX2tleXMoJFRlc3RVc2VyTG9naW4pOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCJsaS51aS1tZW51LWl0ZW06dmlzaWJsZSIpLmxlbmd0aCcgKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnbGkudWktbWVudS1pdGVtOmNvbnRhaW5zKCRUZXN0VXNlckxvZ2luKScpLmNsaWNrKCkiKTsKCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJyNDQUJBZ2VudHMtJFRlc3RDQUJVc2VySUQnKS5jbGljaygpOyIpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJyNDQUJBZ2VudHMtJFRlc3RDQUJVc2VySUQnKS5sZW5ndGggPT09IDA7IgogICAgICAgICk7CgogICAgICAgICMgVmVyaWZ5IENBQiB1c2VyIGRlbGV0aW9uLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFRlc3RDQUJVc2VyICkgPT0gLTEsCiAgICAgICAgICAgICIkVGVzdENBQlVzZXIgaXMgbm90IGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAgICAgIyBHZXQgdGVzdCBDQUIgdGVtcGxhdGUgSUQuCiAgICAgICAgbXkgJENBQlRlbXBsYXRlUXVvdGVkID0gJERCT2JqZWN0LT5RdW90ZSgkQ0FCVGVtcGxhdGVOYW1lKTsKICAgICAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCAgPT4gIlNFTEVDVCBpZCBGUk9NIGNoYW5nZV90ZW1wbGF0ZSBXSEVSRSBuYW1lID0gPyIsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJENBQlRlbXBsYXRlUXVvdGVkIF0KICAgICAgICApOwogICAgICAgIG15ICRDQUJUZW1wbGF0ZUlEOwogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAkQ0FCVGVtcGxhdGVJRCA9ICRSb3dbMF07CiAgICAgICAgfQoKICAgICAgICAjIEltcG9ydCBDQUIgZnJvbSB0ZW1wbGF0ZS4KICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNUZW1wbGF0ZUlEJykudmFsKCckQ0FCVGVtcGxhdGVJRCcpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J0FwcGx5IFRlbXBsYXRlJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgVmVyaWZ5IENBQiB1c2VyIGFwcGxpZWQgZnJvbSB0ZW1wbGF0ZS4KICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRUZXN0Q0FCVXNlciApID4gLTEsCiAgICAgICAgICAgICIkVGVzdENBQlVzZXIgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgQ2xvc2UgcG9wdXAuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIuQ2FuY2VsQ2xvc2VQb3B1cCIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAxICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCB0ZW1wbGF0ZS4KICAgICAgICBteSAkU3VjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpLT5UZW1wbGF0ZURlbGV0ZSgKICAgICAgICAgICAgVGVtcGxhdGVJRCA9PiAkQ0FCVGVtcGxhdGVJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENBQlRlbXBsYXRlTmFtZSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIERlbGV0ZSB0ZXN0IGNyZWF0ZWQgY2hhbmdlLgogICAgICAgICRTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlRGVsZXRlKAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeCondition.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkR2VuZXJhbENhdGFsb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKTsKICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAjIEdldCBjaGFuZ2Ugc3RhdGUgZGF0YS4KICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtR2V0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgICAgIE5hbWUgID0+ICdwZW5kaW5nIHBpcicsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBjaGFuZ2UuCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAiVGVzdCBEZXNjcmlwdGlvbiIsCiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gIlRlc3QgSnVzdGlmaWNhdGlvbiIsCiAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICJDaGFuZ2UgaW4gUGVuZGluZyBQSVIgc3RhdGUgaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbi4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtYnVpbGRlcicsICdpdHNtLWNoYW5nZS1tYW5hZ2VyJyBdCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRJVFNNQ2hhbmdlWm9vbSBvZiBjcmVhdGVkIHRlc3QgY2hhbmdlLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZVpvb207Q2hhbmdlSUQ9JENoYW5nZUlEIik7CgogICAgICAgICMgQ2xpY2sgb24gJ0NvbmRpdGlvbnMnIGFuZCBzd2l0Y2ggc2NyZWVucy4KICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJ2FbaHJlZio9XCJBY3Rpb249QWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uO0NoYW5nZUlEPSRDaGFuZ2VJRFwiXScpLnRyaWdnZXIoJ2NsaWNrJyk7IgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggV2luZG93Q291bnQgPT4gMiApOwogICAgICAgIG15ICRIYW5kbGVzID0gJFNlbGVuaXVtLT5nZXRfd2luZG93X2hhbmRsZXMoKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMV0gKTsKCiAgICAgICAgIyBXYWl0IHVudGlsIHBhZ2UgaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5LgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PgogICAgICAgICAgICAgICAgJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiLkNhbmNlbENsb3NlUG9wdXAiKS5sZW5ndGggJiYgJCgiYnV0dG9uW25hbWU9QWRkQ29uZGl0aW9uXSIpLmxlbmd0aDsnCiAgICAgICAgKTsKICAgICAgICBzbGVlcCAyOwoKICAgICAgICAjIENsaWNrICdBZGQgbmV3IGNvbmRpdGlvbicuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAbmFtZT0nQWRkQ29uZGl0aW9uJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjTmFtZSIpLmxlbmd0aCAmJiAkKCIjQ29tbWVudCIpLmxlbmd0aDsnCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBjb25kaXRpb24uCiAgICAgICAgbXkgJENvbmRpdGlvbk5hbWVSYW5kb20gPSAiQ29uZGl0aW9uICIgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI05hbWUiLCAgICAnY3NzJyApLT5zZW5kX2tleXMoJENvbmRpdGlvbk5hbWVSYW5kb20pOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0NvbW1lbnQiLCAnY3NzJyApLT5zZW5kX2tleXMoIlNlbGVuaXVtQ29uZGl0aW9uIik7CgogICAgICAgIG15ICRDb25kaXRpb25PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNvbmRpdGlvbicpOwoKICAgICAgICAjIEdldCBuZWVkZWQgSURzLgogICAgICAgIG15ICRFeHByZXNpb25BdHRyaWJ1dGVJRCA9ICRDb25kaXRpb25PYmplY3QtPkF0dHJpYnV0ZUxvb2t1cCgKICAgICAgICAgICAgTmFtZSA9PiAnSW1wYWN0SUQnLAogICAgICAgICk7CiAgICAgICAgbXkgJEltcGFjdERhdGFSZWYgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpJbXBhY3QnLAogICAgICAgICAgICBOYW1lICA9PiAnNCBoaWdoJywKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25BdHRyaWJ1dGVJRCA9ICRDb25kaXRpb25PYmplY3QtPkF0dHJpYnV0ZUxvb2t1cCgKICAgICAgICAgICAgTmFtZSA9PiAnQ2hhbmdlU3RhdGVJRCcKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25PcGVyYXRvcklEID0gJENvbmRpdGlvbk9iamVjdC0+T3BlcmF0b3JMb29rdXAoCiAgICAgICAgICAgIE5hbWUgPT4gJ3NldCcsCiAgICAgICAgKTsKICAgICAgICBteSAkQ29uZGl0aW9uQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtR2V0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgICAgIE5hbWUgID0+ICdzdWNjZXNzZnVsJywKICAgICAgICApOwoKICAgICAgICAjIEFkZCBuZXcgZXhwcmVzc2lvbi4KICAgICAgICAjIEluIGNoYW5nZSBvYmplY3QgZm9yIHRlc3QgY2hhbmdlLCBsb29rIGZvciBpbXBhY3QgdmFsdWUgb2YgJzQgaGlnaCcuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAbmFtZT0nQWRkRXhwcmVzc2lvbkJ1dHRvbiddW1xAdHlwZT0nc3VibWl0J10iKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI0V4cHJlc3Npb25JRC1ORVctT2JqZWN0SUQgb3B0aW9uW3ZhbHVlPTFdIikubGVuZ3RoOycKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNFeHByZXNzaW9uSUQtTkVXLU9iamVjdElEIG9wdGlvblt2YWx1ZT0nMSddIiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgIyBXYWl0IGZvciBhamF4IHJlc3BvbnNlIHRvIGZpbGwgbmV4dCBkcm9wZG93biBsaXN0IHdpdGggbW9yZSB0aGFuIDEgdmFsdWUuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJyNFeHByZXNzaW9uSUQtTkVXLVNlbGVjdG9yIG9wdGlvbicpLmxlbmd0aCA+IDE7IiApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0V4cHJlc3Npb25JRC1ORVctU2VsZWN0b3Igb3B0aW9uW3ZhbHVlPSckQ2hhbmdlSUQnXSIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICMgV2FpdCBmb3IgYWpheCByZXNwb25zZSB0byBmaWxsIG5leHQgZHJvcGRvd24gbGlzdCB3aXRoIG1vcmUgdGhhbiAxIHZhbHVlLgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjRXhwcmVzc2lvbklELU5FVy1BdHRyaWJ1dGVJRCBvcHRpb24nKS5sZW5ndGggPiAxOyIgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNFeHByZXNzaW9uSUQtTkVXLUF0dHJpYnV0ZUlEIG9wdGlvblt2YWx1ZT0nJEV4cHJlc2lvbkF0dHJpYnV0ZUlEJ10iLCAnY3NzJyApCiAgICAgICAgICAgIC0+Y2xpY2soKTsKCiAgICAgICAgIyBXYWl0IGZvciBhamF4IHJlc3BvbnNlIHRvIGZpbGwgbmV4dCBkcm9wZG93biBsaXN0IHdpdGggbW9yZSB0aGFuIDEgdmFsdWUuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJyNFeHByZXNzaW9uSUQtTkVXLU9wZXJhdG9ySUQgb3B0aW9uJykubGVuZ3RoID4gMTsiICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRXhwcmVzc2lvbklELU5FVy1PcGVyYXRvcklEIG9wdGlvblt2YWx1ZT0nMSddIiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgIyBXYWl0IGZvciBhamF4IHJlc3BvbnNlIHRvIGZpbGwgbmV4dCBkcm9wZG93biBsaXN0IHdpdGggbW9yZSB0aGFuIDEgdmFsdWUuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJyNFeHByZXNzaW9uSUQtTkVXLUNvbXBhcmVWYWx1ZSBvcHRpb24nKS5sZW5ndGggPiAxOyIgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNFeHByZXNzaW9uSUQtTkVXLUNvbXBhcmVWYWx1ZSBvcHRpb25bdmFsdWU9JyRJbXBhY3REYXRhUmVmLT57SXRlbUlEfSddIiwgJ2NzcycgKQogICAgICAgICAgICAtPmNsaWNrKCk7CgogICAgICAgICMgQWRkIG5ldyBhY3Rpb24uCiAgICAgICAgIyBJbiBjaGFuZ2Ugb2JqZWN0IGZvciB0ZXN0IGNoYW5nZSwgc2V0IGNoYW5nZSBzdGF0ZSBvbiBzdWNjZXNzZnVsLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQG5hbWU9J0FkZEFjdGlvbkJ1dHRvbiddW1xAdHlwZT0nc3VibWl0J10iKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI0FjdGlvbklELU5FVy1PYmplY3RJRCBvcHRpb25bdmFsdWU9MV0iKS5sZW5ndGg7JwogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0FjdGlvbklELU5FVy1PYmplY3RJRCBvcHRpb25bdmFsdWU9JzEnXSIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICMgV2FpdCBmb3IgYWpheCByZXNwb25zZSB0byBmaWxsIG5leHQgZHJvcGRvd24gbGlzdCB3aXRoIG1vcmUgdGhhbiAxIHZhbHVlLgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjQWN0aW9uSUQtTkVXLVNlbGVjdG9yIG9wdGlvbicpLmxlbmd0aCA+IDE7IiApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0FjdGlvbklELU5FVy1TZWxlY3RvciBvcHRpb25bdmFsdWU9JyRDaGFuZ2VJRCddIiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgIyBXYWl0IGZvciBhamF4IHJlc3BvbnNlIHRvIGZpbGwgbmV4dCBkcm9wZG93biBsaXN0IHdpdGggbW9yZSB0aGFuIDEgdmFsdWUuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJyNBY3Rpb25JRC1ORVctQXR0cmlidXRlSUQgb3B0aW9uJykubGVuZ3RoID4gMTsiICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjQWN0aW9uSUQtTkVXLUF0dHJpYnV0ZUlEIG9wdGlvblt2YWx1ZT0nJEFjdGlvbkF0dHJpYnV0ZUlEJ10iLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAjIFdhaXQgZm9yIGFqYXggcmVzcG9uc2UgdG8gZmlsbCBuZXh0IGRyb3Bkb3duIGxpc3Qgd2l0aCBtb3JlIHRoYW4gMSB2YWx1ZS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI0FjdGlvbklELU5FVy1PcGVyYXRvcklEIG9wdGlvbicpLmxlbmd0aCA+IDE7IiApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0FjdGlvbklELU5FVy1PcGVyYXRvcklEIG9wdGlvblt2YWx1ZT0nJEFjdGlvbk9wZXJhdG9ySUQnXSIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICMgV2FpdCBmb3IgYWpheCByZXNwb25zZSB0byBmaWxsIG5leHQgZHJvcGRvd24gbGlzdCB3aXRoIG1vcmUgdGhhbiAxIHZhbHVlLgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjQWN0aW9uSUQtTkVXLUFjdGlvblZhbHVlIG9wdGlvbicpLmxlbmd0aCA+IDE7IiApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KAogICAgICAgICAgICAiI0FjdGlvbklELU5FVy1BY3Rpb25WYWx1ZSBvcHRpb25bdmFsdWU9JyRDb25kaXRpb25DaGFuZ2VTdGF0ZURhdGFSZWYtPntJdGVtSUR9J10iLAogICAgICAgICAgICAnY3NzJwogICAgICAgICktPmNsaWNrKCk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1NhdmVCdXR0b24iLCAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PgogICAgICAgICAgICAgICAgJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiLldpZGdldFNpbXBsZSAuSGVhZGVyIGgyIikudGV4dCgpID09PSAiQ29uZGl0aW9ucyBhbmQgQWN0aW9ucyI7JwogICAgICAgICk7CgogICAgICAgICMgQ2hlY2sgc2NyZWVuLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAjIFZlcmlmeSBjcmVhdGVkIGNvbmRpdGlvbiBuYW1lIHZhbHVlLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJENvbmRpdGlvbk5hbWVSYW5kb20gKSA+IC0xLAogICAgICAgICAgICAiJENvbmRpdGlvbk5hbWVSYW5kb20gaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgQ2xvc2UgYW5kIHN3aXRjaCB3aW5kb3cuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIuQ2FuY2VsQ2xvc2VQb3B1cCIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAxICk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzBdICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PSAiZnVuY3Rpb24iICYmICQoIi5WYWx1ZTpjb250YWlucyhcJ1BlbmRpbmcgUElSXCcpIikubGVuZ3RoOycKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIHRlc3QgY2hhbmdlIHN0YXRlLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4gJCgiLlZhbHVlOmNvbnRhaW5zKFwnUGVuZGluZyBQSVJcJykiKS5sZW5ndGggPT09IDE7JyksCiAgICAgICAgICAgICJQZW5kaW5nIFBJUiBzdGF0ZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBHZXQgZ2VuZXJhbCBjYXRhbG9nIGltcGFjdCBJRCAnNCB2ZXJ5IGhpZ2gnLgogICAgICAgIG15ICRDYXRhbG9nSW1wYWN0RGF0YVJlZiA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkltcGFjdCcsCiAgICAgICAgICAgIE5hbWUgID0+ICc0IGhpZ2gnLAogICAgICAgICk7CgogICAgICAgICMgQ2xpY2sgdG8gZWRpdCBjaGFuZ2UgYW5kIHNldCBpdHMgaW1wYWN0IG9uICc0IGhpZ2gnIHRvIHRyaWdnZXIgY29uZGl0aW9uLgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnYVtocmVmKj1cIkFjdGlvbj1BZ2VudElUU01DaGFuZ2VFZGl0O0NoYW5nZUlEPSRDaGFuZ2VJRFwiXScpLnRyaWdnZXIoJ2NsaWNrJyk7IgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggV2luZG93Q291bnQgPT4gMiApOwogICAgICAgICRIYW5kbGVzID0gJFNlbGVuaXVtLT5nZXRfd2luZG93X2hhbmRsZXMoKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMV0gKTsKCiAgICAgICAgIyBXYWl0IHVudGlsIHBhZ2UgaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5LgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCJib2R5IikubGVuZ3RoICYmICQoIiNJbXBhY3RJRCIpLmxlbmd0aDsnCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkUmVmcmVzaCgpOwoKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNJbXBhY3RJRCcpLnZhbCgnJENhdGFsb2dJbXBhY3REYXRhUmVmLT57SXRlbUlEfScpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjSW1wYWN0SUQnKS52YWwoKSA9PSAnJENhdGFsb2dJbXBhY3REYXRhUmVmLT57SXRlbUlEfSc7IgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjU3VibWl0Q2hhbmdlRWRpdCIpLmxlbmd0aDsnCiAgICAgICAgKTsKCiAgICAgICAgIyBTdWJtaXQgYW5kIGNoYW5nZSB3aW5kb3cuCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgnJCgiI1N1Ym1pdENoYW5nZUVkaXQiKS5jbGljaygpOycpOwogICAgICAgIHNsZWVwIDI7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggV2luZG93Q291bnQgPT4gMSApOwogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlswXSApOwoKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkUmVmcmVzaCgpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICdyZXR1cm4gdHlwZW9mKENvcmUpID09ICJvYmplY3QiICYmIHR5cGVvZihDb3JlLkFwcCkgPT0gIm9iamVjdCIgJiYgQ29yZS5BcHAuUGFnZUxvYWRDb21wbGV0ZTsnCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIi5WYWx1ZTpjb250YWlucyhcJ1N1Y2Nlc3NmdWxcJykiKS5sZW5ndGg7JwogICAgICAgICk7CgogICAgICAgICMgQ2hlY2sgZm9yIGV4cGVjdGVkIGNoYW5nZSBzdGF0ZSB0byB2ZXJpZnkgdGVzdCBjb25kaXRpb24uCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiAkKCIuVmFsdWU6Y29udGFpbnMoXCdTdWNjZXNzZnVsXCcpIikubGVuZ3RoID09PSAxOycpLAogICAgICAgICAgICAiU3VjY2Vzc2Z1bCBzdGF0ZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCdhW2hyZWYqPVwiQWN0aW9uPUFnZW50SVRTTUNoYW5nZUNvbmRpdGlvbjtDaGFuZ2VJRD0kQ2hhbmdlSURcIl0nKS5jbGljaygpOyIKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKTsKICAgICAgICAkSGFuZGxlcyA9ICRTZWxlbml1bS0+Z2V0X3dpbmRvd19oYW5kbGVzKCk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzFdICk7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnLkNhbmNlbENsb3NlUG9wdXAnKS5sZW5ndGggJiYgXCQoJ2FbaHJlZio9XCJBY3Rpb249QWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uO0NoYW5nZUlEPSRDaGFuZ2VJRFwiXScpLmxlbmd0aDsiCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGljayBvbiBkZWxldGUgaWNvbgogICAgICAgIG15ICRDaGVja0NvbmZpcm1KUyA9IDw8IkpBVkFTQ1JJUFQiOwooZnVuY3Rpb24gKCkgewogICAgd2luZG93LmNvbmZpcm0gPSBmdW5jdGlvbiAobWVzc2FnZSkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfTsKfSgpKTsKSkFWQVNDUklQVAogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoJENoZWNrQ29uZmlybUpTKTsKCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCdhW2hyZWYqPVwiQWN0aW9uPUFnZW50SVRTTUNoYW5nZUNvbmRpdGlvbjtDaGFuZ2VJRD0kQ2hhbmdlSURcIl0nKS5jbGljaygpOyIKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnYnV0dG9uW3ZhbHVlPUFkZF0nKS5sZW5ndGg7IgogICAgICAgICk7CgogICAgICAgICMgQ2xvc2UgcG9wdXAuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIuQ2FuY2VsQ2xvc2VQb3B1cCIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAxICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCBjaGFuZ2UuCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSBjYWNoZSBpcyBjb3JyZWN0LgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeEdit.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkR2VuZXJhbENhdGFsb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKTsKICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAjIERvIG5vdCBjaGVjayBSaWNoVGV4dC4KICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnRnJvbnRlbmQ6OlJpY2hUZXh0JywKICAgICAgICAgICAgVmFsdWUgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIEdldCBjaGFuZ2Ugc3RhdGUgZGF0YS4KICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtR2V0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgICAgIE5hbWUgID0+ICdwZW5kaW5nIHBpcicsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBjaGFuZ2UuCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAiVGVzdCBEZXNjcmlwdGlvbiIsCiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gIlRlc3QgSnVzdGlmaWNhdGlvbiIsCiAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICJDaGFuZ2UgaW4gUGVuZGluZyBQSVIgc3RhdGUgaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLWJ1aWxkZXInLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXQogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50SVRTTUNoYW5nZUVkaXQgb2YgY3JlYXRlZCB0ZXN0IGNoYW5nZS4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2VFZGl0O0NoYW5nZUlEPSRDaGFuZ2VJRCIpOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNDaGFuZ2VUaXRsZSIpLmxlbmd0aDsnICk7CgogICAgICAgICMgR2V0IGdlbmVyYWwgY2F0YWxvZyBjYXRlZ29yeSwgaW1wYWN0IGFuZCBwcmlvcml0eSBJRCBmb3IgJzMgbm9ybWFsJy4KICAgICAgICBteSBAU3RvcmVkSURzOwogICAgICAgIGZvciBteSAkR2VuZXJhbENhdGFsb2dTdG9yZWQgKHF3KENhdGVnb3J5IEltcGFjdCBQcmlvcml0eSkpIHsKICAgICAgICAgICAgbXkgJENhdGFsb2dEYXRhUmVmID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtR2V0KAogICAgICAgICAgICAgICAgQ2xhc3MgPT4gIklUU006OkNoYW5nZU1hbmFnZW1lbnQ6OiRHZW5lcmFsQ2F0YWxvZ1N0b3JlZCIsCiAgICAgICAgICAgICAgICBOYW1lICA9PiAnMyBub3JtYWwnLAogICAgICAgICAgICApOwogICAgICAgICAgICBwdXNoIEBTdG9yZWRJRHMsICRDYXRhbG9nRGF0YVJlZi0+e0l0ZW1JRH07CiAgICAgICAgfQoKICAgICAgICAjIEdldCBnZW5lcmFsIGNhdGFsb2cgY2F0ZWdvcnksIGltcGFjdCBhbmQgcHJpb3JpdHkgSUQgZm9yICc0IGhpZ2gnLgogICAgICAgIG15IEBFZGl0SURzOwogICAgICAgIGZvciBteSAkR2VuZXJhbENhdGFsb2dFZGl0IChxdyhDYXRlZ29yeSBJbXBhY3QgUHJpb3JpdHkpKSB7CiAgICAgICAgICAgIG15ICRDYXRhbG9nRGF0YVJlZiA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUdldCgKICAgICAgICAgICAgICAgIENsYXNzID0+ICJJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjokR2VuZXJhbENhdGFsb2dFZGl0IiwKICAgICAgICAgICAgICAgIE5hbWUgID0+ICc0IGhpZ2gnLAogICAgICAgICAgICApOwogICAgICAgICAgICBwdXNoIEBFZGl0SURzLCAkQ2F0YWxvZ0RhdGFSZWYtPntJdGVtSUR9OwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBzdG9yZWQgdmFsdWVzLgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjQ2hhbmdlVGl0bGUnLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICAiI0NoYW5nZVRpdGxlIHN0b3JlZCB2YWx1ZSIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnI1JpY2hUZXh0MScsICdjc3MnICktPmdldF92YWx1ZSgpLAogICAgICAgICAgICAnVGVzdCBEZXNjcmlwdGlvbicsCiAgICAgICAgICAgICIjRGVzY3JpcHRpb24gc3RvcmVkIHZhbHVlIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjUmljaFRleHQyJywgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICdUZXN0IEp1c3RpZmljYXRpb24nLAogICAgICAgICAgICAiI0p1c3RpZmljYXRpb24gc3RvcmVkIHZhbHVlIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjQ2F0ZWdvcnlJRCcsICdjc3MnICktPmdldF92YWx1ZSgpLAogICAgICAgICAgICAkU3RvcmVkSURzWzBdLAogICAgICAgICAgICAiI0NhdGVnb3J5SUQgc3RvcmVkIHZhbHVlIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjSW1wYWN0SUQnLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJFN0b3JlZElEc1sxXSwKICAgICAgICAgICAgIiNJbXBhY3RJRCBzdG9yZWQgdmFsdWUiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJyNQcmlvcml0eUlEJywgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICRTdG9yZWRJRHNbMl0sCiAgICAgICAgICAgICIjUHJpb3JpdHlJRCBzdG9yZWQgdmFsdWUiLAogICAgICAgICk7CgogICAgICAgICMgRWRpdCBmaWVsZHMgYW5kIHN1Ym1pdC4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDaGFuZ2VUaXRsZSIsICdjc3MnICktPnNlbmRfa2V5cygiIGVkaXQiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSaWNoVGV4dDEiLCAgICdjc3MnICktPnNlbmRfa2V5cygiIGVkaXQiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSaWNoVGV4dDIiLCAgICdjc3MnICktPnNlbmRfa2V5cygiIGVkaXQiKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNDYXRlZ29yeUlEJykudmFsKCckRWRpdElEc1swXScpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJyNJbXBhY3RJRCcpLnZhbCgnJEVkaXRJRHNbMV0nKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIpOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI1ByaW9yaXR5SUQnKS52YWwoJyRFZGl0SURzWzJdJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRJVFNNQ2hhbmdlRWRpdCBvZiBjcmVhdGVkIHRlc3QgY2hhbmdlLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZUVkaXQ7Q2hhbmdlSUQ9JENoYW5nZUlEIik7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI0NoYW5nZVRpdGxlIikubGVuZ3RoOycgKTsKCiAgICAgICAgIyBDaGVjayBlZGl0ZWQgdmFsdWVzLgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjQ2hhbmdlVGl0bGUnLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJENoYW5nZVRpdGxlUmFuZG9tIC4gJyBlZGl0JywKICAgICAgICAgICAgIiNDaGFuZ2VUaXRsZSBlZGl0ZWQgdmFsdWUiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJyNSaWNoVGV4dDEnLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJ1Rlc3QgRGVzY3JpcHRpb24gZWRpdCcsCiAgICAgICAgICAgICIjRGVzY3JpcHRpb24gZWRpdGVkIHZhbHVlIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjUmljaFRleHQyJywgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICdUZXN0IEp1c3RpZmljYXRpb24gZWRpdCcsCiAgICAgICAgICAgICIjSnVzdGlmaWNhdGlvbiBlZGl0ZWQgdmFsdWUiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJyNDYXRlZ29yeUlEJywgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICRFZGl0SURzWzBdLAogICAgICAgICAgICAiI0NhdGVnb3J5SUQgZWRpdGVkIHZhbHVlIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjSW1wYWN0SUQnLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJEVkaXRJRHNbMV0sCiAgICAgICAgICAgICIjSW1wYWN0SUQgZWRpdGVkIHZhbHVlIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjUHJpb3JpdHlJRCcsICdjc3MnICktPmdldF92YWx1ZSgpLAogICAgICAgICAgICAkRWRpdElEc1syXSwKICAgICAgICAgICAgIiNQcmlvcml0eUlEIGVkaXRlZCB2YWx1ZSIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgdGVzdCBjcmVhdGVkIGNoYW5nZS4KICAgICAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGVkaXQgaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBNYWtlIHN1cmUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9CgopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeHistory.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3BlbmRpbmcgcGlyJywKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgY2hhbmdlCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAiVGVzdCBEZXNjcmlwdGlvbiIsCiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gIlRlc3QgSnVzdGlmaWNhdGlvbiIsCiAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICJDaGFuZ2UgaW4gUGVuZGluZyBQSVIgc3RhdGUgaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtYnVpbGRlcicsICdpdHNtLWNoYW5nZS1tYW5hZ2VyJyBdCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRJVFNNQ2hhbmdlWm9vbSBvZiBjcmVhdGVkIHRlc3QgY2hhbmdlCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0kQ2hhbmdlSUQiKTsKCiAgICAgICAgIyBjbGljayBvbiAnRWRpdCcgYW5kIHN3aXRjaCBzY3JlZW5zCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTUNoYW5nZUhpc3Rvcnk7Q2hhbmdlSUQ9JENoYW5nZUlEJyApXSIpLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKTsKICAgICAgICBteSAkSGFuZGxlcyA9ICRTZWxlbml1bS0+Z2V0X3dpbmRvd19oYW5kbGVzKCk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzFdICk7CgogICAgICAgICMgd2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeQogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIuQ2FuY2VsQ2xvc2VQb3B1cCIpLmxlbmd0aCcgKTsKCiAgICAgICAgIyBjaGVjayBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyBjaGVjayBmb3IgaGlzdG9yeSB2YWx1ZXMgdXBvbiB0ZXN0IGNoYW5nZSBjcmVhdGlvbgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgIk5ldyBDaGFuZ2UgKElEPSRDaGFuZ2VJRCkiICkgPiAtMSwKICAgICAgICAgICAgIk5ldyBDaGFuZ2UgKElEPVwiJENoYW5nZUlEKSBpcyBmb3VuZCIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoCiAgICAgICAgICAgICAgICAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAiRGVzY3JpcHRpb246IChuZXc9VGVzdCBEZXNjcmlwdGlvbiwgb2xkPSkiCiAgICAgICAgICAgICkgPiAtMSwKICAgICAgICAgICAgIkRlc2NyaXB0aW9uOiAobmV3PVRlc3QgRGVzY3JpcHRpb24sIG9sZD0pIGlzIGZvdW5kIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCgKICAgICAgICAgICAgICAgICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICJKdXN0aWZpY2F0aW9uOiAobmV3PVRlc3QgSnVzdGlmaWNhdGlvbiwgb2xkPSkiCiAgICAgICAgICAgICkgPiAtMSwKICAgICAgICAgICAgIkp1c3RpZmljYXRpb246IChuZXc9VGVzdCBKdXN0aWZpY2F0aW9uLCBvbGQ9KSBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGVzdCBjcmVhdGVkIGNoYW5nZQogICAgICAgIG15ICRTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlRGVsZXRlKAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBtYWtlIHN1cmUgY2FjaGUgaXMgY29ycmVjdAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeHistoryZoom.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgR2V0IGNoYW5nZSBzdGF0ZSBkYXRhLgogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncGVuZGluZyBwaXInLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgY2hhbmdlLCB3ZSBuZWVkIGEgbG9uZyBkZXNjcmlwdGlvbiBhbmQganVzdGlmaWNhdGlvbiB0byBzaG93IHRoZSBoaXN0b3J5IGRldGFpbHMuCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICBDaGFuZ2VUaXRsZSA9PiAkQ2hhbmdlVGl0bGVSYW5kb20sCiAgICAgICAgICAgIERlc2NyaXB0aW9uID0+CiAgICAgICAgICAgICAgICAiVGVzdCBEZXNjcmlwdGlvbiB3aXRoIGEgdmVyeSB2ZXJ5IHZlcnkgdmVyeSB2ZXJ5IHZlcnkgdmVyeSB2ZXJ5IHZlcnkgdmVyeSB2ZXJ5IHZlcnkgdmVyeSB2ZXJ5IHZlcnkgdmVyeSBsb25nIHRleHQiLAogICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+CiAgICAgICAgICAgICAgICAiVGVzdCBKdXN0aWZpY2F0aW9uIHdpdGggYSB2ZXJ5IHZlcnkgdmVyeSB2ZXJ5IHZlcnkgdmVyeSB2ZXJ5IHZlcnkgdmVyeSB2ZXJ5IHZlcnkgdmVyeSB2ZXJ5IHZlcnkgdmVyeSB2ZXJ5IGxvbmcgdGV4dCIsCiAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICJDaGFuZ2UgaW4gUGVuZGluZyBQSVIgc3RhdGUgaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLWJ1aWxkZXInLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXQogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50SVRTTUNoYW5nZVpvb20gb2YgY3JlYXRlZCB0ZXN0IGNoYW5nZS4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPSRDaGFuZ2VJRCIpOwoKICAgICAgICAjIENsaWNrIG9uICdFZGl0JyBhbmQgc3dpdGNoIHNjcmVlbnMuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTUNoYW5nZUhpc3Rvcnk7Q2hhbmdlSUQ9JENoYW5nZUlEJyApXSIpLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKTsKICAgICAgICBteSAkSGFuZGxlcyA9ICRTZWxlbml1bS0+Z2V0X3dpbmRvd19oYW5kbGVzKCk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzFdICk7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiLkNhbmNlbENsb3NlUG9wdXAiKS5sZW5ndGg7JyApOwogICAgICAgIHNsZWVwIDI7CgogICAgICAgICMgQ2xpY2sgb24gaGlzdG9yeSBzaG93IGRldGFpbHMgdG8gY2hlY2sgQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20gc2NyZWVuLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudElUU01DaGFuZ2VIaXN0b3J5Wm9vbTtIaXN0b3J5RW50cnlJRD0nICldIikKICAgICAgICAgICAgLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgQWdlbnRJVFNNQ2hhbmdlSGlzdG9yeVpvb20gdmFsdWVzLgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIuQ2FuY2VsQ2xvc2VQb3B1cCIpLmxlbmd0aDsnICk7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gXCQoJy5Db250ZW50IGgyJykudGV4dCgpLnRyaW0oKTsiKSwKICAgICAgICAgICAgJ0RldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgQ2hhbmdlVXBkYXRlJywKICAgICAgICAgICAgIkRldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgQ2hhbmdlVXBkYXRlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDaGFuZ2VUaXRsZVJhbmRvbSApID4gLTEsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCBjaGFuZ2UuCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSBjYWNoZSBpcyBjb3JyZWN0LgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/Admin/AdminITSMChangeCIPAllocate.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFkbWluSVRTTUNoYW5nZUNJUEFsbG9jYXRlIHNjcmVlbgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZG1pbklUU01DaGFuZ2VDSVBBbGxvY2F0ZSIpOwoKICAgICAgICAjIGdldCBnZW5lcmFsIGNhdGFsb2cgb2JqZWN0CiAgICAgICAgbXkgJEdlbmVyYWxDYXRhbG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyk7CgogICAgICAgICMgZ2V0IENhdGVnb3J5IGFuZCBJbXBhY3QgSURzCiAgICAgICAgbXkgQFZhbHVlID0gKCAnMSB2ZXJ5IGxvdycsICcyIGxvdycsICczIG5vcm1hbCcsICc0IGhpZ2gnLCAnNSB2ZXJ5IGhpZ2gnICk7CiAgICAgICAgbXkgQEltcGFjdElEczsKICAgICAgICBteSBAQ2F0ZWdvcnlJRHM7CiAgICAgICAgZm9yIG15ICRDYXRlZ29yeU5hbWUgKEBWYWx1ZSkgewogICAgICAgICAgICBteSAkQ2F0ZWdvcnlEYXRhUmVmID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtR2V0KAogICAgICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNhdGVnb3J5JywKICAgICAgICAgICAgICAgIE5hbWUgID0+ICRDYXRlZ29yeU5hbWUsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHB1c2ggQENhdGVnb3J5SURzLCAkQ2F0ZWdvcnlEYXRhUmVmLT57SXRlbUlEfTsKICAgICAgICB9CiAgICAgICAgZm9yIG15ICRJbXBhY3ROYW1lIChAVmFsdWUpIHsKICAgICAgICAgICAgbXkgJEltcGFjdERhdGFSZWYgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1HZXQoCiAgICAgICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6SW1wYWN0JywKICAgICAgICAgICAgICAgIE5hbWUgID0+ICRJbXBhY3ROYW1lLAogICAgICAgICAgICApOwogICAgICAgICAgICBwdXNoIEBJbXBhY3RJRHMsICRJbXBhY3REYXRhUmVmLT57SXRlbUlEfTsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgZm9yIENhdGVnb3J5IOKGlCBJbXBhY3QgZmllbGRzCiAgICAgICAgZm9yIG15ICRJbXBhY3QgKEBJbXBhY3RJRHMpIHsKICAgICAgICAgICAgZm9yIG15ICRDYXRlZ29yeSAoQENhdGVnb3J5SURzKSB7CiAgICAgICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1ByaW9yaXR5SUQkSW1wYWN0LSRDYXRlZ29yeSIsICdjc3MnICk7CiAgICAgICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/Admin/AdminITSMStateMachine.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFkbWluSVRTTVN0YXRlTWFjaGluZSBzY3JlZW4KICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWRtaW5JVFNNU3RhdGVNYWNoaW5lIik7CgogICAgICAgICMgY2hlY2sgc2NyZWVuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgZ2V0IHN0YXRlIG1hY2hpbmUgb2JqZWN0CiAgICAgICAgbXkgJFN0YXRlTWFjaGluZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNU3RhdGVNYWNoaW5lJyk7CgogICAgICAgICMgY2hlY2sgZm9yIGRlZmF1bHQgY2xhc3Mgc3RhdGUgbWFjaGluZQogICAgICAgIGZvciBteSAkU3RhdGVNYWNoaW5lIChxdyhDaGFuZ2UgV29ya09yZGVyKSkgewoKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgKICAgICAgICAgICAgICAgICIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0NsYXNzPUlUU00lM0ElM0FDaGFuZ2VNYW5hZ2VtZW50JTNBJTNBJFN0YXRlTWFjaGluZSUzQSUzQVN0YXRlJyApXSIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+Y2xpY2soKTsKCiAgICAgICAgICAgICMgY2hlY2sgc2NyZWVuCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICAgICBteSAkU3RhdGVUcmFuc2l0aW9uc1JlZiA9ICRTdGF0ZU1hY2hpbmVPYmplY3QtPlN0YXRlVHJhbnNpdGlvbkxpc3QoCiAgICAgICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6JyAuICRTdGF0ZU1hY2hpbmUgLiAnOjpTdGF0ZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNoZWNrIGRlZmF1bHQgc3RhdGVzIGFuZCB0aGVyZSBsaW5rcwogICAgICAgICAgICBmb3IgbXkgJFN0YXRlSUQgKCBzb3J0IGtleXMgJXskU3RhdGVUcmFuc2l0aW9uc1JlZn0gKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJE5leHRTdGF0ZUlEICggQHsgJFN0YXRlVHJhbnNpdGlvbnNSZWYtPnskU3RhdGVJRH0gfSApIHsKCiAgICAgICAgICAgICAgICAgICAgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgKICAgICAgICAgICAgICAgICAgICAgICAgIi8vYVtjb250YWlucyhcQGhyZWYsIFwnU3RhdGVJRD0kU3RhdGVJRDtOZXh0U3RhdGVJRD0kTmV4dFN0YXRlSUQnICldIgogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcmV0dXJuIGJhY2sgdG8gQWRtaW5JVFNNU3RhdGVNYWNoaW5lIG92ZXJ2aWV3IHNjcnJlZW4KICAgICAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWRtaW5JVFNNU3RhdGVNYWNoaW5lIik7CiAgICAgICAgfQogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeManager.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIHRlc3QgY2hhbmdlIGZvciBlYWNoIHN0YXRlIGluIEFnZW50SVRTTUNoYW5nZU1hbmFnZXIgc2NyZWVuCiAgICAgICAgZm9yIG15ICRDaGFuZ2VTdGF0ZSAoICdyZXF1ZXN0ZWQnLCAncGVuZGluZyBhcHByb3ZhbCcsICdhcHByb3ZlZCcsICdpbiBwcm9ncmVzcycsICdwZW5kaW5nIHBpcicgKSB7CgogICAgICAgICAgICAjIGdldCBjaGFuZ2Ugc3RhdGUgZGF0YQogICAgICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgICAgICAgICBOYW1lICA9PiAkQ2hhbmdlU3RhdGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICAgICAgICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAgICAgIyBjcmVhdGUgdGVzdCBjaGFuZ2UKICAgICAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgJyAuICRDaGFuZ2VTdGF0ZSAuICcgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgICAgIG15ICRDaGFuZ2VJRCAgICAgICAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgICA9PiAkQ2hhbmdlVGl0bGVSYW5kb20sCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgICAgPT4gJ1NlbGVuaXVtIFRlc3QgRGVzY3JpcHRpb24nLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IEp1c3RpZmljYXRpb24nLAogICAgICAgICAgICAgICAgQ2hhbmdlTWFuYWdlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCAgID0+ICRDaGFuZ2VTdGF0ZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAgICAgIkNoYW5nZSBpbiAkQ2hhbmdlU3RhdGUgc3RhdGUgaXMgY3JlYXRlZCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50SVRTTUNoYW5nZU1hbmFnZXIgc2NyZWVuCiAgICAgICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoCiAgICAgICAgICAgICAgICAiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlTWFuYWdlcjtTb3J0Qnk9Q2hhbmdlTnVtYmVyO09yZGVyQnk9RG93biIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgcmVwbGFjZSAnc3BhY2UnIHdpdGggJyUyMCcgaW4gc3RyaW5nLCBzbyB3ZSBjYW4gdXNlIGl0IGFzIGEgZmlsdGVyIHBhcmFtCiAgICAgICAgICAgIG15ICRGaWx0ZXJDaGFuZ2VTdGF0ZSA9ICRDaGFuZ2VTdGF0ZTsKICAgICAgICAgICAgJEZpbHRlckNoYW5nZVN0YXRlID1+IHMvIC8lMjAvZzsKCiAgICAgICAgICAgICMgY2xpY2sgb24gYXBwcm9wcmlhdGUgZmlsdGVyCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0ZpbHRlcj0kRmlsdGVyQ2hhbmdlU3RhdGUnICldIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgICAgICMgY2hlY2sgc2NyZWVuCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICAgICAjIGNoZWNrIGZvciB0ZXN0IGNyZWF0ZWQgY2hhbmdlCiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDaGFuZ2VUaXRsZVJhbmRvbSApID4gLTEsCiAgICAgICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZGVsZXRlIGNyZWF0ZWQgdGVzdCBjaGFuZ2UKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQoKKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeMyCAB.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIHRlc3QgY2hhbmdlIGZvciBlYWNoIHN0YXRlIGluIEFnZW50SVRTTUNoYW5nZU15Q0FCIHNjcmVlbgogICAgICAgIGZvciBteSAkQ2hhbmdlU3RhdGUgKCAncmVxdWVzdGVkJywgJ3BlbmRpbmcgYXBwcm92YWwnLCAnYXBwcm92ZWQnLCAnaW4gcHJvZ3Jlc3MnLCAncGVuZGluZyBwaXInICkgewoKICAgICAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICAgICAgbXkgJENoYW5nZVN0YXRlRGF0YVJlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtR2V0KAogICAgICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICAgICAgTmFtZSAgPT4gJENoYW5nZVN0YXRlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAgICAgICAgICMgY3JlYXRlIHRlc3QgY2hhbmdlCiAgICAgICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlICcgLiAkQ2hhbmdlU3RhdGUgLiAnICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIFRlc3QgRGVzY3JpcHRpb24nLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnU2VsZW5pdW0gVGVzdCBKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgICAgICBDQUJBZ2VudHMgICAgID0+IFskVGVzdFVzZXJJRF0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAgICAgIkNoYW5nZSBpbiAkQ2hhbmdlU3RhdGUgc3RhdGUgaXMgY3JlYXRlZCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50SVRTTUNoYW5nZU15Q0FCIHNjcmVlbgogICAgICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KAogICAgICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZU15Q0FCO1NvcnRCeT1DaGFuZ2VOdW1iZXI7T3JkZXJCeT1Eb3duIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyByZXBsYWNlICdzcGFjZScgd2l0aCAnJTIwJyBpbiBzdHJpbmcsIGlmIG5lZWRlZCwgc28gd2UgY2FuIHVzZSBpdCBhcyBhIGZpbHRlciBwYXJhbQogICAgICAgICAgICBteSAkRmlsdGVyQ2hhbmdlU3RhdGUgPSAkQ2hhbmdlU3RhdGU7CiAgICAgICAgICAgICRGaWx0ZXJDaGFuZ2VTdGF0ZSA9fiBzLyAvJTIwL2c7CgogICAgICAgICAgICAjIGNsaWNrIG9uIGFwcHJvcHJpYXRlIGZpbHRlcgogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdGaWx0ZXI9JEZpbHRlckNoYW5nZVN0YXRlJyApXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICAgICAjIGNoZWNrIHNjcmVlbgogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdGVzdCBjcmVhdGVkIGNoYW5nZQogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQ2hhbmdlVGl0bGVSYW5kb20gKSA+IC0xLAogICAgICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGRlbGV0ZSBjcmVhdGVkIHRlc3QgY2hhbmdlCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlRGVsZXRlKAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIG1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KCik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeMyChanges.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIHRlc3QgY2hhbmdlIGZvciBlYWNoIHN0YXRlIGluIEFnZW50SVRTTUNoYW5nZU15Q2hhbmdlcyBzY3JlZW4KICAgICAgICBmb3IgbXkgJENoYW5nZVN0YXRlICggJ3JlcXVlc3RlZCcsICdwZW5kaW5nIGFwcHJvdmFsJywgJ2FwcHJvdmVkJywgJ2luIHByb2dyZXNzJywgJ3BlbmRpbmcgcGlyJyApIHsKCiAgICAgICAgICAgICMgZ2V0IGNoYW5nZSBzdGF0ZSBkYXRhCiAgICAgICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgICAgIE5hbWUgID0+ICRDaGFuZ2VTdGF0ZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IGNoYW5nZSBvYmplY3QKICAgICAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICAgICAjIGNyZWF0ZSB0ZXN0IGNoYW5nZQogICAgICAgICAgICBteSAkQ2hhbmdlVGl0bGVSYW5kb20gPSAnSVRTTUNoYW5nZSAnIC4gJENoYW5nZVN0YXRlIC4gJyAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAkQ2hhbmdlVGl0bGVSYW5kb20sCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IERlc2NyaXB0aW9uJywKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gJ1NlbGVuaXVtIFRlc3QgSnVzdGlmaWNhdGlvbicsCiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICAiQ2hhbmdlIGluICRDaGFuZ2VTdGF0ZSBzdGF0ZSBpcyBjcmVhdGVkIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzIHNjcmVlbgogICAgICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KAogICAgICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZU15Q2hhbmdlcztTb3J0Qnk9Q2hhbmdlTnVtYmVyO09yZGVyQnk9RG93biIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgcmVwbGFjZSAnc3BhY2UnIHdpdGggJyUyMCcgaW4gc3RyaW5nLCBpZiBuZWVkZWQsIHNvIHdlIGNhbiB1c2UgaXQgYXMgYSBmaWx0ZXIgcGFyYW0KICAgICAgICAgICAgbXkgJEZpbHRlckNoYW5nZVN0YXRlID0gJENoYW5nZVN0YXRlOwogICAgICAgICAgICAkRmlsdGVyQ2hhbmdlU3RhdGUgPX4gcy8gLyUyMC9nOwoKICAgICAgICAgICAgIyBjbGljayBvbiBhcHByb3ByaWF0ZSBmaWx0ZXIKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnRmlsdGVyPSRGaWx0ZXJDaGFuZ2VTdGF0ZScgKV0iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAgICAgIyBjaGVjayBzY3JlZW4KICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHRlc3QgY3JlYXRlZCBjaGFuZ2UKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJENoYW5nZVRpdGxlUmFuZG9tICkgPiAtMSwKICAgICAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZm91bmQiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBkZWxldGUgY3JlYXRlZCB0ZXN0IGNoYW5nZQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBtYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9CgopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeMyWorkOrders.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIHRlc3QgY2hhbmdlIGZvciBlYWNoIHN0YXRlIGluIEFnZW50SVRTTUNoYW5nZU15V29ya09yZGVycyBzY3JlZW4KICAgICAgICBmb3IgbXkgJFdvcmtPcmRlclN0YXRlICggJ2NyZWF0ZWQnLCAnYWNjZXB0ZWQnLCAncmVhZHknLCAnaW4gcHJvZ3Jlc3MnICkgewoKICAgICAgICAgICAgIyBnZXQgbmVlZGVkIG9iamVjdAogICAgICAgICAgICBteSAkR2VuZXJhbENhdGFsb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKTsKICAgICAgICAgICAgbXkgJENoYW5nZU9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAgICAgICAgICMgZ2V0IGNoYW5nZSBzdGF0ZSBkYXRhCiAgICAgICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1HZXQoCiAgICAgICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY3JlYXRlIHRlc3QgY2hhbmdlCiAgICAgICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAkQ2hhbmdlVGl0bGVSYW5kb20sCiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IERlc2NyaXB0aW9uJywKICAgICAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gJ1NlbGVuaXVtIFRlc3QgSnVzdGlmaWNhdGlvbicsCiAgICAgICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgd29ya29yZGVyIHN0YXRlIGRhdGEKICAgICAgICAgICAgbXkgJFdvcmtPcmRlclN0YXRlRGF0YVJlZiA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUdldCgKICAgICAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlN0YXRlJywKICAgICAgICAgICAgICAgIE5hbWUgID0+ICRXb3JrT3JkZXJTdGF0ZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY3JlYXRlIHRlc3Qgd29ya29yZGVyIGZvciB0ZXN0IGNoYW5nZQogICAgICAgICAgICBteSAkV29ya09yZGVyVGl0bGVSYW5kb20gPSAnV29ya09yZGVyICcgLiAkV29ya09yZGVyU3RhdGUgLiAnICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICAgICBteSAkV29ya09yZGVySUQgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4gJFdvcmtPcmRlclRpdGxlUmFuZG9tLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgICA9PiAnU2VsZW5pdW0gSW5zdHJ1Y3Rpb24nLAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgICA9PiAnU2VsZW5pdW0gUmVwb3J0JywKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlSUQgPT4gJFdvcmtPcmRlclN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJBZ2VudElEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudElUU01DaGFuZ2VNeVdvcmtPcmRlcnMgc2NyZWVuCiAgICAgICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoCiAgICAgICAgICAgICAgICAiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlTXlXb3JrT3JkZXJzO1NvcnRCeT1DaGFuZ2VOdW1iZXI7T3JkZXJCeT1Eb3duIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyByZXBsYWNlICdzcGFjZScgd2l0aCAnJTIwJyBpbiBzdHJpbmcsIGlmIG5lZWRlZCwgc28gd2UgY2FuIHVzZSBpdCBhcyBhIGZpbHRlciBwYXJhbQogICAgICAgICAgICBteSAkRmlsdGVyV29ya09yZGVyU3RhdGUgPSAkV29ya09yZGVyU3RhdGU7CiAgICAgICAgICAgICRGaWx0ZXJXb3JrT3JkZXJTdGF0ZSA9fiBzLyAvJTIwL2c7CgogICAgICAgICAgICAjIGNsaWNrIG9uIGFwcHJvcHJpYXRlIGZpbHRlcgogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdGaWx0ZXI9JEZpbHRlcldvcmtPcmRlclN0YXRlJyApXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICAgICAjIGNoZWNrIHNjcmVlbgogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdGVzdCBjcmVhdGVkIGNoYW5nZQogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkV29ya09yZGVyVGl0bGVSYW5kb20gKSA+IC0xLAogICAgICAgICAgICAgICAgIiRXb3JrT3JkZXJUaXRsZVJhbmRvbSBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGRlbGV0ZSBjcmVhdGVkIHRlc3QgY2hhbmdlCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlRGVsZXRlKAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIG1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KCik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeInvolvedPersons.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJFVzZXJPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgdXNlci4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCBidWlsZGVyIHVzZXIiOwoKICAgICAgICAjIEdldCB0ZXN0IHVzZXIgSUQuCiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgQ0FCIHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyQ0FCID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1tYW5hZ2VyJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IGJ1aWxkZXIgdXNlciI7CgogICAgICAgICMgR2V0IHRlc3QgQ0FCIHVzZXIgSUQuCiAgICAgICAgbXkgJFRlc3RVc2VyQ0FCSUQgPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckNBQiwKICAgICAgICApOwoKICAgICAgICAjIEdldCBjaGFuZ2Ugc3RhdGUgZGF0YS4KICAgICAgICBteSAkQ2hhbmdlRGF0YVJlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtR2V0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgICAgIE5hbWUgID0+ICdyZXF1ZXN0ZWQnLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgY2hhbmdlLgogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IERlc2NyaXB0aW9uJywKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnU2VsZW5pdW0gVGVzdCBKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgY3VzdG9tZXIgdXNlci4KICAgICAgICBteSAkVGVzdEN1c3RvbWVyID0gJEhlbHBlci0+VGVzdEN1c3RvbWVyVXNlckNyZWF0ZSgpOwoKICAgICAgICAjIExvZ2luIGFzIHRlc3QgdXNlci4KICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50SVRTTUNoYW5nZVpvb20gc2NyZWVuLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZVpvb207Q2hhbmdlSUQ9JENoYW5nZUlEIik7CgogICAgICAgICMgQ2xpY2sgb24gJ0ludm9sdmVkIFBlcnNvbnMnIGFuZCBzd2l0Y2ggd2luZG93LgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudElUU01DaGFuZ2VJbnZvbHZlZFBlcnNvbnM7Q2hhbmdlSUQ9JENoYW5nZUlEJyldIikKICAgICAgICAgICAgLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKTsKICAgICAgICBteSAkSGFuZGxlcyA9ICRTZWxlbml1bS0+Z2V0X3dpbmRvd19oYW5kbGVzKCk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzFdICk7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI0NoYW5nZU1hbmFnZXIiKS5sZW5ndGgnICk7CgogICAgICAgICMgQ2hlY2sgcGFnZS4KICAgICAgICBmb3IgbXkgJElEICgKICAgICAgICAgICAgcXcoIENoYW5nZU1hbmFnZXIgQ2hhbmdlQnVpbGRlciBUZW1wbGF0ZUlEIE5ld0NBQk1lbWJlciApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRCdXR0b24gKAogICAgICAgICAgICBxdyAoIEFkZENBQk1lbWJlckJ1dHRvbiBTdWJtaXRCdXR0b24gQWRkQ0FCVGVtcGxhdGVCdXR0b24gKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQG5hbWU9JyRCdXR0b24nXSIpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIGNsaWVudCB2YWxpZGF0aW9uLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0NoYW5nZU1hbmFnZXIiLCAnY3NzJyApLT5jbGVhcigpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1Ym1pdEJ1dHRvbiIsICAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjQ2hhbmdlTWFuYWdlci5FcnJvciIpLmxlbmd0aCcgKTsKCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgInJldHVybiBcJCgnI0NoYW5nZU1hbmFnZXInKS5oYXNDbGFzcygnRXJyb3InKSIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgJzEnLAogICAgICAgICAgICAnVmFsaWRhdGlvbiBjb3JyZWN0bHkgZGV0ZWN0ZWQgbWlzc2luZyBpbnB1dCB2YWx1ZScsCiAgICAgICAgKTsKCiAgICAgICAgIyBJbnB1dCBjaGFuZ2UgbWFuYWdlci4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDaGFuZ2VNYW5hZ2VyIiwgJ2NzcycgKS0+Y2xlYXIoKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDaGFuZ2VNYW5hZ2VyIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRUZXN0VXNlckxvZ2luKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgibGkudWktbWVudS1pdGVtOnZpc2libGUiKS5sZW5ndGgnICk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJ2xpLnVpLW1lbnUtaXRlbTpjb250YWlucygkVGVzdFVzZXJMb2dpbiknKS5jbGljaygpIik7CgogICAgICAgICMgSW5wdXQgY2hhbmdlIGFnZW50IENBQi4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNOZXdDQUJNZW1iZXIiLCAnY3NzJyApLT5jbGVhcigpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI05ld0NBQk1lbWJlciIsICdjc3MnICktPnNlbmRfa2V5cygkVGVzdFVzZXJDQUIpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCJsaS51aS1tZW51LWl0ZW06dmlzaWJsZSIpLmxlbmd0aCcgKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnbGkudWktbWVudS1pdGVtOmNvbnRhaW5zKCRUZXN0VXNlckNBQiknKS5jbGljaygpIik7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0FkZENBQk1lbWJlckJ1dHRvbiIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnI0NBQkFnZW50cy0kVGVzdFVzZXJDQUJJRCcpLmxlbmd0aCIKICAgICAgICApOwoKICAgICAgICAjIElucHV0IGNoYW5nZSBjdXN0b21lciBDQUIuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTmV3Q0FCTWVtYmVyIiwgJ2NzcycgKS0+Y2xlYXIoKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNOZXdDQUJNZW1iZXIiLCAnY3NzJyApLT5zZW5kX2tleXMoJFRlc3RDdXN0b21lcik7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoImxpLnVpLW1lbnUtaXRlbTp2aXNpYmxlIikubGVuZ3RoJyApOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCdsaS51aS1tZW51LWl0ZW06Y29udGFpbnMoJFRlc3RDdXN0b21lciknKS5jbGljaygpIik7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0FkZENBQk1lbWJlckJ1dHRvbiIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnI0NBQkN1c3RvbWVycy0kVGVzdEN1c3RvbWVyJykubGVuZ3RoIgogICAgICAgICk7CgogICAgICAgICMgU2VhcmNoIGlmIGRhdGEgaXMgaW4gdGhlIHRhYmxlLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgInJldHVybiBcJCgndGFibGUuRGF0YVRhYmxlIHRyIHRkOmNvbnRhaW5zKCRUZXN0VXNlckNBQiknKS5sZW5ndGgiCiAgICAgICAgICAgICksCiAgICAgICAgICAgICIkVGVzdFVzZXJDQUIgaXMgZm91bmQiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCd0YWJsZS5EYXRhVGFibGUgdHIgdGQ6Y29udGFpbnMoJFRlc3RDdXN0b21lciknKS5sZW5ndGgiCiAgICAgICAgICAgICksCiAgICAgICAgICAgICIkVGVzdEN1c3RvbWVyIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIFRlc3QgZGVsZXRlIENBQiBidXR0b24uCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjQ0FCQWdlbnRzLSRUZXN0VXNlckNBQklEIiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gInJldHVybiB0eXBlb2YoXCQpID09PSAnZnVuY3Rpb24nICYmICFcJCgnI0NBQkFnZW50cy0kVGVzdFVzZXJDQUJJRCcpLmxlbmd0aCIKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCd0YWJsZS5EYXRhVGFibGUgdHIgdGQ6Y29udGFpbnMoJFRlc3RVc2VyQ0FCKScpLmxlbmd0aCIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgIiRUZXN0VXNlckNBQiBpcyBub3QgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgU3VibWl0LgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTdWJtaXQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPmNsaWNrKCk7CgogICAgICAgICMgQmFjayB0byBwcmV2aW91cyB3aW5kb3cuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAxICk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzBdICk7CgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZUhpc3Rvcnk7Q2hhbmdlSUQ9JENoYW5nZUlEIik7CgogICAgICAgICMgQ2hlY2sgaGlzdG9yeSBsb2cgdG8gdmVyaWZ5IGNoYW5nZSBpbnZvbHZlZCBwZXJzb25zLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgIkNBQkFnZW50czogKG5ldz0kVGVzdFVzZXJDQUIiICkgPiAtMSwKICAgICAgICAgICAgIkNoYW5nZSBpbiBhZ2VudCBDQUIgLSBzdWNjZXNzIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgIkNBQkN1c3RvbWVyczogKG5ldz0kVGVzdEN1c3RvbWVyIiApID4gLTEsCiAgICAgICAgICAgICJDaGFuZ2UgaW4gY3VzdG9tZXIgQ0FCIC0gc3VjY2VzcyIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICJDaGFuZ2UgTWFuYWdlcjogKG5ldz0kVGVzdFVzZXJMb2dpbiIgKSA+IC0xLAogICAgICAgICAgICAiQ2hhbmdlIGluIG1hbmFnZXIgLSBzdWNjZXNzIiwKICAgICAgICApOwoKICAgICAgICAjIERlbGV0ZSBjcmVhdGVkIHRlc3QgY2hhbmdlLgogICAgICAgIG15ICRTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlRGVsZXRlKAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQoKKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangePIR.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIHRlc3QgY2hhbmdlIGZvciBlYWNoIHN0YXRlIGluIEFnZW50SVRTTUNoYW5nZVBJUiBzY3JlZW4KICAgICAgICBmb3IgbXkgJFdvcmtPcmRlclN0YXRlICggJ2FjY2VwdGVkJywgJ3JlYWR5JywgJ2luIHByb2dyZXNzJywgJ2Nsb3NlZCcsICdjYW5jZWxlZCcgKSB7CgogICAgICAgICAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICAgICAgICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICAgICAgbXkgJENoYW5nZVN0YXRlRGF0YVJlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtR2V0KAogICAgICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNyZWF0ZSB0ZXN0IGNoYW5nZQogICAgICAgICAgICBteSAkQ2hhbmdlVGl0bGVSYW5kb20gPSAnSVRTTUNoYW5nZSBSZXF1ZXN0ZWQgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgICAgIG15ICRDaGFuZ2VJRCAgICAgICAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gVGVzdCBEZXNjcmlwdGlvbicsCiAgICAgICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICdTZWxlbml1bSBUZXN0IEp1c3RpZmljYXRpb24nLAogICAgICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY3JlYXRlIHRlc3Qgd29ya29yZGVyIGZvciB0ZXN0IGNoYW5nZQogICAgICAgICAgICBteSAkV29ya09yZGVyVGl0bGVSYW5kb20gPSAnV29ya09yZGVyICcgLiAkV29ya09yZGVyU3RhdGUgLiAnICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICAgICBteSAkV29ya09yZGVySUQgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4gJFdvcmtPcmRlclRpdGxlUmFuZG9tLAogICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgICA9PiAnU2VsZW5pdW0gSW5zdHJ1Y3Rpb24nLAogICAgICAgICAgICAgICAgUmVwb3J0ICAgICAgICAgICA9PiAnU2VsZW5pdW0gUmVwb3J0JywKICAgICAgICAgICAgICAgIFdvcmtPcmRlclN0YXRlICAgPT4gJFdvcmtPcmRlclN0YXRlLAogICAgICAgICAgICAgICAgV29ya09yZGVyVHlwZSAgICA9PiAncGlyJywKICAgICAgICAgICAgICAgIFdvcmtPcmRlckFnZW50SUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50SVRTTUNoYW5nZVBJUiBzY3JlZW4KICAgICAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlUElSO1NvcnRCeT1DaGFuZ2VOdW1iZXI7T3JkZXJCeT1Eb3duIik7CgogICAgICAgICAgICAjIHJlcGxhY2UgJ3NwYWNlJyB3aXRoICclMjAnIGluIHN0cmluZywgaWYgbmVlZGVkLCBzbyB3ZSBjYW4gdXNlIGl0IGFzIGEgZmlsdGVyIHBhcmFtCiAgICAgICAgICAgIG15ICRGaWx0ZXJXb3JrT3JkZXJTdGF0ZSA9ICRXb3JrT3JkZXJTdGF0ZTsKICAgICAgICAgICAgJEZpbHRlcldvcmtPcmRlclN0YXRlID1+IHMvIC8lMjAvZzsKCiAgICAgICAgICAgICMgY2xpY2sgb24gYXBwcm9wcmlhdGUgZmlsdGVyCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0ZpbHRlcj0kRmlsdGVyV29ya09yZGVyU3RhdGUnICldIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgICAgICMgY2hlY2sgc2NyZWVuCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICAgICAjIGNoZWNrIGZvciB0ZXN0IGNyZWF0ZWQgY2hhbmdlCiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRXb3JrT3JkZXJUaXRsZVJhbmRvbSApID4gLTEsCiAgICAgICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZGVsZXRlIGNyZWF0ZWQgdGVzdCBjaGFuZ2UKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQoKKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangePSA.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ2FwcHJvdmVkJywKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgY2hhbmdlCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAiVGVzdCBEZXNjcmlwdGlvbiIsCiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gIlRlc3QgSnVzdGlmaWNhdGlvbiIsCiAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudElUU01DaGFuZ2VQU0Egc2NyZWVuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgKICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZVBTQTtGaWx0ZXI9YXBwcm92ZWQ7Vmlldz07O1NvcnRCeT1DaGFuZ2VOdW1iZXI7T3JkZXJCeT1Eb3duIgogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgc2NyZWVuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgY2hlY2sgZm9yIHRlc3QgY3JlYXRlZCBjaGFuZ2UKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDaGFuZ2VUaXRsZVJhbmRvbSApID4gLTEsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZGVsZXRlIGNyZWF0ZWQgdGVzdCBjaGFuZ2UKICAgICAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeSchedule.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ2FwcHJvdmVkJywKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgY2hhbmdlCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAiVGVzdCBEZXNjcmlwdGlvbiIsCiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gIlRlc3QgSnVzdGlmaWNhdGlvbiIsCiAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudElUU01DaGFuZ2VTY2hlZHVsZSBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KAogICAgICAgICAgICAiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlU2NoZWR1bGU7RmlsdGVyPWFwcHJvdmVkO1ZpZXc9OztTb3J0Qnk9Q2hhbmdlTnVtYmVyO09yZGVyQnk9RG93biIKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIHNjcmVlbgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAjIGNoZWNrIGZvciB0ZXN0IGNyZWF0ZWQgY2hhbmdlCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQ2hhbmdlVGl0bGVSYW5kb20gKSA+IC0xLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIGRlbGV0ZSBjcmVhdGVkIHRlc3QgY2hhbmdlCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIG1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeTemplate.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGNoYW5nZQogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRDaGFuZ2VJRCAgICAgICAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAkQ2hhbmdlVGl0bGVSYW5kb20sCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gIlRlc3QgRGVzY3JpcHRpb24iLAogICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICJUZXN0IEp1c3RpZmljYXRpb24iLAogICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRJVFNNQ2hhbmdlWm9vbSBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPSRDaGFuZ2VJRCIpOwoKICAgICAgICAjIGNsaWNrIG9uIHRlbXBsYXRlIGFuZCBzd2l0Y2ggc2NyZWVucwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudElUU01DaGFuZ2VUZW1wbGF0ZTtDaGFuZ2VJRD0kQ2hhbmdlSUQnICldIikKICAgICAgICAgICAgLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKTsKICAgICAgICBteSAkSGFuZGxlcyA9ICRTZWxlbml1bS0+Z2V0X3dpbmRvd19oYW5kbGVzKCk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzFdICk7CgogICAgICAgICMgd2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeQogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjVGVtcGxhdGVOYW1lIikubGVuZ3RoJyApOwoKICAgICAgICAjIGNoZWNrIHBhZ2UKICAgICAgICBmb3IgbXkgJElEIChxdyhUZW1wbGF0ZU5hbWUgQ29tbWVudCBTdGF0ZVJlc2V0IFZhbGlkSUQgU3VibWl0QWRkVGVtcGxhdGUpKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHRlbXBsYXRlIGZyb20gdGVzdCBjaGFuZ2UKICAgICAgICBteSAkVGVtcGxhdGVOYW1lUmFuZG9tID0gIkNoYW5nZSBUZW1wbGF0ZSAiIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNUZW1wbGF0ZU5hbWUiLCAgICAgICdjc3MnICktPnNlbmRfa2V5cygkVGVtcGxhdGVOYW1lUmFuZG9tKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDb21tZW50IiwgICAgICAgICAgICdjc3MnICktPnNlbmRfa2V5cygiU2VsZW5pdW1Db21tZW50Iik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3VibWl0QWRkVGVtcGxhdGUiLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDEgKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMF0gKTsKCiAgICAgICAgc2xlZXAoMSk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gSVRTTUNoYW5nZVRlbXBsYXRlT3ZlcnZpZXcgc2NyZWVuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgKICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXc7U29ydEJ5PVRlbXBsYXRlSUQ7T3JkZXJCeT1VcDtGaWx0ZXI9SVRTTUNoYW5nZSIKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGZvciB0ZXN0IGNyZWF0ZWQgY2hhbmdlCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkVGVtcGxhdGVOYW1lUmFuZG9tICkgPiAtMSwKICAgICAgICAgICAgIiRUZW1wbGF0ZU5hbWVSYW5kb20gaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZGVsZXRlIGNyZWF0ZWQgdGVzdCBjaGFuZ2UKICAgICAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCB0ZXN0IGNoYW5nZSB0ZW1wbGF0ZSBJRAogICAgICAgIG15ICRUZW1wbGF0ZWRRdW90ZWQgPSAkREJPYmplY3QtPlF1b3RlKCRUZW1wbGF0ZU5hbWVSYW5kb20pOwogICAgICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMICA9PiAiU0VMRUNUIGlkIEZST00gY2hhbmdlX3RlbXBsYXRlIFdIRVJFIG5hbWUgPSA/IiwKICAgICAgICAgICAgQmluZCA9PiBbIFwkVGVtcGxhdGVkUXVvdGVkIF0KICAgICAgICApOwogICAgICAgIG15ICRUZW1wbGF0ZUlEOwogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAkVGVtcGxhdGVJRCA9ICRSb3dbMF07CiAgICAgICAgfQoKICAgICAgICAjIGRlbGV0ZSBjcmVhdGVkIHRlc3QgdGVtcGxhdGUKICAgICAgICAkU3VjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpLT5UZW1wbGF0ZURlbGV0ZSgKICAgICAgICAgICAgVGVtcGxhdGVJRCA9PiAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiVGVtcGxhdGUgSUQgJFRlbXBsYXRlSUQgaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBtYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9Cik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeZoom.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGNoYW5nZQogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRDaGFuZ2VJRCAgICAgICAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAkQ2hhbmdlVGl0bGVSYW5kb20sCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gIlRlc3QgRGVzY3JpcHRpb24iLAogICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICJUZXN0IEp1c3RpZmljYXRpb24iLAogICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRJVFNNQ2hhbmdlWm9vbSBmb3IgdGVzdCBjcmVhdGVkIGNoYW5nZQogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZVpvb207Q2hhbmdlSUQ9JENoYW5nZUlEIik7CgogICAgICAgICMgdmVyaWZ5IGl0cyByaWdodCBzY3JlZW4KICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDaGFuZ2VUaXRsZVJhbmRvbSApID4gLTEsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gZm91bmQgb24gcGFnZSIsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBwYWdlCiAgICAgICAgZm9yIG15ICRBY3Rpb24gKAogICAgICAgICAgICBxdyggQ2hhbmdlSGlzdG9yeSBDaGFuZ2VQcmludCBDaGFuZ2VFZGl0IENoYW5nZUludm9sdmVkUGVyc29ucyBXb3JrT3JkZXJBZGQgV29ya09yZGVyQWRkRnJvbVRlbXBsYXRlIENoYW5nZUNvbmRpdGlvbiBDaGFuZ2VUZW1wbGF0ZSkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQKICAgICAgICAgICAgICAgID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTSRBY3Rpb247Q2hhbmdlSUQ9JENoYW5nZUlEJyldIik7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgZGVsZXRlIGNyZWF0ZWQgdGVzdCBjaGFuZ2UKICAgICAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMTemplateDelete.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3N1Y2Nlc3NmdWwnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IGNoYW5nZSBvYmplY3QKICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBjaGFuZ2UKICAgICAgICBteSAkQ2hhbmdlVGl0bGVSYW5kb20gPSAnSVRTTUNoYW5nZSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICJUZXN0IERlc2NyaXB0aW9uIiwKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAiVGVzdCBKdXN0aWZpY2F0aW9uIiwKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGdldCB0ZW1wbGF0ZSBvYmplY3QKICAgICAgICBteSAkVGVtcGxhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGUnKTsKCiAgICAgICAgIyBjcmVhdGUgc2ltcGxlIGNoYW5nZSB0ZW1wbGF0ZQogICAgICAgIG15ICRUZW1wbGF0ZU5hbWVSYW5kb20gPSAnVGVtcGxhdGUgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUNvbnRlbnQgICAgICA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVTZXJpYWxpemUoCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAkVGVtcGxhdGVOYW1lUmFuZG9tLAogICAgICAgICAgICBUZW1wbGF0ZVR5cGUgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgICAgICBDaGFuZ2VJRCAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICBWYWxpZElEICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHRlbXBsYXRlIGZyb20gdGVzdCBjaGFuZ2UKICAgICAgICBteSAkVGVtcGxhdGVJRCA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVBZGQoCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAkVGVtcGxhdGVOYW1lUmFuZG9tLAogICAgICAgICAgICBUZW1wbGF0ZVR5cGUgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgICAgICBDaGFuZ2VJRCAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICBDb250ZW50ICAgICAgPT4gJENoYW5nZUNvbnRlbnQsCiAgICAgICAgICAgIFZhbGlkSUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgIkNoYW5nZSBUZW1wbGF0ZSBJRCAkVGVtcGxhdGVJRCBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSBhbmQgbG9nIGluIHRlc3QgdXNlcgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1tYW5hZ2VyJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50SVRTTUNoYW5nZUFkZEZyb21UZW1wbGF0ZSBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KAogICAgICAgICAgICAiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNVGVtcGxhdGVPdmVydmlldztTb3J0Qnk9VGVtcGxhdGVJRDtPcmRlckJ5PURvd247RmlsdGVyPUlUU01DaGFuZ2UiCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBmb3IgY3JlYXRlZCB0ZXN0IHRlbXBsYXRlCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkVGVtcGxhdGVOYW1lUmFuZG9tICkgPiAtMSwKICAgICAgICAgICAgIiRUZW1wbGF0ZU5hbWVSYW5kb20gaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgY2xpY2sgdG8gZGVsZXRlIHRlc3QgdGVtcGxhdGUKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNEZWxldGVUZW1wbGF0ZUlEJFRlbXBsYXRlSUQiLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAjIHdhaXQgZm9yIGNvbmZpcm0gYnV0dG9uIHRvIHNob3cgdXAgYW5kIGNvbmZpcm0gZGVsZXRlIGFjdGlvbgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjRGlhbG9nQnV0dG9uMScpLmxlbmd0aDsiICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGlhbG9nQnV0dG9uMSIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudElUU01DaGFuZ2VBZGRGcm9tVGVtcGxhdGUgc2NyZWVuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgKICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXc7U29ydEJ5PVRlbXBsYXRlSUQ7T3JkZXJCeT1Eb3duO0ZpbHRlcj1JVFNNQ2hhbmdlIgogICAgICAgICk7CgogICAgICAgICMgdmVyaWZ5IGRlbGV0ZSBhY3Rpb24gZm9yIHRlc3QgY3JlYXRlZCB0ZW1wbGF0ZQogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFRlbXBsYXRlTmFtZVJhbmRvbSApID09IC0xLAogICAgICAgICAgICAiJFRlbXBsYXRlTmFtZVJhbmRvbSBpcyBub3QgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZGVsZXRlIGNyZWF0ZWQgdGVzdCBjaGFuZ2UKICAgICAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMTemplateEdit.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgR2V0IGNoYW5nZSBzdGF0ZSBkYXRhLgogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICApOwoKICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBjaGFuZ2UuCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgUmVxdWVzdGVkICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRDaGFuZ2VJRCAgICAgICAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAkQ2hhbmdlVGl0bGVSYW5kb20sCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gIlRlc3QgRGVzY3JpcHRpb24iLAogICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICJUZXN0IEp1c3RpZmljYXRpb24iLAogICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgIG15ICRUZW1wbGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpOwoKICAgICAgICAjIENyZWF0ZSBzaW1wbGUgY2hhbmdlIHRlbXBsYXRlLgogICAgICAgIG15ICRUZW1wbGF0ZU5hbWVSYW5kb20gPSAnVGVtcGxhdGUgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUNvbnRlbnQgICAgICA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVTZXJpYWxpemUoCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAkVGVtcGxhdGVOYW1lUmFuZG9tLAogICAgICAgICAgICBUZW1wbGF0ZVR5cGUgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgICAgICBDaGFuZ2VJRCAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICBDb21tZW50ICAgICAgPT4gJ1NlbGVuaXVtIFRlc3QgQ29tbWVudCcsCiAgICAgICAgICAgIFZhbGlkSUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMQogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgdGVtcGxhdGUgZnJvbSB0ZXN0IGNoYW5nZS4KICAgICAgICBteSAkVGVtcGxhdGVJRCA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVBZGQoCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAkVGVtcGxhdGVOYW1lUmFuZG9tLAogICAgICAgICAgICBUZW1wbGF0ZVR5cGUgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgICAgICBDaGFuZ2VJRCAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICBDb250ZW50ICAgICAgPT4gJENoYW5nZUNvbnRlbnQsCiAgICAgICAgICAgIENvbW1lbnQgICAgICA9PiAnU2VsZW5pdW0gVGVzdCBDb21tZW50JywKICAgICAgICAgICAgVmFsaWRJRCAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRUZW1wbGF0ZUlELAogICAgICAgICAgICAiQ2hhbmdlIFRlbXBsYXRlIElEICRUZW1wbGF0ZUlEIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1tYW5hZ2VyJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcgc2NyZWVuLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoCiAgICAgICAgICAgICIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3O1NvcnRCeT1UZW1wbGF0ZUlEO09yZGVyQnk9RG93bjtGaWx0ZXI9SVRTTUNoYW5nZSIKICAgICAgICApOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBFbGVtZW50RXhpc3RzID0+ICIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FnZW50SVRTTVRlbXBsYXRlRWRpdDtUZW1wbGF0ZUlEPSRUZW1wbGF0ZUlEJyApXSIKICAgICAgICApOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50SVRTTVRlbXBsYXRlRWRpdCBzY3JlZW4uCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgKICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTVRlbXBsYXRlRWRpdDtUZW1wbGF0ZUlEPSRUZW1wbGF0ZUlEIgogICAgICAgICk7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI1RlbXBsYXRlTmFtZSIpLmxlbmd0aCcgKTsKCiAgICAgICAgIyBDaGVjayBzdG9yZWQgdmFsdWVzLgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjVGVtcGxhdGVOYW1lJywgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICRUZW1wbGF0ZU5hbWVSYW5kb20sCiAgICAgICAgICAgICIjVGVtcGxhdGVOYW1lIHN0b3JlZCB2YWx1ZSIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnI0NvbW1lbnQnLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJ1NlbGVuaXVtIFRlc3QgQ29tbWVudCcsCiAgICAgICAgICAgICIjQ29tbWVudCBzdG9yZWQgdmFsdWUiLAogICAgICAgICk7CgogICAgICAgICMgRWRpdCB2YWx1ZXMgYW5kIHN1Ym1pdC4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNUZW1wbGF0ZU5hbWUiLCAnY3NzJyApLT5zZW5kX2tleXMoIiBFZGl0Iik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjQ29tbWVudCIsICAgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCIgRWRpdCIpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQGlkPSdzdWJtaXRFZGl0VGVtcGxhdGUnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudElUU01UZW1wbGF0ZUVkaXQgc2NyZWVuIGluIG9yZHIgdG8gY2hlY2sgZWRpdGVkIElUU00gdGFtcGxldGUuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgKICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTVRlbXBsYXRlRWRpdDtUZW1wbGF0ZUlEPSRUZW1wbGF0ZUlEIgogICAgICAgICk7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI1RlbXBsYXRlTmFtZSIpLmxlbmd0aCcgKTsKCiAgICAgICAgIyBDaGVjayBlZGl0ZWQgdmFsdWVzLgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjVGVtcGxhdGVOYW1lJywgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICRUZW1wbGF0ZU5hbWVSYW5kb20gLiAnIEVkaXQnLAogICAgICAgICAgICAiI1RlbXBsYXRlTmFtZSBlZGl0ZWQgdmFsdWUiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJyNDb21tZW50JywgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICdTZWxlbml1bSBUZXN0IENvbW1lbnQgRWRpdCcsCiAgICAgICAgICAgICIjQ29tbWVudCBlZGl0ZWQgdmFsdWUiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgdGVtcGxhdGUuCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlRGVsZXRlKAogICAgICAgICAgICBUZW1wbGF0ZUlEID0+ICRUZW1wbGF0ZUlELAogICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkVGVtcGxhdGVOYW1lUmFuZG9tIGVkaXQgaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgdGVzdCBjcmVhdGVkIGNoYW5nZS4KICAgICAgICAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgTWFrZSBzdXJlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMTemplateEditCAB.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwogICAgICAgIG15ICRUZW1wbGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpOwogICAgICAgIG15ICRVc2VyT2JqZWN0ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgICMgR2V0IGNoYW5nZSBzdGF0ZSBkYXRhLgogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IGNoYW5nZS4KICAgICAgICBteSAkQ2hhbmdlVGl0bGVSYW5kb20gPSAnSVRTTUNoYW5nZSBSZXF1ZXN0ZWQgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAiVGVzdCBEZXNjcmlwdGlvbiIsCiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gIlRlc3QgSnVzdGlmaWNhdGlvbiIsCiAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgc2ltcGxlIGNoYW5nZSB0ZW1wbGF0ZS4KICAgICAgICBteSAkVGVtcGxhdGVOYW1lUmFuZG9tID0gJ0NBQiBUZW1wbGF0ZSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlQ29udGVudCAgICAgID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZVNlcmlhbGl6ZSgKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRUZW1wbGF0ZU5hbWVSYW5kb20sCiAgICAgICAgICAgIFRlbXBsYXRlVHlwZSA9PiAnQ0FCJywKICAgICAgICAgICAgQ2hhbmdlSUQgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgQ29tbWVudCAgICAgID0+ICdTZWxlbml1bSBUZXN0IENvbW1lbnQnLAogICAgICAgICAgICBWYWxpZElEICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB0ZW1wbGF0ZSBmcm9tIHRlc3QgY2hhbmdlLgogICAgICAgIG15ICRUZW1wbGF0ZUlEID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZUFkZCgKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRUZW1wbGF0ZU5hbWVSYW5kb20sCiAgICAgICAgICAgIFRlbXBsYXRlVHlwZSA9PiAnQ0FCJywKICAgICAgICAgICAgQ2hhbmdlSUQgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgQ29udGVudCAgICAgID0+ICRDaGFuZ2VDb250ZW50LAogICAgICAgICAgICBDb21tZW50ICAgICAgPT4gJ1NlbGVuaXVtIFRlc3QgQ29tbWVudCcsCiAgICAgICAgICAgIFZhbGlkSUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgIkNoYW5nZSBUZW1wbGF0ZSBJRCAkVGVtcGxhdGVJRCBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IENBQiB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlckNBQiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICApOwoKICAgICAgICAjIEdldCB0ZXN0IENBQiB1c2VyIElELgogICAgICAgIG15ICRUZXN0VXNlckNBQklEID0gJFVzZXJPYmplY3QtPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJDQUIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBDQUIgY3VzdG9tZXIgdXNlci4KICAgICAgICBteSAkVGVzdEN1c3RvbWVyQ0FCID0gJEhlbHBlci0+VGVzdEN1c3RvbWVyVXNlckNyZWF0ZSgpOwoKICAgICAgICAjIENyZWF0ZSBhbmQgbG9nIGluIHRlc3QgdXNlci4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgR2V0IHRlc3QgdXNlciBJRC4KICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcgc2NyZWVuLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoCiAgICAgICAgICAgICIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3O1NvcnRCeT1UZW1wbGF0ZUlEO09yZGVyQnk9RG93bjtGaWx0ZXI9Q0FCIgogICAgICAgICk7CgogICAgICAgICMgQ2xpY2sgb24gJ0VkaXQgQ29udGVudCcgZm9yIHRlc3QgY3JlYXRlZCBDQUIgdGVtcGxhdGUgYW5kIHN3aXRjaCB3aW5kb3cKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdBZ2VudElUU01UZW1wbGF0ZUVkaXRDQUI7VGVtcGxhdGVJRD0kVGVtcGxhdGVJRCcgKV0iKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICk7CiAgICAgICAgbXkgJEhhbmRsZXMgPSAkU2VsZW5pdW0tPmdldF93aW5kb3dfaGFuZGxlcygpOwogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlsxXSApOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNOZXdDQUJNZW1iZXIiKS5sZW5ndGg7JyApOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcmpRdWVyeUV2ZW50Qm91bmQoCiAgICAgICAgICAgIENTU1NlbGVjdG9yID0+ICcjTmV3Q0FCTWVtYmVyJywKICAgICAgICAgICAgRXZlbnQgICAgICAgPT4gJ2NoYW5nZScsCiAgICAgICAgKTsKCiAgICAgICAgIyBBZGQgdGVzdCBjcmVhdGVkIENBQiB1c2VyIHRvIHRlc3QgQ0FCIHRlbXBsYXRlLgogICAgICAgIG15ICRBdXRvQ29tcGxldGVTdHJpbmdDQUJVc2VyCiAgICAgICAgICAgID0gIlwiJFRlc3RVc2VyQ0FCICRUZXN0VXNlckNBQlwiIDwkVGVzdFVzZXJDQUJcQGxvY2FsdW5pdHRlc3QuY29tPiAoJFRlc3RVc2VyQ0FCSUQpIjsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNOZXdDQUJNZW1iZXIiLCAnY3NzJyApLT5zZW5kX2tleXMoJFRlc3RVc2VyQ0FCKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiAkKCJsaS51aS1tZW51LWl0ZW06dmlzaWJsZSIpLmxlbmd0aDsnICk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJ2xpLnVpLW1lbnUtaXRlbTpjb250YWlucygkQXV0b0NvbXBsZXRlU3RyaW5nQ0FCVXNlciknKS5jbGljaygpOyIpOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCcjQnRuQWRkQ0FCTWVtYmVyJykuY2xpY2soKTsiKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnI0NBQkFnZW50cyRUZXN0VXNlckNBQklEJykubGVuZ3RoOyIKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3JqUXVlcnlFdmVudEJvdW5kKAogICAgICAgICAgICBDU1NTZWxlY3RvciA9PiAiI0NBQkFnZW50cyRUZXN0VXNlckNBQklELkRlbGV0ZUNBQk1lbWJlciIsCiAgICAgICAgICAgIEV2ZW50ICAgICAgID0+ICdjbGljaycsCiAgICAgICAgKTsKCiAgICAgICAgIyBBZGQgdGVzdCBjcmVhdGVkIENBQiBjdXN0b21lciB0byB0ZXN0IENBQiB0ZW1wbGF0ZS4KICAgICAgICBteSAkQXV0b0NvbXBsZXRlU3RyaW5nQ0FCQ3VzdG9tZXIKICAgICAgICAgICAgPSAiXCIkVGVzdEN1c3RvbWVyQ0FCICRUZXN0Q3VzdG9tZXJDQUJcIiA8JFRlc3RDdXN0b21lckNBQlxAbG9jYWx1bml0dGVzdC5jb20+ICgkVGVzdEN1c3RvbWVyQ0FCKSI7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTmV3Q0FCTWVtYmVyIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRUZXN0Q3VzdG9tZXJDQUIpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuICQoImxpLnVpLW1lbnUtaXRlbTp2aXNpYmxlIikubGVuZ3RoOycgKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnbGkudWktbWVudS1pdGVtOmNvbnRhaW5zKCRBdXRvQ29tcGxldGVTdHJpbmdDQUJDdXN0b21lciknKS5jbGljaygpOyIpOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCcjQnRuQWRkQ0FCTWVtYmVyJykuY2xpY2soKTsiKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnI0NBQkN1c3RvbWVycyRUZXN0Q3VzdG9tZXJDQUInKS5sZW5ndGg7IgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcmpRdWVyeUV2ZW50Qm91bmQoCiAgICAgICAgICAgIENTU1NlbGVjdG9yID0+ICIjQ0FCQ3VzdG9tZXJzJFRlc3RDdXN0b21lckNBQi5EZWxldGVDQUJNZW1iZXIiLAogICAgICAgICAgICBFdmVudCAgICAgICA9PiAnY2xpY2snLAogICAgICAgICk7CgogICAgICAgICMgU2F2ZSBlZGl0ZWQgQ0FCIHRlbXBsYXRlIGFuZCBzd2l0Y2ggd2luZG93LgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHR5cGU9J3N1Ym1pdCddW1xAbmFtZT0nU3VibWl0J10iKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAxICk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzBdICk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gY3JlYXRlZCB0ZXN0IGNoYW5nZS4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPSRDaGFuZ2VJRCIpOwoKICAgICAgICAjIENsaWNrIG9uICdJbnZvbGVkIFBlcnNvbnMnIGFuZCBzd2l0Y2ggd2luZG93LgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucztDaGFuZ2VJRD0kQ2hhbmdlSUQnICldIikKICAgICAgICAgICAgLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKTsKICAgICAgICAkSGFuZGxlcyA9ICRTZWxlbml1bS0+Z2V0X3dpbmRvd19oYW5kbGVzKCk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzFdICk7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI0NoYW5nZU1hbmFnZXIiKS5sZW5ndGg7JyApOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcmpRdWVyeUV2ZW50Qm91bmQoCiAgICAgICAgICAgIENTU1NlbGVjdG9yID0+ICcjQ2hhbmdlTWFuYWdlcicsCiAgICAgICAgICAgIEV2ZW50ICAgICAgID0+ICdjaGFuZ2UnLAogICAgICAgICk7CgogICAgICAgICMgSW5wdXQgY2hhbmdlIG1hbmFnZXIuCiAgICAgICAgbXkgJEF1dG9Db21wbGV0ZVN0cmluZ01hbmFnZXIKICAgICAgICAgICAgPSAiXCIkVGVzdFVzZXJMb2dpbiAkVGVzdFVzZXJMb2dpblwiIDwkVGVzdFVzZXJMb2dpblxAbG9jYWx1bml0dGVzdC5jb20+ICgkVGVzdFVzZXJJRCkiOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0NoYW5nZU1hbmFnZXIiLCAnY3NzJyApLT5zZW5kX2tleXMoJFRlc3RVc2VyTG9naW4pOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuICQoImxpLnVpLW1lbnUtaXRlbTp2aXNpYmxlIikubGVuZ3RoOycgKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnbGkudWktbWVudS1pdGVtOmNvbnRhaW5zKCRBdXRvQ29tcGxldGVTdHJpbmdNYW5hZ2VyKScpLmNsaWNrKCk7Iik7CgogICAgICAgICMgVGVzdCBlZGl0ZWQgQ0FCIHRlbXBsYXRlLgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI1RlbXBsYXRlSUQnKS52YWwoJyRUZW1wbGF0ZUlEJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB0eXBlPSdzdWJtaXQnXVtcQG5hbWU9J0FkZENBQlRlbXBsYXRlQnV0dG9uJ10iKS0+Y2xpY2soKTsKCiAgICAgICAgIyBWZXJpZnkgdGhhdCBib3RoIHVzZXIgYW5kIGN1c3RvbWVyIGFyZSBsb2FkZWQgZnJvbSBlZGl0ZWQgdGVzdCBDQUIgdGVtcGxhdGUuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAiJFRlc3RVc2VyQ0FCIiApID4gLTEsCiAgICAgICAgICAgICJDQUIgdXNlciBsb2FkZWQgZnJvbSBlZGl0ZWQgdGVtcGxhdGUgLSBzdWNjZXNzIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgIiRUZXN0Q3VzdG9tZXJDQUIiICkgPiAtMSwKICAgICAgICAgICAgIkNBQiBjdXN0b21lciB1c2VyIGxvYWRlZCBmcm9tIGVkaXRlZCB0ZW1wbGF0ZSAtIHN1Y2Nlc3MiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgdGVtcGxhdGUuCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlRGVsZXRlKAogICAgICAgICAgICBUZW1wbGF0ZUlEID0+ICRUZW1wbGF0ZUlELAogICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkVGVtcGxhdGVOYW1lUmFuZG9tIGVkaXQgaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgdGVzdCBjcmVhdGVkIGNoYW5nZS4KICAgICAgICAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgTWFrZSBzdXJlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMTemplateEditContent.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGNoYW5nZQogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICJUZXN0IERlc2NyaXB0aW9uIiwKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAiVGVzdCBKdXN0aWZpY2F0aW9uIiwKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGdldCB0ZW1wbGF0ZSBvYmplY3QKICAgICAgICBteSAkVGVtcGxhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGUnKTsKCiAgICAgICAgIyBjcmVhdGUgc2ltcGxlIGNoYW5nZSB0ZW1wbGF0ZQogICAgICAgIG15ICRUZW1wbGF0ZU5hbWVSYW5kb20gPSAnVGVtcGxhdGUgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUNvbnRlbnQgICAgICA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVTZXJpYWxpemUoCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAkVGVtcGxhdGVOYW1lUmFuZG9tLAogICAgICAgICAgICBUZW1wbGF0ZVR5cGUgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgICAgICBDaGFuZ2VJRCAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICBDb21tZW50ICAgICAgPT4gJ1NlbGVuaXVtIFRlc3QgQ29tbWVudCcsCiAgICAgICAgICAgIFZhbGlkSUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMQogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdGVtcGxhdGUgZnJvbSB0ZXN0IGNoYW5nZQogICAgICAgIG15ICRUZW1wbGF0ZUNvbW1lbnQgPSAnU2VsZW5pdW0gVGVzdCBDb21tZW50JzsKICAgICAgICBteSAkVGVtcGxhdGVJRCAgICAgID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZUFkZCgKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRUZW1wbGF0ZU5hbWVSYW5kb20sCiAgICAgICAgICAgIFRlbXBsYXRlVHlwZSA9PiAnSVRTTUNoYW5nZScsCiAgICAgICAgICAgIENoYW5nZUlEICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIENvbnRlbnQgICAgICA9PiAkQ2hhbmdlQ29udGVudCwKICAgICAgICAgICAgQ29tbWVudCAgICAgID0+ICRUZW1wbGF0ZUNvbW1lbnQsCiAgICAgICAgICAgIFZhbGlkSUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgIkNoYW5nZSBUZW1wbGF0ZSBJRCAkVGVtcGxhdGVJRCBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSBhbmQgbG9nIGluIHRlc3QgdXNlcgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1tYW5hZ2VyJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcgc2NyZWVuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgKICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXc7U29ydEJ5PVRlbXBsYXRlSUQ7T3JkZXJCeT1Eb3duO0ZpbHRlcj1JVFNNQ2hhbmdlIgogICAgICAgICk7CgogICAgICAgICMgY2xpY2sgb24gJ0VkaXQgQ29udGVudCcgZm9yIHRlc3QgY3JlYXRlZCBjaGFuZ2UgdGVtcGxhdGUKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNFZGl0Q29udGVudFRlbXBsYXRlSUQkVGVtcGxhdGVJRCIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICMgd2FpdCBmb3IgZGlhbG9nIHdpbmRvdyB0byBsb2FkLCBpZiBuZWNlc3NhcnkKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI0RpYWxvZ0J1dHRvbjEnKS5sZW5ndGg7IiApOwoKICAgICAgICAjIHZlcmlmeSBlZGl0IGNvbnRlbnQgdmFsdWVzCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAiJFRlbXBsYXRlTmFtZVJhbmRvbSIgKSA+IC0xLAogICAgICAgICAgICAiJFRlbXBsYXRlTmFtZVJhbmRvbSBpcyBmb3VuZCIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICIkVGVtcGxhdGVDb21tZW50IiApID4gLTEsCiAgICAgICAgICAgICIkVGVtcGxhdGVDb21tZW50IGlzIGZvdW5kIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCgKICAgICAgICAgICAgICAgICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksCiAgICAgICAgICAgICAgICAiVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFuZ2UgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuIgogICAgICAgICAgICApID4gLTEsCiAgICAgICAgICAgICInVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFuZ2UgZnJvbSB0aGlzIHRlbXBsYXRlLCBzbyB5b3UgY2FuIGVkaXQgYW5kIHNhdmUgaXQuJyBpcyBmb3VuZCIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoCiAgICAgICAgICAgICAgICAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLAogICAgICAgICAgICAgICAgIlRoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLiIKICAgICAgICAgICAgKSA+IC0xLAogICAgICAgICAgICAiJ1RoZSBuZXcgY2hhbmdlIHdpbGwgYmUgZGVsZXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIGl0IGhhcyBiZWVuIHNhdmVkIGFzIHRlbXBsYXRlLicgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIG5ldyBjaGFuZ2UgZnJvbSB0ZXN0IHRlbXBsYXRlCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGlhbG9nQnV0dG9uMSIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBnZXQgbmV3IGNoYW5nZSBJRCBjcmVhdGVkIGZyb20gdGVzdCB0ZW1wbGF0ZQogICAgICAgIG15ICRDaGFuZ2VGcm9tVGVtcGxhdGVJRCA9ICRDaGFuZ2VJRCsrOwoKICAgICAgICAjIGdldCBuZXcgY2hhbmdlIGRhdGEgY3JlYXRlZCBmcm9tIHRlc3QgdGVtcGxhdGUKICAgICAgICBteSAkQ2hhbmdlRnJvbVRlbXBsYXRlID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlR2V0KAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlRnJvbVRlbXBsYXRlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyB2ZXJpZnkgbmV3IGNoYW5nZSB2YWx1ZXMKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDaGFuZ2VGcm9tVGVtcGxhdGUtPntDaGFuZ2VUaXRsZX0gKSA+IC0xLAogICAgICAgICAgICAiJENoYW5nZUZyb21UZW1wbGF0ZS0+e0NoYW5nZVRpdGxlfSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGVzdCB0ZW1wbGF0ZQogICAgICAgIG15ICRTdWNjZXNzID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZURlbGV0ZSgKICAgICAgICAgICAgVGVtcGxhdGVJRCA9PiAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJFRlbXBsYXRlTmFtZVJhbmRvbSBlZGl0IGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgZGVsZXRlIHRlc3QgY3JlYXRlZCBjaGFuZ2VzCiAgICAgICAgZm9yIG15ICRDaGFuZ2VEZWxldGUgKCAkQ2hhbmdlSUQsICRDaGFuZ2VGcm9tVGVtcGxhdGVJRCApIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlRGVsZXRlLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIG1ha2Ugc3VyZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMWorkOrderAdd.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBkbyBub3QgY2hlY2sgUmljaFRleHQKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnRnJvbnRlbmQ6OlJpY2hUZXh0JywKICAgICAgICAgICAgVmFsdWUgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugc3RhdGUgZGF0YQogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgY2hhbmdlCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgUmVxdWVzdGVkICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRDaGFuZ2VJRCAgICAgICAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAkQ2hhbmdlVGl0bGVSYW5kb20sCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gIlRlc3QgRGVzY3JpcHRpb24iLAogICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICJUZXN0IEp1c3RpZmljYXRpb24iLAogICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRJVFNNQ2hhbmdlWm9vbSBmb3IgdGVzdCBjcmVhdGVkIGNoYW5nZQogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZVpvb207Q2hhbmdlSUQ9JENoYW5nZUlEIik7CgogICAgICAgICMgY2xpY2sgJ0FkZCBXb3JrT3JkZXInIGFuZCBzd2l0Y2ggd2luZG93CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlckFkZDtDaGFuZ2VJRD0kQ2hhbmdlSUQnKV0iKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICk7CiAgICAgICAgbXkgJEhhbmRsZXMgPSAkU2VsZW5pdW0tPmdldF93aW5kb3dfaGFuZGxlcygpOwogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlsxXSApOwoKICAgICAgICAjIHdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI1dvcmtPcmRlclRpdGxlIikubGVuZ3RoJyApOwoKICAgICAgICAjIGNoZWNrIHBhZ2UKICAgICAgICBmb3IgbXkgJElEICgKICAgICAgICAgICAgcXcoV29ya09yZGVyVGl0bGUgUmljaFRleHQgV29ya09yZGVyVHlwZUlEIFBsYW5uZWRTdGFydFRpbWVNb250aCBQbGFubmVkU3RhcnRUaW1lRGF5IFBsYW5uZWRTdGFydFRpbWVZZWFyIFBsYW5uZWRTdGFydFRpbWVIb3VyIFBsYW5uZWRTdGFydFRpbWVNaW51dGUKICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWVNb250aCBQbGFubmVkRW5kVGltZURheSBQbGFubmVkRW5kVGltZVllYXIgUGxhbm5lZEVuZFRpbWVIb3VyIFBsYW5uZWRFbmRUaW1lTWludXRlIFBsYW5uZWRFZmZvcnQgRmlsZVVwbG9hZCBTdWJtaXRXb3JrT3JkZXJBZGQpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBjcmVhdGUgdGVzdCB3b3JrIG9yZGVyCiAgICAgICAgbXkgJFdvcmtPcmRlclRpdGxlUmFuZG9tID0gJ1dvcmsgT3JkZXIgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjV29ya09yZGVyVGl0bGUiLCAgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCRXb3JrT3JkZXJUaXRsZVJhbmRvbSk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjUmljaFRleHQiLCAgICAgICAgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCdTZWxlbml1bSBXb3JrT3JkZXIgSW5zdHJ1Y3Rpb25zJyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3VibWl0V29ya09yZGVyQWRkIiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAxICk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzBdICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCJib2R5IikubGVuZ3RoJyApOwoKICAgICAgICAjIGNoZWNrIGNyZWF0ZWQgdGVzdCB3b3JrIG9yZGVyIHZhbHVlcwogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRSZWZyZXNoKCk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkV29ya09yZGVyVGl0bGVSYW5kb20gKSA+IC0xLAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGZvdW5kIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJENoYW5nZVRpdGxlUmFuZG9tICkgPiAtMSwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IHRlc3Qgd29yayBvcmRlciBJRAogICAgICAgIG15ICRXb3JrT3JkZXJRdW90ZWQgPSAkREJPYmplY3QtPlF1b3RlKCRXb3JrT3JkZXJUaXRsZVJhbmRvbSk7CiAgICAgICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgID0+ICJTRUxFQ1QgaWQgRlJPTSBjaGFuZ2Vfd29ya29yZGVyIFdIRVJFIHRpdGxlID0gPyIsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFdvcmtPcmRlclF1b3RlZCBdCiAgICAgICAgKTsKICAgICAgICBteSAkV29ya09yZGVySUQ7CiAgICAgICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICRXb3JrT3JkZXJJRCA9ICRSb3dbMF07CiAgICAgICAgfQoKICAgICAgICAjIGRlbGV0ZSB0ZXN0IGNyZWF0ZWQgd29yayBvcmRlcgogICAgICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKS0+V29ya09yZGVyRGVsZXRlKAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGVzdCBjcmVhdGVkIGNoYW5nZQogICAgICAgICRTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlRGVsZXRlKAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBtYWtlIHN1cmUgY2FjaGUgaXMgY29ycmVjdAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMWorkOrderAgent.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CiAgICAgICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CgogICAgICAgICMgR2V0IGNoYW5nZSBzdGF0ZSBkYXRhLgogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IGNoYW5nZS4KICAgICAgICBteSAkQ2hhbmdlVGl0bGVSYW5kb20gPSAnSVRTTUNoYW5nZSBSZXF1ZXN0ZWQgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAiVGVzdCBEZXNjcmlwdGlvbiIsCiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gIlRlc3QgSnVzdGlmaWNhdGlvbiIsCiAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB3b3JrIG9yZGVyLgogICAgICAgIG15ICRXb3JrT3JkZXJUaXRsZVJhbmRvbSA9ICdTZWxlbml1bSBXb3JrIE9yZGVyICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRXb3JrT3JkZXJJRCAgICAgICAgICA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckFkZCgKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAkV29ya09yZGVyVGl0bGVSYW5kb20sCiAgICAgICAgICAgIEluc3RydWN0aW9uICAgID0+ICdTZWxlbml1bSBUZXN0IFdvcmsgT3JkZXInLAogICAgICAgICAgICBQbGFubmVkRWZmb3J0ICA9PiAxMCwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIEdldCB0ZXN0IHVzZXIgSUQuCiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50SVRTTVdvcmtPcmRlckFnZW50IHNjcmVlbi4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJBZ2VudDtXb3JrT3JkZXJJRD0kV29ya09yZGVySUQiKTsKCiAgICAgICAgIyBXYWl0IHVudGlsIHBhZ2UgaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5LgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjVXNlciIpLmxlbmd0aDsnICk7CgogICAgICAgICMgSW5wdXQgd29yayBvcmRlciBhZ2VudC4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNVc2VyIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRUZXN0VXNlckxvZ2luKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiAkKCJsaS51aS1tZW51LWl0ZW06dmlzaWJsZSIpLmxlbmd0aDsnICk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJ2xpLnVpLW1lbnUtaXRlbTpjb250YWlucygkVGVzdFVzZXJMb2dpbiknKS5jbGljaygpOyIpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjVXNlcicpLnZhbCgpLmxlbmd0aDsiICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTdWJtaXQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5IHNjcmVlbi4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5O1dvcmtPcmRlcklEPSRXb3JrT3JkZXJJRCIpOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIi5DYW5jZWxDbG9zZVBvcHVwIikubGVuZ3RoOycgKTsKCiAgICAgICAgIyBWZXJpZnkgd29yayBvcmRlciBhZ2VudCBjaGFuZ2UuCiAgICAgICAgbXkgJEhpc3RvcnlBZ2VudE1lc3NhZ2UKICAgICAgICAgICAgPSAiV29ya09yZGVySGlzdG9yeTo6V29ya09yZGVyVXBkYXRlXCIsIFwiV29ya29yZGVyIEFnZW50XCIsIFwiJFRlc3RVc2VyTG9naW4gKElEPSRUZXN0VXNlcklEKVwiIjsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRXb3JrT3JkZXJUaXRsZVJhbmRvbSApID4gLTEsCiAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCB3b3JrIG9yZGVyLgogICAgICAgIG15ICRTdWNjZXNzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyRGVsZXRlKAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgdGVzdCBjcmVhdGVkIGNoYW5nZS4KICAgICAgICAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgTWFrZSBzdXJlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMWorkOrderDelete.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGNoYW5nZQogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICJUZXN0IERlc2NyaXB0aW9uIiwKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAiVGVzdCBKdXN0aWZpY2F0aW9uIiwKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGdldCB3b3JrIG9yZGVyIG9iamVjdAogICAgICAgIG15ICRXb3JrT3JkZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHdvcmsgb3JkZXIKICAgICAgICBteSAkV29ya09yZGVyVGl0bGVSYW5kb20gPSAnU2VsZW5pdW0gV29yayBPcmRlciAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkV29ya09yZGVySUQgICAgICAgICAgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgIENoYW5nZUlEICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJFdvcmtPcmRlclRpdGxlUmFuZG9tLAogICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnU2VsZW5pdW0gVGVzdCBXb3JrIE9yZGVyJywKICAgICAgICAgICAgUGxhbm5lZEVmZm9ydCAgPT4gMTAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRJVFNNV29ya09yZGVyWm9vbSBmb3IgdGVzdCBjcmVhdGVkIHdvcmsgb3JkZXIKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1dvcmtPcmRlcklEPSRXb3JrT3JkZXJJRCIpOwoKICAgICAgICAjIGNsaWNrIG9uICdEZWxldGUnCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlckRlbGV0ZTtXb3JrT3JkZXJJRD0kV29ya09yZGVySUQnKV0iKQogICAgICAgICAgICAtPmNsaWNrKCk7CgogICAgICAgICMgd2FpdCBmb3IgY29uZmlybSBidXR0b24gdG8gc2hvdyB1cCBhbmQgY29uZmlybSBkZWxldGUgYWN0aW9uCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJyNEaWFsb2dCdXR0b24xJykubGVuZ3RoOyIgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNEaWFsb2dCdXR0b24xIiwgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIGNsaWNrIG9uICdIaXN0b3J5JyBhbmQgc3dpdGNoIHdpbmRvdwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudElUU01DaGFuZ2VIaXN0b3J5O0NoYW5nZUlEPSRDaGFuZ2VJRCcpXSIpLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKTsKICAgICAgICBteSAkSGFuZGxlcyA9ICRTZWxlbml1bS0+Z2V0X3dpbmRvd19oYW5kbGVzKCk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzFdICk7CgogICAgICAgICMgd2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeQogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIuQ2FuY2VsQ2xvc2VQb3B1cCIpLmxlbmd0aCcgKTsKCiAgICAgICAgIyB2ZXJpZnkgd29yayBvcmRlciBkZWxldGlvbgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgIldvcmtvcmRlciAoSUQ9JFdvcmtPcmRlcklEKSBkZWxldGVkIiApID4gLTEsCiAgICAgICAgICAgICJXb3JrIE9yZGVyICRXb3JrT3JkZXJJRCBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGRlbGV0ZSB0ZXN0IGNyZWF0ZWQgY2hhbmdlCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIG1ha2Ugc3VyZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMWorkOrderEdit.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CiAgICAgICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CgogICAgICAgICMgRG8gbm90IGNoZWNrIFJpY2hUZXh0LgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdGcm9udGVuZDo6UmljaFRleHQnLAogICAgICAgICAgICBWYWx1ZSA9PiAwLAogICAgICAgICk7CgogICAgICAgICMgR2V0IGNoYW5nZSBzdGF0ZSBkYXRhLgogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IGNoYW5nZS4KICAgICAgICBteSAkQ2hhbmdlVGl0bGVSYW5kb20gPSAnSVRTTUNoYW5nZSBSZXF1ZXN0ZWQgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAiVGVzdCBEZXNjcmlwdGlvbiIsCiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gIlRlc3QgSnVzdGlmaWNhdGlvbiIsCiAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB3b3JrIG9yZGVyLgogICAgICAgIG15ICRXb3JrT3JkZXJUaXRsZVJhbmRvbSA9ICdTZWxlbml1bSBXb3JrIE9yZGVyICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRXb3JrT3JkZXJJbnN0cnVjdGlvbiA9ICdTZWxlbml1bSBUZXN0IFdvcmsgT3JkZXInOwogICAgICAgIG15ICRXb3JrT3JkZXJJRCAgICAgICAgICA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckFkZCgKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAkV29ya09yZGVyVGl0bGVSYW5kb20sCiAgICAgICAgICAgIEluc3RydWN0aW9uICAgID0+ICRXb3JrT3JkZXJJbnN0cnVjdGlvbiwKICAgICAgICAgICAgUGxhbm5lZEVmZm9ydCAgPT4gMTAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1tYW5hZ2VyJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50SVRTTVdvcmtPcmRlckVkaXQgZm9yIHRlc3QgY3JlYXRlZCB3b3JrIG9yZGVyLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlckVkaXQ7V29ya09yZGVySUQ9JFdvcmtPcmRlcklEIik7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI1dvcmtPcmRlclRpdGxlIikubGVuZ3RoOycgKTsKCiAgICAgICAgIyBDaGVjayBzdG9yZWQgdmFsdWVzLgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjV29ya09yZGVyVGl0bGUnLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJFdvcmtPcmRlclRpdGxlUmFuZG9tLAogICAgICAgICAgICAiI1dvcmtPcmRlclRpdGxlIHN0b3JlZCB2YWx1ZSIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnI1JpY2hUZXh0JywgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICRXb3JrT3JkZXJJbnN0cnVjdGlvbiwKICAgICAgICAgICAgIiNJbnN0cnVjdGlvbiBzdG9yZWQgdmFsdWUiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJyNQbGFubmVkRWZmb3J0JywgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICcxMC4wMCcsCiAgICAgICAgICAgICIjUGxhbm5lZEVmZm9ydCBzdG9yZWQgdmFsdWUiLAogICAgICAgICk7CgogICAgICAgICMgRWRpdCB3b3JrIG9yZGVyIGFuZCBzdWJtaXQuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjV29ya09yZGVyVGl0bGUiLCAgICAgICdjc3MnICktPnNlbmRfa2V5cygiIEVkaXQiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSaWNoVGV4dCIsICAgICAgICAgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCIgRWRpdCIpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1BsYW5uZWRFZmZvcnQiLCAgICAgICAnY3NzJyApLT5jbGVhcigpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1BsYW5uZWRFZmZvcnQiLCAgICAgICAnY3NzJyApLT5zZW5kX2tleXMoIjExLjAwIik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3VibWl0V29ya09yZGVyRWRpdCIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoImJvZHkiKS5sZW5ndGg7JyApOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50SVRTTVdvcmtPcmRlckVkaXQgZm9yIHRlc3QgY3JlYXRlZCB3b3JrIG9yZGVyLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlckVkaXQ7V29ya09yZGVySUQ9JFdvcmtPcmRlcklEIik7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI1dvcmtPcmRlclRpdGxlIikubGVuZ3RoOycgKTsKCiAgICAgICAgIyBDaGVjayBlZGl0ZWQgdmFsdWVzLgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjV29ya09yZGVyVGl0bGUnLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJFdvcmtPcmRlclRpdGxlUmFuZG9tIC4gJyBFZGl0JywKICAgICAgICAgICAgIiNXb3JrT3JkZXJUaXRsZSBlZGl0ZWQgdmFsdWUiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJyNSaWNoVGV4dCcsICdjc3MnICktPmdldF92YWx1ZSgpLAogICAgICAgICAgICAkV29ya09yZGVySW5zdHJ1Y3Rpb24gLiAnIEVkaXQnLAogICAgICAgICAgICAiI0luc3RydWN0aW9uIGVkaXRlZCB2YWx1ZSIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnI1BsYW5uZWRFZmZvcnQnLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJzExLjAwJywKICAgICAgICAgICAgIiNQbGFubmVkRWZmb3J0IGVkaXRlZCB2YWx1ZSIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgdGVzdCBjcmVhdGVkIHdvcmsgb3JkZXIuCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJEZWxldGUoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRXb3JrT3JkZXJUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIERlbGV0ZSB0ZXN0IGNyZWF0ZWQgY2hhbmdlLgogICAgICAgICRTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlRGVsZXRlKAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBNYWtlIHN1cmUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9Cik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMWorkOrderHistory.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgR2V0IGNoYW5nZSBzdGF0ZSBkYXRhLgogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICApOwoKICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBjaGFuZ2UuCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgUmVxdWVzdGVkICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRDaGFuZ2VJRCAgICAgICAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAkQ2hhbmdlVGl0bGVSYW5kb20sCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gIlRlc3QgRGVzY3JpcHRpb24iLAogICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICJUZXN0IEp1c3RpZmljYXRpb24iLAogICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgIG15ICRXb3JrT3JkZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHdvcmsgb3JkZXIuCiAgICAgICAgbXkgJFdvcmtPcmRlclRpdGxlUmFuZG9tID0gJ1NlbGVuaXVtIFdvcmsgT3JkZXIgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFdvcmtPcmRlckluc3RydWN0aW9uID0gJ1NlbGVuaXVtIFRlc3QgV29yayBPcmRlcic7CiAgICAgICAgbXkgJFdvcmtPcmRlcklEICAgICAgICAgID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyQWRkKAogICAgICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICRXb3JrT3JkZXJUaXRsZVJhbmRvbSwKICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgPT4gJFdvcmtPcmRlckluc3RydWN0aW9uLAogICAgICAgICAgICBQbGFubmVkRWZmb3J0ICA9PiAxMCwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJExhbmd1YWdlICAgICAgPSAnZW4nOwogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyAgID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0sCiAgICAgICAgICAgIExhbmd1YWdlID0+ICRMYW5ndWFnZSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgIG15ICRMYW5ndWFnZU9iamVjdCA9IEtlcm5lbDo6TGFuZ3VhZ2UtPm5ldygKICAgICAgICAgICAgVXNlckxhbmd1YWdlID0+ICRMYW5ndWFnZSwKICAgICAgICApOwoKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeSBmb3IgdGVzdCBjcmVhdGVkIHdvcmsgb3JkZXIuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNV29ya09yZGVySGlzdG9yeTtXb3JrT3JkZXJJRD0kV29ya09yZGVySUQiKTsKCiAgICAgICAgIyBXYWl0IHVudGlsIHBhZ2UgaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5LgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIuQ2FuY2VsQ2xvc2VQb3B1cCIpLmxlbmd0aDsnICk7CgogICAgICAgICMgQ2hlY2sgc2NyZWVuLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICBteSAkUGxhbm5lZEVmZm9ydCAgPSAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSgnUGxhbm5lZEVmZm9ydCcpOwogICAgICAgIG15ICRXb3JrT3JkZXJUaXRsZSA9ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdXb3JrT3JkZXJUaXRsZScpOwoKICAgICAgICAjIENoZWNrIGZvciBoaXN0b3J5IHZhbHVlcyB1cG9uIHRlc3QgY2hhbmdlIGNyZWF0aW9uLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgIk5ldyBXb3Jrb3JkZXIgKElEPSRXb3JrT3JkZXJJRCkiICkgPiAtMSwKICAgICAgICAgICAgIk5ldyBXb3Jrb3JkZXIgKElEPSRXb3JrT3JkZXJJRCkgaXMgZm91bmQiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAiSW5zdHJ1Y3Rpb246IChuZXc9JFdvcmtPcmRlckluc3RydWN0aW9uLCBvbGQ9KSIgKSA+IC0xLAogICAgICAgICAgICAiSW5zdHJ1Y3Rpb246IChuZXc9JFdvcmtPcmRlckluc3RydWN0aW9uLCBvbGQ9KSBpcyBmb3VuZCIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICIkUGxhbm5lZEVmZm9ydDogKG5ldz0xMCwgb2xkPTAuMDApIiApID4gLTEsCiAgICAgICAgICAgICIkUGxhbm5lZEVmZm9ydDogKG5ldz0xMCwgb2xkPTAuMDApIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIEN1dCBvZmYgdGhlIHdvcmtvcmRlciB0aXRsZSBhZnRlciAzMCBjaGFyYWN0ZXJzIGFuZCBhZGQgWy4uLl0uCiAgICAgICAgbXkgJFdvcmtPcmRlclRpdGxlVHJ1bmNhdGVkID0gc3Vic3RyKCAkV29ya09yZGVyVGl0bGVSYW5kb20sIDAsIDMwICkgLiAnWy4uLl0nOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICIkV29ya09yZGVyVGl0bGU6IChuZXc9JFdvcmtPcmRlclRpdGxlVHJ1bmNhdGVkLCBvbGQ9KSIgKSA+IC0xLAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlOiAobmV3PSRXb3JrT3JkZXJUaXRsZVRydW5jYXRlZCwgb2xkPSkgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCB3b3JrIG9yZGVyLgogICAgICAgIG15ICRTdWNjZXNzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyRGVsZXRlKAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgdGVzdCBjcmVhdGVkIGNoYW5nZS4KICAgICAgICAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgTWFrZSBzdXJlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeDelete.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIGRlbGV0ZSBtZW51IG1vZHVsZSBkZWZhdWx0IGNvbmZpZwogICAgICAgIG15ICVDaGFuZ2VEZWxldGVNZW51ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5TZXR0aW5nR2V0KAogICAgICAgICAgICBOYW1lICAgID0+ICdJVFNNQ2hhbmdlOjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIzEwMC1DaGFuZ2VEZWxldGUnLAogICAgICAgICAgICBEZWZhdWx0ID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ0lUU01DaGFuZ2U6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMTAwLUNoYW5nZURlbGV0ZScsCiAgICAgICAgICAgIFZhbHVlID0+ICRDaGFuZ2VEZWxldGVNZW51e0VmZmVjdGl2ZVZhbHVlfSwKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGdldCBBZ2VudElUU01DaGFuZ2VEZWxldGUgZnJvbnRlbmQgbW9kdWxlIHN5c2NvbmZpZwogICAgICAgIG15ICVDaGFuZ2VEZWxldGVGcm9udGVuZFVwZGF0ZSA9ICgKICAgICAgICAgICAgJ0Rlc2NyaXB0aW9uJyA9PiAnRGVsZXRlIGEgY2hhbmdlJywKICAgICAgICAgICAgJ0dyb3VwUm8nICAgICA9PiBbCiAgICAgICAgICAgICAgICAnaXRzbS1jaGFuZ2UtbWFuYWdlcicKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ05hdkJhck5hbWUnID0+ICdJVFNNIENoYW5nZScsCiAgICAgICAgICAgICdUaXRsZScgICAgICA9PiAnRGVsZXRlJwogICAgICAgICk7CgogICAgICAgICMgc2V0IEFnZW50SVRTTUNoYW5nZURlbGV0ZSBmcm9udGVuZCBtb2R1bGUgb24gdmFsaWQKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50SVRTTUNoYW5nZURlbGV0ZScsCiAgICAgICAgICAgIFZhbHVlID0+IFwlQ2hhbmdlRGVsZXRlRnJvbnRlbmRVcGRhdGUsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgZ2VuZXJhbCBjYXRhbG9nIG9iamVjdAogICAgICAgIG15ICRHZW5lcmFsQ2F0YWxvZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugc3RhdGUgZGF0YQogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGNoYW5nZQogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICJUZXN0IERlc2NyaXB0aW9uIiwKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAiVGVzdCBKdXN0aWZpY2F0aW9uIiwKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSBhbmQgbG9nIGluIHRlc3QgdXNlcgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1idWlsZGVyJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0KICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudElUU01DaGFuZ2Ugc2NyZWVuIHdpdGggcmVxdWVzdGVkIGZpbHRlciBhbmQgb3JkZXJlZCBkb3duCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgKICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZTtTb3J0Qnk9Q2hhbmdlTnVtYmVyO09yZGVyQnk9RG93bjtWaWV3PTtGaWx0ZXI9cmVxdWVzdGVkIgogICAgICAgICk7CgogICAgICAgICMgdmVyaWZ5IHRoYXQgdGVzdCBjcmVhdGVkIGNoYW5nZSBpcyBwcmVzZW50CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQ2hhbmdlVGl0bGVSYW5kb20gKSA+IC0xLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIGNsaWNrIG9uIHRlc3QgY3JlYXRlZCBjaGFuZ2UKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdBY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0kQ2hhbmdlSUQnKV0iKQogICAgICAgICAgICAtPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjbGljayBvbiAnRGVsZXRlJwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudElUU01DaGFuZ2VEZWxldGU7Q2hhbmdlSUQ9JENoYW5nZUlEJyldIiktPmNsaWNrKCk7CgogICAgICAgICMgd2FpdCBmb3Igc2VydmVyIHNpZGUgZXJyb3IKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gInJldHVybiB0eXBlb2YoXCQpID09PSAnZnVuY3Rpb24nICYmIFwkKCdkaXYuRGlhbG9nIGJ1dHRvbiNEaWFsb2dCdXR0b24xJykubGVuZ3RoIgogICAgICAgICk7CgogICAgICAgICMgY2xpY2sgb2sgdG8gZGlzbWlzcwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnZGl2LkRpYWxvZyBidXR0b24jRGlhbG9nQnV0dG9uMScsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhhdCB0ZXN0IGNyZWF0ZWQgY2hhbmdlIGlzIG5vdCBwcmVzZW50CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQ2hhbmdlVGl0bGVSYW5kb20gKSA9PSAtMSwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBub3QgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgbWFrZSBzdXJlIGNhY2hlIGlzIGNvcnJlY3QKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9Cik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeReset.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgR2V0IGNoYW5nZSByZXNldCBtZW51IG1vZHVsZSBkZWZhdWx0IGNvbmZpZy4KICAgICAgICBteSAlQ2hhbmdlUmVzZXRNZW51ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5TZXR0aW5nR2V0KAogICAgICAgICAgICBOYW1lICAgID0+ICdJVFNNQ2hhbmdlOjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIzExMC1DaGFuZ2VSZXNldCcsCiAgICAgICAgICAgIERlZmF1bHQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnSVRTTUNoYW5nZTo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUjIyMxMTAtQ2hhbmdlUmVzZXQnLAogICAgICAgICAgICBWYWx1ZSA9PiAkQ2hhbmdlUmVzZXRNZW51e0VmZmVjdGl2ZVZhbHVlfSwKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIEdldCBBZ2VtdElUU01DaGFuZ2VSZXNldCBmcm9udGVuZCBtb2R1bGUgc3lzY29uZmlnLgogICAgICAgIG15ICVDaGFuZ2VSZXNldEZyb250ZW5kVXBkYXRlID0gKAogICAgICAgICAgICAnRGVzY3JpcHRpb24nID0+ICdSZXNldCBhIGNoYW5nZSBhbmQgaXRzIHdvcmtvcmRlcnMnLAogICAgICAgICAgICAnR3JvdXBSbycgICAgID0+IFsKICAgICAgICAgICAgICAgICdpdHNtLWNoYW5nZS1idWlsZGVyJwogICAgICAgICAgICBdLAogICAgICAgICAgICAnTmF2QmFyTmFtZScgPT4gJ0lUU00gQ2hhbmdlJywKICAgICAgICAgICAgJ1RpdGxlJyAgICAgID0+ICdSZXNldCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBTZXQgQWdlbXRJVFNNQ2hhbmdlUmVzZXQgZnJvbnRlbmQgbW9kdWxlIG9uIHZhbGlkLgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRJVFNNQ2hhbmdlUmVzZXQnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJUNoYW5nZVJlc2V0RnJvbnRlbmRVcGRhdGUsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJEdlbmVyYWxDYXRhbG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyk7CgogICAgICAgICMgR2V0IGNoYW5nZSBzdGF0ZSBkYXRhLgogICAgICAgIG15IEBDaGFuZ2VTdGF0ZUlEczsKICAgICAgICBmb3IgbXkgJENoYW5nZVN0YXRlIChxdyhyZXF1ZXN0ZWQgYXBwcm92ZWQpKSB7CiAgICAgICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1HZXQoCiAgICAgICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgICAgICAgICBOYW1lICA9PiAkQ2hhbmdlU3RhdGUsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHB1c2ggQENoYW5nZVN0YXRlSURzLCAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfTsKICAgICAgICB9CgogICAgICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IGNoYW5nZS4KICAgICAgICBteSAkQ2hhbmdlVGl0bGVSYW5kb20gPSAnSVRTTUNoYW5nZSBBcHByb3ZlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICJUZXN0IERlc2NyaXB0aW9uIiwKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAiVGVzdCBKdXN0aWZpY2F0aW9uIiwKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVJRHNbMV0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBHZXQgd29yayBvcmRlciBzdGF0ZSBkYXRhLgogICAgICAgIG15IEBXb3JrT3JkZXJTdGF0ZUlEczsKICAgICAgICBmb3IgbXkgJFdvcmtPcmRlclN0YXRlIChxdyhjcmVhdGVkIGFjY2VwdGVkKSkgewogICAgICAgICAgICBteSAkV29ya09yZGVyU3RhdGVEYXRhUmVmID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtR2V0KAogICAgICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OldvcmtPcmRlcjo6U3RhdGUnLAogICAgICAgICAgICAgICAgTmFtZSAgPT4gJFdvcmtPcmRlclN0YXRlLAogICAgICAgICAgICApOwogICAgICAgICAgICBwdXNoIEBXb3JrT3JkZXJTdGF0ZUlEcywgJFdvcmtPcmRlclN0YXRlRGF0YVJlZi0+e0l0ZW1JRH07CiAgICAgICAgfQoKICAgICAgICBteSAkV29ya09yZGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB3b3JrIG9yZGVyLgogICAgICAgIG15ICRXb3JrT3JkZXJUaXRsZVJhbmRvbSA9ICdTZWxlbml1bSBXb3JrIE9yZGVyICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRXb3JrT3JkZXJJRCAgICAgICAgICA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckFkZCgKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4gJFdvcmtPcmRlclRpdGxlUmFuZG9tLAogICAgICAgICAgICBJbnN0cnVjdGlvbiAgICAgID0+ICdTZWxlbml1bSBUZXN0IFdvcmsgT3JkZXInLAogICAgICAgICAgICBXb3JrT3JkZXJTdGF0ZUlEID0+ICRXb3JrT3JkZXJTdGF0ZUlEc1sxXSwKICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnMjAyNy0xMC0xMiAwMDowMDowMScsCiAgICAgICAgICAgIFBsYW5uZWRFbmRUaW1lICAgPT4gJzIwMjctMTAtMTUgMTU6MDA6MDAnLAogICAgICAgICAgICBQbGFubmVkRWZmb3J0ICAgID0+IDEwLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1idWlsZGVyJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0KICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudElUU01DaGFuZ2Vab29tIG9mIGNyZWF0ZWQgdGVzdCBjaGFuZ2UuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0kQ2hhbmdlSUQiKTsKCiAgICAgICAgIyBXYWl0IHVudGlsIHBhZ2UgaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5LgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PgogICAgICAgICAgICAgICAgInJldHVybiB0eXBlb2YoXCQpID09PSAnZnVuY3Rpb24nICYmIFwkKCdhW2hyZWYqPVwiQWN0aW9uPUFnZW50SVRTTUNoYW5nZVJlc2V0O0NoYW5nZUlEPSRDaGFuZ2VJRFwiXScpLmxlbmd0aDsiCiAgICAgICAgKTsKCiAgICAgICAgIyBDbGljayBvbiAnUmVzZXQnLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudElUU01DaGFuZ2VSZXNldDtDaGFuZ2VJRD0kQ2hhbmdlSUQnKV0iKS0+Y2xpY2soKTsKCiAgICAgICAgIyBXYWl0IGZvciBjb25maXJtIGJ1dHRvbiB0byBzaG93IHVwIGFuZCBjb25maXJtIHJlc2V0IGFjdGlvbi4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnLkRpYWxvZyBidXR0b24uUHJpbWFyeS5DYWxsRm9yQWN0aW9uOnZpc2libGUnKS5sZW5ndGg7IiApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiLkRpYWxvZyBidXR0b24uUHJpbWFyeS5DYWxsRm9yQWN0aW9uIiwgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJ2FbaHJlZio9XCJBY3Rpb249QWdlbnRJVFNNQ2hhbmdlUmVzZXQ7Q2hhbmdlSUQ9JENoYW5nZUlEXCJdJykubGVuZ3RoOyIKICAgICAgICApOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50SVRTTUNoYW5nZUhpc3Rvcnkgb2YgY3JlYXRlZCB0ZXN0IGNoYW5nZS4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2VIaXN0b3J5O0NoYW5nZUlEPSRDaGFuZ2VJRCIpOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIi5DYW5jZWxDbG9zZVBvcHVwIikubGVuZ3RoOycgKTsKCiAgICAgICAgIyBWZXJpZnkgdGhhdCBjaGFuZ2Ugc3RhdGUgaXMgcmVzZXRlZC4KICAgICAgICBteSAkV29ya09yZGVyUmVzZXRNZXNzYWdlCiAgICAgICAgICAgID0gIihJRD0kV29ya09yZGVySUQpIFdvcmtvcmRlciBTdGF0ZTogKG5ldz1DcmVhdGVkIChJRD0kV29ya09yZGVyU3RhdGVJRHNbMF0pLCBvbGQ9QWNjZXB0ZWQgKElEPSRXb3JrT3JkZXJTdGF0ZUlEc1sxXSkpIjsKICAgICAgICBteSAkQ2hhbmdlUmVzZXRNZXNzYWdlCiAgICAgICAgICAgID0gIkNoYW5nZSBTdGF0ZTogKG5ldz1SZXF1ZXN0ZWQgKElEPSRDaGFuZ2VTdGF0ZUlEc1swXSksIG9sZD1BcHByb3ZlZCAoSUQ9JENoYW5nZVN0YXRlSURzWzFdKSkiOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFdvcmtPcmRlclJlc2V0TWVzc2FnZSApID4gLTEsCiAgICAgICAgICAgICIkV29ya09yZGVyUmVzZXRNZXNzYWdlIGlzIGZvdW5kIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJENoYW5nZVJlc2V0TWVzc2FnZSApID4gLTEsCiAgICAgICAgICAgICIkQ2hhbmdlUmVzZXRNZXNzYWdlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIERlbGV0ZSB0ZXN0IGNyZWF0ZWQgd29yayBvcmRlci4KICAgICAgICBteSAkU3VjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckRlbGV0ZSgKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCBjaGFuZ2UuCiAgICAgICAgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSBjYWNoZSBpcyBjb3JyZWN0LgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMWorkOrderHistoryZoom.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CiAgICAgICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CgogICAgICAgICMgR2V0IGNoYW5nZSBzdGF0ZSBkYXRhLgogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IGNoYW5nZS4KICAgICAgICBteSAkQ2hhbmdlVGl0bGVSYW5kb20gPSAnSVRTTUNoYW5nZSBSZXF1ZXN0ZWQgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAiVGVzdCBEZXNjcmlwdGlvbiIsCiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gIlRlc3QgSnVzdGlmaWNhdGlvbiIsCiAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB3b3JrIG9yZGVyLgogICAgICAgIG15ICRXb3JrT3JkZXJUaXRsZVJhbmRvbSA9ICdTZWxlbml1bSBXb3JrIE9yZGVyICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRXb3JrT3JkZXJJRCAgICAgICAgICA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckFkZCgKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAkV29ya09yZGVyVGl0bGVSYW5kb20sCiAgICAgICAgICAgIEluc3RydWN0aW9uICAgID0+ICdTZWxlbml1bSBUZXN0IFdvcmsgT3JkZXInLAogICAgICAgICAgICBQbGFubmVkRWZmb3J0ICA9PiAxMCwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRJVFNNV29ya09yZGVyWm9vbSBmb3IgdGVzdCBjcmVhdGVkIHdvcmsgb3JkZXIuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNV29ya09yZGVyWm9vbTtXb3JrT3JkZXJJRD0kV29ya09yZGVySUQiKTsKCiAgICAgICAgIyBDbGljayBvbiAnSGlzdG9yeScgYW5kIHN3aXRjaCB3aW5kb3cuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnk7V29ya09yZGVySUQ9JFdvcmtPcmRlcklEJyldIikKICAgICAgICAgICAgLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKTsKICAgICAgICBteSAkSGFuZGxlcyA9ICRTZWxlbml1bS0+Z2V0X3dpbmRvd19oYW5kbGVzKCk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzFdICk7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICBzbGVlcCAxOwogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRSZWZyZXNoKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCJhW2hyZWYqPVwnQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeVpvb207SGlzdG9yeUVudHJ5SURcJ10iKS5sZW5ndGgnCiAgICAgICAgKTsKCiAgICAgICAgIyBDbGljayBvbiBoaXN0b3J5IHNob3cgZGV0YWlscyB0byBjaGVjayBBZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbSBzY3JlZW4uCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlckhpc3Rvcnlab29tO0hpc3RvcnlFbnRyeUlEPScgKV0iKQogICAgICAgICAgICAtPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBDaGVjayBBZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5Wm9vbSB2YWx1ZXMuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAiRGV0YWlsZWQgaGlzdG9yeSBpbmZvcm1hdGlvbiBvZiBXb3JrT3JkZXJVcGRhdGUiICkgPiAtMSwKICAgICAgICAgICAgIkRldGFpbGVkIGhpc3RvcnkgaW5mb3JtYXRpb24gb2YgV29ya09yZGVyVXBkYXRlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICJXb3JrT3JkZXJUaXRsZSIgKSA+IC0xLAogICAgICAgICAgICAiV29ya09yZGVyVGl0bGUgaXMgZm91bmQiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkV29ya09yZGVyVGl0bGVSYW5kb20gKSA+IC0xLAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIERlbGV0ZSB0ZXN0IGNyZWF0ZWQgd29yayBvcmRlci4KICAgICAgICBteSAkU3VjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckRlbGV0ZSgKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCBjaGFuZ2UuCiAgICAgICAgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSBjYWNoZSBpcyBjb3JyZWN0LgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMWorkOrderReport.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkR2VuZXJhbENhdGFsb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKTsKICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwogICAgICAgIG15ICRXb3JrT3JkZXJPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CgogICAgICAgICMgRG8gbm90IGNoZWNrIFJpY2hUZXh0LgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdGcm9udGVuZDo6UmljaFRleHQnLAogICAgICAgICAgICBWYWx1ZSA9PiAwLAogICAgICAgICk7CgogICAgICAgICMgR2V0IGNoYW5nZSBzdGF0ZSBkYXRhLgogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkR2VuZXJhbENhdGFsb2dPYmplY3QtPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBjaGFuZ2UuCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgUmVxdWVzdGVkICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRDaGFuZ2VJRCAgICAgICAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAkQ2hhbmdlVGl0bGVSYW5kb20sCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gIlRlc3QgRGVzY3JpcHRpb24iLAogICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICJUZXN0IEp1c3RpZmljYXRpb24iLAogICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3Qgd29yayBvcmRlci4KICAgICAgICBteSAkV29ya09yZGVyVGl0bGVSYW5kb20gPSAnU2VsZW5pdW0gV29yayBPcmRlciAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkV29ya09yZGVySUQgICAgICAgICAgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgIENoYW5nZUlEICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJFdvcmtPcmRlclRpdGxlUmFuZG9tLAogICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnU2VsZW5pdW0gVGVzdCBXb3JrIE9yZGVyJywKICAgICAgICAgICAgUGxhbm5lZEVmZm9ydCAgPT4gMTAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyLgogICAgICAgIG15ICRMYW5ndWFnZSAgICAgID0gJ2VuJzsKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgICA9PiBbICdhZG1pbicsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1tYW5hZ2VyJyBdLAogICAgICAgICAgICBMYW5ndWFnZSA9PiAkTGFuZ3VhZ2UsCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkTGFuZ3VhZ2VPYmplY3QgPSBLZXJuZWw6Okxhbmd1YWdlLT5uZXcoCiAgICAgICAgICAgIFVzZXJMYW5ndWFnZSA9PiAkTGFuZ3VhZ2UsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICBteSAkV29ya09yZGVyU3RhdGVUZXh0ID0gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ1dvcmtPcmRlclN0YXRlJyk7CgogICAgICAgICMgR2V0IHdvcmsgb3JkZXIgc3RhdGVzLgogICAgICAgIG15IEBXb3JrT3JkZXJTdGF0ZXMgPSAoICdhY2NlcHRlZCcsICdyZWFkeScsICdpbiBwcm9ncmVzcycsICdjbG9zZWQnICk7CgogICAgICAgIGZvciBteSAkV29ya09yZGVyU3RhdGUgKEBXb3JrT3JkZXJTdGF0ZXMpIHsKCiAgICAgICAgICAgICMgR2V0IHdvcmsgb3JkZXIgc3RhdGUgZGF0YS4KICAgICAgICAgICAgbXkgJEl0ZW1HZXRTdGF0ZSAgICAgICAgICA9IGxjICRXb3JrT3JkZXJTdGF0ZTsKICAgICAgICAgICAgbXkgJFdvcmtPcmRlclN0YXRlRGF0YVJlZiA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUdldCgKICAgICAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpXb3JrT3JkZXI6OlN0YXRlJywKICAgICAgICAgICAgICAgIE5hbWUgID0+ICRJdGVtR2V0U3RhdGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkV29ya09yZGVyU3RhdGUgPSAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSgiJFdvcmtPcmRlclN0YXRlIik7CgogICAgICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50SVRTTVdvcmtPcmRlclJlcG9ydCBmb3IgdGVzdCBjcmVhdGVkIHdvcmsgb3JkZXIuCiAgICAgICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlclJlcG9ydDtXb3JrT3JkZXJJRD0kV29ya09yZGVySUQiKTsKCiAgICAgICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICAgICAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjU3VibWl0V29ya09yZGVyRWRpdFJlcG9ydCIpLmxlbmd0aCAmJiAkKCIjV29ya09yZGVyU3RhdGVJRCIpLmxlbmd0aDsnCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAiXCQoJyNXb3JrT3JkZXJTdGF0ZUlEJykudmFsKCckV29ya09yZGVyU3RhdGVEYXRhUmVmLT57SXRlbUlEfScpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJyNXb3JrT3JkZXJTdGF0ZUlEJykudmFsKCkgPT09ICckV29ya09yZGVyU3RhdGVEYXRhUmVmLT57SXRlbUlEfSc7IgogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBJbnB1dCB0ZXh0IGluIHJlcG9ydCBhbmQgc2VsZWN0IG5leHQgd29yayBvcmRlciBzdGF0ZS4KICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjUmljaFRleHQiLCAnY3NzJyApLT5jbGVhcigpOwogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSaWNoVGV4dCIsICdjc3MnICktPnNlbmRfa2V5cygiJFdvcmtPcmRlclN0YXRlIik7CgogICAgICAgICAgICAjIFN1Ym1pdCBhbmQgc3dpdGNoIGJhY2sgd2luZG93LgogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJtaXRXb3JrT3JkZXJFZGl0UmVwb3J0IiwgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudElUU01Xb3JrT3JkZXJab29tIGZvciB0ZXN0IGNyZWF0ZWQgd29yayBvcmRlci4KICAgICAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNV29ya09yZGVySGlzdG9yeTtXb3JrT3JkZXJJRD0kV29ya09yZGVySUQiKTsKCiAgICAgICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIi5DYW5jZWxDbG9zZVBvcHVwIikubGVuZ3RoOycgKTsKCiAgICAgICAgICAgICMgVmVyaWZ5IHJlcG9ydCBjaGFuZ2UuCiAgICAgICAgICAgIG15ICRSZXBvcnRVcGRhdGVNZXNzYWdlCiAgICAgICAgICAgICAgICA9ICIkV29ya09yZGVyU3RhdGVUZXh0OiAobmV3PSRXb3JrT3JkZXJTdGF0ZSAoSUQ9JFdvcmtPcmRlclN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0pLCBvbGQ9IjsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFJlcG9ydFVwZGF0ZU1lc3NhZ2UgKSA+IC0xLAogICAgICAgICAgICAgICAgIiRSZXBvcnRVcGRhdGVNZXNzYWdlIGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCB3b3JrIG9yZGVyLgogICAgICAgIG15ICRTdWNjZXNzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyRGVsZXRlKAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgdGVzdCBjcmVhdGVkIGNoYW5nZS4KICAgICAgICAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgTWFrZSBzdXJlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMWorkOrderTemplate.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGNoYW5nZQogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICJUZXN0IERlc2NyaXB0aW9uIiwKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAiVGVzdCBKdXN0aWZpY2F0aW9uIiwKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGdldCB3b3JrIG9yZGVyIG9iamVjdAogICAgICAgIG15ICRXb3JrT3JkZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHdvcmsgb3JkZXIKICAgICAgICBteSAkV29ya09yZGVyVGl0bGVSYW5kb20gPSAnU2VsZW5pdW0gV29yayBPcmRlciAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkV29ya09yZGVySW5zdHJ1Y3Rpb24gPSAnU2VsZW5pdW0gVGVzdCBXb3JrIE9yZGVyJzsKICAgICAgICBteSAkV29ya09yZGVySUQgICAgICAgICAgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgIENoYW5nZUlEICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJFdvcmtPcmRlclRpdGxlUmFuZG9tLAogICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAkV29ya09yZGVySW5zdHJ1Y3Rpb24sCiAgICAgICAgICAgIFBsYW5uZWRFZmZvcnQgID0+IDEwLAogICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRXb3JrT3JkZXJUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSBhbmQgbG9nIGluIHRlc3QgdXNlcgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1tYW5hZ2VyJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50SVRTTVdvcmtPcmRlclpvb20gZm9yIHRlc3QgY3JlYXRlZCB3b3JrIG9yZGVyCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNV29ya09yZGVyWm9vbTtXb3JrT3JkZXJJRD0kV29ya09yZGVySUQiKTsKCiAgICAgICAgIyBjbGljayBvbiAnVGVtcGxhdGUnIGFuZCBzd2l0Y2ggd2luZG93CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlclRlbXBsYXRlO1dvcmtPcmRlcklEPSRXb3JrT3JkZXJJRCcpXSIpCiAgICAgICAgICAgIC0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICk7CiAgICAgICAgbXkgJEhhbmRsZXMgPSAkU2VsZW5pdW0tPmdldF93aW5kb3dfaGFuZGxlcygpOwogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlsxXSApOwoKICAgICAgICAjIHdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI1RlbXBsYXRlTmFtZSIpLmxlbmd0aCcgKTsKCiAgICAgICAgIyBjaGVjayBwYWdlCiAgICAgICAgZm9yIG15ICRJRCAocXcoVGVtcGxhdGVOYW1lIENvbW1lbnQgU3RhdGVSZXNldCBWYWxpZElEIFN1Ym1pdEFkZFRlbXBsYXRlKSkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBjcmVhdGUgdGVzdCB0ZW1wbGF0ZSBmcm9tIHRlc3Qgd29yayBvcmRlcgogICAgICAgIG15ICRUZW1wbGF0ZU5hbWVSYW5kb20gPSAiV29yayBPcmRlciBUZW1wbGF0ZSAiIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNUZW1wbGF0ZU5hbWUiLCAgICAgICdjc3MnICktPnNlbmRfa2V5cygkVGVtcGxhdGVOYW1lUmFuZG9tKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDb21tZW50IiwgICAgICAgICAgICdjc3MnICktPnNlbmRfa2V5cygiU2VsZW5pdW1Db21tZW50Iik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3VibWl0QWRkVGVtcGxhdGUiLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDEgKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMF0gKTsKCiAgICAgICAgc2xlZXAoMSk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCJib2R5IikubGVuZ3RoJyApOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIElUU01DaGFuZ2VUZW1wbGF0ZU92ZXJ2aWV3IHNjcmVlbgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoCiAgICAgICAgICAgICIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01UZW1wbGF0ZU92ZXJ2aWV3O1NvcnRCeT1UZW1wbGF0ZUlEO09yZGVyQnk9VXA7RmlsdGVyPUlUU01Xb3JrT3JkZXIiCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBmb3IgdGVzdCBjcmVhdGVkIHdvcmsgb3JkZXIgdGVtcGxhdGUKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRUZW1wbGF0ZU5hbWVSYW5kb20gKSA+IC0xLAogICAgICAgICAgICAiJFRlbXBsYXRlTmFtZVJhbmRvbSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGVzdCBjcmVhdGVkIHdvcmsgb3JkZXIKICAgICAgICBteSAkU3VjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckRlbGV0ZSgKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgZGVsZXRlIGNyZWF0ZWQgdGVzdCBjaGFuZ2UKICAgICAgICAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCB0ZXN0IGNoYW5nZSB0ZW1wbGF0ZSBJRAogICAgICAgIG15ICRUZW1wbGF0ZWRRdW90ZWQgPSAkREJPYmplY3QtPlF1b3RlKCRUZW1wbGF0ZU5hbWVSYW5kb20pOwogICAgICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMICA9PiAiU0VMRUNUIGlkIEZST00gY2hhbmdlX3RlbXBsYXRlIFdIRVJFIG5hbWUgPSA/IiwKICAgICAgICAgICAgQmluZCA9PiBbIFwkVGVtcGxhdGVkUXVvdGVkIF0KICAgICAgICApOwogICAgICAgIG15ICRUZW1wbGF0ZUlEOwogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAkVGVtcGxhdGVJRCA9ICRSb3dbMF07CiAgICAgICAgfQoKICAgICAgICAjIGRlbGV0ZSBjcmVhdGVkIHRlc3QgdGVtcGxhdGUKICAgICAgICAkU3VjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpLT5UZW1wbGF0ZURlbGV0ZSgKICAgICAgICAgICAgVGVtcGxhdGVJRCA9PiAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMWorkOrderZoom.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGNoYW5nZQogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICJUZXN0IERlc2NyaXB0aW9uIiwKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAiVGVzdCBKdXN0aWZpY2F0aW9uIiwKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGdldCB3b3JrIG9yZGVyIG9iamVjdAogICAgICAgIG15ICRXb3JrT3JkZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHdvcmsgb3JkZXIKICAgICAgICBteSAkV29ya09yZGVyVGl0bGVSYW5kb20gPSAnU2VsZW5pdW0gV29yayBPcmRlciAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkV29ya09yZGVySUQgICAgICAgICAgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgIENoYW5nZUlEICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJFdvcmtPcmRlclRpdGxlUmFuZG9tLAogICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnU2VsZW5pdW0gVGVzdCBXb3JrIE9yZGVyJywKICAgICAgICAgICAgUGxhbm5lZEVmZm9ydCAgPT4gMTAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRJVFNNV29ya09yZGVyWm9vbSBmb3IgdGVzdCBjcmVhdGVkIHdvcmsgb3JkZXIKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1dvcmtPcmRlcklEPSRXb3JrT3JkZXJJRCIpOwoKICAgICAgICAjIHZlcmlmeSBpdHMgcmlnaHQgc2NyZWVuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkV29ya09yZGVyVGl0bGVSYW5kb20gKSA+IC0xLAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGZvdW5kIG9uIHBhZ2UiLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgcGFnZQogICAgICAgIGZvciBteSAkQWN0aW9uICgKICAgICAgICAgICAgcXcoIFdvcmtPcmRlckhpc3RvcnkgQ2hhbmdlUHJpbnQgV29ya09yZGVyRWRpdCBXb3JrT3JkZXJBZ2VudCBXb3JrT3JkZXJSZXBvcnQgV29ya09yZGVyVGVtcGxhdGUgV29ya09yZGVyRGVsZXRlKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudAogICAgICAgICAgICAgICAgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdBY3Rpb249QWdlbnRJVFNNJEFjdGlvbjtXb3JrT3JkZXJJRD0kV29ya09yZGVySUQnKV0iKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBkZWxldGUgdGVzdCBjcmVhdGVkIHdvcmsgb3JkZXIKICAgICAgICBteSAkU3VjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckRlbGV0ZSgKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgZGVsZXRlIGNyZWF0ZWQgdGVzdCBjaGFuZ2UKICAgICAgICAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMCABMemberSearch.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgR2V0IGNoYW5nZSBzdGF0ZSBkYXRhLgogICAgICAgIG15ICRDaGFuZ2VEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgY2hhbmdlLgogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IERlc2NyaXB0aW9uJywKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnU2VsZW5pdW0gVGVzdCBKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgYW5kIGxvZyBpbiBidWlsZGVyIHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgYnVpbGRlciB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgIyBHZXQgdGVzdCB1c2VyIElELgogICAgICAgIG15ICRUZXN0VXNlcklEID0gJFVzZXJPYmplY3QtPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IENBQiB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlckNBQiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCBidWlsZGVyIHVzZXIiOwoKICAgICAgICAjIEdldCB0ZXN0IENBQiB1c2VyIElELgogICAgICAgIG15ICRUZXN0VXNlckNBQklEID0gJFVzZXJPYmplY3QtPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJDQUIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBjdXN0b21lciB1c2VyLgogICAgICAgIG15ICRUZXN0Q3VzdG9tZXJDQUIgPSAkSGVscGVyLT5UZXN0Q3VzdG9tZXJVc2VyQ3JlYXRlKCk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudElUU01DaGFuZ2Vab29tIHNjcmVlbi4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPSRDaGFuZ2VJRCIpOwoKICAgICAgICAjIENsaWNrIG9uICdJbnZvbHZlZCBQZXJzb25zJyBhbmQgc3dpdGNoIHdpbmRvdy4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdBY3Rpb249QWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zO0NoYW5nZUlEPSRDaGFuZ2VJRCcpXSIpCiAgICAgICAgICAgIC0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICk7CiAgICAgICAgbXkgJEhhbmRsZXMgPSAkU2VsZW5pdW0tPmdldF93aW5kb3dfaGFuZGxlcygpOwogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlsxXSApOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNDaGFuZ2VNYW5hZ2VyIikubGVuZ3RoOycgKTsKICAgICAgICBzbGVlcCAyOwoKICAgICAgICAjIElucHV0IGNoYW5nZSBtYW5hZ2VyLgogICAgICAgIG15ICRBdXRvQ29tcGxldGVTdHJpbmdNYW5hZ2VyCiAgICAgICAgICAgID0gIlwiJFRlc3RVc2VyTG9naW4gJFRlc3RVc2VyTG9naW5cIiA8JFRlc3RVc2VyTG9naW5cQGxvY2FsdW5pdHRlc3QuY29tPiAoJFRlc3RVc2VySUQpIjsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDaGFuZ2VNYW5hZ2VyIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRUZXN0VXNlckxvZ2luKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiAkKCJsaS51aS1tZW51LWl0ZW06dmlzaWJsZSIpLmxlbmd0aDsnICk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJ2xpLnVpLW1lbnUtaXRlbTpjb250YWlucygkQXV0b0NvbXBsZXRlU3RyaW5nTWFuYWdlciknKS5jbGljaygpOyIpOwoKICAgICAgICAjIElucHV0IGNoYW5nZSBhZ2VudCBDQUIuCiAgICAgICAgbXkgJEF1dG9Db21wbGV0ZVN0cmluZ0NBQiA9ICJcIiRUZXN0VXNlckNBQiAkVGVzdFVzZXJDQUJcIiA8JFRlc3RVc2VyQ0FCXEBsb2NhbHVuaXR0ZXN0LmNvbT4gKCRUZXN0VXNlckNBQklEKSI7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTmV3Q0FCTWVtYmVyIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRUZXN0VXNlckNBQik7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gJCgibGkudWktbWVudS1pdGVtOnZpc2libGUiKS5sZW5ndGg7JyApOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCdsaS51aS1tZW51LWl0ZW06Y29udGFpbnMoJEF1dG9Db21wbGV0ZVN0cmluZ0NBQiknKS5jbGljaygpOyIpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHR5cGU9J3N1Ym1pdCddW1xAbmFtZT0nQWRkQ0FCTWVtYmVyQnV0dG9uJ10iKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gJCgiI05ld1RlbXBsYXRlQnV0dG9uIikubGVuZ3RoOycgKTsKCiAgICAgICAgIyBJbnB1dCBjaGFuZ2UgY3VzdG9tZXIgQ0FCLgogICAgICAgIG15ICRBdXRvQ29tcGxldGVTdHJpbmdDdXN0b21lcgogICAgICAgICAgICA9ICJcIiRUZXN0Q3VzdG9tZXJDQUIgJFRlc3RDdXN0b21lckNBQlwiIDwkVGVzdEN1c3RvbWVyQ0FCXEBsb2NhbHVuaXR0ZXN0LmNvbT4gKCRUZXN0Q3VzdG9tZXJDQUIpIjsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNOZXdDQUJNZW1iZXIiLCAnY3NzJyApLT5zZW5kX2tleXMoJFRlc3RDdXN0b21lckNBQik7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gJCgibGkudWktbWVudS1pdGVtOnZpc2libGUiKS5sZW5ndGg7JyApOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCdsaS51aS1tZW51LWl0ZW06Y29udGFpbnMoJEF1dG9Db21wbGV0ZVN0cmluZ0N1c3RvbWVyKScpLmNsaWNrKCk7Iik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdHlwZT0nc3VibWl0J11bXEBuYW1lPSdBZGRDQUJNZW1iZXJCdXR0b24nXSIpLT5jbGljaygpOwoKICAgICAgICAjIFNlYXJjaCBpZiBkYXRhIGlzIGluIHRoZSB0YWJsZS4KICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJ3RhYmxlLkRhdGFUYWJsZSB0ciB0ZDpjb250YWlucygkVGVzdFVzZXJDQUIpJykubGVuZ3RoOyIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgIkNBQiBhdXRvY29tcGxldGVkICRUZXN0VXNlckNBQiBpcyBmb3VuZCIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJ3RhYmxlLkRhdGFUYWJsZSB0ciB0ZDpjb250YWlucygkVGVzdEN1c3RvbWVyQ0FCKScpLmxlbmd0aDsiCiAgICAgICAgICAgICksCiAgICAgICAgICAgICJDQUIgYXV0b2NvbXBsZXRlZCAkVGVzdEN1c3RvbWVyQ0FCIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIERlbGV0ZSBjcmVhdGVkIHRlc3QgY2hhbmdlLgogICAgICAgIG15ICRTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlRGVsZXRlKAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeSearch.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBHZXQgU2VsZW5pdW0gb2JqZWN0LgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAgICAgIyBHZXQgY2hhbmdlIHN0YXRlIGRhdGEuCiAgICAgICAgbXkgJENoYW5nZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IGNoYW5nZS4KICAgICAgICBteSAkQ2hhbmdlVGl0bGVSYW5kb20gPSAnSVRTTUNoYW5nZSBSZXF1ZXN0ZWQgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gVGVzdCBEZXNjcmlwdGlvbicsCiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gJ1NlbGVuaXVtIFRlc3QgSnVzdGlmaWNhdGlvbicsCiAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgR2V0IHRlc3QgY3JlYXRlZCBjaGFuZ2UgZGF0YS4KICAgICAgICBteSAkQ2hhbmdlRGF0YSA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUdldCgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIGFuZCBsb2dpbiBhcyB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgYnVpbGRlciB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgR2V0IHNjcmlwdCBhbGlhcy4KICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZVNlYXJjaCIpOwoKICAgICAgICAjIFdhaXQgdW50aWwgZm9ybSBhbmQgb3ZlcmxheSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnI1NlYXJjaFByb2ZpbGUnKS5sZW5ndGgiICk7CgogICAgICAgICMgQ2hlY2sgY2hhbmdlIHNlYXJjaCBwYWdlLgogICAgICAgIGZvciBteSAkSUQgKAogICAgICAgICAgICBxdyhTZWFyY2hQcm9maWxlIFNlYXJjaFByb2ZpbGVOZXcgQXR0cmlidXRlIFJlc3VsdEZvcm0gU2VhcmNoRm9ybVN1Ym1pdCkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIElucHV0IGNoYW5nZSB0aXRsZSBhbmQgbnVtYmVyIGFzIHNlYXJjaCBwYXJhbSBhbmQgcnVuIGl0LgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI0F0dHJpYnV0ZScpLnZhbCgnQ2hhbmdlVGl0bGUnKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJ2lucHV0W25hbWU9XCJDaGFuZ2VUaXRsZVwiXScpLmxlbmd0aCIKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIGlmIElUU01DaGFuZ2UgU2VhcmNoIGZvcm0gY29udGFpbiBFeGNlbCBvdXRwdXQgb3B0aW9uLCBzZWUgYnVnIzEyNzY5LgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJyNSZXN1bHRGb3JtIG9wdGlvbjpjb250YWlucyhcIkV4Y2VsXCIpJykubGVuZ3RoIgogICAgICAgICAgICApLAogICAgICAgICAgICAnMScsCiAgICAgICAgICAgICdJVFNNQ2hhbmdlIFNlYXJjaCBjb250YWluIEV4Y2VsIG91dHB1dCcsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJDaGFuZ2VOdW1iZXIiLCAgICAgICduYW1lJyApLT5zZW5kX2tleXMoICRDaGFuZ2VEYXRhLT57Q2hhbmdlTnVtYmVyfSApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiQ2hhbmdlVGl0bGUiLCAgICAgICAnbmFtZScgKS0+c2VuZF9rZXlzKCAkQ2hhbmdlRGF0YS0+e0NoYW5nZVRpdGxlfSApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1NlYXJjaEZvcm1TdWJtaXQiLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgZm9yIGV4cGVjdGVkIHJlc3VsdC4KICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDaGFuZ2VUaXRsZVJhbmRvbSApID4gLTEsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRJVFNNQ2hhbmdlU2VhcmNoLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZVNlYXJjaCIpOwoKICAgICAgICAjIFdhaXQgdW50aWwgZm9ybSBhbmQgb3ZlcmxheSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnI1NlYXJjaFByb2ZpbGUnKS5sZW5ndGgiICk7CgogICAgICAgICMgSW5wdXQgd3Jvbmcgc2VhcmNoIHBhcmFtZXRlcnMsIHJlc3VsdCBzaG91bGQgYmUgJ05vIGRhdGEgZm91bmQnLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiQ2hhbmdlTnVtYmVyIiwgICAgICAnbmFtZScgKS0+c2VuZF9rZXlzKCIxMjM0NTU2NzgiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTZWFyY2hGb3JtU3VibWl0IiwgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIENoZWNrIGZvciBleHBlY3RlZCByZXN1bHQuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAiTm8gZGF0YSBmb3VuZC4iICkgPiAtMSwKICAgICAgICAgICAgIkNoYW5nZSBpcyBub3QgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIGNyZWF0ZWQgdGVzdCBjaGFuZ2UuCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9Cik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeTimeSlot.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgR2V0IGNoYW5nZSBzdGF0ZSBkYXRhLgogICAgICAgIG15ICRDaGFuZ2VEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgY2hhbmdlLgogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IERlc2NyaXB0aW9uJywKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnU2VsZW5pdW0gVGVzdCBKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CgogICAgICAgICMgQ3JlYXRlIHRlc3Qgd29yayBvcmRlci4KICAgICAgICBteSAkV29ya09yZGVyVGl0bGVSYW5kb20gPSAnU2VsZW5pdW0gV29yayBPcmRlciAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkV29ya09yZGVySUQgICAgICAgICAgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgIENoYW5nZUlEICAgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSAgID0+ICRXb3JrT3JkZXJUaXRsZVJhbmRvbSwKICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgICA9PiAnU2VsZW5pdW0gVGVzdCBXb3JrIE9yZGVyJywKICAgICAgICAgICAgUGxhbm5lZFN0YXJ0VGltZSA9PiAnMjAwOS0xMC0xMiAwMDowMDowMScsCiAgICAgICAgICAgIFBsYW5uZWRFbmRUaW1lICAgPT4gJzIwMDktMTAtMTUgMTU6MDA6MDAnLAogICAgICAgICAgICBQbGFubmVkRWZmb3J0ICAgID0+IDEwLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyLgogICAgICAgIG15ICRMYW5ndWFnZSAgICAgID0gJ2VuJzsKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgICA9PiBbICdhZG1pbicsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1tYW5hZ2VyJyBdLAogICAgICAgICAgICBMYW5ndWFnZSA9PiAkTGFuZ3VhZ2UsCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkTGFuZ3VhZ2VPYmplY3QgPSBLZXJuZWw6Okxhbmd1YWdlLT5uZXcoCiAgICAgICAgICAgIFVzZXJMYW5ndWFnZSA9PiAkTGFuZ3VhZ2UsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50SVRTTUNoYW5nZVpvb20gZm9yIHRlc3QgY3JlYXRlZCBjaGFuZ2UuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0kQ2hhbmdlSUQiKTsKCiAgICAgICAgIyBDbGljayBvbiAnTW92ZSBUaW1lIFNsb3QnIGFuZCBzd2l0Y2ggd2luZG93LgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudElUU01DaGFuZ2VUaW1lU2xvdDtDaGFuZ2VJRD0kQ2hhbmdlSUQnKV0iKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICk7CiAgICAgICAgbXkgJEhhbmRsZXMgPSAkU2VsZW5pdW0tPmdldF93aW5kb3dfaGFuZGxlcygpOwogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlsxXSApOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNNb3ZlVGltZVR5cGUiKS5sZW5ndGgnICk7CgogICAgICAgICMgQ2hlY2sgcGFnZS4KICAgICAgICBmb3IgbXkgJElEICgKICAgICAgICAgICAgcXcoTW92ZVRpbWVUeXBlIE1vdmVUaW1lTW9udGggTW92ZVRpbWVEYXkgTW92ZVRpbWVZZWFyIE1vdmVUaW1lSG91ciBNb3ZlVGltZU1pbnV0ZSBTdWJtaXRNb3ZlVGltZVNsb3QpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBTdWJtaXQgZGVmYXVsdCBzZWxlY3RlZCB2YWx1ZS4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJtaXRNb3ZlVGltZVNsb3QiLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDEgKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMF0gKTsKCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlSGlzdG9yeTtDaGFuZ2VJRD0kQ2hhbmdlSUQiKTsKCiAgICAgICAgIyBWZXJpZnkgbW92ZSB0aW1lIHNsb3QgY2hhbmdlLgogICAgICAgIG15ICRFeHBlY3RlZFN0YXJ0TWVzc2FnZSA9ICIoSUQ9JFdvcmtPcmRlcklEKSAiCiAgICAgICAgICAgIC4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ1BsYW5uZWRTdGFydFRpbWUnKQogICAgICAgICAgICAuICI6IChuZXc9MjAwOS0xMC0xMiAwMDowMDowMSwgb2xkPSkiOwogICAgICAgIG15ICRFeHBlY3RlZEVuZE1lc3NhZ2UKICAgICAgICAgICAgPSAiKElEPSRXb3JrT3JkZXJJRCkgIiAuICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdQbGFubmVkRW5kVGltZScpIC4gIjogKG5ldz0yMDA5LTEwLTE1IDE1OjAwOjAwLCBvbGQ9KSI7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkRXhwZWN0ZWRTdGFydE1lc3NhZ2UgKSA+IC0xLAogICAgICAgICAgICAiJEV4cGVjdGVkU3RhcnRNZXNzYWdlIGlzIGZvdW5kIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEV4cGVjdGVkRW5kTWVzc2FnZSApID4gLTEsCiAgICAgICAgICAgICIkRXhwZWN0ZWRFbmRNZXNzYWdlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIERlbGV0ZSB0ZXN0IGNyZWF0ZWQgd29yayBvcmRlci4KICAgICAgICBteSAkU3VjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckRlbGV0ZSgKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIGNyZWF0ZWQgdGVzdCBjaGFuZ2UuCiAgICAgICAgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9CgopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMTemplateOverview.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgQ0FCIHVzZXIgYW5kIHRlc3QgY3VzdG9tZXIgdXNlciBhbmQgZ2V0IHRoZXJlIElEcwogICAgICAgIG15ICRUZXN0VXNlckNBQiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICApOwogICAgICAgIG15ICRUZXN0VXNlckNBQklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckNBQiwKICAgICAgICApOwogICAgICAgIG15ICRUZXN0Q3VzdG9tZXJDQUIgICAgPSAkSGVscGVyLT5UZXN0Q3VzdG9tZXJVc2VyQ3JlYXRlKCk7CiAgICAgICAgbXkgQFRlc3RDdXN0b21lckNBQklEcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInKS0+Q3VzdG9tZXJJRHMoCiAgICAgICAgICAgIFVzZXIgPT4gJFRlc3RDdXN0b21lckNBQiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugc3RhdGUgZGF0YQogICAgICAgIG15ICRDaGFuZ2VEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGNoYW5nZQogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IERlc2NyaXB0aW9uJywKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnU2VsZW5pdW0gVGVzdCBKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIENBQkFnZW50cyAgICAgPT4gWyRUZXN0VXNlckNBQklEXSwKICAgICAgICAgICAgQ0FCQ3VzdG9tZXJzICA9PiBbICRUZXN0Q3VzdG9tZXJDQUJJRHNbMF0gXSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGdldCB0ZW1wbGF0ZSBvYmplY3QKICAgICAgICBteSAkVGVtcGxhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6VGVtcGxhdGUnKTsKCiAgICAgICAgIyBjcmVhdGUgY2hhbmdlIGFuZCBDQUIgdGVtcGxhdGUKICAgICAgICBteSBAVGVtcGxhdGVJRHM7CiAgICAgICAgbXkgQFRlbXBsYXRlTmFtZXM7CiAgICAgICAgZm9yIG15ICRUZW1wbGF0ZSAocXcoSVRTTUNoYW5nZSBDQUIpKSB7CgogICAgICAgICAgICAjIGNyZWF0ZSBzaW1wbGUgdGVtcGxhdGUgY2hhbmdlIGFuZCBDQUIKICAgICAgICAgICAgbXkgJFRlbXBsYXRlTmFtZVJhbmRvbSA9ICdUZW1wbGF0ZSAnIC4gJFRlbXBsYXRlIC4gJyAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAgICAgbXkgJENvbnRlbnQgICAgICAgICAgICA9ICRUZW1wbGF0ZU9iamVjdC0+VGVtcGxhdGVTZXJpYWxpemUoCiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJFRlbXBsYXRlTmFtZVJhbmRvbSwKICAgICAgICAgICAgICAgIFRlbXBsYXRlVHlwZSA9PiAkVGVtcGxhdGUsCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgQ29tbWVudCAgICAgID0+ICdTZWxlbml1bSBUZXN0IENvbW1lbnQnLAogICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMQogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBjcmVhdGUgdGVzdCB0ZW1wbGF0ZSBmcm9tIHRlc3QgY2hhbmdlIGFuZCBDQUIKICAgICAgICAgICAgbXkgJFRlbXBsYXRlSUQgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlQWRkKAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRUZW1wbGF0ZU5hbWVSYW5kb20sCiAgICAgICAgICAgICAgICBUZW1wbGF0ZVR5cGUgPT4gJFRlbXBsYXRlLAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgIENvbnRlbnQgICAgICA9PiAkQ29udGVudCwKICAgICAgICAgICAgICAgIENvbW1lbnQgICAgICA9PiAnU2VsZW5pdW0gVGVzdCBDb21tZW50JywKICAgICAgICAgICAgICAgIFZhbGlkSUQgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFRlbXBsYXRlSUQsCiAgICAgICAgICAgICAgICAiQ2hhbmdlIFRlbXBsYXRlIElEICRUZW1wbGF0ZUlEIGlzIGNyZWF0ZWQiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcHVzaCBAVGVtcGxhdGVJRHMsICAgJFRlbXBsYXRlSUQ7CiAgICAgICAgICAgIHB1c2ggQFRlbXBsYXRlTmFtZXMsICRUZW1wbGF0ZU5hbWVSYW5kb207CiAgICAgICAgfQoKICAgICAgICAjIGdldCB3b3JrIG9yZGVyIG9iamVjdAogICAgICAgIG15ICRXb3JrT3JkZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHdvcmsgb3JkZXIKICAgICAgICBteSAkV29ya09yZGVyVGl0bGVSYW5kb20gPSAnU2VsZW5pdW0gV29yayBPcmRlciAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkV29ya09yZGVySUQgICAgICAgICAgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgIENoYW5nZUlEICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJFdvcmtPcmRlclRpdGxlUmFuZG9tLAogICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnU2VsZW5pdW0gVGVzdCBXb3JrIE9yZGVyJywKICAgICAgICAgICAgUGxhbm5lZEVmZm9ydCAgPT4gMTAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFdvcmtPcmRlcklELAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgIG15ICRUZW1wbGF0ZU5hbWVSYW5kb20gPSAnVGVtcGxhdGUgSVRTTVdvcmtPcmRlciAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ29udGVudCAgICAgICAgICAgID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZVNlcmlhbGl6ZSgKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRUZW1wbGF0ZU5hbWVSYW5kb20sCiAgICAgICAgICAgIFRlbXBsYXRlVHlwZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgICAgIFdvcmtPcmRlcklEICA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgIENvbW1lbnQgICAgICA9PiAnU2VsZW5pdW0gVGVzdCBDb21tZW50JywKICAgICAgICAgICAgVmFsaWRJRCAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB0ZW1wbGF0ZSBmcm9tIHRlc3Qgd29yayBvcmRlcgogICAgICAgIG15ICRUZW1wbGF0ZUlEID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZUFkZCgKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRUZW1wbGF0ZU5hbWVSYW5kb20sCiAgICAgICAgICAgIFRlbXBsYXRlVHlwZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgICAgIFdvcmtPcmRlcklEICA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgIENvbnRlbnQgICAgICA9PiAkQ29udGVudCwKICAgICAgICAgICAgQ29tbWVudCAgICAgID0+ICdTZWxlbml1bSBUZXN0IENvbW1lbnQnLAogICAgICAgICAgICBWYWxpZElEICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFRlbXBsYXRlSUQsCiAgICAgICAgICAgICJDaGFuZ2UgVGVtcGxhdGUgSUQgJFRlbXBsYXRlSUQgaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgcHVzaCBAVGVtcGxhdGVJRHMsICAgJFRlbXBsYXRlSUQ7CiAgICAgICAgcHVzaCBAVGVtcGxhdGVOYW1lcywgJFRlbXBsYXRlTmFtZVJhbmRvbTsKCiAgICAgICAgIyBjcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAnaXRzbS1jaGFuZ2UnLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgbXkgJEluZGV4ID0gMDsKICAgICAgICBmb3IgbXkgJFRlbXBsYXRlQ2hlY2sgKHF3KElUU01DaGFuZ2UgQ0FCIElUU01Xb3JrT3JkZXIpKSB7CgogICAgICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXcgb3JkZXIgZG93biB3aXRoIGFwcHJvcHJpYXRlIGZpbHRlcgogICAgICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KAogICAgICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTVRlbXBsYXRlT3ZlcnZpZXc7U29ydEJ5PVRlbXBsYXRlSUQ7T3JkZXJCeT1Eb3duO0ZpbHRlcj0kVGVtcGxhdGVDaGVjayIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hlY2sgb3ZlcnZpZXcgc2NyZWVuCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICAgICAjIGNoZWNrIGZvciBleHBlY3RlZCB0ZXN0IHRlbXBsYXRlCiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRUZW1wbGF0ZU5hbWVzWyRJbmRleF0gKSA+IC0xLAogICAgICAgICAgICAgICAgIiRUZW1wbGF0ZU5hbWVzWyRJbmRleF0gaXMgZm91bmQiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBjaGVjayBmb3IgZWRpdCB0ZW1wbGF0ZSBsaW5rCiAgICAgICAgICAgIG15ICRUZW1wbGF0ZUVkaXQ7CiAgICAgICAgICAgIGlmICggJFRlbXBsYXRlQ2hlY2sgZXEgJ0NBQicgKSB7CiAgICAgICAgICAgICAgICAkVGVtcGxhdGVFZGl0ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoCiAgICAgICAgICAgICAgICAgICAgIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTVRlbXBsYXRlRWRpdENBQjtUZW1wbGF0ZUlEPSRUZW1wbGF0ZUlEc1skSW5kZXhdJyldIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRUZW1wbGF0ZUVkaXQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNFZGl0Q29udGVudFRlbXBsYXRlSUQkVGVtcGxhdGVJRHNbJEluZGV4XSIsICdjc3MnICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJFRlbXBsYXRlRWRpdC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkVGVtcGxhdGVFZGl0LT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgICAgICMgY2xpY2sgdG8gZGVsZXRlIHRlc3QgdGVtcGxhdGUKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGVsZXRlVGVtcGxhdGVJRCRUZW1wbGF0ZUlEc1skSW5kZXhdIiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgICAgICMgd2FpdCBmb3IgY29uZmlybSBidXR0b24gdG8gc2hvdyB1cCBhbmQgY29uZmlybSBkZWxldGUgYWN0aW9uCiAgICAgICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjRGlhbG9nQnV0dG9uMScpLmxlbmd0aDsiICk7CiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0RpYWxvZ0J1dHRvbjEiLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICAgICAkSW5kZXgrKzsKICAgICAgICB9CgogICAgICAgICMgZGVsZXRlIHRlc3QgY3JlYXRlZCB3b3JrIG9yZGVyCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJEZWxldGUoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRXb3JrT3JkZXJUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGRlbGV0ZSB0ZXN0IGNyZWF0ZWQgY2hhbmdlCiAgICAgICAgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIG1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMUserSearch.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgR2V0IGNoYW5nZSBzdGF0ZSBkYXRhLgogICAgICAgIG15ICRDaGFuZ2VEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgY2hhbmdlLgogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IERlc2NyaXB0aW9uJywKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnU2VsZW5pdW0gVGVzdCBKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgYW5kIGxvZyBpbiBidWlsZGVyIHVzZXIuCiAgICAgICAgbXkgJExhbmd1YWdlICAgICAgPSAnZW4nOwogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyAgID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0sCiAgICAgICAgICAgIExhbmd1YWdlID0+ICRMYW5ndWFnZSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCBidWlsZGVyIHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJExhbmd1YWdlT2JqZWN0ID0gS2VybmVsOjpMYW5ndWFnZS0+bmV3KAogICAgICAgICAgICBVc2VyTGFuZ3VhZ2UgPT4gJExhbmd1YWdlLAogICAgICAgICk7CgogICAgICAgICMgR2V0IHRlc3QgdXNlciBJRC4KICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRJVFNNQ2hhbmdlWm9vbSBzY3JlZW4uCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0kQ2hhbmdlSUQiKTsKCiAgICAgICAgIyBDbGljayBvbiAnSW52b2x2ZWQgUGVyc29ucycgYW5kIHN3aXRjaCB3aW5kb3cuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTUNoYW5nZUludm9sdmVkUGVyc29ucztDaGFuZ2VJRD0kQ2hhbmdlSUQnKV0iKQogICAgICAgICAgICAtPmNsaWNrKCk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggV2luZG93Q291bnQgPT4gMiApOwogICAgICAgIG15ICRIYW5kbGVzID0gJFNlbGVuaXVtLT5nZXRfd2luZG93X2hhbmRsZXMoKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMV0gKTsKCiAgICAgICAgIyBXYWl0IHVudGlsIHBhZ2UgaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5LgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjQ2hhbmdlTWFuYWdlciIpLmxlbmd0aDsnICk7CiAgICAgICAgc2xlZXAgMjsKCiAgICAgICAgIyBJbnB1dCBjaGFuZ2UgbWFuYWdlci4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDaGFuZ2VNYW5hZ2VyIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRUZXN0VXNlckxvZ2luKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgibGkudWktbWVudS1pdGVtOnZpc2libGUiKS5sZW5ndGg7JyApOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCdsaS51aS1tZW51LWl0ZW06Y29udGFpbnMoJFRlc3RVc2VyTG9naW4pJykuY2xpY2soKTsiKTsKCiAgICAgICAgIyBTdWJtaXQgYW5kIHN3aXRjaCB3aW5kb3cuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdHlwZT0nc3VibWl0J11bXEB2YWx1ZT0nU3VibWl0J10iKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDEgKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMF0gKTsKCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZFJlZnJlc2goKTsKCiAgICAgICAgIyBDbGljayBvbiAnSGlzdG9yeScgYW5kIHN3aXRjaCB3aW5kb3cKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdBY3Rpb249QWdlbnRJVFNNQ2hhbmdlSGlzdG9yeTtDaGFuZ2VJRD0kQ2hhbmdlSUQnKV0iKS0+Y2xpY2soKTsKICAgICAgICBzbGVlcCAyOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKTsKICAgICAgICAkSGFuZGxlcyA9ICRTZWxlbml1bS0+Z2V0X3dpbmRvd19oYW5kbGVzKCk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzFdICk7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeQogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIuQ2FuY2VsQ2xvc2VQb3B1cCIpLmxlbmd0aDsnICk7CgogICAgICAgICMgQ2hlY2sgbWFuYWdlciBjaGFuZ2UuCiAgICAgICAgbXkgJEV4cGVjdGVkTWFuYWdlck1lc3NhZ2UgPSAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSgnQ2hhbmdlTWFuYWdlcicpIC4gIjogKG5ldz0kVGVzdFVzZXJMb2dpbiI7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEV4cGVjdGVkTWFuYWdlck1lc3NhZ2UgKSA+IC0xLAogICAgICAgICAgICAiJEV4cGVjdGVkTWFuYWdlck1lc3NhZ2UgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIGNyZWF0ZWQgdGVzdCBjaGFuZ2UuCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9Cik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMWorkOrderAddFromTemplate.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlRGF0YVJlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtR2V0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgICAgIE5hbWUgID0+ICdyZXF1ZXN0ZWQnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IGNoYW5nZSBvYmplY3QKICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAgICAgIyBjcmVhdGUgdHdvIHRlc3QgY2hhbmdlcwogICAgICAgIG15IEBDaGFuZ2VJRHM7CiAgICAgICAgZm9yIG15ICRDaGFuZ2VDcmVhdGUgKCAxIC4uIDIgKSB7CiAgICAgICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIFRlc3QgRGVzY3JpcHRpb24nLAogICAgICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnU2VsZW5pdW0gVGVzdCBKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHB1c2ggQENoYW5nZUlEcywgJENoYW5nZUlEOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgd29yayBvcmRlciBvYmplY3QKICAgICAgICBteSAkV29ya09yZGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB3b3JrIG9yZGVyCiAgICAgICAgbXkgJFdvcmtPcmRlclRpdGxlUmFuZG9tID0gJ1NlbGVuaXVtIFdvcmsgT3JkZXIgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFdvcmtPcmRlcklEICAgICAgICAgID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyQWRkKAogICAgICAgICAgICBDaGFuZ2VJRCAgICAgICAgID0+ICRDaGFuZ2VJRHNbMF0sCiAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4gJFdvcmtPcmRlclRpdGxlUmFuZG9tLAogICAgICAgICAgICBJbnN0cnVjdGlvbiAgICAgID0+ICdTZWxlbml1bSBUZXN0IFdvcmsgT3JkZXInLAogICAgICAgICAgICBQbGFubmVkU3RhcnRUaW1lID0+ICcyMDI3LTEwLTEyIDAwOjAwOjAxJywKICAgICAgICAgICAgUGxhbm5lZEVuZFRpbWUgICA9PiAnMjAyNy0xMC0xNSAxNTowMDowMCcsCiAgICAgICAgICAgIFBsYW5uZWRFZmZvcnQgICAgPT4gMTAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkV29ya09yZGVySUQsCiAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gSUQgJFdvcmtPcmRlcklEIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRlbXBsYXRlIG9iamVjdAogICAgICAgIG15ICRUZW1wbGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpOwoKICAgICAgICAjIGNyZWF0ZSBzaW1wbGUgY2hhbmdlIHRlbXBsYXRlCiAgICAgICAgbXkgJFRlbXBsYXRlTmFtZVJhbmRvbSA9ICdUZW1wbGF0ZSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkV29ya09yZGVyQ29udGVudCAgID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZVNlcmlhbGl6ZSgKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRUZW1wbGF0ZU5hbWVSYW5kb20sCiAgICAgICAgICAgIFRlbXBsYXRlVHlwZSA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgICAgIFdvcmtPcmRlcklEICA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgIFZhbGlkSUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHRlbXBsYXRlIGZyb20gdGVzdCB3b3JrIG9yZGVyCiAgICAgICAgbXkgJFRlbXBsYXRlSUQgPSAkVGVtcGxhdGVPYmplY3QtPlRlbXBsYXRlQWRkKAogICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJFRlbXBsYXRlTmFtZVJhbmRvbSwKICAgICAgICAgICAgVGVtcGxhdGVUeXBlID0+ICdJVFNNV29ya09yZGVyJywKICAgICAgICAgICAgV29ya09yZGVySUQgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgQ29udGVudCAgICAgID0+ICRXb3JrT3JkZXJDb250ZW50LAogICAgICAgICAgICBWYWxpZElEICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFRlbXBsYXRlSUQsCiAgICAgICAgICAgICJXb3JrIE9yZGVyIFRlbXBsYXRlIElEICRUZW1wbGF0ZUlEIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRJVFNNQ2hhbmdlWm9vbSBmb3Igc2Vjb25kIHRlc3QgY3JlYXRlZCBjaGFuZ2UKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPSRDaGFuZ2VJRHNbMV0iKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCd3aW5kb3cuQ29yZS5BcHAuUGFnZUxvYWRDb21wbGV0ZSA9IGZhbHNlOycpOwoKICAgICAgICAjIGNsaWNrIG9uICdBZGQgV29ya29yZGVyIChmcm9tIHRlbXBsYXRlKScgYW5kIHN3aXRjaCB3aW5kb3cKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgKICAgICAgICAgICAgIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZTtDaGFuZ2VJRD0kQ2hhbmdlSURzWzFdJyldIgogICAgICAgICktPmNsaWNrKCk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggV2luZG93Q291bnQgPT4gMiApOwogICAgICAgIG15ICRIYW5kbGVzID0gJFNlbGVuaXVtLT5nZXRfd2luZG93X2hhbmRsZXMoKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMV0gKTsKCiAgICAgICAgIyB3YWl0IHVudGlsIHBhZ2UgaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNUZW1wbGF0ZUlEIikubGVuZ3RoJyApOwoKICAgICAgICAjIGNoZWNrIHBhZ2UKICAgICAgICBmb3IgbXkgJElEICgKICAgICAgICAgICAgcXcoVGVtcGxhdGVJRCBNb3ZlVGltZVR5cGUgTW92ZVRpbWVNb250aCBNb3ZlVGltZURheSBNb3ZlVGltZVllYXIgTW92ZVRpbWVIb3VyIE1vdmVUaW1lTWludXRlIFN1Ym1pdFRlbXBsYXRlKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgc2VsZWN0IHRlc3QgY3JlYXRlZCB3b3JrIG9yZGVyIHRlbXBsYXRlIGFuZCBzdWJtaXQKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNUZW1wbGF0ZUlEJykudmFsKCckVGVtcGxhdGVJRCcpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1Ym1pdFRlbXBsYXRlIiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAxICk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzBdICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PgogICAgICAgICAgICAgICAgJ3JldHVybiB0eXBlb2YoQ29yZSkgPT0gIm9iamVjdCIgJiYgdHlwZW9mKENvcmUuQXBwKSA9PSAib2JqZWN0IiAmJiBDb3JlLkFwcC5QYWdlTG9hZENvbXBsZXRlJwogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgd29yayBvcmRlciB2YWx1ZXMgY3JlYXRlZCBmcm9tIHRlc3QgdGVtcGxhdGUKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRXb3JrT3JkZXJUaXRsZVJhbmRvbSApID4gLTEsCiAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZGVsZXRlIHRlc3QgY3JlYXRlZCB3b3JrIG9yZGVycwogICAgICAgIG15ICRTdWNjZXNzOwogICAgICAgIGZvciBteSAkV29ya09yZGVyRGVsZXRlICggJFdvcmtPcmRlcklELCAkV29ya09yZGVySUQrKyApIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJEZWxldGUoCiAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVyRGVsZXRlLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICJXb3JrIE9yZGVyIElEICRXb3JrT3JkZXJEZWxldGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGRlbGV0ZSB0ZXN0IGNyZWF0ZWQgY2hhbmdlCiAgICAgICAgZm9yIG15ICRDaGFuZ2VEZWxldGUgKEBDaGFuZ2VJRHMpIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlRGVsZXRlLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICJDaGFuZ2UgSUQgJENoYW5nZURlbGV0ZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZGVsZXRlIHRlc3QgY3JlYXRlZCB0ZW1wbGF0ZQogICAgICAgICRTdWNjZXNzID0gJFRlbXBsYXRlT2JqZWN0LT5UZW1wbGF0ZURlbGV0ZSgKICAgICAgICAgICAgVGVtcGxhdGVJRCA9PiAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiVGVtcGxhdGUgSUQgJFRlbXBsYXRlSUQgaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBtYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9Cik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMChangeConditionEdit.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkR2VuZXJhbENhdGFsb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKTsKCiAgICAgICAgIyBHZXQgY2hhbmdlIHN0YXRlIGRhdGEuCiAgICAgICAgbXkgJENoYW5nZVN0YXRlRGF0YVJlZiA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICApOwoKICAgICAgICBteSAkQ2hhbmdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBjaGFuZ2UKICAgICAgICBteSAkQ2hhbmdlVGl0bGVSYW5kb20gPSAnSVRTTUNoYW5nZSBSZXF1ZXN0ZWQgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENoYW5nZUlEICAgICAgICAgID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgICAgICBDaGFuZ2VUaXRsZSAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gVGVzdCBEZXNjcmlwdGlvbicsCiAgICAgICAgICAgIEp1c3RpZmljYXRpb24gPT4gJ1NlbGVuaXVtIFRlc3QgSnVzdGlmaWNhdGlvbicsCiAgICAgICAgICAgIENoYW5nZVN0YXRlSUQgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLWJ1aWxkZXInLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXQogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50SVRTTUNoYW5nZVpvb20gb2YgY3JlYXRlZCB0ZXN0IGNoYW5nZS4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPSRDaGFuZ2VJRCIpOwoKICAgICAgICAjIENsaWNrIG9uICdDb25kaXRpb25zJyBhbmQgc3dpdGNoIHNjcmVlbnMuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTUNoYW5nZUNvbmRpdGlvbjtDaGFuZ2VJRD0kQ2hhbmdlSUQnICldIikKICAgICAgICAgICAgLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKTsKICAgICAgICBteSAkSGFuZGxlcyA9ICRTZWxlbml1bS0+Z2V0X3dpbmRvd19oYW5kbGVzKCk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzFdICk7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiYnV0dG9uW25hbWU9XCdBZGRDb25kaXRpb25cJ10iKS5sZW5ndGgnCiAgICAgICAgKTsKICAgICAgICBzbGVlcCAxOwoKICAgICAgICAjIENsaWNrICdBZGQgbmV3IGNvbmRpdGlvbicuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAbmFtZT0nQWRkQ29uZGl0aW9uJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNOYW1lIikubGVuZ3RoJyApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IGNvbmRpdGlvbi4KICAgICAgICBteSAkQ29uZGl0aW9uTmFtZVJhbmRvbSA9ICJDb25kaXRpb24gIiAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTmFtZSIsICAgICdjc3MnICktPnNlbmRfa2V5cygkQ29uZGl0aW9uTmFtZVJhbmRvbSk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjQ29tbWVudCIsICdjc3MnICktPnNlbmRfa2V5cygiU2VsZW5pdW1Db25kaXRpb24iKTsKCiAgICAgICAgIyBHZXQgY29uZGl0aW9uIG9iamVjdC4KICAgICAgICBteSAkQ29uZGl0aW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKTsKCiAgICAgICAgIyBHZXQgbmVlZGVkIElEcy4KICAgICAgICBteSAkRXhwcmVzaW9uQXR0cmlidXRlSUQgPSAkQ29uZGl0aW9uT2JqZWN0LT5BdHRyaWJ1dGVMb29rdXAoCiAgICAgICAgICAgIE5hbWUgPT4gJ1ByaW9yaXR5SUQnLAogICAgICAgICk7CiAgICAgICAgbXkgJFByaW9yaXR5RGF0YVJlZiA9ICRHZW5lcmFsQ2F0YWxvZ09iamVjdC0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OlByaW9yaXR5JywKICAgICAgICAgICAgTmFtZSAgPT4gJzIgbG93JywKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25BdHRyaWJ1dGVJRCA9ICRDb25kaXRpb25PYmplY3QtPkF0dHJpYnV0ZUxvb2t1cCgKICAgICAgICAgICAgTmFtZSA9PiAnQ2hhbmdlU3RhdGVJRCcKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25PcGVyYXRvcklEID0gJENvbmRpdGlvbk9iamVjdC0+T3BlcmF0b3JMb29rdXAoCiAgICAgICAgICAgIE5hbWUgPT4gJ3NldCcsCiAgICAgICAgKTsKICAgICAgICBteSAkQ29uZGl0aW9uQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEdlbmVyYWxDYXRhbG9nT2JqZWN0LT5JdGVtR2V0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgICAgIE5hbWUgID0+ICdhcHByb3ZlZCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBBZGQgbmV3IGV4cHJlc3Npb24KICAgICAgICAjICAgaW4gY2hhbmdlIG9iamVjdCBmb3IgdGVzdCBjaGFuZ2UsIGxvb2sgZm9yIHByaW9yaXR5IHZhbHVlIG9mICcyIGxvdycuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAbmFtZT0nQWRkRXhwcmVzc2lvbkJ1dHRvbiddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwogICAgICAgIHNsZWVwIDE7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRXhwcmVzc2lvbklELU5FVy1PYmplY3RJRCBvcHRpb25bdmFsdWU9JzEnXSIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICMgV2FpdCBmb3IgYWpheCByZXNwb25zZSB0byBmaWxsIG5leHQgZHJvcGRvd24gbGlzdCB3aXRoIG1vcmUgdGhhbiAxIHZhbHVlLgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkLmFjdGl2ZSA9PSAwIiApOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjRXhwcmVzc2lvbklELU5FVy1TZWxlY3RvciBvcHRpb24nKS5sZW5ndGggPiAxOyIgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNFeHByZXNzaW9uSUQtTkVXLVNlbGVjdG9yIG9wdGlvblt2YWx1ZT0nJENoYW5nZUlEJ10iLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAjIFdhaXQgZm9yIGFqYXggcmVzcG9uc2UgdG8gZmlsbCBuZXh0IGRyb3Bkb3duIGxpc3Qgd2l0aCBtb3JlIHRoYW4gMSB2YWx1ZS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI0V4cHJlc3Npb25JRC1ORVctQXR0cmlidXRlSUQgb3B0aW9uJykubGVuZ3RoID4gMTsiICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRXhwcmVzc2lvbklELU5FVy1BdHRyaWJ1dGVJRCBvcHRpb25bdmFsdWU9JyRFeHByZXNpb25BdHRyaWJ1dGVJRCddIiwgJ2NzcycgKQogICAgICAgICAgICAtPmNsaWNrKCk7CgogICAgICAgICMgV2FpdCBmb3IgYWpheCByZXNwb25zZSB0byBmaWxsIG5leHQgZHJvcGRvd24gbGlzdCB3aXRoIG1vcmUgdGhhbiAxIHZhbHVlLgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjRXhwcmVzc2lvbklELU5FVy1PcGVyYXRvcklEIG9wdGlvbicpLmxlbmd0aCA+IDE7IiApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0V4cHJlc3Npb25JRC1ORVctT3BlcmF0b3JJRCBvcHRpb25bdmFsdWU9JzEnXSIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICMgV2FpdCBmb3IgYWpheCByZXNwb25zZSB0byBmaWxsIG5leHQgZHJvcGRvd24gbGlzdCB3aXRoIG1vcmUgdGhhbiAxIHZhbHVlLgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjRXhwcmVzc2lvbklELU5FVy1Db21wYXJlVmFsdWUgb3B0aW9uJykubGVuZ3RoID4gMTsiICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRXhwcmVzc2lvbklELU5FVy1Db21wYXJlVmFsdWUgb3B0aW9uW3ZhbHVlPSckUHJpb3JpdHlEYXRhUmVmLT57SXRlbUlEfSddIiwgJ2NzcycgKQogICAgICAgICAgICAtPmNsaWNrKCk7CgogICAgICAgICMgQWRkIG5ldyBhY3Rpb24gaW4gY2hhbmdlIG9iamVjdCBmb3IgdGVzdCBjaGFuZ2UsIHNldCBjaGFuZ2Ugc3RhdGUgb24gJ0FwcHJvdmVkJy4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEBuYW1lPSdBZGRBY3Rpb25CdXR0b24nXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNBY3Rpb25JRC1ORVctT2JqZWN0SUQgb3B0aW9uW3ZhbHVlPScxJ10iLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAjIFdhaXQgZm9yIGFqYXggcmVzcG9uc2UgdG8gZmlsbCBuZXh0IGRyb3Bkb3duIGxpc3Qgd2l0aCBtb3JlIHRoYW4gMSB2YWx1ZS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJC5hY3RpdmUgPT0gMCIgKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI0FjdGlvbklELU5FVy1TZWxlY3RvciBvcHRpb24nKS5sZW5ndGggPiAxOyIgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNBY3Rpb25JRC1ORVctU2VsZWN0b3Igb3B0aW9uW3ZhbHVlPSckQ2hhbmdlSUQnXSIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICMgV2FpdCBmb3IgYWpheCByZXNwb25zZSB0byBmaWxsIG5leHQgZHJvcGRvd24gbGlzdCB3aXRoIG1vcmUgdGhhbiAxIHZhbHVlLgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjQWN0aW9uSUQtTkVXLUF0dHJpYnV0ZUlEIG9wdGlvbicpLmxlbmd0aCA+IDE7IiApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0FjdGlvbklELU5FVy1BdHRyaWJ1dGVJRCBvcHRpb25bdmFsdWU9JyRBY3Rpb25BdHRyaWJ1dGVJRCddIiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgIyBXYWl0IGZvciBhamF4IHJlc3BvbnNlIHRvIGZpbGwgbmV4dCBkcm9wZG93biBsaXN0IHdpdGggbW9yZSB0aGFuIDEgdmFsdWUuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJyNBY3Rpb25JRC1ORVctT3BlcmF0b3JJRCBvcHRpb24nKS5sZW5ndGggPiAxOyIgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNBY3Rpb25JRC1ORVctT3BlcmF0b3JJRCBvcHRpb25bdmFsdWU9JyRBY3Rpb25PcGVyYXRvcklEJ10iLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAjIFdhaXQgZm9yIGFqYXggcmVzcG9uc2UgdG8gZmlsbCBuZXh0IGRyb3Bkb3duIGxpc3Qgd2l0aCBtb3JlIHRoYW4gMSB2YWx1ZS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI0FjdGlvbklELU5FVy1BY3Rpb25WYWx1ZSBvcHRpb24nKS5sZW5ndGggPiAxOyIgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgKICAgICAgICAgICAgIiNBY3Rpb25JRC1ORVctQWN0aW9uVmFsdWUgb3B0aW9uW3ZhbHVlPSckQ29uZGl0aW9uQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSddIiwKICAgICAgICAgICAgJ2NzcycKICAgICAgICApLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTYXZlQnV0dG9uIiwgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIFZlcmlmeSBjcmVhdGVkIGNvbmRpdGlvbiBuYW1lIHZhbHVlLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJENvbmRpdGlvbk5hbWVSYW5kb20gKSA+IC0xLAogICAgICAgICAgICAiJENvbmRpdGlvbk5hbWVSYW5kb20gaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCBjaGFuZ2UuCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSBjYWNoZSBpcyBjb3JyZWN0LgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentITSMWorkOrderTake.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgR2V0IHdvcmsgb3JkZXIgZW1wdHkgYWdlbnQgZGVmYXVsdCBjb25maWcuCiAgICAgICAgbXkgJVdvcmtPcmRlckVtcHR5QWdlbnQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyktPlNldHRpbmdHZXQoCiAgICAgICAgICAgIE5hbWUgICAgPT4gJ0lUU01Xb3JrT3JkZXI6OlRha2VQZXJtaXNzaW9uIyMjMTAtRW1wdHlBZ2VudCcsCiAgICAgICAgICAgIERlZmF1bHQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnSVRTTVdvcmtPcmRlcjo6VGFrZVBlcm1pc3Npb24jIyMxMC1FbXB0eUFnZW50JywKICAgICAgICAgICAgVmFsdWUgPT4gJFdvcmtPcmRlckVtcHR5QWdlbnR7RWZmZWN0aXZlVmFsdWV9LAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgR2V0IHdvcmsgb3JkZXIgbGlzdCBhZ2VudCBkZWZhdWx0IHN5c2NvbmZpZy4KICAgICAgICBteSAlV29ya09yZGVyTGlzdEFnZW50ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5TZXR0aW5nR2V0KAogICAgICAgICAgICBOYW1lICAgID0+ICdJVFNNV29ya09yZGVyOjpUYWtlUGVybWlzc2lvbiMjIzIwLUxpc3RBZ2VudCcsCiAgICAgICAgICAgIERlZmF1bHQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnSVRTTVdvcmtPcmRlcjo6VGFrZVBlcm1pc3Npb24jIyMyMC1MaXN0QWdlbnQnLAogICAgICAgICAgICBWYWx1ZSA9PiAkV29ya09yZGVyTGlzdEFnZW50e0VmZmVjdGl2ZVZhbHVlfSwKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIEdldCBjaGFuZ2Ugc3RhdGUgZGF0YS4KICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgY2hhbmdlLgogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IERlc2NyaXB0aW9uJywKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnU2VsZW5pdW4gVGVzdCBKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICBteSAkV29ya09yZGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB3b3JrIG9yZGVyLgogICAgICAgIG15ICRXb3JrT3JkZXJUaXRsZVJhbmRvbSA9ICdTZWxlbml1bSBXb3JrIE9yZGVyICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRXb3JrT3JkZXJJRCAgICAgICAgICA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckFkZCgKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICBXb3JrT3JkZXJUaXRsZSA9PiAkV29ya09yZGVyVGl0bGVSYW5kb20sCiAgICAgICAgICAgIEluc3RydWN0aW9uICAgID0+ICdTZWxlbml1bSBUZXN0IFdvcmsgT3JkZXInLAogICAgICAgICAgICBQbGFubmVkRWZmb3J0ICA9PiAxMCwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgYW5kIGxvZyBpbiB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJExhbmd1YWdlICAgICAgPSAnZW4nOwogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyAgID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLWJ1aWxkZXInLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXSwKICAgICAgICAgICAgTGFuZ3VhZ2UgPT4gJExhbmd1YWdlLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJExhbmd1YWdlT2JqZWN0ID0gS2VybmVsOjpMYW5ndWFnZS0+bmV3KAogICAgICAgICAgICBVc2VyTGFuZ3VhZ2UgPT4gJExhbmd1YWdlLAogICAgICAgICk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudElUU01Xb3JrT3JkZXJab29tIGZvciB0ZXN0IGNyZWF0ZWQgd29yayBvcmRlci4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1dvcmtPcmRlcklEPSRXb3JrT3JkZXJJRCIpOwoKICAgICAgICAjIENsaWNrIG9uICdUYWtlIFdvcmtvcmRlcicuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlclRha2U7V29ya09yZGVySUQ9JFdvcmtPcmRlcklEJyldIikKICAgICAgICAgICAgLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3JqUXVlcnlFdmVudEJvdW5kKAogICAgICAgICAgICBDU1NTZWxlY3RvciA9PiAnI0RpYWxvZ0J1dHRvbjEnLAogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGlhbG9nQnV0dG9uMSIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5IGZvciB0ZXN0IGNyZWF0ZWQgd29yayBvcmRlci4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJIaXN0b3J5O1dvcmtPcmRlcklEPSRXb3JrT3JkZXJJRCIpOwoKICAgICAgICAjIENoZWNrIGZvciB0YWtlIHdvcmsgb3JkZXIgaGlzdG9yeSBtZXNzYWdlLgogICAgICAgIG15ICRXb3JrT3JkZXJBZ2VudCAgICAgICAgICAgICAgID0gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ1dvcmtPcmRlckFnZW50Jyk7CiAgICAgICAgbXkgJEV4cGVjdGVkVGFrZVdvcmtPcmRlck1lc3NhZ2UgPSAiJFdvcmtPcmRlckFnZW50OiAobmV3PSRUZXN0VXNlckxvZ2luIjsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJ3RkOmNvbnRhaW5zKFwiJEV4cGVjdGVkVGFrZVdvcmtPcmRlck1lc3NhZ2VcIiknKS5sZW5ndGg7IgogICAgICAgICk7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gXCQoJ3RkOmNvbnRhaW5zKFwiJEV4cGVjdGVkVGFrZVdvcmtPcmRlck1lc3NhZ2VcIiknKS5sZW5ndGg7IiksCiAgICAgICAgICAgICInJEV4cGVjdGVkVGFrZVdvcmtPcmRlck1lc3NhZ2UnIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIERlbGV0ZSB0ZXN0IGNyZWF0ZWQgd29yayBvcmRlci4KICAgICAgICBteSAkU3VjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckRlbGV0ZSgKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCBjaGFuZ2UuCiAgICAgICAgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSBjYWNoZSBpcyBjb3JyZWN0LgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Output/ITSMChange/MenuGeneric.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGNoYW5nZQogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IERlc2NyaXB0aW9uJywKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnU2VsZW5pdW0gVGVzdCBKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGdldCB3b3JrIG9yZGVyIG9iamVjdAogICAgICAgIG15ICRXb3JrT3JkZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHdvcmsgb3JkZXIKICAgICAgICBteSAkV29ya09yZGVyVGl0bGVSYW5kb20gPSAnU2VsZW5pdW0gV29yayBPcmRlciAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkV29ya09yZGVySUQgICAgICAgICAgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgIENoYW5nZUlEICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJFdvcmtPcmRlclRpdGxlUmFuZG9tLAogICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnU2VsZW5pdW0gVGVzdCBXb3JrIE9yZGVyJywKICAgICAgICAgICAgUGxhbm5lZEVmZm9ydCAgPT4gMTAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLWJ1aWxkZXInLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXQogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50SVRTTUNoYW5nZVpvb20gb2YgY3JlYXRlZCB0ZXN0IGNoYW5nZQogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZVpvb207Q2hhbmdlSUQ9JENoYW5nZUlEIik7CgogICAgICAgICMgY3JlYXRlIG1lbnUgbW9kdWxlIHRlc3QgcGFyYW1zCiAgICAgICAgbXkgQE1lbnVNb2R1bGUgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICA9PiAiQmFjayIsCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gIkFnZW50SVRTTUNoYW5nZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICA9PiAiSGlzdG9yeSIsCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gIkFnZW50SVRTTUNoYW5nZUhpc3RvcnkiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgPT4gIlByaW50IiwKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAiQWdlbnRJVFNNQ2hhbmdlUHJpbnQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgPT4gIkVkaXQiLAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICJBZ2VudElUU01DaGFuZ2VFZGl0IiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICJJbnZvbHZlZCBQZXJzb25zIiwKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAiQWdlbnRJVFNNQ2hhbmdlSW52b2x2ZWRQZXJzb25zIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICJBZGQgV29ya29yZGVyIiwKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAiQWdlbnRJVFNNV29ya09yZGVyQWRkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICJBZGQgV29ya29yZGVyIChmcm9tIHRlbXBsYXRlKSIsCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gIkFnZW50SVRTTVdvcmtPcmRlckFkZEZyb21UZW1wbGF0ZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICA9PiAiQ29uZGl0aW9uIiwKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAiQWdlbnRJVFNNQ2hhbmdlQ29uZGl0aW9uIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICJMaW5rIiwKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAiQWdlbnRMaW5rT2JqZWN0IiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICJNb3ZlIFRpbWUgU2xvdCIsCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gIkFnZW50SVRTTUNoYW5nZVRpbWVTbG90IiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICJUZW1wbGF0ZSIsCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gIkFnZW50SVRTTUNoYW5nZVRlbXBsYXRlIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGNoYW5nZSBtZW51IG1vZHVsZXMKICAgICAgICBmb3IgbXkgJENoYW5nZVpvb21NZW51TW9kdWxlIChATWVudU1vZHVsZSkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj0kQ2hhbmdlWm9vbU1lbnVNb2R1bGUtPntBY3Rpb259JyApXSIpLAogICAgICAgICAgICAgICAgIkNoYW5nZSBtZW51ICRDaGFuZ2Vab29tTWVudU1vZHVsZS0+e05hbWV9IGlzIGZvdW5kIgogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBkZWxldGUgdGVzdCBjcmVhdGVkIHdvcmsgb3JkZXIKICAgICAgICBteSAkU3VjY2VzcyA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckRlbGV0ZSgKICAgICAgICAgICAgV29ya09yZGVySUQgPT4gJFdvcmtPcmRlcklELAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgZGVsZXRlIHRlc3QgY3JlYXRlZCBjaGFuZ2UKICAgICAgICAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgbWFrZSBzdXJlIGNhY2hlIGlzIGNvcnJlY3QKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9Cik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Output/ITSMWorkOrder/MenuGeneric.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIHN0YXRlIGRhdGEKICAgICAgICBteSAkQ2hhbmdlU3RhdGVEYXRhUmVmID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1HZXQoCiAgICAgICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgTmFtZSAgPT4gJ3JlcXVlc3RlZCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgY2hhbmdlIG9iamVjdAogICAgICAgIG15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGNoYW5nZQogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IERlc2NyaXB0aW9uJywKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnU2VsZW5pdW0gVGVzdCBKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGdldCB3b3JrIG9yZGVyIG9iamVjdAogICAgICAgIG15ICRXb3JrT3JkZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHdvcmsgb3JkZXIKICAgICAgICBteSAkV29ya09yZGVyVGl0bGVSYW5kb20gPSAnU2VsZW5pdW0gV29yayBPcmRlciAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkV29ya09yZGVySUQgICAgICAgICAgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJBZGQoCiAgICAgICAgICAgIENoYW5nZUlEICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgV29ya09yZGVyVGl0bGUgPT4gJFdvcmtPcmRlclRpdGxlUmFuZG9tLAogICAgICAgICAgICBJbnN0cnVjdGlvbiAgICA9PiAnU2VsZW5pdW0gVGVzdCBXb3JrIE9yZGVyJywKICAgICAgICAgICAgUGxhbm5lZEVmZm9ydCAgPT4gMTAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLWJ1aWxkZXInLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXQogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50SVRTTVdvcmtPcmRlclpvb20gb2YgY3JlYXRlZCB0ZXN0IHdvcmsgb3JkZXIKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1dvcmtPcmRlcklEPSRXb3JrT3JkZXJJRCIpOwoKICAgICAgICAjIGNyZWF0ZSBtZW51IG1vZHVsZSB0ZXN0IHBhcmFtcwogICAgICAgIG15IEBNZW51TW9kdWxlID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgPT4gIkJhY2siLAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICJBZ2VudElUU01DaGFuZ2Vab29tIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICJIaXN0b3J5IiwKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAiQWdlbnRJVFNNV29ya09yZGVySGlzdG9yeSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICA9PiAiUHJpbnQiLAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICJBZ2VudElUU01DaGFuZ2VQcmludCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICA9PiAiRWRpdCIsCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gIkFnZW50SVRTTVdvcmtPcmRlckVkaXQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgPT4gIldvcmtvcmRlciBBZ2VudCIsCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gIkFnZW50SVRTTVdvcmtPcmRlckFnZW50IiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICJSZXBvcnQiLAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICJBZ2VudElUU01Xb3JrT3JkZXJSZXBvcnQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgPT4gIkxpbmsiLAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICJBZ2VudExpbmtPYmplY3QiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgPT4gIlRlbXBsYXRlIiwKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAiQWdlbnRJVFNNV29ya09yZGVyVGVtcGxhdGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgPT4gIkRlbGV0ZSIsCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gIkFnZW50SVRTTVdvcmtPcmRlckRlbGV0ZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayB3b3JrIG9yZGVyIG1lbnUgbW9kdWxlcwogICAgICAgIGZvciBteSAkV29ya09yZGVyWm9vbU1lbnVNb2R1bGUgKEBNZW51TW9kdWxlKSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPSRXb3JrT3JkZXJab29tTWVudU1vZHVsZS0+e0FjdGlvbn0nICldIiksCiAgICAgICAgICAgICAgICAiQ2hhbmdlIG1lbnUgJFdvcmtPcmRlclpvb21NZW51TW9kdWxlLT57TmFtZX0gaXMgZm91bmQiCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGRlbGV0ZSB0ZXN0IGNyZWF0ZWQgd29yayBvcmRlcgogICAgICAgIG15ICRTdWNjZXNzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyRGVsZXRlKAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGVzdCBjcmVhdGVkIGNoYW5nZQogICAgICAgICRTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlRGVsZXRlKAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBtYWtlIHN1cmUgY2FjaGUgaXMgY29ycmVjdAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Output/LinkObject/ITSMChange.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CiAgICAgICAgbXkgJFRpY2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKCiAgICAgICAgIyBHZXQgY2hhbmdlIHN0YXRlIGRhdGEuCiAgICAgICAgbXkgJENoYW5nZVN0YXRlRGF0YVJlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtR2V0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgICAgIE5hbWUgID0+ICdyZXF1ZXN0ZWQnLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgY2hhbmdlLgogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IERlc2NyaXB0aW9uJywKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnU2VsZW5pdW0gVGVzdCBKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHRpY2tldC4KICAgICAgICBteSAkVGlja2V0TnVtYmVyID0gJFRpY2tldE9iamVjdC0+VGlja2V0Q3JlYXRlTnVtYmVyKCk7CiAgICAgICAgbXkgJFRpY2tldElEICAgICA9ICRUaWNrZXRPYmplY3QtPlRpY2tldENyZWF0ZSgKICAgICAgICAgICAgVE4gICAgICAgICAgID0+ICRUaWNrZXROdW1iZXIsCiAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAnU2VsZW5pdW0gVGVzdCBUaWNrZXQnLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgPT4gJ1JhdycsCiAgICAgICAgICAgIExvY2sgICAgICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgUHJpb3JpdHkgICAgID0+ICczIG5vcm1hbCcsCiAgICAgICAgICAgIFN0YXRlICAgICAgICA9PiAnb3BlbicsCiAgICAgICAgICAgIEN1c3RvbWVySUQgICA9PiAnVGVzdCBTZWxlbml1bSBDdXN0b21lcicsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAnVGVzdCBTZWxlbml1bSBDdXN0b21lcicsCiAgICAgICAgICAgIE93bmVySUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkVGlja2V0SUQsCiAgICAgICAgICAgICJUaWNrZXQgSUQgJFRpY2tldElEIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1idWlsZGVyJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0KICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudElUU01DaGFuZ2Vab29tIG9mIGNyZWF0ZWQgdGVzdCBjaGFuZ2UuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD0kQ2hhbmdlSUQiKTsKCiAgICAgICAgIyBDbGljayBvbiAnTGluaycgYW5kIHN3aXRjaCBzY3JlZW5zLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudExpbmtPYmplY3Q7U291cmNlT2JqZWN0PUlUU01DaGFuZ2UnICldIiktPmNsaWNrKCk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggV2luZG93Q291bnQgPT4gMiApOwogICAgICAgIG15ICRIYW5kbGVzID0gJFNlbGVuaXVtLT5nZXRfd2luZG93X2hhbmRsZXMoKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMV0gKTsKCiAgICAgICAgIyBXYWl0IHVudGlsIHBhZ2UgaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5LgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjU3VibWl0U2VhcmNoIikubGVuZ3RoOycgKTsKCiAgICAgICAgIyBTZWxlY3QgdGVzdCBjcmVhdGVkIHRpY2tldCB0byBsaW5rIHdpdGggdGVzdCBjcmVhdGVkIGNoYW5nZS4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9pbnB1dFtcQG5hbWU9J1NFQVJDSDo6VGlja2V0TnVtYmVyJ10iKS0+c2VuZF9rZXlzKCRUaWNrZXROdW1iZXIpOwoKICAgICAgICBzbGVlcCgyKTsKCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J1NlYXJjaCddW1xAdHlwZT0nc3VibWl0J10iKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI0xpbmtUYXJnZXRLZXlzJykubGVuZ3RoOyIgKTsKICAgICAgICBzbGVlcCAxOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNMaW5rVGFyZ2V0S2V5cyIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgc2xlZXAgMTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNBZGRMaW5rcyIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKICAgICAgICBzbGVlcCAxOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0xpbmtBZGRDbG9zZUxpbmsiLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDEgKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMF0gKTsKCiAgICAgICAgc2xlZXAoMik7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCJib2R5IikubGVuZ3RoOycgKTsKCiAgICAgICAgIyBWZXJpZnkgdGVzdCBjaGFuZ2UgaXMgbGlua2VkIHdpdGggdGVzdCB0aWNrZXQuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCcjVGlja2V0IHRib2R5IGFbaHJlZio9XCJBY3Rpb249QWdlbnRUaWNrZXRab29tO1RpY2tldElEPSRUaWNrZXRJRFwiXScpLmxlbmd0aDsiCiAgICAgICAgICAgICksCiAgICAgICAgICAgICJUaWNrZXRJRCAkVGlja2V0SUQgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgQ2xpY2sgb24gJ0xpbmsnIGFuZCBzd2l0Y2ggc2NyZWVucy4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkUmVmcmVzaCgpOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoJyQoImFbaHJlZio9XCdBY3Rpb249QWdlbnRMaW5rT2JqZWN0O1NvdXJjZU9iamVjdD1JVFNNQ2hhbmdlXCddIikuY2xpY2soKTsnKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICk7CiAgICAgICAgJEhhbmRsZXMgPSAkU2VsZW5pdW0tPmdldF93aW5kb3dfaGFuZGxlcygpOwogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlsxXSApOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNTdWJtaXRTZWFyY2giKS5sZW5ndGg7JyApOwoKICAgICAgICBzbGVlcCgyKTsKCiAgICAgICAgIyBEZWxldGUgbGluayByZWxhdGlvbi4KICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCckKCJhW2hyZWYqPVwnU3ViYWN0aW9uPUxpbmtEZWxldGVcJ10iKS5jbGljaygpOycpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJyNMaW5rRGVsZXRlSWRlbnRpZmllcicpLmxlbmd0aDsiICk7CiAgICAgICAgc2xlZXAgMTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCckKCIjTGlua0RlbGV0ZUlkZW50aWZpZXIiKS5jbGljaygpOycpOwogICAgICAgIHNsZWVwIDE7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgnJCgiYnV0dG9uW3RpdGxlPVwnRGVsZXRlIGxpbmtzXCddIikuY2xpY2soKTsnKTsKICAgICAgICBzbGVlcCAyOwoKICAgICAgICAkU2VsZW5pdW0tPmNsb3NlKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAxICk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzBdICk7CgogICAgICAgICMgVmVyaWZ5IHRoYXQgbGluayBoYXMgYmVlbiByZW1vdmVkLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRSZWZyZXNoKCk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAicmV0dXJuICFcJCgnI1RpY2tldCB0Ym9keSBhW2hyZWYqPVwiQWN0aW9uPUFnZW50VGlja2V0Wm9vbTtUaWNrZXRJRD0kVGlja2V0SURcIl0nKS5sZW5ndGg7IgogICAgICAgICAgICApLAogICAgICAgICAgICAiVGlja2V0SUQgJFRpY2tldElEIGlzIG5vdCBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgdGVzdCBjcmVhdGVkIGNoYW5nZS4KICAgICAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCB0aWNrZXQuCiAgICAgICAgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXREZWxldGUoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIlRpY2tldCBJRCAkVGlja2V0SUQgaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBNYWtlIHN1cmUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9Cik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Output/LinkObject/ITSMWorkOrder.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CiAgICAgICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CiAgICAgICAgbXkgJFRpY2tldE9iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKCiAgICAgICAgIyBHZXQgY2hhbmdlIHN0YXRlIGRhdGEuCiAgICAgICAgbXkgJENoYW5nZVN0YXRlRGF0YVJlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtR2V0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgICAgIE5hbWUgID0+ICdyZXF1ZXN0ZWQnLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgY2hhbmdlLgogICAgICAgIG15ICRDaGFuZ2VUaXRsZVJhbmRvbSA9ICdJVFNNQ2hhbmdlIFJlcXVlc3RlZCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkQ2hhbmdlSUQgICAgICAgICAgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VBZGQoCiAgICAgICAgICAgIENoYW5nZVRpdGxlICAgPT4gJENoYW5nZVRpdGxlUmFuZG9tLAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IERlc2NyaXB0aW9uJywKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiA9PiAnU2VsZW5pdW0gVGVzdCBKdXN0aWZpY2F0aW9uJywKICAgICAgICAgICAgQ2hhbmdlU3RhdGVJRCA9PiAkQ2hhbmdlU3RhdGVEYXRhUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHdvcmsgb3JkZXIuCiAgICAgICAgbXkgJFdvcmtPcmRlclRpdGxlUmFuZG9tID0gJ1NlbGVuaXVtIFdvcmsgT3JkZXIgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFdvcmtPcmRlcklEICAgICAgICAgID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyQWRkKAogICAgICAgICAgICBDaGFuZ2VJRCAgICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlID0+ICRXb3JrT3JkZXJUaXRsZVJhbmRvbSwKICAgICAgICAgICAgSW5zdHJ1Y3Rpb24gICAgPT4gJ1NlbGVuaXVtIFRlc3QgV29yayBPcmRlcicsCiAgICAgICAgICAgIFBsYW5uZWRFZmZvcnQgID0+IDEwLAogICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRXb3JrT3JkZXJUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHRpY2tldC4KICAgICAgICBteSAkVGlja2V0TnVtYmVyID0gJFRpY2tldE9iamVjdC0+VGlja2V0Q3JlYXRlTnVtYmVyKCk7CiAgICAgICAgbXkgJFRpY2tldElEICAgICA9ICRUaWNrZXRPYmplY3QtPlRpY2tldENyZWF0ZSgKICAgICAgICAgICAgVE4gICAgICAgICAgID0+ICRUaWNrZXROdW1iZXIsCiAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAnU2VsZW5pdW0gVGVzdCBUaWNrZXQnLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgPT4gJ1JhdycsCiAgICAgICAgICAgIExvY2sgICAgICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgUHJpb3JpdHkgICAgID0+ICczIG5vcm1hbCcsCiAgICAgICAgICAgIFN0YXRlICAgICAgICA9PiAnb3BlbicsCiAgICAgICAgICAgIEN1c3RvbWVySUQgICA9PiAnVGVzdCBTZWxlbml1bSBDdXN0b21lcicsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAnVGVzdCBTZWxlbml1bSBDdXN0b21lcicsCiAgICAgICAgICAgIE93bmVySUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkVGlja2V0SUQsCiAgICAgICAgICAgICJUaWNrZXQgSUQgJFRpY2tldElEIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIGFuZCBsb2cgaW4gdGVzdCB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycsICdpdHNtLWNoYW5nZScsICdpdHNtLWNoYW5nZS1idWlsZGVyJywgJ2l0c20tY2hhbmdlLW1hbmFnZXInIF0KICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudElUU01Xb3JrT3JkZXJab29tIG9mIGNyZWF0ZWQgdGVzdCB3b3JrIG9yZGVyLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlclpvb207V29ya09yZGVySUQ9JFdvcmtPcmRlcklEIik7CgogICAgICAgICMgQ2xpY2sgb24gJ0xpbmsnIGFuZCBzd2l0Y2ggc2NyZWVucy4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdBY3Rpb249QWdlbnRMaW5rT2JqZWN0O1NvdXJjZU9iamVjdD1JVFNNV29ya09yZGVyJyApXSIpCiAgICAgICAgICAgIC0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICk7CiAgICAgICAgbXkgJEhhbmRsZXMgPSAkU2VsZW5pdW0tPmdldF93aW5kb3dfaGFuZGxlcygpOwogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlsxXSApOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNTdWJtaXRTZWFyY2giKS5sZW5ndGg7JyApOwogICAgICAgIHNsZWVwIDI7CgogICAgICAgICMgU2VsZWN0IHRlc3QgY3JlYXRlZCB0aWNrZXQgdG8gbGluayB3aXRoIHRlc3QgY3JlYXRlZCB3b3JrIG9yZGVyLgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI1RhcmdldElkZW50aWZpZXInKS52YWwoJ1RpY2tldCcpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CiAgICAgICAgc2xlZXAgMjsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gInJldHVybiB0eXBlb2YoXCQpID09PSAnZnVuY3Rpb24nICYmICBcJCgnaW5wdXRbbmFtZSo9VGlja2V0TnVtYmVyJykubGVuZ3RoOyIKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9pbnB1dFtcQG5hbWU9J1NFQVJDSDo6VGlja2V0TnVtYmVyJ10iKS0+c2VuZF9rZXlzKCRUaWNrZXROdW1iZXIpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTZWFyY2gnXVtcQHR5cGU9J3N1Ym1pdCddIiktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJ2lucHV0I0xpbmtUYXJnZXRLZXlzJykubGVuZ3RoOyIgKTsKICAgICAgICBzbGVlcCAxOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNMaW5rVGFyZ2V0S2V5cyIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjQWRkTGlua3MiLCAgICAgICAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CiAgICAgICAgc2xlZXAgMTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNMaW5rQWRkQ2xvc2VMaW5rIiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAxICk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzBdICk7CgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRSZWZyZXNoKCk7CgogICAgICAgICMgVmVyaWZ5IHRlc3Qgd29yayBvcmRlciBpcyBsaW5rZWQgd2l0aCB0ZXN0IHRpY2tldC4KICAgICAgICBzbGVlcCAxOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgncmV0dXJuICQoIi5MaW5rT2JqZWN0TGluayIpLnRleHQoKTsnKSwKICAgICAgICAgICAgJFRpY2tldE51bWJlciwKICAgICAgICAgICAgIlRlc3QgdGlja2V0IG51bWJlciAkVGlja2V0TnVtYmVyIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIENsaWNrIG9uICdMaW5rJyBhbmQgc3dpdGNoIHNjcmVlbnMuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50TGlua09iamVjdDtTb3VyY2VPYmplY3Q9SVRTTVdvcmtPcmRlcicgKV0iKQogICAgICAgICAgICAtPmNsaWNrKCk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggV2luZG93Q291bnQgPT4gMiApOwogICAgICAgICRIYW5kbGVzID0gJFNlbGVuaXVtLT5nZXRfd2luZG93X2hhbmRsZXMoKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMV0gKTsKCiAgICAgICAgIyBXYWl0IHVudGlsIHBhZ2UgaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5LgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjU3VibWl0U2VhcmNoIikubGVuZ3RoOycgKTsKCiAgICAgICAgIyBEZWxldGUgbGluayByZWxhdGlvbi4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW1xAaHJlZj0nI01hbmFnZUxpbmtzJ10iKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCckKCIjTGlua0RlbGV0ZUlkZW50aWZpZXIiKS5jbGljaygpOycpOwogICAgICAgIHNsZWVwIDE7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgnJCgiYnV0dG9uW3RpdGxlPVwnRGVsZXRlIGxpbmtzXCddIikuY2xpY2soKTsnKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnLk1lc3NhZ2VCb3guSW5mbyBwJykubGVuZ3RoOyIgKTsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiAkKCIuTWVzc2FnZUJveC5JbmZvIHAiKS50ZXh0KCkudHJpbSgpOycpLAogICAgICAgICAgICAiMSBMaW5rKHMpIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5LiIsCiAgICAgICAgICAgICJDaGVjayBpZiBsaW5rIGlzIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5IiwKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPmNsb3NlKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAxICk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzBdICk7CgogICAgICAgICMgVmVyaWZ5IHRoYXQgbGluayBoYXMgYmVlbiByZW1vdmVkLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRSZWZyZXNoKCk7CiAgICAgICAgJFNlbGYtPkZhbHNlKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4gJCgiLkxpbmtPYmplY3RMaW5rIikudGV4dCgpOycpLAogICAgICAgICAgICAiVGVzdCB0aWNrZXQgbnVtYmVyICRUaWNrZXROdW1iZXIgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCB3b3JrIG9yZGVyLgogICAgICAgIG15ICRTdWNjZXNzID0gJFdvcmtPcmRlck9iamVjdC0+V29ya09yZGVyRGVsZXRlKAogICAgICAgICAgICBXb3JrT3JkZXJJRCA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkV29ya09yZGVyVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgdGVzdCBjcmVhdGVkIGNoYW5nZS4KICAgICAgICAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCB0aWNrZXQuCiAgICAgICAgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXREZWxldGUoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIlRpY2tldCBJRCAkVGlja2V0SUQgaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBNYWtlIHN1cmUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9Cik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Output/ToolBar/ChangeManager.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLWJ1aWxkZXInLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXQogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIGdldCB0ZXN0IHVzZXIgSUQKICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugc3RhdGUgZGF0YQogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgY2hhbmdlCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgUmVxdWVzdGVkICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRDaGFuZ2VJRCAgICAgICAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICAgID0+ICRDaGFuZ2VUaXRsZVJhbmRvbSwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgID0+ICdTZWxlbml1bSBUZXN0IERlc2NyaXB0aW9uJywKICAgICAgICAgICAgSnVzdGlmaWNhdGlvbiAgID0+ICdTZWxlbml1bSBUZXN0IEp1c3RpZmljYXRpb24nLAogICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEICAgPT4gJENoYW5nZVN0YXRlRGF0YVJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIENoYW5nZU1hbmFnZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIHZlcmlmeSB0aGF0IHRvb2wgYmFyIENoYW5nZU1hbmFnZXIgaXMgZW5hYmxlZCBhbmQgZGlzcGxheWVkCiAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdBY3Rpb249QWdlbnRJVFNNQ2hhbmdlTWFuYWdlcicpXSIpOwogICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwoKICAgICAgICAjIGRlbGV0ZSB0ZXN0IGNyZWF0ZWQgY2hhbmdlCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIG1ha2Ugc3VyZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Output/ToolBar/MyCAB.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLWJ1aWxkZXInLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXQogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIGdldCB0ZXN0IHVzZXIgSUQKICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugc3RhdGUgZGF0YQogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgY2hhbmdlCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgUmVxdWVzdGVkICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRDaGFuZ2VJRCAgICAgICAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAkQ2hhbmdlVGl0bGVSYW5kb20sCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIFRlc3QgRGVzY3JpcHRpb24nLAogICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICdTZWxlbml1bSBUZXN0IEp1c3RpZmljYXRpb24nLAogICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICBDQUJBZ2VudHMgICAgID0+IFskVGVzdFVzZXJJRF0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2hhbmdlSUQsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgdmVyaWZ5IHRoYXQgdG9vbCBiYXIgTXlDQUIgaXMgZW5hYmxlZCBhbmQgZGlzcGxheWVkCiAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdBY3Rpb249QWdlbnRJVFNNQ2hhbmdlTXlDQUInKV0iKTsKICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyBkZWxldGUgdGVzdCBjcmVhdGVkIGNoYW5nZQogICAgICAgIG15ICRTdWNjZXNzID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlRGVsZXRlKAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICIkQ2hhbmdlVGl0bGVSYW5kb20gaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBtYWtlIHN1cmUgY2FjaGUgaXMgY29ycmVjdAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdJVFNNQ2hhbmdlKicgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Output/ToolBar/MyChanges.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLWJ1aWxkZXInLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXQogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIGdldCB0ZXN0IHVzZXIgSUQKICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugc3RhdGUgZGF0YQogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgY2hhbmdlCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgUmVxdWVzdGVkICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRDaGFuZ2VJRCAgICAgICAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAkQ2hhbmdlVGl0bGVSYW5kb20sCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIFRlc3QgRGVzY3JpcHRpb24nLAogICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICdTZWxlbml1bSBUZXN0IEp1c3RpZmljYXRpb24nLAogICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhhdCB0b29sIGJhciBNeUNoYW5nZXMgaXMgZW5hYmxlZCBhbmQgZGlzcGxheWVkCiAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdBY3Rpb249QWdlbnRJVFNNQ2hhbmdlTXlDaGFuZ2VzJyldIik7CiAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CgogICAgICAgICMgZGVsZXRlIHRlc3QgY3JlYXRlZCBjaGFuZ2UKICAgICAgICBteSAkU3VjY2VzcyA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZURlbGV0ZSgKICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgbWFrZSBzdXJlIGNhY2hlIGlzIGNvcnJlY3QKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAnSVRTTUNoYW5nZSonICk7CiAgICB9Cik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Output/ToolBar/MyWorkOrder.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ2l0c20tY2hhbmdlJywgJ2l0c20tY2hhbmdlLWJ1aWxkZXInLCAnaXRzbS1jaGFuZ2UtbWFuYWdlcicgXQogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIGdldCB0ZXN0IHVzZXIgSUQKICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugc3RhdGUgZGF0YQogICAgICAgIG15ICRDaGFuZ2VTdGF0ZURhdGFSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUdldCgKICAgICAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkNoYW5nZTo6U3RhdGUnLAogICAgICAgICAgICBOYW1lICA9PiAncmVxdWVzdGVkJywKICAgICAgICApOwoKICAgICAgICAjIGdldCBjaGFuZ2Ugb2JqZWN0CiAgICAgICAgbXkgJENoYW5nZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgY2hhbmdlCiAgICAgICAgbXkgJENoYW5nZVRpdGxlUmFuZG9tID0gJ0lUU01DaGFuZ2UgUmVxdWVzdGVkICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRDaGFuZ2VJRCAgICAgICAgICA9ICRDaGFuZ2VPYmplY3QtPkNoYW5nZUFkZCgKICAgICAgICAgICAgQ2hhbmdlVGl0bGUgICA9PiAkQ2hhbmdlVGl0bGVSYW5kb20sCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIFRlc3QgRGVzY3JpcHRpb24nLAogICAgICAgICAgICBKdXN0aWZpY2F0aW9uID0+ICdTZWxlbml1bSBUZXN0IEp1c3RpZmljYXRpb24nLAogICAgICAgICAgICBDaGFuZ2VTdGF0ZUlEID0+ICRDaGFuZ2VTdGF0ZURhdGFSZWYtPntJdGVtSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJENoYW5nZVRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHdvcmsgb3JkZXIgb2JqZWN0CiAgICAgICAgbXkgJFdvcmtPcmRlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyk7CgogICAgICAgICMgY3JlYXRlIHRlc3Qgd29yayBvcmRlcgogICAgICAgIG15ICRXb3JrT3JkZXJUaXRsZVJhbmRvbSA9ICdTZWxlbml1bSBXb3JrIE9yZGVyICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRXb3JrT3JkZXJJRCAgICAgICAgICA9ICRXb3JrT3JkZXJPYmplY3QtPldvcmtPcmRlckFkZCgKICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgICA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFdvcmtPcmRlclRpdGxlICAgPT4gJFdvcmtPcmRlclRpdGxlUmFuZG9tLAogICAgICAgICAgICBJbnN0cnVjdGlvbiAgICAgID0+ICdTZWxlbml1bSBUZXN0IFdvcmsgT3JkZXInLAogICAgICAgICAgICBQbGFubmVkRWZmb3J0ICAgID0+IDEwLAogICAgICAgICAgICBXb3JrT3JkZXJBZ2VudElEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJENoYW5nZUlELAogICAgICAgICAgICAiJFdvcmtPcmRlclRpdGxlUmFuZG9tIGlzIGNyZWF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIHZlcmlmeSB0aGF0IHRvb2wgYmFyIE15V29ya09yZGVyIGlzIGVuYWJsZWQgYW5kIGRpc3BsYXllZAogICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50SVRTTUNoYW5nZU15V29ya09yZGVyJyldIik7CiAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CgogICAgICAgICMgZGVsZXRlIHRlc3QgY3JlYXRlZCB3b3JrIG9yZGVyCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkV29ya09yZGVyT2JqZWN0LT5Xb3JrT3JkZXJEZWxldGUoCiAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRXb3JrT3JkZXJUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIGRlbGV0ZSB0ZXN0IGNyZWF0ZWQgY2hhbmdlCiAgICAgICAgJFN1Y2Nlc3MgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VEZWxldGUoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRDaGFuZ2VUaXRsZVJhbmRvbSBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIG1ha2Ugc3VyZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gJ0lUU01DaGFuZ2UqJyApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Console/Command/Admin/ITSM/Change/Delete.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRXhwbGljaXRQYWNrYWdlKQp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKdXNlIHZhcnMgKHF3KCRTZWxmKSk7CgpteSAkQ29tbWFuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpDb21tYW5kOjpBZG1pbjo6SVRTTTo6Q2hhbmdlOjpEZWxldGUnKTsKCiMgY2hlY2sgY29tbWFuZCB3aXRob3V0IG9wdGlvbgpteSAkRXhpdENvZGUgPSAkQ29tbWFuZE9iamVjdC0+RXhlY3V0ZSgpOwoKJFNlbGYtPklzKAogICAgJEV4aXRDb2RlLAogICAgMSwKICAgICJBZG1pbjo6SVRTTTo6Q2hhbmdlOjpDaGVjayAtIE5vIG9wdGlvbnMiLAopOwoKI2NoZWNrIGNvbW1hbmQgd2l0aCBvcHRpb24gLS1hbGwgYW5kIGFyZ3VtZW50IC0tYWNjZXB0IG4gKCBjYW5jZWwgY29tbWFuZCApCiRFeGl0Q29kZSA9ICRDb21tYW5kT2JqZWN0LT5FeGVjdXRlKCAnLS1hbGwnLCAnbicgKTsKCiRTZWxmLT5JcygKICAgICRFeGl0Q29kZSwKICAgIDAsCiAgICAiT3B0aW9uICctLWFsbCcgbiIsCik7CgojIGdldCBjaGFuZ2Ugb2JqZWN0Cm15ICRDaGFuZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpOwpteSBAQ2hhbmdlTnVtYmVyczsKCiMgYWRkIHRlc3QgY2hhbmdlcwpmb3IgKCAxIC4uIDMgKSB7CgogICAgbXkgJENoYW5nZUlEID0gJENoYW5nZU9iamVjdC0+Q2hhbmdlQWRkKAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKICAgIG15ICRDaGFuZ2UgPSAkQ2hhbmdlT2JqZWN0LT5DaGFuZ2VHZXQoCiAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRDaGFuZ2VJRCwKICAgICAgICAiVGVzdCBjaGFuZ2UgaXMgY3JlYXRlZCAtICRDaGFuZ2UtPntDaGFuZ2VOdW1iZXJ9IiwKICAgICk7CgogICAgcHVzaCBAQ2hhbmdlTnVtYmVycywgJENoYW5nZS0+e0NoYW5nZU51bWJlcn07Cn0KCiMgY2hlY2sgY29tbWFuZCB3aXRoIG9wdGlvbiAtLWNoYW5nZS1udW1iZXIgd2l0aG91dCBzcGVjaWZpZWQgY2hhbmdlIG51bWJlcgokRXhpdENvZGUgPSAkQ29tbWFuZE9iamVjdC0+RXhlY3V0ZSgnLS1jaGFuZ2UtbnVtYmVyJyk7CgokU2VsZi0+SXMoCiAgICAkRXhpdENvZGUsCiAgICAxLAogICAgIk9wdGlvbiAnLS1jaGFuZ2UtbnVtYmVyJyB3aXRob3V0IHNwZWNpZmllZCBjaGFuZ2UgbnVtYmVyLiIsCik7CgojIGNoZWNrIGNvbW1hbmQgd2l0aCBvcHRpb24gLS1jaGFuZ2UtbnVtYmVyIHdpdGggc3BlY2lmaWVkIGNoYW5nZSBudW1iZXJzCiRFeGl0Q29kZSA9ICRDb21tYW5kT2JqZWN0LT5FeGVjdXRlKAogICAgJy0tY2hhbmdlLW51bWJlcicsICRDaGFuZ2VOdW1iZXJzWzBdLCAnLS1jaGFuZ2UtbnVtYmVyJywgJENoYW5nZU51bWJlcnNbMV0sCiAgICAnLS1jaGFuZ2UtbnVtYmVyJywgJENoYW5nZU51bWJlcnNbMl0sCik7CgokU2VsZi0+SXMoCiAgICAkRXhpdENvZGUsCiAgICAwLAogICAgIk9wdGlvbiAnLS1jaGFuZ2UtbnVtYmVyJyB3aXRoIHNwZWNpZmllZCBjaGFuZ2UgbnVtYmVycy4iLAopOwoKIyB0cnkgdG8gZXhlY3V0ZSB0aGUgY29tbWFuZCBvbmNlIG1vcmUgd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzCiMgdGhlIGNoYW5nZXMgaGF2ZSBhbHJlZHkgYmVlbiBkZWxldGVkLCBhbmQgdGhpcyBvbmVzIGRvIG5vdCBleGlzdCBhbnltb3JlCiRFeGl0Q29kZSA9ICRDb21tYW5kT2JqZWN0LT5FeGVjdXRlKAogICAgJy0tY2hhbmdlLW51bWJlcicsICRDaGFuZ2VOdW1iZXJzWzBdLCAnLS1jaGFuZ2UtbnVtYmVyJywgJENoYW5nZU51bWJlcnNbMV0sCiAgICAnLS1jaGFuZ2UtbnVtYmVyJywgJENoYW5nZU51bWJlcnNbMl0sCik7CgokU2VsZi0+SXMoCiAgICAkRXhpdENvZGUsCiAgICAwLAogICAgIk9wdGlvbiAnLS1jaGFuZ2UtbnVtYmVyJyB3aXRoIHNwZWNpZmllZCBjaGFuZ2UgbnVtYmVycywgd2hpY2ggZG8gbm90IGV4aXN0cy4iLAopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Console/Command/Admin/ITSM/Change/Check.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRXhwbGljaXRQYWNrYWdlKQp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKdXNlIHZhcnMgKHF3KCRTZWxmKSk7CgpteSAkQ29tbWFuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpDb21tYW5kOjpBZG1pbjo6SVRTTTo6Q2hhbmdlOjpDaGVjaycpOwoKIyBjaGVjayBjb21tYW5kIHdpdGhvdXQgb3B0aW9uCm15ICRFeGl0Q29kZSA9ICRDb21tYW5kT2JqZWN0LT5FeGVjdXRlKCk7CgokU2VsZi0+SXMoCiAgICAkRXhpdENvZGUsCiAgICAwLAogICAgIkFkbWluOjpJVFNNOjpDaGFuZ2U6OkNoZWNrIC0gTm8gb3B0aW9ucyIsCik7CgojIGNoZWNrIGNvbW1hbmQgd2l0aCBvcHRpb24gLS1mb3JjZQokRXhpdENvZGUgPSAkQ29tbWFuZE9iamVjdC0+RXhlY3V0ZSgnLS1mb3JjZS1waWQnKTsKCiRTZWxmLT5JcygKICAgICRFeGl0Q29kZSwKICAgIDAsCiAgICAiT3B0aW9uICctLWZvcmNlLXBpZCciLAopOwoKMTsK</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Admin.ChangeManagement.ChangeNotification.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgSVRTTSA9IElUU00gfHwge307CklUU00uQWRtaW4gPSBJVFNNLkFkbWluIHx8IHt9OwpJVFNNLkFkbWluLkNoYW5nZU1hbmFnZW1lbnQgPSBJVFNNLkFkbWluLkNoYW5nZU1hbmFnZW1lbnQgfHwge307CgoKLyoqCiAqIEBuYW1lc3BhY2UgSVRTTS5BZG1pbi5DaGFuZ2VNYW5hZ2VtZW50LkNoYW5nZU5vdGlmaWNhdGlvbgogKiBAbWVtYmVyb2YgSVRTTS5BZG1pbi5DaGFuZ2VNYW5hZ2VtZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgQ2hhbmdlIE5vdGlmaWNhdGlvbgogKi8KSVRTTS5BZG1pbi5DaGFuZ2VNYW5hZ2VtZW50LkNoYW5nZU5vdGlmaWNhdGlvbiA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICAvKioKICAgICAqIEBuYW1lIEluaXQKICAgICAqIEBtZW1iZXJvZiBJVFNNLkFkbWluLkNoYW5nZU1hbmFnZW1lbnQuQ2hhbmdlTm90aWZpY2F0aW9uCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMuCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgIGlmIChDb3JlLkNvbmZpZy5HZXQoJ092ZXJ2aWV3UmVzdWx0JykpIHsKICAgICAgICAgICAgJCgnLk5vdGlmaWNhdGlvbkRlbGV0ZScpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChFdmVudCkgewoKICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuY29uZmlybShDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vdGlmaWNhdGlvbj8nKSkpIHsKICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAkKHRoaXMpLmF0dHIoJ2hyZWYnKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBkb24ndCBpbnRlcmZlcmUgd2l0aCBNYXN0ZXJBY3Rpb24KICAgICAgICAgICAgICAgIEV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICAgICAgRXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoQ29yZS5Db25maWcuR2V0KCdPdmVydmlld1VwZGF0ZScpKSB7CiAgICAgICAgICAgIGlmIChJVFNNLkFnZW50ICYmIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudCAmJiBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuTm90aWZpY2F0aW9uRXZlbnQpIHsKICAgICAgICAgICAgICAgIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Ob3RpZmljYXRpb25FdmVudC5Jbml0KHsKICAgICAgICAgICAgICAgICAgICBMb2NhbGl6YXRpb246IHsKICAgICAgICAgICAgICAgICAgICAgICAgRGVsZXRlTm90aWZpY2F0aW9uTGFuZ3VhZ2VNc2c6IENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm90aWZpY2F0aW9uIGxhbmd1YWdlPycpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oSVRTTS5BZG1pbi5DaGFuZ2VNYW5hZ2VtZW50LkNoYW5nZU5vdGlmaWNhdGlvbiB8fCB7fSkpOwo=</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.AddEdit.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS9cbiI7Ci8vIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIElUU00gPSBJVFNNIHx8IHt9OwpJVFNNLkFnZW50ID0gSVRTTS5BZ2VudCB8fCB7fTsKSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50ID0gSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50IHx8IHt9OwoKCi8qKgogKiBAbmFtZXNwYWNlIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5BZGRFZGl0CiAqIEBtZW1iZXJvZiBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQKICogQGF1dGhvciBPVFJTIEFHCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBjaGFuZ2UtbWFuYWdlbWVudCBhZGQvZWRpdCBzY3JlZW4uCiAqLwpJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQWRkRWRpdCA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICAvKioKICAgICAqIEBuYW1lIEluaXQKICAgICAqIEBuYW1lc3BhY2UgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkFkZEVkaXQKICAgICAqIEBmdW5jdGlvbgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgc29tZSBiZWhhdmlvdXJzIGZvciB0aGUgYWRkL2VkaXQgc2NyZWVuLgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewogICAgICAgICQoJyNDYXRlZ29yeUlEJykub24oJ2NoYW5nZS5JVFNNQ2hhbmdlTWFuYWdlbWVudC5DYXRlZ29yeUlEJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICBDb3JlLkFKQVguRm9ybVVwZGF0ZSgkKCcjQ2hhbmdlRm9ybScpLCAnQUpBWFVwZGF0ZScsICdDYXRlZ29yeUlEJywgWydJbXBhY3RJRCcsICdQcmlvcml0eUlEJ10pOwogICAgICAgIH0pOwogICAgICAgICQoJyNJbXBhY3RJRCcpLm9uKCdjaGFuZ2UuSVRTTUNoYW5nZU1hbmFnZW1lbnQuSW1wYWN0SUQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIENvcmUuQUpBWC5Gb3JtVXBkYXRlKCQoJyNDaGFuZ2VGb3JtJyksICdBSkFYVXBkYXRlJywgJ0ltcGFjdElEJywgWydQcmlvcml0eUlEJ10pOwogICAgICAgIH0pOwogICAgfTsKCiAgICBDb3JlLkluaXQuUmVnaXN0ZXJOYW1lc3BhY2UoVGFyZ2V0TlMsICdBUFBfTU9EVUxFJyk7CgogICAgcmV0dXJuIFRhcmdldE5TOwoKfShJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQWRkRWRpdCB8fCB7fSkpOwo=</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.CABMemberSearch.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgSVRTTSA9IElUU00gfHwge307CklUU00uQWdlbnQgPSBJVFNNLkFnZW50IHx8IHt9OwpJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgPSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ0FCTWVtYmVyU2VhcmNoCiAqIEBtZW1iZXJvZiBJVFNNLkFnZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgQ0FCIHNlYXJjaC4KICovCklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5DQUJNZW1iZXJTZWFyY2ggPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbWVtYmVyb2YgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNBQk1lbWJlclNlYXJjaAogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge2pRdWVyeU9iamVjdH0gJEVsZW1lbnQgLSBUaGUgalF1ZXJ5IG9iamVjdCBvZiB0aGUgaW5wdXQgZmllbGQgd2l0aCBhdXRvY29tcGxldGUuCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zLgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewoKICAgICAgICAkKCcuQ0FCTWVtYmVyU2VhcmNoJykuZWFjaChmdW5jdGlvbihpZHgsIEVsZW1lbnQpewoKICAgICAgICAgICAgdmFyICRFbGVtZW50ID0gJChFbGVtZW50KTsKCiAgICAgICAgICAgIENvcmUuVUkuQXV0b2NvbXBsZXRlLkluaXQoCiAgICAgICAgICAgICAgICAkRWxlbWVudCwKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChSZXF1ZXN0LCBSZXNwb25zZSkgewogICAgICAgICAgICAgICAgICAgIHZhciBVUkwgPSBDb3JlLkNvbmZpZy5HZXQoJ0Jhc2VsaW5rJyksIERhdGEgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbjogJ0FnZW50SVRTTUNBQk1lbWJlclNlYXJjaCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFRlcm06IFJlcXVlc3QudGVybSArICcqJywKICAgICAgICAgICAgICAgICAgICAgICAgR3JvdXBzOiBDb3JlLkNvbmZpZy5HZXQoJ0NBQkF1dG9jb21wbGV0ZS5Hcm91cHMnKSB8fCAnJywKICAgICAgICAgICAgICAgICAgICAgICAgTWF4UmVzdWx0czogQ29yZS5VSS5BdXRvY29tcGxldGUuR2V0Q29uZmlnKCdNYXhSZXN1bHRzRGlzcGxheWVkJykKICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICAgICAkRWxlbWVudC5kYXRhKCdBdXRvQ29tcGxldGVYSFInLCBDb3JlLkFKQVguRnVuY3Rpb25DYWxsKFVSTCwgRGF0YSwgZnVuY3Rpb24gKFJlc3VsdCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgVmFsdWVEYXRhID0gW107CiAgICAgICAgICAgICAgICAgICAgICAgICRFbGVtZW50LnJlbW92ZURhdGEoJ0F1dG9Db21wbGV0ZVhIUicpOwogICAgICAgICAgICAgICAgICAgICAgICAkLmVhY2goUmVzdWx0LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZURhdGEucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuVXNlclZhbHVlICsgIiAoIiArIHRoaXMuVXNlcktleSArICIpIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5Vc2VyVmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdGhpcy5Vc2VyVHlwZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICBSZXNwb25zZShWYWx1ZURhdGEpOwogICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoRXZlbnQsIFVJKSB7CgogICAgICAgICAgICAgICAgICAgIHZhciBVc2VyS2V5ID0gVUkuaXRlbS5sYWJlbC5yZXBsYWNlKC8uKlwoKC4qKVwpJC8sICckMScpOwogICAgICAgICAgICAgICAgICAgICRFbGVtZW50LnZhbChVSS5pdGVtLnZhbHVlKTsKCiAgICAgICAgICAgICAgICAgICAgLy8gc2V0IGhpZGRlbiBmaWVsZCBVc2VyU2VsZWN0ZWQKICAgICAgICAgICAgICAgICAgICAkKCcjJyArIENvcmUuQXBwLkVzY2FwZVNlbGVjdG9yKCRFbGVtZW50LmF0dHIoJ2lkJykpICsgJ1NlbGVjdGVkJykudmFsKFVzZXJLZXkpOwogICAgICAgICAgICAgICAgICAgICQoJyMnICsgQ29yZS5BcHAuRXNjYXBlU2VsZWN0b3IoJEVsZW1lbnQuYXR0cignaWQnKSkgKyAnVHlwZScpLnZhbChVSS5pdGVtLnR5cGUpOwoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgJ0N1c3RvbWVyU2VhcmNoJwogICAgICAgICAgICApOwoKICAgICAgICAgICAgLy8gT24gdW5sb2FkIHJlbW92ZSBvbGQgc2VsZWN0ZWQgZGF0YS4gSWYgdGhlIHBhZ2UgaXMgcmVsb2FkZWQgKHdpdGggRjUpIHRoaXMgZGF0YSBzdGF5cyBpbiB0aGUgZmllbGQgYW5kIGludm9rZXMgYW4gYWpheCByZXF1ZXN0IG90aGVyd2lzZQogICAgICAgICAgICAkKHdpbmRvdykub24oJ2JlZm9yZXVubG9hZC5DQUJNZW1iZXJTZWFyY2gnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAvLyBlc2NhcGUgcG9zc2libGUgY29sb25zICg6KSBpbiBlbGVtZW50IGlkIGJlY2F1c2UgalF1ZXJ5IGNhbiBub3QgaGFuZGxlIGl0IGluIGlkIGF0dHJpYnV0ZSBzZWxlY3RvcnMKICAgICAgICAgICAgICAgICQoJyMnICsgQ29yZS5BcHAuRXNjYXBlU2VsZWN0b3IoJEVsZW1lbnQuYXR0cignaWQnKSkgKyAnU2VsZWN0ZWQnKS52YWwoJycpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9KTsKCiAgICAgICAgfSk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNBQk1lbWJlclNlYXJjaCB8fCB7fSkpOwo=</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.CABTemplateEdit.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS9cbiI7Ci8vIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIElUU00gPSBJVFNNIHx8IHt9OwpJVFNNLkFnZW50ID0gSVRTTS5BZ2VudCB8fCB7fTsKSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50ID0gSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50IHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkFkZAogKiBAbWVtYmVyb2YgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgY2hhbmdlLW1hbmFnZW1lbnQgYWRkIHNjcmVlbi4KICovCklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5DQUJUZW1wbGF0ZUVkaXQgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAcHJpdmF0ZQogICAgICogQG5hbWUgRGVsZXRlQ0FCTWVtYmVyCiAgICAgKiBAbmFtZXNwYWNlIElUU00uQWdlbnQKICAgICAqIEBmdW5jdGlvbgogICAgICogQHJldHVybnMge2ZhbHNlfSBSZXR1cm5zIGZhbHNlIHRvIGNhbmNlbCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2YgYW5jaG9yIGVsZW1lbnRzLgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgY2FiIG1lbWJlciB0byBkZWxldGUgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIERlbGV0ZUNBQk1lbWJlcigpIHsKICAgICAgICB2YXIgJFRoaXMgPSAkKHRoaXMpOwogICAgICAgIHZhciAkRm9ybSA9ICRUaGlzLmNsb3Nlc3QoJ2Zvcm0nKTsKCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkRpc2FibGVWYWxpZGF0aW9uKCRGb3JtKTsKCiAgICAgICAgJCgnaW5wdXRbbmFtZT1EZWxldGVDQUJNZW1iZXJdJywgJEZvcm0pLnZhbCgkVGhpcy5hdHRyKCdpZCcpKTsKCiAgICAgICAgJEZvcm0uc3VibWl0KCk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKCiAgICAvKioKICAgICAqIEBuYW1lIEluaXQKICAgICAqIEBuYW1lc3BhY2UgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNBQlRlbXBsYXRlRWRpdAogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBzb21lIGJlaGF2aW91cnMgZm9yIHRoZSBhZGQgc2NyZWVuLgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewoKICAgICAgICAvLyBCaW5kIGVsZW1lbnRzIHdpdGggY2xhc3MgJy5EZWxldGVDQUJNZW1iZXInIHRvIGRlbGV0ZSB0aGUgY2FiIG1lbWJlci4KICAgICAgICAkKCcuRGVsZXRlQ0FCTWVtYmVyJykub2ZmKCdjbGljay5DQUIuVGVtcGxhdGVFZGl0Jykub24oJ2NsaWNrLkNBQi5UZW1wbGF0ZUVkaXQnLCBEZWxldGVDQUJNZW1iZXIpOwoKICAgICAgICAkKCcjQnRuQWRkQ0FCTWVtYmVyJykub2ZmKCdjbGljay5BZ2VudElUU01UZW1wbGF0ZUVkaXRDQUJBZGRDQUJNZW1iZXInKS5vbignY2xpY2suQWdlbnRJVFNNVGVtcGxhdGVFZGl0Q0FCQWRkQ0FCTWVtYmVyJywgZnVuY3Rpb24gKCkgewoKICAgICAgICAgICAgdmFyICRGb3JtID0gJCgnI0FkZENBQk1lbWJlcicpLmNsb3Nlc3QoJ2Zvcm0nKTsKICAgICAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkRpc2FibGVWYWxpZGF0aW9uKCRGb3JtKTsKCiAgICAgICAgICAgICQoJ2lucHV0W25hbWU9QWRkQ0FCTWVtYmVyXScsICRGb3JtKS52YWwoJ0FkZCcpOwoKICAgICAgICB9KTsKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKCn0oSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNBQlRlbXBsYXRlRWRpdCB8fCB7fSkpOwo=</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.Condition.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS9cbiI7Ci8vIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIElUU00gPSBJVFNNIHx8IHt9OwpJVFNNLkFnZW50ID0gSVRTTS5BZ2VudCB8fCB7fTsKSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50ID0gSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50IHx8IHt9OwoKCi8qKgogKiBAbmFtZXNwYWNlIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24KICogQG1lbWJlcm9mIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudAogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgdGhlIGNoYW5nZS1tYW5hZ2VtZW50IGNvbmRpdGlvbiBzY3JlZW4uCiAqLwpJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIC8qKgogICAgICogQHByaXZhdGUKICAgICAqIEBuYW1lIEV4cHJlc3Npb25BY3Rpb25Ecm9wZG93bgogICAgICogQG1lbWJlcm9mIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24KICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtPYmplY3R9IEV2ZW50IG9iamVjdCBvZiBtb3VzZSBjbGljay4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGJlaGF2aW91cnMgb2YgdGhlIGNvbmRpdGlvbiBhY3Rpb24vZXhwcmVzc2lvbiBkcm9wZG93bnMuCiAgICAgKi8KICAgICBmdW5jdGlvbiBFeHByZXNzaW9uQWN0aW9uRHJvcGRvd24oRXZlbnQpIHsKICAgICAgICB2YXIgQXR0cklEICAgPSAkKHRoaXMpLmF0dHIoJ2lkJyk7CiAgICAgICAgdmFyIFNlY3Rpb25zID0gQXR0cklELm1hdGNoKC9eKC4qLVx3KyktKFx3KykkL2kpOwogICAgICAgIHZhciBJRCAgICAgICA9IFNlY3Rpb25zWzFdOwogICAgICAgIHZhciBEcm9wZG93biA9IFNlY3Rpb25zWzJdOwoKICAgICAgICB2YXIgVmFsaWREcm9wZG93bnMgPSBbCiAgICAgICAgICAgICdPYmplY3RJRCcsCiAgICAgICAgICAgICdTZWxlY3RvcicsCiAgICAgICAgICAgICdBdHRyaWJ1dGVJRCcsCiAgICAgICAgXTsKCiAgICAgICAgdmFyIFJlZnJlc2hEcm9wZG93bnMgPSBbCiAgICAgICAgICAgIElEICsgJy1PcGVyYXRvcklEJwogICAgICAgIF07CgogICAgICAgIHZhciBOb3RTZXJpYWxpemUsCiAgICAgICAgICAgIEZvcm1TZXJpYWxpemVkLAogICAgICAgICAgICBVUkxTdHJpbmc7CgogICAgICAgIGlmIChWYWxpZERyb3Bkb3ducy5pbmRleE9mKERyb3Bkb3duKSA9PT0gLTEpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgaWYgKERyb3Bkb3duID09PSAnT2JqZWN0SUQnKSB7CiAgICAgICAgICAgIFJlZnJlc2hEcm9wZG93bnMudW5zaGlmdChJRCArICctQXR0cmlidXRlSUQnKTsKICAgICAgICAgICAgUmVmcmVzaERyb3Bkb3ducy51bnNoaWZ0KElEICsgJy1TZWxlY3RvcicpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChEcm9wZG93biA9PT0gJ1NlbGVjdG9yJykgewogICAgICAgICAgICBSZWZyZXNoRHJvcGRvd25zLnVuc2hpZnQoSUQgKyAnLUF0dHJpYnV0ZUlEJyk7CiAgICAgICAgfQoKICAgICAgICBDb3JlLkFKQVguRm9ybVVwZGF0ZSgKICAgICAgICAgICAgJCgnI05ld0NvbmRpdGlvbicpLAogICAgICAgICAgICAnQUpBWFVwZGF0ZScsCiAgICAgICAgICAgIEF0dHJJRCwKICAgICAgICAgICAgUmVmcmVzaERyb3Bkb3ducwogICAgICAgICk7CgogICAgICAgIGlmIChEcm9wZG93biA9PT0gJ0F0dHJpYnV0ZUlEJykgewoKICAgICAgICAgICAgTm90U2VyaWFsaXplID0gQXJyYXk7CiAgICAgICAgICAgIE5vdFNlcmlhbGl6ZS5TdWJhY3Rpb24gPSAnU3ViYWN0aW9uJzsKICAgICAgICAgICAgRm9ybVNlcmlhbGl6ZWQgICAgICAgICA9IENvcmUuQUpBWC5TZXJpYWxpemVGb3JtKCQoJyNOZXdDb25kaXRpb24nKSwgTm90U2VyaWFsaXplKTsKICAgICAgICAgICAgVVJMU3RyaW5nID0gWwogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgJz8nLAogICAgICAgICAgICAgICAgRm9ybVNlcmlhbGl6ZWQsCiAgICAgICAgICAgICAgICAnU3ViYWN0aW9uPUFKQVhDb250ZW50VXBkYXRlOycsCiAgICAgICAgICAgICAgICAnVXBkYXRlRGl2TmFtZT0nICsgSUQgKyAnLScgKyBFdmVudC5kYXRhLkF0dHJpYnV0ZUlEVXBkYXRlRGl2TmFtZSArICc7JywKICAgICAgICAgICAgICAgICdFbGVtZW50Q2hhbmdlZD0nICsgSUQgKyAnLUF0dHJpYnV0ZUlEOycKICAgICAgICAgICAgXS5qb2luKCcnKTsKCiAgICAgICAgICAgIENvcmUuQUpBWC5Db250ZW50VXBkYXRlKAogICAgICAgICAgICAgICAgJCgnIycgKyBJRCArICctJyArIEV2ZW50LmRhdGEuQXR0cmlidXRlSURVcGRhdGVEaXZOYW1lKSwKICAgICAgICAgICAgICAgIFVSTFN0cmluZywKICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHt9CiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAkKHRoaXMpLnBhcmVudCgpLm5leHQoJ3RkJykuZmluZCgnc2VsZWN0JykuZm9jdXMoKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBwcml2YXRlCiAgICAgKiBAbmFtZSBTZXRTdWJtaXRBY3Rpb24KICAgICAqIEBtZW1iZXJvZiBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZGl0aW9uCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBFdmVudCBvYmplY3Qgb2YgbW91c2UgY2xpY2suCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBhY3Rpb24gb2YgdGhlIGNsaWNrZWQgYnV0dG9uIGJlZm9yZSB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNldFN1Ym1pdEFjdGlvbigpIHsKICAgICAgICB2YXIgJFRoaXMgICA9ICQodGhpcyk7CiAgICAgICAgdmFyIEFjdGlvbnMgPSB7CiAgICAgICAgICAgICdBZGRFeHByZXNzaW9uJzogJzAnLAogICAgICAgICAgICAnQWRkQWN0aW9uJyAgICA6ICcwJywKICAgICAgICAgICAgJ1NhdmUnICAgICAgICAgOiAnMCcKICAgICAgICB9OwoKICAgICAgICB2YXIgU2V0QWN0aW9uID0gJFRoaXMuYXR0cignaWQnKTsKICAgICAgICBTZXRBY3Rpb24gPSBTZXRBY3Rpb24ucmVwbGFjZSgvQnV0dG9uJC9pLCAnJyk7CiAgICAgICAgaWYgKCFBY3Rpb25zLmhhc093blByb3BlcnR5KFNldEFjdGlvbikpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgQWN0aW9uc1tTZXRBY3Rpb25dID0gJzEnOwoKICAgICAgICAkLmVhY2goQWN0aW9ucywgZnVuY3Rpb24oQWN0aW9uLCBWYWx1ZSkgewogICAgICAgICAgICAkKCdpbnB1dFtuYW1lPScgKyBBY3Rpb24gKyAnXScpLnZhbChWYWx1ZSk7CiAgICAgICAgfSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbmFtZXNwYWNlIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25kaXRpb24KICAgICAqIEBmdW5jdGlvbgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgc29tZSBiZWhhdmlvdXJzIGZvciB0aGUgYWRkIHNjcmVlbi4KICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAvLyBCaW5kIEV4cHJlc3Npb24gZHJvcGRvd25zCiAgICAgICAgJCgnc2VsZWN0W25hbWVePSJFeHByZXNzaW9uSUQtIl0nKS5vbigKICAgICAgICAgICAgJ2NoYW5nZS5Db25kaXRpb25FeHByZXNzaW9uJywKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ0F0dHJpYnV0ZUlEVXBkYXRlRGl2TmFtZSc6ICdDb21wYXJlVmFsdWUtRGl2JwogICAgICAgICAgICB9LAogICAgICAgICAgICBFeHByZXNzaW9uQWN0aW9uRHJvcGRvd24KICAgICAgICApOwoKICAgICAgICAvLyBCaW5kIEFjdGlvbiBkcm9wZG93bnMKICAgICAgICAkKCdzZWxlY3RbbmFtZV49IkFjdGlvbklELSJdJykub24oCiAgICAgICAgICAgICdjaGFuZ2UuQ29uZGl0aW9uQWN0aW9uJywKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ0F0dHJpYnV0ZUlEVXBkYXRlRGl2TmFtZSc6ICdBY3Rpb25WYWx1ZS1EaXYnCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEV4cHJlc3Npb25BY3Rpb25Ecm9wZG93bgogICAgICAgICk7CgogICAgICAgICQoJy5DYWxsRm9yQWN0aW9uJykub24oJ2NsaWNrLlN1Ym1pdEFjdGlvbicsIFNldFN1Ym1pdEFjdGlvbik7CgogICAgICAgICQoJy5EZWxldGVFeHByZXNzaW9uJykub24oJ2NsaWNrLkNvbmRpdGlvbkRlbGV0ZUV4cHJlc3Npb24nLCBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIGlmICghd2luZG93LmNvbmZpcm0oQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBleHByZXNzaW9uPycpKSkgewogICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICQoJyNEZWxldGVFeHByZXNzaW9uSUQnKS52YWwoJCh0aGlzKS5hdHRyKCdpZCcpLnJlcGxhY2UoL0RlbGV0ZUV4cHJlc3Npb25JRC0vLCAnJykpOwogICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ2Zvcm0nKS5zdWJtaXQoKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0pOwoKICAgICAgICAkKCcuRGVsZXRlQWN0aW9uJykub24oJ2NsaWNrLkNvbmRpdGlvbkRlbGV0ZUFjdGlvbicsIGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgaWYgKCF3aW5kb3cuY29uZmlybShDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFjdGlvbj8nKSkpIHsKICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkKCcjRGVsZXRlQWN0aW9uSUQnKS52YWwoJCh0aGlzKS5hdHRyKCdpZCcpLnJlcGxhY2UoL0RlbGV0ZUFjdGlvbklELS8sICcnKSk7CiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnZm9ybScpLnN1Ym1pdCgpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgICQoJy5EZWxldGVDb25kaXRpb24nKS5vbignY2xpY2suQ29uZGl0aW9uRGVsZXRlJywgZnVuY3Rpb24oKSB7CgogICAgICAgICAgICBpZiAoIXdpbmRvdy5jb25maXJtKENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29uZGl0aW9uPycpKSkgewogICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0pOwoKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKCn0oSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmRpdGlvbiB8fCB7fSkpOwo=</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.ConfirmDialog.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS9cbiI7Ci8vIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIElUU00gPSBJVFNNIHx8IHt9OwpJVFNNLkFnZW50ID0gSVRTTS5BZ2VudCB8fCB7fTsKSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50ID0gSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50IHx8IHt9OwoKCi8qKgogKiBAbmFtZXNwYWNlIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nCiAqIEBtZW1iZXJvZiBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQKICogQGF1dGhvciBPVFJTIEFHCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBjaGFuZ2UtbWFuYWdlbWVudCBhZGQvZWRpdCBzY3JlZW4uCiAqLwpJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuQ29uZmlybURpYWxvZyA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICAvKioKICAgICAqIEBuYW1lIEluaXQKICAgICAqIEBuYW1lc3BhY2UgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LkNvbmZpcm1EaWFsb2cKICAgICAqIEBmdW5jdGlvbgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgdGhlIG1lbnUgaXRlbXMgdGhhdCBzaG91bGQgc2hvdyBhIGNvbmZpcm1hdGlvbiBkaWFsb2cKICAgICAqICAgICAgaW4gWm9vbSBhbmQgV29ya09yZGVyIFpvb20uCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIElUU01TaG93Q29uZmlybURpYWxvZyA9IENvcmUuQ29uZmlnLkdldCgnSVRTTVNob3dDb25maXJtRGlhbG9nJykgfHwge307CiAgICAgICAgJC5lYWNoKElUU01TaG93Q29uZmlybURpYWxvZywgZnVuY3Rpb24oS2V5LCBEYXRhKSB7CiAgICAgICAgICAgIElUU00uQWdlbnQuQ29uZmlybURpYWxvZy5CaW5kQ29uZmlybURpYWxvZyh7CiAgICAgICAgICAgICAgICBFbGVtZW50SUQ6ICAgICAgICAgICAgICAgICAgRGF0YS5NZW51SUQsCiAgICAgICAgICAgICAgICBFbGVtZW50U2VsZWN0b3I6ICAgICAgICAgICAgRGF0YS5FbGVtZW50U2VsZWN0b3IsCiAgICAgICAgICAgICAgICBEaWFsb2dDb250ZW50UXVlcnlTdHJpbmc6ICAgRGF0YS5EaWFsb2dDb250ZW50UXVlcnlTdHJpbmcsCiAgICAgICAgICAgICAgICBDb25maXJtZWRBY3Rpb25RdWVyeVN0cmluZzogRGF0YS5Db25maXJtZWRBY3Rpb25RdWVyeVN0cmluZywKICAgICAgICAgICAgICAgIERpYWxvZ1RpdGxlOiAgICAgICAgICAgICAgICBEYXRhLkRpYWxvZ1RpdGxlLAogICAgICAgICAgICAgICAgVHJhbnNsYXRlZFRleHQ6ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBZZXM6IENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCJZZXMiKSwKICAgICAgICAgICAgICAgICAgICBObzogIENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCJObyIpLAogICAgICAgICAgICAgICAgICAgIE9rOiAgQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoIk9rIikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cgp9KElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Db25maXJtRGlhbG9nIHx8IHt9KSk7Cg==</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.History.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgSVRTTSA9IElUU00gfHwge307CklUU00uQWdlbnQgPSBJVFNNLkFnZW50IHx8IHt9OwpJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgPSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuSGlzdG9yeQogKiBAbWVtYmVyb2YgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgQ2hhbmdlSGlzdG9yeSBhbmQgV29ya09yZGVySGlzdG9yeSBzY3JlZW5zLgogKi8KSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Lkhpc3RvcnkgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbmFtZXNwYWNlIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5IaXN0b3J5CiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgdGhlIENoYW5nZUhpc3RvcnkgYW5kIFdvcmtPcmRlckhpc3Rvcnkgc2NyZWVucy4KICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgJCgnYS5MaW5rSVRTTVdvcmtPcmRlclpvb21WaWV3Jykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7CiAgICAgICAgICAgIENvcmUuVUkuUG9wdXAuRXhlY3V0ZUluUGFyZW50V2luZG93KGZ1bmN0aW9uKFdpbmRvd09iamVjdCkgewogICAgICAgICAgICAgICAgV2luZG93T2JqZWN0LkNvcmUuVUkuUG9wdXAuRmlyZVBvcHVwRXZlbnQoJ1VSTCcsIHsgVVJMOiAkKHRoYXQpLmF0dHIoJ2hyZWYnKX0pOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgQ29yZS5VSS5Qb3B1cC5DbG9zZVBvcHVwKCk7CiAgICAgICAgfSk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Lkhpc3RvcnkgfHwge30pKTsK</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.InvolvedPersons.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgSVRTTSA9IElUU00gfHwge307CklUU00uQWdlbnQgPSBJVFNNLkFnZW50IHx8IHt9OwpJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgPSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuSW52b2x2ZWRQZXJzb25zCiAqIEBtZW1iZXJvZiBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQKICogQGF1dGhvciBPVFJTIEFHCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBJbnZvbHZlZCBQZXJzb25zIG1vZHVsZS4KICovCklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5JbnZvbHZlZFBlcnNvbnMgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAcHJpdmF0ZQogICAgICogQG5hbWUgU2V0Rm9ybUFjdGlvbgogICAgICogQG5hbWVzcGFjZSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuSW52b2x2ZWRQZXJzb25zCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIGZvcm0gYWN0aW9uIHdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkLgogICAgICovCiAgICBmdW5jdGlvbiBTZXRGb3JtQWN0aW9uKCkgewogICAgICAgIHZhciAkVGhpcyA9ICQodGhpcyk7CiAgICAgICAgdmFyICRGb3JtID0gJFRoaXMuY2xvc2VzdCgnZm9ybScpOwogICAgICAgIHZhciBBY3Rpb25zID0gewogICAgICAgICAgICAnU3VibWl0JyAgICAgICAgOiAnMCcsCiAgICAgICAgICAgICdBZGRDQUJUZW1wbGF0ZSc6ICcwJywKICAgICAgICAgICAgJ05ld1RlbXBsYXRlJyAgIDogJzAnLAogICAgICAgICAgICAnQWRkQ0FCTWVtYmVyJyAgOiAnMCcKICAgICAgICB9OwoKICAgICAgICB2YXIgU2V0QWN0aW9uID0gJFRoaXMuYXR0cignaWQnKTsKICAgICAgICBTZXRBY3Rpb24gPSBTZXRBY3Rpb24ucmVwbGFjZSgvQnV0dG9uJC9pLCAnJyk7CiAgICAgICAgaWYgKFNldEFjdGlvbiAhPT0gJ1N1Ym1pdCcpIHsKICAgICAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkRpc2FibGVWYWxpZGF0aW9uKCRGb3JtKTsKICAgICAgICB9CgogICAgICAgIGlmICghQWN0aW9ucy5oYXNPd25Qcm9wZXJ0eShTZXRBY3Rpb24pKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIEFjdGlvbnNbU2V0QWN0aW9uXSA9ICcxJzsKCiAgICAgICAgJC5lYWNoKEFjdGlvbnMsIGZ1bmN0aW9uKEFjdGlvbiwgVmFsdWUpIHsKICAgICAgICAgICAgJCgnaW5wdXRbbmFtZT0nICsgQWN0aW9uICsgJ10nLCAkRm9ybSkudmFsKFZhbHVlKTsKICAgICAgICB9KTsKICAgIH0KCiAgICAvKioKICAgICAqIEBwcml2YXRlCiAgICAgKiBAbmFtZSBEZWxldGVDQUJNZW1iZXIKICAgICAqIEBuYW1lc3BhY2UgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Lkludm9sdmVkUGVyc29ucwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJucyB7ZmFsc2V9IFJldHVybnMgZmFsc2UgdG8gY2FuY2VsIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZiBhbmNob3IgZWxlbWVudHMuCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBjYWIgbWVtYmVyIHRvIGRlbGV0ZSB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZC4KICAgICAqLwogICAgZnVuY3Rpb24gRGVsZXRlQ0FCTWVtYmVyKCkgewogICAgICAgIHZhciAkVGhpcyA9ICQodGhpcyk7CiAgICAgICAgdmFyICRGb3JtID0gJFRoaXMuY2xvc2VzdCgnZm9ybScpOwoKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuRGlzYWJsZVZhbGlkYXRpb24oJEZvcm0pOwogICAgICAgICQoJ2lucHV0W25hbWU9RGVsZXRlQ0FCTWVtYmVyXScsICRGb3JtKS52YWwoJFRoaXMuYXR0cignaWQnKSk7CiAgICAgICAgJEZvcm0uc3VibWl0KCk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG5hbWVzcGFjZSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuSW52b2x2ZWRQZXJzb25zCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHNvbWUgYmVoYXZpb3VycyBmb3IgdGhlIGludm9sdmVkLXBlcnNvbnMgc2NyZWVuLgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewoKICAgICAgICAvLyBCaW5kIGVsZW1lbnRzIHdpdGggY2xhc3MgJy5DYWxsRm9yQWN0aW9uJyB0byBzZXQgdGhlIHByb3BlciBmb3JtIGFjdGlvbgogICAgICAgIC8vIGJlZm9yZSB0aGUgZm9ybSBzdWJtaXRzLgogICAgICAgICQoJy5DYWxsRm9yQWN0aW9uJykub2ZmKCdjbGljay5Gb3JtQWN0aW9uLkludm9sdmVkUGVyc29ucycpLm9uKCdjbGljay5Gb3JtQWN0aW9uLkludm9sdmVkUGVyc29ucycsIFNldEZvcm1BY3Rpb24pOwoKICAgICAgICAvLyBCaW5kIGVsZW1lbnRzIHdpdGggY2xhc3MgJy5EZWxldGVDQUJNZW1iZXInIHRvIGRlbGV0ZSB0aGUgY2FiIG1lbWJlci4KICAgICAgICAkKCcuRGVsZXRlQ0FCTWVtYmVyJykub2ZmKCdjbGljay5DQUIuSW52b2x2ZWRQZXJzb25zJykub24oJ2NsaWNrLkNBQi5JbnZvbHZlZFBlcnNvbnMnLCBEZWxldGVDQUJNZW1iZXIpOwoKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKCn0oSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Lkludm9sdmVkUGVyc29ucyB8fCB7fSkpOwo=</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.NotificationEvent.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgSVRTTSA9IElUU00gfHwge307CklUU00uQWdlbnQgPSBJVFNNLkFnZW50IHx8IHt9OwpJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgPSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuTm90aWZpY2F0aW9uRXZlbnQKICogQG1lbWJlcm9mIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudAogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgdGhlIE5vdGlmaWNhdGlvbiBFdmVudCBtb2R1bGUuCiAqLwpJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuTm90aWZpY2F0aW9uRXZlbnQgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbWVtYmVyb2YgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Lk5vdGlmaWNhdGlvbkV2ZW50CiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBQYXJhbXMgLSBJbml0aWFsaXphdGlvbiBhbmQgaW50ZXJuYXRpb25hbGl6YXRpb24gcGFyYW1ldGVycy4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemUgY29ycmVjdGx5IGFsbCBvdGhlciBmdW5jdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGxvY2FsIGxhbmd1YWdlLgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKFBhcmFtcykgewoKICAgICAgICBUYXJnZXROUy5Mb2NhbGl6YXRpb24gPSBQYXJhbXMuTG9jYWxpemF0aW9uOwoKICAgICAgICAvLyBiaW5kIGNsaWNrIGZ1bmN0aW9uIHRvIGFkZCBidXR0b24KICAgICAgICAkKCcuTGFuZ3VhZ2VBZGQnKS5vZmYoJ2NoYW5nZS5MYW5ndWFnZUFkZCcpLm9uKCdjaGFuZ2UuTGFuZ3VhZ2VBZGQnLCBmdW5jdGlvbigpewogICAgICAgICAgICBUYXJnZXROUy5BZGRMYW5ndWFnZSgkKHRoaXMpLCAkKHRoaXMpLnZhbCgpLCAkKHRoaXMpLmZpbmQoJ29wdGlvbjpzZWxlY3RlZCcpLnRleHQoKSk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gYmluZCBjbGljayBmdW5jdGlvbiB0byByZW1vdmUgYnV0dG9uCiAgICAgICAgJCgnLkxhbmd1YWdlUmVtb3ZlJykub2ZmKCdjbGljay5MYW5ndWFnZVJlbW92ZScpLm9uKCdjbGljay5MYW5ndWFnZVJlbW92ZScsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIGlmICh3aW5kb3cuY29uZmlybShUYXJnZXROUy5Mb2NhbGl6YXRpb24uRGVsZXRlTm90aWZpY2F0aW9uTGFuZ3VhZ2VNc2cpKSB7CiAgICAgICAgICAgICAgICBUYXJnZXROUy5SZW1vdmVMYW5ndWFnZSgkKHRoaXMpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CiAgICB9OwoKICAgLyoqCiAgICAgKiBAbmFtZSBBZGRMYW5ndWFnZQogICAgICogQG1lbWJlcm9mIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Ob3RpZmljYXRpb25FdmVudAogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge2pRdWVyeU9iamVjdH0gT2JqZWN0IC0gSlF1ZXJ5IG9iamVjdCB1c2VkIHRvIHJlbW92ZSB0aGUgbGFuZ3VhZ2UgYmxvY2sKICAgICAqIEBwYXJhbSB7c3RyaW5nfSBMYW5ndWFnZUlEIC0gc2hvcnQgbmFtZSBvZiB0aGUgbGFuZ3VhZ2UgbGlrZSBlc19NWC4KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBMYW5ndWFnZSAtIGZ1bGwgbmFtZSBvZiB0aGUgbGFuZ3VhZ2UgbGlrZSBTcGFuaXNoIChNZXhpY28pLgogICAgICogQHBhcmFtIHtzdHJpbmd9IFR5cGUgLSBBZ2VudCBvciBDdXN0b21lci4KICAgICAqIEByZXR1cm5zIHtCb29sfSBSZXR1cm5zIGZhbHNlIHRvIHByZXZlbnQgZXZlbnQgYnViYmxpbmcuCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBhZGQgYSBuZXcgbm90aWZpY2F0aW9uIGV2ZW50IGxhbmd1YWdlLgogICAgICovCiAgICBUYXJnZXROUy5BZGRMYW5ndWFnZSA9IGZ1bmN0aW9uKE9iamVjdCwgTGFuZ3VhZ2VJRCwgTGFuZ3VhZ2UpewoKICAgICAgICB2YXIgJENsb25lID0gJCgnLlRlbXBsYXRlJykuY2xvbmUoKSwKICAgICAgICAgICAgVHlwZTsKCiAgICAgICAgaWYgKExhbmd1YWdlID09PSAnLScpewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBpZiAoT2JqZWN0LmF0dHIoJ2lkJykgPT09ICdBZ2VudExhbmd1YWdlQWRkJykgewogICAgICAgICAgICBUeXBlID0gJ0FnZW50JzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoT2JqZWN0LmF0dHIoJ2lkJykgPT09ICdDdXN0b21lckxhbmd1YWdlQWRkJykgewogICAgICAgICAgICBUeXBlID0gJ0N1c3RvbWVyJzsKICAgICAgICB9CgogICAgICAgIC8vIHJlbW92ZSB1bm5lY2Vzc2FyeSBjbGFzc2VzCiAgICAgICAgJENsb25lLnJlbW92ZUNsYXNzKCdIaWRkZW4gVGVtcGxhdGUnKTsKCiAgICAgICAgLy8gYWRkIHRpdGxlCiAgICAgICAgJENsb25lLmZpbmQoJy5UaXRsZScpLmh0bWwoTGFuZ3VhZ2UpOwoKICAgICAgICAvLyB1cGRhdGUgcmVtb3ZlIGxpbmsKICAgICAgICAkQ2xvbmUuZmluZCgnI1RlbXBsYXRlX0xhbmd1YWdlX1JlbW92ZScpLmFkZENsYXNzKFR5cGUgKyAnTGFuZ3VhZ2VSZW1vdmUnKTsKICAgICAgICAkQ2xvbmUuZmluZCgnI1RlbXBsYXRlX0xhbmd1YWdlX1JlbW92ZScpLmF0dHIoJ25hbWUnLCBUeXBlICsgJ18nICsgTGFuZ3VhZ2VJRCArICdfTGFuZ3VhZ2VfUmVtb3ZlJyk7CiAgICAgICAgJENsb25lLmZpbmQoJyNUZW1wbGF0ZV9MYW5ndWFnZV9SZW1vdmUnKS5hdHRyKCdpZCcsIFR5cGUgKyAnXycgKyBMYW5ndWFnZUlEICsgJ19MYW5ndWFnZV9SZW1vdmUnKTsKCiAgICAgICAgLy8gc2V0IGhpZGRlbiBsYW5ndWFnZSBmaWVsZAogICAgICAgICRDbG9uZS5maW5kKCcuTGFuZ3VhZ2VJRCcpLmF0dHIoJ25hbWUnLCBUeXBlICsgJ18nICsgJ0xhbmd1YWdlSUQnKTsKICAgICAgICAkQ2xvbmUuZmluZCgnLkxhbmd1YWdlSUQnKS52YWwoTGFuZ3VhZ2VJRCk7CgogICAgICAgIC8vIHVwZGF0ZSBzdWJqZWN0IGxhYmVsCiAgICAgICAgJENsb25lLmZpbmQoJyNUZW1wbGF0ZV9MYWJlbF9TdWJqZWN0JykuYXR0cignZm9yJywgVHlwZSArICdfJyArIExhbmd1YWdlSUQgKyAnX1N1YmplY3QnKTsKICAgICAgICAkQ2xvbmUuZmluZCgnI1RlbXBsYXRlX0xhYmVsX1N1YmplY3QnKS5hdHRyKCdpZCcsIFR5cGUgKyAnXycgKyBMYW5ndWFnZUlEICsgJ19MYWJlbF9TdWJqZWN0Jyk7CgogICAgICAgIC8vIHVwZGF0ZSBzdWJqZWN0IGZpZWxkCiAgICAgICAgJENsb25lLmZpbmQoJyNUZW1wbGF0ZV9TdWJqZWN0JykuYXR0cignbmFtZScsIFR5cGUgKyAnXycgKyBMYW5ndWFnZUlEICsgJ19TdWJqZWN0Jyk7CiAgICAgICAgJENsb25lLmZpbmQoJyNUZW1wbGF0ZV9TdWJqZWN0JykuYWRkQ2xhc3MoJ1ZhbGlkYXRlX1JlcXVpcmVkJyk7CiAgICAgICAgJENsb25lLmZpbmQoJyNUZW1wbGF0ZV9TdWJqZWN0JykuYXR0cignaWQnLCBUeXBlICsgJ18nICsgTGFuZ3VhZ2VJRCArICdfU3ViamVjdCcpOwogICAgICAgICRDbG9uZS5maW5kKCcjVGVtcGxhdGVfU3ViamVjdEVycm9yJykuYXR0cignaWQnLCBUeXBlICsgJ18nICsgTGFuZ3VhZ2VJRCArICdfU3ViamVjdEVycm9yJyk7CgogICAgICAgIC8vIHVwZGF0ZSBib2R5IGxhYmVsCiAgICAgICAgJENsb25lLmZpbmQoJyNUZW1wbGF0ZV9MYWJlbF9Cb2R5JykuYXR0cignZm9yJywgVHlwZSArICdfJyArIExhbmd1YWdlSUQgKyAnX0JvZHknKTsKICAgICAgICAkQ2xvbmUuZmluZCgnI1RlbXBsYXRlX0xhYmVsX0JvZHknKS5hdHRyKCdpZCcsIFR5cGUgKyAnXycgKyBMYW5ndWFnZUlEICsgJ19MYWJlbF9Cb2R5Jyk7CgogICAgICAgIC8vIHVwZGF0ZSBib2R5IGZpZWxkCiAgICAgICAgJENsb25lLmZpbmQoJyNUZW1wbGF0ZV9Cb2R5JykuYXR0cignbmFtZScsIFR5cGUgKyAnXycgKyBMYW5ndWFnZUlEICsgJ19Cb2R5Jyk7CiAgICAgICAgJENsb25lLmZpbmQoJyNUZW1wbGF0ZV9Cb2R5JykuYWRkQ2xhc3MoJ1JpY2hUZXh0Jyk7CiAgICAgICAgJENsb25lLmZpbmQoJyNUZW1wbGF0ZV9Cb2R5JykuYWRkQ2xhc3MoJ1ZhbGlkYXRlX1JlcXVpcmVkUmljaFRleHQnKTsKICAgICAgICAkQ2xvbmUuZmluZCgnI1RlbXBsYXRlX0JvZHknKS5hdHRyKCdpZCcsIFR5cGUgKyAnXycgKyBMYW5ndWFnZUlEICsgJ19Cb2R5Jyk7CiAgICAgICAgJENsb25lLmZpbmQoJyNUZW1wbGF0ZV9Cb2R5RXJyb3InKS5hdHRyKCdpZCcsIFR5cGUgKyAnXycgKyBMYW5ndWFnZUlEICsgJ19Cb2R5RXJyb3InKTsKCiAgICAgICAgLy8gYXBwZW5kIHRvIGNvbnRhaW5lcgogICAgICAgICQoJyMnICsgVHlwZSArICdOb3RpZmljYXRpb25MYW5ndWFnZUNvbnRhaW5lcicpLmFwcGVuZCgkQ2xvbmUpOwoKICAgICAgICAvLyBpbml0aWFsaXplIHRoZSByaWNoIHRleHQgZWRpdG9yIGlmIHNldAogICAgICAgIGlmIChwYXJzZUludChDb3JlLkNvbmZpZy5HZXQoJ1JpY2hUZXh0U2V0JyksIDEwKSA9PT0gMSkgewogICAgICAgICAgICBDb3JlLlVJLlJpY2hUZXh0RWRpdG9yLkluaXRBbGxFZGl0b3JzKCk7CiAgICAgICAgfQoKICAgICAgICAvLyBiaW5kIGNsaWNrIGZ1bmN0aW9uIHRvIHJlbW92ZSBidXR0b24KICAgICAgICAkKCcuTGFuZ3VhZ2VSZW1vdmUnKS5vZmYoJ2NsaWNrLkxhbmd1YWdlUmVtb3ZlJykub24oJ2NsaWNrLkxhbmd1YWdlUmVtb3ZlJywgZnVuY3Rpb24oKXsKCiAgICAgICAgICAgIGlmICh3aW5kb3cuY29uZmlybShUYXJnZXROUy5Mb2NhbGl6YXRpb24uRGVsZXRlTm90aWZpY2F0aW9uTGFuZ3VhZ2VNc2cpKSB7CiAgICAgICAgICAgICAgICBUYXJnZXROUy5SZW1vdmVMYW5ndWFnZSgkKHRoaXMpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgIFRhcmdldE5TLkxhbmd1YWdlU2VsZWN0aW9uUmVidWlsZChUeXBlKTsKCiAgICAgICAgQ29yZS5VSS5Jbml0V2lkZ2V0QWN0aW9uVG9nZ2xlKCk7CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBSZW1vdmVMYW5ndWFnZQogICAgICogQG1lbWJlcm9mIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Ob3RpZmljYXRpb25FdmVudAogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge2pRdWVyeU9iamVjdH0gT2JqZWN0IC0gSlF1ZXJ5IG9iamVjdCB1c2VkIHRvIHJlbW92ZSB0aGUgbGFuZ3VhZ2UgYmxvY2sKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgYSBub3RpZmljYXRpb24gZXZlbnQgbGFuZ3VhZ2UuCiAgICAgKi8KICAgIFRhcmdldE5TLlJlbW92ZUxhbmd1YWdlID0gZnVuY3Rpb24gKE9iamVjdCkgewoKICAgICAgICB2YXIgVHlwZTsKCiAgICAgICAgT2JqZWN0LmNsb3Nlc3QoJy5Ob3RpZmljYXRpb25MYW5ndWFnZScpLnJlbW92ZSgpOwoKICAgICAgICBpZiAoT2JqZWN0Lmhhc0NsYXNzKCdBZ2VudExhbmd1YWdlUmVtb3ZlJykpIHsKICAgICAgICAgICAgVHlwZSA9ICdBZ2VudCc7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKE9iamVjdC5oYXNDbGFzcygnQ3VzdG9tZXJMYW5ndWFnZVJlbW92ZScpKSB7CiAgICAgICAgICAgIFR5cGUgPSAnQ3VzdG9tZXInOwogICAgICAgIH0KCiAgICAgICAgVGFyZ2V0TlMuTGFuZ3VhZ2VTZWxlY3Rpb25SZWJ1aWxkKFR5cGUpOwogICAgfTsKCiAgICAvKioKICAgICAqIEBuYW1lIExhbmd1YWdlU2VsZWN0aW9uUmVidWlsZAogICAgICogQG1lbWJlcm9mIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Ob3RpZmljYXRpb25FdmVudAogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gVHlwZSAtIEFnZW50IG9yIEN1c3RvbWVyLgogICAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybnMgdHJ1ZS4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIHJlYnVpbGRzIGxhbmd1YWdlIHNlbGVjdGlvbiwgb25seSBzaG93IGF2YWlsYWJsZSBsYW5ndWFnZXMuCiAgICAgKi8KICAgIFRhcmdldE5TLkxhbmd1YWdlU2VsZWN0aW9uUmVidWlsZCA9IGZ1bmN0aW9uIChUeXBlKSB7CgogICAgICAgIHZhciAkT3JpZ09wdGlvbnMgPSAkKCcjJyArIFR5cGUgKyAnTGFuZ3VhZ2VPcmlnIG9wdGlvbicpLmNsb25lKCk7CgogICAgICAgIC8vIFJlbW92ZSB0aGUgZXhpc3Rpbmcgb3B0aW9ucyBpbiBvcmRlciB0byByZWJ1aWxkIGl0IGZyb20gdGhlIG9yaWdpbmFsIGxpc3Qgb2Ygb3B0aW9ucy4KICAgICAgICAkKCcjJyArIFR5cGUgKyAnTGFuZ3VhZ2VBZGQgb3B0aW9uJykucmVtb3ZlKCk7CiAgICAgICAgJC5lYWNoKCRPcmlnT3B0aW9ucywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghJCgnIycgKyBUeXBlICsgJ05vdGlmaWNhdGlvbkxhbmd1YWdlQ29udGFpbmVyIGxhYmVsIycgKyBUeXBlICsgJ18nICsgJCh0aGlzKS52YWwoKSArICdfTGFiZWxfU3ViamVjdCcpLmxlbmd0aCkgewogICAgICAgICAgICAgICAgJCgnIycgKyBUeXBlICsgJ0xhbmd1YWdlQWRkJykuYXBwZW5kKCQodGhpcykpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgICQoJyMnICsgVHlwZSArICdMYW5ndWFnZUFkZCcpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJyk7CgogICAgICAgIHJldHVybiB0cnVlOwogICAgfTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Lk5vdGlmaWNhdGlvbkV2ZW50IHx8IHt9KSk7Cg==</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.Overview.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS9cbiI7Ci8vIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIElUU00gPSBJVFNNIHx8IHt9OwpJVFNNLkFnZW50ID0gSVRTTS5BZ2VudCB8fCB7fTsKSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50ID0gSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50IHx8IHt9OwoKCi8qKgogKiBAbmFtZXNwYWNlIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5PdmVydmlldwogKiBAbWVtYmVyb2YgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgY29uZmlnIGl0ZW0gb3ZlcnZpZXcgbmF2YmFyLgogKi8KSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Lk92ZXJ2aWV3ID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG5hbWVzcGFjZSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuT3ZlcnZpZXcKICAgICAqIEBmdW5jdGlvbgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgc29tZSBiZWhhdmlvdXJzIGZvciB0aGUgc2VyY2ggYW5kIG92ZXJ2aWV3IHNjcmVlbnMuCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIElUU01DaGFuZ2VNZ210Q2hhbmdlU2VhcmNoID0gQ29yZS5Db25maWcuR2V0KCdJVFNNQ2hhbmdlTWdtdENoYW5nZVNlYXJjaCcpOwoKICAgICAgICAvLyBCaW5kIGJ1dHRvbiB0byBvcGVuIHRoZSBjb250ZXh0IHNldHRpbmdzIGRpYWxvZy4KICAgICAgICAkKCcjU2hvd0NvbnRleHRTZXR0aW5nc0RpYWxvZycpLm9uKCdjbGljay5Db250ZXh0U2V0dGluZ3MnLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICAgICAgQ29yZS5VSS5EaWFsb2cuU2hvd0NvbnRlbnREaWFsb2coJCgnI0NvbnRleHRTZXR0aW5nc0RpYWxvZ0NvbnRhaW5lcicpLCBDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgiU2V0dGluZ3MiKSwgJzIwJScsICdDZW50ZXInLCB0cnVlLAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWw6IENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCJTdWJtaXQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgVHlwZTogJ1N1Ym1pdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzOiAnUHJpbWFyeScKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIEV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIEV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgIC8vIE9uIHJvdyBjbGljayBnbyB0aGUgY2hhbmdlIHpvb20uCiAgICAgICAgJCgnLk1hc3RlckFjdGlvbicpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChFdmVudCkgewogICAgICAgICAgICB2YXIgJE1hc3RlckFjdGlvbkxpbmsgPSAkKHRoaXMpLmZpbmQoJy5NYXN0ZXJBY3Rpb25MaW5rJyk7CiAgICAgICAgICAgIC8vIG9ubHkgYWN0IGlmIHRoZSBsaW5rIHdhcyBub3QgY2xpY2tlZCBkaXJlY3RseQogICAgICAgICAgICBpZiAoRXZlbnQudGFyZ2V0ICE9PSAkTWFzdGVyQWN0aW9uTGluay5nZXQoMCkpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICRNYXN0ZXJBY3Rpb25MaW5rLmF0dHIoJ2hyZWYnKTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvLyBJbiBzZWFyY2ggcmVzdWx0cyBiaW5kIHRoZSBidXR0b24gJ0NoYW5nZSBzZWFyY2ggb3B0aW9ucycgdG8gb3BlbiB0aGUgc2VhcmNoIGRpYWxvZy4KICAgICAgICBpZiAoSVRTTUNoYW5nZU1nbXRDaGFuZ2VTZWFyY2gpIHsKICAgICAgICAgICAgJCgnI0NoYW5nZVNlYXJjaCcpLm9uKCdjbGljay5DaGFuZ2VTZWFyY2gnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuU2VhcmNoLk9wZW5TZWFyY2hEaWFsb2coCiAgICAgICAgICAgICAgICAgICAgJ0FnZW50SVRTTUNoYW5nZVNlYXJjaCcsCiAgICAgICAgICAgICAgICAgICAgQ29yZS5BcHAuRXNjYXBlU2VsZWN0b3IoSVRTTUNoYW5nZU1nbXRDaGFuZ2VTZWFyY2guUHJvZmlsZSkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKCn0oSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Lk92ZXJ2aWV3IHx8IHt9KSk7Cg==</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.Search.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgSVRTTSA9IElUU00gfHwge307CklUU00uQWdlbnQgPSBJVFNNLkFnZW50IHx8IHt9OwpJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgPSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuU2VhcmNoCiAqIEBtZW1iZXJvZiBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQKICogQGF1dGhvciBPVFJTIEFHCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBDaGFuZ2VNYW5hZ2VtZW50IHNlYXJjaC4KICovCklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5TZWFyY2ggPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBBZGRpdGlvbmFsQXR0cmlidXRlU2VsZWN0aW9uUmVidWlsZAogICAgICogQG5hbWVzcGFjZSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuU2VhcmNoCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEByZXR1cm5zIHtCb29sZWFufSBSZXR1cm5zIHRydWUuCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiByZWJ1aWxkcyB0aGUgc2VsZWN0aW9uIGRyb3Bkb3duIGFmdGVyIGNob29zaW5nIG9yIGRlbGV0aW5nIGFuIGFkZGl0aW9uYWwgc2VsZWN0aW9uLgogICAgICovCiAgICBUYXJnZXROUy5BZGRpdGlvbmFsQXR0cmlidXRlU2VsZWN0aW9uUmVidWlsZCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgLy8gZ2V0IG9yaWdpbmFsIHNlbGVjdGlvbiB3aXRoIGFsbCBwb3NzaWJsZSBmaWVsZHMgYW5kIGNsb25lIGl0CiAgICAgICAgdmFyICRBdHRyaWJ1dGVDbG9uZSA9ICQoJyNBdHRyaWJ1dGVPcmlnIG9wdGlvbicpLmNsb25lKCksCiAgICAgICAgICAgICRBdHRyaWJ1dGVTZWxlY3Rpb24gPSAkKCcjQXR0cmlidXRlJykuZW1wdHkoKSwKICAgICAgICAgICAgVmFsdWU7CgogICAgICAgIC8vIHN0cmlwIGFsbCBhbHJlYWR5IHVzZWQgYXR0cmlidXRlcwogICAgICAgICRBdHRyaWJ1dGVDbG9uZS5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgVmFsdWUgPSBDb3JlLkFwcC5Fc2NhcGVTZWxlY3RvcigkKHRoaXMpLmF0dHIoJ3ZhbHVlJykpOwogICAgICAgICAgICBpZiAoISQoJyNTZWFyY2hJbnNlcnQgbGFiZWwjTGFiZWwnICsgVmFsdWUpLmxlbmd0aCkgewogICAgICAgICAgICAgICAgJEF0dHJpYnV0ZVNlbGVjdGlvbi5hcHBlbmQoJCh0aGlzKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgJEF0dHJpYnV0ZVNlbGVjdGlvbi50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpOwoKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBTZWFyY2hBdHRyaWJ1dGVBZGQKICAgICAqIEBuYW1lc3BhY2UgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LlNlYXJjaAogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gQXR0cmlidXRlIHRvIGFkZC4KICAgICAqIEByZXR1cm5zIHtCb29sfSByZXR1cm5zIEZhbHNlIHRvIGNhbmNlbCBkZWZhdWx0IGxpbmsgYmVoYXZpb3VyCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBhZGRzIG9uZSBhdHRyaWJ1dGVzIGZvciB0aGUgc2VhcmNoLgogICAgICovCiAgICBUYXJnZXROUy5TZWFyY2hBdHRyaWJ1dGVBZGQgPSBmdW5jdGlvbiAoQXR0cmlidXRlKSB7CiAgICAgICAgdmFyICRMYWJlbCA9ICQoJyNTZWFyY2hBdHRyaWJ1dGVzSGlkZGVuIGxhYmVsI0xhYmVsJyArIEF0dHJpYnV0ZSk7CgogICAgICAgIGlmICgkTGFiZWwubGVuZ3RoKSB7CiAgICAgICAgICAgICRMYWJlbC5wcmV2KCkuY2xvbmUoKS5hcHBlbmRUbygnI1NlYXJjaEluc2VydCcpOwogICAgICAgICAgICAkTGFiZWwuY2xvbmUoKS5hcHBlbmRUbygnI1NlYXJjaEluc2VydCcpOwogICAgICAgICAgICAkTGFiZWwubmV4dCgpLmNsb25lKCkuYXBwZW5kVG8oJyNTZWFyY2hJbnNlcnQnKQoKICAgICAgICAgICAgICAgIC8vIGJpbmQgY2xpY2sgZnVuY3Rpb24gdG8gcmVtb3ZlIGJ1dHRvbiBub3cKICAgICAgICAgICAgICAgIC5maW5kKCcuUmVtb3ZlQnV0dG9uJykub2ZmKCdjbGljay5SZW1vdmVTZWFyY2hBdHRyaWJ1dGUnKS5vbignY2xpY2suUmVtb3ZlU2VhcmNoQXR0cmlidXRlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIHZhciAkRWxlbWVudCA9ICQodGhpcykucGFyZW50KCk7CiAgICAgICAgICAgICAgICAgICAgVGFyZ2V0TlMuU2VhcmNoQXR0cmlidXRlUmVtb3ZlKCRFbGVtZW50KTsKCiAgICAgICAgICAgICAgICAgICAgLy8gcmVidWlsZCBzZWxlY3Rpb24KICAgICAgICAgICAgICAgICAgICBUYXJnZXROUy5BZGRpdGlvbmFsQXR0cmlidXRlU2VsZWN0aW9uUmVidWlsZCgpOwoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIC8vIHNldCBhdXRvY29tcGxlIHRvIGN1c3RvbWVyIHR5cGUgZmllbGRzCiAgICAgICAgICAgICQoJyNTZWFyY2hJbnNlcnQnKS5maW5kKCcuSVRTTUN1c3RvbWVyU2VhcmNoJykuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgdmFyIElucHV0SUQgPSAkKHRoaXMpLmF0dHIoJ25hbWUnKSArICdDdXN0b21lckF1dG9jb21wbGV0ZSc7CiAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdJVFNNQ3VzdG9tZXJTZWFyY2gnKTsKICAgICAgICAgICAgICAgICQodGhpcykuYXR0cignaWQnLCBJbnB1dElEKTsKICAgICAgICAgICAgICAgICQodGhpcykucHJldigpLmF0dHIoJ2lkJywgSW5wdXRJRCArICdTZWxlY3RlZCcpOwogICAgICAgICAgICAgICAgSVRTTS5BZ2VudC5DdXN0b21lclNlYXJjaC5Jbml0KCQoJyMnICsgQ29yZS5BcHAuRXNjYXBlU2VsZWN0b3IoSW5wdXRJRCkpKTsKCiAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IGRpYWxvZyBjbG9zdXJlIHdoZW4gc2VsZWN0IGEgY3VzdG9tZXIgZnJvbSB0aGUgbGlzdAogICAgICAgICAgICAgICAgJCgndWwudWktYXV0b2NvbXBsZXRlJykub2ZmKCdjbGljay5JVFNNQ3VzdG9tZXJTZWFyY2gnKS5vbignY2xpY2suSVRTTUN1c3RvbWVyU2VhcmNoJywgZnVuY3Rpb24oRXZlbnQpewogICAgICAgICAgICAgICAgICAgIEV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIC8vIHNldCBhdXRvY29tcGxlIHRvIHVzZXIgdHlwZSBmaWVsZHMKICAgICAgICAgICAgJCgnI1NlYXJjaEluc2VydCcpLmZpbmQoJy5JVFNNVXNlclNlYXJjaCcpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgIHZhciBJbnB1dElEID0gJCh0aGlzKS5hdHRyKCduYW1lJykgKyAnVXNlckF1dG9jb21wbGV0ZSc7CiAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdJVFNNVXNlclNlYXJjaCcpOwogICAgICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdpZCcsIElucHV0SUQpOwogICAgICAgICAgICAgICAgJCh0aGlzKS5wcmV2KCkuYXR0cignaWQnLCBJbnB1dElEICsgJ1NlbGVjdGVkJyk7CiAgICAgICAgICAgICAgICBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuVXNlclNlYXJjaC5Jbml0KCQoJyMnICsgQ29yZS5BcHAuRXNjYXBlU2VsZWN0b3IoSW5wdXRJRCkpKTsKCiAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IGRpYWxvZyBjbG9zdXJlIHdoZW4gc2VsZWN0IGEgY3VzdG9tZXIgZnJvbSB0aGUgbGlzdAogICAgICAgICAgICAgICAgJCgndWwudWktYXV0b2NvbXBsZXRlJykub2ZmKCdjbGljay5JVFNNVXNlclNlYXJjaCcpLm9uKCdjbGljay5JVFNNVXNlclNlYXJjaCcsIGZ1bmN0aW9uKEV2ZW50KXsKICAgICAgICAgICAgICAgICAgICBFdmVudC5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBNb2Rlcm5pemUgZmllbGRzCiAgICAgICAgICAgIENvcmUuVUkuSW5wdXRGaWVsZHMuQWN0aXZhdGUoJCgnI1NlYXJjaEluc2VydCcpKTsKCiAgICAgICAgICAgIC8vIFJlZ2lzdGVyIGV2ZW50IGZvciB0cmVlIHNlbGVjdGlvbiBkaWFsb2cKICAgICAgICAgICAgQ29yZS5VSS5UcmVlU2VsZWN0aW9uLkluaXRUcmVlU2VsZWN0aW9uKCk7CgogICAgICAgICAgICAvLyBJbml0aWFsbHkgZGlzcGxheSBkeW5hbWljIGZpZWxkcyB3aXRoIFRyZWVNb2RlID0gMSBjb3JyZWN0bHkKICAgICAgICAgICAgQ29yZS5VSS5UcmVlU2VsZWN0aW9uLkluaXREeW5hbWljRmllbGRUcmVlVmlld1Jlc3RvcmUoKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBTZWFyY2hBdHRyaWJ1dGVSZW1vdmUKICAgICAqIEBuYW1lc3BhY2UgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LlNlYXJjaAogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge2pRdWVyeU9iamVjdH0gJEVsZW1lbnQgVGhlIGpRdWVyeSBvYmplY3Qgb2YgdGhlIGZvcm0gIG9yIGFueSBlbGVtZW50CiAgICAgKiAgICAgIHdpdGhpbiB0aGlzIGZvcm0gY2hlY2suCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiByZW1vdmUgYXR0cmlidXRlcyBmcm9tIGFuIGVsZW1lbnQuCiAgICAgKi8KICAgIFRhcmdldE5TLlNlYXJjaEF0dHJpYnV0ZVJlbW92ZSA9IGZ1bmN0aW9uICgkRWxlbWVudCkgewogICAgICAgICRFbGVtZW50LnByZXYoKS5wcmV2KCkucmVtb3ZlKCk7CiAgICAgICAgJEVsZW1lbnQucHJldigpLnJlbW92ZSgpOwogICAgICAgICRFbGVtZW50LnJlbW92ZSgpOwogICAgfTsKCiAgICAvKioKICAgICAqIEBwcml2YXRlCiAgICAgKiBAbmFtZSBTZWFyY2hQcm9maWxlRGVsZXRlCiAgICAgKiBAbmFtZXNwYWNlIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5TZWFyY2gKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtTdHJpbmd9IFByb2ZpbGUgVGhlIHByb2ZpbGUgbmFtZSB0aGF0IHdpbGwgYmUgZGVsZXRlLgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIERlbGV0ZSBhIHByb2ZpbGUgdmlhIGFuIGFqYXggcmVxdWVzdC4KICAgICAqLwogICAgZnVuY3Rpb24gU2VhcmNoUHJvZmlsZURlbGV0ZShQcm9maWxlKSB7CiAgICAgICAgdmFyIERhdGEgPSB7CiAgICAgICAgICAgIEFjdGlvbjogJ0FnZW50SVRTTUNoYW5nZVNlYXJjaCcsCiAgICAgICAgICAgIFN1YmFjdGlvbjogJ0FKQVhQcm9maWxlRGVsZXRlJywKICAgICAgICAgICAgUHJvZmlsZTogUHJvZmlsZQogICAgICAgIH07CiAgICAgICAgQ29yZS5BSkFYLkZ1bmN0aW9uQ2FsbCgKICAgICAgICAgICAgQ29yZS5Db25maWcuR2V0KCdDR0lIYW5kbGUnKSwKICAgICAgICAgICAgRGF0YSwKICAgICAgICAgICAgZnVuY3Rpb24gKCkge30KICAgICAgICApOwogICAgfQoKICAgIC8qKgogICAgICogQHByaXZhdGUKICAgICAqIEBuYW1lIENoZWNrRm9yU2VhcmNoZWRWYWx1ZXMKICAgICAqIEBuYW1lc3BhY2UgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LlNlYXJjaAogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJucyB7SW50fSAwIGlmIG5vIHZhbHVlcyB3ZXJlIGZvdW5kLCAxIGlmIHZhbHVlcyB3aGVyZSB0aGVyZQogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIENoZWNrcyBpZiBhbnkgdmFsdWVzIHdlcmUgZW50ZXJlZCBpbiB0aGUgc2VhcmNoLgogICAgICogICAgICBJZiBub3RoaW5nIGF0IGFsbCBleGlzdHMsIGl0IGFsZXJ0cyB3aXRoIHRyYW5zbGF0ZWQ6CiAgICAgKiAgICAgICJQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lIHNlYXJjaCB2YWx1ZSBvciAqIHRvIGZpbmQgYW55dGhpbmciCiAgICAgKi8KICAgIGZ1bmN0aW9uIENoZWNrRm9yU2VhcmNoZWRWYWx1ZXMoKSB7CiAgICAgICAgLy8gbG9vcCB0aHJvdWdoIHRoZSBTZWFyY2hGb3JtIGxhYmVscwogICAgICAgIHZhciBTZWFyY2hWYWx1ZUZsYWcgPSBmYWxzZTsKICAgICAgICAkKCcjU2VhcmNoRm9ybSBsYWJlbCcpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgRWxlbWVudE5hbWUsCiAgICAgICAgICAgICAgICAkRWxlbWVudDsKCiAgICAgICAgICAgIC8vIHRob3NlIHdpdGggSUQncyBhcmUgdXNlZCBmb3Igc2VhcmNoaW5nCiAgICAgICAgICAgIGlmICgkKHRoaXMpLmF0dHIoJ2lkJykpIHsKICAgICAgICAgICAgICAgICAgICAvLyBzdWJzdHJpbmcgIkxhYmVsIiAoZS5nLiBmaXJzdCBmaXZlIGNoYXJhY3RlcnMgKSBmcm9tIHRoZQogICAgICAgICAgICAgICAgICAgIC8vIGxhYmVsIGlkLCB1c2UgdGhlIHJlbWFpbmluZyBuYW1lIGFzIG5hbWUgc3RyaW5nIGZvciBhY2Nlc3NpbmcKICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZm9ybSBpbnB1dCdzIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgRWxlbWVudE5hbWUgPSAkKHRoaXMpLmF0dHIoJ2lkJykuc3Vic3RyaW5nKDUpOwogICAgICAgICAgICAgICAgICAgICRFbGVtZW50ID0gJCgnI1NlYXJjaEZvcm0gaW5wdXRbbmFtZT0nICsgRWxlbWVudE5hbWUgKyAnXScpOwogICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gaW5wdXQgZWxlbWVudCB3aXRoIHRoZSBzZWxlY3RlZCBuYW1lCiAgICAgICAgICAgICAgICAgICAgLy8gZmluZCB0aGUgbmV4dCAic2VsZWN0IiBlbGVtZW50IGFuZCB1c2UgdGhhdCBvbmUgZm9yIGNoZWNraW5nCiAgICAgICAgICAgICAgICAgICAgaWYgKCEkRWxlbWVudC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEVsZW1lbnQgPSAkKHRoaXMpLm5leHQoKS5maW5kKCdzZWxlY3QnKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKCRFbGVtZW50Lmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJEVsZW1lbnQudmFsKCkgJiYgJEVsZW1lbnQudmFsKCkgIT09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2hWYWx1ZUZsYWcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgaWYgKCFTZWFyY2hWYWx1ZUZsYWcpIHsKICAgICAgICAgICBhbGVydChDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnUGxlYXNlIGVudGVyIGF0IGxlYXN0IG9uZSBzZWFyY2ggdmFsdWUgb3IgKiB0byBmaW5kIGFueXRoaW5nLicpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIFNlYXJjaFZhbHVlRmxhZzsKICAgIH0KCiAgICAvKioKICAgICAqIEBwcml2YXRlCiAgICAgKiBAbmFtZSBTaG93V2FpdGluZ0RpYWxvZwogICAgICogQG5hbWVzcGFjZSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuU2VhcmNoCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBTaG93cyB3YWl0aW5nIGRpYWxvZyB1bnRpbCBzZWFyY2ggc2NyZWVuIGlzIHJlYWR5LgogICAgICovCiAgICBmdW5jdGlvbiBTaG93V2FpdGluZ0RpYWxvZygpIHsKICAgICAgICB2YXIgQ29udGVudCA9IENvcmUuVGVtcGxhdGUuUmVuZGVyKAogICAgICAgICAgICAnQWdlbnQvSVRTTUNvcmUvTG9hZGluZ0RpYWxvZycsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNwYW5UaXRsZTogQ29yZS5Db25maWcuR2V0KCdMb2FkaW5nTXNnJykKICAgICAgICAgICAgfQogICAgICAgICk7CgogICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKAogICAgICAgICAgICBDb250ZW50LAogICAgICAgICAgICBDb3JlLkNvbmZpZy5HZXQoJ0xvYWRpbmdNc2cnKSwKICAgICAgICAgICAgJzEwcHgnLAogICAgICAgICAgICAnQ2VudGVyJywKICAgICAgICAgICAgdHJ1ZQogICAgICAgICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAbmFtZSBPcGVuU2VhcmNoRGlhbG9nCiAgICAgKiBAbmFtZXNwYWNlIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5TZWFyY2gKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtTdHJpbmd9IEFjdGlvbiB3aGljaCBpcyB1c2VkIGluIGZyYW1ld29yayByaWdodCBub3cuCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gUHJvZmlsZSBuYW1lLgogICAgICogQHBhcmFtIHtTdHJpbmd9IEVtcHR5U2VhcmNoIGVtcHR5IHNlYXJjaC4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIG9wZW4gdGhlIHNlYXJjaCBkaWFsb2cgYWZ0ZXIgY2xpY2tpbmcgb24gInNlYXJjaCIgYnV0dG9uIGluIG5hdiBiYXIuCiAgICAgKi8KICAgIFRhcmdldE5TLk9wZW5TZWFyY2hEaWFsb2cgPSBmdW5jdGlvbiAoQWN0aW9uLCBQcm9maWxlLCBFbXB0eVNlYXJjaCkgewoKICAgICAgICB2YXIgUmVmZXJyZXIgPSBDb3JlLkNvbmZpZy5HZXQoJ0FjdGlvbicpLAogICAgICAgICAgICBEYXRhOwoKICAgICAgICBpZiAoIUFjdGlvbikgewogICAgICAgICAgICBBY3Rpb24gPSAnQWdlbnRTZWFyY2gnOwogICAgICAgIH0KCiAgICAgICAgRGF0YSA9IHsKICAgICAgICAgICAgQWN0aW9uOiBBY3Rpb24sCiAgICAgICAgICAgIFJlZmVycmVyOiBSZWZlcnJlciwKICAgICAgICAgICAgUHJvZmlsZTogUHJvZmlsZSwKICAgICAgICAgICAgRW1wdHlTZWFyY2g6IEVtcHR5U2VhcmNoLAogICAgICAgICAgICBTdWJhY3Rpb246ICdBSkFYJwogICAgICAgIH07CgogICAgICAgIFNob3dXYWl0aW5nRGlhbG9nKCk7CgogICAgICAgIENvcmUuQUpBWC5GdW5jdGlvbkNhbGwoCiAgICAgICAgICAgIENvcmUuQ29uZmlnLkdldCgnQ0dJSGFuZGxlJyksCiAgICAgICAgICAgIERhdGEsCiAgICAgICAgICAgIGZ1bmN0aW9uIChIVE1MKSB7CiAgICAgICAgICAgICAgICB2YXIgQXR0cmlidXRlczsKCiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgd2FpdGluZyBkaWFsb2cgd2FzIGNhbmNlbGxlZCwgZG8gbm90IHNob3cgdGhlIHNlYXJjaAogICAgICAgICAgICAgICAgLy8gIGRpYWxvZyBhcyB3ZWxsCiAgICAgICAgICAgICAgICBpZiAoISQoJy5EaWFsb2c6dmlzaWJsZScpLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBDb3JlLlVJLkRpYWxvZy5TaG93Q29udGVudERpYWxvZyhIVE1MLCBDb3JlLkNvbmZpZy5HZXQoJ1NlYXJjaE1zZycpLCAnMTBweCcsICdDZW50ZXInLCB0cnVlLCB1bmRlZmluZWQsIHRydWUpOwoKICAgICAgICAgICAgICAgIC8vIGFkZCB0aGUgc2VhcmNoIGF0dHJpYnV0ZSBmaWVsZHMKICAgICAgICAgICAgICAgIEF0dHJpYnV0ZXMgPSBDb3JlLkNvbmZpZy5HZXQoJ0lUU01DaGFuZ2VNYW5hZ2VtZW50U2VhcmNoLkF0dHJpYnV0ZScpIHx8IHt9OwogICAgICAgICAgICAgICAgJC5lYWNoKEF0dHJpYnV0ZXMsIGZ1bmN0aW9uKEF0dHJpYnV0ZSkgewogICAgICAgICAgICAgICAgICAgIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5TZWFyY2guU2VhcmNoQXR0cmlidXRlQWRkKENvcmUuQXBwLkVzY2FwZVNlbGVjdG9yKEF0dHJpYnV0ZSkpOwogICAgICAgICAgICAgICAgICAgIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5TZWFyY2guQWRkaXRpb25hbEF0dHJpYnV0ZVNlbGVjdGlvblJlYnVpbGQoKTsKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIC8vIGhpZGUgYWRkIHRlbXBsYXRlIGJsb2NrCiAgICAgICAgICAgICAgICAkKCcjU2VhcmNoUHJvZmlsZUFkZEJsb2NrJykuaGlkZSgpOwoKICAgICAgICAgICAgICAgIC8vIGhpZGUgc2F2ZSBjaGFuZ2VzIGluIHRlbXBsYXRlIGJsb2NrCiAgICAgICAgICAgICAgICAkKCcjU2F2ZVByb2ZpbGUnKS5wYXJlbnQoKS5oaWRlKCkucHJldigpLmhpZGUoKS5wcmV2KCkuaGlkZSgpOwoKICAgICAgICAgICAgICAgIC8vIHNlYXJjaCBwcm9maWxlIGlzIHNlbGVjdGVkCiAgICAgICAgICAgICAgICBpZiAoJCgnI1NlYXJjaFByb2ZpbGUnKS52YWwoKSAmJiAkKCcjU2VhcmNoUHJvZmlsZScpLnZhbCgpICE9PSAnbGFzdC1zZWFyY2gnKSB7CgogICAgICAgICAgICAgICAgICAgIC8vIHNob3cgZGVsZXRlIGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICQoJyNTZWFyY2hQcm9maWxlRGVsZXRlJykuc2hvdygpOwoKICAgICAgICAgICAgICAgICAgICAvLyBzaG93IHByb2ZpbGUgbGluawogICAgICAgICAgICAgICAgICAgICQoJyNTZWFyY2hQcm9maWxlQXNMaW5rJykuc2hvdygpOwoKICAgICAgICAgICAgICAgICAgICAvLyBzaG93IHNhdmUgY2hhbmdlcyBpbiB0ZW1wbGF0ZSBibG9jawogICAgICAgICAgICAgICAgICAgICQoJyNTYXZlUHJvZmlsZScpLnBhcmVudCgpLnNob3coKS5wcmV2KCkuc2hvdygpLnByZXYoKS5zaG93KCk7CgogICAgICAgICAgICAgICAgICAgIC8vIHNldCBTYXZlUHJvZmlsZSB0byAwCiAgICAgICAgICAgICAgICAgICAgJCgnI1NhdmVQcm9maWxlJykucHJvcCgnY2hlY2tlZCcsIGZhbHNlKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBDb3JlLlVJLklucHV0RmllbGRzLkFjdGl2YXRlKCQoJy5EaWFsb2c6dmlzaWJsZScpKTsKCiAgICAgICAgICAgICAgICAvLyByZWdpc3RlciBhZGQgb2YgYXR0cmlidXRlCiAgICAgICAgICAgICAgICAkKCcjQXR0cmlidXRlJykub24oJ2NoYW5nZScsIGZ1bmN0aW9uICgpIHsKCiAgICAgICAgICAgICAgICAgICAgdmFyIEF0dHJpYnV0ZSA9ICQoJyNBdHRyaWJ1dGUnKS52YWwoKTsKICAgICAgICAgICAgICAgICAgICBUYXJnZXROUy5TZWFyY2hBdHRyaWJ1dGVBZGQoQXR0cmlidXRlKTsKICAgICAgICAgICAgICAgICAgICBUYXJnZXROUy5BZGRpdGlvbmFsQXR0cmlidXRlU2VsZWN0aW9uUmVidWlsZCgpOwoKICAgICAgICAgICAgICAgICAgICAvLyBSZWdpc3RlciBldmVudCBmb3IgdHJlZSBzZWxlY3Rpb24gZGlhbG9nCiAgICAgICAgICAgICAgICAgICAgJCgnLlNob3dUcmVlU2VsZWN0aW9uJykub2ZmKCdjbGljay5UcmVlU2VsZWN0aW9uJykub24oJ2NsaWNrLlRyZWVTZWxlY3Rpb24nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIENvcmUuVUkuVHJlZVNlbGVjdGlvbi5TaG93VHJlZVNlbGVjdGlvbigkKHRoaXMpKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvLyByZWdpc3RlciByZXR1cm4ga2V5CiAgICAgICAgICAgICAgICAkKCcjU2VhcmNoRm9ybScpLm9mZigna2V5cHJlc3MuRmlsdGVySW5wdXQnKS5vbigna2V5cHJlc3MuRmlsdGVySW5wdXQnLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoKEV2ZW50LmNoYXJDb2RlIHx8IEV2ZW50LmtleUNvZGUpID09PSAxMykgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIUNoZWNrRm9yU2VhcmNoZWRWYWx1ZXMoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI1NlYXJjaEZvcm1TdWJtaXQnKS50cmlnZ2VyKCdjbGljaycpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvLyByZWdpc3RlciBzdWJtaXQKICAgICAgICAgICAgICAgICQoJyNTZWFyY2hGb3JtU3VibWl0Jykub2ZmKCdjbGljay5Eb1NlYXJjaCcpLm9uKCdjbGljay5Eb1NlYXJjaCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgU2hvd25BdHRyaWJ1dGVzID0gJyc7CgogICAgICAgICAgICAgICAgICAgIC8vIHJlbWVtYmVyIHNob3duIGF0dHJpYnV0ZXMKICAgICAgICAgICAgICAgICAgICAkKCcjU2VhcmNoSW5zZXJ0IGxhYmVsJykuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmF0dHIoJ2lkJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNob3duQXR0cmlidXRlcyA9IFNob3duQXR0cmlidXRlcyArICc7JyArICQodGhpcykuYXR0cignaWQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICQoJyNTZWFyY2hGb3JtICNTaG93bkF0dHJpYnV0ZXMnKS52YWwoU2hvd25BdHRyaWJ1dGVzKTsKCiAgICAgICAgICAgICAgICAgICAgLy8gTm9ybWFsIHJlc3VsdHMgbW9kZSB3aWxsIHJldHVybiBIVE1MIGluIHRoZSBzYW1lIHdpbmRvdwogICAgICAgICAgICAgICAgICAgIGlmICgkKCcjU2VhcmNoRm9ybSAjUmVzdWx0Rm9ybScpLnZhbCgpID09PSAnTm9ybWFsJykgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIUNoZWNrRm9yU2VhcmNoZWRWYWx1ZXMoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjU2VhcmNoRm9ybScpLnN1Ym1pdCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICBTaG93V2FpdGluZ0RpYWxvZygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyBQcmludCBhbmQgQ1NWIHNob3VsZCBvcGVuIGluIGEgbmV3IHdpbmRvdywgbm8gd2FpdGluZyBkaWFsb2cKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI1NlYXJjaEZvcm0nKS5hdHRyKCd0YXJnZXQnLCAnU2VhcmNoUmVzdWx0UGFnZScpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIUNoZWNrRm9yU2VhcmNoZWRWYWx1ZXMoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjU2VhcmNoRm9ybScpLnN1Ym1pdCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjU2VhcmNoRm9ybScpLmF0dHIoJ3RhcmdldCcsICcnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvLyBsb2FkIHByb2ZpbGUKICAgICAgICAgICAgICAgICQoJyNTZWFyY2hQcm9maWxlJykub2ZmKCdjaGFuZ2UuTG9hZFByb2ZpbGUnKS5vbignY2hhbmdlLkxvYWRQcm9maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIHZhciBQcm9maWxlID0gJCgnI1NlYXJjaFByb2ZpbGUnKS52YWwoKSwKICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlTZWFyY2ggPSAkKCcjRW1wdHlTZWFyY2gnKS52YWwoKSwKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0gJCgnI1NlYXJjaEFjdGlvbicpLnZhbCgpOwoKICAgICAgICAgICAgICAgICAgICBUYXJnZXROUy5PcGVuU2VhcmNoRGlhbG9nKEFjdGlvbiwgUHJvZmlsZSwgRW1wdHlTZWFyY2gpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIC8vIHNob3cgYWRkIHByb2ZpbGUgYmxvY2sgb3Igbm90CiAgICAgICAgICAgICAgICAkKCcjU2VhcmNoUHJvZmlsZU5ldycpLm9mZignY2xpY2suUHJvZmlsZScpLm9uKCdjbGljay5Qcm9maWxlJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgJCgnI1NlYXJjaFByb2ZpbGVBZGRCbG9jaycpLnRvZ2dsZSgpOwogICAgICAgICAgICAgICAgICAgICQoJyNTZWFyY2hQcm9maWxlQWRkTmFtZScpLmZvY3VzKCk7CiAgICAgICAgICAgICAgICAgICAgRXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvLyBhZGQgbmV3IHByb2ZpbGUKICAgICAgICAgICAgICAgICQoJyNTZWFyY2hQcm9maWxlQWRkQWN0aW9uJykub2ZmKCdjbGljay5BZGRQcm9maWxlJykub24oJ2NsaWNrLkFkZFByb2ZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIE5hbWUsICRFbGVtZW50MTsKCiAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IG5hbWUKICAgICAgICAgICAgICAgICAgICBOYW1lID0gJCgnI1NlYXJjaFByb2ZpbGVBZGROYW1lJykudmFsKCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFOYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vIGFkZCBuYW1lIHRvIHByb2ZpbGUgc2VsZWN0aW9uCiAgICAgICAgICAgICAgICAgICAgJEVsZW1lbnQxID0gJCgnI1NlYXJjaFByb2ZpbGUnKS5jaGlsZHJlbigpLmZpcnN0KCkuY2xvbmUoKTsKICAgICAgICAgICAgICAgICAgICAkRWxlbWVudDEudGV4dChOYW1lKTsKICAgICAgICAgICAgICAgICAgICAkRWxlbWVudDEuYXR0cigndmFsdWUnLCBOYW1lKTsKICAgICAgICAgICAgICAgICAgICAkRWxlbWVudDEucHJvcCgnc2VsZWN0ZWQnLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAkKCcjU2VhcmNoUHJvZmlsZScpLmFwcGVuZCgkRWxlbWVudDEpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJyk7CgogICAgICAgICAgICAgICAgICAgIC8vIHNldCBpbnB1dCBib3ggdG8gZW1wdHkKICAgICAgICAgICAgICAgICAgICAkKCcjU2VhcmNoUHJvZmlsZUFkZE5hbWUnKS52YWwoJycpOwoKICAgICAgICAgICAgICAgICAgICAvLyBoaWRlIGFkZCB0ZW1wbGF0ZSBibG9jawogICAgICAgICAgICAgICAgICAgICQoJyNTZWFyY2hQcm9maWxlQWRkQmxvY2snKS5oaWRlKCk7CgogICAgICAgICAgICAgICAgICAgIC8vIGhpZGUgc2F2ZSBjaGFuZ2VzIGluIHRlbXBsYXRlIGJsb2NrCiAgICAgICAgICAgICAgICAgICAgJCgnI1NhdmVQcm9maWxlJykucGFyZW50KCkuaGlkZSgpLnByZXYoKS5oaWRlKCkucHJldigpLmhpZGUoKTsKCiAgICAgICAgICAgICAgICAgICAgLy8gc2V0IFNhdmVQcm9maWxlIHRvIDEKICAgICAgICAgICAgICAgICAgICAkKCcjU2F2ZVByb2ZpbGUnKS5wcm9wKCdjaGVja2VkJywgdHJ1ZSk7CgogICAgICAgICAgICAgICAgICAgIC8vIHNob3cgZGVsZXRlIGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICQoJyNTZWFyY2hQcm9maWxlRGVsZXRlJykuc2hvdygpOwoKICAgICAgICAgICAgICAgICAgICAvLyBzaG93IHByb2ZpbGUgbGluawogICAgICAgICAgICAgICAgICAgICQoJyNTZWFyY2hQcm9maWxlQXNMaW5rJykuc2hvdygpOwoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvLyBkaXJlY3QgbGluayB0byBwcm9maWxlCiAgICAgICAgICAgICAgICAkKCcjU2VhcmNoUHJvZmlsZUFzTGluaycpLm9mZignY2xpY2suU2hvd1Byb2ZpbGUnKS5vbignY2xpY2suU2hvd1Byb2ZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIFByb2ZpbGUgPSAkKCcjU2VhcmNoUHJvZmlsZScpLnZhbCgpLAogICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb24gPSAkKCcjU2VhcmNoQWN0aW9uJykudmFsKCk7CgogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gQ29yZS5Db25maWcuR2V0KCdCYXNlbGluaycpICsgJ0FjdGlvbj0nICsgQWN0aW9uICsKICAgICAgICAgICAgICAgICAgICAnO1N1YmFjdGlvbj1TZWFyY2g7VGFrZUxhc3RTZWFyY2g9MTtTYXZlUHJvZmlsZT0xO1Byb2ZpbGU9JyArIGVuY29kZVVSSUNvbXBvbmVudChQcm9maWxlKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvLyBkZWxldGUgcHJvZmlsZQogICAgICAgICAgICAgICAgJCgnI1NlYXJjaFByb2ZpbGVEZWxldGUnKS5vZmYoJ2NsaWNrLkRlbGV0ZVByb2ZpbGUnKS5vbignY2xpY2suRGVsZXRlUHJvZmlsZScsIGZ1bmN0aW9uIChFdmVudCkgewoKICAgICAgICAgICAgICAgICAgICAvLyBzdHJpcCBhbGwgYWxyZWFkeSB1c2VkIGF0dHJpYnV0ZXMKICAgICAgICAgICAgICAgICAgICAkKCcjU2VhcmNoUHJvZmlsZScpLmZpbmQoJ29wdGlvbjpzZWxlY3RlZCcpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5hdHRyKCd2YWx1ZScpICE9PSAnbGFzdC1zZWFyY2gnKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVidWlsZCBhdHRyaWJ1dGVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjU2VhcmNoSW5zZXJ0JykudGV4dCgnJyk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHJlbW90ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoUHJvZmlsZURlbGV0ZSgkKHRoaXMpLnZhbCgpKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgbG9jYWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlKCk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hvdyBmdWxsdGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0TlMuU2VhcmNoQXR0cmlidXRlQWRkKCdGdWxsdGV4dCcpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlYnVpbGQgc2VsZWN0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXROUy5BZGRpdGlvbmFsQXR0cmlidXRlU2VsZWN0aW9uUmVidWlsZCgpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgIGlmICgkKCcjU2VhcmNoUHJvZmlsZScpLnZhbCgpICYmICQoJyNTZWFyY2hQcm9maWxlJykudmFsKCkgPT09ICdsYXN0LXNlYXJjaCcpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhpZGUgZGVsZXRlIGxpbmsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI1NlYXJjaFByb2ZpbGVEZWxldGUnKS5oaWRlKCk7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBoaWRlIHByb2ZpbGUgbGluawogICAgICAgICAgICAgICAgICAgICAgICAkKCcjU2VhcmNoUHJvZmlsZUFzTGluaycpLmhpZGUoKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICB9LCAnaHRtbCcKICAgICAgICApOwogICAgfTsKCiAgICAvKioKICAgICAqIEBuYW1lIEluaXQKICAgICAqIEBuYW1lc3BhY2UgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LlNlYXJjaAogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBzb21lIGJlaGF2aW91cnMgZm9yIHRoZSBzZWFyY2ggZGlhbG9nLgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBPcGVuRGlhbG9nID0gQ29yZS5Db25maWcuR2V0KCdJVFNNQ2hhbmdlTWFuYWdlbWVudFNlYXJjaC5PcGVuJyk7CiAgICAgICAgaWYgKE9wZW5EaWFsb2cpIHsKICAgICAgICAgICAgVGFyZ2V0TlMuT3BlblNlYXJjaERpYWxvZygnQWdlbnRJVFNNQ2hhbmdlU2VhcmNoJyk7CiAgICAgICAgfQogICAgfTsKCiAgICBDb3JlLkluaXQuUmVnaXN0ZXJOYW1lc3BhY2UoVGFyZ2V0TlMsICdBUFBfTU9EVUxFJyk7CgogICAgcmV0dXJuIFRhcmdldE5TOwp9KElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5TZWFyY2ggfHwge30pKTsK</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.TemplateOverview.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS9cbiI7Ci8vIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIElUU00gPSBJVFNNIHx8IHt9OwpJVFNNLkFnZW50ID0gSVRTTS5BZ2VudCB8fCB7fTsKSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50ID0gSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50IHx8IHt9OwoKCi8qKgogKiBAbmFtZXNwYWNlIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5UZW1wbGF0ZQogKiBAbWVtYmVyb2YgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgY2hhbmdlIHRlbXBsYXRlIG92ZXJ2aWV3LgogKi8KSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LlRlbXBsYXRlT3ZlcnZpZXcgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbmFtZXNwYWNlIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5UZW1wbGF0ZU92ZXJ2aWV3CiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHNvbWUgYmVoYXZpb3VycyBmb3IgdGhlIHRlbXBsYXRlIG92ZXJ2aWV3IHNjcmVlbi4KICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgSVRTTUNoYW5nZVRlbXBsYXRlT3ZlcnZpZXdDb25maXJtRGlhbG9nID0gQ29yZS5Db25maWcuR2V0KAogICAgICAgICAgICAnSVRTTUNoYW5nZVRlbXBsYXRlT3ZlcnZpZXdDb25maXJtRGlhbG9nJwogICAgICAgICk7CgogICAgICAgIC8vIGJpbmQgJ0RlbGV0ZScgYW5kICdFZGl0Q29udGVudCcgYnV0dG9ucwogICAgICAgICQuZWFjaChJVFNNQ2hhbmdlVGVtcGxhdGVPdmVydmlld0NvbmZpcm1EaWFsb2csIGZ1bmN0aW9uKEtleSwgRGF0YSkgewogICAgICAgICAgICBEYXRhID0gJC5leHRlbmQodHJ1ZSwge30sIERhdGEsIHsKICAgICAgICAgICAgICAgIERpYWxvZ1RpdGxlOiBDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZShEYXRhLkRpYWxvZ1RpdGxlKSwKICAgICAgICAgICAgICAgIFRyYW5zbGF0ZWRUZXh0OiB7CiAgICAgICAgICAgICAgICAgICAgWWVzOiBDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgiWWVzIiksCiAgICAgICAgICAgICAgICAgICAgTm86ICBDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgiTm8iKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIElUU00uQWdlbnQuQ29uZmlybURpYWxvZy5CaW5kQ29uZmlybURpYWxvZyhEYXRhKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gYmluZCBsaW5rcyB0byBvcGVuIHRoZSB0ZW1wbGF0ZSBlZGl0IHBvcHVwCiAgICAgICAgJCgndGJvZHkgdHIgdGQgYS5Bc1BvcHVwJykub24oJ2NsaWNrLklUU01DaGFuZ2VNYW5nZW1lbnQuVGVtcGxhdGVFZGl0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICBDb3JlLlVJLlBvcHVwLk9wZW5Qb3B1cCgkKHRoaXMpLmF0dHIoJ2hyZWYnKSwgJ0FjdGlvbicpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cgp9KElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5PdmVydmlldyB8fCB7fSkpOwo=</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.TimeSlot.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgSVRTTSA9IElUU00gfHwge307CklUU00uQWdlbnQgPSBJVFNNLkFnZW50IHx8IHt9OwpJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgPSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuVGltZVNsb3QKICogQG1lbWJlcm9mIElUU00uQWdlbnQKICogQGF1dGhvciBPVFJTIEFHCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBDaGFuZ2UgVGltZVNsb3QuCiAqLwpJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuVGltZVNsb3QgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbWVtYmVyb2YgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LlRpbWVTbG90CiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMuCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgICQoJyNNb3ZlVGltZVR5cGUnKS5vZmYoJ2NoYW5nZS5JVFNNQWdlbnRDaGFuZ2VNYW5hZ2VtZW50VGltZVNsb3QnKS5vbignY2hhbmdlLklUU01BZ2VudENoYW5nZU1hbmFnZW1lbnRUaW1lU2xvdCcsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBDb3JlLkFKQVguRm9ybVVwZGF0ZSgkKCcjTW92ZVRpbWVTbG90Rm9ybScpLCAnQUpBWFVwZGF0ZScsICdNb3ZlVGltZVR5cGUnLCBbJ01vdmVUaW1lTWludXRlJywgJ01vdmVUaW1lSG91cicsICdNb3ZlVGltZURheScsICdNb3ZlVGltZU1vbnRoJywgJ01vdmVUaW1lWWVhciddKTsKICAgICAgICAgICAgJCgnI0FKQVhMb2FkZXJNb3ZlVGltZURheSwgI0FKQVhMb2FkZXJNb3ZlVGltZU1vbnRoLCAjQUpBWExvYWRlck1vdmVUaW1lWWVhciwgI0FKQVhMb2FkZXJNb3ZlVGltZUhvdXInKS5yZW1vdmVDbGFzcygnQUpBWExvYWRlcicpOwogICAgICAgIH0pCgogICAgfTsKCiAgICBDb3JlLkluaXQuUmVnaXN0ZXJOYW1lc3BhY2UoVGFyZ2V0TlMsICdBUFBfTU9EVUxFJyk7CiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LlRpbWVTbG90IHx8IHt9KSk7Cg==</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.UserSearch.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgSVRTTSA9IElUU00gfHwge307CklUU00uQWdlbnQgPSBJVFNNLkFnZW50IHx8IHt9OwpJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgPSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgfHwge307CgoKLyoqCiAqIEBuYW1lc3BhY2UgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LlVzZXJTZWFyY2gKICogQG1lbWJlcm9mIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudAogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgdGhlIHVzZXIgc2VhcmNoLgogKi8KSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LlVzZXJTZWFyY2ggPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbmFtZXNwYWNlIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Vc2VyQWdlbnQKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtqUXVlcnlPYmplY3R9ICRVc2VyU2VhcmNoZXMgZWxlbWVudHMgdG8gYWRkIGF1dG9jb21wbGV0ZSBiZWhhdmlvdXIgKG9wdGlvbmFsKQogICAgICogICAgICBpZiBub3QgZ2l2ZW4sIHdpbGwgc2VhcmNoIGZvciBhbGwgaW5wdXRzIHdpdGggdGhlIGNsYXNzICcuVXNlclNlYXJjaCcKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMKICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgkVXNlclNlYXJjaGVzKSB7CiAgICAgICAgJFVzZXJTZWFyY2hlcyA9ICRVc2VyU2VhcmNoZXMgfHwgJCgnaW5wdXQuVXNlclNlYXJjaCcpOwoKICAgICAgICAkVXNlclNlYXJjaGVzLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciAkRWxlbWVudCA9ICQodGhpcyk7CgogICAgICAgICAgICBDb3JlLlVJLkF1dG9jb21wbGV0ZS5Jbml0KAogICAgICAgICAgICAgICAgJEVsZW1lbnQsCiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoUmVxdWVzdCwgUmVzcG9uc2UpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgVVJMID0gQ29yZS5Db25maWcuR2V0KCdCYXNlbGluaycpLCBEYXRhID0gewogICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb246ICdBZ2VudElUU01Vc2VyU2VhcmNoJywKICAgICAgICAgICAgICAgICAgICAgICAgVGVybTogUmVxdWVzdC50ZXJtICsgJyonLAogICAgICAgICAgICAgICAgICAgICAgICBHcm91cHMgOiAkRWxlbWVudC5kYXRhKCdhdXRvY29tcGxldGVncm91cHMnKSwKICAgICAgICAgICAgICAgICAgICAgICAgTWF4UmVzdWx0czogQ29yZS5VSS5BdXRvY29tcGxldGUuR2V0Q29uZmlnKCdNYXhSZXN1bHRzRGlzcGxheWVkJykKICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICAgICAkRWxlbWVudC5kYXRhKCdBdXRvQ29tcGxldGVYSFInLCBDb3JlLkFKQVguRnVuY3Rpb25DYWxsKFVSTCwgRGF0YSwgZnVuY3Rpb24gKFJlc3VsdCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgRGF0YSA9IFtdOwogICAgICAgICAgICAgICAgICAgICAgICAkLmVhY2goUmVzdWx0LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLlVzZXJWYWx1ZSArICIgKCIgKyB0aGlzLlVzZXJLZXkgKyAiKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuVXNlcktleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93IDogdGhpcy5Vc2VyVmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2UoRGF0YSk7CiAgICAgICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChFdmVudCwgVUkpIHsKICAgICAgICAgICAgICAgICAgICAkRWxlbWVudC52YWwoVUkuaXRlbS5zaG93KTsKCiAgICAgICAgICAgICAgICAgICAgLy8gc2V0IGhpZGRlbiBmaWVsZCBTZWxlY3RlZFVzZXIKICAgICAgICAgICAgICAgICAgICAkKCcjJyArIENvcmUuQXBwLkVzY2FwZVNlbGVjdG9yKCRFbGVtZW50LmF0dHIoJ2lkJykpICsgJ1NlbGVjdGVkJykudmFsKFVJLml0ZW0udmFsdWUpOwoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgJ0N1c3RvbWVyU2VhcmNoJwogICAgICAgICAgICApOwogICAgICAgIH0pOwoKICAgICAgICAvLyBPbiB1bmxvYWQgcmVtb3ZlIG9sZCBzZWxlY3RlZCBkYXRhLiBJZiB0aGUgcGFnZSBpcyByZWxvYWRlZCAod2l0aCBGNSkKICAgICAgICAvLyB0aGlzIGRhdGEgc3RheXMgaW4gdGhlIGZpZWxkIGFuZCBpbnZva2VzIGFuIGFqYXggcmVxdWVzdCBvdGhlcndpc2UKICAgICAgICAkKHdpbmRvdykub24oJ2JlZm9yZXVubG9hZC5Vc2VyU2VhcmNoJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAkKCdpbnB1dC5Vc2VyU2VhcmNoU2VsZWN0ZWQnKS52YWwoJycpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfSk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LlVzZXJTZWFyY2ggfHwge30pKTsK</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.WorkorderGraph.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgSVRTTSA9IElUU00gfHwge307CklUU00uQWdlbnQgPSBJVFNNLkFnZW50IHx8IHt9OwpJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgPSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuV29ya29yZGVyR3JhcGgKICogQG1lbWJlcm9mIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudAogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgdGhlIHdvcmtvcmRlciBncmFwaC4KICovCklUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Xb3Jrb3JkZXJHcmFwaCA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICAvKioKICAgICAqIEBuYW1lIEluaXQKICAgICAqIEBuYW1lc3BhY2UgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50LldvcmtvcmRlckdyYXBoCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSB3b3Jrb3JkZXIgZ3JhcGgKICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICBmdW5jdGlvbiBHZXREZXRhaWxQb3NpdGlvbihFbGVtZW50LCBFdmVudCkgewogICAgICAgICAgICB2YXIgJERldGFpbHMgPSAkKEVsZW1lbnQpLm5leHQoJy5Xb3Jrb3JkZXJEZXRhaWxzJyksCiAgICAgICAgICAgICAgICBNb3VzZVBvc2l0aW9uTGVmdCA9IHBhcnNlSW50KEV2ZW50LnBhZ2VYLCAxMCksCiAgICAgICAgICAgICAgICBNb3VzZVBvc2l0aW9uVG9wID0gcGFyc2VJbnQoRXZlbnQucGFnZVksIDEwKSwKICAgICAgICAgICAgICAgIEJveFBvc2l0aW9uID0gJChFbGVtZW50KS5jbG9zZXN0KCdkaXYuV29ya29yZGVyR3JhcGgnKS5vZmZzZXQoKSwKICAgICAgICAgICAgICAgIEJveFdpZHRoID0gJChFbGVtZW50KS5jbG9zZXN0KCdkaXYuV29ya29yZGVyR3JhcGgnKS53aWR0aCgpLAogICAgICAgICAgICAgICAgRGV0YWlsV2lkdGggPSAkRGV0YWlscy53aWR0aCgpLAogICAgICAgICAgICAgICAgRGV0YWlsUG9zaXRpb25MZWZ0ID0gTW91c2VQb3NpdGlvbkxlZnQgLSBwYXJzZUludChCb3hQb3NpdGlvbi5sZWZ0LCAxMCkgKyAxNSwKICAgICAgICAgICAgICAgIERldGFpbFBvc2l0aW9uVG9wID0gTW91c2VQb3NpdGlvblRvcCAtIHBhcnNlSW50KEJveFBvc2l0aW9uLnRvcCwgMTApICsgMTU7CgogICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBub3QgZW5vdWdoIHNwYWNlIHRvIHRoZSByaWdodCB0byBzaG93IHRoZSBkZXRhaWwgYm94LAogICAgICAgICAgICAvLyBzaG93IGl0IG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIG1vdXNlIGN1cnNvcgogICAgICAgICAgICBpZiAoRGV0YWlsUG9zaXRpb25MZWZ0ICsgRGV0YWlsV2lkdGggKyAxNSA+IEJveFdpZHRoKSB7CiAgICAgICAgICAgICAgICBEZXRhaWxQb3NpdGlvbkxlZnQgPSBEZXRhaWxQb3NpdGlvbkxlZnQgLSA0MDAgLSAzMDsgLy8gMzAgYmVjYXVzZSB3ZSBhZGRlZCAxNSB0byB0aGUgcmlnaHQgYW5kIG5vdyB3YW50IDE1IHRvIHRoZSBsZWZ0CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBMZWZ0OiBEZXRhaWxQb3NpdGlvbkxlZnQsCiAgICAgICAgICAgICAgICBUb3A6IERldGFpbFBvc2l0aW9uVG9wCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAkKCdkaXYuV29ya29yZGVyIGEnKQogICAgICAgIC5vZmYoJ21vdXNlZW50ZXIuSVRTTUNoYW5nZU1hbmFnZW1lbnQuV09HcmFwaCcpLm9uKCdtb3VzZWVudGVyLklUU01DaGFuZ2VNYW5hZ2VtZW50LldPR3JhcGgnLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICAgICAgdmFyIERldGFpbFBvc2l0aW9uID0gR2V0RGV0YWlsUG9zaXRpb24odGhpcywgRXZlbnQpOwogICAgICAgICAgICAkKHRoaXMpLm5leHQoJy5Xb3Jrb3JkZXJEZXRhaWxzJykKICAgICAgICAgICAgICAgIC5jc3MoJ2xlZnQnLCBEZXRhaWxQb3NpdGlvbi5MZWZ0KQogICAgICAgICAgICAgICAgLmNzcygndG9wJywgRGV0YWlsUG9zaXRpb24uVG9wKQogICAgICAgICAgICAgICAgLnNob3coKTsKICAgICAgICB9KQogICAgICAgIC5vZmYoJ21vdXNlbGVhdmUuSVRTTUNoYW5nZU1hbmFnZW1lbnQuV09HcmFwaCcpLm9uKCdtb3VzZWxlYXZlLklUU01DaGFuZ2VNYW5hZ2VtZW50LldPR3JhcGgnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICQodGhpcykubmV4dCgnLldvcmtvcmRlckRldGFpbHMnKS5oaWRlKCk7CiAgICAgICAgfSkKICAgICAgICAub2ZmKCdtb3VzZW1vdmUuSVRTTUNoYW5nZU1hbmFnZW1lbnQuV09HcmFwaCcpLm9uKCdtb3VzZW1vdmUuSVRTTUNoYW5nZU1hbmFnZW1lbnQuV09HcmFwaCcsIGZ1bmN0aW9uIChFdmVudCkgewogICAgICAgICAgICB2YXIgRGV0YWlsUG9zaXRpb24gPSBHZXREZXRhaWxQb3NpdGlvbih0aGlzLCBFdmVudCk7CiAgICAgICAgICAgICQodGhpcykubmV4dCgnLldvcmtvcmRlckRldGFpbHMnKQogICAgICAgICAgICAgICAgLmNzcygnbGVmdCcsIERldGFpbFBvc2l0aW9uLkxlZnQpCiAgICAgICAgICAgICAgICAuY3NzKCd0b3AnLCBEZXRhaWxQb3NpdGlvbi5Ub3ApOwogICAgICAgIH0pOwogICAgfTsKCiAgICBDb3JlLkluaXQuUmVnaXN0ZXJOYW1lc3BhY2UoVGFyZ2V0TlMsICdBUFBfTU9EVUxFJyk7CgogICAgcmV0dXJuIFRhcmdldE5TOwp9KElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5Xb3Jrb3JkZXJHcmFwaCB8fCB7fSkpOwo=</File>
        <File Permission="660" Location="var/httpd/htdocs/js/ITSM.Agent.ChangeManagement.Zoom.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS9cbiI7Ci8vIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIElUU00gPSBJVFNNIHx8IHt9OwpJVFNNLkFnZW50ID0gSVRTTS5BZ2VudCB8fCB7fTsKSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50ID0gSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50IHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UgSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Llpvb20KICogQG1lbWJlcm9mIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudAogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgdGhlIFpvb20gKGNoYW5nZSBhbmQgd29ya29yZGVyIHpvb20pLgogKi8KSVRTTS5BZ2VudC5DaGFuZ2VNYW5hZ2VtZW50Llpvb20gPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbmFtZXNwYWNlIElUU00uQWdlbnQuQ2hhbmdlTWFuYWdlbWVudC5ab29tCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMKICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAvLyBpbml0IGJyb3dzZXIgbGluayBtZXNzYWdlIGNsb3NlIGJ1dHRvbgogICAgICAgIGlmICgkKCcuSVRTTU1lc3NhZ2VCcm93c2VyJykubGVuZ3RoKSB7CiAgICAgICAgICAgICQoJy5JVFNNTWVzc2FnZUJyb3dzZXIgYS5DbG9zZScpLm9mZignSVRTTU1lc3NhZ2VCcm93c2VyJykub24oJ2NsaWNrLklUU01NZXNzYWdlQnJvd3NlcicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICQoJy5JVFNNTWVzc2FnZUJyb3dzZXInKS5mYWRlT3V0KCJzbG93Iik7CiAgICAgICAgICAgICAgICBDb3JlLkFnZW50LlByZWZlcmVuY2VzVXBkYXRlKCdVc2VyQWdlbnREb05vdFNob3dCcm93c2VyTGlua01lc3NhZ2UnLCAxKTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICAvLyBjb3B5IGRhdGEtc3JjIGF0dHJpYnV0ZSB0byBzcmMgYXR0cmlidXRlIGZvciBhbGwgaWZyYW1lcyB0bwogICAgICAgIC8vICBjb3JyZWN0bHkgZGlzcGxheSBpdHMgY29udGVudHMgYWZ0ZXIgSlMgaXMgZnVsbHkgbG9hZGVkCiAgICAgICAgJCgnaWZyYW1lJykuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICAkKHRoaXMpLmF0dHIoInNyYyIsICQodGhpcykuYXR0cigiZGF0YS1zcmMiKSk7CiAgICAgICAgfSk7CgogICAgICAgICQoJ3VsLkFjdGlvbnMgYS5Bc1BvcHVwJykKICAgICAgICAub2ZmKCdjbGljay5JVFNNQ2hhbmdlTWFuYWdlbWVudFpvb20uQWN0aW9uUG9wdXAnKQogICAgICAgIC5vbignY2xpY2suSVRTTUNoYW5nZU1hbmFnZW1lbnRab29tLkFjdGlvblBvcHVwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICBDb3JlLlVJLlBvcHVwLk9wZW5Qb3B1cCgkKHRoaXMpLmF0dHIoJ2hyZWYnKSwgJ0FjdGlvbicpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgICQoJ3VsLkFjdGlvbnMgYS5IaXN0b3J5QmFjaycpCiAgICAgICAgLm9mZignY2xpY2suSVRTTUNoYW5nZU1hbmFnZW1lbnRab29tLkhpc3RvcnlCYWNrJykKICAgICAgICAub24oJ2NsaWNrLklUU01DaGFuZ2VNYW5hZ2VtZW50Wm9vbS5IaXN0b3J5QmFjaycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIHJlZmVycmVyIHdlIHVzZSBpdCwgc28gdGhlIHByZXZpb3VzIHBhZ2Ugd2lsbCBiZSBsb2FkZWQgZnJvbSB0aGUgc2VydmVyCiAgICAgICAgICAgIC8vIGFuZCBpZiB0aGUgcmVmZXJlciBpcyBub3QgdGhlIGN1cnJlbnQgcGFnZSAoQWdlbnRJVFNNV29ya09yZGVyWm9vbSkKICAgICAgICAgICAgaWYgKGRvY3VtZW50LnJlZmVycmVyICYmICFkb2N1bWVudC5yZWZlcnJlci5tYXRjaCgvQWdlbnRJVFNNV29ya09yZGVyWm9vbS8pKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGRvY3VtZW50LnJlZmVycmVyOwogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBpZiB0aGUgcGFnZSB3YXMgbG9hZGVkIGZyb20gY2xpY2tpbmcgYSBsaW5rIGluIGFuIGVtYWlsIHRoZXJlIGlzIG5vIHJlZmVyZXIKICAgICAgICAgICAgLy8gYW5kIHRoZW4gd2Ugd2FudCB0byBmb2xsb3cgdGhlIG9yaWdpbmFsIGxpbmsgdGFyZ2V0ICh3aGljaCBpcyB0aGUgY2hhbmdlIHpvb20gKQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gSW5pdGlhbGl6ZSBhbGxvY2F0aW9uIGxpc3QgZm9yIGxpbmsgb2JqZWN0IHRhYmxlLgogICAgICAgIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLlNldEFsbG9jYXRpb25MaXN0KCk7CiAgICB9OwoKICAgIC8qKgogICAgICogQG5hbWUgSWZyYW1lQXV0b0hlaWdodAogICAgICogQG5hbWVzcGFjZSBJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuWm9vbQogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge2pRdWVyeU9iamVjdH0gJElmcmFtZSBUaGUgaWZyYW1lIHdoaWNoIHNob3VsZCBiZSBhdXRvLWhlaWdodGVkCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zCiAgICAgKi8KICAgIFRhcmdldE5TLklmcmFtZUF1dG9IZWlnaHQgPSBmdW5jdGlvbiAoJElmcmFtZSkgewogICAgICAgIHZhciBOZXdIZWlnaHQ7CgogICAgICAgIGlmICghaXNKUXVlcnlPYmplY3QoJElmcmFtZSkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgTmV3SGVpZ2h0ID0gJElmcmFtZQogICAgICAgICAgICAuY29udGVudHMoKQogICAgICAgICAgICAuZmluZCgnaHRtbCcpCiAgICAgICAgICAgIC5oZWlnaHQoKTsKCiAgICAgICAgLy8gSUU4IG5lZWRzIHNvbWUgbW9yZSBzcGFjZSBkdWUgdG8gaW5jb3JyZWN0IGhlaWdodCBjYWxjdWxhdGlvbgogICAgICAgIGlmIChOZXdIZWlnaHQgPiAwICYmICQuYnJvd3Nlci5tc2llICYmICQuYnJvd3Nlci52ZXJzaW9uID09PSAnOC4wJykgewogICAgICAgICAgICBOZXdIZWlnaHQgPSBOZXdIZWlnaHQgKyA0OwogICAgICAgIH0KCiAgICAgICAgLy8gaWYgdGhlIGlGcmFtZXMgaGVpZ2h0IGlzIDAsIHdlIGNvbGxhcHNlIHRoZSB3aWRnZXQKICAgICAgICBpZiAoTmV3SGVpZ2h0ID09PSAwKSB7CiAgICAgICAgICAgICRJZnJhbWUuY2xvc2VzdCgnLldpZGdldFNpbXBsZScpLnJlbW92ZUNsYXNzKCdFeHBhbmRlZCcpLmFkZENsYXNzKCdDb2xsYXBzZWQnKTsKICAgICAgICB9CgogICAgICAgIGlmICghTmV3SGVpZ2h0IHx8IGlzTmFOKE5ld0hlaWdodCkpIHsKICAgICAgICAgICAgTmV3SGVpZ2h0ID0gQ29yZS5Db25maWcuR2V0KCdJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRIVE1MRmllbGRIZWlnaHREZWZhdWx0Jyk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAoTmV3SGVpZ2h0ID4gQ29yZS5Db25maWcuR2V0KCdJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRIVE1MRmllbGRIZWlnaHRNYXgnKSkgewogICAgICAgICAgICAgICAgTmV3SGVpZ2h0ID0gQ29yZS5Db25maWcuR2V0KCdJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRIVE1MRmllbGRIZWlnaHRNYXgnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkSWZyYW1lLmhlaWdodChOZXdIZWlnaHQgKyAncHgnKTsKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKfShJVFNNLkFnZW50LkNoYW5nZU1hbmFnZW1lbnQuWm9vbSB8fCB7fSkpOwo=</File>
        <File Permission="660" Location="var/httpd/htdocs/skins/Agent/default/css/ITSM.ChangeManagement.Default.css" Encode="Base64">LyoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgoqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgSVRTTSBkZWZhdWx0CiAqLwoKQG1lZGlhIHNjcmVlbixwcm9qZWN0aW9uLHR2LGhhbmRoZWxkIHsKCi8qKgogKiBAc3Vic2VjdGlvbiAgU3RhbmRhcmQgV2lkdGhzCiAqLwoKLlczMDBweCB7CiAgICB3aWR0aDogMzAwcHg7Cn0KCi5TcGFjaW5nQm90dG9tU21hbGwgewogICAgbWFyZ2luLWJvdHRvbTogNXB4Owp9CgovKioKICogQHN1YnNlY3Rpb24gIExheW91dCBmaXgKICovCi8qKgogKiBAbm90ZSAgICAgQmVjYXVzZSBvZiBzb21lIG92ZXJmbG93IGhpZGRlbiwgd29ya29yZGVyIHRvb2x0aXBzIGFyZSBub3QgYWx3YXlzCiAqICAgICAgICAgICBjb21wbGV0ZWx5IHZpc2libGUuCiAqICAgICAgICAgICBUaGUgb3ZlcmZsb3cgaGlkZGVuIGlzIG5lY2Vzc2FyeSBpbiB0aGUgbGF5b3V0IGFuZCBjYW4ndCBiZSBjaGFuZ2VkLgogKiAgICAgICAgICAgVGhpcyBpcyBhIHdvcmthcm91bmQgdG8gZnVsbHkgc2hvdyB0aGUgd29ya29yZGVyIHRvb2x0aXAuCiAqLwouTGF5b3V0Rml4ZWRTaWRlYmFyID4gLkNvbnRlbnRDb2x1bW4gewogICAgbWluLWhlaWdodDogNDUwcHg7Cn0KCi5GaXhlZExhYmVsU21hbGwgaWZyYW1lLkZpZWxkIHsKICAgIHdpZHRoOiA4MCU7Cn0KCi5JVFNNTWVzc2FnZUJyb3dzZXIgewogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgIHBhZGRpbmc6IDBweDsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLklUU01NZXNzYWdlQnJvd3NlciBwIHsKICAgICBwYWRkaW5nOiA1cHg7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogI0U4RThFODsKICAgICBmb250LXNpemU6IDExcHg7CiAgICAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgouSVRTTU1lc3NhZ2VCcm93c2VyIGEuQ2xvc2UgewogICAgZGlzcGxheTogYmxvY2s7CiAgICB3aWR0aDogMTJweDsKICAgIGhlaWdodDogMTJweDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiA0cHg7CiAgICB0b3A6IDZweDsKICAgIGNvbG9yOiAjNUQ1RDVEOwp9CgouSVRTTU1lc3NhZ2VCcm93c2VyIGEuQ2xvc2U6aG92ZXIgewogICAgY29sb3I6ICMwMDA7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgVGFibGVTbWFsbAogKi8KCi5UYWJsZVNtYWxsIHRib2R5IHRyLkludmFsaWQgewogICAgY29sb3I6ICNDQ0M7Cn0KCn0gLyogZW5kIEBtZWRpYSAqLwo=</File>
        <File Permission="660" Location="var/httpd/htdocs/skins/Agent/default/css/ITSM.ChangeManagement.Responsive.css" Encode="Base64">LyoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgoqLwoKLyogIEFsbCBkZXZpY2VzIGNhcGFibGUgb2YgT1RSUyBtaW5pbXVtIHNvbHV0aW9uLiBVc2VkIHRvIGhpZGUgZWxlbWVudHMgZm9yIG1vYmlsZSBkZXZpY2VzLiAqLwpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkgewoKfQoKLyogIEFsbCBkZXZpY2VzIHdpdGggYSBzbWFsbGVyIHJlc29sdXRpb24gdGhhbiB0aGUgY3VycmVudCBPVFJTIG1pbmltdW0gc29sdXRpb24gKi8KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHsKCiAgICAuV29ya29yZGVyRGV0YWlscyB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQp9CgovKiAgfiBUYWJsZXQgbGFuZHNjYXBlICovCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHsKCn0KCi8qICBBbGwgZGV2aWNlcyBzbWFsbGVyIHRoYW4gdGFibGV0IGxhbmRzY2FwZSAqLwpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7Cgp9CgovKiAgfiBUYWJsZXQgcG9ydHJhaXQgKi8KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODBweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7Cgp9CgovKiAgfiBTbWFydHBob25lIGxhbmRzY2FwZSAqLwpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNDc5cHgpIHsKCn0KCi8qICB+IFNtYXJ0cGhvbmUgcG9ydHJhaXQgKi8KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMTlweCkgewoKfQo=</File>
        <File Permission="660" Location="var/httpd/htdocs/skins/Agent/default/css/ITSM.ChangeManagement.RTEContent.css" Encode="Base64">LyoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgoqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgSVRTTSBkZWZhdWx0CiAqLwoKQG1lZGlhIHNjcmVlbixwcm9qZWN0aW9uLHR2LGhhbmRoZWxkIHsKCi8qKgogKiBAc3Vic2VjdGlvbiAgVGFibGVzLCBsaXN0cwogKi8KCi5SVEVDb250ZW50LCAuUlRFQ29udGVudCAqIHsKICAgIGxpbmUtaGVpZ2h0OiAxMzAlICFpbXBvcnRhbnQ7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBmb250LWZhbWlseTogQXJpYWwsSGVsdmV0aWNhLFRhaG9tYSxWZXJkYW5hLFNhbnMtU2VyaWY7Cn0KCi5SVEVDb250ZW50IHRhYmxlIHsKICAgIGJvcmRlcjogMXB4IG91dHNldCAjMjIyOwogICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKICAgIGJvcmRlci1zcGFjaW5nOiAxcHg7Cn0KCi5SVEVDb250ZW50IHRhYmxlIHRkLCAuUlRFQ29udGVudCB0YWJsZSB0aCB7CiAgICBib3JkZXI6IDFweCBpbnNldCAjMDAwOwogICAgcGFkZGluZzogMXB4OwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKfQoKLlJURUNvbnRlbnQgdGFibGUgdGggewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwp9CgouUlRFQ29udGVudCBwIHsKICAgIG1hcmdpbjogMTBweCAwcHg7Cn0KCi5SVEVDb250ZW50IHVsIHsKICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsKICAgIG1hcmdpbjogMTBweCAwcHg7CiAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7Cn0KCi5SVEVDb250ZW50IG9sIHsKICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDsKICAgIG1hcmdpbjogMTBweCAwcHg7CiAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7Cn0KCi5SVEVDb250ZW50IHN0cm9uZywgLlJURUNvbnRlbnQgZW0gIHsKICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50Owp9CgoKfSAvKiBlbmQgQG1lZGlhICovCg==</File>
        <File Permission="660" Location="var/httpd/htdocs/skins/Agent/default/css/ITSM.ChangeManagement.WorkorderGraph.css" Encode="Base64">LyoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgoqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgV29ya29yZGVyIEdyYXBoCiAqLwoKQG1lZGlhIHNjcmVlbixwcm9qZWN0aW9uLHR2LGhhbmRoZWxkIHsKCi8qKgogKiBAc3Vic2VjdGlvbiAgV29ya29yZGVyIEdyYXBoCiAqLwoKZGl2LldvcmtvcmRlckdyYXBoQm94IHsKICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgcGFkZGluZzogMXB4OwogICAgei1pbmRleDogMTAwOwp9CgpkaXYuV29ya29yZGVyR3JhcGggewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgcGFkZGluZy1ib3R0b206IDVweDsKfQoKZGl2LkxpbmVzU2NhbGVCb3ggewogICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIHRvcDogMHB4OwogICAgbGVmdDogMHB4Owp9CgpkaXYuTGluZXNTY2FsZSB7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCmRpdi5UaW1lbGluZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBmb250LXNpemU6IDFweDsKICAgIHotaW5kZXg6IDI7Cn0KCmRpdi5TY2FsZVZlcnRpY2FsTGluZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXk7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICB3aWR0aDogMXB4OwogICAgZm9udC1zaXplOiAxcHg7CiAgICB6LWluZGV4OiAxOwp9CgpkaXYuV29ya29yZGVyTGFiZWwgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgbWFyZ2luLXJpZ2h0OiAycHg7CiAgICBmbG9hdDogbGVmdDsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBoZWlnaHQ6IDE1cHg7CiAgICBwYWRkaW5nLXRvcDogM3B4OwogICAgcGFkZGluZy1ib3R0b206IDNweDsKICAgIGxpbmUtaGVpZ2h0OiAxNHB4Owp9CgouUlRMIGRpdi5Xb3Jrb3JkZXJMYWJlbCB7CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgZmxvYXQ6IHJpZ2h0OwogICAgdGV4dC1hbGlnbjogcmlnaHQ7Cn0KCmRpdi5Xb3Jrb3JkZXJMYWJlbCAuRmxhZyB7CiAgICBmbG9hdDogbGVmdDsKICAgIG1hcmdpbi1sZWZ0OiA1cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDVweDsKICAgIG1hcmdpbi10b3A6IDJweDsKfQoKLlJUTCBkaXYuV29ya29yZGVyTGFiZWwgLkZsYWcgewogICAgZmxvYXQ6IHJpZ2h0Owp9CgpkaXYuV29ya29yZGVyTGFiZWwgLkZsYWcgc3BhbiB7CiAgICBjdXJzb3I6IGF1dG87Cn0KCmRpdi5Xb3Jrb3JkZXIgewogICAgbWFyZ2luLWJvdHRvbTogNXB4Owp9CgpkaXYuV29ya29yZGVyIGEgewogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgZGlzcGxheTogYmxvY2s7CiAgICBwYWRkaW5nLXRvcDogM3B4OwogICAgcGFkZGluZy1ib3R0b206IDNweDsKICAgIGhlaWdodDogMTVweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKZGl2LldvcmtvcmRlciBhIHNwYW4gewogICAgZGlzcGxheTogYmxvY2s7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogNXB4OwogICAgbWFyZ2luOiAxcHggYXV0byAycHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCmRpdi5Xb3Jrb3JkZXIgYSBzcGFuID4gc3BhbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGhlaWdodDogNXB4OwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwcHg7CiAgICBmb250LXNpemU6IDNweDsKICAgIHotaW5kZXg6IDQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5Xb3Jrb3JkZXJJbmFjdGl2ZSB7CiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHkgPSA1MCk7CiAgICBvcGFjaXR5OiAwLjU7Cn0KCmRpdi5Xb3Jrb3JkZXJEZXRhaWxzIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDJweDsKICAgIGxlZnQ6IDJweDsKICAgIHotaW5kZXg6IDU7CiAgICB3aWR0aDogNDAwcHg7CiAgICAtbW96LWJvcmRlci1yYWRpdXM6IDJweDsKICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4OwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgYm9yZGVyOiAxcHggc29saWQgI0NDQzsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUU7CiAgICBwYWRkaW5nOiA2cHg7CiAgICAtbW96LWJveC1zaGFkb3c6IDRweCA0cHggNHB4ICM2NjY7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDRweCA0cHggNHB4ICM2NjY7CiAgICBib3gtc2hhZG93OiA0cHggNHB4IDRweCAjNjY2Owp9CgpkaXYuU2NhbGVIb3Jpem9udGFsIHsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBsaWdodGdyZXk7CiAgICBwYWRkaW5nLXRvcDogNXB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgd2lkdGg6IDEwMCU7Cn0KCmRpdi5TY2FsZUVudHJ5IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogM3B4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiA4cHQ7CiAgICB3aWR0aDogMTAlOwp9CgpkaXYuU2NhbGVFbnRyeVRhaWwgewogICAgdGV4dC1hbGlnbjogbGVmdDsKfQoKZGl2LlNjYWxlRW50cnlUcmFpbCB7CiAgICB0ZXh0LWFsaWduOiByaWdodDsKfQoKLlJUTCBkaXYuU2NhbGVFbnRyeVRhaWwgewogICAgdGV4dC1hbGlnbjogcmlnaHQ7Cn0KCi5SVEwgZGl2LlNjYWxlRW50cnlUcmFpbCB7CiAgICB0ZXh0LWFsaWduOiBsZWZ0Owp9CgpkaXYuU2NhbGUwIHsKICAgIGxlZnQ6IDAlOwp9CgpkaXYuU2NhbGUxNSB7CiAgICBsZWZ0OiAxNSU7Cn0KCmRpdi5TY2FsZTIwIHsKICAgIGxlZnQ6IDIwJTsKfQoKZGl2LlNjYWxlMzUgewogICAgbGVmdDogMzUlOwp9CgpkaXYuU2NhbGU0MCB7CiAgICBsZWZ0OiA0MCU7Cn0KCmRpdi5TY2FsZTU1IHsKICAgIGxlZnQ6IDU1JTsKfQoKZGl2LlNjYWxlNjAgewogICAgbGVmdDogNjAlOwp9CgpkaXYuU2NhbGU3NSB7CiAgICBsZWZ0OiA3NSU7Cn0KCmRpdi5TY2FsZTgwIHsKICAgIGxlZnQ6IDgwJTsKfQoKZGl2LlNjYWxlOTAgewogICAgbGVmdDogOTAlOwp9CgpkaXYuU2NhbGUxMDAgewogICAgbGVmdDogOTkuOSU7Cn0KCi5SVEwgZGl2LlNjYWxlMCB7CiAgICBsZWZ0OiBhdXRvOwogICAgcmlnaHQ6IDAlOwp9CgouUlRMIGRpdi5TY2FsZTE1IHsKICAgIGxlZnQ6IGF1dG87CiAgICByaWdodDogMTUlOwp9CgouUlRMIGRpdi5TY2FsZTIwIHsKICAgIGxlZnQ6IGF1dG87CiAgICByaWdodDogMjAlOwp9CgouUlRMIGRpdi5TY2FsZTM1IHsKICAgIGxlZnQ6IGF1dG87CiAgICByaWdodDogMzUlOwp9CgouUlRMIGRpdi5TY2FsZTQwIHsKICAgIGxlZnQ6IGF1dG87CiAgICByaWdodDogNDAlOwp9CgouUlRMIGRpdi5TY2FsZTU1IHsKICAgIGxlZnQ6IGF1dG87CiAgICByaWdodDogNTUlOwp9CgouUlRMIGRpdi5TY2FsZTYwIHsKICAgIGxlZnQ6IGF1dG87CiAgICByaWdodDogNjAlOwp9CgouUlRMIGRpdi5TY2FsZTc1IHsKICAgIGxlZnQ6IGF1dG87CiAgICByaWdodDogNzUlOwp9CgouUlRMIGRpdi5TY2FsZTgwIHsKICAgIGxlZnQ6IGF1dG87CiAgICByaWdodDogODAlOwp9CgouUlRMIGRpdi5TY2FsZTkwIHsKICAgIGxlZnQ6IGF1dG87CiAgICByaWdodDogOTAlOwp9CgouUlRMIGRpdi5TY2FsZTEwMCB7CiAgICBsZWZ0OiBhdXRvOwogICAgcmlnaHQ6IDk5LjklOwp9Cgp9IC8qIGVuZCBAbWVkaWEgKi8K</File>
        <File Permission="660" Location="var/httpd/htdocs/skins/Customer/default/css/ITSM.ChangeManagement.Table.css" Encode="Base64">LyoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgoqLwoKQG1lZGlhIHNjcmVlbixwcm9qZWN0aW9uLHR2LGhhbmRoZWxkIHsKCi8qKgogKiBAcGFja2FnZSAgICAgT1RSUyBGcmFtZXdvcmsgLSBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgQ3VzdG9tZXIKICovCgp0YWJsZS5JVFNNT3ZlcnZpZXcgewogICAgdG9wOiAtMXB4OwogICAgd2lkdGg6IDEwMCU7CiAgICBjb2xvcjogIzQ0NDsKICAgIHRleHQtc2hhZG93OiAwIDFweCAwICNGRkY7CiAgICB6b29tOiAxOwogICAgY2xlYXI6IGJvdGg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLklUU01PdmVydmlldyB0aGVhZCB7CiAgICBiYWNrZ3JvdW5kOiAjQTdBQUFBIHVybCgiLi4vaW1nL0dyYWRpZW50U21hbGwucG5nIikgcmVwZWF0LXggMCAtMzFweDsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KLlNvcnRhYmxlIHRoZWFkIHsKICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsKfQouU2VhcmNoUmVzdWx0cyB0aGVhZCB7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC01NHB4Owp9Ci5JVFNNT3ZlcnZpZXcgdGhlYWQgdGggewogICAgcGFkZGluZzogMDsKICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207CiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjOTk5OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5OTk7Cn0KLlJUTCAuSVRTTU92ZXJ2aWV3IHRoZWFkIHRoIHsKICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzY2NjsKfQouSVRTTU92ZXJ2aWV3IHRoZWFkIC5TdGF0dXMgewogICAgcGFkZGluZy1sZWZ0OiAwOwp9Ci5JVFNNT3ZlcnZpZXcgdGhlYWQgYSB7CiAgICBwYWRkaW5nOiAxcHggMTNweCA0cHggOHB4OwogICAgaGVpZ2h0OiAxMHB4OwogICAgY29sb3I6ICM0NDQ7CiAgICBmb250LXNpemU6IDExcHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgZGlzcGxheTogYmxvY2s7CiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCAjRUVFOwp9CgouSVRTTU92ZXJ2aWV3IHRoZWFkIHNwYW4gewogICAgcGFkZGluZzogMXB4IDEzcHggNHB4IDhweDsKICAgIGhlaWdodDogMTBweDsKICAgIGNvbG9yOiAjNzc3OwogICAgZm9udC1zaXplOiAxMXB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI0VFRTsKfQoKLklUU01PdmVydmlldyB0aGVhZCAuU29ydEFzY2VuZGluZyBhLAouSVRTTU92ZXJ2aWV3IHRoZWFkIC5Tb3J0RGVzY2VuZGluZyBhIHsKICAgIGNvbG9yOiAjMjIyOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3NvcnRhYmxlX2JnLnBuZykgbm8tcmVwZWF0IHRvcCByaWdodDsKICAgIHRleHQtc2hhZG93OiAwIDFweCAwICNCQkI7Cn0KLklUU01PdmVydmlldyB0aGVhZCAuU29ydERlc2NlbmRpbmcgYSB7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gcmlnaHQ7Cn0KCi5JVFNNT3ZlcnZpZXcgdGJvZHkgewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLklUU01PdmVydmlldyB0Ym9keSB0ciB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0ZGRjsKfQouSVRTTU92ZXJ2aWV3IHRib2R5IHRyOmFjdGl2ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjREREOwp9Ci5JVFNNT3ZlcnZpZXcgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgewogICAgYm9yZGVyLXRvcDogbm9uZTsKfQouSVRTTU92ZXJ2aWV3IHRib2R5IHRyLkV2ZW4gewogICAgYmFja2dyb3VuZC1jb2xvcjogI0YzRjNGMzsKfQouSVRTTU92ZXJ2aWV3IHRib2R5IHRkIHsKICAgIHBhZGRpbmc6IDZweCA4cHggM3B4OwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGJvcmRlcjogMHB4IHNvbGlkOwp9Ci5JVFNNT3ZlcnZpZXcgdGJvZHkgYSB7CiAgICBjb2xvcjogIzQ0NDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIG91dGxpbmU6IG5vbmU7Cn0KLklUU01PdmVydmlldyB0YWJsZSBhOmhvdmVyIHsKICAgIGNvbG9yOiAjMDAwOwp9Ci8qKgogKiBAc3Vic2VjdGlvbiAgVGFibGVEYXRhIFN0eWxlcwogKi8KLkNoYW5nZVN0YXRlSUQgewogICAgcGFkZGluZy1sZWZ0OiA4cHg7Cn0KCi5PdmVydmlldyB0aGVhZCB0aC5BZ2UgewogICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICB0ZXh0LWFsaWduOiBsZWZ0Owp9Ci5SVEwgLk92ZXJ2aWV3IHRoZWFkIHRoLkFnZSB7CiAgICB0ZXh0LWFsaWduOiByaWdodDsKfQovKioKICogQHN1YnNlY3Rpb24gIFRhYmxlIFN0eWxlIEFjdGl2ZQogKi8KCi5JVFNNT3ZlcnZpZXcgdGJvZHkgdHI6YWN0aXZlIHRkIHsKICAgIHBhZGRpbmc6IDdweCA4cHggMnB4OwogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tOwp9Ci5JVFNNT3ZlcnZpZXcgdGJvZHkgdHI6Zm9jdXMgKyB0ciB0ZCwKLklUU01PdmVydmlldyB0Ym9keSB0cjphY3RpdmUgKyB0ciB0ZCB7CiAgICBiYWNrZ3JvdW5kOiBub25lCn0KCn0gLyogZW5kIEBtZWRpYSAqLwo=</File>
        <File Permission="660" Location="var/httpd/htdocs/skins/Customer/default/css/ITSM.ChangeManagement.Default.css" Encode="Base64">LyoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgoqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgRGVmYXVsdCBTZXR0aW5ncwogKi8KCkBtZWRpYSBzY3JlZW4scHJvamVjdGlvbix0dixoYW5kaGVsZCB7CgovKioKICogQHN1YnNlY3Rpb24gIEZsYWcKICovCgouRmxhZyB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vaW1nL2ZsYWdfc2hhZG93LnBuZykgbm8tcmVwZWF0IHNjcm9sbCAwIDA7CiAgICBoZWlnaHQ6IDE4cHg7CiAgICB3aWR0aDogMjRweDsKfQoKLkZsYWcuU21hbGwgewogICAgd2lkdGg6IDE3cHg7CiAgICBoZWlnaHQ6IDEwcHg7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gcmlnaHQ7Cn0KCi5GbGFnIHNwYW4gewogICAgZGlzcGxheTogYmxvY2s7CiAgICBoZWlnaHQ6IDE2cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDJweDsKICAgIHRleHQtaW5kZW50OiAtOTk5OXB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgLyogc2V0IGEgZGVmYXVsdCBjb2xvciBmb3IgcHJpb3JpdGllcyAqLwogICAgYmFja2dyb3VuZC1jb2xvcjogI2NkY2RjZDsKfQoKLkZsYWcuU21hbGwgc3BhbiB7CiAgICBoZWlnaHQ6IDhweDsKfQoKCgp1bC5JVFNNRmxhZyB7CiAgICBtYXJnaW4tdG9wOiA1cHg7Cn0KCnVsLklUU01GbGFnIGRpdi5WYWx1ZSAuRmxhZyB7CiAgICBmbG9hdDogbGVmdDsKICAgIG1hcmdpbi1yaWdodDogNXB4OwogICAgbWFyZ2luLXRvcDogM3B4Owp9CgouSVRTTU92ZXJ2aWV3IC5GbGFnIHsKICAgIHBvc2l0aW9uOiBzdGF0aWM7Cn0KCi5SVEwgZmllbGRzZXQuVGFibGVMaWtlIGRpdi5WYWx1ZSAuRmxhZyB7CiAgICBmbG9hdDogcmlnaHQ7CiAgICBtYXJnaW4tbGVmdDogNXB4Owp9CgouRmxhZyBzcGFuLmdyYXlsZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjojY2RjZGNkOwp9CgouRmxhZyBzcGFuLmdyZWVubGVkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICM4YmVmNGQ7Cn0KCi5GbGFnIHNwYW4ueWVsbG93bGVkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmRkNTA7Cn0KCi5GbGFnIHNwYW4ucmVkbGVkIHsKICAgIGJhY2tncm91bmQtY29sb3I6I2ZmNTA1ZTsKfQoKLkZsYWcgc3Bhbi5wdXJwbGVsZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjojYjIzYWVlOwp9CgouRmxhZyBzcGFuLm9yYW5nZWxlZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmZjhjMDA7Cn0KCi5GbGFnIHNwYW4uY3lhbmxlZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiM3OWNkY2Q7Cn0KCi5GbGFnIHNwYW4ud2hpdGVsZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwp9CgouRmxhZyBzcGFuLmJsYWNrbGVkIHsKICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsKfQoKLyoqCiAqIEBub3RlICAgICBUaGVzZSBjbGFzc2VzIGFyZSB1c2VkIGZvciBhIExhYmVsIGFuZCBhIERpdiB3aXRoIGNsYXNzICdGaWVsZCcsCiAqICAgICAgICAgICB0aGF0IGFyZSBpbnNpZGUgYSBGaWVsZCBEaXYgLgogKi8KCmxhYmVsLlN1YkVsZW1lbnQgewogICAgICAgIG1hcmdpbi1sZWZ0OiAxMCU7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4Owp9CgpkaXYuU3ViRWxlbWVudCB7CiAgICB3aWR0aDozNSU7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiBOb0RvdWJsZUJvcmRlcnMKICovCgouQ29udGVudC5Ob0RvdWJsZUJvcmRlcnMgewogICAgYm9yZGVyLWxlZnQ6IDAgbm9uZSAjMDAwMDAwOwogICAgYm9yZGVyLXJpZ2h0OiAwIG5vbmUgIzAwMDAwMDsKfQoKLyoqCiAqIEBzdWJzZWN0aW9uICBTdGFuZGFyZCBXaWR0aHMKICovCi5XNXBjIHsKICAgIHdpZHRoOiA1JTsKfQoKLlcxNXBjIHsKICAgIHdpZHRoOiAxNSU7Cn0KCi5XMzBwYyB7CiAgICB3aWR0aDogMzAlOwp9Cgp9LyogZW5kIG1lZGlhICovCg==</File>
        <File Permission="660" Location="var/httpd/htdocs/skins/Customer/default/img/flag_shadow.png" Encode="Base64">iVBORw0KGgoAAAANSUhEUgAAABgAAAASBAMAAACzwgOtAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAASUExURf///wAAAAAAAAAAAAAAAAAAAGScwJoAAAAGdFJOUwAKHSZWc59IcHQAAAAfSURBVAhbY2BAAEUkNoMTMid46HBUQuHAiUHIGA4UAaNuCtd5VfraAAAAAElFTkSuQmCC</File>
        <File Permission="660" Location="var/packagesetup/ITSMChangeManagement.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSB2YXI6OnBhY2thZ2VzZXR1cDo6SVRTTUNoYW5nZU1hbmFnZW1lbnQ7ICAgICMjIG5vIGNyaXRpYwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6T3V0cHV0OjpUZW1wbGF0ZTo6UHJvdmlkZXI7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRCJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFsdWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Okhpc3RvcnknLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ2hhbmdlQ0lQQWxsb2NhdGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVN0YXRlTWFjaGluZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Xb3JrT3JkZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpOb3RpZmljYXRpb24nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTdGF0cycsCiAgICAnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OlZhbGlkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6WE1MJywKKTsKCj1oZWFkMSBOQU1FCgp2YXI6OnBhY2thZ2VzZXR1cDo6SVRTTUNoYW5nZU1hbmFnZW1lbnQgLSBjb2RlIHRvIGV4ZWN1dGUgZHVyaW5nIHBhY2thZ2UgaW5zdGFsbGF0aW9uCgo9aGVhZDEgREVTQ1JJUFRJT04KCkZ1bmN0aW9ucyBmb3IgaW5zdGFsbGluZyB0aGUgSVRTTUNoYW5nZU1hbmFnZW1lbnQgcGFja2FnZS4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9Y3V0Cgo9aGVhZDIgbmV3KCkKCkNyZWF0ZSBhbiBvYmplY3QuCgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkQ29kZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ3Zhcjo6cGFja2FnZXNldHVwOjpJVFNNQ2hhbmdlTWFuYWdlbWVudCcpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIEZvcmNlIGEgcmVsb2FkIG9mIFpaWkF1dG8ucG0gYW5kIFpaWkFBdXRvLnBtIHRvIGdldCB0aGUgZnJlc2ggY29uZmlndXJhdGlvbiB2YWx1ZXMuCiAgICBmb3IgbXkgJE1vZHVsZSAoIHNvcnQga2V5cyAlSU5DICkgewogICAgICAgIGlmICggJE1vZHVsZSA9fiBtL1paWkFBP3V0b1wucG0kLyApIHsKICAgICAgICAgICAgZGVsZXRlICRJTkN7JE1vZHVsZX07CiAgICAgICAgfQogICAgfQoKICAgICMgQ3JlYXRlIGNvbW1vbiBvYmplY3RzIHdpdGggZnJlc2ggZGVmYXVsdCBjb25maWcuCiAgICAkS2VybmVsOjpPTS0+T2JqZWN0c0Rpc2NhcmQoKTsKCiAgICAjIGRlZmluZSBVc2VySUQgcGFyYW1ldGVyIGZvciB0aGUgY29uc3RydWN0b3Igb2YgdGhlIHN0YXRzIG9iamVjdAogICAgJEtlcm5lbDo6T00tPk9iamVjdFBhcmFtQWRkKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6U3RhdHMnID0+IHsKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBkZWZpbmUgZmlsZSBwcmVmaXggZm9yIHN0YXRzCiAgICAkU2VsZi0+e0ZpbGVQcmVmaXh9ID0gJ0lUU01TdGF0cyc7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgQ29kZUluc3RhbGwoKQoKUnVuIHRoZSBjb2RlIGluc3RhbGwgcGFydC4KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVJbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZUluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFkZCB0aGUgZ3JvdXAgaXRzbS1jaGFuZ2UKICAgICRTZWxmLT5fR3JvdXBBZGQoCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ2l0c20tY2hhbmdlJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnR3JvdXAgZm9yIElUU00gQ2hhbmdlIG1hc2sgYWNjZXNzIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJywKICAgICk7CgogICAgIyBhZGQgdGhlIGdyb3VwIGl0c20tY2hhbmdlLWJ1aWxkZXIKICAgICRTZWxmLT5fR3JvdXBBZGQoCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ2l0c20tY2hhbmdlLWJ1aWxkZXInLAogICAgICAgIERlc2NyaXB0aW9uID0+ICdHcm91cCBmb3IgSVRTTSBDaGFuZ2UgQnVpbGRlcnMuJywKICAgICk7CgogICAgIyBhZGQgdGhlIGdyb3VwIGl0c20tY2hhbmdlLW1hbmFnZXIKICAgICRTZWxmLT5fR3JvdXBBZGQoCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ2l0c20tY2hhbmdlLW1hbmFnZXInLAogICAgICAgIERlc2NyaXB0aW9uID0+ICdHcm91cCBmb3IgSVRTTSBDaGFuZ2UgTWFuYWdlcnMuJywKICAgICk7CgogICAgIyBpbnN0YWxsIHN0YXRzCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RhdHMnKS0+U3RhdHNJbnN0YWxsKAogICAgICAgIEZpbGVQcmVmaXggPT4gJFNlbGYtPntGaWxlUHJlZml4fSwKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKICAgICMgc2V0IGRlZmF1bHQgQ0lQIG1hdHJpeAogICAgJFNlbGYtPl9DSVBEZWZhdWx0TWF0cml4U2V0KCk7CgogICAgIyBzZXQgZGVmYXVsdCBTdGF0ZU1hY2hpbmUgc2V0dGluZ3MKICAgICRTZWxmLT5fU3RhdGVNYWNoaW5lRGVmYXVsdFNldCgpOwoKICAgICMgYWRkIG5vdGlmaWNhdGlvbnMKICAgICRTZWxmLT5fQWRkTm90aWZpY2F0aW9ucygpOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQ29kZVJlaW5zdGFsbCgpCgpSdW4gdGhlIGNvZGUgcmVpbnN0YWxsIHBhcnQuCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlUmVpbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZVJlaW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWRkIHRoZSBncm91cCBpdHNtLWNoYW5nZQogICAgJFNlbGYtPl9Hcm91cEFkZCgKICAgICAgICBOYW1lICAgICAgICA9PiAnaXRzbS1jaGFuZ2UnLAogICAgICAgIERlc2NyaXB0aW9uID0+ICdHcm91cCBmb3IgSVRTTSBDaGFuZ2UgbWFzayBhY2Nlc3MgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nLAogICAgKTsKCiAgICAjIGFkZCB0aGUgZ3JvdXAgaXRzbS1jaGFuZ2UtYnVpbGRlcgogICAgJFNlbGYtPl9Hcm91cEFkZCgKICAgICAgICBOYW1lICAgICAgICA9PiAnaXRzbS1jaGFuZ2UtYnVpbGRlcicsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0dyb3VwIGZvciBJVFNNIENoYW5nZSBCdWlsZGVycy4nLAogICAgKTsKCiAgICAjIGFkZCB0aGUgZ3JvdXAgaXRzbS1jaGFuZ2UtbWFuYWdlcgogICAgJFNlbGYtPl9Hcm91cEFkZCgKICAgICAgICBOYW1lICAgICAgICA9PiAnaXRzbS1jaGFuZ2UtbWFuYWdlcicsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0dyb3VwIGZvciBJVFNNIENoYW5nZSBNYW5hZ2Vycy4nLAogICAgKTsKCiAgICAjIGluc3RhbGwgc3RhdHMKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTdGF0cycpLT5TdGF0c0luc3RhbGwoCiAgICAgICAgRmlsZVByZWZpeCA9PiAkU2VsZi0+e0ZpbGVQcmVmaXh9LAogICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICk7CgogICAgIyBzZXQgZGVmYXVsdCBDSVAgbWF0cml4ICh0aGlzIGlzIG9ubHkgZG9uZSBpZiBubyBtYXRyaXggZXhpc3RzKQogICAgJFNlbGYtPl9DSVBEZWZhdWx0TWF0cml4U2V0KCk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDb2RlVXBncmFkZSgpCgpSdW4gdGhlIGNvZGUgdXBncmFkZSBwYXJ0LgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGUoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgaW5zdGFsbCBzdGF0cwogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YXRzJyktPlN0YXRzSW5zdGFsbCgKICAgICAgICBGaWxlUHJlZml4ID0+ICRTZWxmLT57RmlsZVByZWZpeH0sCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKCiAgICAjIHNldCBkZWZhdWx0IENJUCBtYXRyaXggKHRoaXMgaXMgb25seSBkb25lIGlmIG5vIG1hdHJpeCBleGlzdHMpCiAgICAkU2VsZi0+X0NJUERlZmF1bHRNYXRyaXhTZXQoKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl8zXzNfOTEoKQoKVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGV4ZWN1dGVkIGlmIHRoZSBpbnN0YWxsZWQgbW9kdWxlIHZlcnNpb24gaXMgc21hbGxlciB0aGFuIDMuMy45MSAoNC4wLjAgQmV0YSAxKS4KCm15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzNfM185MSgpOwoKPWN1dAoKc3ViIENvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl8zXzNfOTEgeyAgICAjIyBubyBjcml0aWMKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBNaWdyYXRlIGNoYW5nZSBhbmQgd29ya29yZGVyIGZyZWV0ZXh0IGZpZWxkcyB0byBkeW5hbWljIGZpZWxkcy4KICAgICRTZWxmLT5fTWlncmF0ZUZyZWVUZXh0VG9EeW5hbWljRmllbGRzKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzIoKQoKVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGV4ZWN1dGVkIGlmIHRoZSBpbnN0YWxsZWQgbW9kdWxlIHZlcnNpb24gaXMgc21hbGxlciB0aGFuIDQuMC4yLgoKbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzIoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzIgeyAgICAjIyBubyBjcml0aWMKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBtaWdyYXRlIHRoZSBEVEwgQ29udGVudCBpbiB0aGUgU3lzQ29uZmlnCiAgICAkU2VsZi0+X01pZ3JhdGVEVExJblN5c0NvbmZpZygpOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzRfMF85MSgpCgpUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZXhlY3V0ZWQgaWYgdGhlIGluc3RhbGxlZCBtb2R1bGUgdmVyc2lvbiBpcyBzbWFsbGVyIHRoYW4gNC4wLjkxICg1LjAuMCBCZXRhIDEpLgoKbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzkxKCk7Cgo9Y3V0CgpzdWIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzRfMF85MSB7ICAgICMjIG5vIGNyaXRpYwogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIG1pZ3JhdGUgbm90aWZpY2F0aW9ucwogICAgJFNlbGYtPl9NaWdyYXRlTm90aWZpY2F0aW9ucygpOwoKICAgICMgY2hhbmdlIGNvbmZpZ3VyYXRpb25zIHRvIG1hdGNoIHRoZSBuZXcgbW9kdWxlIGxvY2F0aW9uLgogICAgJFNlbGYtPl9NaWdyYXRlQ29uZmlncygpOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzVfMF8xMigpCgpUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZXhlY3V0ZWQgaWYgdGhlIGluc3RhbGxlZCBtb2R1bGUgdmVyc2lvbiBpcyBzbWFsbGVyIHRoYW4gNS4wLjEyLgoKbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNV8wXzEyKCk7Cgo9Y3V0CgpzdWIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzVfMF8xMiB7ICAgICMjIG5vIGNyaXRpYwogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoYW5nZSBjb25maWd1cmF0aW9ucyB0byBtYXRjaCBhIG5ldyBKYXZhU2NyaXB0IGZpbGUgbG9jYXRpb24KICAgICRTZWxmLT5fTWlncmF0ZUNvbmZpZ3NGcm9tTG93ZXJUaGFuXzVfMF8xMigpOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQ29kZVVuaW5zdGFsbCgpCgpSdW4gdGhlIGNvZGUgdW5pbnN0YWxsIHBhcnQuCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVW5pbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZVVuaW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVsZXRlIGFsbCBsaW5rcyB3aXRoIGNoYW5nZSBhbmQgd29ya29yZGVyIG9iamVjdHMKICAgICRTZWxmLT5fTGlua0RlbGV0ZSgpOwoKICAgICMgZGVsZXRlIGFsbCBleGlzdGluZyBhdHRhY2htZW50cyBmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycwogICAgJFNlbGYtPl9BdHRhY2htZW50RGVsZXRlKCk7CgogICAgIyBkZWxldGUgYWxsIGR5bmFtaWMgZmllbGRzIGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzCiAgICAkU2VsZi0+X0R5bmFtaWNGaWVsZHNEZWxldGUoKTsKCiAgICAjIGRlYWN0aXZhdGUgdGhlIGdyb3VwIGl0c20tY2hhbmdlCiAgICAkU2VsZi0+X0dyb3VwRGVhY3RpdmF0ZSgKICAgICAgICBOYW1lID0+ICdpdHNtLWNoYW5nZScsCiAgICApOwoKICAgICMgZGVhY3RpdmF0ZSB0aGUgZ3JvdXAgaXRzbS1jaGFuZ2UtYnVpbGRlcgogICAgJFNlbGYtPl9Hcm91cERlYWN0aXZhdGUoCiAgICAgICAgTmFtZSA9PiAnaXRzbS1jaGFuZ2UtYnVpbGRlcicsCiAgICApOwoKICAgICMgZGVhY3RpdmF0ZSB0aGUgZ3JvdXAgaXRzbS1jaGFuZ2UtbWFuYWdlcgogICAgJFNlbGYtPl9Hcm91cERlYWN0aXZhdGUoCiAgICAgICAgTmFtZSA9PiAnaXRzbS1jaGFuZ2UtbWFuYWdlcicsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9YmVnaW4gSW50ZXJuYWw6Cgo9aGVhZDIgX01pZ3JhdGVGcmVlVGV4dFRvRHluYW1pY0ZpZWxkcygpCgpNaWdyYXRlcyB0aGUgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgZnJlZXRleHQgZmllbGRzIHRvIGR5bmFtaWMgZmllbGRzLgoKICAgIG15ICRTdWNjZXNzID0gJFBhY2thZ2VTZXR1cC0+X01pZ3JhdGVGcmVlVGV4dFRvRHluYW1pY0ZpZWxkcygpOwoKPWN1dAoKc3ViIF9NaWdyYXRlRnJlZVRleHRUb0R5bmFtaWNGaWVsZHMgewoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAjIE1pZ3JhdGUgZnJlZWtleSBhbmQgZnJlZXRleHQgZmllbGRzIHRvIGR5bmFtaWMgZmllbGRzIChqdXN0IHRoZSBmaWVsZHMsIHRoZSBkYXRhIGNvbWVzIGxhdGVyKQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CgogICAgIyBnZXQgYWxsIGNvbmZpZ3VyZWQgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgZnJlZWtleSBhbmQgZnJlZXRleHQgbnVtYmVycyBmcm9tIHN5c2NvbmZpZwogICAgbXkgQER5bmFtaWNGaWVsZHM7CiAgICBmb3IgbXkgJFR5cGUgKHF3KENoYW5nZSBXb3JrT3JkZXIpKSB7CgogICAgICAgIEZSRUVURVhUTlVNQkVSOgogICAgICAgIGZvciBteSAkTnVtYmVyICggMSAuLiA1MDAgKSB7CgogICAgICAgICAgICAjIGdldCBmcmVla2V5IGFuZCBmcmVldGV4dCBjb25maWcKICAgICAgICAgICAgbXkgJEZyZWVLZXlDb25maWcgID0gJENvbmZpZ09iamVjdC0+R2V0KCAkVHlwZSAuICdGcmVlS2V5JyAuICROdW1iZXIgKTsKICAgICAgICAgICAgbXkgJEZyZWVUZXh0Q29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCAkVHlwZSAuICdGcmVlVGV4dCcgLiAkTnVtYmVyICk7CgogICAgICAgICAgICAjIG9ubHkgaWYgYSBLRVkgY29uZmlnIGV4aXN0cwogICAgICAgICAgICBuZXh0IEZSRUVURVhUTlVNQkVSIGlmICEkRnJlZUtleUNvbmZpZzsKCiAgICAgICAgICAgICMgZGVmYXVsdCBsYWJlbCwgc2FtZSBsaWtlIHRoZSBuYW1lCiAgICAgICAgICAgIG15ICRMYWJlbCA9ICRUeXBlIC4gJ0ZyZWVUZXh0JyAuICROdW1iZXI7CgogICAgICAgICAgICAjIHRoZSBmcmVla2V5IGhhcyBtb3JlIHRoYW4gb25lIGVudHJ5LCB0aGVuIHdlIHdhbnQgdG8gY3JlYXRlCiAgICAgICAgICAgICMgaXQgYXMgaXQncyBvd24gZHluYW1pYyBmaWVsZAogICAgICAgICAgICBpZiAoIHJlZiAkRnJlZUtleUNvbmZpZyBlcSAnSEFTSCcgJiYgc2NhbGFyIGtleXMgJXskRnJlZUtleUNvbmZpZ30gPiAxICkgewoKICAgICAgICAgICAgICAgICMgZmluZCBvdXQgaWYgcG9zc2libGUgbm9uZSBtdXN0IGJlIHNldCBvciBub3QKICAgICAgICAgICAgICAgIG15ICRQb3NzaWJsZU5vbmUgPSAwOwogICAgICAgICAgICAgICAgaWYgKCAkRnJlZUtleUNvbmZpZy0+eycnfSAmJiAkRnJlZUtleUNvbmZpZy0+eycnfSBlcSAnLScgKSB7CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlICRGcmVlS2V5Q29uZmlnLT57Jyd9OwogICAgICAgICAgICAgICAgICAgICRQb3NzaWJsZU5vbmUgPSAxOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHB1c2ggQER5bmFtaWNGaWVsZHMsIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICRUeXBlIC4gJ0ZyZWVLZXknIC4gJE51bWJlciwKICAgICAgICAgICAgICAgICAgICBMYWJlbCAgICAgID0+ICRUeXBlIC4gJ0ZyZWVLZXknIC4gJE51bWJlciwKICAgICAgICAgICAgICAgICAgICBGaWVsZFR5cGUgID0+ICdEcm9wZG93bicsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0VHlwZSA9PiAnSVRTTScgLiAkVHlwZSwKICAgICAgICAgICAgICAgICAgICBDb25maWcgICAgID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICRDb25maWdPYmplY3QtPkdldCggJFR5cGUgLiAnRnJlZUtleScgLiAkTnVtYmVyIC4gJzo6RGVmYXVsdFNlbGVjdGlvbicgKSB8fCAnJywKICAgICAgICAgICAgICAgICAgICAgICAgTGluayAgICAgICAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gJFBvc3NpYmxlTm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgUG9zc2libGVWYWx1ZXMgICAgID0+ICRGcmVlS2V5Q29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiB0aGUga2V5IGhhcyBvbmx5IG9uZSBwb3NzaWJsZSB2YWx1ZSBmb3IgdGhpcyBlbnRyeSB3ZSB1c2UgaXQgYXMgdGhlIGxhYmVsCiAgICAgICAgICAgICMgYW5kIHdlIGRvIE5PVCBjcmVhdGUgYW4gb3duIEZyZWVLRVkgZmllbGQsIG9ubHkgdGhlIEZyZWVURVhUIGZpZWxkIQogICAgICAgICAgICBlbHNpZiAoIHJlZiAkRnJlZUtleUNvbmZpZyBlcSAnSEFTSCcgJiYgc2NhbGFyIGtleXMgJXskRnJlZUtleUNvbmZpZ30gPT0gMSApIHsKCiAgICAgICAgICAgICAgICAjIGJ1dCB3ZSB0cnkgdG8gdGFrZSB0aGUgb25seSBlbnRyeSBvZiB0aGUgS0VZIGFzIGxhYmVsIQogICAgICAgICAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJXskRnJlZUtleUNvbmZpZ30gKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkRnJlZUtleUNvbmZpZy0+eyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkTGFiZWwgPSAkRnJlZUtleUNvbmZpZy0+eyRLZXl9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBmcmVldGV4dCBjb25maWcgaXMgYSBoYXNoIC0+IHdlIG5lZWQgYSBkcm9wZG93bgogICAgICAgICAgICBpZiAoICRGcmVlVGV4dENvbmZpZyAmJiByZWYgJEZyZWVUZXh0Q29uZmlnIGVxICdIQVNIJyAmJiAleyRGcmVlVGV4dENvbmZpZ30gKSB7CgogICAgICAgICAgICAgICAgIyBmaW5kIG91dCBpZiBwb3NzaWJsZSBub25lIG11c3QgYmUgc2V0IG9yIG5vdAogICAgICAgICAgICAgICAgbXkgJFBvc3NpYmxlTm9uZSA9IDA7CiAgICAgICAgICAgICAgICBpZiAoICRGcmVlVGV4dENvbmZpZy0+eycnfSAmJiAkRnJlZVRleHRDb25maWctPnsnJ30gZXEgJy0nICkgewogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAkRnJlZVRleHRDb25maWctPnsnJ307CiAgICAgICAgICAgICAgICAgICAgJFBvc3NpYmxlTm9uZSA9IDE7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcHVzaCBARHluYW1pY0ZpZWxkcywgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJFR5cGUgLiAnRnJlZVRleHQnIC4gJE51bWJlciwKICAgICAgICAgICAgICAgICAgICBMYWJlbCAgICAgID0+ICRMYWJlbCwKICAgICAgICAgICAgICAgICAgICBGaWVsZFR5cGUgID0+ICdEcm9wZG93bicsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0VHlwZSA9PiAnSVRTTScgLiAkVHlwZSwKICAgICAgICAgICAgICAgICAgICBDb25maWcgICAgID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICRDb25maWdPYmplY3QtPkdldCggJFR5cGUgLiAnRnJlZVRleHQnIC4gJE51bWJlciAuICc6OkRlZmF1bHRTZWxlY3Rpb24nICkgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgIExpbmsgICAgICAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCAkVHlwZSAuICdGcmVlVGV4dCcgLiAkTnVtYmVyIC4gJzo6TGluaycgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAkUG9zc2libGVOb25lLAogICAgICAgICAgICAgICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gJEZyZWVUZXh0Q29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBubyBmcmVldGV4dCBjb25maWcgLT4gd2UgbmVlZCBhIHRleHQgZmllbGQKICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgcHVzaCBARHluYW1pY0ZpZWxkcywgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJFR5cGUgLiAnRnJlZVRleHQnIC4gJE51bWJlciwKICAgICAgICAgICAgICAgICAgICBMYWJlbCAgICAgID0+ICRMYWJlbCwKICAgICAgICAgICAgICAgICAgICBGaWVsZFR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgICAgICAgICBPYmplY3RUeXBlID0+ICdJVFNNJyAuICRUeXBlLAogICAgICAgICAgICAgICAgICAgIENvbmZpZyAgICAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJENvbmZpZ09iamVjdC0+R2V0KCAkVHlwZSAuICdGcmVlVGV4dCcgLiAkTnVtYmVyIC4gJzo6RGVmYXVsdFNlbGVjdGlvbicgKSB8fCAnJywKICAgICAgICAgICAgICAgICAgICAgICAgTGluayAgICAgICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ29uZmlnT2JqZWN0LT5HZXQoICRUeXBlIC4gJ0ZyZWVUZXh0JyAuICROdW1iZXIgLiAnOjpMaW5rJyApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBhbGwgY3VycmVudCBkeW5hbWljIGZpZWxkcwogICAgbXkgJER5bmFtaWNGaWVsZExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CgogICAgIyBnZXQgdGhlIGxpc3Qgb2Ygb3JkZXIgbnVtYmVycyAoaXMgYWxyZWFkeSBzb3J0ZWQpLgogICAgbXkgQER5bmFtaWNmaWVsZE9yZGVyTGlzdDsKICAgIGZvciBteSAkRHluYW1pY2ZpZWxkICggQHskRHluYW1pY0ZpZWxkTGlzdH0gKSB7CiAgICAgICAgcHVzaCBARHluYW1pY2ZpZWxkT3JkZXJMaXN0LCAkRHluYW1pY2ZpZWxkLT57RmllbGRPcmRlcn07CiAgICB9CgogICAgIyBnZXQgdGhlIGxhc3QgZWxlbWVudCBmcm9tIHRoZSBvcmRlciBsaXN0IGFuZCBhZGQgMQogICAgbXkgJE5leHRPcmRlck51bWJlciA9IDE7CiAgICBpZiAoQER5bmFtaWNmaWVsZE9yZGVyTGlzdCkgewogICAgICAgICROZXh0T3JkZXJOdW1iZXIgPSAkRHluYW1pY2ZpZWxkT3JkZXJMaXN0Wy0xXSArIDE7CiAgICB9CgogICAgIyBnZXQgdGhlIHZhbGlkIGlkIGZvciAidmFsaWQiCiAgICBteSAkVmFsaWRJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExvb2t1cCgKICAgICAgICBWYWxpZCA9PiAndmFsaWQnLAogICAgKTsKCiAgICAjIHJlbWVtYmVyIGN1cnJlbnQgc2V0dGluZyBmb3IgZXZlbnQgbW9kdWxlIGNvbmZpZ3VyYXRpb20KICAgIG15ICRFdmVudE1vZHVsZUNvbmZpZyA9ICRDb25maWdPYmplY3QtPnsnRHluYW1pY0ZpZWxkOjpFdmVudE1vZHVsZVBvc3QnfS0+eycxMDAtVXBkYXRlSVRTTUNoYW5nZUNvbmRpdGlvbnMnfTsKCiAgICAjIHRlbXBvcmFyeSBkZWxldGUgZXZlbnQgbW9kdWxlIGNvbmZpZ3VyYXRpb24KICAgIGRlbGV0ZSAkQ29uZmlnT2JqZWN0LT57J0R5bmFtaWNGaWVsZDo6RXZlbnRNb2R1bGVQb3N0J30tPnsnMTAwLVVwZGF0ZUlUU01DaGFuZ2VDb25kaXRpb25zJ307CgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGQgKEBEeW5hbWljRmllbGRzKSB7CgogICAgICAgICMgY3JlYXRlIGEgbmV3IGZpZWxkCiAgICAgICAgbXkgJEZpZWxkSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZEFkZCgKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAkRHluYW1pY0ZpZWxkLT57TmFtZX0sCiAgICAgICAgICAgIExhYmVsICAgICAgPT4gJER5bmFtaWNGaWVsZC0+e0xhYmVsfSwKICAgICAgICAgICAgRmllbGRPcmRlciA9PiAkTmV4dE9yZGVyTnVtYmVyLAogICAgICAgICAgICBGaWVsZFR5cGUgID0+ICREeW5hbWljRmllbGQtPntGaWVsZFR5cGV9LAogICAgICAgICAgICBPYmplY3RUeXBlID0+ICREeW5hbWljRmllbGQtPntPYmplY3RUeXBlfSwKICAgICAgICAgICAgQ29uZmlnICAgICA9PiAkRHluYW1pY0ZpZWxkLT57Q29uZmlnfSwKICAgICAgICAgICAgVmFsaWRJRCAgICA9PiAkVmFsaWRJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISRGaWVsZElEOwoKICAgICAgICAjIGluY3JlYXNlIHRoZSBvcmRlciBudW1iZXIKICAgICAgICAkTmV4dE9yZGVyTnVtYmVyKys7CiAgICB9CgogICAgIyByZS1hY3RpdmF0ZSB0aGUgY29uZmlnIHNldHRpbmcgYWdhaW4KICAgICRDb25maWdPYmplY3QtPnsnRHluYW1pY0ZpZWxkOjpFdmVudE1vZHVsZVBvc3QnfS0+eycxMDAtVXBkYXRlSVRTTUNoYW5nZUNvbmRpdGlvbnMnfSA9ICRFdmVudE1vZHVsZUNvbmZpZzsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBNaWdyYXRlIHRoZSBjaGFuZ2UgYW5kIHdvcmtvcmRlciBkYXRhIGZyb20gZnJlZWtleSBhbmQgZnJlZXRleHQgZmllbGRzIHRvIGR5bmFtaWMgZmllbGRzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICMgZ2V0IHRoZSBsaXN0IG9mIGNoYW5nZSBhbmQgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzCiAgICAkRHluYW1pY0ZpZWxkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSA9PiBbICdJVFNNQ2hhbmdlJywgJ0lUU01Xb3JrT3JkZXInIF0sCiAgICApOwoKICAgICMgbWlncmF0ZSB0aGUgZnJlZWtleSBhbmQgZnJlZXRleHQgZGF0YQogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGQgKCBAeyREeW5hbWljRmllbGRMaXN0fSApIHsKCiAgICAgICAgIyBnZXQgdGhlIHRhYmxlIHByZWZpeCBhbmQgY29sdW1uIG5hbWUgYmFzZWQgb24gY2hhbmdlIG9yIHdvcmtvcmRlcgogICAgICAgIG15ICRUYWJsZVByZWZpeDsKICAgICAgICBteSAkQ29sdW1uTmFtZTsKICAgICAgICBpZiAoICREeW5hbWljRmllbGQtPntPYmplY3RUeXBlfSBlcSAnSVRTTUNoYW5nZScgKSB7CiAgICAgICAgICAgICRUYWJsZVByZWZpeCA9ICdjaGFuZ2VfZnJlZSc7CiAgICAgICAgICAgICRDb2x1bW5OYW1lICA9ICdjaGFuZ2VfaWQnOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICREeW5hbWljRmllbGQtPntPYmplY3RUeXBlfSBlcSAnSVRTTVdvcmtPcmRlcicgKSB7CiAgICAgICAgICAgICRUYWJsZVByZWZpeCA9ICdjaGFuZ2Vfd29fZnJlZSc7CiAgICAgICAgICAgICRDb2x1bW5OYW1lICA9ICd3b3Jrb3JkZXJfaWQnOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgdGhlIHR5cGUgKGtleSBvciB0ZXh0KSBhbmQgdGhlIG51bWJlciBmcm9tIHRoZSBuYW1lCiAgICAgICAgbXkgJE51bWJlcjsKICAgICAgICBteSAkVGFibGVOYW1lOwogICAgICAgIGlmICggJER5bmFtaWNGaWVsZC0+e05hbWV9ID1+IG17IFxBIChDaGFuZ2V8V29ya09yZGVyKUZyZWUoS2V5fFRleHQpKFxkKykgXHogfXhtcyApIHsKICAgICAgICAgICAgJFRhYmxlTmFtZSA9ICRUYWJsZVByZWZpeCAuIGxjKCQyKTsKICAgICAgICAgICAgJE51bWJlciAgICA9ICQzOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQ7CiAgICAgICAgfQoKICAgICAgICAjIGdldCB0aGUgb2xkIGRhdGEKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAiU0VMRUNUICRDb2x1bW5OYW1lLCBmaWVsZF92YWx1ZQogICAgICAgICAgICAgICAgICAgIEZST00gJFRhYmxlTmFtZQogICAgICAgICAgICAgICAgICAgIFdIRVJFIGZpZWxkX2lkID0gPyIsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJE51bWJlciBdLAogICAgICAgICk7CgogICAgICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgICAgIG15IEBEYXRhOwogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgIHB1c2ggQERhdGEsIHsKICAgICAgICAgICAgICAgIE9iamVjdElEID0+ICRSb3dbMF0sCiAgICAgICAgICAgICAgICBWYWx1ZSAgICA9PiAkUm93WzFdLAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgIyBpbnNlcnQgZGF0YSBpbnRvIGR5bmFtaWNfZmllbGRfdmFsdWUgdGFibGUKICAgICAgICBSRUNPUkQ6CiAgICAgICAgZm9yIG15ICRSZWNvcmQgKEBEYXRhKSB7CgogICAgICAgICAgICBuZXh0IFJFQ09SRCBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgICAgICAgICAgU1FMID0+ICdJTlNFUlQgSU5UTyBkeW5hbWljX2ZpZWxkX3ZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgIChmaWVsZF9pZCwgb2JqZWN0X2lkLCB2YWx1ZV90ZXh0KQogICAgICAgICAgICAgICAgICAgICAgICBWQUxVRVMgKD8sID8sID8pJywKICAgICAgICAgICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICAgICAgICAgIFwkRHluYW1pY0ZpZWxkLT57SUR9LAogICAgICAgICAgICAgICAgICAgIFwkUmVjb3JkLT57T2JqZWN0SUR9LAogICAgICAgICAgICAgICAgICAgIFwkUmVjb3JkLT57VmFsdWV9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICMgRGVsZXRlIG9ic29sZXRlIGZyZWVrZXkgYW5kIGZyZWV0ZXh0IGZpZWxkIGF0dHJpYnV0ZXMgZnJvbSBjb25kaXRpb25zCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICMgYnVpbGQgYSBsb29rdXAgaGFzaCBmb3IgYWxsIG5ldyBjcmVhdGVkIGNoYW5nZSBhbmQgd29ya29yZGVyIGR5bmFtaWMgZmllbGRzCiAgICBteSAlRHluYW1pY0ZpZWxkTmFtZTsKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkIChARHluYW1pY0ZpZWxkcykgewogICAgICAgICREeW5hbWljRmllbGROYW1leyAkRHluYW1pY0ZpZWxkLT57TmFtZX0gfSA9IDE7CiAgICB9CgogICAgIyBnZXQgYWxsIGNvbmRpdGlvbiBhdHRyaWJ1dGVzCiAgICBteSAkQ29uZGl0aW9uQXR0cmlidXRlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ29uZGl0aW9uJyktPkF0dHJpYnV0ZUxpc3QoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgICMgcmV2ZXJzZSB0aGUgbGlzdCB0byBsb29rdXAgYXR0cmlidXRlIG5hbWVzCiAgICBteSAlQXR0cmlidXRlMklEID0gcmV2ZXJzZSAleyRDb25kaXRpb25BdHRyaWJ1dGVzfTsKCiAgICBBVFRSSUJVVEU6CiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAlQXR0cmlidXRlMklEICkgewoKICAgICAgICAjIHdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gb2xkIGNoYW5nZSBhbmQgd29ya29yZGVyIGZyZWVrZXkgYW5kIGZyZWV0ZXh0IGF0dHJpYnV0ZXMKICAgICAgICBuZXh0IEFUVFJJQlVURSBpZiAkQXR0cmlidXRlICF+IG17IFxBIChDaGFuZ2V8V29ya09yZGVyKUZyZWUoS2V5fFRleHQpKFxkKykgXHogfXhtczsKCiAgICAgICAgIyByZW5hbWUgdGhlIGF0dHJpYnV0ZSAoYWRkIGEgcHJlZml4IHRvIHRoZSBhdHRyaWJ1dGUpCiAgICAgICAgaWYgKCAkRHluYW1pY0ZpZWxkTmFtZXskQXR0cmlidXRlfSApIHsKCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6OklUU01Db25kaXRpb24nKS0+QXR0cmlidXRlVXBkYXRlKAogICAgICAgICAgICAgICAgQXR0cmlidXRlSUQgPT4gJEF0dHJpYnV0ZTJJRHskQXR0cmlidXRlfSwKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICdEeW5hbWljRmllbGRfJyAuICRBdHRyaWJ1dGUsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyB0aGlzIGF0dHJpYnV0ZSBkb2VzIG5vdCBleGlzdCBhcyBkeW5hbWljIGZpZWxkCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGRlbGV0ZSB0aGlzIGF0dHJpYnV0ZSBmcm9tIGV4cHJlc3Npb24gdGFibGUKICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICAgICAgICAgIFNRTCA9PiAnREVMRVRFIEZST00gY29uZGl0aW9uX2V4cHJlc3Npb24KICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgYXR0cmlidXRlX2lkID0gPycsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgICAgICAgICBcJEF0dHJpYnV0ZTJJRHskQXR0cmlidXRlfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGRlbGV0ZSB0aGlzIGF0dHJpYnV0ZSBmcm9tIGFjdGlvbiB0YWJsZQogICAgICAgICAgICBuZXh0IEFUVFJJQlVURSBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgICAgICAgICAgU1FMID0+ICdERUxFVEUgRlJPTSBjb25kaXRpb25fYWN0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGF0dHJpYnV0ZV9pZCA9ID8nLAogICAgICAgICAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgICAgICAgICAgXCRBdHRyaWJ1dGUySUR7JEF0dHJpYnV0ZX0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBkZWxldGUgdGhpcyBhdHRyaWJ1dGUgZnJvbSBhdHRyaWJ1dGUgdGFibGUKICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICAgICAgICAgIFNRTCA9PiAnREVMRVRFIEZST00gY29uZGl0aW9uX2F0dHJpYnV0ZQogICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgICAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgICAgICAgICAgXCRBdHRyaWJ1dGUySUR7JEF0dHJpYnV0ZX0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBNaWdyYXRlIGZyZWV0ZXh0IHNjcmVlbiBjb25maWcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBteSBATmV3U2V0dGluZ3M7CgogICAgIyBtaWdyYXRlIGNoYW5nZSBmcmVldGV4dCBmcm9udGVuZCBjb25maWcKICAgIENPTkZJR05BTUU6CiAgICBmb3IgbXkgJENvbmZpZ05hbWUgKAogICAgICAgIHF3KAogICAgICAgIElUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VBZGQKICAgICAgICBJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNQ2hhbmdlRWRpdAogICAgICAgIElUU01DaGFuZ2U6OkZyb250ZW5kOjpBZ2VudElUU01DaGFuZ2VTZWFyY2gKICAgICAgICBJVFNNQ2hhbmdlOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyQWRkCiAgICAgICAgSVRTTVdvcmtPcmRlcjo6RnJvbnRlbmQ6OkFnZW50SVRTTVdvcmtPcmRlckVkaXQKICAgICAgICBJVFNNV29ya09yZGVyOjpGcm9udGVuZDo6QWdlbnRJVFNNV29ya09yZGVyUmVwb3J0CiAgICAgICAgKQogICAgICAgICkKICAgIHsKCiAgICAgICAgbXkgJEZpZWxkVHlwZTsKICAgICAgICBteSAkQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCRDb25maWdOYW1lKTsKICAgICAgICBpZiAoICRDb25maWdOYW1lID1+IG17IEFnZW50SVRTTVdvcmtPcmRlciB9eG1zICkgewogICAgICAgICAgICAkRmllbGRUeXBlID0gJ1dvcmtPcmRlckZyZWVUZXh0JzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRGaWVsZFR5cGUgPSAnQ2hhbmdlRnJlZVRleHQnOwogICAgICAgIH0KICAgICAgICAkQ29uZmlnID0gJENvbmZpZy0+eyRGaWVsZFR5cGV9OwoKICAgICAgICBteSAlU2V0dGluZ05ldzsKICAgICAgICBOVU1CRVI6CiAgICAgICAgZm9yIG15ICROdW1iZXIgKCBzb3J0IGtleXMgJXskQ29uZmlnfSApIHsKCiAgICAgICAgICAgIG15ICRWYWx1ZSA9ICRDb25maWctPnskTnVtYmVyfTsKCiAgICAgICAgICAgIG5leHQgTlVNQkVSIGlmICEkVmFsdWU7CgogICAgICAgICAgICAkU2V0dGluZ05ld3sgJEZpZWxkVHlwZSAuICROdW1iZXIgfSA9ICRWYWx1ZTsKICAgICAgICB9CgogICAgICAgIG5leHQgQ09ORklHTkFNRSBpZiAhJVNldHRpbmdOZXc7CgogICAgICAgICMgQnVpbGQgbmV3IHNldHRpbmcuCiAgICAgICAgcHVzaCBATmV3U2V0dGluZ3MsIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJENvbmZpZ05hbWUgLiAnIyMjRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gXCVTZXR0aW5nTmV3LAogICAgICAgIH07CiAgICB9CgogICAgbXkgJUNoYW5nZUR5bmFtaWNGaWVsZENvbmZpZzsKICAgIG15ICVXb3Jrb3JkZXJEeW5hbWljRmllbGRDb25maWc7CgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGQgKCBAeyREeW5hbWljRmllbGRMaXN0fSApIHsKCiAgICAgICAgaWYgKCAkRHluYW1pY0ZpZWxkLT57T2JqZWN0VHlwZX0gZXEgJ0lUU01DaGFuZ2UnICkgewogICAgICAgICAgICAkQ2hhbmdlRHluYW1pY0ZpZWxkQ29uZmlneyAkRHluYW1pY0ZpZWxkLT57TmFtZX0gfSA9IDE7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJER5bmFtaWNGaWVsZC0+e09iamVjdFR5cGV9IGVxICdJVFNNV29ya09yZGVyJyApIHsKICAgICAgICAgICAgJFdvcmtvcmRlckR5bmFtaWNGaWVsZENvbmZpZ3sgJER5bmFtaWNGaWVsZC0+e05hbWV9IH0gPSAxOwogICAgICAgIH0KICAgIH0KCiAgICAjIEJ1aWxkIG5ldyBzZXR0aW5nLgogICAgcHVzaCBATmV3U2V0dGluZ3MsIHsKICAgICAgICBOYW1lICAgICAgICAgICA9PiAnSVRTTUNoYW5nZTo6RnJvbnRlbmQ6OkFnZW50SVRTTUNoYW5nZVpvb20jIyNEeW5hbWljRmllbGQnLAogICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+IFwlQ2hhbmdlRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgfTsKCiAgICAjIEJ1aWxkIG5ldyBzZXR0aW5nLgogICAgcHVzaCBATmV3U2V0dGluZ3MsIHsKICAgICAgICBOYW1lICAgICAgICAgICA9PiAnSVRTTVdvcmtPcmRlcjo6RnJvbnRlbmQ6OkFnZW50SVRTTVdvcmtPcmRlclpvb20jIyNEeW5hbWljRmllbGQnLAogICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+IFwlV29ya29yZGVyRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgfTsKCiAgICAjIFdyaXRlIG5ldyBzZXR0aW5nLgogICAgJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ3NTZXQoCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICBDb21tZW50cyA9PiAnSVRTTUNoYW5nZU1hbmFnZW1lbnQgLSBwYWNrYWdlIHNldHVwIGZ1bmN0aW9uOiBfTWlncmF0ZUZyZWVUZXh0VG9EeW5hbWljRmllbGRzJywKICAgICAgICBTZXR0aW5ncyA9PiBcQE5ld1NldHRpbmdzLAogICAgKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBEZWxldGUgY2hhbmdlIGFuZCB3b3Jrb3JkZXIgZnJlZWtleSBhbmQgZnJlZXRleHQgdGFibGVzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgbXkgQERyb3AgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+U1FMUHJvY2Vzc29yKAogICAgICAgIERhdGFiYXNlID0+IFsKCiAgICAgICAgICAgICMgZHJvcCB0YWJsZSBjaGFuZ2VfZnJlZWtleQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWcgICAgID0+ICdUYWJsZURyb3AnLAogICAgICAgICAgICAgICAgTmFtZSAgICA9PiAnY2hhbmdlX2ZyZWVrZXknLAogICAgICAgICAgICAgICAgVGFnVHlwZSA9PiAnU3RhcnQnLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWcgICAgID0+ICdUYWJsZURyb3AnLAogICAgICAgICAgICAgICAgVGFnVHlwZSA9PiAnRW5kJywKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICMgZHJvcCB0YWJsZSBjaGFuZ2VfZnJlZXRleHQKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFnICAgICA9PiAnVGFibGVEcm9wJywKICAgICAgICAgICAgICAgIE5hbWUgICAgPT4gJ2NoYW5nZV9mcmVldGV4dCcsCiAgICAgICAgICAgICAgICBUYWdUeXBlID0+ICdTdGFydCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhZyAgICAgPT4gJ1RhYmxlRHJvcCcsCiAgICAgICAgICAgICAgICBUYWdUeXBlID0+ICdFbmQnLAogICAgICAgICAgICB9LAoKICAgICAgICAgICAgIyBkcm9wIHRhYmxlIGNoYW5nZV93b19mcmVla2V5CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhZyAgICAgPT4gJ1RhYmxlRHJvcCcsCiAgICAgICAgICAgICAgICBOYW1lICAgID0+ICdjaGFuZ2Vfd29fZnJlZWtleScsCiAgICAgICAgICAgICAgICBUYWdUeXBlID0+ICdTdGFydCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhZyAgICAgPT4gJ1RhYmxlRHJvcCcsCiAgICAgICAgICAgICAgICBUYWdUeXBlID0+ICdFbmQnLAogICAgICAgICAgICB9LAoKICAgICAgICAgICAgIyBkcm9wIHRhYmxlIGNoYW5nZV93b19mcmVldGV4dAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWcgICAgID0+ICdUYWJsZURyb3AnLAogICAgICAgICAgICAgICAgTmFtZSAgICA9PiAnY2hhbmdlX3dvX2ZyZWV0ZXh0JywKICAgICAgICAgICAgICAgIFRhZ1R5cGUgPT4gJ1N0YXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFnICAgICA9PiAnVGFibGVEcm9wJywKICAgICAgICAgICAgICAgIFRhZ1R5cGUgPT4gJ0VuZCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICk7CgogICAgZm9yIG15ICRTUUwgKEBEcm9wKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgICAgICBTUUwgPT4gJFNRTCwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX0dyb3VwQWRkKCkKCkFkZCBhIGdyb3VwLgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0dyb3VwQWRkKAogICAgICAgIE5hbWUgICAgICAgID0+ICd0aGUtZ3JvdXAtbmFtZScsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1RoZSBncm91cCBkZXNjcmlwdGlvbi4nLAogICAgKTsKCj1jdXQKCnN1YiBfR3JvdXBBZGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoTmFtZSBEZXNjcmlwdGlvbikpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgdmFsaWQgbGlzdAogICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwogICAgbXkgJVZhbGlkTGlzdFJldmVyc2UgPSByZXZlcnNlICVWYWxpZExpc3Q7CgogICAgIyBnZXQgbGlzdCBvZiBhbGwgZ3JvdXBzCiAgICBteSAlR3JvdXBMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTGlzdCgpOwoKICAgICMgcmV2ZXJzZSB0aGUgZ3JvdXAgbGlzdCBmb3IgZWFzaWVyIGxvb2t1cAogICAgbXkgJUdyb3VwTGlzdFJldmVyc2UgPSByZXZlcnNlICVHcm91cExpc3Q7CgogICAgIyBjaGVjayBpZiBncm91cCBhbHJlYWR5IGV4aXN0cwogICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBMaXN0UmV2ZXJzZXsgJFBhcmFte05hbWV9IH07CgogICAgIyByZWFjdGl2YXRlIHRoZSBncm91cAogICAgaWYgKCRHcm91cElEKSB7CgogICAgICAgICMgZ2V0IGN1cnJlbnQgZ3JvdXAgZGF0YQogICAgICAgIG15ICVHcm91cERhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBHZXQoCiAgICAgICAgICAgIElEICAgICA9PiAkR3JvdXBJRCwKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyByZWFjdGl2YXRlIGdyb3VwCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwVXBkYXRlKAogICAgICAgICAgICAlR3JvdXBEYXRhLAogICAgICAgICAgICBWYWxpZElEID0+ICRWYWxpZExpc3RSZXZlcnNle3ZhbGlkfSwKICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgYWRkIHRoZSBncm91cAogICAgZWxzZSB7CiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBBZGQoCiAgICAgICAgICAgIE5hbWUgICAgPT4gJFBhcmFte05hbWV9LAogICAgICAgICAgICBDb21tZW50ID0+ICRQYXJhbXtEZXNjcmlwdGlvbn0sCiAgICAgICAgICAgIFZhbGlkSUQgPT4gJFZhbGlkTGlzdFJldmVyc2V7dmFsaWR9LAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGxvb2t1cCB0aGUgbmV3IGdyb3VwIGlkCiAgICBteSAkTmV3R3JvdXBJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cExvb2t1cCgKICAgICAgICBHcm91cCAgPT4gJFBhcmFte05hbWV9LAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICAjIGFkZCB1c2VyIHJvb3QgdG8gdGhlIGdyb3VwCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBNZW1iZXJBZGQoCiAgICAgICAgR0lEICAgICAgICA9PiAkTmV3R3JvdXBJRCwKICAgICAgICBVSUQgICAgICAgID0+IDEsCiAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgIHJvICAgICAgICA9PiAxLAogICAgICAgICAgICBtb3ZlX2ludG8gPT4gMSwKICAgICAgICAgICAgY3JlYXRlICAgID0+IDEsCiAgICAgICAgICAgIG93bmVyICAgICA9PiAxLAogICAgICAgICAgICBwcmlvcml0eSAgPT4gMSwKICAgICAgICAgICAgcncgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfR3JvdXBEZWFjdGl2YXRlKCkKCkRlYWN0aXZhdGUgYSBncm91cC4KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9Hcm91cERlYWN0aXZhdGUoCiAgICAgICAgTmFtZSA9PiAndGhlLWdyb3VwLW5hbWUnLAogICAgKTsKCj1jdXQKCnN1YiBfR3JvdXBEZWFjdGl2YXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtOYW1lfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTmFtZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgbG9va3VwIGdyb3VwIGlkCiAgICBteSAkR3JvdXBJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cExvb2t1cCgKICAgICAgICBHcm91cCA9PiAkUGFyYW17TmFtZX0sCiAgICApOwoKICAgIHJldHVybiBpZiAhJEdyb3VwSUQ7CgogICAgIyBnZXQgdmFsaWQgbGlzdAogICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwogICAgbXkgJVZhbGlkTGlzdFJldmVyc2UgPSByZXZlcnNlICVWYWxpZExpc3Q7CgogICAgIyBnZXQgY3VycmVudCBncm91cCBkYXRhCiAgICBteSAlR3JvdXBEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwR2V0KAogICAgICAgIElEICAgICA9PiAkR3JvdXBJRCwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgIyBkZWFjdGl2YXRlIGdyb3VwCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBVcGRhdGUoCiAgICAgICAgJUdyb3VwRGF0YSwKICAgICAgICBWYWxpZElEID0+ICRWYWxpZExpc3RSZXZlcnNle2ludmFsaWR9LAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfQ0lQRGVmYXVsdE1hdHJpeFNldCgpCgpTZXQgdGhlIGRlZmF1bHQgQ0lQIG1hdHJpeC4KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9DSVBEZWZhdWx0TWF0cml4U2V0KCk7Cgo9Y3V0CgpzdWIgX0NJUERlZmF1bHRNYXRyaXhTZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjdXJyZW50IGFsbG9jYXRpb24gbGlzdAogICAgbXkgJExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTUNoYW5nZUNJUEFsbG9jYXRlJyktPkFsbG9jYXRlTGlzdCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkTGlzdDsKICAgIHJldHVybiBpZiByZWYgJExpc3QgbmUgJ0hBU0gnOwoKICAgICMgc2V0IG5vIG1hdHJpeCBpZiBhbHJlYWR5IGRlZmluZWQKICAgIHJldHVybiBpZiAleyRMaXN0fTsKCiAgICAjIGRlZmluZSB0aGUgYWxsb2NhdGlvbnMKICAgICMgJEFsbG9jYXRpb257SW1wYWN0fS0+e0NhdGVnb3J5fSA9IFByaW9yaXR5CiAgICBteSAlQWxsb2NhdGlvbjsKICAgICRBbGxvY2F0aW9ueycxIHZlcnkgbG93J30tPnsnMSB2ZXJ5IGxvdyd9ICAgPSAnMSB2ZXJ5IGxvdyc7CiAgICAkQWxsb2NhdGlvbnsnMSB2ZXJ5IGxvdyd9LT57JzIgbG93J30gICAgICAgID0gJzEgdmVyeSBsb3cnOwogICAgJEFsbG9jYXRpb257JzEgdmVyeSBsb3cnfS0+eyczIG5vcm1hbCd9ICAgICA9ICcyIGxvdyc7CiAgICAkQWxsb2NhdGlvbnsnMSB2ZXJ5IGxvdyd9LT57JzQgaGlnaCd9ICAgICAgID0gJzIgbG93JzsKICAgICRBbGxvY2F0aW9ueycxIHZlcnkgbG93J30tPnsnNSB2ZXJ5IGhpZ2gnfSAgPSAnMyBub3JtYWwnOwogICAgJEFsbG9jYXRpb257JzIgbG93J30tPnsnMSB2ZXJ5IGxvdyd9ICAgICAgICA9ICcxIHZlcnkgbG93JzsKICAgICRBbGxvY2F0aW9ueycyIGxvdyd9LT57JzIgbG93J30gICAgICAgICAgICAgPSAnMiBsb3cnOwogICAgJEFsbG9jYXRpb257JzIgbG93J30tPnsnMyBub3JtYWwnfSAgICAgICAgICA9ICcyIGxvdyc7CiAgICAkQWxsb2NhdGlvbnsnMiBsb3cnfS0+eyc0IGhpZ2gnfSAgICAgICAgICAgID0gJzMgbm9ybWFsJzsKICAgICRBbGxvY2F0aW9ueycyIGxvdyd9LT57JzUgdmVyeSBoaWdoJ30gICAgICAgPSAnNCBoaWdoJzsKICAgICRBbGxvY2F0aW9ueyczIG5vcm1hbCd9LT57JzEgdmVyeSBsb3cnfSAgICAgPSAnMiBsb3cnOwogICAgJEFsbG9jYXRpb257JzMgbm9ybWFsJ30tPnsnMiBsb3cnfSAgICAgICAgICA9ICcyIGxvdyc7CiAgICAkQWxsb2NhdGlvbnsnMyBub3JtYWwnfS0+eyczIG5vcm1hbCd9ICAgICAgID0gJzMgbm9ybWFsJzsKICAgICRBbGxvY2F0aW9ueyczIG5vcm1hbCd9LT57JzQgaGlnaCd9ICAgICAgICAgPSAnNCBoaWdoJzsKICAgICRBbGxvY2F0aW9ueyczIG5vcm1hbCd9LT57JzUgdmVyeSBoaWdoJ30gICAgPSAnNCBoaWdoJzsKICAgICRBbGxvY2F0aW9ueyc0IGhpZ2gnfS0+eycxIHZlcnkgbG93J30gICAgICAgPSAnMiBsb3cnOwogICAgJEFsbG9jYXRpb257JzQgaGlnaCd9LT57JzIgbG93J30gICAgICAgICAgICA9ICczIG5vcm1hbCc7CiAgICAkQWxsb2NhdGlvbnsnNCBoaWdoJ30tPnsnMyBub3JtYWwnfSAgICAgICAgID0gJzQgaGlnaCc7CiAgICAkQWxsb2NhdGlvbnsnNCBoaWdoJ30tPnsnNCBoaWdoJ30gICAgICAgICAgID0gJzQgaGlnaCc7CiAgICAkQWxsb2NhdGlvbnsnNCBoaWdoJ30tPnsnNSB2ZXJ5IGhpZ2gnfSAgICAgID0gJzUgdmVyeSBoaWdoJzsKICAgICRBbGxvY2F0aW9ueyc1IHZlcnkgaGlnaCd9LT57JzEgdmVyeSBsb3cnfSAgPSAnMyBub3JtYWwnOwogICAgJEFsbG9jYXRpb257JzUgdmVyeSBoaWdoJ30tPnsnMiBsb3cnfSAgICAgICA9ICc0IGhpZ2gnOwogICAgJEFsbG9jYXRpb257JzUgdmVyeSBoaWdoJ30tPnsnMyBub3JtYWwnfSAgICA9ICc0IGhpZ2gnOwogICAgJEFsbG9jYXRpb257JzUgdmVyeSBoaWdoJ30tPnsnNCBoaWdoJ30gICAgICA9ICc1IHZlcnkgaGlnaCc7CiAgICAkQWxsb2NhdGlvbnsnNSB2ZXJ5IGhpZ2gnfS0+eyc1IHZlcnkgaGlnaCd9ID0gJzUgdmVyeSBoaWdoJzsKCiAgICAjIGdldCBpbXBhY3QgbGlzdAogICAgbXkgJEltcGFjdExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJhbENhdGFsb2cnKS0+SXRlbUxpc3QoCiAgICAgICAgQ2xhc3MgPT4gJ0lUU006OkNoYW5nZU1hbmFnZW1lbnQ6OkltcGFjdCcsCiAgICApOwogICAgbXkgJUltcGFjdExpc3RSZXZlcnNlID0gcmV2ZXJzZSAleyRJbXBhY3RMaXN0fTsKCiAgICAjIGdldCBjYXRlZ29yeSBsaXN0CiAgICBteSAkQ2F0ZWdvcnlMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1MaXN0KAogICAgICAgIENsYXNzID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDYXRlZ29yeScsCiAgICApOwogICAgbXkgJUNhdGVnb3J5TGlzdFJldmVyc2UgPSByZXZlcnNlICV7JENhdGVnb3J5TGlzdH07CgogICAgIyBnZXQgcHJpb3JpdHkgbGlzdAogICAgbXkgJFByaW9yaXR5TGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmFsQ2F0YWxvZycpLT5JdGVtTGlzdCgKICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6UHJpb3JpdHknLAogICAgKTsKICAgIG15ICVQcmlvcml0eUxpc3RSZXZlcnNlID0gcmV2ZXJzZSAleyRQcmlvcml0eUxpc3R9OwoKICAgICMgY3JlYXRlIHRoZSBhbGxvY2F0aW9uIG1hdHJpeAogICAgbXkgJUFsbG9jYXRpb25NYXRyaXg7CiAgICBJTVBBQ1Q6CiAgICBmb3IgbXkgJEltcGFjdCAoIHNvcnQga2V5cyAlQWxsb2NhdGlvbiApIHsKCiAgICAgICAgbmV4dCBJTVBBQ1QgaWYgISRJbXBhY3RMaXN0UmV2ZXJzZXskSW1wYWN0fTsKCiAgICAgICAgIyBleHRyYWN0IGltcGFjdCBpZAogICAgICAgIG15ICRJbXBhY3RJRCA9ICRJbXBhY3RMaXN0UmV2ZXJzZXskSW1wYWN0fTsKCiAgICAgICAgQ0FURUdPUlk6CiAgICAgICAgZm9yIG15ICRDYXRlZ29yeSAoIHNvcnQga2V5cyAleyAkQWxsb2NhdGlvbnskSW1wYWN0fSB9ICkgewoKICAgICAgICAgICAgbmV4dCBDQVRFR09SWSBpZiAhJENhdGVnb3J5TGlzdFJldmVyc2V7JENhdGVnb3J5fTsKCiAgICAgICAgICAgICMgZXh0cmFjdCBwcmlvcml0eQogICAgICAgICAgICBteSAkUHJpb3JpdHkgPSAkQWxsb2NhdGlvbnskSW1wYWN0fS0+eyRDYXRlZ29yeX07CgogICAgICAgICAgICBuZXh0IENBVEVHT1JZIGlmICEkUHJpb3JpdHlMaXN0UmV2ZXJzZXskUHJpb3JpdHl9OwoKICAgICAgICAgICAgIyBleHRyYWN0IGNyaXRpY2FsaXR5IGlkIGFuZCBwcmlvcml0eSBpZAogICAgICAgICAgICBteSAkQ2F0ZWdvcnlJRCA9ICRDYXRlZ29yeUxpc3RSZXZlcnNleyRDYXRlZ29yeX07CiAgICAgICAgICAgIG15ICRQcmlvcml0eUlEID0gJFByaW9yaXR5TGlzdFJldmVyc2V7JFByaW9yaXR5fTsKCiAgICAgICAgICAgICRBbGxvY2F0aW9uTWF0cml4eyRJbXBhY3RJRH0tPnskQ2F0ZWdvcnlJRH0gPSAkUHJpb3JpdHlJRDsKICAgICAgICB9CiAgICB9CgogICAgIyBzYXZlIHRoZSBtYXRyaXgKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNQ2hhbmdlQ0lQQWxsb2NhdGUnKS0+QWxsb2NhdGVVcGRhdGUoCiAgICAgICAgQWxsb2NhdGVEYXRhID0+IFwlQWxsb2NhdGlvbk1hdHJpeCwKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfU3RhdGVNYWNoaW5lRGVmYXVsdFNldCgpCgpTZXQgdGhlIGRlZmF1bHQgc3RhdGUgbWFjaGluZS4KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9TdGF0ZU1hY2hpbmVEZWZhdWx0U2V0KCk7Cgo9Y3V0CgpzdWIgX1N0YXRlTWFjaGluZURlZmF1bHRTZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgY2hhbmdlIHN0YXRlcyBmcm9tIHRoZSBnZW5lcmFsIGNhdGFsb2cKICAgIG15ICVOYW1lMkNoYW5nZVN0YXRlSUQgPSByZXZlcnNlICV7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1MaXN0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6Q2hhbmdlOjpTdGF0ZScsCiAgICAgICAgKQogICAgfTsKCiAgICAjIGdldCB0aGUgd29ya29yZGVyIHN0YXRlcyBmcm9tIHRoZSBnZW5lcmFsIGNhdGFsb2cKICAgIG15ICVOYW1lMldvcmtPcmRlclN0YXRlSUQgPSByZXZlcnNlICV7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyYWxDYXRhbG9nJyktPkl0ZW1MaXN0KAogICAgICAgICAgICBDbGFzcyA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpTdGF0ZScsCiAgICAgICAgKQogICAgfTsKCiAgICAjIGRlZmluZSBDaGFuZ2VTdGF0ZSB0cmFuc2l0aW9ucwogICAgbXkgJUNoYW5nZVN0YXRlVHJhbnNpdGlvbnMgPSAoCiAgICAgICAgMCAgICAgICAgICAgICAgICAgID0+IFsncmVxdWVzdGVkJ10sCiAgICAgICAgJ3JlcXVlc3RlZCcgICAgICAgID0+IFsgJ3JlamVjdGVkJywgICAgJ3JldHJhY3RlZCcsICdwZW5kaW5nIGFwcHJvdmFsJywgJ2luIHByb2dyZXNzJyBdLAogICAgICAgICdwZW5kaW5nIGFwcHJvdmFsJyA9PiBbICdyZWplY3RlZCcsICAgICdyZXRyYWN0ZWQnLCAnYXBwcm92ZWQnIF0sCiAgICAgICAgJ2FwcHJvdmVkJyAgICAgICAgID0+IFsgJ3JldHJhY3RlZCcsICAgJ2luIHByb2dyZXNzJyBdLAogICAgICAgICdpbiBwcm9ncmVzcycgICAgICA9PiBbICdwZW5kaW5nIHBpcicsICdyZXRyYWN0ZWQnLCAnZmFpbGVkJywgJ3N1Y2Nlc3NmdWwnLCAnY2FuY2VsZWQnIF0sCiAgICAgICAgJ3BlbmRpbmcgcGlyJyAgICAgID0+IFsgJ2ZhaWxlZCcsICAgICAgJ3N1Y2Nlc3NmdWwnIF0sCiAgICAgICAgJ3JlamVjdGVkJyAgICAgICAgID0+IFswXSwKICAgICAgICAncmV0cmFjdGVkJyAgICAgICAgPT4gWzBdLAogICAgICAgICdmYWlsZWQnICAgICAgICAgICA9PiBbMF0sCiAgICAgICAgJ3N1Y2Nlc3NmdWwnICAgICAgID0+IFswXSwKICAgICAgICAnY2FuY2VsZWQnICAgICAgICAgPT4gWzBdLAogICAgKTsKCiAgICAjIGRlZmluZSBXb3JrT3JkZXJTdGF0ZSB0cmFuc2l0aW9ucwogICAgbXkgJVdvcmtPcmRlclN0YXRlVHJhbnNpdGlvbnMgPSAoCiAgICAgICAgMCAgICAgICAgICAgICA9PiBbJ2NyZWF0ZWQnXSwKICAgICAgICAnY3JlYXRlZCcgICAgID0+IFsgJ2FjY2VwdGVkJywgICAgJ2NhbmNlbGVkJyBdLAogICAgICAgICdhY2NlcHRlZCcgICAgPT4gWyAncmVhZHknLCAgICAgICAnY2FuY2VsZWQnIF0sCiAgICAgICAgJ3JlYWR5JyAgICAgICA9PiBbICdpbiBwcm9ncmVzcycsICdjYW5jZWxlZCcgXSwKICAgICAgICAnaW4gcHJvZ3Jlc3MnID0+IFsgJ2Nsb3NlZCcsICAgICAgJ2NhbmNlbGVkJyBdLAogICAgICAgICdjYW5jZWxlZCcgICAgPT4gWzBdLAogICAgICAgICdjbG9zZWQnICAgICAgPT4gWzBdLAogICAgKTsKCiAgICAjIGluc2VydCBDaGFuZ2VTdGF0ZSB0cmFuc2l0aW9ucyBpbnRvIGRhdGFiYXNlCiAgICBmb3IgbXkgJFN0YXRlICggc29ydCBrZXlzICVDaGFuZ2VTdGF0ZVRyYW5zaXRpb25zICkgewoKICAgICAgICBmb3IgbXkgJE5leHRTdGF0ZSAoIEB7ICRDaGFuZ2VTdGF0ZVRyYW5zaXRpb25zeyRTdGF0ZX0gfSApIHsKCiAgICAgICAgICAgICMgYWRkIHN0YXRlIHRyYW5zaXRpb24KICAgICAgICAgICAgbXkgJFRyYW5zaXRpb25JRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNU3RhdGVNYWNoaW5lJyktPlN0YXRlVHJhbnNpdGlvbkFkZCgKICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgID0+ICROYW1lMkNoYW5nZVN0YXRlSUR7JFN0YXRlfSAgICAgfHwgMCwKICAgICAgICAgICAgICAgIE5leHRTdGF0ZUlEID0+ICROYW1lMkNoYW5nZVN0YXRlSUR7JE5leHRTdGF0ZX0gfHwgMCwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgID0+ICdJVFNNOjpDaGFuZ2VNYW5hZ2VtZW50OjpDaGFuZ2U6OlN0YXRlJywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBpbnNlcnQgV29ya09yZGVyU3RhdGUgdHJhbnNpdGlvbnMgaW50byBkYXRhYmFzZQogICAgZm9yIG15ICRTdGF0ZSAoIHNvcnQga2V5cyAlV29ya09yZGVyU3RhdGVUcmFuc2l0aW9ucyApIHsKCiAgICAgICAgZm9yIG15ICROZXh0U3RhdGUgKCBAeyAkV29ya09yZGVyU3RhdGVUcmFuc2l0aW9uc3skU3RhdGV9IH0gKSB7CgogICAgICAgICAgICAjIGFkZCBzdGF0ZSB0cmFuc2l0aW9uCiAgICAgICAgICAgIG15ICRUcmFuc2l0aW9uSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVN0YXRlTWFjaGluZScpLT5TdGF0ZVRyYW5zaXRpb25BZGQoCiAgICAgICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAkTmFtZTJXb3JrT3JkZXJTdGF0ZUlEeyRTdGF0ZX0gICAgIHx8IDAsCiAgICAgICAgICAgICAgICBOZXh0U3RhdGVJRCA9PiAkTmFtZTJXb3JrT3JkZXJTdGF0ZUlEeyROZXh0U3RhdGV9IHx8IDAsCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgICA9PiAnSVRTTTo6Q2hhbmdlTWFuYWdlbWVudDo6V29ya09yZGVyOjpTdGF0ZScsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX0xpbmtEZWxldGUoKQoKRGVsZXRlIGFsbCBleGlzdGluZyBsaW5rcyB3aXRoIGNoYW5nZSBhbmQgd29ya29yZGVyIG9iamVjdHMuCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fTGlua0RlbGV0ZSgpOwoKPWN1dAoKc3ViIF9MaW5rRGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgYWxsIGNoYW5nZSBvYmplY3QgaWRzCiAgICBteSAkQ2hhbmdlSURzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlTGlzdCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgIyBkZWxldGUgYWxsIGNoYW5nZSBsaW5rcwogICAgaWYgKCAkQ2hhbmdlSURzICYmIHJlZiAkQ2hhbmdlSURzIGVxICdBUlJBWScgKSB7CgogICAgICAgIENIQU5HRUlEOgogICAgICAgIGZvciBteSAkQ2hhbmdlSUQgKCBAeyRDaGFuZ2VJRHN9ICkgewoKICAgICAgICAgICAgIyBkZWxldGUgYWxsIGxpbmtzIHRvIHRoaXMgY2hhbmdlCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0JyktPkxpbmtEZWxldGVBbGwoCiAgICAgICAgICAgICAgICBPYmplY3QgPT4gJ0lUU01DaGFuZ2UnLAogICAgICAgICAgICAgICAgS2V5ICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgYWxsIHdvcmtvcmRlciBpZHMgZm9yIHRoaXMgY2hhbmdlCiAgICAgICAgICAgIG15ICRXb3JrT3JkZXJJRHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJMaXN0KAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgQ0hBTkdFSUQgaWYgISRXb3JrT3JkZXJJRHM7CiAgICAgICAgICAgIG5leHQgQ0hBTkdFSUQgaWYgcmVmICRXb3JrT3JkZXJJRHMgbmUgJ0FSUkFZJzsKCiAgICAgICAgICAgICMgZGVsZXRlIGFsbCB3b3Jrb3JkZXIgbGlua3MKICAgICAgICAgICAgZm9yIG15ICRXb3JrT3JkZXJJRCAoIEB7JFdvcmtPcmRlcklEc30gKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcpLT5MaW5rRGVsZXRlQWxsKAogICAgICAgICAgICAgICAgICAgIE9iamVjdCA9PiAnSVRTTVdvcmtPcmRlcicsCiAgICAgICAgICAgICAgICAgICAgS2V5ICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfQXR0YWNobWVudERlbGV0ZSgpCgpEZWxldGUgYWxsIGV4aXN0aW5nIGF0dGFjaG1lbnRzIGZvciBjaGFuZ2VzIGFuZCB3b3Jrb3JkZXJzLgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0F0dGFjaG1lbnREZWxldGUoKTsKCj1jdXQKCnN1YiBfQXR0YWNobWVudERlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGFsbCBjaGFuZ2Ugb2JqZWN0IGlkcwogICAgbXkgJENoYW5nZUlEcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlJyktPkNoYW5nZUxpc3QoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgIGZvciBteSAkQ2hhbmdlSUQgKCBAeyRDaGFuZ2VJRHN9ICkgewoKICAgICAgICAjIGdldCB0aGUgbGlzdCBvZiBhbGwgY2hhbmdlIGF0dGFjaG1lbnRzCiAgICAgICAgbXkgQENoYW5nZUF0dGFjaG1lbnRzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2UnKS0+Q2hhbmdlQXR0YWNobWVudExpc3QoCiAgICAgICAgICAgIENoYW5nZUlEID0+ICRDaGFuZ2VJRCwKICAgICAgICApOwoKICAgICAgICAjIGRlbGV0ZSBhbGwgY2hhbmdlIGF0dGFjaG1lbnRzCiAgICAgICAgZm9yIG15ICRGaWxlbmFtZSAoQENoYW5nZUF0dGFjaG1lbnRzKSB7CgogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZScpLT5DaGFuZ2VBdHRhY2htZW50RGVsZXRlKAogICAgICAgICAgICAgICAgQ2hhbmdlSUQgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgRmlsZW5hbWUgPT4gJEZpbGVuYW1lLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGFsbCB3b3Jrb3JkZXIgaWRzIGZvciB0aGlzIGNoYW5nZQogICAgICAgIG15ICRXb3JrT3JkZXJJRHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJMaXN0KAogICAgICAgICAgICBDaGFuZ2VJRCA9PiAkQ2hhbmdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICRXb3JrT3JkZXJJRCAoIEB7JFdvcmtPcmRlcklEc30gKSB7CgogICAgICAgICAgICAjIGdldCB0aGUgbGlzdCBvZiBhbGwgd29ya29yZGVyIGF0dGFjaG1lbnRzCiAgICAgICAgICAgIG15IEBXb3JrT3JkZXJBdHRhY2htZW50cwogICAgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJBdHRhY2htZW50TGlzdCgKICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGRlbGV0ZSBhbGwgd29ya29yZGVyIGF0dGFjaG1lbnRzCiAgICAgICAgICAgIGZvciBteSAkRmlsZW5hbWUgKEBXb3JrT3JkZXJBdHRhY2htZW50cykgewoKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpJVFNNV29ya09yZGVyJyktPldvcmtPcmRlckF0dGFjaG1lbnREZWxldGUoCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlSUQgICAgICAgPT4gJENoYW5nZUlELAogICAgICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEICAgID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICAgICBGaWxlbmFtZSAgICAgICA9PiAkRmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgQXR0YWNobWVudFR5cGUgPT4gJ1dvcmtPcmRlcicsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IHRoZSBsaXN0IG9mIGFsbCB3b3Jrb3JkZXIgcmVwb3J0IGF0dGFjaG1lbnRzCiAgICAgICAgICAgIG15IEBSZXBvcnRBdHRhY2htZW50cwogICAgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJSZXBvcnRBdHRhY2htZW50TGlzdCgKICAgICAgICAgICAgICAgIFdvcmtPcmRlcklEID0+ICRXb3JrT3JkZXJJRCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGRlbGV0ZSBhbGwgd29ya29yZGVyIHJlcG9ydCBhdHRhY2htZW50cwogICAgICAgICAgICBmb3IgbXkgJEZpbGVuYW1lIChAUmVwb3J0QXR0YWNobWVudHMpIHsKCiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SVRTTVdvcmtPcmRlcicpLT5Xb3JrT3JkZXJBdHRhY2htZW50RGVsZXRlKAogICAgICAgICAgICAgICAgICAgIENoYW5nZUlEICAgICAgID0+ICRDaGFuZ2VJRCwKICAgICAgICAgICAgICAgICAgICBXb3JrT3JkZXJJRCAgICA9PiAkV29ya09yZGVySUQsCiAgICAgICAgICAgICAgICAgICAgRmlsZW5hbWUgICAgICAgPT4gJEZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgIEF0dGFjaG1lbnRUeXBlID0+ICdXb3JrT3JkZXJSZXBvcnQnLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX0R5bmFtaWNGaWVsZHNEZWxldGUoKQoKRGVsZXRlIGFsbCBleGlzdGluZyBkeW5hbWljIGZpZWxkcyBmb3IgY2hhbmdlcyBhbmQgd29ya29yZGVycy4KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9EeW5hbWljRmllbGRzRGVsZXRlKCk7Cgo9Y3V0CgpzdWIgX0R5bmFtaWNGaWVsZHNEZWxldGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CiAgICBteSAkRHluYW1pY0ZpZWxkVmFsdWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFsdWUnKTsKCiAgICAjIGdldCB0aGUgbGlzdCBvZiBjaGFuZ2UgYW5kIHdvcmtvcmRlciBkeW5hbWljIGZpZWxkcyAodmFsaWQgYW5kIGludmFsaWQgb25lcykKICAgIG15ICREeW5hbWljRmllbGRMaXN0ID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgT2JqZWN0VHlwZSA9PiBbICdJVFNNQ2hhbmdlJywgJ0lUU01Xb3JrT3JkZXInIF0sCiAgICApOwoKICAgICMgZGVsZXRlIHRoZSBkeW5hbWljIGZpZWxkcwogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGQgKCBAeyREeW5hbWljRmllbGRMaXN0fSApIHsKCiAgICAgICAgIyBkZWxldGUgYWxsIGZpZWxkIHZhbHVlcwogICAgICAgIG15ICRWYWx1ZXNEZWxldGVTdWNjZXNzID0gJER5bmFtaWNGaWVsZFZhbHVlT2JqZWN0LT5BbGxWYWx1ZXNEZWxldGUoCiAgICAgICAgICAgIEZpZWxkSUQgPT4gJER5bmFtaWNGaWVsZC0+e0lEfSwKICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgdmFsdWVzIGNvdWxkIGJlIGRlbGV0ZWQKICAgICAgICBpZiAoJFZhbHVlc0RlbGV0ZVN1Y2Nlc3MpIHsKCiAgICAgICAgICAgICMgZGVsZXRlIGZpZWxkCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkRGVsZXRlKAogICAgICAgICAgICAgICAgSUQgICAgID0+ICREeW5hbWljRmllbGQtPntJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hlY2sgZXJyb3IKICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3QgZGVsZXRlIGR5bmFtaWMgZmllbGQgJyREeW5hbWljRmllbGQtPntOYW1lfSchIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgdmFsdWVzIGNvdWxkIG5vdCBiZSBkZWxldGVkCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3QgZGVsZXRlIHZhbHVlcyBmb3IgZHluYW1pYyBmaWVsZCAnJER5bmFtaWNGaWVsZC0+e05hbWV9JyEiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIF9BZGROb3RpZmljYXRpb25zKCkKCkFkZCBDaGFuZ2VNYW5hZ2VtZW50IHNwZWNpZmljIG5vdGlmaWNhdGlvbnMuCgogICAgbXkgJFN1Y2Nlc3MgPSAkU2V0dXBPYmplY3QtPl9BZGROb3RpZmljYXRpb25zOwoKPWN1dAoKc3ViIF9BZGROb3RpZmljYXRpb25zIHsKICAgIG15ICgkU2VsZikgPSBAXzsKCiAgICAjIFNldCB1cCBzb21lIHN0YW5kYXJkIHRleHRzIGZvciBFbmdsaXNoLCBHZXJtYW4sIEh1bmdhcmlhbiBhbmQgRHV0Y2gsIENoYW5nZSBhbmQgV29ya09yZGVyLCBhZ2VudCBhbmQgY3VzdG9tZXIKICAgICMgVGhlIGN1c3RvbWVyIHRleHRzIHByb3ZpZGUgbm8gbGluay4KCiAgICAjIENoYW5nZSBpbmZvIGZvciBhZ2VudHMgKGVuKQogICAgbXkgJENoYW5nZUluZm9BZ2VudEVuID0gIlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIkNoYW5nZSB0aXRsZTogPE9UUlNfQ0hBTkdFX0NoYW5nZVRpdGxlPlxuIgogICAgICAgIC4gIkNoYW5nZSBidWlsZGVyOiA8T1RSU19DSEFOR0VfQ2hhbmdlQnVpbGRlcj5cbiIKICAgICAgICAuICJDaGFuZ2UgbWFuYWdlcjogPE9UUlNfQ0hBTkdFX0NoYW5nZU1hbmFnZXI+XG4iCiAgICAgICAgLiAiQ3VycmVudCBjaGFuZ2Ugc3RhdGU6IDxPVFJTX0NIQU5HRV9DaGFuZ2VTdGF0ZT5cbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICI8T1RSU19DT05GSUdfSHR0cFR5cGU+Oi8vPE9UUlNfQ09ORklHX0ZRRE4+LzxPVFJTX0NPTkZJR19TY3JpcHRBbGlhcz5pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD08T1RSU19DSEFOR0VfQ2hhbmdlSUQ+XG4iCiAgICAgICAgLiAiXG4iCiAgICAgICAgLiAiLS0gPE9UUlNfQ09ORklHX05vdGlmaWNhdGlvblNlbmRlck5hbWU+XG4iOwoKICAgICMgQ2hhbmdlIGluZm8gZm9yIGN1c3RvbWVycyAoZW4pCiAgICBteSAkQ2hhbmdlSW5mb0N1c3RvbWVyRW4gPSAiXG4iCiAgICAgICAgLiAiXG4iCiAgICAgICAgLiAiQ2hhbmdlIHRpdGxlOiA8T1RSU19DSEFOR0VfQ2hhbmdlVGl0bGU+XG4iCiAgICAgICAgLiAiQ3VycmVudCBjaGFuZ2Ugc3RhdGU6IDxPVFJTX0NIQU5HRV9DaGFuZ2VTdGF0ZT5cbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICItLSA8T1RSU19DT05GSUdfTm90aWZpY2F0aW9uU2VuZGVyTmFtZT5cbiI7CgogICAgIyBDaGFuZ2UgaW5mbyBmb3IgYWdlbnRzIChkZSkKICAgIG15ICRDaGFuZ2VJbmZvQWdlbnREZSA9ICJcbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICJDaGFuZ2UgVGl0ZWw6IDxPVFJTX0NIQU5HRV9DaGFuZ2VUaXRsZT5cbiIKICAgICAgICAuICJDaGFuZ2UtQnVpbGRlcjogPE9UUlNfQ0hBTkdFX0NoYW5nZUJ1aWxkZXI+XG4iCiAgICAgICAgLiAiQ2hhbmdlLU1hbmFnZXI6IDxPVFJTX0NIQU5HRV9DaGFuZ2VNYW5hZ2VyPlxuIgogICAgICAgIC4gIkFrdHVlbGxlciBDaGFuZ2UgU3RhdHVzOiA8T1RSU19DSEFOR0VfQ2hhbmdlU3RhdGU+XG4iCiAgICAgICAgLiAiXG4iCiAgICAgICAgLiAiPE9UUlNfQ09ORklHX0h0dHBUeXBlPjovLzxPVFJTX0NPTkZJR19GUUROPi88T1RSU19DT05GSUdfU2NyaXB0QWxpYXM+aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZVpvb207Q2hhbmdlSUQ9PE9UUlNfQ0hBTkdFX0NoYW5nZUlEPlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIi0tIDxPVFJTX0NPTkZJR19Ob3RpZmljYXRpb25TZW5kZXJOYW1lPlxuIjsKCiAgICAjIENoYW5nZSBpbmZvIGZvciBjdXN0b21lcnMgKGRlKQogICAgbXkgJENoYW5nZUluZm9DdXN0b21lckRlID0gIlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIkNoYW5nZSBUaXRlbDogPE9UUlNfQ0hBTkdFX0NoYW5nZVRpdGxlPlxuIgogICAgICAgIC4gIkFrdHVlbGxlciBDaGFuZ2UgU3RhdHVzOiA8T1RSU19DSEFOR0VfQ2hhbmdlU3RhdGU+XG4iCiAgICAgICAgLiAiXG4iCiAgICAgICAgLiAiLS0gPE9UUlNfQ09ORklHX05vdGlmaWNhdGlvblNlbmRlck5hbWU+XG4iOwoKICAgICMgQ2hhbmdlIGluZm8gZm9yIGFnZW50cyAoaHUpCiAgICBteSAkQ2hhbmdlSW5mb0FnZW50SHUgPSAiXG4iCiAgICAgICAgLiAiXG4iCiAgICAgICAgLiAiVsOhbHRvesOhc2PDrW06IDxPVFJTX0NIQU5HRV9DaGFuZ2VUaXRsZT5cbiIKICAgICAgICAuICJWw6FsdG96w6FzLcO2c3N6ZcOhbGzDrXTDszogPE9UUlNfQ0hBTkdFX0NoYW5nZUJ1aWxkZXI+XG4iCiAgICAgICAgLiAiVsOhbHRvesOhc21lbmVkenNlcjogPE9UUlNfQ0hBTkdFX0NoYW5nZU1hbmFnZXI+XG4iCiAgICAgICAgLiAiSmVsZW5sZWdpIHbDoWx0b3rDoXPDoWxsYXBvdDogPE9UUlNfQ0hBTkdFX0NoYW5nZVN0YXRlPlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIjxPVFJTX0NPTkZJR19IdHRwVHlwZT46Ly88T1RSU19DT05GSUdfRlFETj4vPE9UUlNfQ09ORklHX1NjcmlwdEFsaWFzPmluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPTxPVFJTX0NIQU5HRV9DaGFuZ2VJRD5cbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICItLSA8T1RSU19DT05GSUdfTm90aWZpY2F0aW9uU2VuZGVyTmFtZT5cbiI7CgogICAgIyBDaGFuZ2UgaW5mbyBmb3IgY3VzdG9tZXJzIChodSkKICAgIG15ICRDaGFuZ2VJbmZvQ3VzdG9tZXJIdSA9ICJcbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICJWw6FsdG96w6FzY8OtbTogPE9UUlNfQ0hBTkdFX0NoYW5nZVRpdGxlPlxuIgogICAgICAgIC4gIkplbGVubGVnaSB2w6FsdG96w6Fzw6FsbGFwb3Q6IDxPVFJTX0NIQU5HRV9DaGFuZ2VTdGF0ZT5cbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICItLSA8T1RSU19DT05GSUdfTm90aWZpY2F0aW9uU2VuZGVyTmFtZT5cbiI7CgogICAgIyBDaGFuZ2UgaW5mbyBmb3IgYWdlbnRzIChubCkKICAgIG15ICRDaGFuZ2VJbmZvQWdlbnRObCA9ICJcbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICJDaGFuZ2UtdGl0ZWw6IDxPVFJTX0NIQU5HRV9DaGFuZ2VUaXRsZT5cbiIKICAgICAgICAuICJDaGFuZ2UtQnVpbGRlcjogPE9UUlNfQ0hBTkdFX0NoYW5nZUJ1aWxkZXI+XG4iCiAgICAgICAgLiAiQ2hhbmdlLU1hbmFnZXI6IDxPVFJTX0NIQU5HRV9DaGFuZ2VNYW5hZ2VyPlxuIgogICAgICAgIC4gIkFjdHVlbGUgY2hhbmdlLXN0YXR1czogPE9UUlNfQ0hBTkdFX0NoYW5nZVN0YXRlPlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIjxPVFJTX0NPTkZJR19IdHRwVHlwZT46Ly88T1RSU19DT05GSUdfRlFETj4vPE9UUlNfQ09ORklHX1NjcmlwdEFsaWFzPmluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPTxPVFJTX0NIQU5HRV9DaGFuZ2VJRD5cbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICItLSA8T1RSU19DT05GSUdfTm90aWZpY2F0aW9uU2VuZGVyTmFtZT5cbiI7CgogICAgIyBDaGFuZ2UgaW5mbyBmb3IgY3VzdG9tZXJzIChubCkKICAgIG15ICRDaGFuZ2VJbmZvQ3VzdG9tZXJObCA9ICJcbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICJDaGFuZ2UtdGl0ZWw6IDxPVFJTX0NIQU5HRV9DaGFuZ2VUaXRsZT5cbiIKICAgICAgICAuICJBY3R1ZWxlIGNoYW5nZS1zdGF0dXM6IDxPVFJTX0NIQU5HRV9DaGFuZ2VTdGF0ZT5cbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICItLSA8T1RSU19DT05GSUdfTm90aWZpY2F0aW9uU2VuZGVyTmFtZT5cbiI7CgogICAgIyBXb3Jrb3JkZXIgaW5mbyBmb3IgY3VzdG9tZXJzIChlbikKICAgIG15ICRXb3JrT3JkZXJJbmZvQ3VzdG9tZXJFbiA9ICJcbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICJDaGFuZ2UgdGl0bGU6IDxPVFJTX0NIQU5HRV9DaGFuZ2VUaXRsZT5cbiIKICAgICAgICAuICJDdXJyZW50IGNoYW5nZSBzdGF0ZTogPE9UUlNfQ0hBTkdFX0NoYW5nZVN0YXRlPlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIldvcmtvcmRlciB0aXRsZTogPE9UUlNfV09SS09SREVSX1dvcmtPcmRlclRpdGxlPlxuIgogICAgICAgIC4gIldvcmtvcmRlciB0eXBlOiA8T1RSU19XT1JLT1JERVJfV29ya09yZGVyVHlwZT5cbiIKICAgICAgICAuICJXb3Jrb3JkZXIgYWdlbnQ6IDxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJBZ2VudD5cbiIKICAgICAgICAuICJDdXJyZW50IHdvcmtvcmRlciBzdGF0ZTogPE9UUlNfV09SS09SREVSX1dvcmtPcmRlclN0YXRlPlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIi0tIDxPVFJTX0NPTkZJR19Ob3RpZmljYXRpb25TZW5kZXJOYW1lPlxuIjsKCiAgICAjIFdvcmtvcmRlciBpbmZvIGZvciBhZ2VudHMgKGVuKQogICAgbXkgJFdvcmtPcmRlckluZm9BZ2VudEVuID0gIlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIkNoYW5nZSB0aXRsZTogPE9UUlNfQ0hBTkdFX0NoYW5nZVRpdGxlPlxuIgogICAgICAgIC4gIkN1cnJlbnQgY2hhbmdlIHN0YXRlOiA8T1RSU19DSEFOR0VfQ2hhbmdlU3RhdGU+XG4iCiAgICAgICAgLiAiXG4iCiAgICAgICAgLiAiV29ya29yZGVyIHRpdGxlOiA8T1RSU19XT1JLT1JERVJfV29ya09yZGVyVGl0bGU+XG4iCiAgICAgICAgLiAiV29ya29yZGVyIHR5cGU6IDxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJUeXBlPlxuIgogICAgICAgIC4gIkN1cnJlbnQgd29ya29yZGVyIHN0YXRlOiA8T1RSU19XT1JLT1JERVJfV29ya09yZGVyU3RhdGU+XG4iCiAgICAgICAgLiAiXG4iCiAgICAgICAgLiAiPE9UUlNfQ09ORklHX0h0dHBUeXBlPjovLzxPVFJTX0NPTkZJR19GUUROPi88T1RSU19DT05GSUdfU2NyaXB0QWxpYXM+aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTVdvcmtPcmRlclpvb207V29ya09yZGVySUQ9PE9UUlNfV09SS09SREVSX1dvcmtPcmRlcklEPlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIi0tIDxPVFJTX0NPTkZJR19Ob3RpZmljYXRpb25TZW5kZXJOYW1lPlxuIjsKCiAgICAjIFdvcmtvcmRlciBpbmZvIGZvciBhZ2VudHMgKGRlKQogICAgbXkgJFdvcmtPcmRlckluZm9BZ2VudERlID0gIlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIkNoYW5nZSBUaXRlbDogPE9UUlNfQ0hBTkdFX0NoYW5nZVRpdGxlPlxuIgogICAgICAgIC4gIkFrdHVlbGxlciBDaGFuZ2UgU3RhdHVzOiA8T1RSU19DSEFOR0VfQ2hhbmdlU3RhdGU+XG4iCiAgICAgICAgLiAiXG4iCiAgICAgICAgLiAiV29ya29yZGVyIFRpdGVsOiA8T1RSU19XT1JLT1JERVJfV29ya09yZGVyVGl0bGU+XG4iCiAgICAgICAgLiAiV29ya29yZGVyIFR5cDogPE9UUlNfV09SS09SREVSX1dvcmtPcmRlclR5cGU+XG4iCiAgICAgICAgLiAiV29ya29yZGVyIEFnZW50OiA8T1RSU19XT1JLT1JERVJfV29ya09yZGVyQWdlbnQ+XG4iCiAgICAgICAgLiAiQWt0dWVsbGVyIFdvcmtvcmRlciBTdGF0dXM6IDxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJTdGF0ZT5cbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICI8T1RSU19DT05GSUdfSHR0cFR5cGU+Oi8vPE9UUlNfQ09ORklHX0ZRRE4+LzxPVFJTX0NPTkZJR19TY3JpcHRBbGlhcz5pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNV29ya09yZGVyWm9vbTtXb3JrT3JkZXJJRD08T1RSU19XT1JLT1JERVJfV29ya09yZGVySUQ+XG4iCiAgICAgICAgLiAiXG4iCiAgICAgICAgLiAiLS0gPE9UUlNfQ09ORklHX05vdGlmaWNhdGlvblNlbmRlck5hbWU+XG4iOwoKICAgICMgV29ya29yZGVyIGluZm8gZm9yIGN1c3RvbWVycyAoZGUpCiAgICBteSAkV29ya09yZGVySW5mb0N1c3RvbWVyRGUgPSAiXG4iCiAgICAgICAgLiAiXG4iCiAgICAgICAgLiAiQ2hhbmdlIFRpdGVsOiA8T1RSU19DSEFOR0VfQ2hhbmdlVGl0bGU+XG4iCiAgICAgICAgLiAiQWt0dWVsbGVyIENoYW5nZSBTdGF0dXM6IDxPVFJTX0NIQU5HRV9DaGFuZ2VTdGF0ZT5cbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICJXb3Jrb3JkZXIgVGl0ZWw6IDxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJUaXRsZT5cbiIKICAgICAgICAuICJXb3Jrb3JkZXIgVHlwOiA8T1RSU19XT1JLT1JERVJfV29ya09yZGVyVHlwZT5cbiIKICAgICAgICAuICJBa3R1ZWxsZXIgV29ya29yZGVyIFN0YXR1czogPE9UUlNfV09SS09SREVSX1dvcmtPcmRlclN0YXRlPlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIi0tIDxPVFJTX0NPTkZJR19Ob3RpZmljYXRpb25TZW5kZXJOYW1lPlxuIjsKCiAgICAjIFdvcmtvcmRlciBpbmZvIGZvciBjdXN0b21lcnMgKGh1KQogICAgbXkgJFdvcmtPcmRlckluZm9DdXN0b21lckh1ID0gIlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIlbDoWx0b3rDoXNjw61tOiA8T1RSU19DSEFOR0VfQ2hhbmdlVGl0bGU+XG4iCiAgICAgICAgLiAiSmVsZW5sZWdpIHbDoWx0b3rDoXPDoWxsYXBvdDogPE9UUlNfQ0hBTkdFX0NoYW5nZVN0YXRlPlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIk11bmthbWVncmVuZGVsw6lzLWPDrW06IDxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJUaXRsZT5cbiIKICAgICAgICAuICJNdW5rYW1lZ3JlbmRlbMOpcy10w61wdXM6IDxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJUeXBlPlxuIgogICAgICAgIC4gIk11bmthbWVncmVuZGVsw6lzLcO8Z3lpbnTDqXrFkTogPE9UUlNfV09SS09SREVSX1dvcmtPcmRlckFnZW50PlxuIgogICAgICAgIC4gIkplbGVubGVnaSBtdW5rYW1lZ3JlbmRlbMOpcy3DoWxsYXBvdDogPE9UUlNfV09SS09SREVSX1dvcmtPcmRlclN0YXRlPlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIi0tIDxPVFJTX0NPTkZJR19Ob3RpZmljYXRpb25TZW5kZXJOYW1lPlxuIjsKCiAgICAjIFdvcmtvcmRlciBpbmZvIGZvciBhZ2VudHMgKGh1KQogICAgbXkgJFdvcmtPcmRlckluZm9BZ2VudEh1ID0gIlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIlbDoWx0b3rDoXNjw61tOiA8T1RSU19DSEFOR0VfQ2hhbmdlVGl0bGU+XG4iCiAgICAgICAgLiAiSmVsZW5sZWdpIHbDoWx0b3rDoXPDoWxsYXBvdDogPE9UUlNfQ0hBTkdFX0NoYW5nZVN0YXRlPlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIk11bmthbWVncmVuZGVsw6lzLWPDrW06IDxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJUaXRsZT5cbiIKICAgICAgICAuICJNdW5rYW1lZ3JlbmRlbMOpcy10w61wdXM6IDxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJUeXBlPlxuIgogICAgICAgIC4gIkplbGVubGVnaSBtdW5rYW1lZ3JlbmRlbMOpcy3DoWxsYXBvdDogPE9UUlNfV09SS09SREVSX1dvcmtPcmRlclN0YXRlPlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIjxPVFJTX0NPTkZJR19IdHRwVHlwZT46Ly88T1RSU19DT05GSUdfRlFETj4vPE9UUlNfQ09ORklHX1NjcmlwdEFsaWFzPmluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1dvcmtPcmRlcklEPTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJJRD5cbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICItLSA8T1RSU19DT05GSUdfTm90aWZpY2F0aW9uU2VuZGVyTmFtZT5cbiI7CgogICAgIyBXb3Jrb3JkZXIgaW5mbyBmb3IgYWdlbnRzIChubCkKICAgIG15ICRXb3JrT3JkZXJJbmZvQWdlbnRObCA9ICJcbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICJDaGFuZ2UtdGl0ZWw6IDxPVFJTX0NIQU5HRV9DaGFuZ2VUaXRsZT5cbiIKICAgICAgICAuICJBY3R1ZWxlIGNoYW5nZS1zdGF0dXM6IDxPVFJTX0NIQU5HRV9DaGFuZ2VTdGF0ZT5cbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICJXb3JrIE9yZGVyLXRpdGVsOiA8T1RSU19XT1JLT1JERVJfV29ya09yZGVyVGl0bGU+XG4iCiAgICAgICAgLiAiV29yayBPcmRlci10eXBlOiA8T1RSU19XT1JLT1JERVJfV29ya09yZGVyVHlwZT5cbiIKICAgICAgICAuICJXb3JrIE9yZGVyLWFnZW50OiA8T1RSU19XT1JLT1JERVJfV29ya09yZGVyQWdlbnQ+XG4iCiAgICAgICAgLiAiQWN0dWVsZSBXb3JrIE9yZGVyLXN0YXR1czogPE9UUlNfV09SS09SREVSX1dvcmtPcmRlclN0YXRlPlxuIgogICAgICAgIC4gIlxuIgogICAgICAgIC4gIjxPVFJTX0NPTkZJR19IdHRwVHlwZT46Ly88T1RSU19DT05GSUdfRlFETj4vPE9UUlNfQ09ORklHX1NjcmlwdEFsaWFzPmluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01Xb3JrT3JkZXJab29tO1dvcmtPcmRlcklEPTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJJRD5cbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICItLSA8T1RSU19DT05GSUdfTm90aWZpY2F0aW9uU2VuZGVyTmFtZT5cbiI7CgogICAgIyBXb3Jrb3JkZXIgaW5mbyBmb3IgY3VzdG9tZXJzIChubCkKICAgIG15ICRXb3JrT3JkZXJJbmZvQ3VzdG9tZXJObCA9ICJcbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICJDaGFuZ2UtdGl0ZWw6IDxPVFJTX0NIQU5HRV9DaGFuZ2VUaXRsZT5cbiIKICAgICAgICAuICJBY3R1ZWxlIGNoYW5nZS1zdGF0dXM6IDxPVFJTX0NIQU5HRV9DaGFuZ2VTdGF0ZT5cbiIKICAgICAgICAuICJcbiIKICAgICAgICAuICJXb3JrIE9yZGVyLXRpdGVsOiA8T1RSU19XT1JLT1JERVJfV29ya09yZGVyVGl0bGU+XG4iCiAgICAgICAgLiAiV29yayBPcmRlci10eXBlOiA8T1RSU19XT1JLT1JERVJfV29ya09yZGVyVHlwZT5cbiIKICAgICAgICAuICJBY3R1ZWxlIFdvcmsgT3JkZXItc3RhdHVzOiA8T1RSU19XT1JLT1JERVJfV29ya09yZGVyU3RhdGU+XG4iCiAgICAgICAgLiAiXG4iCiAgICAgICAgLiAiLS0gPE9UUlNfQ09ORklHX05vdGlmaWNhdGlvblNlbmRlck5hbWU+XG4iOwoKICAgICMgZGVmaW5lIG5vdGlmaWNhdGlvbnMgYW5kIHJlY2lwaWVudHMKICAgIG15IEBOb3RpZmljYXRpb25zID0gKAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdyZXF1ZXN0ZWQgY2hhbmdlcycsCiAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAnJywKICAgICAgICAgICAgRXZlbnQgICAgID0+ICdDaGFuZ2VBZGQnLAogICAgICAgICAgICBWYWxpZElEICAgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICdpbmZvcm0gcmVjaXBpZW50cyB0aGF0IGEgY2hhbmdlIHdhcyByZXF1ZXN0ZWQnLAogICAgICAgICAgICBSdWxlICAgICAgPT4gJycsCiAgICAgICAgICAgIE1lc3NhZ2UgICA9PiB7CiAgICAgICAgICAgICAgICBBZ2VudCA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIG5ldSBlcnN0ZWxsdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHd1cmRlIG5ldSBlcnN0ZWxsdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnREZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGNyZWF0ZWQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3YXMgY3JlYXRlZC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGzDqXRyZWhvenZhJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0zDqXRyZWrDtnR0IGEga8O2dmV0a2V6xZEgdsOhbHRvesOhczogPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50SHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBhYW5nZW1hYWt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaXMgYWFuZ2VtYWFrdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRObCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQ3VzdG9tZXIgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBuZXUgZXJzdGVsbHQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3dXJkZSBuZXUgZXJzdGVsbHQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyRGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBjcmVhdGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd2FzIGNyZWF0ZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyRW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBsw6l0cmVob3p2YScsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMw6l0cmVqw7Z0dCBhIGvDtnZldGtlesWRIHbDoWx0b3rDoXM6IDxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckh1LAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBubCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYWFuZ2VtYWFrdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGlzIGFhbmdlbWFha3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyTmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVjaXBpZW50cyA9PiBbICdDaGFuZ2VNYW5hZ2VyJywgJ0NoYW5nZUJ1aWxkZXInIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAncGVuZGluZyBhcHByb3ZhbCBjaGFuZ2VzJywKICAgICAgICAgICAgQXR0cmlidXRlID0+ICdDaGFuZ2VTdGF0ZScsCiAgICAgICAgICAgIEV2ZW50ICAgICA9PiAnQ2hhbmdlVXBkYXRlJywKICAgICAgICAgICAgVmFsaWRJRCAgID0+IDEsCiAgICAgICAgICAgIENvbW1lbnQgICA9PiAnaW5mb3JtIHJlY2lwaWVudHMgdGhhdCBhIGNoYW5nZSB3YWl0cyBmb3IgYXBwcm92YWwnLAogICAgICAgICAgICBSdWxlICAgICAgPT4gJ3BlbmRpbmcgYXBwcm92YWwnLAogICAgICAgICAgICBNZXNzYWdlICAgPT4gewogICAgICAgICAgICAgICAgQWdlbnQgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBha3R1YWxpc2llcnQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3dXJkZSBha3R1YWxpc2llcnQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSB1cGRhdGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd2FzIHVwZGF0ZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBmcmlzc8OtdHZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZyaXNzw7xsdCBhIGvDtnZldGtlesWRIHbDoWx0b3rDoXM6IDxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudEh1LAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBubCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYmlqZ2V3ZXJrdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGlzIGJpamdld2Vya3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50TmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYWt0dWFsaXNpZXJ0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd3VyZGUgYWt0dWFsaXNpZXJ0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckRlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHdhcyB1cGRhdGVkLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gZnJpc3PDrXR2ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGcmlzc8O8bHQgYSBrw7Z2ZXRrZXrFkSB2w6FsdG96w6FzOiA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGJpamdld2Vya3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBpcyBiaWpnZXdlcmt0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lck5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlY2lwaWVudHMgPT4gWyAnQ2hhbmdlTWFuYWdlcicsICdDQUJDdXN0b21lcnMnLCAnQ0FCQWdlbnRzJyBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ3BlbmRpbmcgUElSIGNoYW5nZXMnLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJ0NoYW5nZVN0YXRlJywKICAgICAgICAgICAgRXZlbnQgICAgID0+ICdDaGFuZ2VVcGRhdGUnLAogICAgICAgICAgICBWYWxpZElEICAgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICdpbmZvcm0gcmVjaXBpZW50cyB0aGF0IGEgY2hhbmdlIHdhaXRzIGZvciBQSVInLAogICAgICAgICAgICBSdWxlICAgICAgPT4gJ3BlbmRpbmcgcGlyJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+IHsKICAgICAgICAgICAgICAgIEFnZW50ID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYWt0dWFsaXNpZXJ0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd3VyZGUgYWt0dWFsaXNpZXJ0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudERlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHdhcyB1cGRhdGVkLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudEVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gZnJpc3PDrXR2ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGcmlzc8O8bHQgYSBrw7Z2ZXRrZXrFkSB2w6FsdG96w6FzOiA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGJpamdld2Vya3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBpcyBiaWpnZXdlcmt0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudE5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBDdXN0b21lciA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGFrdHVhbGlzaWVydCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHd1cmRlIGFrdHVhbGlzaWVydC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJEZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIHVwZGF0ZWQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3YXMgdXBkYXRlZC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGZyaXNzw610dmUnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRnJpc3PDvGx0IGEga8O2dmV0a2V6xZEgdsOhbHRvesOhczogPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVySHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBiaWpnZXdlcmt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaXMgYmlqZ2V3ZXJrdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJObCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZWNpcGllbnRzID0+IFsnQ2hhbmdlTWFuYWdlciddLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ3JlamVjdGVkIGNoYW5nZXMnLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJ0NoYW5nZVN0YXRlJywKICAgICAgICAgICAgRXZlbnQgICAgID0+ICdDaGFuZ2VVcGRhdGUnLAogICAgICAgICAgICBWYWxpZElEICAgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICdpbmZvcm0gcmVjaXBpZW50cyB0aGF0IGEgY2hhbmdlIHdhcyByZWplY3RlZCcsCiAgICAgICAgICAgIFJ1bGUgICAgICA9PiAncmVqZWN0ZWQnLAogICAgICAgICAgICBNZXNzYWdlICAgPT4gewogICAgICAgICAgICAgICAgQWdlbnQgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBha3R1YWxpc2llcnQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3dXJkZSBha3R1YWxpc2llcnQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSB1cGRhdGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd2FzIHVwZGF0ZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBmcmlzc8OtdHZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZyaXNzw7xsdCBhIGvDtnZldGtlesWRIHbDoWx0b3rDoXM6IDxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudEh1LAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBubCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYmlqZ2V3ZXJrdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGlzIGJpamdld2Vya3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50TmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYWt0dWFsaXNpZXJ0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd3VyZGUgYWt0dWFsaXNpZXJ0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckRlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHdhcyB1cGRhdGVkLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gZnJpc3PDrXR2ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGcmlzc8O8bHQgYSBrw7Z2ZXRrZXrFkSB2w6FsdG96w6FzOiA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGJpamdld2Vya3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBpcyBiaWpnZXdlcmt0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lck5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlY2lwaWVudHMgPT4gWwogICAgICAgICAgICAgICAgJ0NoYW5nZUJ1aWxkZXInLCAnQ2hhbmdlSW5pdGlhdG9ycycsICdDQUJDdXN0b21lcnMnLCAnQ0FCQWdlbnRzJywgJ1dvcmtPcmRlckFnZW50cycsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnYXBwcm92ZWQgY2hhbmdlcycsCiAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAnQ2hhbmdlU3RhdGUnLAogICAgICAgICAgICBFdmVudCAgICAgPT4gJ0NoYW5nZVVwZGF0ZScsCiAgICAgICAgICAgIFZhbGlkSUQgICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICAgPT4gJ2luZm9ybSByZWNpcGllbnRzIHRoYXQgYSBjaGFuZ2Ugd2FzIGFwcHJvdmVkJywKICAgICAgICAgICAgUnVsZSAgICAgID0+ICdhcHByb3ZlZCcsCiAgICAgICAgICAgIE1lc3NhZ2UgICA9PiB7CiAgICAgICAgICAgICAgICBBZ2VudCA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGFrdHVhbGlzaWVydCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHd1cmRlIGFrdHVhbGlzaWVydC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnREZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIHVwZGF0ZWQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3YXMgdXBkYXRlZC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGZyaXNzw610dmUnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRnJpc3PDvGx0IGEga8O2dmV0a2V6xZEgdsOhbHRvesOhczogPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50SHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBiaWpnZXdlcmt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaXMgYmlqZ2V3ZXJrdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRObCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQ3VzdG9tZXIgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBha3R1YWxpc2llcnQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3dXJkZSBha3R1YWxpc2llcnQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyRGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSB1cGRhdGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd2FzIHVwZGF0ZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyRW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBmcmlzc8OtdHZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZyaXNzw7xsdCBhIGvDtnZldGtlesWRIHbDoWx0b3rDoXM6IDxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckh1LAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBubCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYmlqZ2V3ZXJrdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGlzIGJpamdld2Vya3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyTmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVjaXBpZW50cyA9PiBbCiAgICAgICAgICAgICAgICAnQ2hhbmdlQnVpbGRlcicsICdDaGFuZ2VJbml0aWF0b3JzJywgJ0NBQkN1c3RvbWVycycsICdDQUJBZ2VudHMnLAogICAgICAgICAgICAgICAgJ1dvcmtPcmRlckFnZW50cycsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnY2hhbmdlcyBpbiBwcm9ncmVzcycsCiAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAnQ2hhbmdlU3RhdGUnLAogICAgICAgICAgICBFdmVudCAgICAgPT4gJ0NoYW5nZVVwZGF0ZScsCiAgICAgICAgICAgIFZhbGlkSUQgICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICAgPT4gJ2luZm9ybSByZWNpcGllbnRzIHRoYXQgYSBjaGFuZ2UgaXMgaW4gcHJvZ3Jlc3MnLAogICAgICAgICAgICBSdWxlICAgICAgPT4gJ2luIHByb2dyZXNzJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+IHsKICAgICAgICAgICAgICAgIEFnZW50ID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYWt0dWFsaXNpZXJ0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd3VyZGUgYWt0dWFsaXNpZXJ0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudERlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHdhcyB1cGRhdGVkLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudEVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gZnJpc3PDrXR2ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGcmlzc8O8bHQgYSBrw7Z2ZXRrZXrFkSB2w6FsdG96w6FzOiA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGJpamdld2Vya3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBpcyBiaWpnZXdlcmt0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudE5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBDdXN0b21lciA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGFrdHVhbGlzaWVydCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHd1cmRlIGFrdHVhbGlzaWVydC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJEZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIHVwZGF0ZWQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3YXMgdXBkYXRlZC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGZyaXNzw610dmUnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRnJpc3PDvGx0IGEga8O2dmV0a2V6xZEgdsOhbHRvesOhczogPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVySHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBiaWpnZXdlcmt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaXMgYmlqZ2V3ZXJrdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJObCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZWNpcGllbnRzID0+IFsgJ0NoYW5nZU1hbmFnZXInLCAnV29ya09yZGVyQWdlbnRzJyBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ3N1Y2Nlc3NmdWwgY2hhbmdlcycsCiAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAnQ2hhbmdlU3RhdGUnLAogICAgICAgICAgICBFdmVudCAgICAgPT4gJ0NoYW5nZVVwZGF0ZScsCiAgICAgICAgICAgIFZhbGlkSUQgICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICAgPT4gJ2luZm9ybSByZWNpcGllbnRzIHRoYXQgYSBjaGFuZ2Ugd2FzIHN1Y2Nlc3NmdWwnLAogICAgICAgICAgICBSdWxlICAgICAgPT4gJ3N1Y2Nlc3NmdWwnLAogICAgICAgICAgICBNZXNzYWdlICAgPT4gewogICAgICAgICAgICAgICAgQWdlbnQgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBha3R1YWxpc2llcnQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3dXJkZSBha3R1YWxpc2llcnQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSB1cGRhdGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd2FzIHVwZGF0ZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBmcmlzc8OtdHZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZyaXNzw7xsdCBhIGvDtnZldGtlesWRIHbDoWx0b3rDoXM6IDxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudEh1LAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBubCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYmlqZ2V3ZXJrdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGlzIGJpamdld2Vya3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50TmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYWt0dWFsaXNpZXJ0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd3VyZGUgYWt0dWFsaXNpZXJ0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckRlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHdhcyB1cGRhdGVkLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gZnJpc3PDrXR2ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGcmlzc8O8bHQgYSBrw7Z2ZXRrZXrFkSB2w6FsdG96w6FzOiA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGJpamdld2Vya3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBpcyBiaWpnZXdlcmt0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lck5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlY2lwaWVudHMgPT4gWwogICAgICAgICAgICAgICAgJ0NoYW5nZUJ1aWxkZXInLCAnQ2hhbmdlSW5pdGlhdG9ycycsICdDQUJDdXN0b21lcnMnLCAnQ0FCQWdlbnRzJywgJ1dvcmtPcmRlckFnZW50cycsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnZmFpbGVkIGNoYW5nZXMnLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJ0NoYW5nZVN0YXRlJywKICAgICAgICAgICAgRXZlbnQgICAgID0+ICdDaGFuZ2VVcGRhdGUnLAogICAgICAgICAgICBWYWxpZElEICAgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICdpbmZvcm0gcmVjaXBpZW50cyB0aGF0IGEgY2hhbmdlIGZhaWxlZCcsCiAgICAgICAgICAgIFJ1bGUgICAgICA9PiAnZmFpbGVkJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+IHsKICAgICAgICAgICAgICAgIEFnZW50ID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYWt0dWFsaXNpZXJ0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd3VyZGUgYWt0dWFsaXNpZXJ0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudERlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHdhcyB1cGRhdGVkLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudEVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gZnJpc3PDrXR2ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGcmlzc8O8bHQgYSBrw7Z2ZXRrZXrFkSB2w6FsdG96w6FzOiA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGJpamdld2Vya3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBpcyBiaWpnZXdlcmt0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudE5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBDdXN0b21lciA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGFrdHVhbGlzaWVydCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHd1cmRlIGFrdHVhbGlzaWVydC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJEZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIHVwZGF0ZWQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3YXMgdXBkYXRlZC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGZyaXNzw610dmUnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRnJpc3PDvGx0IGEga8O2dmV0a2V6xZEgdsOhbHRvesOhczogPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVySHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBiaWpnZXdlcmt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaXMgYmlqZ2V3ZXJrdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJObCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZWNpcGllbnRzID0+IFsKICAgICAgICAgICAgICAgICdDaGFuZ2VCdWlsZGVyJywgJ0NoYW5nZUluaXRpYXRvcnMnLCAnQ0FCQ3VzdG9tZXJzJywgJ0NBQkFnZW50cycsICdXb3JrT3JkZXJBZ2VudHMnLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ2NhbmNlbGVkIGNoYW5nZXMnLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJ0NoYW5nZVN0YXRlJywKICAgICAgICAgICAgRXZlbnQgICAgID0+ICdDaGFuZ2VVcGRhdGUnLAogICAgICAgICAgICBWYWxpZElEICAgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICdpbmZvcm0gcmVjaXBpZW50cyB0aGF0IGEgY2hhbmdlIHdhcyBjYW5jZWxlZCcsCiAgICAgICAgICAgIFJ1bGUgICAgICA9PiAnY2FuY2VsZWQnLAogICAgICAgICAgICBNZXNzYWdlICAgPT4gewogICAgICAgICAgICAgICAgQWdlbnQgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBha3R1YWxpc2llcnQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3dXJkZSBha3R1YWxpc2llcnQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSB1cGRhdGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd2FzIHVwZGF0ZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBmcmlzc8OtdHZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZyaXNzw7xsdCBhIGvDtnZldGtlesWRIHbDoWx0b3rDoXM6IDxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudEh1LAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBubCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYmlqZ2V3ZXJrdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGlzIGJpamdld2Vya3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50TmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYWt0dWFsaXNpZXJ0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd3VyZGUgYWt0dWFsaXNpZXJ0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckRlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHdhcyB1cGRhdGVkLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gZnJpc3PDrXR2ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGcmlzc8O8bHQgYSBrw7Z2ZXRrZXrFkSB2w6FsdG96w6FzOiA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGJpamdld2Vya3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBpcyBiaWpnZXdlcmt0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lck5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlY2lwaWVudHMgPT4gWyAnQ2hhbmdlQnVpbGRlcicsICdDaGFuZ2VNYW5hZ2VyJyBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ3JldHJhY3RlZCBjaGFuZ2VzJywKICAgICAgICAgICAgQXR0cmlidXRlID0+ICdDaGFuZ2VTdGF0ZScsCiAgICAgICAgICAgIEV2ZW50ICAgICA9PiAnQ2hhbmdlVXBkYXRlJywKICAgICAgICAgICAgVmFsaWRJRCAgID0+IDEsCiAgICAgICAgICAgIENvbW1lbnQgICA9PiAnaW5mb3JtIHJlY2lwaWVudHMgdGhhdCBhIGNoYW5nZSB3YXMgcmV0cmFjdGVkJywKICAgICAgICAgICAgUnVsZSAgICAgID0+ICdyZXRyYWN0ZWQnLAogICAgICAgICAgICBNZXNzYWdlICAgPT4gewogICAgICAgICAgICAgICAgQWdlbnQgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBha3R1YWxpc2llcnQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3dXJkZSBha3R1YWxpc2llcnQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSB1cGRhdGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd2FzIHVwZGF0ZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBmcmlzc8OtdHZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZyaXNzw7xsdCBhIGvDtnZldGtlesWRIHbDoWx0b3rDoXM6IDxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudEh1LAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBubCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYmlqZ2V3ZXJrdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGlzIGJpamdld2Vya3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50TmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYWt0dWFsaXNpZXJ0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd3VyZGUgYWt0dWFsaXNpZXJ0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckRlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHdhcyB1cGRhdGVkLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gZnJpc3PDrXR2ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGcmlzc8O8bHQgYSBrw7Z2ZXRrZXrFkSB2w6FsdG96w6FzOiA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGJpamdld2Vya3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBpcyBiaWpnZXdlcmt0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lck5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlY2lwaWVudHMgPT4gWwogICAgICAgICAgICAgICAgJ0NoYW5nZUJ1aWxkZXInLCAnQ2hhbmdlSW5pdGlhdG9ycycsICdDQUJDdXN0b21lcnMnLCAnQ0FCQWdlbnRzJywgJ1dvcmtPcmRlckFnZW50cycsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnQ2hhbmdlTWFuYWdlciB1cGRhdGUnLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJ0NoYW5nZU1hbmFnZXJJRCcsCiAgICAgICAgICAgIEV2ZW50ICAgICA9PiAnQ2hhbmdlVXBkYXRlJywKICAgICAgICAgICAgVmFsaWRJRCAgID0+IDEsCiAgICAgICAgICAgIENvbW1lbnQgICA9PiAnaW5mb3JtIHJlY2lwaWVudHMgdGhhdCB0aGUgY2hhbmdlbWFuYWdlciB3YXMgcmVwbGFjZWQnLAogICAgICAgICAgICBSdWxlICAgICAgPT4gJy4qJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+IHsKICAgICAgICAgICAgICAgIEFnZW50ID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYWt0dWFsaXNpZXJ0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd3VyZGUgYWt0dWFsaXNpZXJ0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudERlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHdhcyB1cGRhdGVkLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudEVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gZnJpc3PDrXR2ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGcmlzc8O8bHQgYSBrw7Z2ZXRrZXrFkSB2w6FsdG96w6FzOiA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGJpamdld2Vya3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBpcyBiaWpnZXdlcmt0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudE5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBDdXN0b21lciA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGFrdHVhbGlzaWVydCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHd1cmRlIGFrdHVhbGlzaWVydC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJEZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIHVwZGF0ZWQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3YXMgdXBkYXRlZC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGZyaXNzw610dmUnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRnJpc3PDvGx0IGEga8O2dmV0a2V6xZEgdsOhbHRvesOhczogPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVySHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBiaWpnZXdlcmt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaXMgYmlqZ2V3ZXJrdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJObCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZWNpcGllbnRzID0+IFsKICAgICAgICAgICAgICAgICdDaGFuZ2VNYW5hZ2VyJywgJ09sZENoYW5nZU1hbmFnZXInLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0NoYW5nZUJ1aWxkZXIgdXBkYXRlJywKICAgICAgICAgICAgQXR0cmlidXRlID0+ICdDaGFuZ2VCdWlsZGVySUQnLAogICAgICAgICAgICBFdmVudCAgICAgPT4gJ0NoYW5nZVVwZGF0ZScsCiAgICAgICAgICAgIFZhbGlkSUQgICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICAgPT4gJ2luZm9ybSByZWNpcGllbnRzIHRoYXQgdGhlIGNoYW5nZWJ1aWxkZXIgd2FzIHJlcGxhY2VkJywKICAgICAgICAgICAgUnVsZSAgICAgID0+ICcuKicsCiAgICAgICAgICAgIE1lc3NhZ2UgICA9PiB7CiAgICAgICAgICAgICAgICBBZ2VudCA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGFrdHVhbGlzaWVydCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHd1cmRlIGFrdHVhbGlzaWVydC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnREZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIHVwZGF0ZWQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3YXMgdXBkYXRlZC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGZyaXNzw610dmUnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRnJpc3PDvGx0IGEga8O2dmV0a2V6xZEgdsOhbHRvesOhczogPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50SHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBiaWpnZXdlcmt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaXMgYmlqZ2V3ZXJrdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRObCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQ3VzdG9tZXIgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBha3R1YWxpc2llcnQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3dXJkZSBha3R1YWxpc2llcnQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyRGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSB1cGRhdGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd2FzIHVwZGF0ZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyRW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBmcmlzc8OtdHZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZyaXNzw7xsdCBhIGvDtnZldGtlesWRIHbDoWx0b3rDoXM6IDxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckh1LAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBubCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYmlqZ2V3ZXJrdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGlzIGJpamdld2Vya3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyTmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVjaXBpZW50cyA9PiBbCiAgICAgICAgICAgICAgICAnQ2hhbmdlTWFuYWdlcicsICdDaGFuZ2VCdWlsZGVyJywgJ09sZENoYW5nZUJ1aWxkZXInLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ25ldyB3b3Jrb3JkZXInLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJycsCiAgICAgICAgICAgIEV2ZW50ICAgICA9PiAnV29ya09yZGVyQWRkJywKICAgICAgICAgICAgVmFsaWRJRCAgID0+IDEsCiAgICAgICAgICAgIENvbW1lbnQgICA9PiAnaW5mb3JtIHJlY2lwaWVudHMgdGhhdCBhIHdvcmtvcmRlciB3YXMgYWRkZWQnLAogICAgICAgICAgICBSdWxlICAgICAgPT4gJycsCiAgICAgICAgICAgIE1lc3NhZ2UgICA9PiB7CiAgICAgICAgICAgICAgICBBZ2VudCA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBuZXUgZXJzdGVsbHQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gd3VyZGUgbmV1IGVyc3RlbGx0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlckluZm9BZ2VudERlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGNyZWF0ZWQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gd2FzIGNyZWF0ZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50RW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gbMOpdHJlaG96dmEnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTMOpdHJlasO2dHQgYSBrw7Z2ZXRrZXrFkSBtdW5rYW1lZ3JlbmRlbMOpczogPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50SHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gYWFuZ2VtYWFrdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiBpcyBhYW5nZW1hYWt0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlckluZm9BZ2VudE5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBDdXN0b21lciA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBuZXUgZXJzdGVsbHQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gd3VyZGUgbmV1IGVyc3RlbGx0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlckluZm9DdXN0b21lckRlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGNyZWF0ZWQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gd2FzIGNyZWF0ZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0N1c3RvbWVyRW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gbMOpdHJlaG96dmEnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTMOpdHJlasO2dHQgYSBrw7Z2ZXRrZXrFkSBtdW5rYW1lZ3JlbmRlbMOpczogPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0N1c3RvbWVySHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gYWFuZ2VtYWFrdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiBpcyBhYW5nZW1hYWt0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlckluZm9DdXN0b21lck5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlY2lwaWVudHMgPT4gWwogICAgICAgICAgICAgICAgJ0NoYW5nZUJ1aWxkZXInLCAnV29ya09yZGVyQWdlbnQnLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ3VwZGF0ZWQgc3RhdGUgZm9yIHdvcmtvcmRlcicsCiAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAnV29ya09yZGVyU3RhdGUnLAogICAgICAgICAgICBFdmVudCAgICAgPT4gJ1dvcmtPcmRlclVwZGF0ZScsCiAgICAgICAgICAgIFZhbGlkSUQgICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICAgPT4gJ2luZm9ybSByZWNpcGllbnRzIHRoYXQgYSB0aGUgc3RhdGUgb2YgYSB3b3Jrb3JkZXIgd2FzIGNoYW5nZWQnLAogICAgICAgICAgICBSdWxlICAgICAgPT4gJy4qJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+IHsKICAgICAgICAgICAgICAgIEFnZW50ID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGFrdHVhbGlzaWVydCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiB3dXJkZSBha3R1YWxpc2llcnQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50RGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiB3YXMgdXBkYXRlZC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQWdlbnRFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBmcmlzc8OtdHZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZyaXNzw7xsdCBhIGvDtnZldGtlesWRIG11bmthbWVncmVuZGVsw6lzOiA8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQWdlbnRIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBiaWpnZXdlcmt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+IGlzIGJpamdld2Vya3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50TmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGFrdHVhbGlzaWVydCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiB3dXJkZSBha3R1YWxpc2llcnQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0N1c3RvbWVyRGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiB3YXMgdXBkYXRlZC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQ3VzdG9tZXJFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBmcmlzc8OtdHZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZyaXNzw7xsdCBhIGvDtnZldGtlesWRIG11bmthbWVncmVuZGVsw6lzOiA8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQ3VzdG9tZXJIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBiaWpnZXdlcmt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+IGlzIGJpamdld2Vya3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0N1c3RvbWVyTmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVjaXBpZW50cyA9PiBbCiAgICAgICAgICAgICAgICAnQ2hhbmdlQnVpbGRlcicsICdXb3JrT3JkZXJBZ2VudHMnLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ3VwZGF0ZWQgd29ya29yZGVyIGFnZW50IGZvciB3b3Jrb3JkZXInLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJ1dvcmtPcmRlckFnZW50SUQnLAogICAgICAgICAgICBFdmVudCAgICAgPT4gJ1dvcmtPcmRlclVwZGF0ZScsCiAgICAgICAgICAgIFZhbGlkSUQgICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICAgPT4gJ2luZm9ybSByZWNpcGllbnRzIHRoYXQgdGhlIHdvcmtvcmRlciBhZ2VudCB3YXMgcmVwbGFjZWQnLAogICAgICAgICAgICBSdWxlICAgICAgPT4gJy4qJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+IHsKICAgICAgICAgICAgICAgIEFnZW50ID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGFrdHVhbGlzaWVydCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiB3dXJkZSBha3R1YWxpc2llcnQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50RGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiB3YXMgdXBkYXRlZC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQWdlbnRFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBmcmlzc8OtdHZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZyaXNzw7xsdCBhIGvDtnZldGtlesWRIG11bmthbWVncmVuZGVsw6lzOiA8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQWdlbnRIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBiaWpnZXdlcmt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+IGlzIGJpamdld2Vya3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50TmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGFrdHVhbGlzaWVydCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiB3dXJkZSBha3R1YWxpc2llcnQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0N1c3RvbWVyRGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiB3YXMgdXBkYXRlZC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQ3VzdG9tZXJFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBmcmlzc8OtdHZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZyaXNzw7xsdCBhIGvDtnZldGtlesWRIG11bmthbWVncmVuZGVsw6lzOiA8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQ3VzdG9tZXJIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBiaWpnZXdlcmt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+IGlzIGJpamdld2Vya3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0N1c3RvbWVyTmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVjaXBpZW50cyA9PiBbCiAgICAgICAgICAgICAgICAnQ2hhbmdlQnVpbGRlcicsICdXb3JrT3JkZXJBZ2VudCcsICdPbGRXb3JrT3JkZXJBZ2VudCcsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAndGlja2V0IGxpbmtlZCB0byBjaGFuZ2UnLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJycsCiAgICAgICAgICAgIEV2ZW50ICAgICA9PiAnQ2hhbmdlTGlua0FkZCcsCiAgICAgICAgICAgIFZhbGlkSUQgICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICAgPT4gJ2luZm9ybSByZWNpcGllbnRzIHRoYXQgYSB0aWNrZXQgd2FzIGxpbmtlZCB0byB0aGUgY2hhbmdlJywKICAgICAgICAgICAgUnVsZSAgICAgID0+ICcnLAogICAgICAgICAgICBNZXNzYWdlICAgPT4gewogICAgICAgICAgICAgICAgQWdlbnQgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gPE9UUlNfTElOS19PYmplY3Q+IHZlcmtuw7xwZnQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd3VyZGUgbWl0IGVpbmVtIDxPVFJTX0xJTktfT2JqZWN0PiB2ZXJrbsO8cGZ0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudERlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIDxPVFJTX0xJTktfT2JqZWN0PiBsaW5rZWQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd2FzIGxpbmtlZCB0byBhIDxPVFJTX0xJTktfT2JqZWN0PiAuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gPE9UUlNfTElOS19PYmplY3Q+IMO2c3N6ZWthcGNzb2x2YScsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBKHopIDxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHbDoWx0b3rDoXN0IMO2c3N6ZWthcGNzb2x0w6FrIGVneSA8T1RSU19MSU5LX09iamVjdD4gb2JqZWt0dW1tYWwuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50SHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gPE9UUlNfTElOS19PYmplY3Q+IGxpbmtlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBpcyBnZWtvcHBlbGQgYWFuIGVlbiA8T1RSU19MSU5LX09iamVjdD4gLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudE5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBDdXN0b21lciA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSA8T1RSU19MSU5LX09iamVjdD4gdmVya27DvHBmdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3dXJkZSBtaXQgZWluZW0gPE9UUlNfTElOS19PYmplY3Q+IHZlcmtuw7xwZnQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyRGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gPE9UUlNfTElOS19PYmplY3Q+IGxpbmtlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB3YXMgbGlua2VkIHRvIGEgPE9UUlNfTElOS19PYmplY3Q+IC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSA8T1RSU19MSU5LX09iamVjdD4gw7Zzc3pla2FwY3NvbHZhJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0EoeikgPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gdsOhbHRvesOhc3Qgw7Zzc3pla2FwY3NvbHTDoWsgZWd5IDxPVFJTX0xJTktfT2JqZWN0PiBvYmpla3R1bW1hbC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSA8T1RSU19MSU5LX09iamVjdD4gZ2Vrb3BwZWxkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGlzIGdla29wcGVsZCBhYW4gZWVuIDxPVFJTX0xJTktfT2JqZWN0PiAuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyTmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVjaXBpZW50cyA9PiBbCiAgICAgICAgICAgICAgICAnQ2hhbmdlQnVpbGRlcicsICdDaGFuZ2VJbml0aWF0b3JzJywKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdwbGFubmVkIHN0YXJ0IHRpbWUgb2YgY2hhbmdlIHJlYWNoZWQnLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJycsCiAgICAgICAgICAgIEV2ZW50ICAgICA9PiAnQ2hhbmdlUGxhbm5lZFN0YXJ0VGltZVJlYWNoZWQnLAogICAgICAgICAgICBWYWxpZElEICAgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICdpbmZvcm0gcmVjaXBpZW50cyB0aGF0IGEgY2hhbmdlIGhhcyByZWFjaGVkIHRoZSBwbGFubmVkIHN0YXJ0IHRpbWUnLAogICAgICAgICAgICBSdWxlICAgICAgPT4gJycsCiAgICAgICAgICAgIE1lc3NhZ2UgICA9PiB7CiAgICAgICAgICAgICAgICBBZ2VudCA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBnZXBsYW50ZSBTdGFydHplaXQgZXJyZWljaHQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaGF0IGRpZSBnZXBsYW50ZSBTdGFydHplaXQgZXJyZWljaHQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gUGxhbm5lZCBTdGFydCBUaW1lIHJlYWNoZWQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaGFzIHJlYWNoZWQgaXRzIFBsYW5uZWQgU3RhcnQgVGltZS4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSB0ZXJ2ZXpldHQga2V6ZMOpc2kgaWTFkSBlbMOpcnZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0EoeikgPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gdsOhbHRvesOhcyBlbMOpcnRlIGEgdGVydmV6ZXR0IGtlemTDqXNpIGlkZWrDqXQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50SHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gZ2VwbGFuZGUgc3RhcnR0aWpkIGJlcmVpa3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaGVlZnQgZGUgZ2VwbGFuZGUgc3RhcnR0aWpkIGJlcmVpa3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50TmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGdlcGxhbnRlIFN0YXJ0emVpdCBlcnJlaWNodCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBoYXQgZGllIGdlcGxhbnRlIFN0YXJ0emVpdCBlcnJlaWNodC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJEZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBQbGFubmVkIFN0YXJ0IFRpbWUgcmVhY2hlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBoYXMgcmVhY2hlZCBpdHMgUGxhbm5lZCBTdGFydCBUaW1lLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIHRlcnZlemV0dCBrZXpkw6lzaSBpZMWRIGVsw6lydmUnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQSh6KSA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB2w6FsdG96w6FzIGVsw6lydGUgYSB0ZXJ2ZXpldHQga2V6ZMOpc2kgaWRlasOpdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBnZXBsYW5kZSBzdGFydHRpamQgYmVyZWlrdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBoZWVmdCBkZSBnZXBsYW5kZSBzdGFydHRpamQgYmVyZWlrdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJObCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZWNpcGllbnRzID0+IFsKICAgICAgICAgICAgICAgICdDaGFuZ2VCdWlsZGVyJywgJ0NoYW5nZU1hbmFnZXInLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ3BsYW5uZWQgZW5kIHRpbWUgb2YgY2hhbmdlIHJlYWNoZWQnLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJycsCiAgICAgICAgICAgIEV2ZW50ICAgICA9PiAnQ2hhbmdlUGxhbm5lZEVuZFRpbWVSZWFjaGVkJywKICAgICAgICAgICAgVmFsaWRJRCAgID0+IDEsCiAgICAgICAgICAgIENvbW1lbnQgICA9PiAnaW5mb3JtIHJlY2lwaWVudHMgdGhhdCBhIGNoYW5nZSBoYXMgcmVhY2hlZCB0aGUgcGxhbm5lZCBlbmQgdGltZScsCiAgICAgICAgICAgIFJ1bGUgICAgICA9PiAnJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+IHsKICAgICAgICAgICAgICAgIEFnZW50ID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGdlcGxhbnRlIEVuZHplaXQgZXJyZWljaHQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaGF0IGRpZSBnZXBsYW50ZSBFbmR6ZWl0IGVycmVpY2h0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudERlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIFBsYW5uZWQgRW5kIFRpbWUgcmVhY2hlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBoYXMgcmVhY2hlZCBpdHMgUGxhbm5lZCBFbmQgVGltZS4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSB0ZXJ2ZXpldHQgYmVmZWplesOpc2kgaWTFkSBlbMOpcnZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0EoeikgPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gdsOhbHRvesOhcyBlbMOpcnRlIGEgdGVydmV6ZXR0IGJlZmVqZXrDqXNpIGlkZWrDqXQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50SHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gZ2VwbGFuZGUgZWluZHR0aWpkIGJlcmVpa3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaGVlZnQgZGUgZ2VwbGFuZGUgZWluZHRpamQgYmVyZWlrdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRObCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQ3VzdG9tZXIgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gZ2VwbGFudGUgRW5kemVpdCBlcnJlaWNodCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBoYXQgZGllIGdlcGxhbnRlIEVuZHplaXQgZXJyZWljaHQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyRGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gUGxhbm5lZCBFbmQgVGltZSByZWFjaGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGhhcyByZWFjaGVkIGl0cyBQbGFubmVkIEVuZCBUaW1lLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIHRlcnZlemV0dCBiZWZlamV6w6lzaSBpZMWRIGVsw6lydmUnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQSh6KSA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB2w6FsdG96w6FzIGVsw6lydGUgYSB0ZXJ2ZXpldHQgYmVmZWplesOpc2kgaWRlasOpdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBnZXBsYW5kZSBlaW5kdGlqZCBiZXJlaWt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGhlZWZ0IGRlIGdlcGxhbmRlIGVpbmR0aWpkIGJlcmVpa3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyTmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVjaXBpZW50cyA9PiBbCiAgICAgICAgICAgICAgICAnQ2hhbmdlQnVpbGRlcicsICdDaGFuZ2VNYW5hZ2VyJywKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdhY3R1YWwgc3RhcnQgdGltZSBvZiBjaGFuZ2UgcmVhY2hlZCcsCiAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAnJywKICAgICAgICAgICAgRXZlbnQgICAgID0+ICdDaGFuZ2VBY3R1YWxTdGFydFRpbWVSZWFjaGVkJywKICAgICAgICAgICAgVmFsaWRJRCAgID0+IDEsCiAgICAgICAgICAgIENvbW1lbnQgICA9PiAnaW5mb3JtIHJlY2lwaWVudHMgdGhhdCBhIGNoYW5nZSBoYXMgcmVhY2hlZCB0aGUgYWN0dWFsIHN0YXJ0IHRpbWUnLAogICAgICAgICAgICBSdWxlICAgICAgPT4gJycsCiAgICAgICAgICAgIE1lc3NhZ2UgICA9PiB7CiAgICAgICAgICAgICAgICBBZ2VudCA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGJlZ29ubmVuJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd3VyZGUgYmVnb25uZW4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBzdGFydGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaGFzIHN0YXJ0ZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBlbGtlemTFkWTDtnR0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Vsa2V6ZMWRZMO2dHQgYSBrw7Z2ZXRrZXrFkSB2w6FsdG96w6FzOiA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGdlc3RhcnQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBpcyBnZXN0YXJ0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudE5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBDdXN0b21lciA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGJlZ29ubmVuJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd3VyZGUgYmVnb25uZW4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyRGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBzdGFydGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaGFzIHN0YXJ0ZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyRW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBlbGtlemTFkWTDtnR0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Vsa2V6ZMWRZMO2dHQgYSBrw7Z2ZXRrZXrFkSB2w6FsdG96w6FzOiA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGdlc3RhcnQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+ICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBpcyBnZXN0YXJ0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lck5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlY2lwaWVudHMgPT4gWwogICAgICAgICAgICAgICAgJ0NoYW5nZUJ1aWxkZXInLCAnQ2hhbmdlTWFuYWdlcicsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnYWN0dWFsIGVuZCB0aW1lIG9mIGNoYW5nZSByZWFjaGVkJywKICAgICAgICAgICAgQXR0cmlidXRlID0+ICcnLAogICAgICAgICAgICBFdmVudCAgICAgPT4gJ0NoYW5nZUFjdHVhbEVuZFRpbWVSZWFjaGVkJywKICAgICAgICAgICAgVmFsaWRJRCAgID0+IDEsCiAgICAgICAgICAgIENvbW1lbnQgICA9PiAnaW5mb3JtIHJlY2lwaWVudHMgdGhhdCBhIGNoYW5nZSBoYXMgcmVhY2hlZCB0aGUgYWN0dWFsIGVuZCB0aW1lJywKICAgICAgICAgICAgUnVsZSAgICAgID0+ICcnLAogICAgICAgICAgICBNZXNzYWdlICAgPT4gewogICAgICAgICAgICAgICAgQWdlbnQgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBhYmdlc2NobG9zc2VuJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd3VyZGUgYWJnZXNjaGxvc3Nlbi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnREZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGZpbmlzaGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gd2FzIGZpbmlzaGVkLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudEVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYmVmZWplesWRZMO2dHQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmVmZWplesWRZMO2dHQgYSBrw7Z2ZXRrZXrFkSB2w6FsdG96w6FzOiA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQWdlbnRIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGFmZ2Vyb25kJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PiAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaXMgYWZnZXJvbmQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50TmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gYWJnZXNjaGxvc3NlbicsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHd1cmRlIGFiZ2VzY2hsb3NzZW4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVyRGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBmaW5pc2hlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IHdhcyBmaW5pc2hlZC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGJlZmVqZXrFkWTDtnR0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JlZmVqZXrFkWTDtnR0IGEga8O2dmV0a2V6xZEgdsOhbHRvesOhczogPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0N1c3RvbWVySHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBhZmdlcm9uZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4gJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGlzIGFmZ2Vyb25kLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lck5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlY2lwaWVudHMgPT4gWwogICAgICAgICAgICAgICAgJ0NoYW5nZUJ1aWxkZXInLCAnQ2hhbmdlTWFuYWdlcicsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAncmVxdWVzdGVkIHRpbWUgb2YgY2hhbmdlIHJlYWNoZWQnLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJycsCiAgICAgICAgICAgIEV2ZW50ICAgICA9PiAnQ2hhbmdlUmVxdWVzdGVkVGltZVJlYWNoZWQnLAogICAgICAgICAgICBWYWxpZElEICAgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICdpbmZvcm0gcmVjaXBpZW50cyB0aGF0IGEgY2hhbmdlIGhhcyByZWFjaGVkIHRoZSByZXF1ZXN0ZWQgdGltZScsCiAgICAgICAgICAgIFJ1bGUgICAgICA9PiAnJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+IHsKICAgICAgICAgICAgICAgIEFnZW50ID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIEdld8O8bnNjaHRlIEZlcnRpZ3N0ZWxsdW5nc3plaXQgZXJyZWljaHQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaGF0IGRpZSBnZXfDvG5zY2h0ZSBGZXJ0aWdzdGVsbHVuZ3N6ZWl0IGVycmVpY2h0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudERlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gcmVxdWVzdGVkIHRpbWUgcmVhY2hlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgICAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBoYXMgcmVhY2hlZCBpdHMgcmVxdWVzdGVkIHRpbWUuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ2hhbmdlSW5mb0FnZW50RW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PiAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBrw6lydCBpZMWRIGVsw6lydmUnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQSh6KSA8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiB2w6FsdG96w6FzIGVsw6lydGUgYSBrw6lydCBpZGVqw6l0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudEh1LAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBubCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIGFhbmdldnJhYWdkIHRpamRzdGlwIGJlcmVpa3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaGVlZnQgaGV0IGFhbmdldnJhYWdkZSB0aWpkc3RpcCBiZXJlaWt0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9BZ2VudE5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBDdXN0b21lciA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBHZXfDvG5zY2h0ZSBGZXJ0aWdzdGVsbHVuZ3N6ZWl0IGVycmVpY2h0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGhhdCBkaWUgZ2V3w7xuc2NodGUgRmVydGlnc3RlbGx1bmdzemVpdCBlcnJlaWNodC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJEZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+ICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIHJlcXVlc3RlZCB0aW1lIHJlYWNoZWQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gaGFzIHJlYWNoZWQgaXRzIHJlcXVlc3RlZCB0aW1lLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJENoYW5nZUluZm9DdXN0b21lckVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4gJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0ga8OpcnQgaWTFkSBlbMOpcnZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0EoeikgPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gdsOhbHRvesOhcyBlbMOpcnRlIGEga8OpcnQgaWRlasOpdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBhYW5nZXZyYWFnZCB0aWpkc3RpcCBiZXJlaWt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IGhlZWZ0IGhldCBhYW5nZXZyYWFnZGUgdGlqZHN0aXAgYmVyZWlrdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRDaGFuZ2VJbmZvQ3VzdG9tZXJObCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZWNpcGllbnRzID0+IFsKICAgICAgICAgICAgICAgICdDaGFuZ2VCdWlsZGVyJywgJ0NoYW5nZU1hbmFnZXInLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ3BsYW5uZWQgc3RhcnQgdGltZSBvZiB3b3Jrb3JkZXIgcmVhY2hlZCcsCiAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAnJywKICAgICAgICAgICAgRXZlbnQgICAgID0+ICdXb3JrT3JkZXJQbGFubmVkU3RhcnRUaW1lUmVhY2hlZCcsCiAgICAgICAgICAgIFZhbGlkSUQgICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICAgPT4gJ2luZm9ybSByZWNpcGllbnRzIHRoYXQgYSB3b3Jrb3JkZXIgaGFzIHJlYWNoZWQgdGhlIHBsYW5uZWQgc3RhcnQgdGltZScsCiAgICAgICAgICAgIFJ1bGUgICAgICA9PiAnJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+IHsKICAgICAgICAgICAgICAgIEFnZW50ID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGdlcGxhbnRlIFN0YXJ0emVpdCBlcnJlaWNodCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiBoYXQgZGllIGdlcGxhbnRlIFN0YXJ0emVpdCBlcnJlaWNodC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQWdlbnREZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBQbGFubmVkIFN0YXJ0IFRpbWUgcmVhY2hlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiBoYXMgcmVhY2hlZCB0aGUgUGxhbm5lZCBTdGFydCBUaW1lLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlckluZm9BZ2VudEVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIHRlcnZlemV0dCBrZXpkw6lzaSBpZMWRIGVsw6lydmUnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQSh6KSA8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiBtdW5rYW1lZ3JlbmRlbMOpcyBlbMOpcnRlIGEgdGVydmV6ZXR0IGtlemTDqXNpIGlkZWrDqXQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50SHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gZ2VwbGFuZGUgc3RhcnR0aWpkIGJlcmVpa3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gaGVlZnQgZGUgZ2VwbGFuZGUgc3RhcnR0aWpkIGJlcmVpa3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50TmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGdlcGxhbnRlIFN0YXJ0emVpdCBlcnJlaWNodCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiBoYXQgZGllIGdlcGxhbnRlIFN0YXJ0emVpdCBlcnJlaWNodC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQ3VzdG9tZXJEZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBQbGFubmVkIFN0YXJ0IFRpbWUgcmVhY2hlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiBoYXMgcmVhY2hlZCB0aGUgUGxhbm5lZCBTdGFydCBUaW1lLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlckluZm9DdXN0b21lckVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIHRlcnZlemV0dCBrZXpkw6lzaSBpZMWRIGVsw6lydmUnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQSh6KSA8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiBtdW5rYW1lZ3JlbmRlbMOpcyBlbMOpcnRlIGEgdGVydmV6ZXR0IGtlemTDqXNpIGlkZWrDqXQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0N1c3RvbWVySHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gZ2VwbGFuZGUgc3RhcnR0aWpkIGJlcmVpa3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gaGVlZnQgZGUgZ2VwbGFuZGUgc3RhcnR0aWpkIGJlcmVpa3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0N1c3RvbWVyTmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVjaXBpZW50cyA9PiBbCiAgICAgICAgICAgICAgICAnV29ya09yZGVyQWdlbnQnLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ3BsYW5uZWQgZW5kIHRpbWUgb2Ygd29ya29yZGVyIHJlYWNoZWQnLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJycsCiAgICAgICAgICAgIEV2ZW50ICAgICA9PiAnV29ya09yZGVyUGxhbm5lZEVuZFRpbWVSZWFjaGVkJywKICAgICAgICAgICAgVmFsaWRJRCAgID0+IDEsCiAgICAgICAgICAgIENvbW1lbnQgICA9PiAnaW5mb3JtIHJlY2lwaWVudHMgdGhhdCBhIHdvcmtvcmRlciBoYXMgcmVhY2hlZCB0aGUgcGxhbm5lZCBlbmQgdGltZScsCiAgICAgICAgICAgIFJ1bGUgICAgICA9PiAnJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+IHsKICAgICAgICAgICAgICAgIEFnZW50ID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGdlcGxhbnRlIEVuZHplaXQgZXJyZWljaHQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gaGF0IGRpZSBnZXBsYW50ZSBFbmR6ZWl0IGVycmVpY2h0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlckluZm9BZ2VudERlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIFBsYW5uZWQgRW5kIFRpbWUgcmVhY2hlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiBoYXMgcmVhY2hlZCB0aGUgUGxhbm5lZCBFbmQgVGltZS4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQWdlbnRFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSB0ZXJ2ZXpldHQgYmVmZWplesOpc2kgaWTFkSBlbMOpcnZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0EoeikgPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gbXVua2FtZWdyZW5kZWzDqXMgZWzDqXJ0ZSBhIHRlcnZlemV0dCBiZWZlamV6w6lzaSBpZGVqw6l0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlckluZm9BZ2VudEh1LAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBubCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGdlcGxhbmRlIGVpbmR0dGlqZCBiZXJlaWt0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+IGhlZWZ0IGRlIGdlcGxhbmRlIGVpbmR0aWpkIGJlcmVpa3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50TmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGdlcGxhbnRlIEVuZHplaXQgZXJyZWljaHQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gaGF0IGRpZSBnZXBsYW50ZSBFbmR6ZWl0IGVycmVpY2h0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlckluZm9DdXN0b21lckRlLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIFBsYW5uZWQgRW5kIFRpbWUgcmVhY2hlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiBoYXMgcmVhY2hlZCB0aGUgUGxhbm5lZCBFbmQgVGltZS4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQ3VzdG9tZXJFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSB0ZXJ2ZXpldHQgYmVmZWplesOpc2kgaWTFkSBlbMOpcnZlJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0EoeikgPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gbXVua2FtZWdyZW5kZWzDqXMgZWzDqXJ0ZSBhIHRlcnZlemV0dCBiZWZlamV6w6lzaSBpZGVqw6l0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlckluZm9DdXN0b21lckh1LAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBubCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGdlcGxhbmRlIGVpbmR0aWpkIGJlcmVpa3QnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gaGVlZnQgZGUgZ2VwbGFuZGUgZWluZHRpamQgYmVyZWlrdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQ3VzdG9tZXJObCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZWNpcGllbnRzID0+IFsKICAgICAgICAgICAgICAgICdXb3JrT3JkZXJBZ2VudCcsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnYWN0dWFsIHN0YXJ0IHRpbWUgb2Ygd29ya29yZGVyIHJlYWNoZWQnLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJycsCiAgICAgICAgICAgIEV2ZW50ICAgICA9PiAnV29ya09yZGVyQWN0dWFsU3RhcnRUaW1lUmVhY2hlZCcsCiAgICAgICAgICAgIFZhbGlkSUQgICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICAgPT4gJ2luZm9ybSByZWNpcGllbnRzIHRoYXQgYSB3b3Jrb3JkZXIgaGFzIHJlYWNoZWQgdGhlIGFjdHVhbCBzdGFydCB0aW1lJywKICAgICAgICAgICAgUnVsZSAgICAgID0+ICcnLAogICAgICAgICAgICBNZXNzYWdlICAgPT4gewogICAgICAgICAgICAgICAgQWdlbnQgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gYmVnb25uZW4nLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gd3VyZGUgYmVnb25uZW4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50RGUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gc3RhcnRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiBoYXMgc3RhcnRlZC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQWdlbnRFbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBlbGtlemTFkWTDtnR0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Vsa2V6ZMWRZMO2dHQgYSBrw7Z2ZXRrZXrFkSBtdW5rYW1lZ3JlbmRlbMOpczogPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50SHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gZ2VzdGFydCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiBpcyBnZXN0YXJ0LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlckluZm9BZ2VudE5sLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBDdXN0b21lciA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBiZWdvbm5lbicsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiB3dXJkZSBiZWdvbm5lbi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQ3VzdG9tZXJEZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBzdGFydGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+IGhhcyBzdGFydGVkLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJFdvcmtPcmRlckluZm9DdXN0b21lckVuLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGVsa2V6ZMWRZMO2dHQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRWxrZXpkxZFkw7Z0dCBhIGvDtnZldGtlesWRIG11bmthbWVncmVuZGVsw6lzOiA8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQ3VzdG9tZXJIdSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBnZXN0YXJ0JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+IGlzIGdlc3RhcnQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0N1c3RvbWVyTmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVjaXBpZW50cyA9PiBbCiAgICAgICAgICAgICAgICAnV29ya09yZGVyQWdlbnQnLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ2FjdHVhbCBlbmQgdGltZSBvZiB3b3Jrb3JkZXIgcmVhY2hlZCcsCiAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAnJywKICAgICAgICAgICAgRXZlbnQgICAgID0+ICdXb3JrT3JkZXJBY3R1YWxFbmRUaW1lUmVhY2hlZCcsCiAgICAgICAgICAgIFZhbGlkSUQgICA9PiAxLAogICAgICAgICAgICBDb21tZW50ICAgPT4gJ2luZm9ybSByZWNpcGllbnRzIHRoYXQgYSB3b3Jrb3JkZXIgaGFzIHJlYWNoZWQgdGhlIGFjdHVhbCBlbmQgdGltZScsCiAgICAgICAgICAgIFJ1bGUgICAgICA9PiAnJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+IHsKICAgICAgICAgICAgICAgIEFnZW50ID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGFiZ2VzY2hsb3NzZW4nLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gd3VyZGUgYWJnZXNjaGxvc3Nlbi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQWdlbnREZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBmaW5pc2hlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiB3YXMgZmluaXNoZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50RW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gYmVmZWplesWRZMO2dHQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmVmZWplesWRZMO2dHQgYSBrw7Z2ZXRrZXrFkSBtdW5rYW1lZ3JlbmRlbMOpczogPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50SHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gYWZnZXJvbmQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gaXMgYWZnZXJvbmQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0FnZW50TmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj5dIGFiZ2VzY2hsb3NzZW4nLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gd3VyZGUgYWJnZXNjaGxvc3Nlbi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRXb3JrT3JkZXJJbmZvQ3VzdG9tZXJEZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNV29ya09yZGVyOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+LTxPVFJTX1dPUktPUkRFUl9Xb3JrT3JkZXJOdW1iZXI+XSBmaW5pc2hlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPiB3YXMgZmluaXNoZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0N1c3RvbWVyRW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gYmVmZWplesWRZMO2dHQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmVmZWplesWRZMO2dHQgYSBrw7Z2ZXRrZXrFkSBtdW5rYW1lZ3JlbmRlbMOpczogPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0N1c3RvbWVySHUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTVdvcmtPcmRlcjo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPi08T1RSU19XT1JLT1JERVJfV29ya09yZGVyTnVtYmVyPl0gYWZnZXJvbmQnLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01Xb3JrT3JkZXI6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4tPE9UUlNfV09SS09SREVSX1dvcmtPcmRlck51bWJlcj4gaXMgYWZnZXJvbmQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkV29ya09yZGVySW5mb0N1c3RvbWVyTmwsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVjaXBpZW50cyA9PiBbCiAgICAgICAgICAgICAgICAnV29ya09yZGVyQWdlbnQnLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ2FjdGlvbiBleGVjdXRpb24gc3VjY2Vzc2Z1bGx5JywKICAgICAgICAgICAgQXR0cmlidXRlID0+ICdBY3Rpb25SZXN1bHQnLAogICAgICAgICAgICBFdmVudCAgICAgPT4gJ0FjdGlvbkV4ZWN1dGUnLAogICAgICAgICAgICBWYWxpZElEICAgPT4gMSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICdpbmZvcm0gcmVjaXBpZW50cyB0aGF0IGFuIGFjdGlvbiB3YXMgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5JywKICAgICAgICAgICAgUnVsZSAgICAgID0+ICdzdWNjZXNzZnVsbHknLAogICAgICAgICAgICBNZXNzYWdlICAgPT4gewogICAgICAgICAgICAgICAgQWdlbnQgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gQWt0aW9ucy1BdXNmw7xocnVuZyA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0PicsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBBa3Rpb25zLUF1c2bDvGhydW5nIDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJDaGFuZ2UgVGl0ZWw6IDxPVFJTX0NIQU5HRV9DaGFuZ2VUaXRsZT5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkFrdHVlbGxlciBDaGFuZ2UgU3RhdHVzOiA8T1RSU19DSEFOR0VfQ2hhbmdlU3RhdGU+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkNvbmRpdGlvbiBJRDogPE9UUlNfQ09ORElUSU9OX0NvbmRpdGlvbklEPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQ29uZGl0aW9uIE5hbWU6IDxPVFJTX0NPTkRJVElPTl9Db25kaXRpb25OYW1lPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJBY3Rpb24gSUQ6IDxPVFJTX0NPTkRJVElPTl9BY3Rpb25JRD5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkFrdGlvbnMtQXVzZsO8aHJ1bmc6IDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIjxPVFJTX0NPTkZJR19IdHRwVHlwZT46Ly88T1RSU19DT05GSUdfRlFETj4vPE9UUlNfQ09ORklHX1NjcmlwdEFsaWFzPmluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPTxPVFJTX0NIQU5HRV9DaGFuZ2VJRD5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiLS0gPE9UUlNfQ09ORklHX05vdGlmaWNhdGlvblNlbmRlck5hbWU+XG4iLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIEFjdGlvbiBleGVjdXRpb24gPE9UUlNfQ09ORElUSU9OX0FjdGlvblJlc3VsdD4nLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gQWN0aW9uIGV4ZWN1dGlvbiA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0Pi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQ2hhbmdlIHRpdGxlOiA8T1RSU19DSEFOR0VfQ2hhbmdlVGl0bGU+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJDdXJyZW50IGNoYW5nZSBzdGF0ZTogPE9UUlNfQ0hBTkdFX0NoYW5nZVN0YXRlPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJDb25kaXRpb24gSUQ6IDxPVFJTX0NPTkRJVElPTl9Db25kaXRpb25JRD5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkNvbmRpdGlvbiBuYW1lOiA8T1RSU19DT05ESVRJT05fQ29uZGl0aW9uTmFtZT5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQWN0aW9uIElEOiA8T1RSU19DT05ESVRJT05fQWN0aW9uSUQ+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJBY3Rpb24gZXhlY3V0aW9uOiA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0PlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICI8T1RSU19DT05GSUdfSHR0cFR5cGU+Oi8vPE9UUlNfQ09ORklHX0ZRRE4+LzxPVFJTX0NPTkZJR19TY3JpcHRBbGlhcz5pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD08T1RSU19DSEFOR0VfQ2hhbmdlSUQ+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIi0tIDxPVFJTX0NPTkZJR19Ob3RpZmljYXRpb25TZW5kZXJOYW1lPlxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaHUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBtxbF2ZWxldC12w6lncmVoYWp0w6FzOiA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0PicsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBtxbF2ZWxldC12w6lncmVoYWp0w6FzOiA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0Pi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiVsOhbHRvesOhc2PDrW06IDxPVFJTX0NIQU5HRV9DaGFuZ2VUaXRsZT5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkplbGVubGVnaSB2w6FsdG96w6Fzw6FsbGFwb3Q6IDxPVFJTX0NIQU5HRV9DaGFuZ2VTdGF0ZT5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiRmVsdMOpdGVsYXpvbm9zw610w7M6IDxPVFJTX0NPTkRJVElPTl9Db25kaXRpb25JRD5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkZlbHTDqXRlbG7DqXY6IDxPVFJTX0NPTkRJVElPTl9Db25kaXRpb25OYW1lPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJNxbF2ZWxldGF6b25vc8OtdMOzOiA8T1RSU19DT05ESVRJT05fQWN0aW9uSUQ+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJNxbF2ZWxldC12w6lncmVoYWp0w6FzOiA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0PlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICI8T1RSU19DT05GSUdfSHR0cFR5cGU+Oi8vPE9UUlNfQ09ORklHX0ZRRE4+LzxPVFJTX0NPTkZJR19TY3JpcHRBbGlhcz5pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD08T1RSU19DSEFOR0VfQ2hhbmdlSUQ+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIi0tIDxPVFJTX0NPTkZJR19Ob3RpZmljYXRpb25TZW5kZXJOYW1lPlxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBBY3RpZSB1aXRnZXZvZXJkIDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IEFjdGllIHVpdGdldm9lcmQgPE9UUlNfQ09ORElUSU9OX0FjdGlvblJlc3VsdD4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkNoYW5nZS10aXRlbDogPE9UUlNfQ0hBTkdFX0NoYW5nZVRpdGxlPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQWN0dWVsZSBjaGFuZ2Utc3RhdHVzOiA8T1RSU19DSEFOR0VfQ2hhbmdlU3RhdGU+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkNvbmRpdGllLUlEOiA8T1RSU19DT05ESVRJT05fQ29uZGl0aW9uSUQ+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJDb25kaXRpZSBuYWFtOiA8T1RSU19DT05ESVRJT05fQ29uZGl0aW9uTmFtZT5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQWN0aWUtSUQ6IDxPVFJTX0NPTkRJVElPTl9BY3Rpb25JRD5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkFjdGllIHJlc3VsdGFhdDogPE9UUlNfQ09ORElUSU9OX0FjdGlvblJlc3VsdD5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiPE9UUlNfQ09ORklHX0h0dHBUeXBlPjovLzxPVFJTX0NPTkZJR19GUUROPi88T1RSU19DT05GSUdfU2NyaXB0QWxpYXM+aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZVpvb207Q2hhbmdlSUQ9PE9UUlNfQ0hBTkdFX0NoYW5nZUlEPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICItLSA8T1RSU19DT05GSUdfTm90aWZpY2F0aW9uU2VuZGVyTmFtZT5cbiIsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgICAgICBkZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIEFrdGlvbnMtQXVzZsO8aHJ1bmcgPE9UUlNfQ09ORElUSU9OX0FjdGlvblJlc3VsdD4nLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gQWt0aW9ucy1BdXNmw7xocnVuZyA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0Pi4nLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIEFjdGlvbiBleGVjdXRpb24gPE9UUlNfQ09ORElUSU9OX0FjdGlvblJlc3VsdD4nLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gQWN0aW9uIGV4ZWN1dGlvbiA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0Pi4nLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIG3FsXZlbGV0LXbDqWdyZWhhanTDoXM6IDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IG3FsXZlbGV0LXbDqWdyZWhhanTDoXM6IDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+LicsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG5sID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gQWN0aWUgdWl0Z2V2b2VyZCA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0PicsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBBY3RpZSB1aXRnZXZvZXJkIDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+LicsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUmVjaXBpZW50cyA9PiBbCiAgICAgICAgICAgICAgICAnQ2hhbmdlQnVpbGRlcicsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnYWN0aW9uIGV4ZWN1dGlvbiB1bnN1Y2Nlc3NmdWxseScsCiAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAnQWN0aW9uUmVzdWx0JywKICAgICAgICAgICAgRXZlbnQgICAgID0+ICdBY3Rpb25FeGVjdXRlJywKICAgICAgICAgICAgVmFsaWRJRCAgID0+IDEsCiAgICAgICAgICAgIENvbW1lbnQgICA9PiAnaW5mb3JtIHJlY2lwaWVudHMgdGhhdCBhbiBhY3Rpb24gd2FzIGV4ZWN1dGVkIHVuc3VjY2Vzc2Z1bGx5JywKICAgICAgICAgICAgUnVsZSAgICAgID0+ICd1bnN1Y2Nlc3NmdWxseScsCiAgICAgICAgICAgIE1lc3NhZ2UgICA9PiB7CiAgICAgICAgICAgICAgICBBZ2VudCA9PiB7CiAgICAgICAgICAgICAgICAgICAgZGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBBa3Rpb25zLUF1c2bDvGhydW5nIDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IEFrdGlvbnMtQXVzZsO8aHJ1bmcgPE9UUlNfQ09ORElUSU9OX0FjdGlvblJlc3VsdD4uJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkNoYW5nZSBUaXRlbDogPE9UUlNfQ0hBTkdFX0NoYW5nZVRpdGxlPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQWt0dWVsbGVyIENoYW5nZSBTdGF0dXM6IDxPVFJTX0NIQU5HRV9DaGFuZ2VTdGF0ZT5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQ29uZGl0aW9uIElEOiA8T1RSU19DT05ESVRJT05fQ29uZGl0aW9uSUQ+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJDb25kaXRpb24gTmFtZTogPE9UUlNfQ09ORElUSU9OX0NvbmRpdGlvbk5hbWU+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkFjdGlvbiBJRDogPE9UUlNfQ09ORElUSU9OX0FjdGlvbklEPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQWt0aW9ucy1BdXNmw7xocnVuZzogPE9UUlNfQ09ORElUSU9OX0FjdGlvblJlc3VsdD5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiPE9UUlNfQ09ORklHX0h0dHBUeXBlPjovLzxPVFJTX0NPTkZJR19GUUROPi88T1RSU19DT05GSUdfU2NyaXB0QWxpYXM+aW5kZXgucGw/QWN0aW9uPUFnZW50SVRTTUNoYW5nZVpvb207Q2hhbmdlSUQ9PE9UUlNfQ0hBTkdFX0NoYW5nZUlEPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICItLSA8T1RSU19DT05GSUdfTm90aWZpY2F0aW9uU2VuZGVyTmFtZT5cbiIsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gQWN0aW9uIGV4ZWN1dGlvbiA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0PicsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBBY3Rpb24gZXhlY3V0aW9uIDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJDaGFuZ2UgdGl0bGU6IDxPVFJTX0NIQU5HRV9DaGFuZ2VUaXRsZT5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkN1cnJlbnQgY2hhbmdlIHN0YXRlOiA8T1RSU19DSEFOR0VfQ2hhbmdlU3RhdGU+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkNvbmRpdGlvbiBJRDogPE9UUlNfQ09ORElUSU9OX0NvbmRpdGlvbklEPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQ29uZGl0aW9uIG5hbWU6IDxPVFJTX0NPTkRJVElPTl9Db25kaXRpb25OYW1lPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJBY3Rpb24gSUQ6IDxPVFJTX0NPTkRJVElPTl9BY3Rpb25JRD5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkFjdGlvbiBleGVjdXRpb246IDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIjxPVFJTX0NPTkZJR19IdHRwVHlwZT46Ly88T1RSU19DT05GSUdfRlFETj4vPE9UUlNfQ09ORklHX1NjcmlwdEFsaWFzPmluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPTxPVFJTX0NIQU5HRV9DaGFuZ2VJRD5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiLS0gPE9UUlNfQ09ORklHX05vdGlmaWNhdGlvblNlbmRlck5hbWU+XG4iLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBodSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIG3FsXZlbGV0LXbDqWdyZWhhanTDoXM6IDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IG3FsXZlbGV0LXbDqWdyZWhhanTDoXM6IDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJWw6FsdG96w6FzY8OtbTogPE9UUlNfQ0hBTkdFX0NoYW5nZVRpdGxlPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiSmVsZW5sZWdpIHbDoWx0b3rDoXPDoWxsYXBvdDogPE9UUlNfQ0hBTkdFX0NoYW5nZVN0YXRlPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJGZWx0w6l0ZWxhem9ub3PDrXTDszogPE9UUlNfQ09ORElUSU9OX0NvbmRpdGlvbklEPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiRmVsdMOpdGVsbsOpdjogPE9UUlNfQ09ORElUSU9OX0NvbmRpdGlvbk5hbWU+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIk3FsXZlbGV0YXpvbm9zw610w7M6IDxPVFJTX0NPTkRJVElPTl9BY3Rpb25JRD5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIk3FsXZlbGV0LXbDqWdyZWhhanTDoXM6IDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIjxPVFJTX0NPTkZJR19IdHRwVHlwZT46Ly88T1RSU19DT05GSUdfRlFETj4vPE9UUlNfQ09ORklHX1NjcmlwdEFsaWFzPmluZGV4LnBsP0FjdGlvbj1BZ2VudElUU01DaGFuZ2Vab29tO0NoYW5nZUlEPTxPVFJTX0NIQU5HRV9DaGFuZ2VJRD5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiLS0gPE9UUlNfQ09ORklHX05vdGlmaWNhdGlvblNlbmRlck5hbWU+XG4iLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBubCA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3QgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj5dIEFjdGllIHVpdGdldm9lcmQgPE9UUlNfQ09ORElUSU9OX0FjdGlvblJlc3VsdD4nLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gQWN0aWUgdWl0Z2V2b2VyZCA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0Pi4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQ2hhbmdlLXRpdGVsOiA8T1RSU19DSEFOR0VfQ2hhbmdlVGl0bGU+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJBY3R1ZWxlIGNoYW5nZS1zdGF0dXM6IDxPVFJTX0NIQU5HRV9DaGFuZ2VTdGF0ZT5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQ29uZGl0aWUtSUQ6IDxPVFJTX0NPTkRJVElPTl9Db25kaXRpb25JRD5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIkNvbmRpdGllIG5hYW06IDxPVFJTX0NPTkRJVElPTl9Db25kaXRpb25OYW1lPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJBY3RpZS1JRDogPE9UUlNfQ09ORElUSU9OX0FjdGlvbklEPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiQWN0aWUgcmVzdWx0YWF0OiA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0PlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICI8T1RSU19DT05GSUdfSHR0cFR5cGU+Oi8vPE9UUlNfQ09ORklHX0ZRRE4+LzxPVFJTX0NPTkZJR19TY3JpcHRBbGlhcz5pbmRleC5wbD9BY3Rpb249QWdlbnRJVFNNQ2hhbmdlWm9vbTtDaGFuZ2VJRD08T1RSU19DSEFOR0VfQ2hhbmdlSUQ+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIi0tIDxPVFJTX0NPTkZJR19Ob3RpZmljYXRpb25TZW5kZXJOYW1lPlxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQ3VzdG9tZXIgPT4gewogICAgICAgICAgICAgICAgICAgIGRlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gQWt0aW9ucy1BdXNmw7xocnVuZyA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0PicsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBBa3Rpb25zLUF1c2bDvGhydW5nIDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+LicsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGVuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gQWN0aW9uIGV4ZWN1dGlvbiA8T1RSU19DT05ESVRJT05fQWN0aW9uUmVzdWx0PicsCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPiBBY3Rpb24gZXhlY3V0aW9uIDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+LicsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGh1ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdCA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1s8T1RSU19DT05GSUdfSVRTTUNoYW5nZTo6SG9vaz48T1RSU19DSEFOR0VfQ2hhbmdlTnVtYmVyPl0gbcWxdmVsZXQtdsOpZ3JlaGFqdMOhczogPE9UUlNfQ09ORElUSU9OX0FjdGlvblJlc3VsdD4nLAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPE9UUlNfQ09ORklHX0lUU01DaGFuZ2U6Okhvb2s+PE9UUlNfQ0hBTkdFX0NoYW5nZU51bWJlcj4gbcWxdmVsZXQtdsOpZ3JlaGFqdMOhczogPE9UUlNfQ09ORElUSU9OX0FjdGlvblJlc3VsdD4uJywKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbmwgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+XSBBY3RpZSB1aXRnZXZvZXJkIDxPVFJTX0NPTkRJVElPTl9BY3Rpb25SZXN1bHQ+JywKICAgICAgICAgICAgICAgICAgICAgICAgQm9keSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxPVFJTX0NPTkZJR19JVFNNQ2hhbmdlOjpIb29rPjxPVFJTX0NIQU5HRV9DaGFuZ2VOdW1iZXI+IEFjdGllIHVpdGdldm9lcmQgPE9UUlNfQ09ORElUSU9OX0FjdGlvblJlc3VsdD4uJywKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBSZWNpcGllbnRzID0+IFsKICAgICAgICAgICAgICAgICdDaGFuZ2VCdWlsZGVyJywKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCBub3RpZmljYXRpb25zCiAgICBmb3IgbXkgJE5vdGlmaWNhdGlvbiAoQE5vdGlmaWNhdGlvbnMpIHsKCiAgICAgICAgIyBmaW5kIHJlY2lwaWVudHMKICAgICAgICBteSBAUmVjaXBpZW50SURzOwogICAgICAgIGZvciBteSAkUmVjaXBpZW50ICggQHsgJE5vdGlmaWNhdGlvbi0+e1JlY2lwaWVudHN9IH0gKSB7CiAgICAgICAgICAgIG15ICRSZWNpcGllbnRJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpOb3RpZmljYXRpb24nKS0+UmVjaXBpZW50TG9va3VwKAogICAgICAgICAgICAgICAgTmFtZSA9PiAkUmVjaXBpZW50LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRSZWNpcGllbnRJRCkgewogICAgICAgICAgICAgICAgcHVzaCBAUmVjaXBpZW50SURzLCAkUmVjaXBpZW50SUQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZ2V0IGV2ZW50IGlkCiAgICAgICAgbXkgJEV2ZW50SUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SVRTTUNoYW5nZTo6SGlzdG9yeScpLT5IaXN0b3J5VHlwZUxvb2t1cCgKICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJE5vdGlmaWNhdGlvbi0+e0V2ZW50fSwKICAgICAgICApOwoKICAgICAgICAjIGluc2VydCBub3RpZmljYXRpb24KICAgICAgICBteSAkUnVsZUlEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DaGFuZ2U6Ok5vdGlmaWNhdGlvbicpLT5Ob3RpZmljYXRpb25SdWxlQWRkKAogICAgICAgICAgICAleyROb3RpZmljYXRpb259LAogICAgICAgICAgICBFdmVudElEICAgICAgPT4gJEV2ZW50SUQsCiAgICAgICAgICAgIFJlY2lwaWVudElEcyA9PiBcQFJlY2lwaWVudElEcywKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX01pZ3JhdGVOb3RpZmljYXRpb25zKCkKCk1pZ3JhdGUgb2xkIHN5c3RlbSBub3RpZmljYXRpb25zIGludG8gQ2hhbmdlTWFuYWdlbWVudCBldmVudCBiYXNlZCBub3RpZmljYXRpb25zLgoKICAgIG15ICRTdWNjZXNzID0gJFNldHVwT2JqZWN0LT5fTWlncmF0ZU5vdGlmaWNhdGlvbnM7Cgo9Y3V0CgpzdWIgX01pZ3JhdGVOb3RpZmljYXRpb25zIHsKICAgIG15ICgkU2VsZikgPSBAXzsKCiAgICAjIGdldCBhbGwgY2hhbmdlIG5vdGlmaWNhdGlvbiBydWxlcwogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBjbi5pZCwgY24ubmFtZSwgaXRlbV9hdHRyaWJ1dGUsIGNodC5uYW1lCiAgICAgICAgICAgIEZST00gY2hhbmdlX25vdGlmaWNhdGlvbiBjbiwgY2hhbmdlX2hpc3RvcnlfdHlwZSBjaHQKICAgICAgICAgICAgV0hFUkUgZXZlbnRfaWQgPSBjaHQuaWQnLAogICAgKTsKCiAgICAjIGZldGNoIG5vdGlmaWNhdGlvbiBydWxlcwogICAgbXkgQE5vdGlmaWNhdGlvblJ1bGVzOwogICAgd2hpbGUgKCBteSBAUm93ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkZldGNocm93QXJyYXkoKSApIHsKCiAgICAgICAgcHVzaCBATm90aWZpY2F0aW9uUnVsZXMsIHsKICAgICAgICAgICAgSUQgICAgICAgID0+ICRSb3dbMF0sCiAgICAgICAgICAgIE5hbWUgICAgICA9PiAkUm93WzFdLAogICAgICAgICAgICBBdHRyaWJ1dGUgPT4gJFJvd1syXSAvLyAnJywKICAgICAgICAgICAgRXZlbnQgICAgID0+ICRSb3dbM10sCiAgICAgICAgfTsKICAgIH0KCiAgICBmb3IgbXkgJE5vdGlmaWNhdGlvblJ1bGUgKEBOb3RpZmljYXRpb25SdWxlcykgewoKICAgICAgICAjIHJlYWQgbm90aWZpY2F0aW9ucyBmb3IgdGhpcyBub3RpZmljYXRpb24gdHlwZQogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAiU0VMRUNUIG5vdGlmaWNhdGlvbl90eXBlLCBub3RpZmljYXRpb25fbGFuZ3VhZ2UsIHN1YmplY3QsIHRleHQsIGNvbnRlbnRfdHlwZQogICAgICAgICAgICAgICAgRlJPTSBub3RpZmljYXRpb25zCiAgICAgICAgICAgICAgICBXSEVSRSBub3RpZmljYXRpb25fdHlwZSA9ICdBZ2VudDo6Q2hhbmdlOjokTm90aWZpY2F0aW9uUnVsZS0+e0V2ZW50fScKICAgICAgICAgICAgICAgIE9SIG5vdGlmaWNhdGlvbl90eXBlICAgID0gJ0FnZW50OjpXb3JrT3JkZXI6OiROb3RpZmljYXRpb25SdWxlLT57RXZlbnR9JwogICAgICAgICAgICAgICAgT1Igbm90aWZpY2F0aW9uX3R5cGUgICAgPSAnQ3VzdG9tZXI6OkNoYW5nZTo6JE5vdGlmaWNhdGlvblJ1bGUtPntFdmVudH0nCiAgICAgICAgICAgICAgICBPUiBub3RpZmljYXRpb25fdHlwZSAgICA9ICdDdXN0b21lcjo6V29ya09yZGVyOjokTm90aWZpY2F0aW9uUnVsZS0+e0V2ZW50fSciLAogICAgICAgICk7CgogICAgICAgIG15IEBNZXNzYWdlczsKICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICAgICAgIyBleHRyYWN0IHRoZSBpbmZvcm1hdGlvbiBpZiB0aGUgbm90aWZpY2F0aW9uIGlzIGZvciBhZ2VudHMgb3IgY3VzdG9tZXJzCiAgICAgICAgICAgICRSb3dbMF0gPX4gc3sgXEEgKCBBZ2VudCB8IEN1c3RvbWVyICkgOjogLisgfXskMX14bXM7CgogICAgICAgICAgICAjIGdldCBtZXNzYWdlIGF0dHJpYnV0ZXMKICAgICAgICAgICAgcHVzaCBATWVzc2FnZXMsIHsKICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvblR5cGUgPT4gJFJvd1swXSwKICAgICAgICAgICAgICAgIExhbmd1YWdlICAgICAgICAgPT4gJFJvd1sxXSwKICAgICAgICAgICAgICAgIFN1YmplY3QgICAgICAgICAgPT4gJFJvd1syXSwKICAgICAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgPT4gJFJvd1szXSwKICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgPT4gJFJvd1s0XSwKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIGZvciBteSAkTWVzc2FnZSAoQE1lc3NhZ2VzKSB7CgogICAgICAgICAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICAgICAgICAgIFNRTCA9PiAnSU5TRVJUIElOVE8gY2hhbmdlX25vdGlmaWNhdGlvbl9tZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgKG5vdGlmaWNhdGlvbl9pZCwgc3ViamVjdCwgdGV4dCwgY29udGVudF90eXBlLCBsYW5ndWFnZSwgbm90aWZpY2F0aW9uX3R5cGUpCiAgICAgICAgICAgICAgICAgICAgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/KScsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgICAgICAgICBcJE5vdGlmaWNhdGlvblJ1bGUtPntJRH0sCiAgICAgICAgICAgICAgICAgICAgXCRNZXNzYWdlLT57U3ViamVjdH0sCiAgICAgICAgICAgICAgICAgICAgXCRNZXNzYWdlLT57Qm9keX0sCiAgICAgICAgICAgICAgICAgICAgXCRNZXNzYWdlLT57Q29udGVudFR5cGV9LAogICAgICAgICAgICAgICAgICAgIFwkTWVzc2FnZS0+e0xhbmd1YWdlfSwKICAgICAgICAgICAgICAgICAgICBcJE1lc3NhZ2UtPntOb3RpZmljYXRpb25UeXBlfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZGVsZXRlIGFsbCBvbGQgbm90aWZpY2F0aW9ucyBmb3IgdGhlIGNoYW5nZSBtYW5hZ2VtZW50CiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJ0RFTEVURSBGUk9NIG5vdGlmaWNhdGlvbnMKICAgICAgICAgICAgV0hFUkUgbm90aWZpY2F0aW9uX3R5cGUgTElLRSAiQWdlbnQ6OkNoYW5nZTo6JSIKICAgICAgICAgICAgT1Igbm90aWZpY2F0aW9uX3R5cGUgTElLRSAiQWdlbnQ6OldvcmtPcmRlcjo6JSIKICAgICAgICAgICAgT1Igbm90aWZpY2F0aW9uX3R5cGUgTElLRSAiQ3VzdG9tZXI6OkNoYW5nZTo6JSIKICAgICAgICAgICAgT1Igbm90aWZpY2F0aW9uX3R5cGUgTElLRSAiQ3VzdG9tZXI6OldvcmtPcmRlcjo6JSInLAogICAgKTsKCiAgICAjIGdldCBudW1iZXIgb2YgcmVtYWluaW5nIGVudHJpZXMKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgQ09VTlQoaWQpIEZST00gbm90aWZpY2F0aW9ucycsCiAgICApOwoKICAgIG15ICRDb3VudDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJENvdW50ID0gJFJvd1swXTsKICAgIH0KCiAgICAjIGRlbGV0ZSB0YWJsZSBidXQgb25seSBpZiB0YWJsZSBpcyBlbXB0eQogICAgIyBpZiB0aGVyZSBhcmUgc29tZSBlbnRyaWVzIGxlZnQsIHRoZXNlIG11c3QgYmUgZGVsZXRlZCBieSBvdGhlciBtb2R1bGVzCiAgICAjIHNvIHdlIGdpdmUgdGhlbSBhIGNoYW5jZSB0byBiZSBtaWdyYXRlZCBmcm9tIHRoZXNlIG1vZHVsZXMKICAgIGlmICggISRDb3VudCApIHsKCiAgICAgICAgIyBkcm9wIHRhYmxlICdub3RpZmljYXRpb25zJwogICAgICAgIG15ICRYTUxTdHJpbmcgPSAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CiAgICAgICAgICAgIDxkYXRhYmFzZSBOYW1lPSJvdHJzIj4KICAgICAgICAgICAgICAgIDxUYWJsZURyb3AgTmFtZT0ibm90aWZpY2F0aW9ucyIvPgogICAgICAgICAgICA8L2RhdGFiYXNlPic7CgogICAgICAgIG15IEBTUUw7CiAgICAgICAgbXkgQFNRTFBvc3Q7CgogICAgICAgIG15ICRYTUxPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WE1MJyk7CgogICAgICAgICMgY3JlYXRlIGRhdGFiYXNlIHNwZWNpZmljIFNRTCBhbmQgUG9zdFNRTCBjb21tYW5kcwogICAgICAgIG15IEBYTUxBUlJBWSA9ICRYTUxPYmplY3QtPlhNTFBhcnNlKCBTdHJpbmcgPT4gJFhNTFN0cmluZyApOwoKICAgICAgICAjIGNyZWF0ZSBkYXRhYmFzZSBzcGVjaWZpYyBTUUwKICAgICAgICBwdXNoIEBTUUwsICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5TUUxQcm9jZXNzb3IoCiAgICAgICAgICAgIERhdGFiYXNlID0+IFxAWE1MQVJSQVksCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgZGF0YWJhc2Ugc3BlY2lmaWMgUG9zdFNRTAogICAgICAgIHB1c2ggQFNRTFBvc3QsICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5TUUxQcm9jZXNzb3JQb3N0KCk7CgogICAgICAgICMgZXhlY3V0ZSBTUUwKICAgICAgICBmb3IgbXkgJFNRTCAoIEBTUUwsIEBTUUxQb3N0ICkgewogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbyggU1FMID0+ICRTUUwgKTsKICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBkdXJpbmcgZXhlY3V0aW9uIG9mICckU1FMJyEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIF9EZWxldGVUZW1wbGF0ZXMoKQoKRGVsZXRlcyBhbGwgdGVtcGxhdGVzLgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0RlbGV0ZVRlbXBsYXRlcygpOwoKPWN1dAoKc3ViIF9EZWxldGVUZW1wbGF0ZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBhbGwgdGVtcGxhdGVzLCBhbHNvIGludmFsaWQgb25lcwogICAgbXkgJFRlbXBsYXRlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpLT5UZW1wbGF0ZUxpc3QoCiAgICAgICAgVmFsaWQgID0+IDAsCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgICMgZGVsZXRlIGFsbCB0ZW1wbGF0ZXMKICAgIGZvciBteSAkVGVtcGxhdGVJRCAoIHNvcnQga2V5cyAleyRUZW1wbGF0ZXN9ICkgewoKICAgICAgICBteSAkU3VjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpJVFNNQ2hhbmdlOjpUZW1wbGF0ZScpLT5UZW1wbGF0ZURlbGV0ZSgKICAgICAgICAgICAgVGVtcGxhdGVJRCA9PiAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CgogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX01pZ3JhdGVEVExJblN5c0NvbmZpZygpCgpDb252ZXJ0cyBEVEwgc2V0dGluZ3MgaW4gc3lzY29uZmlnIHRvIFRULgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X01pZ3JhdGVEVExJblN5c0NvbmZpZygpOwoKPWN1dAoKc3ViIF9NaWdyYXRlRFRMSW5TeXNDb25maWcgewoKICAgICMgY3JlYXRlIG5lZWRlZCBvYmplY3RzCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CiAgICBteSAkUHJvdmlkZXJPYmplY3QgID0gS2VybmVsOjpPdXRwdXQ6OlRlbXBsYXRlOjpQcm92aWRlci0+bmV3KCk7CgogICAgbXkgQE5ld1NldHRpbmdzOwoKICAgICMgaGFuZGxlIGhhc2ggc2V0dGluZ3MKICAgIE5BTUU6CiAgICBmb3IgbXkgJE5hbWUgKAogICAgICAgIHF3KAogICAgICAgIFRpY2tldDo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUKICAgICAgICBJVFNNQ2hhbmdlOjpGcm9udGVuZDo6TWVudU1vZHVsZQogICAgICAgIElUU01Xb3JrT3JkZXI6OkZyb250ZW5kOjpNZW51TW9kdWxlCiAgICAgICAgKQogICAgICAgICkKICAgIHsKCiAgICAgICAgIyBnZXQgc2V0dGluZydzIGNvbnRlbnQKICAgICAgICBteSAkU2V0dGluZyA9ICRDb25maWdPYmplY3QtPkdldCgkTmFtZSk7CiAgICAgICAgbmV4dCBOQU1FIGlmICEkU2V0dGluZzsKCiAgICAgICAgTUVOVU1PRFVMRToKICAgICAgICBmb3IgbXkgJE1lbnVNb2R1bGUgKCBzb3J0IGtleXMgJXskU2V0dGluZ30gKSB7CgogICAgICAgICAgICAjIFNldHRpbmcgaXMgYSBoYXNoLgogICAgICAgICAgICBTRVRUSU5HSVRFTToKICAgICAgICAgICAgZm9yIG15ICRTZXR0aW5nSXRlbSAoIHNvcnQga2V5cyAleyAkU2V0dGluZy0+eyRNZW51TW9kdWxlfSB9ICkgewoKICAgICAgICAgICAgICAgIG15ICRTZXR0aW5nQ29udGVudCA9ICRTZXR0aW5nLT57JE1lbnVNb2R1bGV9LT57JFNldHRpbmdJdGVtfTsKCiAgICAgICAgICAgICAgICAjIERvIG5vdGhpbmcgaWYgdGhlcmUgaXMgbm8gdmFsdWUgZm9yIG1pZ3JhdGluZy4KICAgICAgICAgICAgICAgIG5leHQgU0VUVElOR0lURU0gaWYgISRTZXR0aW5nQ29udGVudDsKCiAgICAgICAgICAgICAgICBteSAkVFRDb250ZW50OwogICAgICAgICAgICAgICAgZXZhbCB7CiAgICAgICAgICAgICAgICAgICAgJFRUQ29udGVudCA9ICRQcm92aWRlck9iamVjdC0+TWlncmF0ZURUTHRvVFQoIENvbnRlbnQgPT4gJFNldHRpbmdDb250ZW50ICk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgaWYgKCRAKSB7CiAgICAgICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICIkTWVudU1vZHVsZS0+JFNldHRpbmdJdGVtIDogJEAhIiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJFNldHRpbmctPnskTWVudU1vZHVsZX0tPnskU2V0dGluZ0l0ZW19ID0gJFRUQ29udGVudDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBCdWlsZCBuZXcgc2V0dGluZy4KICAgICAgICAgICAgcHVzaCBATmV3U2V0dGluZ3MsIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICROYW1lIC4gJyMjIycgLiAkTWVudU1vZHVsZSwKICAgICAgICAgICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+ICRTZXR0aW5nLT57JE1lbnVNb2R1bGV9LAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMSBpZiAhQE5ld1NldHRpbmdzOwoKICAgICMgV3JpdGUgbmV3IHNldHRpbmcuCiAgICAkU3lzQ29uZmlnT2JqZWN0LT5TZXR0aW5nc1NldCgKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIENvbW1lbnRzID0+ICdJVFNNQ2hhbmdlTWFuYWdlbWVudCAtIHBhY2thZ2Ugc2V0dXAgZnVuY3Rpb246IF9NaWdyYXRlRFRMSW5TeXNDb25maWcnLAogICAgICAgIFNldHRpbmdzID0+IFxATmV3U2V0dGluZ3MsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX01pZ3JhdGVDb25maWdzKCkKCkNoYW5nZSBjb25maWd1cmF0aW9ucyB0byBtYXRjaCB0aGUgbmV3IG1vZHVsZSBsb2NhdGlvbi4KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9NaWdyYXRlQ29uZmlncygpOwoKPWN1dAoKc3ViIF9NaWdyYXRlQ29uZmlncyB7CgogICAgIyBjcmVhdGUgbmVlZGVkIG9iamVjdHMKICAgIG15ICRDb25maWdPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKCiAgICBteSBATmV3U2V0dGluZ3M7CgogICAgIyBtaWdyYXRlIE5hdkJhciBtb2R1bGVzCiAgICAjIGdldCBzZXR0aW5nIGNvbnRlbnQgZm9yIE5hdkJhciBtb2R1bGVzCiAgICBteSAkU2V0dGluZyA9ICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6Ok5hdmlnYXRpb25Nb2R1bGUnKTsKCiAgICBOQVZCQVJNT0RVTEU6CiAgICBmb3IgbXkgJE1vZHVsZUFkbWluICggc29ydCBrZXlzICV7JFNldHRpbmd9ICkgewoKICAgICAgICAjIHVwZGF0ZSBtb2R1bGUgbG9jYXRpb24KICAgICAgICBteSAkTW9kdWxlID0gJFNldHRpbmctPnskTW9kdWxlQWRtaW59LT57J01vZHVsZSd9IC8vICcnOwoKICAgICAgICBpZiAoICRNb2R1bGUgIX4gbXtLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TmF2QmFyKFx3Kyl9ICkgewogICAgICAgICAgICBuZXh0IE5BVkJBUk1PRFVMRTsKICAgICAgICB9CiAgICAgICAgJFNldHRpbmctPnskTW9kdWxlQWRtaW59LT57J01vZHVsZSd9ID0gIktlcm5lbDo6T3V0cHV0OjpIVE1MOjpOYXZCYXI6Ok1vZHVsZUFkbWluIjsKCiAgICAgICAgIyBCdWlsZCBuZXcgc2V0dGluZy4KICAgICAgICBwdXNoIEBOZXdTZXR0aW5ncywgewogICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnRnJvbnRlbmQ6Ok5hdmlnYXRpb25Nb2R1bGUjIyMnIC4gJE1vZHVsZUFkbWluLAogICAgICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiAkU2V0dGluZy0+eyRNb2R1bGVBZG1pbn0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIG1pZ3JhdGUgSVRTTSBtZW51IG1vZHVsZXMKICAgICMgZ2V0IHNldHRpbmcgY29udGVudCBmb3IgSVRTTSBtZW51IG1vZHVsZXMKICAgIGZvciBteSAkVHlwZSAocXcoSVRTTUNoYW5nZSBJVFNNV29ya09yZGVyKSkgewoKICAgICAgICAkU2V0dGluZyA9ICRDb25maWdPYmplY3QtPkdldCggJFR5cGUgLiAnOjpGcm9udGVuZDo6TWVudU1vZHVsZScgKTsKCiAgICAgICAgTUVOVU1PRFVMRToKICAgICAgICBmb3IgbXkgJE1lbnVNb2R1bGUgKCBzb3J0IGtleXMgJXskU2V0dGluZ30gKSB7CgogICAgICAgICAgICAjIHVwZGF0ZSBtb2R1bGUgbG9jYXRpb24KICAgICAgICAgICAgbXkgJE1vZHVsZSA9ICRTZXR0aW5nLT57JE1lbnVNb2R1bGV9LT57J01vZHVsZSd9OwoKICAgICAgICAgICAgaWYgKCAkTW9kdWxlICF+IG17S2VybmVsOjpPdXRwdXQ6OkhUTUw6OiRUeXBlKFx3Kyl9ICkgewogICAgICAgICAgICAgICAgbmV4dCBNRU5VTU9EVUxFOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkTmV3TWVudSA9ICRUeXBlIC4gIjo6JDEiOwogICAgICAgICAgICAkTW9kdWxlID1+IHN7S2VybmVsOjpPdXRwdXQ6OkhUTUw6OiRUeXBlKFx3Kyl9e0tlcm5lbDo6T3V0cHV0OjpIVE1MOjokTmV3TWVudX14bXNnOwoKICAgICAgICAgICAgJFNldHRpbmctPnskTWVudU1vZHVsZX0tPnsnTW9kdWxlJ30gPSAkTW9kdWxlOwoKICAgICAgICAgICAgIyBCdWlsZCBuZXcgc2V0dGluZy4KICAgICAgICAgICAgcHVzaCBATmV3U2V0dGluZ3MsIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICRUeXBlIC4gJzo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUnIC4gJyMjIycgLiAkTWVudU1vZHVsZSwKICAgICAgICAgICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+ICRTZXR0aW5nLT57JE1lbnVNb2R1bGV9LAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIG1pZ3JhdGUgSVRTTSBwcmVmZXJlbmNlcwogICAgIyBnZXQgc2V0dGluZyBjb250ZW50IGZvciBwcmVmZXJlbmNlcwogICAgJFNldHRpbmcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ByZWZlcmVuY2VzR3JvdXBzJyk7CgogICAgUFJFRkVSRU5DRU1PRFVMRToKICAgIGZvciBteSAkUHJlZmVyZW5jZU1vZHVsZSAoIHNvcnQga2V5cyAleyRTZXR0aW5nfSApIHsKCiAgICAgICAgIyB1cGRhdGUgbW9kdWxlIGxvY2F0aW9uCiAgICAgICAgbXkgJE1vZHVsZSA9ICRTZXR0aW5nLT57JFByZWZlcmVuY2VNb2R1bGV9LT57J01vZHVsZSd9OwogICAgICAgIGlmICggJE1vZHVsZSAhfiBte0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpQcmVmZXJlbmNlcyhcdyspfSApIHsKICAgICAgICAgICAgbmV4dCBQUkVGRVJFTkNFTU9EVUxFOwogICAgICAgIH0KCiAgICAgICAgJE1vZHVsZSA9fiBze0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpQcmVmZXJlbmNlcyhcdyspfXtLZXJuZWw6Ok91dHB1dDo6SFRNTDo6UHJlZmVyZW5jZXM6OiQxfXhtc2c7CiAgICAgICAgJFNldHRpbmctPnskUHJlZmVyZW5jZU1vZHVsZX0tPnsnTW9kdWxlJ30gPSAkTW9kdWxlOwoKICAgICAgICAjIEJ1aWxkIG5ldyBzZXR0aW5nLgogICAgICAgIHB1c2ggQE5ld1NldHRpbmdzLCB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdQcmVmZXJlbmNlc0dyb3VwcyMjIycgLiAkUHJlZmVyZW5jZU1vZHVsZSwKICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJFNldHRpbmctPnskUHJlZmVyZW5jZU1vZHVsZX0sCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gMSBpZiAhQE5ld1NldHRpbmdzOwoKICAgICMgV3JpdGUgbmV3IHNldHRpbmcuCiAgICAkU3lzQ29uZmlnT2JqZWN0LT5TZXR0aW5nc1NldCgKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIENvbW1lbnRzID0+ICdJVFNNQ2hhbmdlTWFuYWdlbWVudCAtIHBhY2thZ2Ugc2V0dXAgZnVuY3Rpb246IF9NaWdyYXRlQ29uZmlncycsCiAgICAgICAgU2V0dGluZ3MgPT4gXEBOZXdTZXR0aW5ncywKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfTWlncmF0ZUNvbmZpZ3NGcm9tTG93ZXJUaGFuXzVfMF8xMigpCgpDaGFuZ2UgY29uZmlndXJhdGlvbnMgdG8gbWF0Y2ggdGhlIG5ldyBmaWxlIGxvY2F0aW9uLgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X01pZ3JhdGVDb25maWdzRnJvbUxvd2VyVGhhbl81XzBfMTIoKTsKCj1jdXQKCnN1YiBfTWlncmF0ZUNvbmZpZ3NGcm9tTG93ZXJUaGFuXzVfMF8xMiB7ICAgICMjIG5vIGNyaXRpYwoKICAgICMgY3JlYXRlIG5lZWRlZCBvYmplY3RzCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CgogICAgbXkgQE5ld1NldHRpbmdzOwoKICAgICMgZ2V0IHNldHRpbmcgY29udGVudCBmb3IgYWxsIGZyb250ZW5kIG1vZHVsZXMKICAgIG15ICRGcm9udGVuZENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6Ok1vZHVsZScpOwoKICAgIEZST05URU5ETU9EVUxFOgogICAgZm9yIG15ICRNb2R1bGUgKCBzb3J0IGtleXMgJXskRnJvbnRlbmRDb25maWd9ICkgewoKICAgICAgICBuZXh0IEZST05URU5ETU9EVUxFIGlmICEkRnJvbnRlbmRDb25maWctPnskTW9kdWxlfS0+e0xvYWRlcn07CiAgICAgICAgbmV4dCBGUk9OVEVORE1PRFVMRSBpZiAhJEZyb250ZW5kQ29uZmlnLT57JE1vZHVsZX0tPntMb2FkZXJ9LT57SmF2YVNjcmlwdH07CiAgICAgICAgbmV4dCBGUk9OVEVORE1PRFVMRSBpZiAhQHsgJEZyb250ZW5kQ29uZmlnLT57JE1vZHVsZX0tPntMb2FkZXJ9LT57SmF2YVNjcmlwdH0gfTsKCiAgICAgICAgIyBjaGVjayBpZiBzZXR0aW5nIGNvbnRhaW5zIHRoZSBmaWxlIElUU00uQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nLmpzCiAgICAgICAgbmV4dCBGUk9OVEVORE1PRFVMRQogICAgICAgICAgICBpZiAhZ3JlcCB7ICRfIGVxICdJVFNNLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5qcycgfQogICAgICAgICAgICBAeyAkRnJvbnRlbmRDb25maWctPnskTW9kdWxlfS0+e0xvYWRlcn0tPntKYXZhU2NyaXB0fSB9OwoKICAgICAgICAjIGJ1aWxkIG5ldyBzZXR0aW5ncyB3aXRoIHJlbmFtZWQgSmF2YXNjcmlwdCBmaWxlCiAgICAgICAgbXkgQE5ld0phdmFzY3JpcHRMb2FkZXJTZXR0aW5nczsKICAgICAgICBmb3IgbXkgJExvYWRlclNldHRpbmcgKCBAeyAkRnJvbnRlbmRDb25maWctPnskTW9kdWxlfS0+e0xvYWRlcn0tPntKYXZhU2NyaXB0fSB9ICkgewogICAgICAgICAgICBpZiAoICRMb2FkZXJTZXR0aW5nIGVxICdJVFNNLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5qcycgKSB7CgogICAgICAgICAgICAgICAgIyBjaGFuZ2UgdGhlIHNldHRpbmcgKHJlbmFtZSB0aGUgZmlsZSkKICAgICAgICAgICAgICAgIHB1c2ggQE5ld0phdmFzY3JpcHRMb2FkZXJTZXR0aW5ncywgJ0lUU00uQWdlbnQuQ29uZmlybURpYWxvZy5qcyc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAjIHVzZSB0aGUgb3JpZ2luYWwgc2V0dGluZwogICAgICAgICAgICAgICAgcHVzaCBATmV3SmF2YXNjcmlwdExvYWRlclNldHRpbmdzLCAkTG9hZGVyU2V0dGluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjaGFuZ2UgdGhlIEpTIGxvYWRlciBzZXR0aW5ncwogICAgICAgICRGcm9udGVuZENvbmZpZy0+eyRNb2R1bGV9LT57TG9hZGVyfS0+e0phdmFTY3JpcHR9ID0gXEBOZXdKYXZhc2NyaXB0TG9hZGVyU2V0dGluZ3M7CgogICAgICAgICMgQnVpbGQgbmV3IHNldHRpbmcuCiAgICAgICAgcHVzaCBATmV3U2V0dGluZ3MsIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ0Zyb250ZW5kOjpNb2R1bGUjIyMnIC4gJE1vZHVsZSwKICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJEZyb250ZW5kQ29uZmlnLT57JE1vZHVsZX0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIG1pZ3JhdGUgSVRTTSBtZW51IG1vZHVsZXMKICAgICMgZ2V0IHNldHRpbmcgY29udGVudCBmb3IgSVRTTSBtZW51IG1vZHVsZXMKICAgIGZvciBteSAkVHlwZSAocXcoSVRTTUNoYW5nZSBJVFNNV29ya09yZGVyKSkgewoKICAgICAgICAjIGdldCBtZW51IG1vZHVsZSBzZXR0aW5nCiAgICAgICAgbXkgJFNldHRpbmcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoICRUeXBlIC4gJzo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUnICk7CgogICAgICAgIE1FTlVNT0RVTEU6CiAgICAgICAgZm9yIG15ICRNZW51TW9kdWxlICggc29ydCBrZXlzICV7JFNldHRpbmd9ICkgewoKICAgICAgICAgICAgIyBnZXQgdGFyZ2V0IHNldHRpbmcKICAgICAgICAgICAgbXkgJFRhcmdldCA9ICRTZXR0aW5nLT57JE1lbnVNb2R1bGV9LT57J1RhcmdldCd9OwoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdGhlIG9sZCBuYW1lCiAgICAgICAgICAgIG5leHQgTUVOVU1PRFVMRSBpZiAkVGFyZ2V0IG5lICdDb25maXJtYXRpb25EaWFsb2cnOwoKICAgICAgICAgICAgIyB1cGRhdGUgdG8gbmV3IG5hbWUKICAgICAgICAgICAgJFNldHRpbmctPnskTWVudU1vZHVsZX0tPnsnVGFyZ2V0J30gPSAnQ29uZmlybURpYWxvZyc7CgogICAgICAgICAgICAjIEJ1aWxkIG5ldyBzZXR0aW5nLgogICAgICAgICAgICBwdXNoIEBOZXdTZXR0aW5ncywgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJFR5cGUgLiAnOjpGcm9udGVuZDo6TWVudU1vZHVsZScgLiAnIyMjJyAuICRNZW51TW9kdWxlLAogICAgICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJFNldHRpbmctPnskTWVudU1vZHVsZX0sCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxIGlmICFATmV3U2V0dGluZ3M7CgogICAgIyBXcml0ZSBuZXcgc2V0dGluZy4KICAgICRTeXNDb25maWdPYmplY3QtPlNldHRpbmdzU2V0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgQ29tbWVudHMgPT4gJ0lUU01DaGFuZ2VNYW5hZ2VtZW50IC0gcGFja2FnZSBzZXR1cCBmdW5jdGlvbjogX01pZ3JhdGVDb25maWdzRnJvbUxvd2VyVGhhbl81XzBfMTInLAogICAgICAgIFNldHRpbmdzID0+IFxATmV3U2V0dGluZ3MsCiAgICApOwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWVuZCBJbnRlcm5hbDoKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cHM6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
    </Filelist>
    <DatabaseInstall Type="post">
        <TableCreate Name="change_item">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="change_number" Required="true" Size="100" Type="VARCHAR"/>
            <Column Name="title" Required="false" Size="250" Type="VARCHAR"/>
            <Column Name="description" Required="false" Size="1800000" Type="VARCHAR"/>
            <Column Name="description_plain" Required="false" Size="1800000" Type="VARCHAR"/>
            <Column Name="justification" Required="false" Size="1800000" Type="VARCHAR"/>
            <Column Name="justification_plain" Required="false" Size="1800000" Type="VARCHAR"/>
            <Column Name="change_state_id" Required="true" Type="INTEGER"/>
            <Column Name="change_manager_id" Required="false" Type="INTEGER"/>
            <Column Name="change_builder_id" Required="true" Type="INTEGER"/>
            <Column Name="category_id" Required="true" Type="INTEGER"/>
            <Column Name="impact_id" Required="true" Type="INTEGER"/>
            <Column Name="priority_id" Required="true" Type="INTEGER"/>
            <Column Name="requested_time" Required="false" Type="DATE"/>
            <Column Name="create_time" Required="true" Type="DATE"/>
            <Column Name="create_by" Required="true" Type="INTEGER"/>
            <Column Name="change_time" Required="true" Type="DATE"/>
            <Column Name="change_by" Required="true" Type="INTEGER"/>
            <Unique Name="change_item_change_number">
                <UniqueColumn Name="change_number"/>
            </Unique>
            <Index Name="change_item_title">
                <IndexColumn Name="title"/>
            </Index>
            <Index Name="change_item_change_state_id">
                <IndexColumn Name="change_state_id"/>
            </Index>
            <Index Name="change_item_change_manager_id">
                <IndexColumn Name="change_manager_id"/>
            </Index>
            <Index Name="change_item_change_builder_id">
                <IndexColumn Name="change_builder_id"/>
            </Index>
            <Index Name="change_item_category_id">
                <IndexColumn Name="category_id"/>
            </Index>
            <Index Name="change_item_impact_id">
                <IndexColumn Name="impact_id"/>
            </Index>
            <Index Name="change_item_priority_id">
                <IndexColumn Name="priority_id"/>
            </Index>
            <Index Name="change_item_create_time">
                <IndexColumn Name="create_time"/>
            </Index>
            <Index Name="change_item_requested_time">
                <IndexColumn Name="requested_time"/>
            </Index>
            <Index Name="change_item_change_time">
                <IndexColumn Name="change_time"/>
            </Index>
            <ForeignKey ForeignTable="general_catalog">
                <Reference Local="change_state_id" Foreign="id"/>
                <Reference Local="category_id" Foreign="id"/>
                <Reference Local="impact_id" Foreign="id"/>
                <Reference Local="priority_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Local="change_manager_id" Foreign="id"/>
                <Reference Local="change_builder_id" Foreign="id"/>
                <Reference Local="create_by" Foreign="id"/>
                <Reference Local="change_by" Foreign="id"/>
            </ForeignKey>
        </TableCreate>
        <TableCreate Name="change_workorder">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="change_id" Required="true" Type="BIGINT"/>
            <Column Name="workorder_number" Required="true" Type="INTEGER"/>
            <Column Name="title" Required="false" Size="250" Type="VARCHAR"/>
            <Column Name="instruction" Required="false" Size="1800000" Type="VARCHAR"/>
            <Column Name="instruction_plain" Required="false" Size="1800000" Type="VARCHAR"/>
            <Column Name="report" Required="false" Size="1800000" Type="VARCHAR"/>
            <Column Name="report_plain" Required="false" Size="1800000" Type="VARCHAR"/>
            <Column Name="workorder_state_id" Required="true" Type="INTEGER"/>
            <Column Name="workorder_type_id" Required="true" Type="INTEGER"/>
            <Column Name="workorder_agent_id" Required="false" Type="INTEGER"/>
            <Column Name="planned_start_time" Required="true" Default="9999-01-01 00:00:00" Type="DATE"/>
            <Column Name="planned_end_time" Required="true" Default="9999-01-01 00:00:00" Type="DATE"/>
            <Column Name="actual_start_time" Required="true" Default="9999-01-01 00:00:00" Type="DATE"/>
            <Column Name="actual_end_time" Required="true" Default="9999-01-01 00:00:00" Type="DATE"/>
            <Column Name="planned_effort" Required="true" Default="0" Size="10,2" Type="DECIMAL"/>
            <Column Name="accounted_time" Required="true" Default="0" Size="10,2" Type="DECIMAL"/>
            <Column Name="create_time" Required="true" Type="DATE"/>
            <Column Name="create_by" Required="true" Type="INTEGER"/>
            <Column Name="change_time" Required="true" Type="DATE"/>
            <Column Name="change_by" Required="true" Type="INTEGER"/>
            <Index Name="change_workorder_change_id">
                <IndexColumn Name="change_id"/>
            </Index>
            <Index Name="change_workorder_title">
                <IndexColumn Name="title"/>
            </Index>
            <Index Name="change_workorder_workorder_state_id">
                <IndexColumn Name="workorder_state_id"/>
            </Index>
            <Index Name="change_workorder_workorder_type_id">
                <IndexColumn Name="workorder_type_id"/>
            </Index>
            <Index Name="change_workorder_workorder_agent_id">
                <IndexColumn Name="workorder_agent_id"/>
            </Index>
            <Index Name="change_workorder_planned_start_time">
                <IndexColumn Name="planned_start_time"/>
            </Index>
            <Index Name="change_workorder_planned_end_time">
                <IndexColumn Name="planned_end_time"/>
            </Index>
            <Index Name="change_workorder_actual_start_time">
                <IndexColumn Name="actual_start_time"/>
            </Index>
            <Index Name="change_workorder_actual_end_time">
                <IndexColumn Name="actual_end_time"/>
            </Index>
            <Index Name="change_workorder_create_time">
                <IndexColumn Name="create_time"/>
            </Index>
            <Index Name="change_workorder_change_time">
                <IndexColumn Name="change_time"/>
            </Index>
            <ForeignKey ForeignTable="change_item">
                <Reference Local="change_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="general_catalog">
                <Reference Local="workorder_state_id" Foreign="id"/>
                <Reference Local="workorder_type_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Local="workorder_agent_id" Foreign="id"/>
                <Reference Local="create_by" Foreign="id"/>
                <Reference Local="change_by" Foreign="id"/>
            </ForeignKey>
        </TableCreate>
        <TableCreate Name="change_cab">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="change_id" Required="true" Type="BIGINT"/>
            <Column Name="user_id" Required="false" Type="INTEGER"/>
            <Column Name="customer_user_id" Required="false" Size="250" Type="VARCHAR"/>
            <Unique Name="change_cab_unique">
                <UniqueColumn Name="change_id"/>
                <UniqueColumn Name="user_id"/>
                <UniqueColumn Name="customer_user_id"/>
            </Unique>
            <ForeignKey ForeignTable="change_item">
                <Reference Local="change_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Local="user_id" Foreign="id"/>
            </ForeignKey>
        </TableCreate>
        <TableCreate Name="change_history_type">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="INTEGER"/>
            <Column Name="name" Required="true" Size="100" Type="VARCHAR"/>
            <Column Name="comments" Required="false" Size="250" Type="VARCHAR"/>
            <Column Name="valid_id" Required="true" Type="SMALLINT"/>
            <Column Name="create_time" Required="true" Type="DATE"/>
            <Column Name="create_by" Required="true" Type="INTEGER"/>
            <Column Name="change_time" Required="true" Type="DATE"/>
            <Column Name="change_by" Required="true" Type="INTEGER"/>
            <Unique Name="change_history_type_name">
                <UniqueColumn Name="name"/>
            </Unique>
            <Index Name="change_history_type_valid_id">
                <IndexColumn Name="valid_id"/>
            </Index>
            <ForeignKey ForeignTable="valid">
                <Reference Local="valid_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Local="create_by" Foreign="id"/>
                <Reference Local="change_by" Foreign="id"/>
            </ForeignKey>
        </TableCreate>
        <TableCreate Name="change_history">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="change_id" Required="true" Type="BIGINT"/>
            <Column Name="workorder_id" Required="false" Type="BIGINT"/>
            <Column Name="type_id" Required="true" Type="INTEGER"/>
            <Column Name="content_new" Required="false" Size="1800000" Type="VARCHAR"/>
            <Column Name="content_old" Required="false" Size="1800000" Type="VARCHAR"/>
            <Column Name="fieldname" Required="false" Size="250" Type="VARCHAR"/>
            <Column Name="create_time" Required="true" Type="DATE"/>
            <Column Name="create_by" Required="true" Type="INTEGER"/>
            <Index Name="change_history_change_id">
                <IndexColumn Name="change_id"/>
            </Index>
            <Index Name="change_history_workorder_id">
                <IndexColumn Name="workorder_id"/>
            </Index>
            <Index Name="change_history_type_id">
                <IndexColumn Name="type_id"/>
            </Index>
            <Index Name="change_history_create_time">
                <IndexColumn Name="create_time"/>
            </Index>
            <ForeignKey ForeignTable="change_item">
                <Reference Local="change_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="change_history_type">
                <Reference Local="type_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Local="create_by" Foreign="id"/>
            </ForeignKey>
        </TableCreate>
        <TableCreate Name="change_template_type">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="INTEGER"/>
            <Column Name="name" Required="true" Size="250" Type="VARCHAR"/>
            <Column Name="valid_id" Required="true" Type="SMALLINT"/>
            <Column Name="create_time" Required="true" Type="DATE"/>
            <Column Name="create_by" Required="true" Type="INTEGER"/>
            <Column Name="change_time" Required="true" Type="DATE"/>
            <Column Name="change_by" Required="true" Type="INTEGER"/>
            <Unique Name="change_template_type_name">
                <UniqueColumn Name="name"/>
            </Unique>
            <Index Name="change_template_type_valid_id">
                <IndexColumn Name="valid_id"/>
            </Index>
            <ForeignKey ForeignTable="valid">
                <Reference Local="valid_id" Foreign="id"/>
            </ForeignKey>
        </TableCreate>
        <TableCreate Name="change_template">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="INTEGER"/>
            <Column Name="name" Required="true" Size="250" Type="VARCHAR"/>
            <Column Name="comments" Required="false" Size="250" Type="VARCHAR"/>
            <Column Name="content" Required="true" Type="LONGBLOB"/>
            <Column Name="type_id" Required="true" Type="INTEGER"/>
            <Column Name="valid_id" Required="true" Type="SMALLINT"/>
            <Column Name="create_time" Required="true" Type="DATE"/>
            <Column Name="create_by" Required="true" Type="INTEGER"/>
            <Column Name="change_time" Required="true" Type="DATE"/>
            <Column Name="change_by" Required="true" Type="INTEGER"/>
            <Unique Name="change_template_name_type_id">
                <UniqueColumn Name="name"/>
                <UniqueColumn Name="type_id"/>
            </Unique>
            <Index Name="change_template_valid_id">
                <IndexColumn Name="valid_id"/>
            </Index>
            <Index Name="change_template_type_id">
                <IndexColumn Name="type_id"/>
            </Index>
            <ForeignKey ForeignTable="valid">
                <Reference Local="valid_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="change_template_type">
                <Reference Local="type_id" Foreign="id"/>
            </ForeignKey>
        </TableCreate>
        <TableCreate Name="change_cip_allocate">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="category_id" Required="true" Type="INTEGER"/>
            <Column Name="impact_id" Required="true" Type="INTEGER"/>
            <Column Name="priority_id" Required="true" Type="INTEGER"/>
            <Column Name="create_time" Required="false" Type="DATE"/>
            <Column Name="create_by" Required="false" Type="INTEGER"/>
            <Column Name="change_time" Required="false" Type="DATE"/>
            <Column Name="change_by" Required="false" Type="INTEGER"/>
            <ForeignKey ForeignTable="general_catalog">
                <Reference Local="category_id" Foreign="id"/>
                <Reference Local="impact_id" Foreign="id"/>
                <Reference Local="priority_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Local="create_by" Foreign="id"/>
                <Reference Local="change_by" Foreign="id"/>
            </ForeignKey>
        </TableCreate>
        <TableCreate Name="change_state_machine">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="state_id" Required="false" Type="INTEGER"/>
            <Column Name="next_state_id" Required="false" Type="INTEGER"/>
            <Unique Name="change_state_machine_unique">
                <UniqueColumn Name="state_id"/>
                <UniqueColumn Name="next_state_id"/>
            </Unique>
        </TableCreate>
        <TableCreate Name="condition_object">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="SMALLINT"/>
            <Column Name="name" Required="true" Size="250" Type="VARCHAR"/>
            <Unique Name="condition_object_name">
                <UniqueColumn Name="name"/>
            </Unique>
        </TableCreate>
        <TableCreate Name="condition_attribute">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="SMALLINT"/>
            <Column Name="name" Required="true" Size="250" Type="VARCHAR"/>
            <Unique Name="condition_attribute_name">
                <UniqueColumn Name="name"/>
            </Unique>
        </TableCreate>
        <TableCreate Name="condition_operator">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="SMALLINT"/>
            <Column Name="name" Required="true" Size="250" Type="VARCHAR"/>
            <Unique Name="condition_operator_name">
                <UniqueColumn Name="name"/>
            </Unique>
        </TableCreate>
        <TableCreate Name="change_condition">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="change_id" Required="true" Type="BIGINT"/>
            <Column Name="name" Required="true" Size="250" Type="VARCHAR"/>
            <Column Name="expression_conjunction" Required="true" Size="250" Type="VARCHAR"/>
            <Column Name="comments" Required="false" Size="250" Type="VARCHAR"/>
            <Column Name="valid_id" Required="true" Type="SMALLINT"/>
            <Column Name="create_time" Required="true" Type="DATE"/>
            <Column Name="create_by" Required="true" Type="INTEGER"/>
            <Column Name="change_time" Required="true" Type="DATE"/>
            <Column Name="change_by" Required="true" Type="INTEGER"/>
            <Index Name="change_condition_change_id">
                <IndexColumn Name="change_id"/>
            </Index>
            <Index Name="change_condition_valid_id">
                <IndexColumn Name="valid_id"/>
            </Index>
            <Unique Name="condition_condition_change_id_name_unique">
                <UniqueColumn Name="change_id"/>
                <UniqueColumn Name="name"/>
            </Unique>
            <ForeignKey ForeignTable="change_item">
                <Reference Local="change_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="valid">
                <Reference Local="valid_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Local="create_by" Foreign="id"/>
                <Reference Local="change_by" Foreign="id"/>
            </ForeignKey>
        </TableCreate>
        <TableCreate Name="condition_expression">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="condition_id" Required="true" Type="BIGINT"/>
            <Column Name="object_id" Required="true" Type="SMALLINT"/>
            <Column Name="attribute_id" Required="true" Type="SMALLINT"/>
            <Column Name="operator_id" Required="true" Type="SMALLINT"/>
            <Column Name="selector" Required="false" Size="20" Type="VARCHAR"/>
            <Column Name="compare_value" Required="false" Size="250" Type="VARCHAR"/>
            <Index Name="condition_expression_condition_id">
                <IndexColumn Name="condition_id"/>
            </Index>
            <Index Name="condition_expression_object_id">
                <IndexColumn Name="object_id"/>
            </Index>
            <Index Name="condition_expression_attribute_id">
                <IndexColumn Name="attribute_id"/>
            </Index>
            <Index Name="condition_expression_operator_id">
                <IndexColumn Name="operator_id"/>
            </Index>
            <Index Name="condition_expression_selector">
                <IndexColumn Name="selector"/>
            </Index>
            <Index Name="condition_expression_compare_value">
                <IndexColumn Name="compare_value"/>
            </Index>
            <Unique Name="condition_expression_unique">
                <UniqueColumn Name="condition_id"/>
                <UniqueColumn Name="object_id"/>
                <UniqueColumn Name="attribute_id"/>
                <UniqueColumn Name="operator_id"/>
                <UniqueColumn Name="selector"/>
                <UniqueColumn Name="compare_value"/>
            </Unique>
            <ForeignKey ForeignTable="change_condition">
                <Reference Local="condition_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="condition_object">
                <Reference Local="object_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="condition_attribute">
                <Reference Local="attribute_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="condition_operator">
                <Reference Local="operator_id" Foreign="id"/>
            </ForeignKey>
        </TableCreate>
        <TableCreate Name="condition_action">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="condition_id" Required="true" Type="BIGINT"/>
            <Column Name="action_number" Required="true" Type="INTEGER"/>
            <Column Name="object_id" Required="true" Type="SMALLINT"/>
            <Column Name="attribute_id" Required="true" Type="SMALLINT"/>
            <Column Name="operator_id" Required="true" Type="SMALLINT"/>
            <Column Name="selector" Required="false" Size="20" Type="VARCHAR"/>
            <Column Name="action_value" Required="false" Size="250" Type="VARCHAR"/>
            <Index Name="condition_action_condition_id">
                <IndexColumn Name="condition_id"/>
            </Index>
            <Index Name="condition_action_action_number">
                <IndexColumn Name="action_number"/>
            </Index>
            <Index Name="condition_action_object_id">
                <IndexColumn Name="object_id"/>
            </Index>
            <Index Name="condition_action_attribute_id">
                <IndexColumn Name="attribute_id"/>
            </Index>
            <Index Name="condition_action_operator_id">
                <IndexColumn Name="operator_id"/>
            </Index>
            <Index Name="condition_action_selector">
                <IndexColumn Name="selector"/>
            </Index>
            <Index Name="condition_action_action_value">
                <IndexColumn Name="action_value"/>
            </Index>
            <Unique Name="condition_action_unique">
                <UniqueColumn Name="condition_id"/>
                <UniqueColumn Name="object_id"/>
                <UniqueColumn Name="attribute_id"/>
                <UniqueColumn Name="operator_id"/>
                <UniqueColumn Name="selector"/>
                <UniqueColumn Name="action_value"/>
            </Unique>
            <Unique Name="condition_action_number_unique">
                <UniqueColumn Name="condition_id"/>
                <UniqueColumn Name="action_number"/>
            </Unique>
            <ForeignKey ForeignTable="change_condition">
                <Reference Local="condition_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="condition_object">
                <Reference Local="object_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="condition_attribute">
                <Reference Local="attribute_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="condition_operator">
                <Reference Local="operator_id" Foreign="id"/>
            </ForeignKey>
        </TableCreate>
        <TableCreate Name="change_notification">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="name" Required="true" Size="250" Type="VARCHAR"/>
            <Column Name="item_attribute" Required="false" Size="250" Type="VARCHAR"/>
            <Column Name="event_id" Required="true" Type="INTEGER"/>
            <Column Name="valid_id" Required="true" Type="SMALLINT"/>
            <Column Name="comments" Required="false" Size="250" Type="VARCHAR"/>
            <Column Name="notification_rule" Required="false" Size="250" Type="VARCHAR"/>
            <Index Name="change_notification_event_id">
                <IndexColumn Name="event_id"/>
            </Index>
            <Index Name="change_notification_valid_id">
                <IndexColumn Name="valid_id"/>
            </Index>
            <Index Name="change_notification_event_valid_id">
                <IndexColumn Name="event_id"/>
                <IndexColumn Name="valid_id"/>
            </Index>
            <ForeignKey ForeignTable="change_history_type">
                <Reference Local="event_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="valid">
                <Reference Local="valid_id" Foreign="id"/>
            </ForeignKey>
        </TableCreate>
        <TableCreate Name="change_notification_message">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="notification_id" Required="true" Type="BIGINT"/>
            <Column Name="subject" Required="true" Size="200" Type="VARCHAR"/>
            <Column Name="text" Required="true" Size="4000" Type="VARCHAR"/>
            <Column Name="content_type" Required="true" Size="250" Type="VARCHAR"/>
            <Column Name="language" Required="true" Size="60" Type="VARCHAR"/>
            <Column Name="notification_type" Required="true" Size="60" Type="VARCHAR"/>
            <ForeignKey ForeignTable="change_notification">
                <Reference Foreign="id" Local="notification_id"/>
            </ForeignKey>
            <Index Name="change_notification_message_notification_id">
                <IndexColumn Name="notification_id"/>
            </Index>
            <Index Name="change_notification_message_language">
                <IndexColumn Name="language"/>
            </Index>
            <Unique Name="change_notification_message_notification_id_language">
                <UniqueColumn Name="notification_id"/>
                <UniqueColumn Name="language"/>
                <UniqueColumn Name="notification_type"/>
            </Unique>
        </TableCreate>
        <TableCreate Name="change_notification_grps">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="name" Required="true" Size="250" Type="VARCHAR"/>
        </TableCreate>
        <TableCreate Name="change_notification_rec">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="notification_id" Required="true" Type="BIGINT"/>
            <Column Name="group_id" Required="true" Type="BIGINT"/>
            <Index Name="change_notification_rec_group_id">
                <IndexColumn Name="group_id"/>
            </Index>
            <Index Name="change_notification_rec_notification_id">
                <IndexColumn Name="notification_id"/>
            </Index>
            <Index Name="change_notification_rec_group_notification">
                <IndexColumn Name="group_id"/>
                <IndexColumn Name="notification_id"/>
            </Index>
            <ForeignKey ForeignTable="change_notification">
                <Reference Local="notification_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="change_notification_grps">
                <Reference Local="group_id" Foreign="id"/>
            </ForeignKey>
        </TableCreate>
        <TableCreate Name="change_number_counter">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="counter" Required="true" Type="BIGINT"/>
            <Column Name="counter_uid" Required="true" Size="32" Type="VARCHAR"/>
            <Column Name="create_time" Type="DATE"/>
            <Unique Name="change_number_counter_uid">
                <UniqueColumn Name="counter_uid"/>
            </Unique>
            <Index Name="change_number_counter_create_time">
                <IndexColumn Name="create_time"/>
            </Index>
        </TableCreate>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Category</Data>
            <Data Key="name" Type="Quote">1 very low</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Category</Data>
            <Data Key="name" Type="Quote">2 low</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Category</Data>
            <Data Key="name" Type="Quote">3 normal</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Category</Data>
            <Data Key="name" Type="Quote">4 high</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Category</Data>
            <Data Key="name" Type="Quote">5 very high</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Impact</Data>
            <Data Key="name" Type="Quote">1 very low</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Impact</Data>
            <Data Key="name" Type="Quote">2 low</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Impact</Data>
            <Data Key="name" Type="Quote">3 normal</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Impact</Data>
            <Data Key="name" Type="Quote">4 high</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Impact</Data>
            <Data Key="name" Type="Quote">5 very high</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Priority</Data>
            <Data Key="name" Type="Quote">1 very low</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Priority</Data>
            <Data Key="name" Type="Quote">2 low</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Priority</Data>
            <Data Key="name" Type="Quote">3 normal</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Priority</Data>
            <Data Key="name" Type="Quote">4 high</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Priority</Data>
            <Data Key="name" Type="Quote">5 very high</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Change::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">requested</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Change::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">pending approval</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Change::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">rejected</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Change::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">approved</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Change::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">in progress</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Change::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">pending pir</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Change::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">successful</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Change::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">failed</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Change::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">canceled</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::Change::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">retracted</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::WorkOrder::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">created</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::WorkOrder::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">accepted</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::WorkOrder::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">ready</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::WorkOrder::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">in progress</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::WorkOrder::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">closed</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::WorkOrder::State</Data>
            <Data Key="name" Type="Quote" Translatable="1">canceled</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::WorkOrder::Type</Data>
            <Data Key="name" Type="Quote" Translatable="1">approval</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::WorkOrder::Type</Data>
            <Data Key="name" Type="Quote" Translatable="1">workorder</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::WorkOrder::Type</Data>
            <Data Key="name" Type="Quote" Translatable="1">backout</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::WorkOrder::Type</Data>
            <Data Key="name" Type="Quote" Translatable="1">decision</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="general_catalog">
            <Data Key="general_catalog_class" Type="Quote">ITSM::ChangeManagement::WorkOrder::Type</Data>
            <Data Key="name" Type="Quote" Translatable="1">pir</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangeAdd</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangeUpdate</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangeDelete</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangeCABUpdate</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangeCABDelete</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangeLinkAdd</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangeLinkDelete</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangeAttachmentAdd</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangeAttachmentDelete</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderAdd</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderUpdate</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderDelete</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderLinkAdd</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderLinkDelete</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderAttachmentAdd</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderAttachmentDelete</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderReportAttachmentAdd</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderReportAttachmentDelete</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangePlannedStartTimeReached</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangePlannedEndTimeReached</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangeActualStartTimeReached</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangeActualEndTimeReached</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderPlannedStartTimeReached</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderPlannedEndTimeReached</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderActualStartTimeReached</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderActualEndTimeReached</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangeRequestedTimeReached</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ConditionAdd</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ConditionUpdate</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ConditionDelete</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ConditionDeleteAll</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ExpressionAdd</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ExpressionUpdate</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ExpressionDelete</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ExpressionDeleteAll</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ActionAdd</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ActionUpdate</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ActionDelete</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ActionDeleteAll</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ActionExecute</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">ChangeNotificationSent</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type">
            <Data Key="name" Type="Quote">WorkOrderNotificationSent</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="ticket_type">
            <Data Key="name" Type="Quote">RfC</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="condition_object">
            <Data Key="name" Type="Quote">ITSMChange</Data>
        </Insert>
        <Insert Table="condition_object">
            <Data Key="name" Type="Quote">ITSMWorkOrder</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">ChangeStateID</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">ChangeTitle</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">CategoryID</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">ImpactID</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">PriorityID</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">ChangeManagerID</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">ChangeBuilderID</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">RequestedTime</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">PlannedStartTime</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">PlannedEndTime</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">ActualStartTime</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">ActualEndTime</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">PlannedEffort</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">AccountedTime</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">WorkOrderNumber</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">WorkOrderStateID</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">WorkOrderTypeID</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">WorkOrderTitle</Data>
        </Insert>
        <Insert Table="condition_attribute">
            <Data Key="name" Type="Quote" Translatable="1">WorkOrderAgentID</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">is</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">is not</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">is empty</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">is not empty</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">is greater than</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">is less than</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">is before</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">is after</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">contains</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">not contains</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">begins with</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">ends with</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">set</Data>
        </Insert>
        <Insert Table="condition_operator">
            <Data Key="name" Type="Quote" Translatable="1">lock</Data>
        </Insert>
        <Insert Table="change_notification_grps">
            <Data Key="name" Type="Quote">ChangeBuilder</Data>
        </Insert>
        <Insert Table="change_notification_grps">
            <Data Key="name" Type="Quote">OldChangeBuilder</Data>
        </Insert>
        <Insert Table="change_notification_grps">
            <Data Key="name" Type="Quote">ChangeManager</Data>
        </Insert>
        <Insert Table="change_notification_grps">
            <Data Key="name" Type="Quote">OldChangeManager</Data>
        </Insert>
        <Insert Table="change_notification_grps">
            <Data Key="name" Type="Quote">CABCustomers</Data>
        </Insert>
        <Insert Table="change_notification_grps">
            <Data Key="name" Type="Quote">CABAgents</Data>
        </Insert>
        <Insert Table="change_notification_grps">
            <Data Key="name" Type="Quote">WorkOrderAgents</Data>
        </Insert>
        <Insert Table="change_notification_grps">
            <Data Key="name" Type="Quote">WorkOrderAgent</Data>
        </Insert>
        <Insert Table="change_notification_grps">
            <Data Key="name" Type="Quote">OldWorkOrderAgent</Data>
        </Insert>
        <Insert Table="change_notification_grps">
            <Data Key="name" Type="Quote">ChangeInitiators</Data>
        </Insert>
        <Insert Table="change_notification_grps">
            <Data Key="name" Type="Quote">GroupITSMChange</Data>
        </Insert>
        <Insert Table="change_notification_grps">
            <Data Key="name" Type="Quote">GroupITSMChangeBuilder</Data>
        </Insert>
        <Insert Table="change_notification_grps">
            <Data Key="name" Type="Quote">GroupITSMChangeManager</Data>
        </Insert>
        <Insert Table="change_template_type">
            <Data Key="name" Type="Quote">ITSMChange</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_template_type">
            <Data Key="name" Type="Quote">ITSMWorkOrder</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_template_type">
            <Data Key="name" Type="Quote">CAB</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_template_type">
            <Data Key="name" Type="Quote">ITSMCondition</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
    </DatabaseInstall>
    <DatabaseUpgrade Type="post">
        <Insert Table="change_history_type" Version="1.3.93">
            <Data Key="name" Type="Quote">ChangeNotificationSent</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type" Version="1.3.93">
            <Data Key="name" Type="Quote">WorkOrderNotificationSent</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>

        <TableAlter Name="change_item" Version="3.0.1">
            <IndexDrop Name="change_item_description_plain"/>
            <IndexDrop Name="change_item_justification_plain"/>
        </TableAlter>
        <TableAlter Name="change_workorder" Version="3.0.1">
            <IndexDrop Name="change_workorder_instruction_plain"/>
            <IndexDrop Name="change_workorder_report_plain"/>
        </TableAlter>

        <TableAlter Name="change_item" Version="3.1.91">
            <ColumnChange NameOld="description" NameNew="description" Required="false" Size="1800000" Type="VARCHAR"/>
            <ColumnChange NameOld="description_plain" NameNew="description_plain" Required="false" Size="1800000" Type="VARCHAR"/>
            <ColumnChange NameOld="justification" NameNew="justification" Required="false" Size="1800000" Type="VARCHAR"/>
            <ColumnChange NameOld="justification_plain" NameNew="justification_plain" Required="false" Size="1800000" Type="VARCHAR"/>
        </TableAlter>
        <TableAlter Name="change_workorder" Version="3.1.91">
            <ColumnChange NameOld="instruction" NameNew="instruction" Required="false" Size="1800000" Type="VARCHAR"/>
            <ColumnChange NameOld="instruction_plain" NameNew="instruction_plain" Required="false" Size="1800000" Type="VARCHAR"/>
            <ColumnChange NameOld="report" NameNew="report" Required="false" Size="1800000" Type="VARCHAR"/>
            <ColumnChange NameOld="report_plain" NameNew="report_plain" Required="false" Size="1800000" Type="VARCHAR"/>
        </TableAlter>
        <TableAlter Name="change_history" Version="3.1.91">
            <ColumnChange NameOld="content_new" NameNew="content_new" Required="false" Size="1800000" Type="VARCHAR"/>
            <ColumnChange NameOld="content_old" NameNew="content_old" Required="false" Size="1800000" Type="VARCHAR"/>
        </TableAlter>

        <Insert Table="change_history_type" Version="3.2.91">
            <Data Key="name" Type="Quote">WorkOrderReportAttachmentAdd</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>
        <Insert Table="change_history_type" Version="3.2.91">
            <Data Key="name" Type="Quote">WorkOrderReportAttachmentDelete</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="create_time">current_timestamp</Data>
            <Data Key="create_by">1</Data>
            <Data Key="change_time">current_timestamp</Data>
            <Data Key="change_by">1</Data>
        </Insert>

        <TableCreate Name="change_notification_message" Version="4.0.91">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="notification_id" Required="true" Type="BIGINT"/>
            <Column Name="subject" Required="true" Size="200" Type="VARCHAR"/>
            <Column Name="text" Required="true" Size="4000" Type="VARCHAR"/>
            <Column Name="content_type" Required="true" Size="250" Type="VARCHAR"/>
            <Column Name="language" Required="true" Size="60" Type="VARCHAR"/>
            <Column Name="notification_type" Required="true" Size="60" Type="VARCHAR"/>
            <ForeignKey ForeignTable="change_notification">
                <Reference Foreign="id" Local="notification_id"/>
            </ForeignKey>
            <Index Name="change_notification_message_notification_id">
                <IndexColumn Name="notification_id"/>
            </Index>
            <Index Name="change_notification_message_language">
                <IndexColumn Name="language"/>
            </Index>
            <Unique Name="change_notification_message_notification_id_language">
                <UniqueColumn Name="notification_id"/>
                <UniqueColumn Name="language"/>
                <UniqueColumn Name="notification_type"/>
            </Unique>
        </TableCreate>
        <TableCreate Name="change_number_counter" Version="5.0.91">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="counter" Required="true" Type="BIGINT"/>
            <Column Name="counter_uid" Required="true" Size="32" Type="VARCHAR"/>
            <Column Name="create_time" Type="DATE"/>
            <Unique Name="change_number_counter_uid">
                <UniqueColumn Name="counter_uid"/>
            </Unique>
            <Index Name="change_number_counter_create_time">
                <IndexColumn Name="create_time"/>
            </Index>
        </TableCreate>
    </DatabaseUpgrade>
    <DatabaseUninstall Type="pre">
        <TableDrop Name="change_notification_rec"/>
        <TableDrop Name="change_notification_grps"/>
        <TableDrop Name="change_notification_message"/>
        <TableDrop Name="change_notification"/>
        <TableDrop Name="change_cab"/>
        <TableDrop Name="change_history"/>
        <TableDrop Name="change_history_type"/>
        <TableDrop Name="condition_expression"/>
        <TableDrop Name="condition_action"/>
        <TableDrop Name="condition_operator"/>
        <TableDrop Name="condition_attribute"/>
        <TableDrop Name="condition_object"/>
        <TableDrop Name="change_condition"/>
        <TableDrop Name="change_workorder"/>
        <TableDrop Name="change_item"/>
        <TableDrop Name="change_template"/>
        <TableDrop Name="change_template_type"/>
        <TableDrop Name="change_cip_allocate"/>
        <TableDrop Name="change_state_machine"/>
        <TableDrop Name="change_number_counter"/>
    </DatabaseUninstall>
    <CodeInstall Type="post"><![CDATA[

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};

        $Kernel::OM->Get($CodeModule)->CodeInstall();

    ]]></CodeInstall>
    <CodeReinstall Type="post"><![CDATA[

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};

        $Kernel::OM->Get($CodeModule)->CodeReinstall();

    ]]></CodeReinstall>
    <CodeUpgrade Type="pre" Version="3.2.91"><![CDATA[

        # uninstall Feature AddOn OTRSWorkOrderTimeDependency that has been integrated in OTRS::ITSM 6.0.30 (OTRS::ITSM 3.3 Beta 1)
        $Kernel::OM->Get('Kernel::System::Package')->_PackageUninstallMerged(
            Name => 'OTRSWorkOrderTimeDependency',
        );

        # uninstall Feature AddOn OTRSWorkOrderReportAttachments that has been integrated in OTRS::ITSM 6.0.30 (OTRS::ITSM 3.3 Beta 1)
        $Kernel::OM->Get('Kernel::System::Package')->_PackageUninstallMerged(
            Name => 'OTRSWorkOrderReportAttachments',
        );

    ]]></CodeUpgrade>
    <CodeUpgrade Type="post"><![CDATA[

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};

        # discard internally stored object, so that the next access to object creates them newly
        $Kernel::OM->ObjectsDiscard(
            Objects            => [$CodeModule],
            ForcePackageReload => 1,
        );

        $Kernel::OM->Get($CodeModule)->CodeUpgrade();

    ]]></CodeUpgrade>
    <CodeUpgrade Type="post" Version="3.3.91"><![CDATA[

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};

        # discard internally stored object, so that the next access to object creates them newly
        $Kernel::OM->ObjectsDiscard(
            Objects            => [$CodeModule],
            ForcePackageReload => 1,
        );

        $Kernel::OM->Get($CodeModule)->CodeUpgradeFromLowerThan_3_3_91();

    ]]></CodeUpgrade>
    <CodeUpgrade Type="post" Version="4.0.2"><![CDATA[

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};

        # discard internally stored object, so that the next access to object creates them newly
        $Kernel::OM->ObjectsDiscard(
            Objects            => [$CodeModule],
            ForcePackageReload => 1,
        );

        $Kernel::OM->Get($CodeModule)->CodeUpgradeFromLowerThan_4_0_2();

    ]]></CodeUpgrade>
    <CodeUpgrade Type="post" Version="4.0.91"><![CDATA[

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};

        # discard internally stored object, so that the next access to object creates them newly
        $Kernel::OM->ObjectsDiscard(
            Objects            => [$CodeModule],
            ForcePackageReload => 1,
        );

        $Kernel::OM->Get($CodeModule)->CodeUpgradeFromLowerThan_4_0_91();

    ]]></CodeUpgrade>
    <CodeUpgrade Type="post" Version="5.0.12"><![CDATA[

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};

        # discard internally stored object, so that the next access to object creates them newly
        $Kernel::OM->ObjectsDiscard(
            Objects            => [$CodeModule],
            ForcePackageReload => 1,
        );

        $Kernel::OM->Get($CodeModule)->CodeUpgradeFromLowerThan_5_0_12();

    ]]></CodeUpgrade>
    <CodeUninstall Type="pre"><![CDATA[

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};

        $Kernel::OM->Get($CodeModule)->CodeUninstall();

    ]]></CodeUninstall>
    <CodeUninstall Type="post"><![CDATA[

        {
            # cleanup stats list (only stats related to the given stat objects)
            $Kernel::OM->Get('Kernel::System::Stats')->StatsCleanUp(
                ObjectNames => [
                    'ITSMChangeManagement',
                    'ITSMChangeManagementChangesIncidents',
                    'ITSMChangeManagementChangesPerCIClasses',
                    'ITSMChangeManagementHistory',
                    'ITSMChangeManagementRfcRequester',
                ],
                UserID => 1,
            );
        }

    ]]></CodeUninstall>
    <IntroInstall Type="pre" Title="Install Information" Lang="en"><![CDATA[

        <br/>
        <strong>WELCOME</strong>
        <br/>
        <br/>
        You are about to install the Znuny package ITSMChangeManagement.<br/>
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroInstall>
    <IntroInstall Type="pre" Title="Installation Information" Lang="de"><![CDATA[

        <br/>
        <strong>WILLKOMMEN</strong>
        <br/>
        <br/>
        Sie sind im Begriff das Znuny-Paket ITSMChangeManagement zu installieren.<br/>
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroInstall>
    <IntroInstall Type="pre" Title="Install Information" Lang="es"><![CDATA[
        <br/>
        <strong>BIENVENIDO</strong>
        <br/>
        <br/>
        Usted est&aacute; a punto de instalar el paquete ITSMChangeManagement de Znuny.<br/>
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>
    ]]></IntroInstall>
    <IntroInstall Type="pre" Title="Telepítési információk" Lang="hu"><![CDATA[

        <br/>
        <strong>ÜDVÖZÖLJÜK</strong>
        <br/>
        <br/>
        Ön az ITSMChangeManagement Znuny csomag telepítésére készül.<br/>
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroInstall>
    <IntroInstall Type="post" Title="Installation Information" Lang="en"><![CDATA[

        <br/>
        <strong>NOTICE</strong>
        <br/>
        <br/>
        In order to grant users access to the change menu, you need to add them as member to the group 'itsm-change'.
        <br/>
        <br/>
        The menu items that were added by this package will be visible after you log-in to the system again.
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroInstall>
    <IntroInstall Type="post" Title="Installation Information" Lang="de"><![CDATA[

        <br/>
        <strong>HINWEIS</strong>
        <br/>
        <br/>
        Um Benutzern Zugriff auf das Change-Menü zu gewähren, müssen diese Mitglied der neuen Gruppe 'itsm-change' sein.
        <br/>
        <br/>
        Die von diesem Paket hinzugefügten Menü-Punkte sind erst nach einem erneuten Anmeldevorgang im System sichtbar.
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroInstall>
    <IntroInstall Type="post" Title="Installation Information" Lang="es"><![CDATA[

        <br/>
        <strong>AVISO</strong>
        <br/>
        <br/>
        Para poder permitir el acceso a los usuarios al men&uacute; de faq, usted necesita agregarlos como miembros del grupo 'itsm-change'.<br/>
        <br/>
        <br/>
        Los elementos del menu que fueron agregados por este paquete ser&aacute;n visibles despu&eacute;s de que cierre y abra su sesi&oacute;n de nuevo.
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroInstall>
    <IntroInstall Type="post" Title="Telepítési információk" Lang="hu"><![CDATA[

        <br/>
        <strong>FIGYELMEZTETÉS</strong>
        <br/>
        <br/>
        Annak érdekében, hogy hozzáférést adjon a felhasználók számára a változás menühöz, hozzá kell adnia őket az „itsm-change” csoporthoz tagként.
        <br/>
        <br/>
        Azok a menüpontok, amelyeket ez a csomag adott hozzá, azután lesznek láthatóak, miután ismét bejelentkezik a rendszerbe.
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroInstall>
    <IntroUpgrade Type="pre" Title="Upgrade Information" Lang="en"><![CDATA[

        <br/>
        <strong>WELCOME</strong>
        <br/>
        <br/>
        You are about to upgrade the Znuny package ITSMChangeManagement.<br/>
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroUpgrade>
    <IntroUpgrade Type="pre" Title="Upgrade Information" Lang="de"><![CDATA[

        <br/>
        <strong>WILLKOMMEN</strong>
        <br/>
        <br/>
        Sie sind im Begriff das Znuny-Paket ITSMChangeManagement zu aktualisieren.<br/>
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroUpgrade>
    <IntroUpgrade Type="pre" Title="Upgrade Information" Lang="es"><![CDATA[

        <br/>
        <strong>BIENVENIDO</strong>
        <br/>
        <br/>
        Usted est&aacute; apunto de actualizar el paquete ITSMChangeManagement de Znuny.<br/>
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroUpgrade>
    <IntroUpgrade Type="pre" Title="Frissítési információk" Lang="hu"><![CDATA[

        <br/>
        <strong>ÜDVÖZÖLJÜK</strong>
        <br/>
        <br/>
        Ön az ITSMChangeManagement Znuny csomag frissítésére készül.<br/>
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroUpgrade>
    <IntroUninstall Type="pre" Title="Uninstallation Information" Lang="en"><![CDATA[

        <br/>
        <strong>ATTENTION</strong>
        <br/>
        <br/>
        If you uninstall this package, all database tables that were created during installation will be deleted.
        All data from these tables will be irrevocably lost!
        <br/>
        <br/>
        The groups 'itsm-change', 'itsm-change-builder' and 'itsm-change-manager' that were created during package installation will be deactivated.
        You can activate these groups again in the admin area.
        <br/>
        <br/>
        All links to change objects and workorder objects will be irrevocably deleted!
        <br/>
        <br/>
        The statistics that are associated with this package, will no longer be available if the package is uninstalled.
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroUninstall>
    <IntroUninstall Type="pre" Title="Uninstallation Information" Lang="de"><![CDATA[

        <br/>
        <strong>ACHTUNG</strong>
        <br/>
        <br/>
        Bei der Deinstallation werden die von diesem Paket angelegten Datenbank-Tabellen gelöscht.
        Alle darin enthaltenen Daten gehen unwiderruflich verloren!
        <br/>
        <br/>
        Die von diesem Paket angelegten Gruppen 'itsm-change', 'itsm-change-builder' und 'itsm-change-manager' werden deaktiviert.
        Sie können jederzeit im Admin-Bereich wieder aktiviert werden.
        <br/>
        <br/>
        Alle Verknüpfungen zu Change-Objekten und zu Workorder-Objekten werden unwiderruflich gelöscht!
        <br/>
        <br/>
        Nach der Deinstallation sind die zu diesem Paket zugehörigen Statistiken nicht mehr verfügbar.
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroUninstall>
    <IntroUninstall Type="pre" Title="Uninstallation Information" Lang="es"><![CDATA[

        <br/>
        <strong>ATENCI&Oacute;N</strong>
        <br/>
        <br/>
        Si usted desinstala este paquete, todas las tablas de la base de datos creadas durante la instalaci&oacute;n ser&aacute;n borradas.
        &iexcl;Todos los datos de esas tablas se perder&aacute;n irrevocablemente!.
        <br/>
        <br/>
        Los grupos 'itsm-change', 'itsm-change-builder' y 'itsm-change-manager' que fueron creados durante la instalaci&oacute;n del paquete ser&aacute;n desactivados.
        Usted puede activar estos grupos nuevamente en el &aacute;rea de admin.
        <br/>
        <br/>
        &iexcl;Todos los v&iacute;nculos a objetos cambio y objetos &oacute;rdenes de trabajo ser&aacute;n borrados irrevocablemente!.
        <br/>
        <br/>
        Si usted desinstala este paquete, las estad&iacute;sticas que est&aacute;n asociadas a &eacute;l ya no estar&aacute;n disponibles.
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroUninstall>
    <IntroUninstall Type="pre" Title="Eltávolítási információk" Lang="hu"><![CDATA[

        <br/>
        <strong>FIGYELEM</strong>
        <br/>
        <br/>
        Ha eltávolítja ezt a csomagot, akkor a telepítés során létrehozott összes adatbázistábla törlésre kerül.
        Az ezekben a táblákban lévő összes adat visszavonhatatlanul el fog veszni!
        <br/>
        <br/>
        A csomagtelepítés során létrehozott „itsm-change”, „itsm-change-builder” és „itsm-change-manager” csoport ki lesz kapcsolva.
        Ezeket a csoportokat az adminisztrációs területen tudja ismét bekapcsolni.
        <br/>
        <br/>
        A változás objektumokra és a munkamegrendelés objektumokra mutató összes hivatkozás visszavonhatatlanul törölve lesz!
        <br/>
        <br/>
        Az ehhez a csomaghoz hozzárendelt statisztikák többé nem lesznek elérhetők, ha a csomag eltávolításra kerül.
        <br/>
        <br/>
        ((enjoy))<br/>
        <br/>

    ]]></IntroUninstall>
</otrs_package>
